A computer-implemented method to limit downtime of an application during integration testing of the application, the method comprising: providing a redirector configured to receive first messages transmitted to a first address of a component from the application and to forward the first messages to a first instance of the component, the redirector having a corresponding configuration file, the configuration file including redirection entries that indicate on what address the redirector is to listen and to what address the redirector is to redirect messages, the application including the component; forwarding the first messages to a second address, the first instance of the component listening for incoming remote procedure call messages at the second address, wherein each of the instances is configured to listen on a different address, and wherein the first address and the second address each include an IP address and a port number; in response to receiving a clone command, generating a second instance of the component from a different version of the component than the first instance, the first instance and the second instance concurrently listening for incoming messages and the second instance of the component having a different logging level than the first instance of the component; in response to receiving a first switch command, reconfiguring the redirector by: - stopping the redirector; - updating the configuration file to reconfigure the redirector to forward all second messages received at the first address to the second instance of the component instead of to the first instance, the second messages received subsequent to the first messages to determine that the second instance should receive the incoming messages for the component; in response to receiving a second switch command, reconfiguring the redirector by: - stopping the redirector; - updating the configuration file to reconfigure the redirector to forward all third messages to the first instance instead of to the second instance, the third messages received subsequent to the first and second messages, - starting the redirector so that the configuration file is used to determine that the first instance should receive the incoming messages for the component; and wherein the redirector runs in a process, the method further comprising killing the process in which the redirector runs when integration testing of the application is complete. providing a redirector configured to receive first messages transmitted to a first address of a component from the application and to forward the first messages to a first instance of the component, the redirector having a corresponding configuration file, the configuration file including redirection entries that indicate on what address the redirector is to listen and to what address the redirector is to redirect messages, the application including the component; forwarding the first messages to a second address, the first instance of the component listening for incoming remote procedure call messages at the second address, wherein each of the instances is configured to listen on a different address, and wherein the first address and the second address each include an IP address and a port number; in response to receiving a clone command, generating a second instance of the component from a different version of the component than the first instance, the first instance and the second instance concurrently listening for incoming messages and the second instance of the component having a different logging level than the first instance of the component; in response to receiving a first switch command, reconfiguring the redirector by: - stopping the redirector; - updating the configuration file to reconfigure the redirector to forward all second messages received at the first address to the second instance of the component instead of to the first instance, the second messages received subsequent to the first messages to determine that the second instance should receive the incoming messages for the component; - stopping the redirector; - updating the configuration file to reconfigure the redirector to forward all second messages received at the first address to the second instance of the component instead of to the first instance, the second messages received subsequent to the first messages to determine that the second instance should receive the incoming messages for the component; in response to receiving a second switch command, reconfiguring the redirector by: - stopping the redirector; - updating the configuration file to reconfigure the redirector to forward all third messages to the first instance instead of to the second instance, the third messages received subsequent to the first and second messages, - starting the redirector so that the configuration file is used to determine that the first instance should receive the incoming messages for the component; and - stopping the redirector; - updating the configuration file to reconfigure the redirector to forward all third messages to the first instance instead of to the second instance, the third messages received subsequent to the first and second messages, - starting the redirector so that the configuration file is used to determine that the first instance should receive the incoming messages for the component; and