/** * 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); }
/** * Test start with one expanded WAR. * @throws Exception If anything goes wrong. */ public void testStartWithOneExpandedWarDeployed() throws Exception { // The Apache Geronimo server doesn't support expanded WARs if (getContainer().getId().startsWith("geronimo")) { return; } // 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, "expanded-war")); expandTask.setSrc(new File(getTestData().getTestDataFileFor("expanded-war"))); expandTask.execute(); Deployable war = new DefaultDeployableFactory().createDeployable(getContainer().getId(), new File(artifactDir, "expanded-war").getPath(), DeployableType.WAR); getLocalContainer().getConfiguration().addDeployable(war); URL warPingURL = new URL("http://localhost:" + getTestData().port + "/expanded-war" + "/index.html"); 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 static AOP deployment. * @throws Exception If anything goes wrong. */ public void testDeployAopStatically() throws Exception { Deployable aop = new DefaultDeployableFactory().createDeployable(getContainer().getId(), getTestData() .getTestDataFileFor("simple-aop"), DeployableType.AOP); getLocalContainer().getConfiguration().addDeployable(aop); getLocalContainer().start(); assertEquals(State.STARTED, getContainer().getState()); // We're verifying that the AOP is successfully deployed by querying for the defined // pointcut name via jmx MBeanServerConnection server = createMBeanServerConnection(); ObjectName objectName = ObjectName.getInstance(JBOSSAOP_ASPECTMANAGER_OBJECT_NAME); String pointcuts = (String) server.invoke(objectName, "pointcuts", new Object[] {}, new String[] {}); getLogger().debug("Registered aop pointcuts: " + pointcuts.toString(), this.getClass().getName()); assertTrue("Dummy cargo aop pointcut not found", pointcuts.contains("cargoTestDataSimpleAop")); getLocalContainer().stop(); } }
/** * Test whether setting system properties is working properly. * @throws Exception If anything goes wrong. */ public void testSystemProperty() throws Exception { String random = UUID.randomUUID().toString(); // Copies the testdata artifact File artifactDir = new File(getTestData().targetDir).getParentFile(); File artifactFile = new File(artifactDir, "systemproperty.war").getAbsoluteFile(); Copy copyTask = (Copy) new AntUtils().createProject().createTask("copy"); copyTask.setTofile(artifactFile); copyTask.setFile(new File(getTestData().getTestDataFileFor("systemproperty-war"))); copyTask.execute(); Deployable war = new DefaultDeployableFactory().createDeployable(getContainer().getId(), artifactFile.getAbsolutePath(), DeployableType.WAR); getLocalContainer().getConfiguration().addDeployable(war); URL pingURL = new URL("http://localhost:" + getTestData().port + "/systemproperty/test?systemPropertyName=random"); getInstalledLocalContainer().getSystemProperties().put("random", random); getLocalContainer().start(); assertEquals(State.STARTED, getContainer().getState()); PingUtils.assertPingTrue(pingURL.getPath() + " not started", random, pingURL, getLogger()); getLocalContainer().stop(); assertEquals(State.STOPPED, getContainer().getState()); PingUtils.assertPingFalse(pingURL.getPath() + " not stopped", pingURL, 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()); }
/** * 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()); } }
/** * 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()); } }
Deployable war = new DefaultDeployableFactory().createDeployable(getContainer().getId(), getTestData().getTestDataFileFor("authentication-war"), DeployableType.WAR);
/** * 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()); }
(WAR) new DefaultDeployableFactory().createDeployable(getContainer().getId(), getTestData().getTestDataFileFor("classpath-war"), DeployableType.WAR); war.setExtraClasspath(new String[] {simpleJar});
/** * 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(); } }
/** * Test WAR hot deployment. * @throws Exception If anything goes wrong. */ public void testWarHotDeployment() throws Exception { setContainer(createContainer(createConfiguration(ConfigurationType.STANDALONE))); WAR war = (WAR) new DefaultDeployableFactory().createDeployable(getContainer().getId(), getTestData().getTestDataFileFor("simple-war"), DeployableType.WAR); war.setContext("simple"); URL warPingURL = new URL("http://localhost:" + getTestData().port + "/" + war.getContext() + "/index.jsp"); getLocalContainer().start(); PingUtils.assertPingFalse("simple war should not be started at this point", warPingURL, getLogger()); Deployer deployer = createDeployer(getContainer()); DeployableMonitor deployableMonitor = new URLDeployableMonitor(warPingURL); deployableMonitor.setLogger(this.getLogger()); deployer.deploy(war, deployableMonitor); PingUtils.assertPingTrue("simple war should have been started at this point", warPingURL, getLogger()); getLocalContainer().stop(); } }