[jboss-svn-commits] JBoss Common SVN: r4553 - in arquillian/trunk: containers/osgi-embedded/src/main/java/org/jboss/arquillian/osgi and 14 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Jun 25 03:22:15 EDT 2010


Author: thomas.diesler at jboss.com
Date: 2010-06-25 03:22:13 -0400 (Fri, 25 Jun 2010)
New Revision: 4553

Added:
   arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/TestClass.java
Removed:
   arquillian/trunk/packagers/osgi/src/main/java/org/jboss/arquillian/packager/osgi/BundleArchive.java
Modified:
   arquillian/trunk/.gitignore
   arquillian/trunk/containers/osgi-embedded/src/main/java/org/jboss/arquillian/osgi/OSGiEmbeddedFrameworkContainer.java
   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/DeploymentAnnotationArchiveGeneratorTestCase.java
   arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/handler/ArchiveGeneratorTestCase.java
   arquillian/trunk/junit/src/test/java/org/jboss/arquillian/junit/testspi/TestDeploymentPackager.java
   arquillian/trunk/packagers/applicationarchive/src/main/java/org/jboss/arquillian/packager/applicationarchive/ApplicationArchiveDeploymentPackager.java
   arquillian/trunk/packagers/javaee/pom.xml
   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/.classpath
   arquillian/trunk/packagers/osgi/pom.xml
   arquillian/trunk/packagers/osgi/src/main/java/org/jboss/arquillian/packager/osgi/OSGiDeploymentPackager.java
   arquillian/trunk/packagers/osgi/src/test/java/org/jboss/arquillian/packager/osgi/OSGiDeploymentPackagerTestCase.java
   arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/ApplicationArchiveGenerator.java
   arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/ApplicationArchiveProcessor.java
   arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/Context.java
   arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/DeploymentPackager.java
   arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/suite/ClassEvent.java
Log:
[ARQ-193] Create auxillary OSGi test bundle
Add TestClass abstraction.
ClassEvent uses TestClass internally
Add Context parameter to DeploymentPackager
Add Context parameter to ApplicationArchiveGenerator, ApplicationArchiveProcessor

Modified: arquillian/trunk/.gitignore
===================================================================
--- arquillian/trunk/.gitignore	2010-06-25 03:20:53 UTC (rev 4552)
+++ arquillian/trunk/.gitignore	2010-06-25 07:22:13 UTC (rev 4553)
@@ -46,6 +46,7 @@
 junit/.project
 junit/.settings/
 junit/target
+packagers/applicationarchive/.classpath
 packagers/applicationarchive/target
 packagers/javaee/.classpath
 packagers/javaee/.project

Modified: arquillian/trunk/containers/osgi-embedded/src/main/java/org/jboss/arquillian/osgi/OSGiEmbeddedFrameworkContainer.java
===================================================================
--- arquillian/trunk/containers/osgi-embedded/src/main/java/org/jboss/arquillian/osgi/OSGiEmbeddedFrameworkContainer.java	2010-06-25 03:20:53 UTC (rev 4552)
+++ arquillian/trunk/containers/osgi-embedded/src/main/java/org/jboss/arquillian/osgi/OSGiEmbeddedFrameworkContainer.java	2010-06-25 07:22:13 UTC (rev 4553)
@@ -16,7 +16,9 @@
  */
 package org.jboss.arquillian.osgi;
 
-import org.jboss.arquillian.packager.osgi.BundleArchive;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+
 import org.jboss.arquillian.protocol.jmx.JMXMethodExecutor;
 import org.jboss.arquillian.spi.Configuration;
 import org.jboss.arquillian.spi.ContainerMethodExecutor;
@@ -27,8 +29,8 @@
 import org.jboss.logging.Logger;
 import org.jboss.osgi.spi.framework.OSGiBootstrap;
 import org.jboss.osgi.spi.framework.OSGiBootstrapProvider;
-import org.jboss.osgi.vfs.VirtualFile;
 import org.jboss.shrinkwrap.api.Archive;
+import org.jboss.shrinkwrap.api.exporter.ZipExporter;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.BundleException;
@@ -92,12 +94,15 @@
    {
       try
       {
-         if ((archive instanceof BundleArchive) == false)
-            throw new IllegalStateException("Archive is not a bundle archive: " + archive);
+         // Export the bundle bytes
+         ZipExporter exporter = archive.as(ZipExporter.class);
+         ByteArrayOutputStream baos = new ByteArrayOutputStream();
+         exporter.exportZip(baos);
          
+         ByteArrayInputStream inputStream = new ByteArrayInputStream(baos.toByteArray());
+         
          BundleContext sysContext = framework.getBundleContext();
-         VirtualFile virtualFile = ((BundleArchive)archive).getBundleInfo().getRoot();
-         Bundle bundle = sysContext.installBundle(archive.getName(), virtualFile.openStream());
+         Bundle bundle = sysContext.installBundle(archive.getName(), inputStream);
          context.add(Bundle.class, bundle);
       }
       catch (RuntimeException rte)

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-06-25 03:20:53 UTC (rev 4552)
+++ arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/ApplicationArchiveDeploymentGenerator.java	2010-06-25 07:22:13 UTC (rev 4553)
@@ -18,7 +18,9 @@
 
 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;
 
 /**
@@ -35,11 +37,9 @@
    {
       this.serviceLoader = serviceLoader;
    }
-   
-   /* (non-Javadoc)
-    * @see org.jboss.arquillian.impl.DeploymentGenerator#generate(java.lang.Class)
-    */
-   public Archive<?> generate(Class<?> testCase)
+
+   @Override
+   public Archive<?> generate(Context context, 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-06-25 03:20:53 UTC (rev 4552)
+++ arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/ClientDeploymentGenerator.java	2010-06-25 07:22:13 UTC (rev 4553)
@@ -24,9 +24,11 @@
 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;
+import org.jboss.arquillian.spi.TestClass;
 import org.jboss.shrinkwrap.api.Archive;
 
 /**
@@ -48,19 +50,20 @@
       this.serviceLoader = serviceLoader;
    }
    
-   public Archive<?> generate(Class<?> testCase)
+   @Override
+   public Archive<?> generate(Context context, TestClass testCase)
    {
       Validate.notNull(testCase, "TestCase must be specified");
 
       DeploymentPackager packager = serviceLoader.onlyOne(DeploymentPackager.class);
 
-      Archive<?> applicationArchive = serviceLoader.onlyOne(ApplicationArchiveGenerator.class).generateApplicationArchive(testCase);
-      applyApplicationProcessors(applicationArchive, testCase);
+      Archive<?> archive = serviceLoader.onlyOne(ApplicationArchiveGenerator.class).generateApplicationArchive(testCase);
+      applyApplicationProcessors(archive, testCase);
       
       List<Archive<?>> auxiliaryArchives = loadAuxiliaryArchives();
       applyAuxiliaryProcessors(auxiliaryArchives);
 
-      return packager.generateDeployment(applicationArchive, auxiliaryArchives);
+      return packager.generateDeployment(context, archive, auxiliaryArchives);
    }
    
    private List<Archive<?>> loadAuxiliaryArchives() 
@@ -75,7 +78,7 @@
       return archives;
    }
 
-   private void applyApplicationProcessors(Archive<?> applicationArchive, Class<?> testClass)
+   private void applyApplicationProcessors(Archive<?> applicationArchive, TestClass testClass)
    {
       Collection<ApplicationArchiveProcessor> processors = serviceLoader.all(ApplicationArchiveProcessor.class);
       for(ApplicationArchiveProcessor processor : processors)

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-06-25 03:20:53 UTC (rev 4552)
+++ arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/DeploymentAnnotationArchiveGenerator.java	2010-06-25 07:22:13 UTC (rev 4553)
@@ -21,6 +21,7 @@
 
 import org.jboss.arquillian.api.Deployment;
 import org.jboss.arquillian.spi.ApplicationArchiveGenerator;
+import org.jboss.arquillian.spi.TestClass;
 import org.jboss.shrinkwrap.api.Archive;
 import org.jboss.shrinkwrap.api.container.ClassContainer;
 
@@ -32,12 +33,12 @@
  */
 public class DeploymentAnnotationArchiveGenerator implements ApplicationArchiveGenerator 
 {
-
-   public Archive<?> generateApplicationArchive(Class<?> testCase)
+   @Override
+   public Archive<?> generateApplicationArchive(TestClass testCase)
    {
       Validate.notNull(testCase, "TestCase must be specified");
       
-      Method deploymentMethod = findDeploymentMethod(testCase);
+      Method deploymentMethod = testCase.findDeploymentMethod();
       if(deploymentMethod == null) 
       {
          throw new IllegalArgumentException("No method annotated with " + Deployment.class.getName() + " found");
@@ -59,7 +60,7 @@
             if(ClassContainer.class.isInstance(archive)) 
             {
                ClassContainer<?> classContainer = ClassContainer.class.cast(archive);
-               classContainer.addClass(testCase);
+               classContainer.addClass(testCase.getJavaClass());
             }
          } 
          catch (UnsupportedOperationException e) 
@@ -78,17 +79,4 @@
          throw new RuntimeException("Could not get Deployment", e);
       }
    }
-   
-   private static Method findDeploymentMethod(Class<?> testCase) 
-   {
-      Method[] methods = testCase.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-06-25 03:20:53 UTC (rev 4552)
+++ arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/DeploymentGenerator.java	2010-06-25 07:22:13 UTC (rev 4553)
@@ -16,6 +16,8 @@
  */
 package org.jboss.arquillian.impl;
 
+import org.jboss.arquillian.spi.Context;
+import org.jboss.arquillian.spi.TestClass;
 import org.jboss.shrinkwrap.api.Archive;
 
 /**
@@ -26,11 +28,9 @@
  */
 public interface DeploymentGenerator 
 {
-
    /**
-    * @param testCase
-    * @return
+    * Generate a deployment archive for the given test case
     */
-   Archive<?> generate(Class<?> testCase);
+   Archive<?> generate(Context context, 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-06-25 03:20:53 UTC (rev 4552)
+++ arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/handler/ArchiveGenerator.java	2010-06-25 07:22:13 UTC (rev 4553)
@@ -19,6 +19,7 @@
 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;
@@ -49,8 +50,10 @@
       DeploymentGenerator generator = context.get(DeploymentGenerator.class);
       Validate.stateNotNull(generator, "No " + DeploymentGenerator.class.getName() + " found in context");
       
-      Archive<?> deployment = generator.generate(event.getTestClass());
+      TestClass testClass = event.getTestClass();
+      context.add(TestClass.class, testClass);
       
+      Archive<?> deployment = generator.generate(context, testClass);
       context.add(Archive.class, deployment);
    }
 }

Modified: arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/DeploymentAnnotationArchiveGeneratorTestCase.java
===================================================================
--- arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/DeploymentAnnotationArchiveGeneratorTestCase.java	2010-06-25 03:20:53 UTC (rev 4552)
+++ arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/DeploymentAnnotationArchiveGeneratorTestCase.java	2010-06-25 07:22:13 UTC (rev 4553)
@@ -19,6 +19,7 @@
 import junit.framework.Assert;
 
 import org.jboss.arquillian.api.Deployment;
+import org.jboss.arquillian.spi.TestClass;
 import org.jboss.shrinkwrap.api.Archive;
 import org.jboss.shrinkwrap.api.ArchivePath;
 import org.jboss.shrinkwrap.api.ArchivePaths;
@@ -27,7 +28,6 @@
 import org.jboss.shrinkwrap.api.spec.ResourceAdapterArchive;
 import org.junit.Test;
 
-
 /**
  * DeploymentAnnotationArchiveGeneratorTestCase
  *
@@ -36,81 +36,85 @@
  */
 public class DeploymentAnnotationArchiveGeneratorTestCase
 {
-   
+
    @Test(expected = IllegalArgumentException.class)
    public void shouldThrowExceptionOnDeploymentNotPresent() throws Exception
    {
-      new DeploymentAnnotationArchiveGenerator().generateApplicationArchive(DeploymentNotPresent.class);
+      new DeploymentAnnotationArchiveGenerator().generateApplicationArchive(new TestClass(DeploymentNotPresent.class));
    }
 
    @Test(expected = IllegalArgumentException.class)
    public void shouldThrowExceptionOnDeploymentNotStatic() throws Exception
    {
-      new DeploymentAnnotationArchiveGenerator().generateApplicationArchive(DeploymentNotStatic.class);
+      new DeploymentAnnotationArchiveGenerator().generateApplicationArchive(new TestClass(DeploymentNotStatic.class));
    }
 
    @Test(expected = IllegalArgumentException.class)
    public void shouldThrowExceptionOnDeploymentWrongReturnType() throws Exception
    {
-      new DeploymentAnnotationArchiveGenerator().generateApplicationArchive(DeploymentWrongReturnType.class);
+      new DeploymentAnnotationArchiveGenerator().generateApplicationArchive(new TestClass(DeploymentWrongReturnType.class));
    }
-   
+
    @Test
    public void shouldThrowExceptionOnDeploymentOk() throws Exception
    {
-      Archive<?> archive = new DeploymentAnnotationArchiveGenerator()
-                                 .generateApplicationArchive(DeploymentOK.class);
-      
+      Archive<?> archive = new DeploymentAnnotationArchiveGenerator().generateApplicationArchive(new TestClass(DeploymentOK.class));
+
       ArchivePath testPath = ArchivePaths.create(DeploymentOK.class.getName().replaceAll("\\.", "/") + ".class");
-      
+
       // verify that the test class was added to the archive
       Assert.assertNotNull(archive.contains(testPath));
    }
-   
+
    @Test
    public void shouldNotIncludeTheTestClassIfClassesNotSupportedByTheArchive() throws Exception
    {
-      Archive<?> archive = new DeploymentAnnotationArchiveGenerator()
-                              .generateApplicationArchive(DeploymentClassesNotSupported.class);
-      
+      Archive<?> archive = new DeploymentAnnotationArchiveGenerator().generateApplicationArchive(new TestClass(DeploymentClassesNotSupported.class));
+
       // verify that nothing was added to the archive
       Assert.assertTrue(archive.getContent().isEmpty());
    }
 
-   private static class DeploymentNotPresent {}
-   
-   private static class DeploymentNotStatic 
+   private static class DeploymentNotPresent
    {
+   }
+
+   private static class DeploymentNotStatic
+   {
       @SuppressWarnings("unused")
       @Deployment
-      public Archive<?> test() {
+      public Archive<?> test()
+      {
          return ShrinkWrap.create("test.jar", JavaArchive.class);
       }
    }
-   
+
    private static class DeploymentWrongReturnType
    {
       @SuppressWarnings("unused")
       @Deployment
-      public Object test() {
+      public Object test()
+      {
          return ShrinkWrap.create("test.jar", JavaArchive.class);
       }
    }
-   
+
    private static class DeploymentOK
    {
       @SuppressWarnings("unused")
       @Deployment
-      public static JavaArchive test() {
+      public static JavaArchive test()
+      {
          return ShrinkWrap.create("test.jar", JavaArchive.class);
       }
    }
-   
-   private static class DeploymentClassesNotSupported 
+
+   private static class DeploymentClassesNotSupported
    {
       @SuppressWarnings("unused")
       @Deployment
-      public static ResourceAdapterArchive test() {
+      public static ResourceAdapterArchive test()
+      {
          return ShrinkWrap.create("test.jar", ResourceAdapterArchive.class);
       }
    }

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-06-25 03:20:53 UTC (rev 4552)
+++ arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/handler/ArchiveGeneratorTestCase.java	2010-06-25 07:22:13 UTC (rev 4553)
@@ -22,6 +22,7 @@
 import org.jboss.arquillian.impl.context.ClassContext;
 import org.jboss.arquillian.impl.context.SuiteContext;
 import org.jboss.arquillian.spi.ServiceLoader;
+import org.jboss.arquillian.spi.TestClass;
 import org.jboss.arquillian.spi.event.suite.ClassEvent;
 import org.jboss.shrinkwrap.api.Archive;
 import org.jboss.shrinkwrap.api.ShrinkWrap;
@@ -52,9 +53,8 @@
    public void shouldThrowIllegalStateExceptionOnMissingDeploymentGenerator() throws Exception
    {
       ClassContext context = new ClassContext(new SuiteContext(serviceLoader));
-      
       ArchiveGenerator handler = new ArchiveGenerator();
-      handler.callback(context, new ClassEvent(getClass()));
+      handler.callback(context, new ClassEvent(new TestClass(getClass())));
    }
 
    @Test
@@ -62,18 +62,19 @@
    {
       final Archive<?> deployment = ShrinkWrap.create("test.jar", JavaArchive.class);
       
-      Mockito.when(generator.generate(getClass())).thenAnswer(new Answer<Archive<?>>()
+      TestClass testClass = new TestClass(getClass());
+      ClassContext context = new ClassContext(new SuiteContext(serviceLoader));
+      Mockito.when(generator.generate(context, testClass)).thenAnswer(new Answer<Archive<?>>()
       {
          public Archive<?> answer(org.mockito.invocation.InvocationOnMock invocation) throws Throwable {
             return deployment;
          }
       });
       
-      ClassContext context = new ClassContext(new SuiteContext(serviceLoader));
       context.add(DeploymentGenerator.class, generator);
 
       ArchiveGenerator handler = new ArchiveGenerator();
-      handler.callback(context, new ClassEvent(getClass()));
+      handler.callback(context, new ClassEvent(testClass));
       
       Assert.assertNotNull(
             "Should have exported " + Archive.class.getSimpleName(), 

Modified: arquillian/trunk/junit/src/test/java/org/jboss/arquillian/junit/testspi/TestDeploymentPackager.java
===================================================================
--- arquillian/trunk/junit/src/test/java/org/jboss/arquillian/junit/testspi/TestDeploymentPackager.java	2010-06-25 03:20:53 UTC (rev 4552)
+++ arquillian/trunk/junit/src/test/java/org/jboss/arquillian/junit/testspi/TestDeploymentPackager.java	2010-06-25 07:22:13 UTC (rev 4553)
@@ -18,6 +18,7 @@
 
 import java.util.Collection;
 
+import org.jboss.arquillian.spi.Context;
 import org.jboss.arquillian.spi.DeploymentPackager;
 import org.jboss.shrinkwrap.api.Archive;
 
@@ -29,10 +30,8 @@
  */
 public class TestDeploymentPackager implements DeploymentPackager
 {
-   /* (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)
+   @Override
+   public Archive<?> generateDeployment(Context context, Archive<?> applicationArchive, Collection<Archive<?>> auxiliaryArchives)
    {
       return applicationArchive;
    }

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-06-25 03:20:53 UTC (rev 4552)
+++ arquillian/trunk/packagers/applicationarchive/src/main/java/org/jboss/arquillian/packager/applicationarchive/ApplicationArchiveDeploymentPackager.java	2010-06-25 07:22:13 UTC (rev 4553)
@@ -18,6 +18,7 @@
 
 import java.util.Collection;
 
+import org.jboss.arquillian.spi.Context;
 import org.jboss.arquillian.spi.DeploymentPackager;
 import org.jboss.shrinkwrap.api.Archive;
 
@@ -30,9 +31,8 @@
  */
 public class ApplicationArchiveDeploymentPackager implements DeploymentPackager
 {
-
-   public Archive<?> generateDeployment(Archive<?> applicationArchive,
-         Collection<Archive<?>> auxiliaryArchives)
+   @Override
+   public Archive<?> generateDeployment(Context context, Archive<?> applicationArchive, Collection<Archive<?>> auxiliaryArchives)
    {
       return applicationArchive;
    }

Modified: arquillian/trunk/packagers/javaee/pom.xml
===================================================================
--- arquillian/trunk/packagers/javaee/pom.xml	2010-06-25 03:20:53 UTC (rev 4552)
+++ arquillian/trunk/packagers/javaee/pom.xml	2010-06-25 07:22:13 UTC (rev 4553)
@@ -1,65 +1,61 @@
 <?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">
+<!-- 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>
+  <!-- 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.packager</groupId>
-   <artifactId>arquillian-packager-javaee</artifactId>
-   <name>Arquillian Packager Java EE</name>
-   <description>Java EE Packager for the Arquillian project</description>
+  <!-- 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 -->
+  <properties>
+  </properties>
 
+  <!-- Dependencies -->
+  <dependencies>
 
-   </properties>
+    <!-- org.jboss.arquillian -->
+    <dependency>
+      <groupId>org.jboss.arquillian</groupId>
+      <artifactId>arquillian-spi</artifactId>
+      <version>${project.version}</version>
+    </dependency>
 
-   <!-- Dependencies -->
-   <dependencies>
+    <dependency>
+      <groupId>org.jboss.shrinkwrap</groupId>
+      <artifactId>shrinkwrap-impl-base</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.shrinkwrap</groupId>
+      <artifactId>shrinkwrap-spi</artifactId>
+    </dependency>
 
-      <!-- 
-    org.jboss.arquillian
-     -->
-      <dependency>
-         <groupId>org.jboss.arquillian</groupId>
-         <artifactId>arquillian-spi</artifactId>
-         <version>${project.version}</version>
-      </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>
 
-      <dependency>
-         <groupId>org.jboss.shrinkwrap</groupId>
-         <artifactId>shrinkwrap-impl-base</artifactId>
-      </dependency>
-      <dependency>
-         <groupId>org.jboss.shrinkwrap</groupId>
-         <artifactId>shrinkwrap-spi</artifactId>
-      </dependency>
+  </dependencies>
 
-      <!-- 
-    External Projects
-     -->
-      <dependency>
-         <groupId>junit</groupId>
-         <artifactId>junit</artifactId>
-         <scope>test</scope>
-      </dependency>
-
-   </dependencies>
-
 </project>
 

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-06-25 03:20:53 UTC (rev 4552)
+++ arquillian/trunk/packagers/javaee/src/main/java/org/jboss/arquillian/packager/javaee/EEDeploymentPackager.java	2010-06-25 07:22:13 UTC (rev 4553)
@@ -18,6 +18,7 @@
 
 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;
@@ -33,10 +34,8 @@
  */
 public class EEDeploymentPackager implements DeploymentPackager
 {
-   /* (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)
+   @Override
+   public Archive<?> generateDeployment(Context context, 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-06-25 03:20:53 UTC (rev 4552)
+++ arquillian/trunk/packagers/javaee/src/test/java/org/jboss/arquillian/packager/javaee/EEDeploymentPackagerTestCase.java	2010-06-25 07:22:13 UTC (rev 4553)
@@ -20,6 +20,7 @@
 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;
@@ -28,6 +29,7 @@
 import org.jboss.shrinkwrap.api.spec.WebArchive;
 import org.junit.Assert;
 import org.junit.Test;
+import org.mockito.Mockito;
 
 
 /**
@@ -41,7 +43,8 @@
    @Test
    public void shouldHandleJavaArchiveEE5Protocol() throws Exception
    {
-      Archive<?> archive = new EEDeploymentPackager().generateDeployment(
+      Context context = Mockito.mock(Context.class);
+      Archive<?> archive = new EEDeploymentPackager().generateDeployment(context,
             ShrinkWrap.create("applicationArchive.jar", JavaArchive.class), 
             createAuxiliaryArchivesEE5());
       
@@ -65,7 +68,8 @@
    @Test
    public void shouldHandleJavaArchiveEE6Protocol() throws Exception
    {
-      Archive<?> archive = new EEDeploymentPackager().generateDeployment(
+      Context context = Mockito.mock(Context.class);
+      Archive<?> archive = new EEDeploymentPackager().generateDeployment(context,
             ShrinkWrap.create("applicationArchive.jar", JavaArchive.class), 
             createAuxiliaryArchivesEE6());
       
@@ -90,7 +94,8 @@
    @Test(expected = IllegalArgumentException.class)
    public void shouldHandleWebArchiveEE5Protocol() throws Exception
    {
-      new EEDeploymentPackager().generateDeployment(
+      Context context = Mockito.mock(Context.class);
+      new EEDeploymentPackager().generateDeployment(context,
             ShrinkWrap.create("applicationArchive.war", WebArchive.class), 
             createAuxiliaryArchivesEE5());
       
@@ -99,7 +104,8 @@
    @Test
    public void shouldHandleWebArchiveEE6Protocol() throws Exception
    {
-      Archive<?> archive = new EEDeploymentPackager().generateDeployment(
+      Context context = Mockito.mock(Context.class);
+      Archive<?> archive = new EEDeploymentPackager().generateDeployment(context,
             ShrinkWrap.create("applicationArchive.war", WebArchive.class), 
             createAuxiliaryArchivesEE6());
       
@@ -119,7 +125,8 @@
    @Test
    public void shouldHandleEnterpriseArchiveEE5Protocol() throws Exception
    {
-      Archive<?> archive = new EEDeploymentPackager().generateDeployment(
+      Context context = Mockito.mock(Context.class);
+      Archive<?> archive = new EEDeploymentPackager().generateDeployment(context,
             ShrinkWrap.create("applicationArchive.ear", EnterpriseArchive.class), 
             createAuxiliaryArchivesEE5());
 
@@ -136,7 +143,8 @@
    @Test
    public void shouldHandleEnterpriseArchiveEE6Protocol() throws Exception
    {
-      Archive<?> archive = new EEDeploymentPackager().generateDeployment(
+      Context context = Mockito.mock(Context.class);
+      Archive<?> archive = new EEDeploymentPackager().generateDeployment(context,
             ShrinkWrap.create("applicationArchive.ear", EnterpriseArchive.class), 
             createAuxiliaryArchivesEE6());
       

Modified: arquillian/trunk/packagers/osgi/.classpath
===================================================================
--- arquillian/trunk/packagers/osgi/.classpath	2010-06-25 03:20:53 UTC (rev 4552)
+++ arquillian/trunk/packagers/osgi/.classpath	2010-06-25 07:22:13 UTC (rev 4553)
@@ -3,7 +3,7 @@
 	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
 	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
 	<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
 	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
 	<classpathentry kind="output" path="target/classes"/>
 </classpath>

Modified: arquillian/trunk/packagers/osgi/pom.xml
===================================================================
--- arquillian/trunk/packagers/osgi/pom.xml	2010-06-25 03:20:53 UTC (rev 4552)
+++ arquillian/trunk/packagers/osgi/pom.xml	2010-06-25 07:22:13 UTC (rev 4553)
@@ -56,13 +56,18 @@
       <artifactId>shrinkwrap-spi</artifactId>
     </dependency>
 
-    <!-- External Projects -->
+    <!-- Test Dependencies -->
     <dependency>
       <groupId>org.jboss.osgi.vfs</groupId>
       <artifactId>jboss-osgi-vfs30</artifactId>
       <scope>test</scope>
     </dependency>
     <dependency>
+      <groupId>org.mockito</groupId>
+      <artifactId>mockito-all</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
       <scope>test</scope>

Deleted: arquillian/trunk/packagers/osgi/src/main/java/org/jboss/arquillian/packager/osgi/BundleArchive.java
===================================================================
--- arquillian/trunk/packagers/osgi/src/main/java/org/jboss/arquillian/packager/osgi/BundleArchive.java	2010-06-25 03:20:53 UTC (rev 4552)
+++ arquillian/trunk/packagers/osgi/src/main/java/org/jboss/arquillian/packager/osgi/BundleArchive.java	2010-06-25 07:22:13 UTC (rev 4553)
@@ -1,168 +0,0 @@
-/*
- * 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.packager.osgi;
-
-import java.util.Map;
-
-import org.jboss.osgi.spi.util.BundleInfo;
-import org.jboss.shrinkwrap.api.Archive;
-import org.jboss.shrinkwrap.api.ArchivePath;
-import org.jboss.shrinkwrap.api.Asset;
-import org.jboss.shrinkwrap.api.Assignable;
-import org.jboss.shrinkwrap.api.Filter;
-import org.jboss.shrinkwrap.api.Node;
-import org.jboss.shrinkwrap.api.formatter.Formatter;
-import org.jboss.shrinkwrap.api.spec.JavaArchive;
-
- at SuppressWarnings("rawtypes")
-public class BundleArchive implements Archive
-{
-   private Archive delegate;
-   private BundleInfo bundleInfo;
-
-   public BundleArchive(Archive<JavaArchive> archive, BundleInfo info)
-   {
-      this.delegate = archive;
-      this.bundleInfo = info;
-   }
-
-   public BundleInfo getBundleInfo()
-   {
-      return bundleInfo;
-   }
-
-   public <TYPE extends Assignable> TYPE as(Class<TYPE> clazz)
-   {
-      return delegate.as(clazz);
-   }
-
-   public String getName()
-   {
-      return delegate.getName();
-   }
-
-   public Archive add(Asset asset, ArchivePath target) throws IllegalArgumentException
-   {
-      return delegate.add(asset, target);
-   }
-
-   public Archive add(Asset asset, ArchivePath target, String name) throws IllegalArgumentException
-   {
-      return delegate.add(asset, target, name);
-   }
-
-   public Archive add(Asset asset, String target) throws IllegalArgumentException
-   {
-      return delegate.add(asset, target);
-   }
-
-   public Archive addDirectory(String path) throws IllegalArgumentException
-   {
-      return delegate.addDirectory(path);
-   }
-
-   public Archive addDirectories(String... paths) throws IllegalArgumentException
-   {
-      return delegate.addDirectories(paths);
-   }
-
-   public Archive addDirectory(ArchivePath path) throws IllegalArgumentException
-   {
-      return delegate.addDirectory(path);
-   }
-
-   public Archive addDirectories(ArchivePath... paths) throws IllegalArgumentException
-   {
-      return delegate.addDirectories(paths);
-   }
-
-   public Node get(ArchivePath path) throws IllegalArgumentException
-   {
-      return delegate.get(path);
-   }
-
-   public Node get(String path) throws IllegalArgumentException
-   {
-      return delegate.get(path);
-   }
-
-   public boolean contains(ArchivePath path) throws IllegalArgumentException
-   {
-      return delegate.contains(path);
-   }
-
-   public boolean delete(ArchivePath path) throws IllegalArgumentException
-   {
-      return delegate.delete(path);
-   }
-
-   public Map getContent()
-   {
-      return delegate.getContent();
-   }
-
-   @SuppressWarnings("unchecked")
-   public Map getContent(Filter filter)
-   {
-      return delegate.getContent(filter);
-   }
-
-   @SuppressWarnings("unchecked")
-   public Archive add(Archive archive, ArchivePath path) throws IllegalArgumentException
-   {
-      return delegate.add(archive, path);
-   }
-
-   @SuppressWarnings("unchecked")
-   public Archive merge(Archive source) throws IllegalArgumentException
-   {
-      return delegate.merge(source);
-   }
-
-   @SuppressWarnings("unchecked")
-   public Archive merge(Archive source, Filter filter) throws IllegalArgumentException
-   {
-      return delegate.merge(source, filter);
-   }
-
-   @SuppressWarnings("unchecked")
-   public Archive merge(Archive source, ArchivePath path) throws IllegalArgumentException
-   {
-      return delegate.merge(source, path);
-   }
-
-   @SuppressWarnings("unchecked")
-   public Archive merge(Archive source, ArchivePath path, Filter filter) throws IllegalArgumentException
-   {
-      return delegate.merge(source, path, filter);
-   }
-
-   public String toString()
-   {
-      return delegate.toString();
-   }
-
-   public String toString(boolean verbose)
-   {
-      return delegate.toString(verbose);
-   }
-
-   public String toString(Formatter formatter) throws IllegalArgumentException
-   {
-      return delegate.toString(formatter);
-   }
-}
\ No newline at end of file

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-06-25 03:20:53 UTC (rev 4552)
+++ arquillian/trunk/packagers/osgi/src/main/java/org/jboss/arquillian/packager/osgi/OSGiDeploymentPackager.java	2010-06-25 07:22:13 UTC (rev 4553)
@@ -17,11 +17,11 @@
 package org.jboss.arquillian.packager.osgi;
 
 import java.io.File;
-import java.io.IOException;
-import java.net.MalformedURLException;
 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;
@@ -37,24 +37,28 @@
  */
 public class OSGiDeploymentPackager implements DeploymentPackager
 {
-   public Archive<?> generateDeployment(Archive<?> bundleArchive, Collection<Archive<?>> auxiliaryArchives)
+   @Override
+   public Archive<?> generateDeployment(Context context, Archive<?> bundleArchive, Collection<Archive<?>> auxiliaryArchives)
    {
       if(JavaArchive.class.isInstance(bundleArchive))
       {
-         return handleArchive(JavaArchive.class.cast(bundleArchive), auxiliaryArchives);
+         return handleArchive(context, (JavaArchive)bundleArchive, auxiliaryArchives);
       }
       
       throw new IllegalArgumentException(OSGiDeploymentPackager.class.getName()  + 
             " can not handle archive of type " +  bundleArchive.getClass().getName());
    }
 
-   private Archive<?> handleArchive(JavaArchive archive, Collection<Archive<?>> auxiliaryArchives) 
+   private Archive<?> handleArchive(Context context, JavaArchive archive, Collection<Archive<?>> auxiliaryArchives) 
    {
       try
       {
-         VirtualFile virtualFile = toVirtualFile(archive);
-         BundleInfo info = BundleInfo.createBundleInfo(virtualFile);
-         return new BundleArchive(archive, info);
+         TestClass testClass = context.get(TestClass.class);
+         //if (testClass == null)
+         //   throw new IllegalStateException("Cannot obtain TestClass");
+         
+         validateBundleArchive(archive);
+         return archive;
       }
       catch (RuntimeException rte)
       {
@@ -66,17 +70,25 @@
       }
    }
 
-   private VirtualFile toVirtualFile(Archive<?> archive) throws IOException, MalformedURLException
+   private void validateBundleArchive(Archive<?> archive) throws Exception
    {
-      // [TODO] Can this be done in memory?
-      ZipExporter exporter = archive.as(ZipExporter.class);
       String archiveName = archive.getName();
       int dotIndex = archiveName.lastIndexOf(".");
       if (dotIndex > 0)
          archiveName = archiveName.substring(0, dotIndex);
+      
+      // [TODO] Can this be done in memory?
       File target = File.createTempFile(archiveName + "-", ".jar");
-      exporter.exportZip(target, true);
-      target.deleteOnExit();
-      return AbstractVFS.getRoot(target.toURI().toURL());
+      try
+      {
+         ZipExporter exporter = archive.as(ZipExporter.class);
+         exporter.exportZip(target, true);
+         VirtualFile virtualFile = AbstractVFS.getRoot(target.toURI().toURL());
+         BundleInfo.createBundleInfo(virtualFile);
+      }
+      finally
+      {
+         target.delete();
+      }
    }
 }
\ No newline at end of file

Modified: arquillian/trunk/packagers/osgi/src/test/java/org/jboss/arquillian/packager/osgi/OSGiDeploymentPackagerTestCase.java
===================================================================
--- arquillian/trunk/packagers/osgi/src/test/java/org/jboss/arquillian/packager/osgi/OSGiDeploymentPackagerTestCase.java	2010-06-25 03:20:53 UTC (rev 4552)
+++ arquillian/trunk/packagers/osgi/src/test/java/org/jboss/arquillian/packager/osgi/OSGiDeploymentPackagerTestCase.java	2010-06-25 07:22:13 UTC (rev 4553)
@@ -16,16 +16,19 @@
  */
 package org.jboss.arquillian.packager.osgi;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.fail;
 
 import java.io.InputStream;
 
+import org.jboss.arquillian.spi.Context;
 import org.jboss.osgi.testing.OSGiManifestBuilder;
 import org.jboss.shrinkwrap.api.Archive;
 import org.jboss.shrinkwrap.api.Asset;
 import org.jboss.shrinkwrap.api.ShrinkWrap;
 import org.jboss.shrinkwrap.api.spec.JavaArchive;
 import org.junit.Test;
+import org.mockito.Mockito;
 
 /**
  * OSGiDeploymentPackagerTestCase
@@ -49,7 +52,9 @@
             return builder.openStream();
          }
       });
-      Archive<?> result = new OSGiDeploymentPackager().generateDeployment(archive, null);
+      
+      Context context = Mockito.mock(Context.class);
+      Archive<?> result = new OSGiDeploymentPackager().generateDeployment(context, archive, null);
       assertNotNull("Result archive not null", result);
    }
    
@@ -67,7 +72,8 @@
       });
       try
       {
-         new OSGiDeploymentPackager().generateDeployment(archive, null);
+         Context context = Mockito.mock(Context.class);
+         new OSGiDeploymentPackager().generateDeployment(context, archive, null);
          fail("RuntimeException expected");
       }
       catch (RuntimeException ex)

Modified: arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/ApplicationArchiveGenerator.java
===================================================================
--- arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/ApplicationArchiveGenerator.java	2010-06-25 03:20:53 UTC (rev 4552)
+++ arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/ApplicationArchiveGenerator.java	2010-06-25 07:22:13 UTC (rev 4553)
@@ -36,5 +36,5 @@
     * @param testCase Current test case class
     * @return The Generated Archive
     */
-   Archive<?> generateApplicationArchive(Class<?> testCaseClass);
+   Archive<?> generateApplicationArchive(TestClass testClass);
 }
\ No newline at end of file

Modified: arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/ApplicationArchiveProcessor.java
===================================================================
--- arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/ApplicationArchiveProcessor.java	2010-06-25 03:20:53 UTC (rev 4552)
+++ arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/ApplicationArchiveProcessor.java	2010-06-25 07:22:13 UTC (rev 4553)
@@ -35,5 +35,5 @@
     * @param applicationArchive The user defined deployment archive
     * @param testClass The users test class
     */
-   void process(Archive<?> applicationArchive, Class<?> testCaseClass);
+   void process(Archive<?> applicationArchive, TestClass testClass);
 }

Modified: arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/Context.java
===================================================================
--- arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/Context.java	2010-06-25 03:20:53 UTC (rev 4552)
+++ arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/Context.java	2010-06-25 07:22:13 UTC (rev 4553)
@@ -21,12 +21,10 @@
 
 
 /**
- * 
+ * The arquillian test lifecycle context.  
  *
  * @author <a href="mailto:aknutsen at redhat.com">Aslak Knutsen</a>
  * @version $Revision: $
- * @param <X>
- * @param <T>
  */
 public interface Context 
 {

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-06-25 03:20:53 UTC (rev 4552)
+++ arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/DeploymentPackager.java	2010-06-25 07:22:13 UTC (rev 4553)
@@ -32,9 +32,16 @@
 public interface DeploymentPackager
 {
    /**
-    * @param applicationArchive The user defined deployment archive
+    * 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 auxiliaryArchives All found system defined deployment archives
     * @return A archive to deploy
     */
-   Archive<?> generateDeployment(Archive<?> applicationArchive, Collection<Archive<?>> auxiliaryArchives);
+   Archive<?> generateDeployment(Context context, Archive<?> archive, Collection<Archive<?>> auxiliaryArchives);
 }

Added: arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/TestClass.java
===================================================================
--- arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/TestClass.java	                        (rev 0)
+++ arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/TestClass.java	2010-06-25 07:22:13 UTC (rev 4553)
@@ -0,0 +1,75 @@
+/*
+ * 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.lang.annotation.Annotation;
+import java.lang.reflect.Method;
+
+import org.jboss.arquillian.api.Deployment;
+
+
+/**
+ * Wraps a class to be run, providing method validation and annotation searching.
+ * 
+ * @author thomas.diesler at jboss.com
+ * @version $Revision: $
+ */
+public class TestClass
+{
+   private Class<?> testClass;
+
+   public TestClass(Class<?> testClass)
+   {
+      if (testClass == null)
+         throw new IllegalArgumentException("Null testClass");
+
+      this.testClass = testClass;
+   }
+
+   public Class<?> getJavaClass()
+   {
+      return testClass;
+   }
+
+   public String getName()
+   {
+      return testClass.getName();
+   }
+
+   public boolean isAnnotationPresent(Class<? extends Annotation> annotation)
+   {
+      return testClass.isAnnotationPresent(annotation);
+   }
+   
+   public <A extends Annotation> A getAnnotation(Class<A> annotation)
+   {
+      return testClass.getAnnotation(annotation);
+   }
+   
+   public Method findDeploymentMethod() 
+   {
+      Method[] methods = testClass.getMethods();
+      for(Method method: methods)
+      {
+         if(method.isAnnotationPresent(Deployment.class)) 
+         {
+            return method;
+         }
+      }
+      return null;
+   }
+}

Modified: arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/suite/ClassEvent.java
===================================================================
--- arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/suite/ClassEvent.java	2010-06-25 03:20:53 UTC (rev 4552)
+++ arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/suite/ClassEvent.java	2010-06-25 07:22:13 UTC (rev 4553)
@@ -16,7 +16,9 @@
  */
 package org.jboss.arquillian.spi.event.suite;
 
+import org.jboss.arquillian.spi.TestClass;
 
+
 /**
  * Base for events fired in the Test Class execution cycle.
  *
@@ -25,7 +27,7 @@
  */
 public class ClassEvent extends SuiteEvent
 {
-   private Class<?> testClass;
+   private TestClass testClass;
    
    /**
     * @param testClass The Test case {@link Class}
@@ -33,12 +35,21 @@
     */
    public ClassEvent(Class<?> testClass)
    {
+      this(new TestClass(testClass));
+   }
+   
+   /**
+    * @param testClass The Test case {@link Class}
+    * @throws IllegalArgumentException if testCase is null 
+    */
+   public ClassEvent(TestClass testClass)
+   {
       Validate.notNull(testClass, "TestClass must be specified");
       
       this.testClass = testClass;
    }
    
-   public Class<?> getTestClass()
+   public TestClass getTestClass()
    {
       return testClass;
    }



More information about the jboss-svn-commits mailing list