[jboss-svn-commits] JBoss Common SVN: r4686 - in arquillian/trunk: containers/glassfish-embedded-3 and 32 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Jul 7 13:54:10 EDT 2010


Author: aslak
Date: 2010-07-07 13:54:08 -0400 (Wed, 07 Jul 2010)
New Revision: 4686

Added:
   arquillian/trunk/protocols/local/src/main/java/org/jboss/arquillian/protocol/local/LocalDeploymentPackager.java
   arquillian/trunk/protocols/local/src/main/resources/META-INF/
   arquillian/trunk/protocols/local/src/main/resources/META-INF/services/
   arquillian/trunk/protocols/local/src/main/resources/META-INF/services/org.jboss.arquillian.spi.DeploymentPackager
   arquillian/trunk/protocols/servlet-ee5/src/main/java/org/jboss/arquillian/protocol/servlet/ServletProtocolDeploymentPackager.java
   arquillian/trunk/protocols/servlet-ee5/src/main/resources/META-INF/services/org.jboss.arquillian.spi.DeploymentPackager
   arquillian/trunk/protocols/servlet-ee5/src/test/java/org/jboss/arquillian/protocol/servlet/ServletProtocolDeploymentPackagerTestCase.java
   arquillian/trunk/protocols/servlet-ee6/src/main/java/org/jboss/arquillian/protocol/servlet/ServletProtocolDeploymentPackager.java
   arquillian/trunk/protocols/servlet-ee6/src/main/resources/META-INF/services/org.jboss.arquillian.spi.DeploymentPackager
   arquillian/trunk/protocols/servlet-ee6/src/test/java/org/jboss/arquillian/protocol/servlet/ServletProtocolDeploymentPackagerTestCase.java
   arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/TestDeployment.java
Removed:
   arquillian/trunk/packagers/applicationarchive/pom.xml
   arquillian/trunk/packagers/applicationarchive/src/
   arquillian/trunk/packagers/javaee/pom.xml
   arquillian/trunk/packagers/javaee/src/
   arquillian/trunk/protocols/servlet-ee5/src/main/resources/META-INF/services/org.jboss.arquillian.spi.AuxiliaryArchiveAppender
   arquillian/trunk/protocols/servlet-ee6/src/main/resources/META-INF/services/org.jboss.arquillian.spi.AuxiliaryArchiveAppender
Modified:
   arquillian/trunk/containers/glassfish-embedded-3/pom.xml
   arquillian/trunk/containers/jbossas-embedded-6/pom.xml
   arquillian/trunk/containers/jbossas-managed-5.1/pom.xml
   arquillian/trunk/containers/jbossas-managed-6/pom.xml
   arquillian/trunk/containers/jbossas-remote-5.1/pom.xml
   arquillian/trunk/containers/jbossas-remote-5/pom.xml
   arquillian/trunk/containers/jbossas-remote-6/pom.xml
   arquillian/trunk/containers/jetty-embedded-6.1/pom.xml
   arquillian/trunk/containers/jetty-embedded-7/pom.xml
   arquillian/trunk/containers/jsr88-remote-1.2/pom.xml
   arquillian/trunk/containers/openejb-embedded-3.1/pom.xml
   arquillian/trunk/containers/openwebbeans-embedded-1/pom.xml
   arquillian/trunk/containers/pom.xml
   arquillian/trunk/containers/reloaded-embedded-1/pom.xml
   arquillian/trunk/containers/tomcat-embedded-6/pom.xml
   arquillian/trunk/containers/weld-ee-embedded-1.1/pom.xml
   arquillian/trunk/containers/weld-se-embedded-1/pom.xml
   arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/ClientDeploymentGenerator.java
   arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/XmlConfigurationBuilderTestCase.java
   arquillian/trunk/impl-base/src/test/resources/arquillian.xml
   arquillian/trunk/packagers/pom.xml
   arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/DeploymentPackager.java
Log:
ARQ-205 Moved DeploymentPackager implementations down to Protocols. The Protocol should know how to repackage/include it self in the application deployment to be able to execute in container.


Modified: arquillian/trunk/containers/glassfish-embedded-3/pom.xml
===================================================================
--- arquillian/trunk/containers/glassfish-embedded-3/pom.xml	2010-07-07 03:19:26 UTC (rev 4685)
+++ arquillian/trunk/containers/glassfish-embedded-3/pom.xml	2010-07-07 17:54:08 UTC (rev 4686)
@@ -52,12 +52,6 @@
       </dependency>
 
       <dependency>
-         <groupId>org.jboss.arquillian.packager</groupId>
-         <artifactId>arquillian-packager-javaee</artifactId>
-         <version>${project.version}</version>
-      </dependency>
-
-      <dependency>
          <groupId>org.jboss.arquillian.testenricher</groupId>
          <artifactId>arquillian-testenricher-cdi</artifactId>
          <version>${project.version}</version>

Modified: arquillian/trunk/containers/jbossas-embedded-6/pom.xml
===================================================================
--- arquillian/trunk/containers/jbossas-embedded-6/pom.xml	2010-07-07 03:19:26 UTC (rev 4685)
+++ arquillian/trunk/containers/jbossas-embedded-6/pom.xml	2010-07-07 17:54:08 UTC (rev 4686)
@@ -58,12 +58,6 @@
 		</dependency>
 
 		<dependency>
-			<groupId>org.jboss.arquillian.packager</groupId>
-			<artifactId>arquillian-packager-javaee</artifactId>
-			<version>${project.version}</version>
-		</dependency>
-
-		<dependency>
 			<groupId>org.jboss.arquillian.testenricher</groupId>
 			<artifactId>arquillian-testenricher-cdi</artifactId>
 			<version>${project.version}</version>

Modified: arquillian/trunk/containers/jbossas-managed-5.1/pom.xml
===================================================================
--- arquillian/trunk/containers/jbossas-managed-5.1/pom.xml	2010-07-07 03:19:26 UTC (rev 4685)
+++ arquillian/trunk/containers/jbossas-managed-5.1/pom.xml	2010-07-07 17:54:08 UTC (rev 4686)
@@ -43,14 +43,7 @@
             <artifactId>arquillian-protocol-servlet-ee5</artifactId>
             <version>${project.version}</version>
         </dependency>
-
         <dependency>
-            <groupId>org.jboss.arquillian.packager</groupId>
-            <artifactId>arquillian-packager-javaee</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-
-        <dependency>
             <groupId>org.jboss.arquillian.testenricher</groupId>
             <artifactId>arquillian-testenricher-ejb</artifactId>
             <version>${project.version}</version>

Modified: arquillian/trunk/containers/jbossas-managed-6/pom.xml
===================================================================
--- arquillian/trunk/containers/jbossas-managed-6/pom.xml	2010-07-07 03:19:26 UTC (rev 4685)
+++ arquillian/trunk/containers/jbossas-managed-6/pom.xml	2010-07-07 17:54:08 UTC (rev 4686)
@@ -45,12 +45,6 @@
         </dependency>
 
         <dependency>
-            <groupId>org.jboss.arquillian.packager</groupId>
-            <artifactId>arquillian-packager-javaee</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-
-        <dependency>
             <groupId>org.jboss.arquillian.testenricher</groupId>
             <artifactId>arquillian-testenricher-cdi</artifactId>
             <version>${project.version}</version>

Modified: arquillian/trunk/containers/jbossas-remote-5/pom.xml
===================================================================
--- arquillian/trunk/containers/jbossas-remote-5/pom.xml	2010-07-07 03:19:26 UTC (rev 4685)
+++ arquillian/trunk/containers/jbossas-remote-5/pom.xml	2010-07-07 17:54:08 UTC (rev 4686)
@@ -43,14 +43,7 @@
          <artifactId>arquillian-protocol-servlet-ee5</artifactId>
          <version>${project.version}</version>
       </dependency>
-
       <dependency>
-         <groupId>org.jboss.arquillian.packager</groupId>
-         <artifactId>arquillian-packager-javaee</artifactId>
-         <version>${project.version}</version>
-      </dependency>
-
-      <dependency>
          <groupId>org.jboss.arquillian.testenricher</groupId>
          <artifactId>arquillian-testenricher-ejb</artifactId>
          <version>${project.version}</version>

Modified: arquillian/trunk/containers/jbossas-remote-5.1/pom.xml
===================================================================
--- arquillian/trunk/containers/jbossas-remote-5.1/pom.xml	2010-07-07 03:19:26 UTC (rev 4685)
+++ arquillian/trunk/containers/jbossas-remote-5.1/pom.xml	2010-07-07 17:54:08 UTC (rev 4686)
@@ -43,14 +43,7 @@
          <artifactId>arquillian-protocol-servlet-ee5</artifactId>
          <version>${project.version}</version>
       </dependency>
-
       <dependency>
-         <groupId>org.jboss.arquillian.packager</groupId>
-         <artifactId>arquillian-packager-javaee</artifactId>
-         <version>${project.version}</version>
-      </dependency>
-
-      <dependency>
          <groupId>org.jboss.arquillian.testenricher</groupId>
          <artifactId>arquillian-testenricher-ejb</artifactId>
          <version>${project.version}</version>

Modified: arquillian/trunk/containers/jbossas-remote-6/pom.xml
===================================================================
--- arquillian/trunk/containers/jbossas-remote-6/pom.xml	2010-07-07 03:19:26 UTC (rev 4685)
+++ arquillian/trunk/containers/jbossas-remote-6/pom.xml	2010-07-07 17:54:08 UTC (rev 4686)
@@ -45,12 +45,6 @@
       </dependency>
 
       <dependency>
-         <groupId>org.jboss.arquillian.packager</groupId>
-         <artifactId>arquillian-packager-javaee</artifactId>
-         <version>${project.version}</version>
-      </dependency>
-
-      <dependency>
          <groupId>org.jboss.arquillian.testenricher</groupId>
          <artifactId>arquillian-testenricher-cdi</artifactId>
          <version>${project.version}</version>

Modified: arquillian/trunk/containers/jetty-embedded-6.1/pom.xml
===================================================================
--- arquillian/trunk/containers/jetty-embedded-6.1/pom.xml	2010-07-07 03:19:26 UTC (rev 4685)
+++ arquillian/trunk/containers/jetty-embedded-6.1/pom.xml	2010-07-07 17:54:08 UTC (rev 4686)
@@ -43,20 +43,14 @@
          <scope>provided</scope>
       </dependency>
 
+      <!-- TODO We likely need a servlet packager to restrict use of EAR -->
       <dependency>
          <groupId>org.jboss.arquillian.protocol</groupId>
          <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-javaee</artifactId>
-         <version>${project.version}</version>
-      </dependency>
-
-      <dependency>
          <groupId>org.jboss.arquillian.testenricher</groupId>
          <artifactId>arquillian-testenricher-cdi</artifactId>
          <version>${project.version}</version>

Modified: arquillian/trunk/containers/jetty-embedded-7/pom.xml
===================================================================
--- arquillian/trunk/containers/jetty-embedded-7/pom.xml	2010-07-07 03:19:26 UTC (rev 4685)
+++ arquillian/trunk/containers/jetty-embedded-7/pom.xml	2010-07-07 17:54:08 UTC (rev 4686)
@@ -50,11 +50,6 @@
       </dependency>
 
       <!-- TODO We likely need a servlet packager to restrict use of EAR -->
-      <dependency>
-         <groupId>org.jboss.arquillian.packager</groupId>
-         <artifactId>arquillian-packager-javaee</artifactId>
-         <version>${project.version}</version>
-      </dependency>
 
       <dependency>
          <groupId>org.jboss.arquillian.testenricher</groupId>

Modified: arquillian/trunk/containers/jsr88-remote-1.2/pom.xml
===================================================================
--- arquillian/trunk/containers/jsr88-remote-1.2/pom.xml	2010-07-07 03:19:26 UTC (rev 4685)
+++ arquillian/trunk/containers/jsr88-remote-1.2/pom.xml	2010-07-07 17:54:08 UTC (rev 4686)
@@ -35,12 +35,6 @@
       </dependency>
 
       <dependency>
-         <groupId>org.jboss.arquillian.packager</groupId>
-         <artifactId>arquillian-packager-javaee</artifactId>
-         <version>${project.version}</version>
-      </dependency>
-
-      <dependency>
          <groupId>org.jboss.arquillian.testenricher</groupId>
          <artifactId>arquillian-testenricher-cdi</artifactId>
          <version>${project.version}</version>

Modified: arquillian/trunk/containers/openejb-embedded-3.1/pom.xml
===================================================================
--- arquillian/trunk/containers/openejb-embedded-3.1/pom.xml	2010-07-07 03:19:26 UTC (rev 4685)
+++ arquillian/trunk/containers/openejb-embedded-3.1/pom.xml	2010-07-07 17:54:08 UTC (rev 4686)
@@ -1,88 +1,82 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
 
-  <!-- Parent -->
-  <parent>
-    <groupId>org.jboss.arquillian</groupId>
-    <artifactId>arquillian-build</artifactId>
-    <version>1.0.0-SNAPSHOT</version>
-    <relativePath>../../build/pom.xml</relativePath>
-  </parent>
+	<!-- Parent -->
+	<parent>
+		<groupId>org.jboss.arquillian</groupId>
+		<artifactId>arquillian-build</artifactId>
+		<version>1.0.0-SNAPSHOT</version>
+		<relativePath>../../build/pom.xml</relativePath>
+	</parent>
 
-  <!-- Model Version -->
-  <modelVersion>4.0.0</modelVersion>
+	<!-- Model Version -->
+	<modelVersion>4.0.0</modelVersion>
 
-  <!-- Artifact Configuration -->
-  <groupId>org.jboss.arquillian.container</groupId>
-  <artifactId>arquillian-openejb-embedded-3.1</artifactId>
-  <name>Arquillian Container OpenEJB Embedded 3.1.x</name>
-  <description>OpenEJB 3.1.x Embedded integration for the Arquillian Project</description>
+	<!-- Artifact Configuration -->
+	<groupId>org.jboss.arquillian.container</groupId>
+	<artifactId>arquillian-openejb-embedded-3.1</artifactId>
+	<name>Arquillian Container OpenEJB Embedded 3.1.x</name>
+	<description>OpenEJB 3.1.x Embedded integration for the Arquillian Project</description>
 
 
-  <!-- Properties -->
-  <properties>
+	<!-- Properties -->
+	<properties>
 
-    <!-- Versioning -->
-    <version.org.apache.openejb_openejb.core>3.1.2</version.org.apache.openejb_openejb.core>
+		<!-- Versioning -->
+		<version.org.apache.openejb_openejb.core>3.1.2</version.org.apache.openejb_openejb.core>
 
-  </properties>
+	</properties>
 
-  <!-- Dependencies -->
-  <dependencies>
+	<!-- Dependencies -->
+	<dependencies>
 
-    <!-- 
+		<!-- 
     org.jboss.arquillian
      -->
-    <dependency>
-      <groupId>org.jboss.arquillian.protocol</groupId>
-      <artifactId>arquillian-protocol-local</artifactId>
-      <version>${project.version}</version>
-    </dependency>
+		<dependency>
+			<groupId>org.jboss.arquillian.protocol</groupId>
+			<artifactId>arquillian-protocol-local</artifactId>
+			<version>${project.version}</version>
+		</dependency>
 
-      <dependency>
-         <groupId>org.jboss.arquillian.packager</groupId>
-         <artifactId>arquillian-packager-applicationarchive</artifactId>
-         <version>${project.version}</version>
-      </dependency>
-    
-      <dependency>
-         <groupId>org.jboss.arquillian.testenricher</groupId>
-         <artifactId>arquillian-testenricher-ejb</artifactId>
-         <version>${project.version}</version>
-      </dependency>
+		<dependency>
+			<groupId>org.jboss.arquillian.testenricher</groupId>
+			<artifactId>arquillian-testenricher-ejb</artifactId>
+			<version>${project.version}</version>
+		</dependency>
 
-    <!-- 
+		<!-- 
     External Projects
      -->
-     <dependency>
-      <groupId>org.jboss.shrinkwrap</groupId>
-      <artifactId>shrinkwrap-extension-openejb</artifactId>
-      <version>${version.shrinkwrap_shrinkwrap}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.openejb</groupId>
-      <artifactId>openejb-core</artifactId>
-      <version>${version.org.apache.openejb_openejb.core}</version>
-      <scope>provided</scope>
-    </dependency>
+		<dependency>
+			<groupId>org.jboss.shrinkwrap</groupId>
+			<artifactId>shrinkwrap-extension-openejb</artifactId>
+			<version>${version.shrinkwrap_shrinkwrap}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.openejb</groupId>
+			<artifactId>openejb-core</artifactId>
+			<version>${version.org.apache.openejb_openejb.core}</version>
+			<scope>provided</scope>
+		</dependency>
 
-	<!-- test -->
-    <dependency>
-      <groupId>org.jboss.arquillian</groupId>
-      <artifactId>arquillian-junit</artifactId>
-      <version>${project.version}</version>
-      <scope>test</scope>
-    </dependency>
+		<!-- test -->
+		<dependency>
+			<groupId>org.jboss.arquillian</groupId>
+			<artifactId>arquillian-junit</artifactId>
+			<version>${project.version}</version>
+			<scope>test</scope>
+		</dependency>
 
 
-   <!-- Part of prototyping, extract when ready -->
-   <dependency>
-    <groupId>javax.inject</groupId>
-    <artifactId>javax.inject</artifactId>
-    <scope>provided</scope>
-   </dependency>
+		<!-- Part of prototyping, extract when ready -->
+		<dependency>
+			<groupId>javax.inject</groupId>
+			<artifactId>javax.inject</artifactId>
+			<scope>provided</scope>
+		</dependency>
 
-  </dependencies>
+	</dependencies>
 </project>
 

Modified: arquillian/trunk/containers/openwebbeans-embedded-1/pom.xml
===================================================================
--- arquillian/trunk/containers/openwebbeans-embedded-1/pom.xml	2010-07-07 03:19:26 UTC (rev 4685)
+++ arquillian/trunk/containers/openwebbeans-embedded-1/pom.xml	2010-07-07 17:54:08 UTC (rev 4686)
@@ -47,12 +47,6 @@
 		</dependency>
 
 		<dependency>
-			<groupId>org.jboss.arquillian.packager</groupId>
-			<artifactId>arquillian-packager-applicationarchive</artifactId>
-			<version>${project.version}</version>
-		</dependency>
-
-		<dependency>
 			<groupId>org.jboss.arquillian.testenricher</groupId>
 			<artifactId>arquillian-testenricher-cdi</artifactId>
 			<version>${project.version}</version>

Modified: arquillian/trunk/containers/pom.xml
===================================================================
--- arquillian/trunk/containers/pom.xml	2010-07-07 03:19:26 UTC (rev 4685)
+++ arquillian/trunk/containers/pom.xml	2010-07-07 17:54:08 UTC (rev 4686)
@@ -24,7 +24,7 @@
   <!-- Aggregate Modules -->
   <modules>
     <module>jsr88-remote-1.2</module>
-    <module>osgi-embedded-4.2</module> 
+<!--    <module>osgi-embedded-4.2</module> -->
 <!--    <module>jbossas-remote-4_2</module> -->
     <module>jbossas-remote-5</module>
     <module>jbossas-remote-5.1</module>

Modified: arquillian/trunk/containers/reloaded-embedded-1/pom.xml
===================================================================
--- arquillian/trunk/containers/reloaded-embedded-1/pom.xml	2010-07-07 03:19:26 UTC (rev 4685)
+++ arquillian/trunk/containers/reloaded-embedded-1/pom.xml	2010-07-07 17:54:08 UTC (rev 4686)
@@ -43,12 +43,6 @@
     </dependency>
 
     <dependency>
-      <groupId>org.jboss.arquillian.packager</groupId>
-      <artifactId>arquillian-packager-applicationarchive</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-
-    <dependency>
       <groupId>org.jboss.arquillian.testenricher</groupId>
       <artifactId>arquillian-testenricher-ejb</artifactId>
       <version>${project.version}</version>

Modified: arquillian/trunk/containers/tomcat-embedded-6/pom.xml
===================================================================
--- arquillian/trunk/containers/tomcat-embedded-6/pom.xml	2010-07-07 03:19:26 UTC (rev 4685)
+++ arquillian/trunk/containers/tomcat-embedded-6/pom.xml	2010-07-07 17:54:08 UTC (rev 4686)
@@ -12,7 +12,7 @@
 
    <groupId>org.jboss.arquillian.container</groupId>
    <artifactId>arquillian-tomcat-embedded-6</artifactId>
-   <name>Arquillian Container: Tomcat Embedded 6.x</name>
+   <name>Arquillian Container Tomcat Embedded 6.x</name>
    <description>Tomcat 6.x Embedded container integration for the Arquillian Project</description>
 
    <properties>
@@ -47,11 +47,6 @@
       </dependency>
 
       <!-- TODO We likely need a servlet packager to restrict use of EAR -->
-      <dependency>
-         <groupId>org.jboss.arquillian.packager</groupId>
-         <artifactId>arquillian-packager-javaee</artifactId>
-         <version>${project.version}</version>
-      </dependency>
 
       <dependency>
          <groupId>org.jboss.arquillian.testenricher</groupId>

Modified: arquillian/trunk/containers/weld-ee-embedded-1.1/pom.xml
===================================================================
--- arquillian/trunk/containers/weld-ee-embedded-1.1/pom.xml	2010-07-07 03:19:26 UTC (rev 4685)
+++ arquillian/trunk/containers/weld-ee-embedded-1.1/pom.xml	2010-07-07 17:54:08 UTC (rev 4686)
@@ -73,12 +73,6 @@
 		</dependency>
 
 		<dependency>
-			<groupId>org.jboss.arquillian.packager</groupId>
-			<artifactId>arquillian-packager-applicationarchive</artifactId>
-			<version>${project.version}</version>
-		</dependency>
-
-		<dependency>
 			<groupId>org.jboss.arquillian.testenricher</groupId>
 			<artifactId>arquillian-testenricher-cdi</artifactId>
 			<version>${project.version}</version>

Modified: arquillian/trunk/containers/weld-se-embedded-1/pom.xml
===================================================================
--- arquillian/trunk/containers/weld-se-embedded-1/pom.xml	2010-07-07 03:19:26 UTC (rev 4685)
+++ arquillian/trunk/containers/weld-se-embedded-1/pom.xml	2010-07-07 17:54:08 UTC (rev 4686)
@@ -59,12 +59,6 @@
       </dependency>
 
       <dependency>
-         <groupId>org.jboss.arquillian.packager</groupId>
-         <artifactId>arquillian-packager-applicationarchive</artifactId>
-         <version>${project.version}</version>
-      </dependency>
-
-      <dependency>
          <groupId>org.jboss.arquillian.testenricher</groupId>
          <artifactId>arquillian-testenricher-cdi</artifactId>
          <version>${project.version}</version>

Modified: arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/ClientDeploymentGenerator.java
===================================================================
--- arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/ClientDeploymentGenerator.java	2010-07-07 03:19:26 UTC (rev 4685)
+++ arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/ClientDeploymentGenerator.java	2010-07-07 17:54:08 UTC (rev 4686)
@@ -25,6 +25,7 @@
 import org.jboss.arquillian.spi.AuxiliaryArchiveAppender;
 import org.jboss.arquillian.spi.AuxiliaryArchiveProcessor;
 import org.jboss.arquillian.spi.DeployableContainer;
+import org.jboss.arquillian.spi.TestDeployment;
 import org.jboss.arquillian.spi.DeploymentPackager;
 import org.jboss.arquillian.spi.ServiceLoader;
 import org.jboss.arquillian.spi.TestClass;
@@ -61,7 +62,7 @@
       List<Archive<?>> auxiliaryArchives = loadAuxiliaryArchives();
       applyAuxiliaryProcessors(auxiliaryArchives);
 
-      return packager.generateDeployment(applicationArchive, auxiliaryArchives);
+      return packager.generateDeployment(new TestDeployment(applicationArchive, auxiliaryArchives));
    }
    
    private List<Archive<?>> loadAuxiliaryArchives() 

Modified: arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/XmlConfigurationBuilderTestCase.java
===================================================================
--- arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/XmlConfigurationBuilderTestCase.java	2010-07-07 03:19:26 UTC (rev 4685)
+++ arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/XmlConfigurationBuilderTestCase.java	2010-07-07 17:54:08 UTC (rev 4686)
@@ -67,7 +67,7 @@
 
       Assert.assertEquals(
             "Should set properties on " + Configuration.class.getName(), 
-            "/tmp",
+            "/tmp/",
             configuration.getDeploymentExportPath());
       
       // retrieve the container configuration

Modified: arquillian/trunk/impl-base/src/test/resources/arquillian.xml
===================================================================
--- arquillian/trunk/impl-base/src/test/resources/arquillian.xml	2010-07-07 03:19:26 UTC (rev 4685)
+++ arquillian/trunk/impl-base/src/test/resources/arquillian.xml	2010-07-07 17:54:08 UTC (rev 4686)
@@ -4,7 +4,7 @@
 		xmlns:mock="urn:arq:org.jboss.arquillian.impl">
 
 	<engine>
-		<deploymentExportPath>/tmp</deploymentExportPath>
+		<deploymentExportPath>/tmp/</deploymentExportPath>
 	</engine>
 	
 	<mock:container>

Deleted: arquillian/trunk/packagers/applicationarchive/pom.xml
===================================================================
--- arquillian/trunk/packagers/applicationarchive/pom.xml	2010-07-07 03:19:26 UTC (rev 4685)
+++ arquillian/trunk/packagers/applicationarchive/pom.xml	2010-07-07 17:54:08 UTC (rev 4686)
@@ -1,65 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-   <!--
-  vi:ts=2:sw=2:expandtab:
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-
-   <!-- Parent -->
-   <parent>
-      <groupId>org.jboss.arquillian</groupId>
-      <artifactId>arquillian-build</artifactId>
-      <version>1.0.0-SNAPSHOT</version>
-      <relativePath>../../build/pom.xml</relativePath>
-   </parent>
-
-   <!-- Model Version -->
-   <modelVersion>4.0.0</modelVersion>
-
-   <!-- Artifact Configuration -->
-   <groupId>org.jboss.arquillian.packager</groupId>
-   <artifactId>arquillian-packager-applicationarchive</artifactId>
-   <name>Arquillian Packager ApplicationArchive</name>
-   <description>Packager that only return the ApplicationArchive for the Arquillian project</description>
-
-
-   <!-- Properties -->
-   <properties>
-
-
-   </properties>
-
-   <!-- Dependencies -->
-   <dependencies>
-
-      <!-- 
-    org.jboss.arquillian
-     -->
-      <dependency>
-         <groupId>org.jboss.arquillian</groupId>
-         <artifactId>arquillian-spi</artifactId>
-         <version>${project.version}</version>
-      </dependency>
-
-      <dependency>
-         <groupId>org.jboss.shrinkwrap</groupId>
-         <artifactId>shrinkwrap-impl-base</artifactId>
-      </dependency>
-      <dependency>
-         <groupId>org.jboss.shrinkwrap</groupId>
-         <artifactId>shrinkwrap-spi</artifactId>
-      </dependency>
-
-      <!-- 
-    External Projects
-     -->
-      <dependency>
-         <groupId>junit</groupId>
-         <artifactId>junit</artifactId>
-         <scope>test</scope>
-      </dependency>
-
-   </dependencies>
-
-</project>
-

Deleted: arquillian/trunk/packagers/javaee/pom.xml
===================================================================
--- arquillian/trunk/packagers/javaee/pom.xml	2010-07-07 03:19:26 UTC (rev 4685)
+++ arquillian/trunk/packagers/javaee/pom.xml	2010-07-07 17:54:08 UTC (rev 4686)
@@ -1,61 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- vi:ts=2:sw=2:expandtab: -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-
-  <!-- Parent -->
-  <parent>
-    <groupId>org.jboss.arquillian</groupId>
-    <artifactId>arquillian-build</artifactId>
-    <version>1.0.0-SNAPSHOT</version>
-    <relativePath>../../build/pom.xml</relativePath>
-  </parent>
-
-  <!-- Model Version -->
-  <modelVersion>4.0.0</modelVersion>
-
-  <!-- Artifact Configuration -->
-  <groupId>org.jboss.arquillian.packager</groupId>
-  <artifactId>arquillian-packager-javaee</artifactId>
-  <name>Arquillian Packager Java EE</name>
-  <description>Java EE Packager for the Arquillian project</description>
-
-
-  <!-- Properties -->
-  <properties>
-  </properties>
-
-  <!-- Dependencies -->
-  <dependencies>
-
-    <!-- org.jboss.arquillian -->
-    <dependency>
-      <groupId>org.jboss.arquillian</groupId>
-      <artifactId>arquillian-spi</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-
-    <dependency>
-      <groupId>org.jboss.shrinkwrap</groupId>
-      <artifactId>shrinkwrap-impl-base</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.shrinkwrap</groupId>
-      <artifactId>shrinkwrap-spi</artifactId>
-    </dependency>
-
-    <!-- Test Dependencies -->
-    <dependency>
-      <groupId>org.mockito</groupId>
-      <artifactId>mockito-all</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <scope>test</scope>
-    </dependency>
-
-  </dependencies>
-
-</project>
-

Modified: arquillian/trunk/packagers/pom.xml
===================================================================
--- arquillian/trunk/packagers/pom.xml	2010-07-07 03:19:26 UTC (rev 4685)
+++ arquillian/trunk/packagers/pom.xml	2010-07-07 17:54:08 UTC (rev 4686)
@@ -26,8 +26,6 @@
   <!-- Aggregate Modules -->
   <modules>
     
-    <module>applicationarchive</module>
-    <module>javaee</module>
     <module>osgi</module>
 
   </modules>

Added: arquillian/trunk/protocols/local/src/main/java/org/jboss/arquillian/protocol/local/LocalDeploymentPackager.java
===================================================================
--- arquillian/trunk/protocols/local/src/main/java/org/jboss/arquillian/protocol/local/LocalDeploymentPackager.java	                        (rev 0)
+++ arquillian/trunk/protocols/local/src/main/java/org/jboss/arquillian/protocol/local/LocalDeploymentPackager.java	2010-07-07 17:54:08 UTC (rev 4686)
@@ -0,0 +1,38 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, 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.protocol.local;
+
+import org.jboss.arquillian.spi.DeploymentPackager;
+import org.jboss.arquillian.spi.TestDeployment;
+import org.jboss.shrinkwrap.api.Archive;
+
+/**
+ * LocalDeploymentPackager
+ *
+ * @author <a href="mailto:aslak at redhat.com">Aslak Knutsen</a>
+ * @version $Revision: $
+ */
+public class LocalDeploymentPackager implements DeploymentPackager
+{
+   /* (non-Javadoc)
+    * @see org.jboss.arquillian.spi.DeploymentPackager#generateDeployment(org.jboss.arquillian.spi.TestDeployment)
+    */
+   public Archive<?> generateDeployment(TestDeployment testDeployment)
+   {
+      return testDeployment.getApplicationArchive();
+   }
+}

Added: arquillian/trunk/protocols/local/src/main/resources/META-INF/services/org.jboss.arquillian.spi.DeploymentPackager
===================================================================
--- arquillian/trunk/protocols/local/src/main/resources/META-INF/services/org.jboss.arquillian.spi.DeploymentPackager	                        (rev 0)
+++ arquillian/trunk/protocols/local/src/main/resources/META-INF/services/org.jboss.arquillian.spi.DeploymentPackager	2010-07-07 17:54:08 UTC (rev 4686)
@@ -0,0 +1 @@
+org.jboss.arquillian.protocol.local.LocalDeploymentPackager
\ No newline at end of file

Added: arquillian/trunk/protocols/servlet-ee5/src/main/java/org/jboss/arquillian/protocol/servlet/ServletProtocolDeploymentPackager.java
===================================================================
--- arquillian/trunk/protocols/servlet-ee5/src/main/java/org/jboss/arquillian/protocol/servlet/ServletProtocolDeploymentPackager.java	                        (rev 0)
+++ arquillian/trunk/protocols/servlet-ee5/src/main/java/org/jboss/arquillian/protocol/servlet/ServletProtocolDeploymentPackager.java	2010-07-07 17:54:08 UTC (rev 4686)
@@ -0,0 +1,95 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, 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.protocol.servlet;
+
+import java.util.Collection;
+
+import org.jboss.arquillian.spi.DeploymentPackager;
+import org.jboss.arquillian.spi.TestDeployment;
+import org.jboss.shrinkwrap.api.Archive;
+import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.spec.EnterpriseArchive;
+import org.jboss.shrinkwrap.api.spec.JavaArchive;
+import org.jboss.shrinkwrap.api.spec.WebArchive;
+
+/**
+ * ServletProtocolDeploymentPackager
+ *
+ * @author <a href="mailto:aslak at redhat.com">Aslak Knutsen</a>
+ * @version $Revision: $
+ */
+public class ServletProtocolDeploymentPackager implements DeploymentPackager
+{
+   /* (non-Javadoc)
+    * @see org.jboss.arquillian.spi.DeploymentPackager#generateDeployment(org.jboss.arquillian.spi.TestDeployment)
+    */
+   public Archive<?> generateDeployment(TestDeployment testDeployment)
+   {
+      WebArchive protocol = WebArchive.class.cast(
+            new ProtocolDeploymentAppender().createAuxiliaryArchive());
+      
+      Archive<?> applicationArchive = testDeployment.getApplicationArchive();
+      Collection<Archive<?>> auxiliaryArchives = testDeployment.getAuxiliaryArchives();
+      
+      if(EnterpriseArchive.class.isInstance(applicationArchive))
+      {
+         return handleArchive(EnterpriseArchive.class.cast(applicationArchive), auxiliaryArchives, protocol);
+      } 
+
+      if(WebArchive.class.isInstance(applicationArchive))
+      {
+         return handleArchive(WebArchive.class.cast(applicationArchive), auxiliaryArchives, protocol);
+      } 
+
+      if(JavaArchive.class.isInstance(applicationArchive))
+      {
+         return handleArchive(JavaArchive.class.cast(applicationArchive), auxiliaryArchives, protocol);
+      }
+
+      throw new IllegalArgumentException(ServletProtocolDeploymentPackager.class.getName()  + 
+            " can not handle archive of type " +  applicationArchive.getClass().getName());
+   }
+
+   private Archive<?> handleArchive(WebArchive applicationArchive, Collection<Archive<?>> auxiliaryArchives, WebArchive protocol) 
+   {
+      throw new IllegalArgumentException("The " + ServletProtocolDeploymentPackager.class.getSimpleName() + " can't merge web.xml files.");
+   }
+
+   private Archive<?> handleArchive(JavaArchive applicationArchive, Collection<Archive<?>> auxiliaryArchives, WebArchive protocol) 
+   {
+      return ShrinkWrap.create("test.ear", EnterpriseArchive.class)
+                        .addModule(applicationArchive)
+                        .addModule(protocol)
+                        .addLibraries(auxiliaryArchives.toArray(new Archive[0]));
+   }
+
+   private Archive<?> handleArchive(EnterpriseArchive applicationArchive, Collection<Archive<?>> auxiliaryArchives, WebArchive protocol) 
+   {
+      if(false) // contains web archive
+      {
+         // find web archive and attach our self to it
+      }
+      else
+      {
+         applicationArchive
+               .addModule(protocol)
+               .addLibraries(
+                     auxiliaryArchives.toArray(new Archive<?>[0]));
+      }
+      return applicationArchive;
+   }
+}

Deleted: arquillian/trunk/protocols/servlet-ee5/src/main/resources/META-INF/services/org.jboss.arquillian.spi.AuxiliaryArchiveAppender
===================================================================
--- arquillian/trunk/protocols/servlet-ee5/src/main/resources/META-INF/services/org.jboss.arquillian.spi.AuxiliaryArchiveAppender	2010-07-07 03:19:26 UTC (rev 4685)
+++ arquillian/trunk/protocols/servlet-ee5/src/main/resources/META-INF/services/org.jboss.arquillian.spi.AuxiliaryArchiveAppender	2010-07-07 17:54:08 UTC (rev 4686)
@@ -1 +0,0 @@
-org.jboss.arquillian.protocol.servlet.ProtocolDeploymentAppender
\ No newline at end of file

Added: arquillian/trunk/protocols/servlet-ee5/src/main/resources/META-INF/services/org.jboss.arquillian.spi.DeploymentPackager
===================================================================
--- arquillian/trunk/protocols/servlet-ee5/src/main/resources/META-INF/services/org.jboss.arquillian.spi.DeploymentPackager	                        (rev 0)
+++ arquillian/trunk/protocols/servlet-ee5/src/main/resources/META-INF/services/org.jboss.arquillian.spi.DeploymentPackager	2010-07-07 17:54:08 UTC (rev 4686)
@@ -0,0 +1 @@
+org.jboss.arquillian.protocol.servlet.ServletProtocolDeploymentPackager
\ No newline at end of file

Added: arquillian/trunk/protocols/servlet-ee5/src/test/java/org/jboss/arquillian/protocol/servlet/ServletProtocolDeploymentPackagerTestCase.java
===================================================================
--- arquillian/trunk/protocols/servlet-ee5/src/test/java/org/jboss/arquillian/protocol/servlet/ServletProtocolDeploymentPackagerTestCase.java	                        (rev 0)
+++ arquillian/trunk/protocols/servlet-ee5/src/test/java/org/jboss/arquillian/protocol/servlet/ServletProtocolDeploymentPackagerTestCase.java	2010-07-07 17:54:08 UTC (rev 4686)
@@ -0,0 +1,108 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, 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.protocol.servlet;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import org.jboss.arquillian.spi.TestDeployment;
+import org.jboss.shrinkwrap.api.Archive;
+import org.jboss.shrinkwrap.api.ArchivePaths;
+import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.spec.EnterpriseArchive;
+import org.jboss.shrinkwrap.api.spec.JavaArchive;
+import org.jboss.shrinkwrap.api.spec.WebArchive;
+import org.junit.Assert;
+import org.junit.Test;
+
+
+/**
+ * ServletProtocolDeploymentPackagerTestCase
+ *
+ * @author <a href="mailto:aslak at redhat.com">Aslak Knutsen</a>
+ * @version $Revision: $
+ */
+public class ServletProtocolDeploymentPackagerTestCase
+{
+
+   @Test
+   public void shouldHandleJavaArchive() throws Exception
+   {
+      Archive<?> archive = new ServletProtocolDeploymentPackager().generateDeployment(
+            new TestDeployment(
+                     ShrinkWrap.create("applicationArchive.jar", JavaArchive.class), 
+                     createAuxiliaryArchives()));
+      
+      Assert.assertTrue(
+            "Verify that a defined JavaArchive using EE5 WebArchive protocol is build as EnterpriseArchive",
+            EnterpriseArchive.class.isInstance(archive));
+
+      Assert.assertTrue(
+            "Verify that the auxiliaryArchives EE Modules are placed in /",
+            archive.contains(ArchivePaths.create("/lib/auxiliaryArchive1.jar")));
+      
+      Assert.assertTrue(
+            "Verify that the auxiliaryArchives are placed in /lib",
+            archive.contains(ArchivePaths.create("/lib/auxiliaryArchive2.jar")));
+
+      Assert.assertTrue(
+            "Verify that the applicationArchive is placed in /",
+            archive.contains(ArchivePaths.create("/applicationArchive.jar")));
+   }
+   
+   // as of now, War inside War is not supported. need to merge ? 
+   @Test(expected = IllegalArgumentException.class)
+   public void shouldHandleWebArchive() throws Exception
+   {
+      new ServletProtocolDeploymentPackager().generateDeployment(
+            new TestDeployment(
+                  ShrinkWrap.create("applicationArchive.war", WebArchive.class), 
+                  createAuxiliaryArchives()));
+      
+   }
+
+   @Test
+   public void shouldHandleEnterpriseArchive() throws Exception
+   {
+      Archive<?> archive = new ServletProtocolDeploymentPackager().generateDeployment(
+            new TestDeployment(
+                  ShrinkWrap.create("applicationArchive.ear", EnterpriseArchive.class), 
+                  createAuxiliaryArchives()));
+
+      Assert.assertTrue(
+            "Verify that the auxiliaryArchives are placed in /",
+            archive.contains(ArchivePaths.create("arquillian-protocol.war")));
+      
+      Assert.assertTrue(
+            "Verify that the auxiliaryArchives are placed in /lib",
+            archive.contains(ArchivePaths.create("/lib/auxiliaryArchive1.jar")));
+
+      Assert.assertTrue(
+            "Verify that the auxiliaryArchives are placed in /lib",
+            archive.contains(ArchivePaths.create("/lib/auxiliaryArchive2.jar")));
+   }
+
+   private Collection<Archive<?>> createAuxiliaryArchives() 
+   {
+      List<Archive<?>> archives = new ArrayList<Archive<?>>();
+      archives.add(ShrinkWrap.create("auxiliaryArchive1.jar", WebArchive.class));
+      archives.add(ShrinkWrap.create("auxiliaryArchive2.jar", JavaArchive.class));
+      
+      return archives;
+   }
+}

Added: arquillian/trunk/protocols/servlet-ee6/src/main/java/org/jboss/arquillian/protocol/servlet/ServletProtocolDeploymentPackager.java
===================================================================
--- arquillian/trunk/protocols/servlet-ee6/src/main/java/org/jboss/arquillian/protocol/servlet/ServletProtocolDeploymentPackager.java	                        (rev 0)
+++ arquillian/trunk/protocols/servlet-ee6/src/main/java/org/jboss/arquillian/protocol/servlet/ServletProtocolDeploymentPackager.java	2010-07-07 17:54:08 UTC (rev 4686)
@@ -0,0 +1,97 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, 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.protocol.servlet;
+
+import java.util.Collection;
+
+import org.jboss.arquillian.spi.DeploymentPackager;
+import org.jboss.arquillian.spi.TestDeployment;
+import org.jboss.shrinkwrap.api.Archive;
+import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.spec.EnterpriseArchive;
+import org.jboss.shrinkwrap.api.spec.JavaArchive;
+import org.jboss.shrinkwrap.api.spec.WebArchive;
+
+/**
+ * ServletProtocolDeploymentPackager
+ *
+ * @author <a href="mailto:aslak at redhat.com">Aslak Knutsen</a>
+ * @version $Revision: $
+ */
+public class ServletProtocolDeploymentPackager implements DeploymentPackager
+{
+   /* (non-Javadoc)
+    * @see org.jboss.arquillian.spi.DeploymentPackager#generateDeployment(org.jboss.arquillian.spi.TestDeployment)
+    */
+   public Archive<?> generateDeployment(TestDeployment testDeployment)
+   {
+      Archive<?> protocol = new ProtocolDeploymentAppender().createAuxiliaryArchive();
+      
+      Archive<?> applicationArchive = testDeployment.getApplicationArchive();
+      Collection<Archive<?>> auxiliaryArchives = testDeployment.getAuxiliaryArchives();
+      
+      if(EnterpriseArchive.class.isInstance(applicationArchive))
+      {
+         return handleArchive(EnterpriseArchive.class.cast(applicationArchive), auxiliaryArchives, protocol);
+      } 
+
+      if(WebArchive.class.isInstance(applicationArchive))
+      {
+         return handleArchive(WebArchive.class.cast(applicationArchive), auxiliaryArchives, protocol);
+      } 
+
+      if(JavaArchive.class.isInstance(applicationArchive))
+      {
+         return handleArchive(JavaArchive.class.cast(applicationArchive), auxiliaryArchives, protocol);
+      }
+
+      throw new IllegalArgumentException(ServletProtocolDeploymentPackager.class.getName()  + 
+            " can not handle archive of type " +  applicationArchive.getClass().getName());
+   }
+
+   private Archive<?> handleArchive(WebArchive applicationArchive, Collection<Archive<?>> auxiliaryArchives, Archive<?> protocol) 
+   {
+      return applicationArchive
+                  .addLibraries(
+                        auxiliaryArchives.toArray(new Archive<?>[0]))
+                  .addLibrary(protocol);
+   }
+
+   private Archive<?> handleArchive(JavaArchive applicationArchive, Collection<Archive<?>> auxiliaryArchives, Archive<?> protocol) 
+   {
+         return ShrinkWrap.create("test.war", WebArchive.class)
+                  .addLibraries(applicationArchive, protocol)
+                  .addLibraries(auxiliaryArchives.toArray(new Archive[0]));
+   }
+
+   private Archive<?> handleArchive(EnterpriseArchive applicationArchive, Collection<Archive<?>> auxiliaryArchives, Archive<?> protocol) 
+   {
+      if(false) // contains web archive
+      {
+         // find web archive and attach our self to it
+      }
+      else
+      {
+         applicationArchive.addModule(
+                  ShrinkWrap.create("test.war", WebArchive.class)
+                     .addLibrary(protocol))
+               .addLibraries(
+                     auxiliaryArchives.toArray(new Archive<?>[0]));
+      }
+      return applicationArchive;
+   }
+}

Deleted: arquillian/trunk/protocols/servlet-ee6/src/main/resources/META-INF/services/org.jboss.arquillian.spi.AuxiliaryArchiveAppender
===================================================================
--- arquillian/trunk/protocols/servlet-ee6/src/main/resources/META-INF/services/org.jboss.arquillian.spi.AuxiliaryArchiveAppender	2010-07-07 03:19:26 UTC (rev 4685)
+++ arquillian/trunk/protocols/servlet-ee6/src/main/resources/META-INF/services/org.jboss.arquillian.spi.AuxiliaryArchiveAppender	2010-07-07 17:54:08 UTC (rev 4686)
@@ -1 +0,0 @@
-org.jboss.arquillian.protocol.servlet.ProtocolDeploymentAppender
\ No newline at end of file

Added: arquillian/trunk/protocols/servlet-ee6/src/main/resources/META-INF/services/org.jboss.arquillian.spi.DeploymentPackager
===================================================================
--- arquillian/trunk/protocols/servlet-ee6/src/main/resources/META-INF/services/org.jboss.arquillian.spi.DeploymentPackager	                        (rev 0)
+++ arquillian/trunk/protocols/servlet-ee6/src/main/resources/META-INF/services/org.jboss.arquillian.spi.DeploymentPackager	2010-07-07 17:54:08 UTC (rev 4686)
@@ -0,0 +1 @@
+org.jboss.arquillian.protocol.servlet.ServletProtocolDeploymentPackager
\ No newline at end of file

Added: arquillian/trunk/protocols/servlet-ee6/src/test/java/org/jboss/arquillian/protocol/servlet/ServletProtocolDeploymentPackagerTestCase.java
===================================================================
--- arquillian/trunk/protocols/servlet-ee6/src/test/java/org/jboss/arquillian/protocol/servlet/ServletProtocolDeploymentPackagerTestCase.java	                        (rev 0)
+++ arquillian/trunk/protocols/servlet-ee6/src/test/java/org/jboss/arquillian/protocol/servlet/ServletProtocolDeploymentPackagerTestCase.java	2010-07-07 17:54:08 UTC (rev 4686)
@@ -0,0 +1,154 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, 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.protocol.servlet;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import org.jboss.arquillian.spi.TestDeployment;
+import org.jboss.shrinkwrap.api.Archive;
+import org.jboss.shrinkwrap.api.ArchivePaths;
+import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.spec.EnterpriseArchive;
+import org.jboss.shrinkwrap.api.spec.JavaArchive;
+import org.jboss.shrinkwrap.api.spec.WebArchive;
+import org.jboss.shrinkwrap.impl.base.asset.ArchiveAsset;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+/**
+ * ServletProtocolDeploymentPackagerTestCase
+ *
+ * @author <a href="mailto:aslak at redhat.com">Aslak Knutsen</a>
+ * @version $Revision: $
+ */
+public class ServletProtocolDeploymentPackagerTestCase
+{
+   @Test
+   public void shouldHandleJavaArchive() throws Exception
+   {
+      Archive<?> archive = new ServletProtocolDeploymentPackager().generateDeployment(
+            new TestDeployment(
+                  ShrinkWrap.create("applicationArchive.jar", JavaArchive.class), 
+                  createAuxiliaryArchives()));
+      
+      Assert.assertTrue(
+            "Verify that a defined JavaArchive using EE6 JavaArchive protocol is build as WebArchive",
+            WebArchive.class.isInstance(archive));
+
+      Assert.assertTrue(
+            "Verify that the auxiliaryArchives are placed in /WEB-INF/lib",
+            archive.contains(ArchivePaths.create("/WEB-INF/lib/arquillian-protocol.jar")));
+
+      Assert.assertTrue(
+            "Verify that the auxiliaryArchives are placed in /WEB-INF/lib",
+            archive.contains(ArchivePaths.create("/WEB-INF/lib/auxiliaryArchive2.jar")));
+      
+      Assert.assertTrue(
+            "Verify that the applicationArchive is placed in /WEB-INF/lib",
+            archive.contains(ArchivePaths.create("/WEB-INF/lib/applicationArchive.jar")));
+   }
+
+   @Test
+   public void shouldHandleWebArchive() throws Exception
+   {
+      Archive<?> archive = new ServletProtocolDeploymentPackager().generateDeployment(
+            new TestDeployment(
+                  ShrinkWrap.create("applicationArchive.war", WebArchive.class), 
+                  createAuxiliaryArchives()));
+      
+      Assert.assertTrue(
+            "Verify that a defined WebArchive using EE6 JavaArchive protocol is build as WebArchive",
+            WebArchive.class.isInstance(archive));
+
+      Assert.assertTrue(
+            "Verify that the auxiliaryArchives are placed in /WEB-INF/lib",
+            archive.contains(ArchivePaths.create("/WEB-INF/lib/arquillian-protocol.jar")));
+      
+      Assert.assertTrue(
+            "Verify that the auxiliaryArchives are placed in /WEB-INF/lib",
+            archive.contains(ArchivePaths.create("/WEB-INF/lib/auxiliaryArchive1.jar")));
+
+      Assert.assertTrue(
+            "Verify that the auxiliaryArchives are placed in /WEB-INF/lib",
+            archive.contains(ArchivePaths.create("/WEB-INF/lib/auxiliaryArchive2.jar")));
+   }
+
+   @Test
+   public void shouldHandleEnterpriseArchive() throws Exception
+   {
+      Archive<?> archive = new ServletProtocolDeploymentPackager().generateDeployment(
+            new TestDeployment(
+                  ShrinkWrap.create("applicationArchive.ear", EnterpriseArchive.class), 
+                  createAuxiliaryArchives()));
+      
+      Assert.assertTrue(
+            "Verify that the auxiliaryArchives are placed in /",
+            archive.contains(ArchivePaths.create("test.war")));
+
+      Assert.assertTrue(
+            "Verify that the auxiliaryArchives are placed in /lib",
+            archive.contains(ArchivePaths.create("/lib/auxiliaryArchive1.jar")));
+
+      Assert.assertTrue(
+            "Verify that the auxiliaryArchives are placed in /lib",
+            archive.contains(ArchivePaths.create("/lib/auxiliaryArchive2.jar")));
+   }
+
+   @Test
+   @Ignore // TODO: Does not merge with existing archive
+   public void shouldHandleEnterpriseArchiveWithExistingWAR() throws Exception
+   {
+      Archive<?> archive = new ServletProtocolDeploymentPackager().generateDeployment(
+            new TestDeployment(
+                  ShrinkWrap.create("applicationArchive.ear", EnterpriseArchive.class)
+                            .addModule(
+                                  ShrinkWrap.create("test.war", WebArchive.class)
+                                            .addClass(Test.class)), 
+                  createAuxiliaryArchives()));
+      
+      Assert.assertTrue(
+            "Verify that the applicationArchive still contains WebArchive in /",
+            archive.contains(ArchivePaths.create("test.war")));
+
+      Assert.assertTrue(
+            "Verify that the auxiliaryArchives are placed in /lib",
+            archive.contains(ArchivePaths.create("/lib/auxiliaryArchive2.jar")));
+
+      Archive<?> applicationArchive = ((ArchiveAsset)archive.get(ArchivePaths.create("test.war")).getAsset()).getArchive(); 
+      Assert.assertTrue(
+            "Verify that the auxiliaryArchive protocol is placed in applicationArchive WebArchive",
+            applicationArchive.contains(ArchivePaths.create("/WEB-INF/lib/arquillian-protocol.jar")));
+
+      Assert.assertTrue(
+            "Verify that the applicationArchive has not been overwritten",
+            applicationArchive.contains(ArchivePaths.create("/WEB-INF/classes/org/junit/Test.class")));
+
+      
+   }
+
+   private Collection<Archive<?>> createAuxiliaryArchives() 
+   {
+      List<Archive<?>> archives = new ArrayList<Archive<?>>();
+      archives.add(ShrinkWrap.create("auxiliaryArchive1.jar", JavaArchive.class));
+      archives.add(ShrinkWrap.create("auxiliaryArchive2.jar", JavaArchive.class));
+      
+      return archives;
+   }
+}

Modified: arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/DeploymentPackager.java
===================================================================
--- arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/DeploymentPackager.java	2010-07-07 03:19:26 UTC (rev 4685)
+++ arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/DeploymentPackager.java	2010-07-07 17:54:08 UTC (rev 4686)
@@ -16,25 +16,22 @@
  */
 package org.jboss.arquillian.spi;
 
-import java.util.Collection;
-
 import org.jboss.shrinkwrap.api.Archive;
 
 /**
- * Extension point for the {@link DeployableContainer} to prepare the Archives for deployment.
+ * Extension point for the Protocol to prepare the Archives for deployment.
  * 
  * Example:
  * - Create a EAR, WAR
  *
- * @author <a href="mailto:aslak at conduct.no">Aslak Knutsen</a>
+ * @author <a href="mailto:aslak at redhat.com">Aslak Knutsen</a>
  * @version $Revision: $
  */
 public interface DeploymentPackager
 {
    /**
-    * @param applicationArchive The user defined deployment archive
-    * @param auxiliaryArchives All found system defined deployment archives
-    * @return A archive to deploy
+    * @param testDeployment Value object containing the application {@link Archive} and other auxiliary library {@link Archive}s. 
+    * @return The prepared archive for deployment.
     */
-   Archive<?> generateDeployment(Archive<?> applicationArchive, Collection<Archive<?>> auxiliaryArchives);
+   Archive<?> generateDeployment(TestDeployment testDeployment);
 }

Added: arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/TestDeployment.java
===================================================================
--- arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/TestDeployment.java	                        (rev 0)
+++ arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/TestDeployment.java	2010-07-07 17:54:08 UTC (rev 4686)
@@ -0,0 +1,74 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, 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.spi;
+
+import java.util.Collection;
+
+import org.jboss.shrinkwrap.api.Archive;
+
+/**
+ * Value object that contains the {@link Archive}s needed for deployment. <br/>
+ * 
+ * With convenience methods for working / manipulating the Archives.  
+ *
+ * @author <a href="mailto:aslak at redhat.com">Aslak Knutsen</a>
+ * @version $Revision: $
+ */
+public class TestDeployment
+{
+   private Archive<?> applicationArchive;
+   private Collection<Archive<?>> auxiliaryArchives;
+   
+   /**
+    * @param applicationArchive The user defined {@link Archive}
+    * @param auxiliaryArchives All extra library {@link Archive}s defined by extensions / core / frameworks. 
+    */
+   public TestDeployment(Archive<?> applicationArchive, Collection<Archive<?>> auxiliaryArchives)
+   {
+      if(applicationArchive == null)
+      {
+         throw new IllegalArgumentException("ApplicationArchive must be specified");
+      }
+      if(auxiliaryArchives == null)
+      {
+         throw new IllegalArgumentException("AuxiliaryArchives must be specified");
+      }
+
+      this.applicationArchive = applicationArchive;
+      this.auxiliaryArchives = auxiliaryArchives;
+   }
+
+   /**
+    * Convenience method to lookup the user tagged archive for enriching.
+    * @return The tagged Archive or ApplicationArchive if none are tagged
+    */
+   public Archive<?> getArchiveForEnrichment() 
+   {
+      // TODO: lookup 'tagged' archive. return applicationArchive if none found
+      return applicationArchive;
+   }
+
+   public Archive<?> getApplicationArchive()
+   {
+      return applicationArchive;
+   }
+   
+   public Collection<Archive<?>> getAuxiliaryArchives()
+   {
+      return auxiliaryArchives;
+   }
+}



More information about the jboss-svn-commits mailing list