/** * Deploys the {@link #warFile} to the cargo container ({@link #container}). */ public void deployWar() { // Get the cargo war from the war file WAR war = new WAR(warFile.getAbsolutePath()); // Set context access to nothing war.setContext(""); // Deploy the war the container's configuration getConfiguration().addDeployable(war); logger.info("Deployed WAR file at {}", war.getFile()); }
/** * Add static deployables to the configuration. * * @param containerId the container id to which to deploy to * @param configuration the local configuration to which to add Deployables to */ private void addStaticDeployables(String containerId, LocalConfiguration configuration) { for (DeployableElement deployableElement : getDeployables()) { configuration.addDeployable(deployableElement.createDeployable(containerId)); } } }
/** * Add static deployables to the configuration. * * @param containerId the container id to which to deploy to * @param configuration the local configuration to which to add Deployables to */ private void addStaticDeployables(String containerId, LocalConfiguration configuration) { for (DeployableElement deployableElement : getDeployables()) { configuration.addDeployable(deployableElement.createDeployable(containerId)); } } }
/** * Add static deployables to the configuration. * * @param containerId the container id to which to deploy to. * @param configuration the local configuration to which to add Deployables to. * @param deployables Deployables to deploy. * @param project Cargo project. * @throws MojoExecutionException If resource creation fails. */ private void addStaticDeployables(String containerId, LocalConfiguration configuration, Deployable[] deployables, CargoProject project) throws MojoExecutionException { for (Deployable deployable : deployables) { project.getLog().debug("Scheduling deployable for deployment: [groupId [" + deployable.getGroupId() + "], artifactId [" + deployable.getArtifactId() + "], type [" + deployable.getType() + "], location [" + deployable.getLocation() + "], pingURL [" + deployable.getPingURL() + "]]"); configuration.addDeployable(deployable.createDeployable(containerId, project)); } } }
// (1) Optional step to install the container from a URL pointing to its distribution Installer installer = new ZipURLInstaller( new URL("http://repo1.maven.org/maven2/com/ibm/websphere/appserver/runtime/wlp-javaee7/8.5.5.9/wlp-javaee7-8.5.5.9.zip")); installer.install(); // (2) Create the Cargo Container instance wrapping our physical container LocalConfiguration configuration = (LocalConfiguration) new DefaultConfigurationFactory().createConfiguration( "liberty", ContainerType.INSTALLED, ConfigurationType.STANDALONE); InstalledLocalContainer container = (InstalledLocalContainer) new DefaultContainerFactory().createContainer( "liberty", ContainerType.INSTALLED, configuration); container.setHome(installer.getHome()); // (3) Statically deploy some WAR (optional) WAR war = new WAR("cargo.war"); // (4) Set the context root for the application war.setContext("/myContext"); configuration.addDeployable(war); // (5) Start the container container.start();
/** * Test deployment of a WAR with relative path. * @throws Exception If anything goes wrong. */ public void testDeployWarDefinedWithRelativePath() throws Exception { // Copies the testdata artifact File artifactDir = new File(getTestData().targetDir).getParentFile(); File artifactFile = new File(artifactDir, "simple.war").getAbsoluteFile(); Copy copyTask = (Copy) new AntUtils().createProject().createTask("copy"); copyTask.setTofile(artifactFile); copyTask.setFile(new File(getTestData().getTestDataFileFor("simple-war"))); copyTask.execute(); Deployable war = new DefaultDeployableFactory().createDeployable(getContainer().getId(), artifactFile.getAbsolutePath(), DeployableType.WAR); getLocalContainer().getConfiguration().addDeployable(war); URL warPingURL = new URL("http://localhost:" + getTestData().port + "/simple/index.jsp"); startAndStop(warPingURL); }
/** * Deploy WAR statically. * @throws Exception If anything goes wrong. */ public void testDeployWarStatically() throws Exception { Deployable war = new DefaultDeployableFactory().createDeployable(getContainer().getId(), getTestData().getTestDataFileFor("simple-war"), DeployableType.WAR); getLocalContainer().getConfiguration().addDeployable(war); URL warPingURL = new URL("http://localhost:" + getTestData().port + "/simple-war/index.jsp"); startAndStop(warPingURL); }
/** * Tests servlet. * @param type WAR type. * @throws MalformedURLException If URL cannot be built. */ protected void testWar(String type) throws MalformedURLException { Deployable war = new DefaultDeployableFactory().createDeployable(getContainer().getId(), getTestData() .getTestDataFileFor(type + "-war"), DeployableType.WAR); getLocalContainer().getConfiguration().addDeployable(war); URL warPingURL = new URL("http://localhost:" + getTestData().port + "/" + type + "-war/test"); startAndStop(warPingURL); }
/** * Start container with port offset. * @throws Exception If anything goes wrong. */ public void testStartWithPortOffset() throws Exception { int offsetValue = Integer.valueOf(OFFSET); int portWithOffset = getTestData().port + offsetValue; Deployable war = new DefaultDeployableFactory().createDeployable(getContainer().getId(), getTestData().getTestDataFileFor("simple-war"), DeployableType.WAR); getLocalContainer().getConfiguration().addDeployable(war); URL warPingURL = new URL("http://localhost:" + portWithOffset + "/simple-war/index.jsp"); getLocalContainer().start(); PingUtils.assertPingTrue(warPingURL.getPath() + " not started", warPingURL, getLogger()); getLocalContainer().stop(); PingUtils.assertPingFalse(warPingURL.getPath() + " not stopped", warPingURL, getLogger()); } }
/** * Test expanded WAR with a <code>context.xml</code> file. * @throws Exception If anything goes wrong. */ public void testExpandedWarWithContextXmlFile() throws Exception { // Copy the war from the Maven local repository in order to expand it File artifactDir = new File(getTestData().targetDir).getParentFile(); Expand expandTask = (Expand) new AntUtils().createProject().createTask("unwar"); expandTask.setDest(new File(artifactDir, "tomcat-context")); expandTask.setSrc(new File(getTestData().getTestDataFileFor("tomcatcontext-war"))); expandTask.execute(); Deployable war = new DefaultDeployableFactory().createDeployable(getContainer().getId(), new File(artifactDir, "tomcat-context").getPath(), DeployableType.WAR); getLocalContainer().getConfiguration().addDeployable(war); URL warPingURL = new URL("http://localhost:" + getTestData().port + "/tomcat-context/"); getLocalContainer().start(); PingUtils.assertPingTrue("tomcat context war not started", "Test value is [test value]", warPingURL, getLogger()); getLocalContainer().stop(); PingUtils.assertPingFalse("tomcat context war not stopped", warPingURL, getLogger()); } }
/** * Test WAR with a <code>context.xml</code> file. * @throws Exception If anything goes wrong. */ public void testWarWithContextXmlFile() throws Exception { // Copies the tomcat context war in order to rename it so that it matches the context // path defined in its context.xml file. File artifactDir = new File(getTestData().targetDir).getParentFile(); Copy copyTask = (Copy) new AntUtils().createProject().createTask("copy"); copyTask.setTofile(new File(artifactDir, "tomcat-context.war")); copyTask.setFile(new File(getTestData().getTestDataFileFor("tomcatcontext-war"))); copyTask.execute(); Deployable war = new DefaultDeployableFactory().createDeployable(getContainer().getId(), new File(artifactDir, "tomcat-context.war").getPath(), DeployableType.WAR); getLocalContainer().getConfiguration().addDeployable(war); URL warPingURL = new URL("http://localhost:" + getTestData().port + "/tomcat-context/"); getLocalContainer().start(); PingUtils.assertPingTrue("tomcat context war not started", "Test value is [test value]", warPingURL, getLogger()); getLocalContainer().stop(); PingUtils.assertPingFalse("tomcat context war not stopped", warPingURL, getLogger()); }
getTestData().getTestDataFileFor("authentication-war"), DeployableType.WAR); getLocalContainer().getConfiguration().addDeployable(war);
/** * Start spawned container. * @throws Exception If anything goes wrong. */ public void testStartSpawned() throws Exception { Deployable war = new DefaultDeployableFactory().createDeployable(getContainer().getId(), getTestData().getTestDataFileFor("simple-war"), DeployableType.WAR); getLocalContainer().getConfiguration().addDeployable(war); URL pingURL = new URL("http://localhost:" + getTestData().port + "/simple-war/index.jsp"); getLocalContainer().start(); PingUtils.assertPingTrue(pingURL.getPath() + " not started", pingURL, getLogger()); getLocalContainer().stop(); PingUtils.assertPingFalse(pingURL.getPath() + " not stopped", pingURL, getLogger()); } }
/** * Test deployment of a WAR with root path. * @throws Exception If anything goes wrong. */ public void testDeployWarDefinedWithRootPath() throws Exception { WAR war = (WAR) new DefaultDeployableFactory().createDeployable(getContainer().getId(), getTestData().getTestDataFileFor("simple-war"), DeployableType.WAR); war.setContext("/"); getLocalContainer().getConfiguration().addDeployable(war); URL warPingURL = new URL("http://localhost:" + getTestData().port + "/index.jsp"); getLocalContainer().start(); PingUtils.assertPingTrue(warPingURL.getPath() + " not started", "Sample page for testing", warPingURL, getLogger()); getLocalContainer().stop(); PingUtils.assertPingFalse(warPingURL.getPath() + " not stopped", warPingURL, getLogger()); }
/** * Test deployment of a WAR with multi path. * @throws Exception If anything goes wrong. */ public void testDeployWarDefinedWithMultipleContextPath() throws Exception { WAR war = (WAR) new DefaultDeployableFactory().createDeployable(getContainer().getId(), getTestData().getTestDataFileFor("simple-war"), DeployableType.WAR); war.setContext("/a/b"); getLocalContainer().getConfiguration().addDeployable(war); URL warPingURL = new URL("http://localhost:" + getTestData().port + "/a/b/index.jsp"); getLocalContainer().start(); PingUtils.assertPingTrue(warPingURL.getPath() + " not started", "Sample page for testing", warPingURL, getLogger()); getLocalContainer().stop(); PingUtils.assertPingFalse(warPingURL.getPath() + " not stopped", warPingURL, getLogger()); }
/** * Test HAR deployment. * @throws Exception If anything goes wrong. */ public void testDeployHarStatically() throws Exception { Deployable har = new DefaultDeployableFactory().createDeployable(getContainer().getId(), getTestData() .getTestDataFileFor("simple-har"), DeployableType.HAR); getLocalContainer().getConfiguration().addDeployable(har); getLocalContainer().start(); assertEquals(State.STARTED, getContainer().getState()); // We're verifying that the HAR is successfully deployed by querying it via jmx MBeanServerConnection server = createMBeanServerConnection(); ObjectName objectName = ObjectName.getInstance(SIMPLE_HAR_OBJECT_NAME); // getMBeanInfo will throw exception if not found MBeanInfo mbeanInfo = server.getMBeanInfo(objectName); getLogger().debug("The HAR MBean found: " + mbeanInfo.getDescription(), this.getClass().getName()); assertNotNull("MBean description is null", mbeanInfo.getDescription()); getLocalContainer().stop(); } }
/** * Start container with an EAR containing one WAR. * @throws Exception If anything goes wrong. */ public void testStartWithOneEarWithOneWarDeployed() throws Exception { Deployable ear = new DefaultDeployableFactory().createDeployable(getContainer().getId(), getTestData().getTestDataFileFor("simple-ear"), DeployableType.EAR); getLocalContainer().getConfiguration().addDeployable(ear); URL earPingURL = new URL("http://localhost:" + getTestData().port + "/simpleweb/index.jsp"); getLocalContainer().start(); PingUtils.assertPingTrue("simple ear not started", earPingURL, getLogger()); getLocalContainer().stop(); PingUtils.assertPingFalse("simple ear not stopped", earPingURL, getLogger()); } }
/** * Tests that a servlet has access to a class in added to the extraclasspath * @throws MalformedURLException If the WAR URL cannot be built. */ public void testLoadClass() throws MalformedURLException { Deployable war = new DefaultDeployableFactory().createDeployable(getContainer().getId(), getTestData() .getTestDataFileFor("classpath-war"), DeployableType.WAR); getLocalContainer().getConfiguration().addDeployable(war); URL warPingURL = new URL("http://localhost:" + getTestData().port + "/" + "classpath-war/test"); getLocalContainer().start(); PingUtils.assertPingTrue("simple war should have been started at this point", warPingURL, getLogger()); getLocalContainer().stop(); PingUtils.assertPingFalse("simple war should have been stopped at this point", warPingURL, getLogger()); }
/** * Start container with an empty EAR. * @throws Exception If anything goes wrong. */ public void testStartWithOneEmptyEarDeployed() throws Exception { // The Apache Geronimo server doesn't like empty EARs if (getContainer().getId().startsWith("geronimo")) { return; } Deployable ear = new DefaultDeployableFactory().createDeployable(getContainer().getId(), getTestData().getTestDataFileFor("empty-ear"), DeployableType.EAR); getLocalContainer().getConfiguration().addDeployable(ear); getLocalContainer().start(); assertEquals(State.STARTED, getContainer().getState()); getLocalContainer().stop(); assertEquals(State.STOPPED, getContainer().getState()); }
/** * Test static EJB deployment. * @throws Exception If anything goes wrong. */ public void testDeployEjbStatically() throws Exception { setContainer(createContainer(createConfiguration(ConfigurationType.STANDALONE))); Deployable ejb = new DefaultDeployableFactory().createDeployable(getContainer().getId(), getTestData().getTestDataFileFor("simple-ejb"), DeployableType.EJB); getLocalContainer().getConfiguration().addDeployable(ejb); getLocalContainer().start(); SampleHome home = jndiLookup("SampleEJB"); Sample sample = home.create(); assertTrue("Should have returned true", sample.isWorking()); getLocalContainer().stop(); } }