[jboss-svn-commits] JBoss Common SVN: r4670 - in arquillian/trunk: impl-base/src/main/java/org/jboss/arquillian/impl/handler and 6 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Jul 2 17:18:07 EDT 2010


Author: aslak
Date: 2010-07-02 17:18:06 -0400 (Fri, 02 Jul 2010)
New Revision: 4670

Modified:
   arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/ApplicationArchiveDeploymentGenerator.java
   arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/ClientDeploymentGenerator.java
   arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/DeploymentAnnotationArchiveGenerator.java
   arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/DeploymentGenerator.java
   arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/handler/ArchiveGenerator.java
   arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/handler/ArchiveGeneratorTestCase.java
   arquillian/trunk/packagers/applicationarchive/src/main/java/org/jboss/arquillian/packager/applicationarchive/ApplicationArchiveDeploymentPackager.java
   arquillian/trunk/packagers/javaee/src/main/java/org/jboss/arquillian/packager/javaee/EEDeploymentPackager.java
   arquillian/trunk/packagers/javaee/src/test/java/org/jboss/arquillian/packager/javaee/EEDeploymentPackagerTestCase.java
   arquillian/trunk/packagers/osgi/src/main/java/org/jboss/arquillian/packager/osgi/OSGiDeploymentPackager.java
   arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/DeploymentPackager.java
   arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/TestClass.java
Log:
ARQ-205 Reverted SPI change: adding Context to DeploymentPackager


Modified: arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/ApplicationArchiveDeploymentGenerator.java
===================================================================
--- arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/ApplicationArchiveDeploymentGenerator.java	2010-07-02 16:31:44 UTC (rev 4669)
+++ arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/ApplicationArchiveDeploymentGenerator.java	2010-07-02 21:18:06 UTC (rev 4670)
@@ -18,7 +18,6 @@
 
 import org.jboss.arquillian.api.RunModeType;
 import org.jboss.arquillian.spi.ApplicationArchiveGenerator;
-import org.jboss.arquillian.spi.Context;
 import org.jboss.arquillian.spi.ServiceLoader;
 import org.jboss.arquillian.spi.TestClass;
 import org.jboss.shrinkwrap.api.Archive;
@@ -37,9 +36,11 @@
    {
       this.serviceLoader = serviceLoader;
    }
-
-   @Override
-   public Archive<?> generate(Context context, TestClass testCase)
+   
+   /* (non-Javadoc)
+    * @see org.jboss.arquillian.impl.DeploymentGenerator#generate(java.lang.Class)
+    */
+   public Archive<?> generate(TestClass testCase)
    {
       return serviceLoader.onlyOne(ApplicationArchiveGenerator.class).generateApplicationArchive(testCase);
    }

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-02 16:31:44 UTC (rev 4669)
+++ arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/ClientDeploymentGenerator.java	2010-07-02 21:18:06 UTC (rev 4670)
@@ -24,7 +24,6 @@
 import org.jboss.arquillian.spi.ApplicationArchiveProcessor;
 import org.jboss.arquillian.spi.AuxiliaryArchiveAppender;
 import org.jboss.arquillian.spi.AuxiliaryArchiveProcessor;
-import org.jboss.arquillian.spi.Context;
 import org.jboss.arquillian.spi.DeployableContainer;
 import org.jboss.arquillian.spi.DeploymentPackager;
 import org.jboss.arquillian.spi.ServiceLoader;
@@ -50,20 +49,19 @@
       this.serviceLoader = serviceLoader;
    }
    
-   @Override
-   public Archive<?> generate(Context context, TestClass testCase)
+   public Archive<?> generate(TestClass testCase)
    {
       Validate.notNull(testCase, "TestCase must be specified");
 
       DeploymentPackager packager = serviceLoader.onlyOne(DeploymentPackager.class);
 
-      Archive<?> archive = serviceLoader.onlyOne(ApplicationArchiveGenerator.class).generateApplicationArchive(testCase);
-      applyApplicationProcessors(archive, testCase);
+      Archive<?> applicationArchive = serviceLoader.onlyOne(ApplicationArchiveGenerator.class).generateApplicationArchive(testCase);
+      applyApplicationProcessors(applicationArchive, testCase);
       
       List<Archive<?>> auxiliaryArchives = loadAuxiliaryArchives();
       applyAuxiliaryProcessors(auxiliaryArchives);
 
-      return packager.generateDeployment(context, archive, auxiliaryArchives);
+      return packager.generateDeployment(applicationArchive, auxiliaryArchives);
    }
    
    private List<Archive<?>> loadAuxiliaryArchives() 

Modified: arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/DeploymentAnnotationArchiveGenerator.java
===================================================================
--- arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/DeploymentAnnotationArchiveGenerator.java	2010-07-02 16:31:44 UTC (rev 4669)
+++ arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/DeploymentAnnotationArchiveGenerator.java	2010-07-02 21:18:06 UTC (rev 4670)
@@ -33,12 +33,11 @@
  */
 public class DeploymentAnnotationArchiveGenerator implements ApplicationArchiveGenerator 
 {
-   @Override
    public Archive<?> generateApplicationArchive(TestClass testCase)
    {
       Validate.notNull(testCase, "TestCase must be specified");
       
-      Method deploymentMethod = findDeploymentMethod(testCase);
+      Method deploymentMethod = testCase.getMethod(Deployment.class);
       if(deploymentMethod == null) 
       {
          throw new IllegalArgumentException("No method annotated with " + Deployment.class.getName() + " found");
@@ -79,17 +78,4 @@
          throw new RuntimeException("Could not get Deployment", e);
       }
    }
-
-   private Method findDeploymentMethod(TestClass testClass) 
-   {
-      Method[] methods = testClass.getJavaClass().getMethods();
-      for(Method method: methods)
-      {
-         if(method.isAnnotationPresent(Deployment.class)) 
-         {
-            return method;
-         }
-      }
-      return null;
-   }
 }

Modified: arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/DeploymentGenerator.java
===================================================================
--- arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/DeploymentGenerator.java	2010-07-02 16:31:44 UTC (rev 4669)
+++ arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/DeploymentGenerator.java	2010-07-02 21:18:06 UTC (rev 4670)
@@ -16,7 +16,6 @@
  */
 package org.jboss.arquillian.impl;
 
-import org.jboss.arquillian.spi.Context;
 import org.jboss.arquillian.spi.TestClass;
 import org.jboss.shrinkwrap.api.Archive;
 
@@ -28,9 +27,11 @@
  */
 public interface DeploymentGenerator 
 {
+
    /**
-    * Generate a deployment archive for the given test case
+    * @param testCase
+    * @return
     */
-   Archive<?> generate(Context context, TestClass testCase);
+   Archive<?> generate(TestClass testCase);
 
 }

Modified: arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/handler/ArchiveGenerator.java
===================================================================
--- arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/handler/ArchiveGenerator.java	2010-07-02 16:31:44 UTC (rev 4669)
+++ arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/handler/ArchiveGenerator.java	2010-07-02 21:18:06 UTC (rev 4670)
@@ -19,7 +19,6 @@
 import org.jboss.arquillian.impl.DeploymentGenerator;
 import org.jboss.arquillian.impl.Validate;
 import org.jboss.arquillian.spi.Context;
-import org.jboss.arquillian.spi.TestClass;
 import org.jboss.arquillian.spi.event.suite.ClassEvent;
 import org.jboss.arquillian.spi.event.suite.EventHandler;
 import org.jboss.shrinkwrap.api.Archive;
@@ -50,10 +49,8 @@
       DeploymentGenerator generator = context.get(DeploymentGenerator.class);
       Validate.stateNotNull(generator, "No " + DeploymentGenerator.class.getName() + " found in context");
       
-      TestClass testClass = event.getTestClass();
-      context.add(TestClass.class, testClass);
+      Archive<?> deployment = generator.generate(event.getTestClass());
       
-      Archive<?> deployment = generator.generate(context, testClass);
       context.add(Archive.class, deployment);
    }
 }

Modified: arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/handler/ArchiveGeneratorTestCase.java
===================================================================
--- arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/handler/ArchiveGeneratorTestCase.java	2010-07-02 16:31:44 UTC (rev 4669)
+++ arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/handler/ArchiveGeneratorTestCase.java	2010-07-02 21:18:06 UTC (rev 4670)
@@ -64,7 +64,7 @@
       
       TestClass testClass = new TestClass(getClass());
       ClassContext context = new ClassContext(new SuiteContext(serviceLoader));
-      Mockito.when(generator.generate(context, testClass)).thenAnswer(new Answer<Archive<?>>()
+      Mockito.when(generator.generate(testClass)).thenAnswer(new Answer<Archive<?>>()
       {
          public Archive<?> answer(org.mockito.invocation.InvocationOnMock invocation) throws Throwable {
             return deployment;

Modified: arquillian/trunk/packagers/applicationarchive/src/main/java/org/jboss/arquillian/packager/applicationarchive/ApplicationArchiveDeploymentPackager.java
===================================================================
--- arquillian/trunk/packagers/applicationarchive/src/main/java/org/jboss/arquillian/packager/applicationarchive/ApplicationArchiveDeploymentPackager.java	2010-07-02 16:31:44 UTC (rev 4669)
+++ arquillian/trunk/packagers/applicationarchive/src/main/java/org/jboss/arquillian/packager/applicationarchive/ApplicationArchiveDeploymentPackager.java	2010-07-02 21:18:06 UTC (rev 4670)
@@ -18,7 +18,6 @@
 
 import java.util.Collection;
 
-import org.jboss.arquillian.spi.Context;
 import org.jboss.arquillian.spi.DeploymentPackager;
 import org.jboss.shrinkwrap.api.Archive;
 
@@ -31,10 +30,8 @@
  */
 public class ApplicationArchiveDeploymentPackager implements DeploymentPackager
 {
-   @Override
-   public Archive<?> generateDeployment(Context context, Archive<?> applicationArchive, Collection<Archive<?>> auxiliaryArchives)
+   public Archive<?> generateDeployment(Archive<?> applicationArchive, Collection<Archive<?>> auxiliaryArchives)
    {
       return applicationArchive;
    }
-
 }

Modified: arquillian/trunk/packagers/javaee/src/main/java/org/jboss/arquillian/packager/javaee/EEDeploymentPackager.java
===================================================================
--- arquillian/trunk/packagers/javaee/src/main/java/org/jboss/arquillian/packager/javaee/EEDeploymentPackager.java	2010-07-02 16:31:44 UTC (rev 4669)
+++ arquillian/trunk/packagers/javaee/src/main/java/org/jboss/arquillian/packager/javaee/EEDeploymentPackager.java	2010-07-02 21:18:06 UTC (rev 4670)
@@ -18,7 +18,6 @@
 
 import java.util.Collection;
 
-import org.jboss.arquillian.spi.Context;
 import org.jboss.arquillian.spi.DeploymentPackager;
 import org.jboss.shrinkwrap.api.Archive;
 import org.jboss.shrinkwrap.api.ShrinkWrap;
@@ -34,8 +33,10 @@
  */
 public class EEDeploymentPackager implements DeploymentPackager
 {
-   @Override
-   public Archive<?> generateDeployment(Context context, Archive<?> applicationArchive, Collection<Archive<?>> auxiliaryArchives)
+   /* (non-Javadoc)
+    * @see org.jboss.arquillian.spi.DeploymentPackager#generateDeployment(org.jboss.shrinkwrap.api.Archive, java.util.Collection)
+    */
+   public Archive<?> generateDeployment(Archive<?> applicationArchive, Collection<Archive<?>> auxiliaryArchives)
    {
       if(EnterpriseArchive.class.isInstance(applicationArchive))
       {

Modified: arquillian/trunk/packagers/javaee/src/test/java/org/jboss/arquillian/packager/javaee/EEDeploymentPackagerTestCase.java
===================================================================
--- arquillian/trunk/packagers/javaee/src/test/java/org/jboss/arquillian/packager/javaee/EEDeploymentPackagerTestCase.java	2010-07-02 16:31:44 UTC (rev 4669)
+++ arquillian/trunk/packagers/javaee/src/test/java/org/jboss/arquillian/packager/javaee/EEDeploymentPackagerTestCase.java	2010-07-02 21:18:06 UTC (rev 4670)
@@ -20,16 +20,15 @@
 import java.util.Collection;
 import java.util.List;
 
-import org.jboss.arquillian.spi.Context;
 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.Test;
-import org.mockito.Mockito;
 
 
 /**
@@ -43,8 +42,7 @@
    @Test
    public void shouldHandleJavaArchiveEE5Protocol() throws Exception
    {
-      Context context = Mockito.mock(Context.class);
-      Archive<?> archive = new EEDeploymentPackager().generateDeployment(context,
+      Archive<?> archive = new EEDeploymentPackager().generateDeployment(
             ShrinkWrap.create("applicationArchive.jar", JavaArchive.class), 
             createAuxiliaryArchivesEE5());
       
@@ -68,8 +66,7 @@
    @Test
    public void shouldHandleJavaArchiveEE6Protocol() throws Exception
    {
-      Context context = Mockito.mock(Context.class);
-      Archive<?> archive = new EEDeploymentPackager().generateDeployment(context,
+      Archive<?> archive = new EEDeploymentPackager().generateDeployment(
             ShrinkWrap.create("applicationArchive.jar", JavaArchive.class), 
             createAuxiliaryArchivesEE6());
       
@@ -94,8 +91,7 @@
    @Test(expected = IllegalArgumentException.class)
    public void shouldHandleWebArchiveEE5Protocol() throws Exception
    {
-      Context context = Mockito.mock(Context.class);
-      new EEDeploymentPackager().generateDeployment(context,
+      new EEDeploymentPackager().generateDeployment(
             ShrinkWrap.create("applicationArchive.war", WebArchive.class), 
             createAuxiliaryArchivesEE5());
       
@@ -104,8 +100,7 @@
    @Test
    public void shouldHandleWebArchiveEE6Protocol() throws Exception
    {
-      Context context = Mockito.mock(Context.class);
-      Archive<?> archive = new EEDeploymentPackager().generateDeployment(context,
+      Archive<?> archive = new EEDeploymentPackager().generateDeployment(
             ShrinkWrap.create("applicationArchive.war", WebArchive.class), 
             createAuxiliaryArchivesEE6());
       
@@ -125,8 +120,7 @@
    @Test
    public void shouldHandleEnterpriseArchiveEE5Protocol() throws Exception
    {
-      Context context = Mockito.mock(Context.class);
-      Archive<?> archive = new EEDeploymentPackager().generateDeployment(context,
+      Archive<?> archive = new EEDeploymentPackager().generateDeployment(
             ShrinkWrap.create("applicationArchive.ear", EnterpriseArchive.class), 
             createAuxiliaryArchivesEE5());
 
@@ -143,8 +137,7 @@
    @Test
    public void shouldHandleEnterpriseArchiveEE6Protocol() throws Exception
    {
-      Context context = Mockito.mock(Context.class);
-      Archive<?> archive = new EEDeploymentPackager().generateDeployment(context,
+      Archive<?> archive = new EEDeploymentPackager().generateDeployment(
             ShrinkWrap.create("applicationArchive.ear", EnterpriseArchive.class), 
             createAuxiliaryArchivesEE6());
       
@@ -157,6 +150,35 @@
             archive.contains(ArchivePaths.create("/lib/auxiliaryArchive2.jar")));
    }
 
+   @Test
+   public void shouldHandleEnterpriseArchiveEE6ProtocolWithExistingWAR() throws Exception
+   {
+      Archive<?> archive = new EEDeploymentPackager().generateDeployment(
+            ShrinkWrap.create("applicationArchive.ear", EnterpriseArchive.class)
+                        .addModule(ShrinkWrap.create("test.war", WebArchive.class)
+                                       .addClass(Test.class)), 
+            createAuxiliaryArchivesEE6());
+      
+      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<?>> createAuxiliaryArchivesEE6() 
    {
       List<Archive<?>> archives = new ArrayList<Archive<?>>();

Modified: arquillian/trunk/packagers/osgi/src/main/java/org/jboss/arquillian/packager/osgi/OSGiDeploymentPackager.java
===================================================================
--- arquillian/trunk/packagers/osgi/src/main/java/org/jboss/arquillian/packager/osgi/OSGiDeploymentPackager.java	2010-07-02 16:31:44 UTC (rev 4669)
+++ arquillian/trunk/packagers/osgi/src/main/java/org/jboss/arquillian/packager/osgi/OSGiDeploymentPackager.java	2010-07-02 21:18:06 UTC (rev 4670)
@@ -19,9 +19,7 @@
 import java.io.File;
 import java.util.Collection;
 
-import org.jboss.arquillian.spi.Context;
 import org.jboss.arquillian.spi.DeploymentPackager;
-import org.jboss.arquillian.spi.TestClass;
 import org.jboss.osgi.spi.util.BundleInfo;
 import org.jboss.osgi.vfs.AbstractVFS;
 import org.jboss.osgi.vfs.VirtualFile;
@@ -38,25 +36,21 @@
 public class OSGiDeploymentPackager implements DeploymentPackager
 {
    @Override
-   public Archive<?> generateDeployment(Context context, Archive<?> bundleArchive, Collection<Archive<?>> auxiliaryArchives)
+   public Archive<?> generateDeployment(Archive<?> bundleArchive, Collection<Archive<?>> auxiliaryArchives)
    {
       if(JavaArchive.class.isInstance(bundleArchive))
       {
-         return handleArchive(context, JavaArchive.class.cast(bundleArchive), auxiliaryArchives);
+         return handleArchive(JavaArchive.class.cast(bundleArchive), auxiliaryArchives);
       }
       
       throw new IllegalArgumentException(OSGiDeploymentPackager.class.getName()  + 
             " can not handle archive of type " +  bundleArchive.getClass().getName());
    }
 
-   private Archive<?> handleArchive(Context context, JavaArchive archive, Collection<Archive<?>> auxiliaryArchives) 
+   private Archive<?> handleArchive(JavaArchive archive, Collection<Archive<?>> auxiliaryArchives) 
    {
       try
       {
-         TestClass testClass = context.get(TestClass.class);
-         //if (testClass == null)
-         //   throw new IllegalStateException("Cannot obtain TestClass");
-         
          validateBundleArchive(archive);
          return archive;
       }

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-02 16:31:44 UTC (rev 4669)
+++ arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/DeploymentPackager.java	2010-07-02 21:18:06 UTC (rev 4670)
@@ -32,16 +32,9 @@
 public interface DeploymentPackager
 {
    /**
-    * Inspect, validate and optionally modify the user defined archive.
-    * 
-    * Additional archives can be added to the given list of auxiliaryArchives.
-    * The returned archive together with the auxiliaryArchives will get deployed 
-    * to the container.
-    * 
-    * @param context The test lifecycle context
-    * @param archive The user defined deployment archive
+    * @param applicationArchive The user defined deployment archive
     * @param auxiliaryArchives All found system defined deployment archives
     * @return A archive to deploy
     */
-   Archive<?> generateDeployment(Context context, Archive<?> archive, Collection<Archive<?>> auxiliaryArchives);
+   Archive<?> generateDeployment(Archive<?> applicationArchive, Collection<Archive<?>> auxiliaryArchives);
 }

Modified: arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/TestClass.java
===================================================================
--- arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/TestClass.java	2010-07-02 16:31:44 UTC (rev 4669)
+++ arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/TestClass.java	2010-07-02 21:18:06 UTC (rev 4670)
@@ -17,6 +17,7 @@
 package org.jboss.arquillian.spi;
 
 import java.lang.annotation.Annotation;
+import java.lang.reflect.Method;
 
 
 /**
@@ -56,4 +57,17 @@
    {
       return testClass.getAnnotation(annotation);
    }
+   
+   public Method getMethod(Class<? extends Annotation> annotation)
+   {
+      Method[] methods = testClass.getMethods();
+      for(Method method: methods)
+      {
+         if(method.isAnnotationPresent(annotation)) 
+         {
+            return method;
+         }
+      }
+      return null;
+   }
 }



More information about the jboss-svn-commits mailing list