[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