Container Timeout
Definition
Timeout after which the container start/stop is deemed failedThis feature is only available for local containers
Explanation
Cargo has a timeout for container start and stop operations. If the time taken to start/stop a container exceeds the timeout period the operations is considered failed and the container is then set in the unknown state.
The default timeout value is 2 minutes (120000 milliseconds). This value can be modified as shown below.
If the given timeout is too small, the CARGO container will give you an error message similar to this:
[INFO] ------------------------------------------------------------------------ [ERROR] FATAL ERROR [INFO] ------------------------------------------------------------------------ [INFO] Failed to start the JBoss 5.1.0 container. Deployable http://localhost:8080/cargocpc/index.html failed to finish deploying within the timeout period [5000]. The Deployable state is thus unknown. [INFO] ------------------------------------------------------------------------
Example using the Java API
LocalContainer container = ...; container.setTimeout(180000L); System.out.println("Timeout = " + container.getTimeout());
Example using the Maven 3 plugin
<container> [...] <timeout>180000</timeout> [...] </container>
Disabling timeout
If you set the timeout to 0
, CARGO will not wait for the container to start or stop.
Using different timeouts when starting and stopping the container
Shutdown usually takes much much shorther than startup, it therefore often makes sense to use a shorter timeout for stopping the container than for starting it. With the Cargo Maven plugin, this is easy to do: indeed, in each <execution>
block of the Maven plugin, you can have different <configuration>
blocks. When done so, the plugin will use an inheritance scheme; i.e. for each execution the outermost configuration elements will be overriden by innermost elements each time these are defined.
Here is an example that uses different timeouts when starting and stopping the container:
<plugin> <groupId>org.codehaus.cargo</groupId> <artifactId>cargo-maven3-plugin</artifactId> <executions> <execution> <id>start</id> <phase>pre-integration-test</phase> <goals> <goal>start</goal> </goals> <configuration> <container> <timeout>60000</timeout> </container> </configuration> </execution> <execution> <id>stop</id> <phase>post-integration-test</phase> <goals> <goal>stop</goal> </goals> <configuration> <container> <timeout>10000</timeout> </container> </configuration> </execution> </executions> <configuration> [...] </configuration> </plugin>