[jboss-svn-commits] JBoss Common SVN: r4679 - in arquillian/trunk/containers/tomcat-embedded-6: src/main/java/org/jboss/arquillian/container/tomcat/embedded_6 and 4 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Jul 5 15:44:15 EDT 2010


Author: dan.j.allen
Date: 2010-07-05 15:44:14 -0400 (Mon, 05 Jul 2010)
New Revision: 4679

Added:
   arquillian/trunk/containers/tomcat-embedded-6/src/main/java/org/jboss/arquillian/container/tomcat/embedded_6/TomcatEmbeddedDeploymentAppender.java
   arquillian/trunk/containers/tomcat-embedded-6/src/main/resources/META-INF/services/org.jboss.arquillian.spi.AuxiliaryArchiveAppender
   arquillian/trunk/containers/tomcat-embedded-6/src/test/java/org/jboss/arquillian/container/tomcat/embedded_6/TomcatEmbeddedInContainerTestCase.java
   arquillian/trunk/containers/tomcat-embedded-6/src/test/resources/org/jboss/arquillian/container/tomcat/embedded_6/test/war/in-container-web.xml
Modified:
   arquillian/trunk/containers/tomcat-embedded-6/pom.xml
   arquillian/trunk/containers/tomcat-embedded-6/src/main/java/org/jboss/arquillian/container/tomcat/embedded_6/TomcatConfiguration.java
   arquillian/trunk/containers/tomcat-embedded-6/src/main/java/org/jboss/arquillian/container/tomcat/embedded_6/TomcatContainer.java
   arquillian/trunk/containers/tomcat-embedded-6/src/test/java/org/jboss/arquillian/container/tomcat/embedded_6/TomcatIntegrationTestCase.java
   arquillian/trunk/containers/tomcat-embedded-6/src/test/resources/arquillian.xml
   arquillian/trunk/containers/tomcat-embedded-6/src/test/resources/org/jboss/arquillian/container/tomcat/embedded_6/test/war/web.xml
Log:
ARQ-189 switch to using extension-tomcat from ShrinkWrap; add in-container test; cleanups


Modified: arquillian/trunk/containers/tomcat-embedded-6/pom.xml
===================================================================
--- arquillian/trunk/containers/tomcat-embedded-6/pom.xml	2010-07-05 13:10:17 UTC (rev 4678)
+++ arquillian/trunk/containers/tomcat-embedded-6/pom.xml	2010-07-05 19:44:14 UTC (rev 4679)
@@ -22,24 +22,50 @@
    <dependencies>
 
       <dependency>
+         <groupId>org.jboss.arquillian</groupId>
+         <artifactId>arquillian-spi</artifactId>
+         <version>${project.version}</version>
+      </dependency>
+
+      <dependency>
+         <groupId>org.jboss.shrinkwrap</groupId>
+         <artifactId>shrinkwrap-extension-tomcat</artifactId>
+         <version>1.0.0-SNAPSHOT</version>
+         <scope>provided</scope>
+      </dependency>
+
+      <dependency>
+         <groupId>org.jboss.shrinkwrap</groupId>
+         <artifactId>shrinkwrap-impl-base</artifactId>
+      </dependency>
+
+      <!-- Not yet working -->
+      <dependency>
         <groupId>org.jboss.arquillian.protocol</groupId>
-        <artifactId>arquillian-protocol-local</artifactId>
+        <artifactId>arquillian-protocol-servlet-ee6</artifactId>
         <version>${project.version}</version>
       </dependency>
 
+      <!-- TODO We likely need a servlet packager to restrict use of EAR -->
       <dependency>
          <groupId>org.jboss.arquillian.packager</groupId>
-         <artifactId>arquillian-packager-applicationarchive</artifactId>
+         <artifactId>arquillian-packager-javaee</artifactId>
          <version>${project.version}</version>
       </dependency>
-    
+
       <dependency>
          <groupId>org.jboss.arquillian.testenricher</groupId>
-         <artifactId>arquillian-testenricher-ejb</artifactId>
+         <artifactId>arquillian-testenricher-cdi</artifactId>
          <version>${project.version}</version>
       </dependency>
 
       <dependency>
+         <groupId>org.jboss.arquillian.testenricher</groupId>
+         <artifactId>arquillian-testenricher-resource</artifactId>
+         <version>${project.version}</version>
+      </dependency>
+    
+      <dependency>
          <groupId>org.apache.tomcat</groupId>
          <artifactId>catalina</artifactId>
          <version>${version.org.apache.tomcat}</version>

Modified: arquillian/trunk/containers/tomcat-embedded-6/src/main/java/org/jboss/arquillian/container/tomcat/embedded_6/TomcatConfiguration.java
===================================================================
--- arquillian/trunk/containers/tomcat-embedded-6/src/main/java/org/jboss/arquillian/container/tomcat/embedded_6/TomcatConfiguration.java	2010-07-05 13:10:17 UTC (rev 4678)
+++ arquillian/trunk/containers/tomcat-embedded-6/src/main/java/org/jboss/arquillian/container/tomcat/embedded_6/TomcatConfiguration.java	2010-07-05 19:44:14 UTC (rev 4679)
@@ -29,7 +29,7 @@
 
 	private String bindAddress = "localhost";
 
-	private int httpPort = 8080;
+	private int bindHttpPort = 8080;
 
 	private String tomcatHome = null;
 	
@@ -37,7 +37,7 @@
 
 	private String workDir = null;
 	
-	private String serverName = null;
+	private String serverName = "tomcat";
 
 	public ContainerProfile getContainerProfile() {
 		return ContainerProfile.CLIENT;
@@ -51,21 +51,18 @@
 		this.bindAddress = bindAddress;
 	}
 
-	public int getHttpPort() {
-		return httpPort;
+	public int getBindHttpPort() {
+		return bindHttpPort;
 	}
 
 	/**
-	 * Set the HTTP Connect port. <br/>
-	 * This is not the JBoss AS HTTP Bind port, bind port must be set in the
-	 * JBoss XML configuration.<br/>
-	 * <b>Only set this if default http port is changed in JBoss AS!</b>
+	 * Set the HTTP bind port.
 	 * 
-	 * @param httpPort
-	 *            HTTP Connect port
+	 * @param httpBindPort
+	 *            HTTP bind port
 	 */
-	public void setHttpPort(int httpPort) {
-		this.httpPort = httpPort;
+	public void setBindHttpPort(int bindHttpPort) {
+		this.bindHttpPort = bindHttpPort;
 	}
 
 	public void setTomcatHome(String jbossHome) {

Modified: arquillian/trunk/containers/tomcat-embedded-6/src/main/java/org/jboss/arquillian/container/tomcat/embedded_6/TomcatContainer.java
===================================================================
--- arquillian/trunk/containers/tomcat-embedded-6/src/main/java/org/jboss/arquillian/container/tomcat/embedded_6/TomcatContainer.java	2010-07-05 13:10:17 UTC (rev 4678)
+++ arquillian/trunk/containers/tomcat-embedded-6/src/main/java/org/jboss/arquillian/container/tomcat/embedded_6/TomcatContainer.java	2010-07-05 19:44:14 UTC (rev 4679)
@@ -19,6 +19,7 @@
 import java.io.File;
 import java.io.IOException;
 import java.net.InetAddress;
+import java.net.URL;
 import java.net.UnknownHostException;
 import java.util.ArrayList;
 import java.util.List;
@@ -29,52 +30,40 @@
 import org.apache.catalina.Host;
 import org.apache.catalina.connector.Connector;
 import org.apache.catalina.core.StandardContext;
-import org.apache.catalina.session.StandardManager;
 import org.apache.catalina.startup.Embedded;
+import org.jboss.arquillian.protocol.servlet.ServletMethodExecutor;
 import org.jboss.arquillian.spi.Configuration;
 import org.jboss.arquillian.spi.ContainerMethodExecutor;
 import org.jboss.arquillian.spi.Context;
 import org.jboss.arquillian.spi.DeployableContainer;
 import org.jboss.arquillian.spi.DeploymentException;
 import org.jboss.arquillian.spi.LifecycleException;
-import org.jboss.arquillian.spi.TestMethodExecutor;
-import org.jboss.arquillian.spi.TestResult;
 import org.jboss.shrinkwrap.api.Archive;
-import org.jboss.shrinkwrap.api.exporter.ZipExporter;
+import org.jboss.shrinkwrap.tomcat.api.ShrinkWrapStandardContext;
 
 /**
  * Arquillian {@link DeployableContainer} adaptor for a target Tomcat
- * environment; responible for lifecycle and deployment operations
+ * environment; responsible for lifecycle and deployment operations
  * 
  * @author <a href="mailto:jean.deruelle at gmail.com">Jean Deruelle</a>
+ * @author Dan Allen
  * @version $Revision: $
  */
 public class TomcatContainer implements DeployableContainer {
 
 	private static final String ENV_VAR = "${env.";
 
-	// -------------------------------------------------------------------------------------||
-	// Class Members
-	// ----------------------------------------------------------------------||
-	// -------------------------------------------------------------------------------------||	
+   private static final String HTTP_PROTOCOL = "http";
 
-	private static final String SEPARATOR = "/";
+   private static final String SEPARATOR = "/";
 
-	/**
-	 * Logger
-	 */
-	private static final Logger log = Logger.getLogger(TomcatContainer.class
-			.getName());
+	private static final Logger log = Logger.getLogger(TomcatContainer.class.getName());
 
-	// -------------------------------------------------------------------------------------||
-	// Instance Members
-	// -------------------------------------------------------------------||
-	// -------------------------------------------------------------------------------------||
-
 	/**
 	 * Tomcat embedded
 	 */
-	private Embedded tomcatEmbedded;
+	private Embedded embedded;
+   
 	/**
 	 * Engine contained within Tomcat embedded
 	 */
@@ -86,49 +75,28 @@
 	private Host standardHost;	
 
 	/**
-	 * Tomcat configuration
+	 * Tomcat container configuration
 	 */
 	private TomcatConfiguration configuration;
 
-	private String serverName = "tomcat";
+	private String serverName;
 	
-	private String host = "localhost";
+	private String bindAddress;
 
-	private int port = 8080;
+	private int bindPort;
 
 	private boolean wasStarted;
 
 	private final List<String> failedUndeployments = new ArrayList<String>();
 
-	// -------------------------------------------------------------------------------------||
-	// Required Implementations
-	// -----------------------------------------------------------||
-	// -------------------------------------------------------------------------------------||
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.jboss.arquillian.spi.DeployableContainer#setup(org.jboss.arquillian
-	 * .spi.Context, org.jboss.arquillian.spi.Configuration)
-	 */
 	public void setup(Context context, Configuration configuration) {
 		this.configuration = configuration
 				.getContainerConfig(TomcatConfiguration.class);
-		host = this.configuration.getBindAddress();
-		port = this.configuration.getHttpPort();
-		if (this.configuration.getServerName() != null) {
-			serverName = this.configuration.getServerName();
-		}
+		bindAddress = this.configuration.getBindAddress();
+		bindPort = this.configuration.getBindHttpPort();
+      serverName = this.configuration.getServerName();
 	}
 
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.jboss.arquillian.spi.DeployableContainer#start(org.jboss.arquillian
-	 * .spi.Context)
-	 */
 	public void start(Context context) throws LifecycleException {
 		try {
 			startTomcatEmbedded();
@@ -137,13 +105,6 @@
 		}
 	}
 
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.jboss.arquillian.spi.DeployableContainer#stop(org.jboss.arquillian
-	 * .spi.Context)
-	 */
 	public void stop(Context context) throws LifecycleException {
 		try {
 			removeFailedUnDeployments();
@@ -159,63 +120,53 @@
 		}
 	}
 
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.jboss.arquillian.spi.DeployableContainer#deploy(org.jboss.arquillian
-	 * .spi.Context, org.jboss.shrinkwrap.api.Archive)
-	 */
 	public ContainerMethodExecutor deploy(Context context,
 			final Archive<?> archive) throws DeploymentException {
 		if (archive == null) {
 			throw new IllegalArgumentException("Archive must be specified");
 		}
-		if (tomcatEmbedded == null) {
+		if (embedded == null) {
 			throw new IllegalStateException("start has not been called!");
 		}
-		final String deploymentName = archive.getName();
 
-		File file = new File(deploymentName);
-		archive.as(ZipExporter.class).exportZip(file, true);
-
-		try {
-			StandardContext standardContext = (StandardContext) tomcatEmbedded
-					.createContext(deploymentName, file.getAbsolutePath());
-			StandardManager manager = new StandardManager();		
-			standardContext.setManager(manager);
+      try {
+         StandardContext standardContext = archive.as(ShrinkWrapStandardContext.class);
 			standardContext.setParent(standardHost);
          if (configuration.getTomcatWorkDir() != null)
          {
             standardContext.setWorkDir(configuration.getTomcatWorkDir());
          }
+         // possible option
+         standardContext.setUnpackWAR(false);
 			standardHost.addChild(standardContext);
+         context.add(StandardContext.class, standardContext);
 		} catch (Exception e) {
-			throw new DeploymentException("Failed to deploy " + deploymentName,
-					e);
+			throw new DeploymentException("Failed to deploy " + archive.getName(), e);
 		}
-		return new ContainerMethodExecutor() {
-			
-			public TestResult invoke(TestMethodExecutor testMethodExecutor) {
-				// nothing to do here, done by the test
-				return null;
-			}
-		};		
+
+      try
+      {
+         return new ServletMethodExecutor(
+               new URL(
+                     HTTP_PROTOCOL,
+                     bindAddress,
+                     bindPort,
+                     "/")
+               );
+      }
+      catch (Exception e)
+      {
+         throw new RuntimeException("Could not create ContainerMethodExecutor", e);
+      }
 	}
 
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.jboss.arquillian.spi.DeployableContainer#undeploy(org.jboss.arquillian
-	 * .spi.Context, org.jboss.shrinkwrap.api.Archive)
-	 */
 	public void undeploy(Context context, Archive<?> archive)
 			throws DeploymentException {
-		if (archive == null) {
-			throw new IllegalArgumentException("Archive must be specified");
-		}		
-		undeploy(archive.getName());
+      StandardContext standardContext = context.get(StandardContext.class);
+      if (standardContext != null)
+      {
+         standardHost.removeChild(standardContext);
+      }
 	}
 
 	private void undeploy(String name) throws DeploymentException {
@@ -223,8 +174,6 @@
 		if(child != null) {
 			standardHost.removeChild(child);
 		}
-		File file = new File(name);
-		file.delete();
 	}
 
 	private void removeFailedUnDeployments() throws IOException {
@@ -241,16 +190,15 @@
 			}
 		}
 		if (remainingDeployments.size() > 0) {
-			log.severe("Failed to undeploy these artifacts: "
-					+ remainingDeployments);
+			log.severe("Failed to undeploy these artifacts: " + remainingDeployments);
 		}
 		failedUndeployments.clear();
 	}
 
 	protected void startTomcatEmbedded() throws UnknownHostException, org.apache.catalina.LifecycleException {
 		// creating the tomcat embedded == service tag in server.xml
-		tomcatEmbedded = new Embedded();
-		tomcatEmbedded.setName(serverName);
+		embedded = new Embedded();
+		embedded.setName(serverName);
 		String tomcatHome = configuration.getTomcatHome();
 		if(tomcatHome != null) {
 			if(tomcatHome.startsWith(ENV_VAR)) {
@@ -260,39 +208,37 @@
 			} 
 			if(tomcatHome != null) {
 				tomcatHome = new File(tomcatHome).getAbsolutePath();
-				tomcatEmbedded.setCatalinaBase(tomcatHome);
-				tomcatEmbedded.setCatalinaHome(tomcatHome);
+				embedded.setCatalinaBase(tomcatHome);
+				embedded.setCatalinaHome(tomcatHome);
 			}						
 		}
 		// creates the engine == engine tag in server.xml
-		engine = tomcatEmbedded.createEngine();
+		engine = embedded.createEngine();
 		engine.setName(serverName);
-		engine.setDefaultHost(host + SEPARATOR);
-		engine.setService(tomcatEmbedded);
-		tomcatEmbedded.setContainer(engine);
-		tomcatEmbedded.addEngine(engine);
+		engine.setDefaultHost(bindAddress + SEPARATOR);
+		engine.setService(embedded);
+		embedded.setContainer(engine);
+		embedded.addEngine(engine);
 		// creates the host == host tag in server.xml
 		if(tomcatHome != null) {
-			standardHost = tomcatEmbedded.createHost(host + SEPARATOR, tomcatEmbedded.getCatalinaHome() + configuration
-				.getAppBase());
+			standardHost = embedded.createHost(bindAddress + SEPARATOR, embedded.getCatalinaHome() + configuration.getAppBase());
 		} else {
-			standardHost = tomcatEmbedded.createHost(host + SEPARATOR, System.getProperty("java.io.tmpdir"));
+			standardHost = embedded.createHost(bindAddress + SEPARATOR, System.getProperty("java.io.tmpdir"));
 		}
 		standardHost.setParent(engine);
 		engine.addChild(standardHost);
 		// creates an http connector == connector in server.xml
 		// TODO externalize this stuff in the configuration
-		Connector connector = tomcatEmbedded.createConnector(InetAddress
-				.getByName(host), port, false);
-		tomcatEmbedded.addConnector(connector);
+		Connector connector = embedded.createConnector(InetAddress.getByName(bindAddress), bindPort, false);
+		embedded.addConnector(connector);
 		connector.setContainer(engine);
 		//starts tomcat embedded
-		tomcatEmbedded.init();
-		tomcatEmbedded.start();
+		embedded.init();
+		embedded.start();
 		wasStarted = true;
 	}
 
 	protected void stopTomcatEmbedded() throws LifecycleException, org.apache.catalina.LifecycleException {
-		tomcatEmbedded.stop();
+		embedded.stop();
 	}
 }

Added: arquillian/trunk/containers/tomcat-embedded-6/src/main/java/org/jboss/arquillian/container/tomcat/embedded_6/TomcatEmbeddedDeploymentAppender.java
===================================================================
--- arquillian/trunk/containers/tomcat-embedded-6/src/main/java/org/jboss/arquillian/container/tomcat/embedded_6/TomcatEmbeddedDeploymentAppender.java	                        (rev 0)
+++ arquillian/trunk/containers/tomcat-embedded-6/src/main/java/org/jboss/arquillian/container/tomcat/embedded_6/TomcatEmbeddedDeploymentAppender.java	2010-07-05 19:44:14 UTC (rev 4679)
@@ -0,0 +1,51 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2010, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.arquillian.container.tomcat.embedded_6;
+
+import org.jboss.arquillian.spi.AuxiliaryArchiveAppender;
+import org.jboss.arquillian.spi.TestEnricher;
+import org.jboss.arquillian.testenricher.cdi.CDIInjectionEnricher;
+import org.jboss.arquillian.testenricher.resource.ResourceInjectionEnricher;
+import org.jboss.shrinkwrap.api.Archive;
+import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.spec.JavaArchive;
+
+/**
+ * Package the test enrichers supported by the Jetty Embedded 6.1.x Container plugin.
+ *
+ * @author <a href="mailto:aslak at conduct.no">Aslak Knutsen</a>
+ * @author Dan Allen
+ * @version $Revision: $
+ */
+public class TomcatEmbeddedDeploymentAppender implements AuxiliaryArchiveAppender
+{
+
+   public Archive<?> createAuxiliaryArchive()
+   {
+      JavaArchive archive = ShrinkWrap.create("arquillian-tomcat-testenrichers.jar", JavaArchive.class)
+                        .addPackages(
+                              false,
+//                              CDIInjectionEnricher.class.getPackage(),
+                              ResourceInjectionEnricher.class.getPackage())
+                        .addServiceProvider(
+                              TestEnricher.class,
+//                              CDIInjectionEnricher.class,
+                              ResourceInjectionEnricher.class);
+      return archive;
+   }
+
+}

Added: arquillian/trunk/containers/tomcat-embedded-6/src/main/resources/META-INF/services/org.jboss.arquillian.spi.AuxiliaryArchiveAppender
===================================================================
--- arquillian/trunk/containers/tomcat-embedded-6/src/main/resources/META-INF/services/org.jboss.arquillian.spi.AuxiliaryArchiveAppender	                        (rev 0)
+++ arquillian/trunk/containers/tomcat-embedded-6/src/main/resources/META-INF/services/org.jboss.arquillian.spi.AuxiliaryArchiveAppender	2010-07-05 19:44:14 UTC (rev 4679)
@@ -0,0 +1 @@
+org.jboss.arquillian.container.tomcat.embedded_6.TomcatEmbeddedDeploymentAppender

Added: arquillian/trunk/containers/tomcat-embedded-6/src/test/java/org/jboss/arquillian/container/tomcat/embedded_6/TomcatEmbeddedInContainerTestCase.java
===================================================================
--- arquillian/trunk/containers/tomcat-embedded-6/src/test/java/org/jboss/arquillian/container/tomcat/embedded_6/TomcatEmbeddedInContainerTestCase.java	                        (rev 0)
+++ arquillian/trunk/containers/tomcat-embedded-6/src/test/java/org/jboss/arquillian/container/tomcat/embedded_6/TomcatEmbeddedInContainerTestCase.java	2010-07-05 19:44:14 UTC (rev 4679)
@@ -0,0 +1,101 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2010, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.arquillian.container.tomcat.embedded_6;
+
+import java.io.InputStream;
+import java.net.URL;
+import java.util.logging.Logger;
+import javax.annotation.Resource;
+
+import org.jboss.arquillian.api.Deployment;
+import org.jboss.arquillian.container.tomcat.embedded_6.test.war.HelloWorldServlet;
+import org.jboss.arquillian.junit.Arquillian;
+import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.spec.WebArchive;
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+/**
+ * Tests that Tomcat deployments into the Tomcat server work through the
+ * Arquillian lifecycle
+ * 
+ * @author <a href="mailto:jean.deruelle at gmail.com">Jean Deruelle</a>
+ * @version $Revision: $
+ */
+ at RunWith(Arquillian.class)
+public class TomcatEmbeddedInContainerTestCase {
+
+	private static final String HELLO_WORLD_URL = "http://localhost:8888/test/hello";
+
+	// -------------------------------------------------------------------------------------||
+	// Class Members
+	// ----------------------------------------------------------------------||
+	// -------------------------------------------------------------------------------------||
+
+	/**
+	 * Logger
+	 */
+	private static final Logger log = Logger
+			.getLogger(TomcatEmbeddedInContainerTestCase.class.getName());
+
+	// -------------------------------------------------------------------------------------||
+	// Instance Members
+	// -------------------------------------------------------------------||
+	// -------------------------------------------------------------------------------------||
+
+	/**
+	 * Define the deployment
+	 */
+	@Deployment
+	public static WebArchive createTestArchive() {
+		return ShrinkWrap.create("test.war", WebArchive.class)
+         .addClasses(HelloWorldServlet.class)
+         .addWebResource(HelloWorldServlet.class.getPackage(), "in-container-web.xml", "web.xml");
+	}
+
+	// -------------------------------------------------------------------------------------||
+	// Tests
+	// ------------------------------------------------------------------------------||
+	// -------------------------------------------------------------------------------------||
+
+   @Resource(name = "name") String name;
+
+	/**
+	 * Ensures the {@link HelloWorldServlet} returns the expected response
+	 */
+	@Test
+	public void testHelloWorldServlet() throws Exception {
+		// Define the input and expected outcome
+		final String expected = "Hello, world!";
+
+		URL url = new URL(HELLO_WORLD_URL);
+		InputStream in = url.openConnection().getInputStream();
+
+		byte[] buffer = new byte[10000];
+		int len = in.read(buffer);
+		String httpResponse = "";
+		for (int q = 0; q < len; q++)
+			httpResponse += (char) buffer[q];
+
+		// Test
+		Assert.assertEquals("Expected output was not equal by value", expected,
+				httpResponse);
+		log.info("Got expected result from Http Servlet: " + httpResponse);
+      log.info("Name: " + name);
+	}
+}

Modified: arquillian/trunk/containers/tomcat-embedded-6/src/test/java/org/jboss/arquillian/container/tomcat/embedded_6/TomcatIntegrationTestCase.java
===================================================================
--- arquillian/trunk/containers/tomcat-embedded-6/src/test/java/org/jboss/arquillian/container/tomcat/embedded_6/TomcatIntegrationTestCase.java	2010-07-05 13:10:17 UTC (rev 4678)
+++ arquillian/trunk/containers/tomcat-embedded-6/src/test/java/org/jboss/arquillian/container/tomcat/embedded_6/TomcatIntegrationTestCase.java	2010-07-05 19:44:14 UTC (rev 4679)
@@ -42,7 +42,7 @@
 @Run(RunModeType.AS_CLIENT)
 public class TomcatIntegrationTestCase {
 
-	private static final String HELLO_WORLD_URL = "http://127.0.0.1:8080/test.war/hello";
+	private static final String HELLO_WORLD_URL = "http://localhost:8888/test/hello";
 
 	// -------------------------------------------------------------------------------------||
 	// Class Members
@@ -91,7 +91,6 @@
 		String httpResponse = "";
 		for (int q = 0; q < len; q++)
 			httpResponse += (char) buffer[q];
-		System.out.println("Received the follwing HTTP response: " + httpResponse);
 
 		// Test
 		Assert.assertEquals("Expected output was not equal by value", expected,

Modified: arquillian/trunk/containers/tomcat-embedded-6/src/test/resources/arquillian.xml
===================================================================
--- arquillian/trunk/containers/tomcat-embedded-6/src/test/resources/arquillian.xml	2010-07-05 13:10:17 UTC (rev 4678)
+++ arquillian/trunk/containers/tomcat-embedded-6/src/test/resources/arquillian.xml	2010-07-05 19:44:14 UTC (rev 4679)
@@ -1,16 +1,14 @@
 <?xml version="1.0"?>
-
 <arquillian xmlns="http://jboss.com/arquillian"
 		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-		xmlns:tomcat="urn:arq:org.jboss.arquillian.container.tomcat.embedded_6">
+		xmlns:tomcat6="urn:arq:org.jboss.arquillian.container.tomcat.embedded_6">
 
-	<tomcat:container>
-		<!--tomcat:tomcatHome>/home/deruelle/servers/apache-tomcat-6.0.20</tomcat:tomcatHome-->
-		<!--tomcat:tomcatHome>${env.CATALINA_HOME}</tomcat:tomcatHome-->
-		<tomcat:workDir>target/work</tomcat:workDir> 
-		<tomcat:appBase>target/webapps</tomcat:appBase> 
-		<tomcat:bindAddress>127.0.0.1</tomcat:bindAddress>
-		<tomcat:httpPort>8080</tomcat:httpPort>
-	</tomcat:container>	
+	<tomcat6:container>
+		<!--tomcat6:tomcatHome>/path/to/apache-tomcat-6.0.20</tomcat6:tomcatHome-->
+		<!--tomcat6:tomcatHome>${env.CATALINA_HOME}</tomcat6:tomcatHome-->
+		<tomcat6:workDir>target/tomcat/work</tomcat6:workDir> 
+		<tomcat6:appBase>target/tomcat/webapps</tomcat6:appBase> 
+		<tomcat6:bindHttpPort>8888</tomcat6:bindHttpPort>
+	</tomcat6:container>
 
 </arquillian>

Added: arquillian/trunk/containers/tomcat-embedded-6/src/test/resources/org/jboss/arquillian/container/tomcat/embedded_6/test/war/in-container-web.xml
===================================================================
--- arquillian/trunk/containers/tomcat-embedded-6/src/test/resources/org/jboss/arquillian/container/tomcat/embedded_6/test/war/in-container-web.xml	                        (rev 0)
+++ arquillian/trunk/containers/tomcat-embedded-6/src/test/resources/org/jboss/arquillian/container/tomcat/embedded_6/test/war/in-container-web.xml	2010-07-05 19:44:14 UTC (rev 4679)
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<web-app version="2.5"
+   xmlns="http://java.sun.com/xml/ns/javaee"
+   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+   xsi:schemaLocation="
+      http://java.sun.com/xml/ns/javaee
+      http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
+
+   <env-entry>
+      <env-entry-name>name</env-entry-name>
+      <env-entry-type>java.lang.String</env-entry-type>
+      <env-entry-value>Tomcat</env-entry-value>
+   </env-entry>
+
+   <servlet>
+      <servlet-name>hello</servlet-name>
+      <servlet-class>org.jboss.arquillian.container.tomcat.embedded_6.test.war.HelloWorldServlet</servlet-class>
+   </servlet>
+
+   <servlet-mapping>
+      <servlet-name>hello</servlet-name>
+      <url-pattern>/hello</url-pattern>
+   </servlet-mapping>
+
+   <servlet>
+      <servlet-name>ServletTestRunner</servlet-name>
+      <servlet-class>org.jboss.arquillian.protocol.servlet.ServletTestRunner</servlet-class>
+   </servlet>
+
+   <servlet-mapping>
+      <servlet-name>ServletTestRunner</servlet-name>
+      <url-pattern>/ArquillianServletRunner</url-pattern>
+   </servlet-mapping>
+
+</web-app>

Modified: arquillian/trunk/containers/tomcat-embedded-6/src/test/resources/org/jboss/arquillian/container/tomcat/embedded_6/test/war/web.xml
===================================================================
--- arquillian/trunk/containers/tomcat-embedded-6/src/test/resources/org/jboss/arquillian/container/tomcat/embedded_6/test/war/web.xml	2010-07-05 13:10:17 UTC (rev 4678)
+++ arquillian/trunk/containers/tomcat-embedded-6/src/test/resources/org/jboss/arquillian/container/tomcat/embedded_6/test/war/web.xml	2010-07-05 19:44:14 UTC (rev 4679)
@@ -1,13 +1,19 @@
-<web-app xmlns="http://java.sun.com/xml/ns/j2ee" version="2.4"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http:/java.sun.com/dtd/web-app_2_3.dtd">
-  <servlet>
-    <servlet-name>hello</servlet-name>
-    <servlet-class>org.jboss.arquillian.container.tomcat.embedded_6.test.war.HelloWorldServlet</servlet-class>
-  </servlet>
+<?xml version="1.0" encoding="UTF-8"?>
+<web-app version="2.5"
+   xmlns="http://java.sun.com/xml/ns/javaee"
+   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+   xsi:schemaLocation="
+      http://java.sun.com/xml/ns/javaee
+      http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
 
-  <servlet-mapping>
-    <servlet-name>hello</servlet-name>
-    <url-pattern>/hello</url-pattern>
-  </servlet-mapping>
-</web-app>
\ No newline at end of file
+   <servlet>
+      <servlet-name>hello</servlet-name>
+      <servlet-class>org.jboss.arquillian.container.tomcat.embedded_6.test.war.HelloWorldServlet</servlet-class>
+   </servlet>
+
+   <servlet-mapping>
+      <servlet-name>hello</servlet-name>
+      <url-pattern>/hello</url-pattern>
+   </servlet-mapping>
+
+</web-app>



More information about the jboss-svn-commits mailing list