[jboss-svn-commits] JBoss Common SVN: r4329 - in arquillian/trunk: containers/glassfish-embedded-30/src/main/java/org/jboss/arquillian/glassfish and 30 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sat Apr 24 16:48:17 EDT 2010
Author: aslak
Date: 2010-04-24 16:48:13 -0400 (Sat, 24 Apr 2010)
New Revision: 4329
Added:
arquillian/trunk/containers/weld-embedded/src/main/java/org/jboss/arquillian/weld/RequestLifeCycleController.java
arquillian/trunk/containers/weld-embedded/src/main/java/org/jboss/arquillian/weld/SessionLifeCycleController.java
arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/Context.java
arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/
arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/Event.java
arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/container/
arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/container/AfterDeploy.java
arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/container/AfterSetup.java
arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/container/AfterStart.java
arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/container/AfterStop.java
arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/container/AfterUnDeploy.java
arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/container/BeforeDeploy.java
arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/container/BeforeSetup.java
arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/container/BeforeStart.java
arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/container/BeforeStop.java
arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/container/BeforeUnDeploy.java
arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/container/ContainerEvent.java
arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/suite/
arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/suite/After.java
arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/suite/AfterClass.java
arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/suite/AfterSuite.java
arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/suite/Before.java
arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/suite/BeforeClass.java
arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/suite/BeforeSuite.java
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/EventHandler.java
arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/suite/SuiteEvent.java
arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/suite/Test.java
arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/suite/TestEvent.java
arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/suite/Validate.java
Removed:
arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/context/Context.java
arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/event/Event.java
arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/event/EventHandler.java
arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/event/type/
Modified:
arquillian/trunk/build/pom.xml
arquillian/trunk/containers/glassfish-embedded-30/src/main/java/org/jboss/arquillian/glassfish/GlassFishEmbeddedContainer.java
arquillian/trunk/containers/jbossas-remote-51/src/main/java/org/jboss/arquillian/jboss/JbossRemoteContainer.java
arquillian/trunk/containers/jbossas-remote-60/src/main/java/org/jboss/arquillian/jboss/JbossRemoteContainer.java
arquillian/trunk/containers/openejb/src/main/java/org/jboss/arquillian/openejb/OpenEJBContainer.java
arquillian/trunk/containers/openejb/src/main/java/org/jboss/arquillian/openejb/OpenEJBTestEnricher.java
arquillian/trunk/containers/openwebbeans-embedded/src/main/java/org/jboss/arquillian/openwebbeans/OpenWebBeansSEContainer.java
arquillian/trunk/containers/openwebbeans-embedded/src/main/java/org/jboss/arquillian/openwebbeans/OpenWebBeansSETestEnricher.java
arquillian/trunk/containers/reloaded/src/main/java/org/jboss/arquillian/container/reloaded/ReloadedContainer.java
arquillian/trunk/containers/reloaded/src/main/java/org/jboss/arquillian/container/reloaded/ReloadedTestEnricher.java
arquillian/trunk/containers/weld-embedded/src/main/java/org/jboss/arquillian/weld/WeldSEContainer.java
arquillian/trunk/containers/weld-embedded/src/main/java/org/jboss/arquillian/weld/WeldSETestEnricher.java
arquillian/trunk/examples/domain/src/main/java/com/acme/cdi/translate/NorwegianTranslator.java
arquillian/trunk/examples/domain/src/main/java/com/acme/cdi/translate/SentenceParser.java
arquillian/trunk/examples/domain/src/main/java/com/acme/cdi/translate/TextTranslator.java
arquillian/trunk/examples/domain/src/main/java/com/acme/cdi/translate/TranslateController.java
arquillian/trunk/examples/domain/src/main/java/com/acme/cdi/translate/Translator.java
arquillian/trunk/examples/junit/src/test/java/com/acme/cdi/payment/SynchronousPaymentProcessorTestCase.java
arquillian/trunk/examples/junit/src/test/java/com/acme/cdi/random/RandomTestCase.java
arquillian/trunk/examples/testng/pom.xml
arquillian/trunk/examples/testng/src/test/java/com/acme/cdi/payment/SynchronousPaymentProcessorTestCase.java
arquillian/trunk/examples/testng/src/test/java/com/acme/cdi/translate/TranslateTestCase.java
arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/EventTestRunnerAdaptor.java
arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/context/AbstractEventContext.java
arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/context/ClassContext.java
arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/context/ClientProfileBuilder.java
arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/context/ContainerProfileBuilder.java
arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/context/ContextLifecycleManager.java
arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/context/StandaloneProfileBuilder.java
arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/context/SuiteContext.java
arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/context/TestContext.java
arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/event/EventManager.java
arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/event/MapEventManager.java
arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/handler/ActivateRunModeTypeLocal.java
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/ContainerCreator.java
arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/handler/ContainerDeployer.java
arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/handler/ContainerRestarter.java
arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/handler/ContainerStarter.java
arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/handler/ContainerStopper.java
arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/handler/ContainerTestExecuter.java
arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/handler/ContainerUndeployer.java
arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/handler/ExecutionTimer.java
arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/handler/TestCaseEnricher.java
arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/handler/TestEventExecuter.java
arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/EventTestRunnerAdaptorTestCase.java
arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/context/ContextLifecycleManagerTestCase.java
arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/event/EventManagerTestCase.java
arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/handler/ActivateRunModeTypeLocalTestCase.java
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/ContainerCreatorTestCase.java
arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/handler/ContainerDeployerTestCase.java
arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/handler/ContainerRestarterTestCase.java
arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/handler/ContainerStarterTestCase.java
arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/handler/ContainerStopperTestCase.java
arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/handler/ContainerTestExecuterTestCase.java
arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/handler/ContainerUndeployerTestCase.java
arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/handler/TestCaseEnricherTestCase.java
arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/handler/TestEventExecuterTestCase.java
arquillian/trunk/junit/src/main/java/org/jboss/arquillian/junit/Arquillian.java
arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/DeployableContainer.java
arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/TestEnricher.java
arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/TestRunnerAdaptor.java
arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/util/TestEnrichers.java
arquillian/trunk/testenrichers/cdi/src/main/java/org/jboss/arquillian/testenricher/cdi/CDIInjectionEnricher.java
arquillian/trunk/testenrichers/ejb/src/main/java/org/jboss/arquillian/testenricher/ejb/EJBInjectionEnricher.java
arquillian/trunk/testenrichers/resource/src/main/java/org/jboss/arquillian/testenricher/resource/ResourceInjectionEnricher.java
arquillian/trunk/testng/src/main/java/org/jboss/arquillian/testng/Arquillian.java
arquillian/trunk/testng/src/main/java/org/jboss/arquillian/testng/TestEnricherDataProvider.java
Log:
ARQ-113 ARQ-114 Opened up Context to the DeployableContainer and TestEnricher SPIs. They can now share state and register for callbacks to events or fire their own events. Added ContainerEvents, Before/After container lifecycle setup/start/stop/deploy/undeploy.
Modified: arquillian/trunk/build/pom.xml
===================================================================
--- arquillian/trunk/build/pom.xml 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/build/pom.xml 2010-04-24 20:48:13 UTC (rev 4329)
@@ -49,8 +49,8 @@
<enabled>true</enabled>
</snapshots>
</repository>
- <repository>
- <id>jboss-deprecated</id>
+ <repository>
+ <id>jboss-deprecated</id>
<name>JBoss Deprecated</name>
<url>https://repository.jboss.org/nexus/content/repositories/deprecated/</url>
<layout>default</layout>
Modified: arquillian/trunk/containers/glassfish-embedded-30/src/main/java/org/jboss/arquillian/glassfish/GlassFishEmbeddedContainer.java
===================================================================
--- arquillian/trunk/containers/glassfish-embedded-30/src/main/java/org/jboss/arquillian/glassfish/GlassFishEmbeddedContainer.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/containers/glassfish-embedded-30/src/main/java/org/jboss/arquillian/glassfish/GlassFishEmbeddedContainer.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -27,6 +27,7 @@
import org.jboss.arquillian.protocol.servlet.ServletMethodExecutor;
import org.jboss.arquillian.spi.Configuration;
import org.jboss.arquillian.spi.ContainerMethodExecutor;
+import org.jboss.arquillian.spi.Context;
import org.jboss.arquillian.spi.DeployableContainer;
import org.jboss.arquillian.spi.DeploymentException;
import org.jboss.arquillian.spi.LifecycleException;
@@ -50,7 +51,7 @@
{
}
- public void setup(Configuration configuration)
+ public void setup(Context context, Configuration configuration)
{
this.configuration = configuration.getContainerConfig(GlassFishConfiguration.class);
@@ -66,7 +67,7 @@
server.addContainer(ContainerBuilder.Type.all);
}
- public void start() throws LifecycleException
+ public void start(Context context) throws LifecycleException
{
try
{
@@ -81,7 +82,7 @@
}
}
- public void stop() throws LifecycleException
+ public void stop(Context context) throws LifecycleException
{
try
{
@@ -93,7 +94,7 @@
}
}
- public ContainerMethodExecutor deploy(Archive<?> archive) throws DeploymentException
+ public ContainerMethodExecutor deploy(Context context, Archive<?> archive) throws DeploymentException
{
try
{
@@ -128,7 +129,7 @@
}
}
- public void undeploy(Archive<?> archive) throws DeploymentException
+ public void undeploy(Context context, Archive<?> archive) throws DeploymentException
{
UndeployCommandParameters params = new UndeployCommandParameters();
params.target = target;
Modified: arquillian/trunk/containers/jbossas-remote-51/src/main/java/org/jboss/arquillian/jboss/JbossRemoteContainer.java
===================================================================
--- arquillian/trunk/containers/jbossas-remote-51/src/main/java/org/jboss/arquillian/jboss/JbossRemoteContainer.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/containers/jbossas-remote-51/src/main/java/org/jboss/arquillian/jboss/JbossRemoteContainer.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -32,6 +32,7 @@
import org.jboss.arquillian.protocol.servlet.ServletMethodExecutor;
import org.jboss.arquillian.spi.Configuration;
import org.jboss.arquillian.spi.ContainerMethodExecutor;
+import org.jboss.arquillian.spi.Context;
import org.jboss.arquillian.spi.DeployableContainer;
import org.jboss.arquillian.spi.DeploymentException;
import org.jboss.arquillian.spi.LifecycleException;
@@ -68,12 +69,12 @@
private JBossConfiguration configuration;
- public void setup(Configuration configuration)
+ public void setup(Context context, Configuration configuration)
{
this.configuration = configuration.getContainerConfig(JBossConfiguration.class);
}
- public void start() throws LifecycleException
+ public void start(Context context) throws LifecycleException
{
try
{
@@ -89,7 +90,7 @@
}
}
- public void stop() throws LifecycleException
+ public void stop(Context context) throws LifecycleException
{
try
{
@@ -102,7 +103,7 @@
}
}
- public ContainerMethodExecutor deploy(final Archive<?> archive) throws DeploymentException
+ public ContainerMethodExecutor deploy(Context context, final Archive<?> archive) throws DeploymentException
{
if(archive == null)
{
@@ -181,7 +182,7 @@
}
}
- public void undeploy(Archive<?> archive) throws DeploymentException
+ public void undeploy(Context context, Archive<?> archive) throws DeploymentException
{
if(archive == null)
{
Modified: arquillian/trunk/containers/jbossas-remote-60/src/main/java/org/jboss/arquillian/jboss/JbossRemoteContainer.java
===================================================================
--- arquillian/trunk/containers/jbossas-remote-60/src/main/java/org/jboss/arquillian/jboss/JbossRemoteContainer.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/containers/jbossas-remote-60/src/main/java/org/jboss/arquillian/jboss/JbossRemoteContainer.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -32,6 +32,7 @@
import org.jboss.arquillian.protocol.servlet.ServletMethodExecutor;
import org.jboss.arquillian.spi.Configuration;
import org.jboss.arquillian.spi.ContainerMethodExecutor;
+import org.jboss.arquillian.spi.Context;
import org.jboss.arquillian.spi.DeployableContainer;
import org.jboss.arquillian.spi.DeploymentException;
import org.jboss.arquillian.spi.LifecycleException;
@@ -72,12 +73,12 @@
{
}
- public void setup(Configuration configuration)
+ public void setup(Context context, Configuration configuration)
{
this.configuration = configuration.getContainerConfig(JBossConfiguration.class);
}
- public void start() throws LifecycleException
+ public void start(Context context) throws LifecycleException
{
try
{
@@ -93,7 +94,7 @@
}
}
- public void stop() throws LifecycleException
+ public void stop(Context context) throws LifecycleException
{
try
{
@@ -106,7 +107,7 @@
}
}
- public ContainerMethodExecutor deploy(final Archive<?> archive) throws DeploymentException
+ public ContainerMethodExecutor deploy(Context context, final Archive<?> archive) throws DeploymentException
{
if(archive == null)
{
@@ -185,7 +186,7 @@
}
}
- public void undeploy(Archive<?> archive) throws DeploymentException
+ public void undeploy(Context context, Archive<?> archive) throws DeploymentException
{
if(archive == null)
{
Modified: arquillian/trunk/containers/openejb/src/main/java/org/jboss/arquillian/openejb/OpenEJBContainer.java
===================================================================
--- arquillian/trunk/containers/openejb/src/main/java/org/jboss/arquillian/openejb/OpenEJBContainer.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/containers/openejb/src/main/java/org/jboss/arquillian/openejb/OpenEJBContainer.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -28,6 +28,7 @@
import org.jboss.arquillian.protocol.local.LocalMethodExecutor;
import org.jboss.arquillian.spi.Configuration;
import org.jboss.arquillian.spi.ContainerMethodExecutor;
+import org.jboss.arquillian.spi.Context;
import org.jboss.arquillian.spi.DeployableContainer;
import org.jboss.arquillian.spi.DeploymentException;
import org.jboss.arquillian.spi.LifecycleException;
@@ -79,12 +80,12 @@
// Required Implementations -----------------------------------------------------------||
//-------------------------------------------------------------------------------------||
- public void setup(Configuration configuration)
+ public void setup(Context context, Configuration configuration)
{
this.configuration = configuration.getContainerConfig(OpenEJBConfiguration.class);
}
- public ContainerMethodExecutor deploy(final Archive<?> archive) throws DeploymentException
+ public ContainerMethodExecutor deploy(Context context, final Archive<?> archive) throws DeploymentException
{
// Deploy as an archive
final AppInfo appInfo;
@@ -110,7 +111,7 @@
return new LocalMethodExecutor();
}
- public void start() throws LifecycleException
+ public void start(Context context) throws LifecycleException
{
final ShrinkWrapConfigurationFactory config = new ShrinkWrapConfigurationFactory();
final Assembler assembler = new Assembler();
@@ -130,12 +131,12 @@
this.config = new ShrinkWrapConfigurationFactory();
}
- public void stop() throws LifecycleException
+ public void stop(Context context) throws LifecycleException
{
assembler.destroy();
}
- public void undeploy(final Archive<?> archive) throws DeploymentException
+ public void undeploy(Context context, final Archive<?> archive) throws DeploymentException
{
// Undeploy the archive
try
Modified: arquillian/trunk/containers/openejb/src/main/java/org/jboss/arquillian/openejb/OpenEJBTestEnricher.java
===================================================================
--- arquillian/trunk/containers/openejb/src/main/java/org/jboss/arquillian/openejb/OpenEJBTestEnricher.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/containers/openejb/src/main/java/org/jboss/arquillian/openejb/OpenEJBTestEnricher.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -18,11 +18,12 @@
import java.util.Properties;
+
import javax.naming.Binding;
-import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingEnumeration;
+import org.jboss.arquillian.spi.Context;
import org.jboss.arquillian.spi.TestEnricher;
import org.jboss.arquillian.testenricher.ejb.EJBInjectionEnricher;
@@ -38,29 +39,29 @@
{
@Override
- protected InitialContext createContext() throws Exception
+ protected InitialContext createContext(Context context) throws Exception
{
final Properties properties = new Properties();
- properties.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.client.LocalInitialContextFactory");
+ properties.setProperty(javax.naming.Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.client.LocalInitialContextFactory");
return new InitialContext(properties);
}
@Override
- protected Object lookupEJB(Class<?> fieldType) throws Exception
+ protected Object lookupEJB(Context context, Class<?> fieldType) throws Exception
{
- InitialContext context = createContext();
- return lookupRecursive(fieldType, context, context.listBindings("/"));
+ InitialContext initcontext = createContext(context);
+ return lookupRecursive(fieldType, initcontext, initcontext.listBindings("/"));
}
- protected Object lookupRecursive(Class<?> fieldType, Context context, NamingEnumeration<Binding> contextNames) throws Exception
+ protected Object lookupRecursive(Class<?> fieldType, javax.naming.Context context, NamingEnumeration<Binding> contextNames) throws Exception
{
while(contextNames.hasMore())
{
Binding contextName = contextNames.nextElement();
Object value = contextName.getObject();
- if(Context.class.isInstance(value))
+ if(javax.naming.Context.class.isInstance(value))
{
- Context subContext = (Context)value;
+ javax.naming.Context subContext = (javax.naming.Context)value;
return lookupRecursive(fieldType, subContext, subContext.listBindings("/"));
}
else
Modified: arquillian/trunk/containers/openwebbeans-embedded/src/main/java/org/jboss/arquillian/openwebbeans/OpenWebBeansSEContainer.java
===================================================================
--- arquillian/trunk/containers/openwebbeans-embedded/src/main/java/org/jboss/arquillian/openwebbeans/OpenWebBeansSEContainer.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/containers/openwebbeans-embedded/src/main/java/org/jboss/arquillian/openwebbeans/OpenWebBeansSEContainer.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -34,6 +34,7 @@
import org.jboss.arquillian.protocol.local.LocalMethodExecutor;
import org.jboss.arquillian.spi.Configuration;
import org.jboss.arquillian.spi.ContainerMethodExecutor;
+import org.jboss.arquillian.spi.Context;
import org.jboss.arquillian.spi.DeployableContainer;
import org.jboss.arquillian.spi.DeploymentException;
import org.jboss.arquillian.spi.LifecycleException;
@@ -73,28 +74,28 @@
/* (non-Javadoc)
* @see org.jboss.arquillian.spi.DeployableContainer#setup(org.jboss.arquillian.spi.Configuration)
*/
- public void setup(Configuration configuration)
+ public void setup(Context context, Configuration configuration)
{
}
/**
* @see org.jboss.arquillian.spi.DeployableContainer#start()
*/
- public void start() throws LifecycleException
+ public void start(Context context) throws LifecycleException
{
}
/**
* @see org.jboss.arquillian.spi.DeployableContainer#stop()
*/
- public void stop() throws LifecycleException
+ public void stop(Context context) throws LifecycleException
{
}
/**
* @see org.jboss.arquillian.spi.DeployableContainer#deploy(org.jboss.shrinkwrap.api.Archive)
*/
- public ContainerMethodExecutor deploy(final Archive<?> archive)
+ public ContainerMethodExecutor deploy(Context context, final Archive<?> archive)
throws DeploymentException
{
ClassLoader cl = new ShrinkWrapClassLoader(archive);
@@ -158,7 +159,7 @@
/**
* @see org.jboss.arquillian.spi.DeployableContainer#undeploy(org.jboss.shrinkwrap.api.Archive)
*/
- public void undeploy(Archive<?> archive) throws DeploymentException
+ public void undeploy(Context context, Archive<?> archive) throws DeploymentException
{
ContainerInstanceHolder holder = CONTAINER_INSTANCE_HOLDER.get();
if (holder != null) {
Modified: arquillian/trunk/containers/openwebbeans-embedded/src/main/java/org/jboss/arquillian/openwebbeans/OpenWebBeansSETestEnricher.java
===================================================================
--- arquillian/trunk/containers/openwebbeans-embedded/src/main/java/org/jboss/arquillian/openwebbeans/OpenWebBeansSETestEnricher.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/containers/openwebbeans-embedded/src/main/java/org/jboss/arquillian/openwebbeans/OpenWebBeansSETestEnricher.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -19,6 +19,7 @@
import javax.enterprise.inject.spi.BeanManager;
import org.jboss.arquillian.openwebbeans.OpenWebBeansSEContainer.ContainerInstanceHolder;
+import org.jboss.arquillian.spi.Context;
import org.jboss.arquillian.testenricher.cdi.CDIInjectionEnricher;
/**
@@ -32,7 +33,7 @@
public class OpenWebBeansSETestEnricher extends CDIInjectionEnricher
{
@Override
- protected BeanManager lookupBeanManager()
+ protected BeanManager lookupBeanManager(Context context)
{
ContainerInstanceHolder holder = OpenWebBeansSEContainer.CONTAINER_INSTANCE_HOLDER.get();
if (holder != null)
Modified: arquillian/trunk/containers/reloaded/src/main/java/org/jboss/arquillian/container/reloaded/ReloadedContainer.java
===================================================================
--- arquillian/trunk/containers/reloaded/src/main/java/org/jboss/arquillian/container/reloaded/ReloadedContainer.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/containers/reloaded/src/main/java/org/jboss/arquillian/container/reloaded/ReloadedContainer.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -23,6 +23,7 @@
import org.jboss.arquillian.protocol.local.LocalMethodExecutor;
import org.jboss.arquillian.spi.Configuration;
import org.jboss.arquillian.spi.ContainerMethodExecutor;
+import org.jboss.arquillian.spi.Context;
import org.jboss.arquillian.spi.DeployableContainer;
import org.jboss.arquillian.spi.DeploymentException;
import org.jboss.arquillian.spi.LifecycleException;
@@ -103,12 +104,12 @@
//-------------------------------------------------------------------------------------||
- public void setup(Configuration configuration)
+ public void setup(Context context, Configuration configuration)
{
this.configuration = configuration.getContainerConfig(JBossReloadedConfiguration.class);
}
- public ContainerMethodExecutor deploy(final Archive<?> archive) throws DeploymentException
+ public ContainerMethodExecutor deploy(Context context, final Archive<?> archive) throws DeploymentException
{
// Deploy
try
@@ -125,7 +126,7 @@
return new LocalMethodExecutor();
}
- public void start() throws LifecycleException
+ public void start(Context context) throws LifecycleException
{
// Set up JBossXB
AccessController.doPrivileged(new PrivilegedAction<Void>()
@@ -168,7 +169,7 @@
}
- public void stop() throws LifecycleException
+ public void stop(Context context) throws LifecycleException
{
// If we've got a server
if (server != null && server.getState().equals(LifecycleState.STARTED))
@@ -185,7 +186,7 @@
}
}
- public void undeploy(final Archive<?> archive) throws DeploymentException
+ public void undeploy(Context context, final Archive<?> archive) throws DeploymentException
{
//TODO Remove this hack
// http://community.jboss.org/thread/150796?tstart=0
Modified: arquillian/trunk/containers/reloaded/src/main/java/org/jboss/arquillian/container/reloaded/ReloadedTestEnricher.java
===================================================================
--- arquillian/trunk/containers/reloaded/src/main/java/org/jboss/arquillian/container/reloaded/ReloadedTestEnricher.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/containers/reloaded/src/main/java/org/jboss/arquillian/container/reloaded/ReloadedTestEnricher.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -18,6 +18,7 @@
import java.lang.reflect.Method;
+import org.jboss.arquillian.spi.Context;
import org.jboss.arquillian.spi.TestEnricher;
import org.jboss.beans.info.spi.BeanAccessMode;
import org.jboss.beans.metadata.plugins.builder.BeanMetaDataBuilderFactory;
@@ -52,9 +53,9 @@
//-------------------------------------------------------------------------------------||
/* (non-Javadoc)
- * @see org.jboss.arquillian.spi.TestEnricher#enrich(java.lang.Object)
+ * @see org.jboss.arquillian.spi.TestEnricher#enrich(org.jboss.arquillian.spi.Context, java.lang.Object)
*/
- public void enrich(final Object testCase)
+ public void enrich(final Context context, final Object testCase)
{
// Obtain the server as set from the container
final MCServer server = ReloadedContainer.MC_SERVER.get();
@@ -76,7 +77,10 @@
}
}
- public Object[] resolve(Method method)
+ /* (non-Javadoc)
+ * @see org.jboss.arquillian.spi.TestEnricher#resolve(org.jboss.arquillian.spi.Context, java.lang.reflect.Method)
+ */
+ public Object[] resolve(Context context, Method method)
{
return new Object[method.getParameterTypes().length];
}
Added: arquillian/trunk/containers/weld-embedded/src/main/java/org/jboss/arquillian/weld/RequestLifeCycleController.java
===================================================================
--- arquillian/trunk/containers/weld-embedded/src/main/java/org/jboss/arquillian/weld/RequestLifeCycleController.java (rev 0)
+++ arquillian/trunk/containers/weld-embedded/src/main/java/org/jboss/arquillian/weld/RequestLifeCycleController.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -0,0 +1,94 @@
+/*
+ * 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.weld;
+
+import java.util.UUID;
+
+import org.jboss.arquillian.spi.Context;
+import org.jboss.arquillian.spi.event.Event;
+import org.jboss.arquillian.spi.event.suite.EventHandler;
+import org.jboss.weld.context.ContextLifecycle;
+import org.jboss.weld.context.api.BeanStore;
+import org.jboss.weld.context.api.helpers.ConcurrentHashMapBeanStore;
+import org.jboss.weld.manager.api.WeldManager;
+
+/**
+ * SessionLifeCycleController
+ *
+ * @author <a href="mailto:aknutsen at redhat.com">Aslak Knutsen</a>
+ * @version $Revision: $
+ */
+public class RequestLifeCycleController implements EventHandler<Event>
+{
+ private Class<? extends Event> endRequestEvent;
+
+ public RequestLifeCycleController(Class<? extends Event> endRequestEvent)
+ {
+ if(endRequestEvent == null)
+ {
+ throw new IllegalArgumentException("EndSessionEvent must be specified");
+ }
+ this.endRequestEvent = endRequestEvent;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.arquillian.spi.EventHandler#callback(org.jboss.arquillian.spi.Context, java.lang.Object)
+ */
+ public void callback(Context context, Event event) throws Exception
+ {
+ WeldManager manager = context.get(WeldManager.class);
+ if(manager == null)
+ {
+ throw new IllegalStateException("No " + WeldManager.class.getName() + " found in context");
+ }
+ ContextLifecycle lifeCycle = manager.getServices().get(ContextLifecycle.class);
+
+ String requestId = UUID.randomUUID().toString();
+ BeanStore beanStore = new ConcurrentHashMapBeanStore();
+
+ lifeCycle.beginRequest(requestId, beanStore);
+
+ context.register(endRequestEvent, new DestoryRequest(requestId, beanStore));
+ }
+
+ /**
+ * DestorySession
+ *
+ * @author <a href="mailto:aknutsen at redhat.org">Aslak Knutsen</a>
+ * @version $Revision: $
+ */
+ private static class DestoryRequest implements EventHandler<Event> {
+
+ private String requestId;
+ private BeanStore beanStore;
+
+ public DestoryRequest(String requestId, BeanStore beanStore)
+ {
+ this.requestId = requestId;
+ this.beanStore = beanStore;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.arquillian.spi.event.EventHandler#callback(org.jboss.arquillian.spi.Context, java.lang.Object)
+ */
+ public void callback(Context context, Event event) throws Exception
+ {
+ WeldManager manager = context.get(WeldManager.class);
+ manager.getServices().get(ContextLifecycle.class).endRequest(requestId, beanStore);
+ }
+ }
+}
Added: arquillian/trunk/containers/weld-embedded/src/main/java/org/jboss/arquillian/weld/SessionLifeCycleController.java
===================================================================
--- arquillian/trunk/containers/weld-embedded/src/main/java/org/jboss/arquillian/weld/SessionLifeCycleController.java (rev 0)
+++ arquillian/trunk/containers/weld-embedded/src/main/java/org/jboss/arquillian/weld/SessionLifeCycleController.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -0,0 +1,93 @@
+/*
+ * 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.weld;
+
+import java.util.UUID;
+
+import org.jboss.arquillian.spi.Context;
+import org.jboss.arquillian.spi.event.Event;
+import org.jboss.arquillian.spi.event.suite.EventHandler;
+import org.jboss.weld.context.ContextLifecycle;
+import org.jboss.weld.context.api.BeanStore;
+import org.jboss.weld.context.api.helpers.ConcurrentHashMapBeanStore;
+import org.jboss.weld.manager.api.WeldManager;
+
+/**
+ * SessionLifeCycleController
+ *
+ * @author <a href="mailto:aknutsen at redhat.com">Aslak Knutsen</a>
+ * @version $Revision: $
+ */
+public class SessionLifeCycleController implements EventHandler<Event>
+{
+ private Class<? extends Event> endSessionEvent;
+
+ public SessionLifeCycleController(Class<? extends Event> endSessionEvent)
+ {
+ if(endSessionEvent == null)
+ {
+ throw new IllegalArgumentException("EndSessionEvent must be specified");
+ }
+ this.endSessionEvent = endSessionEvent;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.arquillian.spi.EventHandler#callback(org.jboss.arquillian.spi.Context, java.lang.Object)
+ */
+ public void callback(Context context, Event event) throws Exception
+ {
+ WeldManager manager = context.get(WeldManager.class);
+ if(manager == null)
+ {
+ throw new IllegalStateException("No " + WeldManager.class.getName() + " found in context");
+ }
+ ContextLifecycle lifeCycle = manager.getServices().get(ContextLifecycle.class);
+
+ String sessionId = UUID.randomUUID().toString();
+ BeanStore beanStore = new ConcurrentHashMapBeanStore();
+
+ lifeCycle.restoreSession(sessionId, beanStore);
+ context.register(endSessionEvent, new DestorySession(sessionId, beanStore));
+ }
+
+ /**
+ * DestorySession
+ *
+ * @author <a href="mailto:aknutsen at redhat.org">Aslak Knutsen</a>
+ * @version $Revision: $
+ */
+ private static class DestorySession implements EventHandler<Event> {
+
+ private String sessionId;
+ private BeanStore beanStore;
+
+ public DestorySession(String sessionId, BeanStore beanStore)
+ {
+ this.sessionId = sessionId;
+ this.beanStore = beanStore;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.arquillian.spi.event.EventHandler#callback(org.jboss.arquillian.spi.Context, java.lang.Object)
+ */
+ public void callback(Context context, Event event) throws Exception
+ {
+ WeldManager manager = context.get(WeldManager.class);
+ manager.getServices().get(ContextLifecycle.class).endSession(sessionId, beanStore);
+ }
+ }
+}
Modified: arquillian/trunk/containers/weld-embedded/src/main/java/org/jboss/arquillian/weld/WeldSEContainer.java
===================================================================
--- arquillian/trunk/containers/weld-embedded/src/main/java/org/jboss/arquillian/weld/WeldSEContainer.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/containers/weld-embedded/src/main/java/org/jboss/arquillian/weld/WeldSEContainer.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -18,16 +18,19 @@
import java.util.Arrays;
import java.util.Collection;
-import java.util.UUID;
import org.jboss.arquillian.protocol.local.LocalMethodExecutor;
import org.jboss.arquillian.spi.Configuration;
import org.jboss.arquillian.spi.ContainerMethodExecutor;
+import org.jboss.arquillian.spi.Context;
import org.jboss.arquillian.spi.DeployableContainer;
import org.jboss.arquillian.spi.DeploymentException;
import org.jboss.arquillian.spi.LifecycleException;
-import org.jboss.arquillian.spi.TestMethodExecutor;
-import org.jboss.arquillian.spi.TestResult;
+import org.jboss.arquillian.spi.event.container.BeforeUnDeploy;
+import org.jboss.arquillian.spi.event.suite.After;
+import org.jboss.arquillian.spi.event.suite.AfterClass;
+import org.jboss.arquillian.spi.event.suite.Before;
+import org.jboss.arquillian.spi.event.suite.BeforeClass;
import org.jboss.arquillian.weld.shrinkwrap.ShrinkWrapClassLoader;
import org.jboss.arquillian.weld.shrinkwrap.ShrinkwrapBeanDeploymentArchive;
import org.jboss.shrinkwrap.api.Archive;
@@ -36,7 +39,6 @@
import org.jboss.weld.bootstrap.api.ServiceRegistry;
import org.jboss.weld.bootstrap.spi.BeanDeploymentArchive;
import org.jboss.weld.bootstrap.spi.Deployment;
-import org.jboss.weld.context.ContextLifecycle;
import org.jboss.weld.context.api.helpers.ConcurrentHashMapBeanStore;
import org.jboss.weld.manager.api.WeldManager;
@@ -48,24 +50,22 @@
*/
public class WeldSEContainer implements DeployableContainer
{
- public final static ThreadLocal<WeldHolder> WELD_MANAGER = new ThreadLocal<WeldHolder>();
-
private WeldSEConfiguration configuration;
- public void setup(Configuration configuration)
+ public void setup(Context context, Configuration configuration)
{
this.configuration = configuration.getContainerConfig(WeldSEConfiguration.class);
}
- public void start() throws LifecycleException
+ public void start(Context context) throws LifecycleException
{
}
- public void stop() throws LifecycleException
+ public void stop(Context context) throws LifecycleException
{
}
- public ContainerMethodExecutor deploy(final Archive<?> archive)
+ public ContainerMethodExecutor deploy(Context context, final Archive<?> archive)
throws DeploymentException
{
final BeanDeploymentArchive beanArchive = archive.as(ShrinkwrapBeanDeploymentArchive.class);
@@ -102,70 +102,22 @@
WeldManager manager = bootstrap.getManager(beanArchive);
- // start the session lifecycle
- manager.getServices().get(ContextLifecycle.class).restoreSession(manager.getId(), new ConcurrentHashMapBeanStore());
+ context.add(WeldBootstrap.class, bootstrap);
+ context.add(WeldManager.class, manager);
+ context.register(BeforeClass.class, new SessionLifeCycleController(BeforeUnDeploy.class));
+ context.register(Before.class, new RequestLifeCycleController(After.class));
- WELD_MANAGER.set(
- new WeldHolder(
- bootstrap,
- manager));
-
- // TODO: replace with a before/after invoke interceptor ?
- return new LocalMethodExecutor() {
- @Override
- public TestResult invoke(TestMethodExecutor testMethodExecutor)
- {
- WeldManager manager = WELD_MANAGER.get().getManager();
- String requestId = UUID.randomUUID().toString();
- try
- {
- // start the request lifecycle
- manager.getServices().get(ContextLifecycle.class).beginRequest(requestId, new ConcurrentHashMapBeanStore());
- return super.invoke(testMethodExecutor);
- }
- finally
- {
- // end the request lifecycle
- manager.getServices().get(ContextLifecycle.class).endRequest(requestId, new ConcurrentHashMapBeanStore());
- }
- }
- };
+ return new LocalMethodExecutor();
}
- public void undeploy(Archive<?> archive) throws DeploymentException
+ public void undeploy(Context context, Archive<?> archive) throws DeploymentException
{
- WeldHolder holder = WELD_MANAGER.get();
- if(holder != null) {
- WeldManager manager = holder.getManager();
-
- // end the session lifecycle
- manager.getServices().get(ContextLifecycle.class).endSession(manager.getId(), null);
-
- holder.getBootstrap().shutdown();
- Thread.currentThread().setContextClassLoader(Thread.currentThread().getContextClassLoader().getParent());
- }
- WELD_MANAGER.set(null);
- }
-
- public static class WeldHolder {
-
- private WeldBootstrap bootstrap;
- private WeldManager manager;
-
- public WeldHolder(WeldBootstrap bootstrap, WeldManager manager)
+ WeldBootstrap bootstrap = context.get(WeldBootstrap.class);
+ if(bootstrap != null)
{
- super();
- this.bootstrap = bootstrap;
- this.manager = manager;
+ bootstrap.shutdown();
}
-
- public WeldBootstrap getBootstrap()
- {
- return bootstrap;
- }
- public WeldManager getManager()
- {
- return manager;
- }
+ Thread.currentThread().setContextClassLoader(
+ Thread.currentThread().getContextClassLoader().getParent());
}
}
\ No newline at end of file
Modified: arquillian/trunk/containers/weld-embedded/src/main/java/org/jboss/arquillian/weld/WeldSETestEnricher.java
===================================================================
--- arquillian/trunk/containers/weld-embedded/src/main/java/org/jboss/arquillian/weld/WeldSETestEnricher.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/containers/weld-embedded/src/main/java/org/jboss/arquillian/weld/WeldSETestEnricher.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -18,8 +18,9 @@
import javax.enterprise.inject.spi.BeanManager;
+import org.jboss.arquillian.spi.Context;
import org.jboss.arquillian.testenricher.cdi.CDIInjectionEnricher;
-import org.jboss.arquillian.weld.WeldSEContainer.WeldHolder;
+import org.jboss.weld.manager.api.WeldManager;
/**
* WeldSETestEnricher
@@ -30,13 +31,8 @@
public class WeldSETestEnricher extends CDIInjectionEnricher
{
@Override
- protected BeanManager lookupBeanManager()
+ protected BeanManager lookupBeanManager(Context context)
{
- WeldHolder holder = WeldSEContainer.WELD_MANAGER.get();
- if (holder != null)
- {
- return holder.getManager();
- }
- return null;
+ return context.get(WeldManager.class);
}
}
Modified: arquillian/trunk/examples/domain/src/main/java/com/acme/cdi/translate/NorwegianTranslator.java
===================================================================
--- arquillian/trunk/examples/domain/src/main/java/com/acme/cdi/translate/NorwegianTranslator.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/examples/domain/src/main/java/com/acme/cdi/translate/NorwegianTranslator.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -16,9 +16,9 @@
*/
package com.acme.cdi.translate;
-import javax.ejb.Stateless;
+import javax.enterprise.context.RequestScoped;
- at Stateless
+ at RequestScoped
public class NorwegianTranslator implements Translator {
public String translate(String sentence) {
Modified: arquillian/trunk/examples/domain/src/main/java/com/acme/cdi/translate/SentenceParser.java
===================================================================
--- arquillian/trunk/examples/domain/src/main/java/com/acme/cdi/translate/SentenceParser.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/examples/domain/src/main/java/com/acme/cdi/translate/SentenceParser.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -20,12 +20,20 @@
import java.util.Arrays;
import java.util.List;
-public class SentenceParser implements Serializable {
+import javax.enterprise.context.RequestScoped;
- private static final long serialVersionUID = 1L;
+ at RequestScoped
+public class SentenceParser implements Serializable
+{
- public List<String> parse(String text)
- {
- return Arrays.asList(text.split(" "));
- }
+ private static final long serialVersionUID = 1L;
+
+ public SentenceParser()
+ {
+ }
+
+ public List<String> parse(String text)
+ {
+ return Arrays.asList(text.split(" "));
+ }
}
\ No newline at end of file
Modified: arquillian/trunk/examples/domain/src/main/java/com/acme/cdi/translate/TextTranslator.java
===================================================================
--- arquillian/trunk/examples/domain/src/main/java/com/acme/cdi/translate/TextTranslator.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/examples/domain/src/main/java/com/acme/cdi/translate/TextTranslator.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -18,8 +18,10 @@
import java.io.Serializable;
+import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
+ at RequestScoped
public class TextTranslator implements Serializable {
private static final long serialVersionUID = 1L;
@@ -27,8 +29,10 @@
private SentenceParser sentenceParser;
private Translator sentenceTranslator;
+ public TextTranslator() {}
+
@Inject
- TextTranslator(SentenceParser sentenceParser, Translator sentenceTranslator) {
+ public TextTranslator(SentenceParser sentenceParser, Translator sentenceTranslator) {
this.sentenceParser = sentenceParser;
this.sentenceTranslator = sentenceTranslator;
}
Modified: arquillian/trunk/examples/domain/src/main/java/com/acme/cdi/translate/TranslateController.java
===================================================================
--- arquillian/trunk/examples/domain/src/main/java/com/acme/cdi/translate/TranslateController.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/examples/domain/src/main/java/com/acme/cdi/translate/TranslateController.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -29,12 +29,14 @@
private static final long serialVersionUID = 1L;
@Inject
- TextTranslator textTranslator;
+ private TextTranslator textTranslator;
private String inputText;
private String translation;
+ public TranslateController() {}
+
// JSF action method, perhaps
public void translate() {
translation = textTranslator.translate(inputText);
Modified: arquillian/trunk/examples/domain/src/main/java/com/acme/cdi/translate/Translator.java
===================================================================
--- arquillian/trunk/examples/domain/src/main/java/com/acme/cdi/translate/Translator.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/examples/domain/src/main/java/com/acme/cdi/translate/Translator.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -16,9 +16,9 @@
*/
package com.acme.cdi.translate;
-import javax.ejb.Local;
+import javax.enterprise.context.RequestScoped;
- at Local
+ at RequestScoped
public interface Translator {
public String translate(String sentence);
Modified: arquillian/trunk/examples/junit/src/test/java/com/acme/cdi/payment/SynchronousPaymentProcessorTestCase.java
===================================================================
--- arquillian/trunk/examples/junit/src/test/java/com/acme/cdi/payment/SynchronousPaymentProcessorTestCase.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/examples/junit/src/test/java/com/acme/cdi/payment/SynchronousPaymentProcessorTestCase.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -48,7 +48,7 @@
@Test
public void shouldBeReplacedByAMock(@Synchronous PaymentProcessor processor) throws Exception
{
- processor.process("");
- Assert.assertTrue(MockPaymentProcessor.HAS_BEEN_CALLED);
+ processor.process("");
+ Assert.assertTrue(MockPaymentProcessor.HAS_BEEN_CALLED);
}
}
Modified: arquillian/trunk/examples/junit/src/test/java/com/acme/cdi/random/RandomTestCase.java
===================================================================
--- arquillian/trunk/examples/junit/src/test/java/com/acme/cdi/random/RandomTestCase.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/examples/junit/src/test/java/com/acme/cdi/random/RandomTestCase.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -16,6 +16,8 @@
*/
package com.acme.cdi.random;
+import javax.inject.Inject;
+
import org.jboss.arquillian.api.Deployment;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.shrinkwrap.api.ArchivePaths;
@@ -46,8 +48,10 @@
ArchivePaths.create("beans.xml"));
}
+ @Inject @Random int randomNumber;
+
@Test
- public void shouldRun(@Random int randomNumber) throws Exception
+ public void shouldRun() throws Exception
{
Assert.assertTrue(randomNumber < 101);
}
Modified: arquillian/trunk/examples/testng/pom.xml
===================================================================
--- arquillian/trunk/examples/testng/pom.xml 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/examples/testng/pom.xml 2010-04-24 20:48:13 UTC (rev 4329)
@@ -75,8 +75,8 @@
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<includes>
+ <include>com/acme/cdi/*</include>
<include>com/acme/cdi/payment/*</include>
- <include>com/acme/cdi/random/*</include>
</includes>
</configuration>
</plugin>
@@ -105,8 +105,7 @@
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<includes>
- <include>com/acme/cdi/payment/*</include>
- <include>com/acme/cdi/random/*</include>
+ <include>com/acme/cdi/*</include>
</includes>
</configuration>
</plugin>
Modified: arquillian/trunk/examples/testng/src/test/java/com/acme/cdi/payment/SynchronousPaymentProcessorTestCase.java
===================================================================
--- arquillian/trunk/examples/testng/src/test/java/com/acme/cdi/payment/SynchronousPaymentProcessorTestCase.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/examples/testng/src/test/java/com/acme/cdi/payment/SynchronousPaymentProcessorTestCase.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -16,8 +16,6 @@
*/
package com.acme.cdi.payment;
-import javax.inject.Inject;
-
import org.jboss.arquillian.api.Deployment;
import org.jboss.arquillian.testng.Arquillian;
import org.jboss.shrinkwrap.api.ArchivePaths;
@@ -27,8 +25,6 @@
import org.testng.annotations.Test;
/**
- *
- *
* @author <a href="mailto:aslak at conduct.no">Aslak Knutsen</a>
* @version $Revision: $
*/
@@ -45,10 +41,8 @@
ArchivePaths.create("beans.xml"));
}
- @Inject @Synchronous PaymentProcessor processor;
-
- @Test
- public void shouldBeReplacedByAMock() throws Exception
+ @Test(dataProvider = Arquillian.ARQUILLIAN_DATA_PROVIDER)
+ public void shouldBeReplacedByAMock(@Synchronous PaymentProcessor processor) throws Exception
{
processor.process("");
Assert.assertTrue(MockPaymentProcessor.HAS_BEEN_CALLED);
Modified: arquillian/trunk/examples/testng/src/test/java/com/acme/cdi/translate/TranslateTestCase.java
===================================================================
--- arquillian/trunk/examples/testng/src/test/java/com/acme/cdi/translate/TranslateTestCase.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/examples/testng/src/test/java/com/acme/cdi/translate/TranslateTestCase.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -41,19 +41,19 @@
@Inject TranslateController controller;
- @Test(enabled = false) // https://jira.jboss.org/jira/browse/ARQ-55
+ @Test // https://jira.jboss.org/jira/browse/ARQ-55
public void shouldSetInputText() throws Exception
{
controller.setInputText("hi");
}
- @Test(dependsOnMethods = "shouldSetInputText", enabled = false) // https://jira.jboss.org/jira/browse/ARQ-55
+ @Test(dependsOnMethods = "shouldSetInputText") // https://jira.jboss.org/jira/browse/ARQ-55
public void shouldTranslate() throws Exception
{
controller.translate();
}
- @Test(dependsOnMethods = "shouldTranslate", enabled = false) // https://jira.jboss.org/jira/browse/ARQ-55
+ @Test(dependsOnMethods = "shouldTranslate") // https://jira.jboss.org/jira/browse/ARQ-55
public void shouldVerify() throws Exception
{
Assert.assertEquals(controller.getTranslation(), "hei");
Modified: arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/EventTestRunnerAdaptor.java
===================================================================
--- arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/EventTestRunnerAdaptor.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/EventTestRunnerAdaptor.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -17,18 +17,21 @@
package org.jboss.arquillian.impl;
import java.lang.reflect.Method;
+import java.util.Stack;
import org.jboss.arquillian.impl.context.ContextLifecycleManager;
-import org.jboss.arquillian.impl.event.type.After;
-import org.jboss.arquillian.impl.event.type.AfterClass;
-import org.jboss.arquillian.impl.event.type.AfterSuite;
-import org.jboss.arquillian.impl.event.type.Before;
-import org.jboss.arquillian.impl.event.type.BeforeClass;
-import org.jboss.arquillian.impl.event.type.BeforeSuite;
-import org.jboss.arquillian.impl.event.type.Test;
+import org.jboss.arquillian.impl.context.TestContext;
+import org.jboss.arquillian.spi.Context;
import org.jboss.arquillian.spi.TestMethodExecutor;
import org.jboss.arquillian.spi.TestResult;
import org.jboss.arquillian.spi.TestRunnerAdaptor;
+import org.jboss.arquillian.spi.event.suite.After;
+import org.jboss.arquillian.spi.event.suite.AfterClass;
+import org.jboss.arquillian.spi.event.suite.AfterSuite;
+import org.jboss.arquillian.spi.event.suite.Before;
+import org.jboss.arquillian.spi.event.suite.BeforeClass;
+import org.jboss.arquillian.spi.event.suite.BeforeSuite;
+import org.jboss.arquillian.spi.event.suite.Test;
/**
* EventTestRunnerAdaptor
@@ -39,6 +42,7 @@
public class EventTestRunnerAdaptor implements TestRunnerAdaptor
{
private ContextLifecycleManager contextLifecycle;
+ private Stack<Context> activeContext = new Stack<Context>();
public EventTestRunnerAdaptor(ContextLifecycleManager contextLifecycle)
{
@@ -47,14 +51,22 @@
this.contextLifecycle = contextLifecycle;
}
+ public Context getActiveContext()
+ {
+ return activeContext.peek();
+ }
+
public void beforeSuite() throws Exception
{
- contextLifecycle.createRestoreSuiteContext().fire(new BeforeSuite());
+ Context suiteContext = contextLifecycle.createRestoreSuiteContext();
+ suiteContext.fire(new BeforeSuite());
+ activeContext.push(suiteContext);
}
public void afterSuite() throws Exception
{
contextLifecycle.createRestoreSuiteContext().fire(new AfterSuite());
+ activeContext.pop();
contextLifecycle.destroySuiteContext();
}
@@ -62,7 +74,9 @@
{
Validate.notNull(testClass, "TestClass must be specified");
- contextLifecycle.createRestoreClassContext(testClass).fire(new BeforeClass(testClass));
+ Context classContext = contextLifecycle.createRestoreClassContext(testClass);
+ classContext.fire(new BeforeClass(testClass));
+ activeContext.push(classContext);
}
public void afterClass(Class<?> testClass) throws Exception
@@ -70,6 +84,8 @@
Validate.notNull(testClass, "TestClass must be specified");
contextLifecycle.createRestoreClassContext(testClass).fire(new AfterClass(testClass));
+ activeContext.pop();
+ contextLifecycle.destroyClassContext(testClass);
}
public void before(Object testInstance, Method testMethod) throws Exception
@@ -77,7 +93,9 @@
Validate.notNull(testInstance, "TestInstance must be specified");
Validate.notNull(testMethod, "TestMethod must be specified");
- contextLifecycle.createRestoreTestContext(testInstance).fire(new Before(testInstance, testMethod));
+ TestContext testContext = contextLifecycle.createRestoreTestContext(testInstance);
+ testContext.fire(new Before(testInstance, testMethod));
+ activeContext.push(testContext);
}
public void after(Object testInstance, Method testMethod) throws Exception
@@ -86,6 +104,7 @@
Validate.notNull(testMethod, "TestMethod must be specified");
contextLifecycle.createRestoreTestContext(testInstance).fire(new After(testInstance, testMethod));
+ activeContext.pop();
contextLifecycle.destroyTestContext(testInstance);
}
Modified: arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/context/AbstractEventContext.java
===================================================================
--- arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/context/AbstractEventContext.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/context/AbstractEventContext.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -20,11 +20,12 @@
import java.util.Map;
import org.jboss.arquillian.impl.Validate;
-import org.jboss.arquillian.impl.event.Event;
-import org.jboss.arquillian.impl.event.EventHandler;
import org.jboss.arquillian.impl.event.EventManager;
import org.jboss.arquillian.impl.event.MapEventManager;
+import org.jboss.arquillian.spi.Context;
import org.jboss.arquillian.spi.ServiceLoader;
+import org.jboss.arquillian.spi.event.Event;
+import org.jboss.arquillian.spi.event.suite.EventHandler;
/**
@@ -33,25 +34,25 @@
* @author <a href="mailto:aknutsen at redhat.com">Aslak Knutsen</a>
* @version $Revision: $
*/
-public abstract class AbstractEventContext<X extends Context<X, T>, T extends Event> implements Context<X, T>
+public abstract class AbstractEventContext implements Context
{
- private EventManager<X, T> eventManager;
+ private EventManager eventManager;
// TODO: create ObjectStore
private Map<Class<?>, Object> objectStore;
public AbstractEventContext()
{
- this.eventManager = new MapEventManager<X, T>();
+ this.eventManager = new MapEventManager();
this.objectStore = new HashMap<Class<?>, Object>();
}
- public <K extends T> void register(Class<? extends K> eventType, EventHandler<X, ? super K> handler)
+ public <K extends Event> void register(Class<? extends K> eventType, EventHandler<? super K> handler)
{
eventManager.register(eventType, handler);
}
- protected EventManager<X, T> getEventManager()
+ protected EventManager getEventManager()
{
return eventManager;
}
@@ -72,7 +73,7 @@
Object instance = objectStore.get(type);
if(instance == null)
{
- Context<?, ?> parentContext = getParentContext();
+ Context parentContext = getParentContext();
if(parentContext != null)
{
instance = parentContext.get(type);
@@ -85,4 +86,14 @@
{
return get(ServiceLoader.class);
}
+
+ public void fire(Event event)
+ {
+ Context parent = getParentContext();
+ if(parent != null)
+ {
+ parent.fire(event);
+ }
+ getEventManager().fire(this, event);
+ }
}
Modified: arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/context/ClassContext.java
===================================================================
--- arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/context/ClassContext.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/context/ClassContext.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -17,7 +17,7 @@
package org.jboss.arquillian.impl.context;
import org.jboss.arquillian.impl.Validate;
-import org.jboss.arquillian.impl.event.type.ClassEvent;
+import org.jboss.arquillian.spi.Context;
/**
* A ClassContext is alive in the following life cycles: <br/>
@@ -33,7 +33,7 @@
* @author <a href="mailto:aknutsen at redhat.com">Aslak Knutsen</a>
* @version $Revision: $
*/
-public class ClassContext extends AbstractEventContext<ClassContext, ClassEvent>
+public class ClassContext extends AbstractEventContext
{
private SuiteContext suiteContext;
@@ -58,14 +58,8 @@
return suiteContext;
}
- public Context<?, ?> getParentContext()
+ public Context getParentContext()
{
return getSuiteContext();
}
-
- public void fire(ClassEvent event)
- {
- getEventManager().fire(this, event);
- getSuiteContext().fire(event);
- }
}
\ No newline at end of file
Modified: arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/context/ClientProfileBuilder.java
===================================================================
--- arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/context/ClientProfileBuilder.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/context/ClientProfileBuilder.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -18,15 +18,7 @@
import org.jboss.arquillian.impl.ClientDeploymentGenerator;
import org.jboss.arquillian.impl.DeploymentGenerator;
-import org.jboss.arquillian.impl.event.EventHandler;
-import org.jboss.arquillian.impl.event.type.After;
-import org.jboss.arquillian.impl.event.type.AfterClass;
-import org.jboss.arquillian.impl.event.type.AfterSuite;
-import org.jboss.arquillian.impl.event.type.Before;
-import org.jboss.arquillian.impl.event.type.BeforeClass;
-import org.jboss.arquillian.impl.event.type.BeforeSuite;
-import org.jboss.arquillian.impl.event.type.SuiteEvent;
-import org.jboss.arquillian.impl.event.type.Test;
+import org.jboss.arquillian.impl.handler.ActivateRunModeTypeLocal;
import org.jboss.arquillian.impl.handler.ArchiveGenerator;
import org.jboss.arquillian.impl.handler.ContainerCreator;
import org.jboss.arquillian.impl.handler.ContainerDeployer;
@@ -35,7 +27,15 @@
import org.jboss.arquillian.impl.handler.ContainerTestExecuter;
import org.jboss.arquillian.impl.handler.ContainerUndeployer;
import org.jboss.arquillian.impl.handler.ExecutionTimer;
-import org.jboss.arquillian.impl.handler.ActivateRunModeTypeLocal;
+import org.jboss.arquillian.spi.event.suite.After;
+import org.jboss.arquillian.spi.event.suite.AfterClass;
+import org.jboss.arquillian.spi.event.suite.AfterSuite;
+import org.jboss.arquillian.spi.event.suite.Before;
+import org.jboss.arquillian.spi.event.suite.BeforeClass;
+import org.jboss.arquillian.spi.event.suite.BeforeSuite;
+import org.jboss.arquillian.spi.event.suite.EventHandler;
+import org.jboss.arquillian.spi.event.suite.SuiteEvent;
+import org.jboss.arquillian.spi.event.suite.Test;
/**
* ClientContextCreator
@@ -52,7 +52,7 @@
context.register(BeforeSuite.class, new ContainerStarter());
context.register(AfterSuite.class, new ContainerStopper());
- EventHandler<SuiteContext, SuiteEvent> timer = new ExecutionTimer();
+ EventHandler<SuiteEvent> timer = new ExecutionTimer();
context.register(BeforeSuite.class, timer);
context.register(AfterSuite.class, timer);
context.register(BeforeClass.class, timer);
Modified: arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/context/ContainerProfileBuilder.java
===================================================================
--- arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/context/ContainerProfileBuilder.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/context/ContainerProfileBuilder.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -16,10 +16,10 @@
*/
package org.jboss.arquillian.impl.context;
-import org.jboss.arquillian.impl.event.type.Before;
-import org.jboss.arquillian.impl.event.type.Test;
import org.jboss.arquillian.impl.handler.TestCaseEnricher;
import org.jboss.arquillian.impl.handler.TestEventExecuter;
+import org.jboss.arquillian.spi.event.suite.Before;
+import org.jboss.arquillian.spi.event.suite.Test;
/**
* ClientContextCreator
Deleted: arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/context/Context.java
===================================================================
--- arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/context/Context.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/context/Context.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -1,81 +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.impl.context;
-
-import org.jboss.arquillian.impl.event.Event;
-import org.jboss.arquillian.impl.event.EventHandler;
-import org.jboss.arquillian.spi.ServiceLoader;
-
-/**
- *
- *
- * @author <a href="mailto:aknutsen at redhat.com">Aslak Knutsen</a>
- * @version $Revision: $
- * @param <X>
- * @param <T>
- */
-public interface Context<X, T extends Event>
-{
- /**
- * Fire a new {@link Event}.
- *
- * @param event The {@link Event} instance to fire
- */
- void fire(T event);
-
- /**
- * Register a {@link EventHandler} for a specific {@link Event}.
- *
- * @param <K>
- * @param eventType The Type of {@link Event} to listen to
- * @param handler The receiver of the {@link Event}
- */
- <K extends T> void register(Class<? extends K> eventType, EventHandler<X, ? super K> handler);
-
- /**
- * Get the defined {@link ServiceLoader}
- *
- * @return A instance of {@link ServiceLoader}
- * @see #get(Class)
- */
- ServiceLoader getServiceLoader();
-
- /**
- * Get this contexts parent context.
- *
- * @return The parent context if any, null if this is the top context.
- */
- Context<?, ?> getParentContext();
-
- /**
- * Add a instance of B to the context.
- *
- * @param <B>
- * @param type The Type of the instance to add
- * @param instance The instance to add
- */
- <B> void add(Class<B> type, B instance);
-
- /**
- * Get a instance of B from the context.
- *
- * @param <B>
- * @param type Type to lookup
- * @return A instance of B or null if not found
- */
- <B> B get(Class<B> type);
-}
Modified: arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/context/ContextLifecycleManager.java
===================================================================
--- arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/context/ContextLifecycleManager.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/context/ContextLifecycleManager.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -127,7 +127,7 @@
ClassContext.class.getSimpleName());
}
- if(!classContextStore.contains(testClass))
+ if(!classContextStore.containsKey(testClass))
{
ClassContext classContext = new ClassContext(createRestoreSuiteContext());
profileBuilder.buildClassContext(classContext, testClass);
@@ -166,7 +166,7 @@
{
Validate.notNull(testInstance, "TestInstance must be specified");
- if(!testContextStore.contains(testInstance))
+ if(!testContextStore.containsKey(testInstance))
{
TestContext testContext = new TestContext(createRestoreClassContext(testInstance.getClass()));
profileBuilder.buildTestContext(testContext, testInstance);
Modified: arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/context/StandaloneProfileBuilder.java
===================================================================
--- arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/context/StandaloneProfileBuilder.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/context/StandaloneProfileBuilder.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -16,11 +16,10 @@
*/
package org.jboss.arquillian.impl.context;
-import org.jboss.arquillian.impl.event.type.Before;
-import org.jboss.arquillian.impl.event.type.Test;
import org.jboss.arquillian.impl.handler.ContainerTestExecuter;
-import org.jboss.arquillian.impl.handler.TestEventExecuter;
import org.jboss.arquillian.impl.handler.TestCaseEnricher;
+import org.jboss.arquillian.spi.event.suite.Before;
+import org.jboss.arquillian.spi.event.suite.Test;
/**
* StandaloneProfileBuilder
Modified: arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/context/SuiteContext.java
===================================================================
--- arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/context/SuiteContext.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/context/SuiteContext.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -17,7 +17,7 @@
package org.jboss.arquillian.impl.context;
import org.jboss.arquillian.impl.Validate;
-import org.jboss.arquillian.impl.event.type.SuiteEvent;
+import org.jboss.arquillian.spi.Context;
import org.jboss.arquillian.spi.ServiceLoader;
/**
@@ -36,7 +36,7 @@
* @author <a href="mailto:aknutsen at redhat.com">Aslak Knutsen</a>
* @version $Revision: $
*/
-public class SuiteContext extends AbstractEventContext<SuiteContext, SuiteEvent>
+public class SuiteContext extends AbstractEventContext
{
/**
* Create a new SuiteContext.
@@ -51,15 +51,10 @@
add(ServiceLoader.class, serviceLoader);
}
- public void fire(SuiteEvent event)
- {
- getEventManager().fire(this, event);
- }
-
/**
* @return Always null, SuiteContext is the root context.
*/
- public Context<?, ?> getParentContext()
+ public Context getParentContext()
{
return null;
}
Modified: arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/context/TestContext.java
===================================================================
--- arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/context/TestContext.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/context/TestContext.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -17,7 +17,7 @@
package org.jboss.arquillian.impl.context;
import org.jboss.arquillian.impl.Validate;
-import org.jboss.arquillian.impl.event.type.TestEvent;
+import org.jboss.arquillian.spi.Context;
/**
* A TestContext is alive in the following life cycles: <br/>
@@ -31,7 +31,7 @@
* @author <a href="mailto:aknutsen at redhat.com">Aslak Knutsen</a>
* @version $Revision: $
*/
-public class TestContext extends AbstractEventContext<TestContext, TestEvent>
+public class TestContext extends AbstractEventContext
{
private ClassContext classContext;
@@ -56,14 +56,9 @@
return classContext;
}
- public Context<?, ?> getParentContext()
+ public Context getParentContext()
{
return getClassContext();
}
- public void fire(TestEvent event)
- {
- getEventManager().fire(this, event);
- getClassContext().fire(event);
- }
}
Deleted: arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/event/Event.java
===================================================================
--- arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/event/Event.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/event/Event.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -1,27 +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.impl.event;
-
-/**
- * Event
- *
- * @author <a href="mailto:aslak at conduct.no">Aslak Knutsen</a>
- * @version $Revision: $
- */
-public interface Event
-{
-}
Deleted: arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/event/EventHandler.java
===================================================================
--- arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/event/EventHandler.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/event/EventHandler.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -1,37 +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.impl.event;
-
-/**
- * EventHandler
- *
- * @author <a href="mailto:aknutsen at redhat.com">Aslak Knutsen</a>
- * @version $Revision: $
- * @param <X> The Context
- * @param <T> The Event
- */
-public interface EventHandler<X, T>
-{
-
- /**
- * @param context
- * @param event
- * @throws Exception
- */
- void callback(X context, T event) throws Exception;
-
-}
Modified: arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/event/EventManager.java
===================================================================
--- arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/event/EventManager.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/event/EventManager.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -16,6 +16,10 @@
*/
package org.jboss.arquillian.impl.event;
+import org.jboss.arquillian.spi.Context;
+import org.jboss.arquillian.spi.event.Event;
+import org.jboss.arquillian.spi.event.suite.EventHandler;
+
/**
* EventManagerIF
*
@@ -24,18 +28,18 @@
* @param <X>
* @param <T>
*/
-public interface EventManager<X, T extends Event>
+public interface EventManager
{
/**
* @param context
* @param event
*/
- void fire(X context, T event);
+ void fire(Context context, Event event);
/**
* @param <K>
* @param eventType
* @param handler
*/
- <K extends T> void register(Class<? extends K> eventType, EventHandler<X, ? super K> handler);
+ <K extends Event> void register(Class<? extends K> eventType, EventHandler<? super K> handler);
}
\ No newline at end of file
Modified: arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/event/MapEventManager.java
===================================================================
--- arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/event/MapEventManager.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/event/MapEventManager.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -22,7 +22,9 @@
import java.util.concurrent.ConcurrentHashMap;
import org.jboss.arquillian.impl.Validate;
-import org.jboss.arquillian.impl.context.Context;
+import org.jboss.arquillian.spi.Context;
+import org.jboss.arquillian.spi.event.Event;
+import org.jboss.arquillian.spi.event.suite.EventHandler;
/**
* EventManager
@@ -31,16 +33,16 @@
* @version $Revision: $
*/
@SuppressWarnings("unchecked")
-public class MapEventManager<X extends Context<X, T>, T extends Event> implements EventManager<X, T>
+public class MapEventManager implements EventManager
{
- private Map<Class<? extends T>, List<EventHandler>> handlerRegistry;
+ private Map<Class<? extends Event>, List<EventHandler>> handlerRegistry;
public MapEventManager()
{
- this.handlerRegistry = new ConcurrentHashMap<Class<? extends T>, List<EventHandler>>();
+ this.handlerRegistry = new ConcurrentHashMap<Class<? extends Event>, List<EventHandler>>();
}
- public void fire(X context, T event)
+ public void fire(Context context, Event event)
{
Validate.notNull(context, "Context must be specified");
Validate.notNull(event, "Event must be specified");
@@ -50,8 +52,14 @@
{
try
{
- for(EventHandler<X, T> handler : handlers)
+ /*
+ We need to use old style of for loop to avoid ConcurrentModificationException
+ A handler could add a listener to the same event in it's callback.
+ ie: a DeployableContainer adding a SessionLifecyle handler to be added to the @BeforeClass
+ */
+ for(int i = 0; i < handlers.size(); i++)
{
+ EventHandler handler = handlers.get(i);
handler.callback(context, event);
}
}
@@ -63,7 +71,7 @@
}
// TODO: look at concurrency of add / list
- public <K extends T> void register(Class<? extends K> eventType, EventHandler<X, ? super K> handler)
+ public <K extends Event> void register(Class<? extends K> eventType, EventHandler<? super K> handler)
{
Validate.notNull(eventType, "EventType must be specified");
Validate.notNull(handler, "EventHandler must be specified");
Modified: arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/handler/ActivateRunModeTypeLocal.java
===================================================================
--- arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/handler/ActivateRunModeTypeLocal.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/handler/ActivateRunModeTypeLocal.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -18,12 +18,12 @@
import org.jboss.arquillian.api.RunMode;
import org.jboss.arquillian.api.RunModeType;
-import org.jboss.arquillian.impl.context.ClassContext;
-import org.jboss.arquillian.impl.event.EventHandler;
-import org.jboss.arquillian.impl.event.type.BeforeClass;
import org.jboss.arquillian.spi.ContainerMethodExecutor;
+import org.jboss.arquillian.spi.Context;
import org.jboss.arquillian.spi.TestMethodExecutor;
import org.jboss.arquillian.spi.TestResult;
+import org.jboss.arquillian.spi.event.suite.BeforeClass;
+import org.jboss.arquillian.spi.event.suite.EventHandler;
/**
* Handler that will setup the context as defined by the {@link RunModeType#LOCAL}. <br/>
@@ -36,12 +36,12 @@
* @author <a href="mailto:aknutsen at redhat.com">Aslak Knutsen</a>
* @version $Revision: $
*/
-public class ActivateRunModeTypeLocal implements EventHandler<ClassContext, BeforeClass>
+public class ActivateRunModeTypeLocal implements EventHandler<BeforeClass>
{
/* (non-Javadoc)
* @see org.jboss.arquillian.impl.event.EventHandler#callback(java.lang.Object, java.lang.Object)
*/
- public void callback(ClassContext context, BeforeClass event)
+ public void callback(Context context, BeforeClass event)
throws Exception
{
if(event.getTestClass().isAnnotationPresent(RunMode.class))
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-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/handler/ArchiveGenerator.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -18,9 +18,9 @@
import org.jboss.arquillian.impl.DeploymentGenerator;
import org.jboss.arquillian.impl.Validate;
-import org.jboss.arquillian.impl.context.ClassContext;
-import org.jboss.arquillian.impl.event.EventHandler;
-import org.jboss.arquillian.impl.event.type.ClassEvent;
+import org.jboss.arquillian.spi.Context;
+import org.jboss.arquillian.spi.event.suite.ClassEvent;
+import org.jboss.arquillian.spi.event.suite.EventHandler;
import org.jboss.shrinkwrap.api.Archive;
/**
@@ -39,10 +39,10 @@
* @see DeploymentGenerator
* @see Archive
*/
-public class ArchiveGenerator implements EventHandler<ClassContext, ClassEvent>
+public class ArchiveGenerator implements EventHandler<ClassEvent>
{
- public void callback(ClassContext context, ClassEvent event) throws Exception
+ public void callback(Context context, ClassEvent event) throws Exception
{
DeploymentGenerator generator = context.get(DeploymentGenerator.class);
Validate.stateNotNull(generator, "No " + DeploymentGenerator.class.getName() + " found in context");
Modified: arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/handler/ContainerCreator.java
===================================================================
--- arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/handler/ContainerCreator.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/handler/ContainerCreator.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -16,11 +16,13 @@
*/
package org.jboss.arquillian.impl.handler;
-import org.jboss.arquillian.impl.context.SuiteContext;
-import org.jboss.arquillian.impl.event.EventHandler;
-import org.jboss.arquillian.impl.event.type.SuiteEvent;
import org.jboss.arquillian.spi.Configuration;
+import org.jboss.arquillian.spi.Context;
import org.jboss.arquillian.spi.DeployableContainer;
+import org.jboss.arquillian.spi.event.container.AfterSetup;
+import org.jboss.arquillian.spi.event.container.BeforeSetup;
+import org.jboss.arquillian.spi.event.suite.EventHandler;
+import org.jboss.arquillian.spi.event.suite.SuiteEvent;
/**
* A Handler for creating and setting up a {@link DeployableContainer} for use. <br/>
@@ -38,14 +40,16 @@
* @see Configuration
* @see DeployableContainer
*/
-public class ContainerCreator implements EventHandler<SuiteContext, SuiteEvent>
+public class ContainerCreator implements EventHandler<SuiteEvent>
{
- public void callback(SuiteContext context, SuiteEvent event) throws Exception
+ public void callback(Context context, SuiteEvent event) throws Exception
{
DeployableContainer container = context.getServiceLoader().onlyOne(DeployableContainer.class);
- container.setup(context.get(Configuration.class));
+ context.fire(new BeforeSetup());
+ container.setup(context, context.get(Configuration.class));
context.add(DeployableContainer.class, container);
+ context.fire(new AfterSetup());
}
}
Modified: arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/handler/ContainerDeployer.java
===================================================================
--- arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/handler/ContainerDeployer.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/handler/ContainerDeployer.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -17,11 +17,13 @@
package org.jboss.arquillian.impl.handler;
import org.jboss.arquillian.impl.Validate;
-import org.jboss.arquillian.impl.context.ClassContext;
-import org.jboss.arquillian.impl.event.EventHandler;
-import org.jboss.arquillian.impl.event.type.ClassEvent;
import org.jboss.arquillian.spi.ContainerMethodExecutor;
+import org.jboss.arquillian.spi.Context;
import org.jboss.arquillian.spi.DeployableContainer;
+import org.jboss.arquillian.spi.event.container.AfterDeploy;
+import org.jboss.arquillian.spi.event.container.BeforeDeploy;
+import org.jboss.arquillian.spi.event.suite.ClassEvent;
+import org.jboss.arquillian.spi.event.suite.EventHandler;
import org.jboss.shrinkwrap.api.Archive;
/**
@@ -42,10 +44,10 @@
* @see ContainerMethodExecutor
* @see Archive
*/
-public class ContainerDeployer implements EventHandler<ClassContext, ClassEvent>
+public class ContainerDeployer implements EventHandler<ClassEvent>
{
- public void callback(ClassContext context, ClassEvent event) throws Exception
+ public void callback(Context context, ClassEvent event) throws Exception
{
DeployableContainer container = context.get(DeployableContainer.class);
Validate.stateNotNull(container, "No " + DeployableContainer.class.getName() + " found in context");
@@ -53,7 +55,9 @@
Archive<?> deployment = context.get(Archive.class);
Validate.stateNotNull(deployment, "No " + Archive.class.getName() + " found in context");
- ContainerMethodExecutor executor = container.deploy(deployment);
+ context.fire(new BeforeDeploy());
+ ContainerMethodExecutor executor = container.deploy(context, deployment);
context.add(ContainerMethodExecutor.class, executor);
+ context.fire(new AfterDeploy());
}
}
Modified: arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/handler/ContainerRestarter.java
===================================================================
--- arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/handler/ContainerRestarter.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/handler/ContainerRestarter.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -16,11 +16,10 @@
*/
package org.jboss.arquillian.impl.handler;
-import org.jboss.arquillian.impl.Validate;
-import org.jboss.arquillian.impl.context.ClassContext;
-import org.jboss.arquillian.impl.event.EventHandler;
-import org.jboss.arquillian.impl.event.type.SuiteEvent;
+import org.jboss.arquillian.spi.Context;
import org.jboss.arquillian.spi.DeployableContainer;
+import org.jboss.arquillian.spi.event.suite.EventHandler;
+import org.jboss.arquillian.spi.event.suite.SuiteEvent;
/**
* A Handler for restarting the {@link DeployableContainer} for every X deployments.<br/>
@@ -33,29 +32,26 @@
* @version $Revision: $
* @see DeployableContainer
*/
-public class ContainerRestarter implements EventHandler<ClassContext, SuiteEvent>
+public class ContainerRestarter implements EventHandler<SuiteEvent>
{
private static final int MAX_DEPLOYMENTS_BEFORE_RESTART = 5;
private int deploymentCount = 0;
- public void callback(ClassContext context, SuiteEvent event) throws Exception
+ public void callback(Context context, SuiteEvent event) throws Exception
{
- DeployableContainer container = context.get(DeployableContainer.class);
- Validate.stateNotNull(container, "No " + DeployableContainer.class.getName() + " found in context");
-
if(deploymentCount == getMaxDeployments(context) -1)
{
- container.stop();
- container.start();
+ new ContainerStopper().callback(context, event);
+ new ContainerStarter().callback(context, event);
deploymentCount = 0;
}
deploymentCount++;
}
- private int getMaxDeployments(ClassContext context)
+ private int getMaxDeployments(Context context)
{
//context.get(Configuration.class).getMaxDeploymentsBeforeRestart();
return MAX_DEPLOYMENTS_BEFORE_RESTART;
Modified: arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/handler/ContainerStarter.java
===================================================================
--- arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/handler/ContainerStarter.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/handler/ContainerStarter.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -17,10 +17,12 @@
package org.jboss.arquillian.impl.handler;
import org.jboss.arquillian.impl.Validate;
-import org.jboss.arquillian.impl.context.SuiteContext;
-import org.jboss.arquillian.impl.event.EventHandler;
-import org.jboss.arquillian.impl.event.type.SuiteEvent;
+import org.jboss.arquillian.spi.Context;
import org.jboss.arquillian.spi.DeployableContainer;
+import org.jboss.arquillian.spi.event.container.AfterStart;
+import org.jboss.arquillian.spi.event.container.BeforeStart;
+import org.jboss.arquillian.spi.event.suite.EventHandler;
+import org.jboss.arquillian.spi.event.suite.SuiteEvent;
/**
* A Handler for starting the {@link DeployableContainer}.<br/>
@@ -33,14 +35,16 @@
* @version $Revision: $
* @see DeployableContainer
*/
-public class ContainerStarter implements EventHandler<SuiteContext, SuiteEvent>
+public class ContainerStarter implements EventHandler<SuiteEvent>
{
- public void callback(SuiteContext context, SuiteEvent event) throws Exception
+ public void callback(Context context, SuiteEvent event) throws Exception
{
DeployableContainer container = context.get(DeployableContainer.class);
Validate.stateNotNull(container, "No " + DeployableContainer.class.getName() + " found in context");
- container.start();
+ context.fire(new BeforeStart());
+ container.start(context);
+ context.fire(new AfterStart());
}
}
Modified: arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/handler/ContainerStopper.java
===================================================================
--- arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/handler/ContainerStopper.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/handler/ContainerStopper.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -17,10 +17,12 @@
package org.jboss.arquillian.impl.handler;
import org.jboss.arquillian.impl.Validate;
-import org.jboss.arquillian.impl.context.SuiteContext;
-import org.jboss.arquillian.impl.event.EventHandler;
-import org.jboss.arquillian.impl.event.type.SuiteEvent;
+import org.jboss.arquillian.spi.Context;
import org.jboss.arquillian.spi.DeployableContainer;
+import org.jboss.arquillian.spi.event.container.AfterStop;
+import org.jboss.arquillian.spi.event.container.BeforeStop;
+import org.jboss.arquillian.spi.event.suite.EventHandler;
+import org.jboss.arquillian.spi.event.suite.SuiteEvent;
/**
* A Handler for stopping the {@link DeployableContainer}.<br/>
@@ -33,14 +35,16 @@
* @version $Revision: $
* @see DeployableContainer
*/
-public class ContainerStopper implements EventHandler<SuiteContext, SuiteEvent>
+public class ContainerStopper implements EventHandler<SuiteEvent>
{
- public void callback(SuiteContext context, SuiteEvent event) throws Exception
+ public void callback(Context context, SuiteEvent event) throws Exception
{
DeployableContainer container = context.get(DeployableContainer.class);
Validate.stateNotNull(container, "No " + DeployableContainer.class.getName() + " found in context");
- container.stop();
+ context.fire(new BeforeStop());
+ container.stop(context);
+ context.fire(new AfterStop());
}
}
\ No newline at end of file
Modified: arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/handler/ContainerTestExecuter.java
===================================================================
--- arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/handler/ContainerTestExecuter.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/handler/ContainerTestExecuter.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -17,12 +17,12 @@
package org.jboss.arquillian.impl.handler;
import org.jboss.arquillian.impl.Validate;
-import org.jboss.arquillian.impl.context.TestContext;
-import org.jboss.arquillian.impl.event.EventHandler;
-import org.jboss.arquillian.impl.event.type.Test;
import org.jboss.arquillian.spi.ContainerMethodExecutor;
+import org.jboss.arquillian.spi.Context;
import org.jboss.arquillian.spi.DeployableContainer;
import org.jboss.arquillian.spi.TestResult;
+import org.jboss.arquillian.spi.event.suite.EventHandler;
+import org.jboss.arquillian.spi.event.suite.Test;
/**
* A Handler for executing the remote Test Method.<br/>
@@ -35,10 +35,10 @@
* @version $Revision: $
* @see DeployableContainer
*/
-public class ContainerTestExecuter implements EventHandler<TestContext, Test>
+public class ContainerTestExecuter implements EventHandler<Test>
{
- public void callback(TestContext context, Test event) throws Exception
+ public void callback(Context context, Test event) throws Exception
{
ContainerMethodExecutor executor = context.get(ContainerMethodExecutor.class);
Validate.stateNotNull(executor, "No " + ContainerMethodExecutor.class.getName() + " found in context");
Modified: arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/handler/ContainerUndeployer.java
===================================================================
--- arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/handler/ContainerUndeployer.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/handler/ContainerUndeployer.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -17,10 +17,12 @@
package org.jboss.arquillian.impl.handler;
import org.jboss.arquillian.impl.Validate;
-import org.jboss.arquillian.impl.context.ClassContext;
-import org.jboss.arquillian.impl.event.EventHandler;
-import org.jboss.arquillian.impl.event.type.ClassEvent;
+import org.jboss.arquillian.spi.Context;
import org.jboss.arquillian.spi.DeployableContainer;
+import org.jboss.arquillian.spi.event.container.AfterUnDeploy;
+import org.jboss.arquillian.spi.event.container.BeforeUnDeploy;
+import org.jboss.arquillian.spi.event.suite.ClassEvent;
+import org.jboss.arquillian.spi.event.suite.EventHandler;
import org.jboss.shrinkwrap.api.Archive;
/**
@@ -37,10 +39,10 @@
* @see DeployableContainer
* @see Archive
*/
-public class ContainerUndeployer implements EventHandler<ClassContext, ClassEvent>
+public class ContainerUndeployer implements EventHandler<ClassEvent>
{
- public void callback(ClassContext context, ClassEvent event) throws Exception
+ public void callback(Context context, ClassEvent event) throws Exception
{
DeployableContainer container = context.get(DeployableContainer.class);
Validate.stateNotNull(container, "No " + DeployableContainer.class.getName() + " found in context");
@@ -48,6 +50,8 @@
Archive<?> deployment = context.get(Archive.class);
Validate.stateNotNull(deployment, "No " + Archive.class.getName() + " found in context");
- container.undeploy(deployment);
+ context.fire(new BeforeUnDeploy());
+ container.undeploy(context, deployment);
+ context.fire(new AfterUnDeploy());
}
}
Modified: arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/handler/ExecutionTimer.java
===================================================================
--- arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/handler/ExecutionTimer.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/handler/ExecutionTimer.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -17,9 +17,9 @@
package org.jboss.arquillian.impl.handler;
import org.jboss.arquillian.impl.DeployableTestBuilder;
-import org.jboss.arquillian.impl.context.SuiteContext;
-import org.jboss.arquillian.impl.event.EventHandler;
-import org.jboss.arquillian.impl.event.type.SuiteEvent;
+import org.jboss.arquillian.spi.Context;
+import org.jboss.arquillian.spi.event.suite.EventHandler;
+import org.jboss.arquillian.spi.event.suite.SuiteEvent;
/**
* A Handler for simple execution time tracking. Prints to System.out the
@@ -28,12 +28,12 @@
* @author <a href="mailto:aslak at conduct.no">Aslak Knutsen</a>
* @version $Revision: $
*/
-public class ExecutionTimer implements EventHandler<SuiteContext, SuiteEvent>
+public class ExecutionTimer implements EventHandler<SuiteEvent>
{
private long start = System.currentTimeMillis();
private long previous = System.currentTimeMillis();
- public void callback(SuiteContext context, SuiteEvent event) throws Exception
+ public void callback(Context context, SuiteEvent event) throws Exception
{
System.out.println(DeployableTestBuilder.getProfile() + "-" + event.getClass().getName() + " " + (previous - start) + " ms");
start = previous;
Modified: arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/handler/TestCaseEnricher.java
===================================================================
--- arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/handler/TestCaseEnricher.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/handler/TestCaseEnricher.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -18,10 +18,10 @@
import java.util.Collection;
-import org.jboss.arquillian.impl.context.TestContext;
-import org.jboss.arquillian.impl.event.EventHandler;
-import org.jboss.arquillian.impl.event.type.TestEvent;
+import org.jboss.arquillian.spi.Context;
import org.jboss.arquillian.spi.TestEnricher;
+import org.jboss.arquillian.spi.event.suite.EventHandler;
+import org.jboss.arquillian.spi.event.suite.TestEvent;
/**
* A Handler for enriching the Test instance.<br/>
@@ -29,15 +29,18 @@
* @author <a href="mailto:aslak at conduct.no">Aslak Knutsen</a>
* @version $Revision: $
*/
-public class TestCaseEnricher implements EventHandler<TestContext, TestEvent>
+public class TestCaseEnricher implements EventHandler<TestEvent>
{
- public void callback(TestContext context, TestEvent event) throws Exception
+ /* (non-Javadoc)
+ * @see org.jboss.arquillian.impl.event.EventHandler#callback(org.jboss.arquillian.impl.context.Context, java.lang.Object)
+ */
+ public void callback(Context context, TestEvent event) throws Exception
{
Collection<TestEnricher> testEnrichers = context.getServiceLoader().all(TestEnricher.class);
for(TestEnricher enricher : testEnrichers)
{
- enricher.enrich(event.getTestInstance());
+ enricher.enrich(context, event.getTestInstance());
}
}
}
Modified: arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/handler/TestEventExecuter.java
===================================================================
--- arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/handler/TestEventExecuter.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/handler/TestEventExecuter.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -17,10 +17,10 @@
package org.jboss.arquillian.impl.handler;
import org.jboss.arquillian.impl.TestResultImpl;
-import org.jboss.arquillian.impl.context.TestContext;
-import org.jboss.arquillian.impl.event.EventHandler;
-import org.jboss.arquillian.impl.event.type.Test;
+import org.jboss.arquillian.spi.Context;
import org.jboss.arquillian.spi.TestResult.Status;
+import org.jboss.arquillian.spi.event.suite.EventHandler;
+import org.jboss.arquillian.spi.event.suite.Test;
/**
* A Handler for executing the Test Method.
@@ -28,10 +28,15 @@
* @author <a href="mailto:aslak at conduct.no">Aslak Knutsen</a>
* @version $Revision: $
*/
-public class TestEventExecuter implements EventHandler<TestContext, Test>
+public class TestEventExecuter implements EventHandler<Test>
{
- public void callback(TestContext context, Test event) throws Exception
+ /**
+ * @param context
+ * @param event
+ * @throws Exception
+ */
+ public void callback(Context context, Test event) throws Exception
{
try
{
Modified: arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/EventTestRunnerAdaptorTestCase.java
===================================================================
--- arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/EventTestRunnerAdaptorTestCase.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/EventTestRunnerAdaptorTestCase.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -23,12 +23,12 @@
import org.jboss.arquillian.impl.context.ProfileBuilder;
import org.jboss.arquillian.impl.context.SuiteContext;
import org.jboss.arquillian.impl.context.TestContext;
-import org.jboss.arquillian.impl.event.EventHandler;
-import org.jboss.arquillian.impl.event.type.ClassEvent;
-import org.jboss.arquillian.impl.event.type.SuiteEvent;
-import org.jboss.arquillian.impl.event.type.TestEvent;
import org.jboss.arquillian.spi.ServiceLoader;
import org.jboss.arquillian.spi.TestMethodExecutor;
+import org.jboss.arquillian.spi.event.suite.ClassEvent;
+import org.jboss.arquillian.spi.event.suite.EventHandler;
+import org.jboss.arquillian.spi.event.suite.SuiteEvent;
+import org.jboss.arquillian.spi.event.suite.TestEvent;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -55,13 +55,13 @@
public ProfileBuilder profileBuilder;
@Mock
- private EventHandler<SuiteContext, SuiteEvent> suiteEventHandler;
+ private EventHandler<SuiteEvent> suiteEventHandler;
@Mock
- private EventHandler<ClassContext, ClassEvent> classEventHandler;
+ private EventHandler<ClassEvent> classEventHandler;
@Mock
- private EventHandler<TestContext, TestEvent> testEventHandler;
+ private EventHandler<TestEvent> testEventHandler;
@Before
public void createContexts() throws Exception
@@ -73,8 +73,8 @@
public Void answer(InvocationOnMock invocation) throws Throwable
{
SuiteContext context = (SuiteContext)invocation.getArguments()[0];
- context.register(org.jboss.arquillian.impl.event.type.BeforeSuite.class, suiteEventHandler);
- context.register(org.jboss.arquillian.impl.event.type.AfterSuite.class, suiteEventHandler);
+ context.register(org.jboss.arquillian.spi.event.suite.BeforeSuite.class, suiteEventHandler);
+ context.register(org.jboss.arquillian.spi.event.suite.AfterSuite.class, suiteEventHandler);
return null;
}
}).when(profileBuilder).buildSuiteContext(Mockito.any(SuiteContext.class));
@@ -84,8 +84,8 @@
public Void answer(InvocationOnMock invocation) throws Throwable
{
ClassContext context = (ClassContext)invocation.getArguments()[0];
- context.register(org.jboss.arquillian.impl.event.type.BeforeClass.class, classEventHandler);
- context.register(org.jboss.arquillian.impl.event.type.AfterClass.class, classEventHandler);
+ context.register(org.jboss.arquillian.spi.event.suite.BeforeClass.class, classEventHandler);
+ context.register(org.jboss.arquillian.spi.event.suite.AfterClass.class, classEventHandler);
return null;
}
}).when(profileBuilder).buildClassContext(Mockito.any(ClassContext.class), Mockito.any(Class.class));
@@ -95,9 +95,9 @@
public Void answer(InvocationOnMock invocation) throws Throwable
{
TestContext context = (TestContext)invocation.getArguments()[0];
- context.register(org.jboss.arquillian.impl.event.type.Before.class, testEventHandler);
- context.register(org.jboss.arquillian.impl.event.type.Test.class, testEventHandler);
- context.register(org.jboss.arquillian.impl.event.type.After.class, testEventHandler);
+ context.register(org.jboss.arquillian.spi.event.suite.Before.class, testEventHandler);
+ context.register(org.jboss.arquillian.spi.event.suite.Test.class, testEventHandler);
+ context.register(org.jboss.arquillian.spi.event.suite.After.class, testEventHandler);
return null;
}
}).when(profileBuilder).buildTestContext(Mockito.any(TestContext.class), Mockito.any(Class.class));
Modified: arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/context/ContextLifecycleManagerTestCase.java
===================================================================
--- arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/context/ContextLifecycleManagerTestCase.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/context/ContextLifecycleManagerTestCase.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -23,12 +23,12 @@
import org.jboss.arquillian.impl.context.ProfileBuilder;
import org.jboss.arquillian.impl.context.SuiteContext;
import org.jboss.arquillian.impl.context.TestContext;
-import org.jboss.arquillian.impl.event.EventHandler;
-import org.jboss.arquillian.impl.event.type.Before;
-import org.jboss.arquillian.impl.event.type.ClassEvent;
-import org.jboss.arquillian.impl.event.type.SuiteEvent;
-import org.jboss.arquillian.impl.event.type.TestEvent;
import org.jboss.arquillian.spi.ServiceLoader;
+import org.jboss.arquillian.spi.event.suite.Before;
+import org.jboss.arquillian.spi.event.suite.ClassEvent;
+import org.jboss.arquillian.spi.event.suite.EventHandler;
+import org.jboss.arquillian.spi.event.suite.SuiteEvent;
+import org.jboss.arquillian.spi.event.suite.TestEvent;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
@@ -52,13 +52,13 @@
private ProfileBuilder profileBuilder;
@Mock
- private EventHandler<SuiteContext, SuiteEvent> suiteEventHandler;
+ private EventHandler<SuiteEvent> suiteEventHandler;
@Mock
- private EventHandler<ClassContext, ClassEvent> classEventHandler;
+ private EventHandler<ClassEvent> classEventHandler;
@Mock
- private EventHandler<TestContext, TestEvent> testEventHandler;
+ private EventHandler<TestEvent> testEventHandler;
@Test
public void shouldBeAbleToCreateRestoreSuiteContext() throws Exception
Modified: arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/event/EventManagerTestCase.java
===================================================================
--- arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/event/EventManagerTestCase.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/event/EventManagerTestCase.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -17,8 +17,9 @@
package org.jboss.arquillian.impl.event;
import org.jboss.arquillian.impl.context.SuiteContext;
-import org.jboss.arquillian.impl.event.type.SuiteEvent;
import org.jboss.arquillian.spi.ServiceLoader;
+import org.jboss.arquillian.spi.event.suite.EventHandler;
+import org.jboss.arquillian.spi.event.suite.SuiteEvent;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
@@ -39,7 +40,7 @@
private ServiceLoader serviceLoader;
@Mock
- private EventHandler<SuiteContext, SuiteEvent> handler;
+ private EventHandler<SuiteEvent> handler;
@Test(expected = FiredEventException.class)
public void shouldWrapException() throws Exception
@@ -51,7 +52,7 @@
SuiteContext context = new SuiteContext(serviceLoader);
SuiteEvent event = new SuiteEvent();
- EventManager<SuiteContext, SuiteEvent> manager = new MapEventManager<SuiteContext, SuiteEvent>();
+ EventManager manager = new MapEventManager();
manager.register(SuiteEvent.class, handler);
manager.fire(context, event);
@@ -65,7 +66,7 @@
SuiteContext context = new SuiteContext(serviceLoader);
SuiteEvent event = new SuiteEvent();
- EventManager<SuiteContext, SuiteEvent> manager = new MapEventManager<SuiteContext, SuiteEvent>();
+ EventManager manager = new MapEventManager();
for(int i = 0; i < handlerCount; i++)
{
manager.register(SuiteEvent.class, handler);
Modified: arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/handler/ActivateRunModeTypeLocalTestCase.java
===================================================================
--- arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/handler/ActivateRunModeTypeLocalTestCase.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/handler/ActivateRunModeTypeLocalTestCase.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -22,9 +22,9 @@
import org.jboss.arquillian.api.RunModeType;
import org.jboss.arquillian.impl.context.ClassContext;
import org.jboss.arquillian.impl.context.SuiteContext;
-import org.jboss.arquillian.impl.event.type.BeforeClass;
import org.jboss.arquillian.spi.ContainerMethodExecutor;
import org.jboss.arquillian.spi.ServiceLoader;
+import org.jboss.arquillian.spi.event.suite.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
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-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/handler/ArchiveGeneratorTestCase.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -21,8 +21,8 @@
import org.jboss.arquillian.impl.DeploymentGenerator;
import org.jboss.arquillian.impl.context.ClassContext;
import org.jboss.arquillian.impl.context.SuiteContext;
-import org.jboss.arquillian.impl.event.type.ClassEvent;
import org.jboss.arquillian.spi.ServiceLoader;
+import org.jboss.arquillian.spi.event.suite.ClassEvent;
import org.jboss.shrinkwrap.api.Archive;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.spec.JavaArchive;
Modified: arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/handler/ContainerCreatorTestCase.java
===================================================================
--- arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/handler/ContainerCreatorTestCase.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/handler/ContainerCreatorTestCase.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -19,10 +19,14 @@
import junit.framework.Assert;
import org.jboss.arquillian.impl.context.SuiteContext;
-import org.jboss.arquillian.impl.event.type.SuiteEvent;
import org.jboss.arquillian.spi.Configuration;
import org.jboss.arquillian.spi.DeployableContainer;
import org.jboss.arquillian.spi.ServiceLoader;
+import org.jboss.arquillian.spi.event.container.AfterSetup;
+import org.jboss.arquillian.spi.event.container.BeforeSetup;
+import org.jboss.arquillian.spi.event.container.ContainerEvent;
+import org.jboss.arquillian.spi.event.suite.EventHandler;
+import org.jboss.arquillian.spi.event.suite.SuiteEvent;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
@@ -45,6 +49,9 @@
@Mock
private DeployableContainer container;
+ @Mock
+ private EventHandler<ContainerEvent> eventHandler;
+
@Test
public void shouldLoadAndSetupTheContainer() throws Exception
{
@@ -54,12 +61,20 @@
SuiteContext context = new SuiteContext(serviceLoader);
context.add(Configuration.class, configuration);
+ context.register(BeforeSetup.class, eventHandler);
+ context.register(AfterSetup.class, eventHandler);
ContainerCreator handler = new ContainerCreator();
handler.callback(context, new SuiteEvent());
- Mockito.verify(container).setup(configuration);
+ // verify that the container was setup
+ Mockito.verify(container).setup(context, configuration);
+
+ // verify that all the events where fired
+ Mockito.verify(eventHandler, Mockito.times(2)).callback(
+ Mockito.any(SuiteContext.class), Mockito.any(ContainerEvent.class));
+ // verify that the container was exported
Assert.assertNotNull(
"Should have exported " + DeployableContainer.class,
context.get(DeployableContainer.class));
Modified: arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/handler/ContainerDeployerTestCase.java
===================================================================
--- arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/handler/ContainerDeployerTestCase.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/handler/ContainerDeployerTestCase.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -20,10 +20,14 @@
import org.jboss.arquillian.impl.context.ClassContext;
import org.jboss.arquillian.impl.context.SuiteContext;
-import org.jboss.arquillian.impl.event.type.ClassEvent;
import org.jboss.arquillian.spi.ContainerMethodExecutor;
import org.jboss.arquillian.spi.DeployableContainer;
import org.jboss.arquillian.spi.ServiceLoader;
+import org.jboss.arquillian.spi.event.container.AfterDeploy;
+import org.jboss.arquillian.spi.event.container.BeforeDeploy;
+import org.jboss.arquillian.spi.event.container.ContainerEvent;
+import org.jboss.arquillian.spi.event.suite.ClassEvent;
+import org.jboss.arquillian.spi.event.suite.EventHandler;
import org.jboss.shrinkwrap.api.Archive;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.spec.JavaArchive;
@@ -51,6 +55,9 @@
@Mock
private ContainerMethodExecutor executor;
+ @Mock
+ private EventHandler<ContainerEvent> eventHandler;
+
@Test(expected = IllegalStateException.class)
public void shouldThrowIllegalStateOnMissingDeployableContainer() throws Exception
{
@@ -71,21 +78,31 @@
}
@Test
- public void shouldExportContainerMethodExecutor() throws Exception
+ public void shouldExportContainerMethodExecutorAndFireEvents() throws Exception
{
Archive<?> deployment = ShrinkWrap.create("test.jar", JavaArchive.class);
- Mockito.when(container.deploy(deployment)).thenReturn(executor);
-
ClassContext context = new ClassContext(new SuiteContext(serviceLoader));
context.add(DeployableContainer.class, container);
context.add(Archive.class, deployment);
+ context.register(BeforeDeploy.class, eventHandler);
+ context.register(AfterDeploy.class, eventHandler);
+ Mockito.when(container.deploy(context, deployment)).thenReturn(executor);
+
ContainerDeployer handler = new ContainerDeployer();
handler.callback(context, new ClassEvent(getClass()));
+ // verify that the deployment was deployed to the container
+ Mockito.verify(container).deploy(context, deployment);
+
+ // verify that the ContainerMethodExecutor was exported
Assert.assertNotNull(
"Should have exported " + ContainerMethodExecutor.class.getSimpleName(),
context.get(ContainerMethodExecutor.class));
+
+ // verify that all the events where fired
+ Mockito.verify(eventHandler, Mockito.times(2)).callback(
+ Mockito.any(SuiteContext.class), Mockito.any(ContainerEvent.class));
}
}
Modified: arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/handler/ContainerRestarterTestCase.java
===================================================================
--- arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/handler/ContainerRestarterTestCase.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/handler/ContainerRestarterTestCase.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -18,9 +18,15 @@
import org.jboss.arquillian.impl.context.ClassContext;
import org.jboss.arquillian.impl.context.SuiteContext;
-import org.jboss.arquillian.impl.event.type.SuiteEvent;
import org.jboss.arquillian.spi.DeployableContainer;
import org.jboss.arquillian.spi.ServiceLoader;
+import org.jboss.arquillian.spi.event.container.AfterStart;
+import org.jboss.arquillian.spi.event.container.AfterStop;
+import org.jboss.arquillian.spi.event.container.BeforeStart;
+import org.jboss.arquillian.spi.event.container.BeforeStop;
+import org.jboss.arquillian.spi.event.container.ContainerEvent;
+import org.jboss.arquillian.spi.event.suite.EventHandler;
+import org.jboss.arquillian.spi.event.suite.SuiteEvent;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
@@ -43,12 +49,19 @@
@Mock
private DeployableContainer container;
-
+
+ @Mock
+ private EventHandler<ContainerEvent> eventHandler;
+
@Test
public void shouldRestartContainerForEveryX() throws Exception
{
ClassContext context = new ClassContext(new SuiteContext(serviceLoader));
context.add(DeployableContainer.class, container);
+ context.register(BeforeStart.class, eventHandler);
+ context.register(AfterStart.class, eventHandler);
+ context.register(BeforeStop.class, eventHandler);
+ context.register(AfterStop.class, eventHandler);
ContainerRestarter handler = new ContainerRestarter();
@@ -57,7 +70,12 @@
handler.callback(context, new SuiteEvent());
}
- Mockito.verify(container, Mockito.times(2)).stop();
- Mockito.verify(container, Mockito.times(2)).start();
+ // verify that the container was restarted twice
+ Mockito.verify(container, Mockito.times(2)).stop(context);
+ Mockito.verify(container, Mockito.times(2)).start(context);
+
+ // verify that all the events where fired (2 times restart * 4(2 start + 2 stop))
+ Mockito.verify(eventHandler, Mockito.times(8)).callback(
+ Mockito.any(SuiteContext.class), Mockito.any(ContainerEvent.class));
}
}
Modified: arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/handler/ContainerStarterTestCase.java
===================================================================
--- arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/handler/ContainerStarterTestCase.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/handler/ContainerStarterTestCase.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -17,10 +17,13 @@
package org.jboss.arquillian.impl.handler;
import org.jboss.arquillian.impl.context.SuiteContext;
-import org.jboss.arquillian.impl.event.type.SuiteEvent;
-import org.jboss.arquillian.impl.handler.ContainerStarter;
import org.jboss.arquillian.spi.DeployableContainer;
import org.jboss.arquillian.spi.ServiceLoader;
+import org.jboss.arquillian.spi.event.container.AfterStart;
+import org.jboss.arquillian.spi.event.container.BeforeStart;
+import org.jboss.arquillian.spi.event.container.ContainerEvent;
+import org.jboss.arquillian.spi.event.suite.EventHandler;
+import org.jboss.arquillian.spi.event.suite.SuiteEvent;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
@@ -42,6 +45,9 @@
@Mock
private DeployableContainer container;
+ @Mock
+ private EventHandler<ContainerEvent> eventHandler;
+
@Test(expected = IllegalStateException.class)
public void shouldThrowIllegalStateOnMissingDeployableContainer() throws Exception
{
@@ -56,10 +62,17 @@
{
SuiteContext context = new SuiteContext(serviceLoader);
context.add(DeployableContainer.class, container);
+ context.register(BeforeStart.class, eventHandler);
+ context.register(AfterStart.class, eventHandler);
ContainerStarter handler = new ContainerStarter();
handler.callback(context, new SuiteEvent());
- Mockito.verify(container).start();
+ // verify that the contianer was started
+ Mockito.verify(container).start(context);
+
+ // verify that all the events where fired
+ Mockito.verify(eventHandler, Mockito.times(2)).callback(
+ Mockito.any(SuiteContext.class), Mockito.any(ContainerEvent.class));
}
}
Modified: arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/handler/ContainerStopperTestCase.java
===================================================================
--- arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/handler/ContainerStopperTestCase.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/handler/ContainerStopperTestCase.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -17,10 +17,13 @@
package org.jboss.arquillian.impl.handler;
import org.jboss.arquillian.impl.context.SuiteContext;
-import org.jboss.arquillian.impl.event.type.SuiteEvent;
-import org.jboss.arquillian.impl.handler.ContainerStopper;
import org.jboss.arquillian.spi.DeployableContainer;
import org.jboss.arquillian.spi.ServiceLoader;
+import org.jboss.arquillian.spi.event.container.AfterStop;
+import org.jboss.arquillian.spi.event.container.BeforeStop;
+import org.jboss.arquillian.spi.event.container.ContainerEvent;
+import org.jboss.arquillian.spi.event.suite.EventHandler;
+import org.jboss.arquillian.spi.event.suite.SuiteEvent;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
@@ -43,6 +46,9 @@
@Mock
private DeployableContainer container;
+ @Mock
+ private EventHandler<ContainerEvent> eventHandler;
+
@Test(expected = IllegalStateException.class)
public void shouldThrowIllegalStateOnMissingDeployableContainer() throws Exception
{
@@ -57,12 +63,17 @@
{
SuiteContext context = new SuiteContext(serviceLoader);
context.add(DeployableContainer.class, container);
-
+ context.register(BeforeStop.class, eventHandler);
+ context.register(AfterStop.class, eventHandler);
+
ContainerStopper handler = new ContainerStopper();
handler.callback(context, new SuiteEvent());
- Mockito.verify(container).stop();
+ // verify that the container was stopped
+ Mockito.verify(container).stop(context);
+
+ // verify that all the events where fired
+ Mockito.verify(eventHandler, Mockito.times(2)).callback(
+ Mockito.any(SuiteContext.class), Mockito.any(ContainerEvent.class));
}
-
-
}
Modified: arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/handler/ContainerTestExecuterTestCase.java
===================================================================
--- arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/handler/ContainerTestExecuterTestCase.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/handler/ContainerTestExecuterTestCase.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -65,7 +65,7 @@
ContainerTestExecuter handler = new ContainerTestExecuter();
handler.callback(context,
- new org.jboss.arquillian.impl.event.type.Test(testExecutor));
+ new org.jboss.arquillian.spi.event.suite.Test(testExecutor));
}
@Test
@@ -82,7 +82,7 @@
ContainerTestExecuter handler = new ContainerTestExecuter();
handler.callback(context,
- new org.jboss.arquillian.impl.event.type.Test(testExecutor));
+ new org.jboss.arquillian.spi.event.suite.Test(testExecutor));
}
@Test
@@ -97,7 +97,7 @@
TestContext context = new TestContext(new ClassContext(new SuiteContext(serviceLoader)));
context.add(ContainerMethodExecutor.class, executor);
- org.jboss.arquillian.impl.event.type.Test event = new org.jboss.arquillian.impl.event.type.Test(testExecutor);
+ org.jboss.arquillian.spi.event.suite.Test event = new org.jboss.arquillian.spi.event.suite.Test(testExecutor);
ContainerTestExecuter handler = new ContainerTestExecuter();
handler.callback(context, event);
Modified: arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/handler/ContainerUndeployerTestCase.java
===================================================================
--- arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/handler/ContainerUndeployerTestCase.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/handler/ContainerUndeployerTestCase.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -18,9 +18,13 @@
import org.jboss.arquillian.impl.context.ClassContext;
import org.jboss.arquillian.impl.context.SuiteContext;
-import org.jboss.arquillian.impl.event.type.ClassEvent;
import org.jboss.arquillian.spi.DeployableContainer;
import org.jboss.arquillian.spi.ServiceLoader;
+import org.jboss.arquillian.spi.event.container.AfterUnDeploy;
+import org.jboss.arquillian.spi.event.container.BeforeUnDeploy;
+import org.jboss.arquillian.spi.event.container.ContainerEvent;
+import org.jboss.arquillian.spi.event.suite.ClassEvent;
+import org.jboss.arquillian.spi.event.suite.EventHandler;
import org.jboss.shrinkwrap.api.Archive;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.spec.JavaArchive;
@@ -45,6 +49,9 @@
@Mock
private DeployableContainer container;
+
+ @Mock
+ private EventHandler<ContainerEvent> eventHandler;
@Test(expected = IllegalStateException.class)
public void shouldThrowIllegalStateOnMissingDeployableContainer() throws Exception
@@ -73,10 +80,17 @@
ClassContext context = new ClassContext(new SuiteContext(serviceLoader));
context.add(DeployableContainer.class, container);
context.add(Archive.class, deployment);
+ context.register(BeforeUnDeploy.class, eventHandler);
+ context.register(AfterUnDeploy.class, eventHandler);
ContainerUndeployer handler = new ContainerUndeployer();
handler.callback(context, new ClassEvent(getClass()));
- Mockito.verify(container).undeploy(deployment);
+ // verify that the deployment was undeployed from the container
+ Mockito.verify(container).undeploy(context, deployment);
+
+ // verify that all the events where fired
+ Mockito.verify(eventHandler, Mockito.times(2)).callback(
+ Mockito.any(SuiteContext.class), Mockito.any(ContainerEvent.class));
}
}
Modified: arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/handler/TestCaseEnricherTestCase.java
===================================================================
--- arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/handler/TestCaseEnricherTestCase.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/handler/TestCaseEnricherTestCase.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -21,9 +21,9 @@
import org.jboss.arquillian.impl.context.ClassContext;
import org.jboss.arquillian.impl.context.SuiteContext;
import org.jboss.arquillian.impl.context.TestContext;
-import org.jboss.arquillian.impl.event.type.TestEvent;
import org.jboss.arquillian.spi.ServiceLoader;
import org.jboss.arquillian.spi.TestEnricher;
+import org.jboss.arquillian.spi.event.suite.TestEvent;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
@@ -56,6 +56,6 @@
TestCaseEnricher handler = new TestCaseEnricher();
handler.callback(context, event);
- Mockito.verify(enricher, Mockito.times(2)).enrich(this);
+ Mockito.verify(enricher, Mockito.times(2)).enrich(context, this);
}
}
Modified: arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/handler/TestEventExecuterTestCase.java
===================================================================
--- arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/handler/TestEventExecuterTestCase.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/handler/TestEventExecuterTestCase.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -58,7 +58,7 @@
TestContext context = new TestContext(new ClassContext(new SuiteContext(serviceLoader)));
- org.jboss.arquillian.impl.event.type.Test event = new org.jboss.arquillian.impl.event.type.Test(testExecutor);
+ org.jboss.arquillian.spi.event.suite.Test event = new org.jboss.arquillian.spi.event.suite.Test(testExecutor);
TestEventExecuter handler = new TestEventExecuter();
handler.callback(context, event);
@@ -88,7 +88,7 @@
TestContext context = new TestContext(new ClassContext(new SuiteContext(serviceLoader)));
- org.jboss.arquillian.impl.event.type.Test event = new org.jboss.arquillian.impl.event.type.Test(testExecutor);
+ org.jboss.arquillian.spi.event.suite.Test event = new org.jboss.arquillian.spi.event.suite.Test(testExecutor);
TestEventExecuter handler = new TestEventExecuter();
handler.callback(context, event);
Modified: arquillian/trunk/junit/src/main/java/org/jboss/arquillian/junit/Arquillian.java
===================================================================
--- arquillian/trunk/junit/src/main/java/org/jboss/arquillian/junit/Arquillian.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/junit/src/main/java/org/jboss/arquillian/junit/Arquillian.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -58,6 +58,7 @@
{
throw new InitializationError(Arrays.asList((Throwable)e));
}
+ // TODO: The JVM is never shutdown, hook never called. Figure out how to kill it
Runtime.getRuntime().addShutdownHook(new Thread()
{
@Override
@@ -91,16 +92,14 @@
* Override to allow test methods with arguments
*/
@Override
- protected void validatePublicVoidNoArgMethods(Class<? extends Annotation> annotation, boolean isStatic, List<Throwable> errors)
+ protected void validatePublicVoidNoArgMethods(Class<? extends Annotation> annotation, boolean isStatic, List<Throwable> errors)
{
- List<FrameworkMethod> methods= getTestClass().getAnnotatedMethods(annotation);
-
- for (FrameworkMethod eachTestMethod : methods)
- {
- eachTestMethod.validatePublicVoid(isStatic, errors);
- }
- }
-
+ List<FrameworkMethod> methods = getTestClass().getAnnotatedMethods(annotation);
+ for (FrameworkMethod eachTestMethod : methods)
+ {
+ eachTestMethod.validatePublicVoid(isStatic, errors);
+ }
+ }
@Override
protected Statement withBeforeClasses(final Statement originalStatement)
@@ -174,7 +173,7 @@
{
public void invoke() throws Throwable
{
- Object parameterValues = TestEnrichers.enrich(getMethod());
+ Object parameterValues = TestEnrichers.enrich(deployableTest.get().getActiveContext(), getMethod());
method.invokeExplosively(test, (Object[])parameterValues);
}
Added: arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/Context.java
===================================================================
--- arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/Context.java (rev 0)
+++ arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/Context.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -0,0 +1,81 @@
+/*
+ * 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 org.jboss.arquillian.spi.event.Event;
+import org.jboss.arquillian.spi.event.suite.EventHandler;
+
+
+/**
+ *
+ *
+ * @author <a href="mailto:aknutsen at redhat.com">Aslak Knutsen</a>
+ * @version $Revision: $
+ * @param <X>
+ * @param <T>
+ */
+public interface Context
+{
+ /**
+ * Fire a new {@link Event}.
+ *
+ * @param event The {@link Event} instance to fire
+ */
+ void fire(Event event);
+
+ /**
+ * Register a {@link EventHandler} for a specific {@link Event}.
+ *
+ * @param <K>
+ * @param eventType The Type of {@link Event} to listen to
+ * @param handler The receiver of the {@link Event}
+ */
+ <K extends Event> void register(Class<? extends K> eventType, EventHandler<? super K> handler);
+
+ /**
+ * Get the defined {@link ServiceLoader}
+ *
+ * @return A instance of {@link ServiceLoader}
+ * @see #get(Class)
+ */
+ ServiceLoader getServiceLoader();
+
+ /**
+ * Get this contexts parent context.
+ *
+ * @return The parent context if any, null if this is the top context.
+ */
+ Context getParentContext();
+
+ /**
+ * Add a instance of B to the context.
+ *
+ * @param <B>
+ * @param type The Type of the instance to add
+ * @param instance The instance to add
+ */
+ <B> void add(Class<B> type, B instance);
+
+ /**
+ * Get a instance of B from the context.
+ *
+ * @param <B>
+ * @param type Type to lookup
+ * @return A instance of B or null if not found
+ */
+ <B> B get(Class<B> type);
+}
Modified: arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/DeployableContainer.java
===================================================================
--- arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/DeployableContainer.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/DeployableContainer.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -26,14 +26,13 @@
*/
public interface DeployableContainer
{
- void setup(Configuration configuration);
+ void setup(Context context, Configuration configuration);
- void start() throws LifecycleException;
+ void start(Context context) throws LifecycleException;
- void stop() throws LifecycleException;
+ ContainerMethodExecutor deploy(Context context, Archive<?> archive) throws DeploymentException;
- ContainerMethodExecutor deploy(Archive<?> archive) throws DeploymentException;
-
- void undeploy(Archive<?> archive) throws DeploymentException;
+ void undeploy(Context context, Archive<?> archive) throws DeploymentException;
+ void stop(Context context) throws LifecycleException;
}
\ No newline at end of file
Modified: arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/TestEnricher.java
===================================================================
--- arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/TestEnricher.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/TestEnricher.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -34,7 +34,7 @@
*
* @param testCase The test case instance
*/
- void enrich(Object testCase);
+ void enrich(Context context, Object testCase);
/**
* Extension point to add features to the test method arguments.<br/>
@@ -48,5 +48,5 @@
* @param method
* @return A Object[] of Arguments
*/
- Object[] resolve(Method method);
+ Object[] resolve(Context context, Method method);
}
Modified: arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/TestRunnerAdaptor.java
===================================================================
--- arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/TestRunnerAdaptor.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/TestRunnerAdaptor.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -28,7 +28,17 @@
*/
public interface TestRunnerAdaptor
{
+ /*
+ * TODO: reevaluate this. a basic stack that will peek at the top, suite/class/test context.
+ * used to fetch the context outside the test adaptor inside the test framework integration to
+ * do method argumnet injection.
+ */
/**
+ * @return
+ */
+ Context getActiveContext();
+
+ /**
* @throws Exception
*/
void beforeSuite() throws Exception;
Added: arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/Event.java
===================================================================
--- arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/Event.java (rev 0)
+++ arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/Event.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -0,0 +1,27 @@
+/*
+ * 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.event;
+
+/**
+ * Event
+ *
+ * @author <a href="mailto:aslak at conduct.no">Aslak Knutsen</a>
+ * @version $Revision: $
+ */
+public interface Event
+{
+}
Added: arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/container/AfterDeploy.java
===================================================================
--- arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/container/AfterDeploy.java (rev 0)
+++ arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/container/AfterDeploy.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -0,0 +1,28 @@
+/*
+ * 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.event.container;
+
+
+/**
+ * BeforeContainerStart
+ *
+ * @author <a href="mailto:aknutsen at redhat.com">Aslak Knutsen</a>
+ * @version $Revision: $
+ */
+public class AfterDeploy extends ContainerEvent
+{
+}
Added: arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/container/AfterSetup.java
===================================================================
--- arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/container/AfterSetup.java (rev 0)
+++ arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/container/AfterSetup.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -0,0 +1,28 @@
+/*
+ * 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.event.container;
+
+
+/**
+ * BeforeContainerStart
+ *
+ * @author <a href="mailto:aknutsen at redhat.com">Aslak Knutsen</a>
+ * @version $Revision: $
+ */
+public class AfterSetup extends ContainerEvent
+{
+}
Added: arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/container/AfterStart.java
===================================================================
--- arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/container/AfterStart.java (rev 0)
+++ arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/container/AfterStart.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -0,0 +1,28 @@
+/*
+ * 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.event.container;
+
+
+/**
+ * BeforeContainerStart
+ *
+ * @author <a href="mailto:aknutsen at redhat.com">Aslak Knutsen</a>
+ * @version $Revision: $
+ */
+public class AfterStart extends ContainerEvent
+{
+}
Added: arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/container/AfterStop.java
===================================================================
--- arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/container/AfterStop.java (rev 0)
+++ arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/container/AfterStop.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -0,0 +1,28 @@
+/*
+ * 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.event.container;
+
+
+/**
+ * BeforeContainerStart
+ *
+ * @author <a href="mailto:aknutsen at redhat.com">Aslak Knutsen</a>
+ * @version $Revision: $
+ */
+public class AfterStop extends ContainerEvent
+{
+}
Added: arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/container/AfterUnDeploy.java
===================================================================
--- arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/container/AfterUnDeploy.java (rev 0)
+++ arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/container/AfterUnDeploy.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -0,0 +1,28 @@
+/*
+ * 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.event.container;
+
+
+/**
+ * BeforeContainerStart
+ *
+ * @author <a href="mailto:aknutsen at redhat.com">Aslak Knutsen</a>
+ * @version $Revision: $
+ */
+public class AfterUnDeploy extends ContainerEvent
+{
+}
Added: arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/container/BeforeDeploy.java
===================================================================
--- arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/container/BeforeDeploy.java (rev 0)
+++ arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/container/BeforeDeploy.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -0,0 +1,28 @@
+/*
+ * 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.event.container;
+
+
+/**
+ * BeforeContainerStart
+ *
+ * @author <a href="mailto:aknutsen at redhat.com">Aslak Knutsen</a>
+ * @version $Revision: $
+ */
+public class BeforeDeploy extends ContainerEvent
+{
+}
Added: arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/container/BeforeSetup.java
===================================================================
--- arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/container/BeforeSetup.java (rev 0)
+++ arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/container/BeforeSetup.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -0,0 +1,28 @@
+/*
+ * 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.event.container;
+
+
+/**
+ * BeforeContainerStart
+ *
+ * @author <a href="mailto:aknutsen at redhat.com">Aslak Knutsen</a>
+ * @version $Revision: $
+ */
+public class BeforeSetup extends ContainerEvent
+{
+}
Added: arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/container/BeforeStart.java
===================================================================
--- arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/container/BeforeStart.java (rev 0)
+++ arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/container/BeforeStart.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -0,0 +1,28 @@
+/*
+ * 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.event.container;
+
+
+/**
+ * BeforeContainerStart
+ *
+ * @author <a href="mailto:aknutsen at redhat.com">Aslak Knutsen</a>
+ * @version $Revision: $
+ */
+public class BeforeStart extends ContainerEvent
+{
+}
Added: arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/container/BeforeStop.java
===================================================================
--- arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/container/BeforeStop.java (rev 0)
+++ arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/container/BeforeStop.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -0,0 +1,28 @@
+/*
+ * 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.event.container;
+
+
+/**
+ * BeforeContainerStart
+ *
+ * @author <a href="mailto:aknutsen at redhat.com">Aslak Knutsen</a>
+ * @version $Revision: $
+ */
+public class BeforeStop extends ContainerEvent
+{
+}
Added: arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/container/BeforeUnDeploy.java
===================================================================
--- arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/container/BeforeUnDeploy.java (rev 0)
+++ arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/container/BeforeUnDeploy.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -0,0 +1,28 @@
+/*
+ * 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.event.container;
+
+
+/**
+ * BeforeContainerStart
+ *
+ * @author <a href="mailto:aknutsen at redhat.com">Aslak Knutsen</a>
+ * @version $Revision: $
+ */
+public class BeforeUnDeploy extends ContainerEvent
+{
+}
Added: arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/container/ContainerEvent.java
===================================================================
--- arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/container/ContainerEvent.java (rev 0)
+++ arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/container/ContainerEvent.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -0,0 +1,29 @@
+/*
+ * 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.event.container;
+
+import org.jboss.arquillian.spi.event.Event;
+
+/**
+ * BeforeContainerStart
+ *
+ * @author <a href="mailto:aknutsen at redhat.com">Aslak Knutsen</a>
+ * @version $Revision: $
+ */
+public class ContainerEvent implements Event
+{
+}
Added: arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/suite/After.java
===================================================================
--- arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/suite/After.java (rev 0)
+++ arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/suite/After.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -0,0 +1,37 @@
+/*
+ * 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.event.suite;
+
+import java.lang.reflect.Method;
+
+/**
+ * Event fired After the Test method execution.
+ *
+ * @author <a href="mailto:aslak at conduct.no">Aslak Knutsen</a>
+ * @version $Revision: $
+ */
+public class After extends TestEvent
+{
+ /**
+ * @param testInstance The test case instance being tested
+ * @param testMethod The test method that was executed
+ */
+ public After(Object testInstance, Method testMethod)
+ {
+ super(testInstance, testMethod);
+ }
+}
Added: arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/suite/AfterClass.java
===================================================================
--- arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/suite/AfterClass.java (rev 0)
+++ arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/suite/AfterClass.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -0,0 +1,34 @@
+/*
+ * 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.event.suite;
+
+/**
+ * Event fired After the Class execution.
+ *
+ * @author <a href="mailto:aslak at conduct.no">Aslak Knutsen</a>
+ * @version $Revision: $
+ */
+public class AfterClass extends ClassEvent
+{
+ /**
+ * @param testClass The Test case {@link Class}
+ */
+ public AfterClass(Class<?> testClass)
+ {
+ super(testClass);
+ }
+}
Added: arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/suite/AfterSuite.java
===================================================================
--- arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/suite/AfterSuite.java (rev 0)
+++ arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/suite/AfterSuite.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -0,0 +1,30 @@
+/*
+ * 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.event.suite;
+
+/**
+ * Event fired After the Suite execution.
+ *
+ * @author <a href="mailto:aslak at conduct.no">Aslak Knutsen</a>
+ * @version $Revision: $
+ */
+public class AfterSuite extends SuiteEvent
+{
+ public AfterSuite()
+ {
+ }
+}
Added: arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/suite/Before.java
===================================================================
--- arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/suite/Before.java (rev 0)
+++ arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/suite/Before.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -0,0 +1,37 @@
+/*
+ * 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.event.suite;
+
+import java.lang.reflect.Method;
+
+/**
+ * Event fired Before the Test method execution
+ *
+ * @author <a href="mailto:aslak at conduct.no">Aslak Knutsen</a>
+ * @version $Revision: $
+ */
+public class Before extends TestEvent
+{
+ /**
+ * @param testInstance The test case instance being tested
+ * @param testMethod The test method that is about to be executed
+ */
+ public Before(Object testInstance, Method testMethod)
+ {
+ super(testInstance, testMethod);
+ }
+}
Added: arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/suite/BeforeClass.java
===================================================================
--- arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/suite/BeforeClass.java (rev 0)
+++ arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/suite/BeforeClass.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -0,0 +1,34 @@
+/*
+ * 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.event.suite;
+
+/**
+ * Event fired Before the Class execution.
+ *
+ * @author <a href="mailto:aslak at conduct.no">Aslak Knutsen</a>
+ * @version $Revision: $
+ */
+public class BeforeClass extends ClassEvent
+{
+ /**
+ * @param testClass The Test case {@link Class}
+ */
+ public BeforeClass(Class<?> testClass)
+ {
+ super(testClass);
+ }
+}
Added: arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/suite/BeforeSuite.java
===================================================================
--- arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/suite/BeforeSuite.java (rev 0)
+++ arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/suite/BeforeSuite.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -0,0 +1,30 @@
+/*
+ * 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.event.suite;
+
+/**
+ * Event fired Before the Suite execution.
+ *
+ * @author <a href="mailto:aslak at conduct.no">Aslak Knutsen</a>
+ * @version $Revision: $
+ */
+public class BeforeSuite extends SuiteEvent
+{
+ public BeforeSuite()
+ {
+ }
+}
Added: 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 (rev 0)
+++ arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/suite/ClassEvent.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -0,0 +1,45 @@
+/*
+ * 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.event.suite;
+
+
+/**
+ * Base for events fired in the Test Class execution face.
+ *
+ * @author <a href="mailto:aslak at conduct.no">Aslak Knutsen</a>
+ * @version $Revision: $
+ */
+public class ClassEvent extends SuiteEvent
+{
+ private Class<?> testClass;
+
+ /**
+ * @param testClass The Test case {@link Class}
+ * @throws IllegalArgumentException if testCase is null
+ */
+ public ClassEvent(Class<?> testClass)
+ {
+ Validate.notNull(testClass, "TestClass must be specified");
+
+ this.testClass = testClass;
+ }
+
+ public Class<?> getTestClass()
+ {
+ return testClass;
+ }
+}
Added: arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/suite/EventHandler.java
===================================================================
--- arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/suite/EventHandler.java (rev 0)
+++ arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/suite/EventHandler.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -0,0 +1,40 @@
+/*
+ * 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.event.suite;
+
+import org.jboss.arquillian.spi.Context;
+
+
+/**
+ * EventHandler
+ *
+ * @author <a href="mailto:aknutsen at redhat.com">Aslak Knutsen</a>
+ * @version $Revision: $
+ * @param <X> The Context
+ * @param <T> The Event
+ */
+public interface EventHandler<T>
+{
+
+ /**
+ * @param context
+ * @param event
+ * @throws Exception
+ */
+ void callback(Context context, T event) throws Exception;
+
+}
Added: arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/suite/SuiteEvent.java
===================================================================
--- arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/suite/SuiteEvent.java (rev 0)
+++ arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/suite/SuiteEvent.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -0,0 +1,33 @@
+/*
+ * 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.event.suite;
+
+import org.jboss.arquillian.spi.event.Event;
+
+
+/**
+ * Base for events fired in the Suite execution cycle.
+ *
+ * @author <a href="mailto:aslak at conduct.no">Aslak Knutsen</a>
+ * @version $Revision: $
+ */
+public class SuiteEvent implements Event
+{
+ public SuiteEvent()
+ {
+ }
+}
Added: arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/suite/Test.java
===================================================================
--- arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/suite/Test.java (rev 0)
+++ arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/suite/Test.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -0,0 +1,60 @@
+/*
+ * 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.event.suite;
+
+import org.jboss.arquillian.spi.TestMethodExecutor;
+import org.jboss.arquillian.spi.TestResult;
+
+/**
+ * Event fired to execute the Test method
+ *
+ * @author <a href="mailto:aslak at conduct.no">Aslak Knutsen</a>
+ * @version $Revision: $
+ */
+public class Test extends TestEvent
+{
+ private TestMethodExecutor testMethodExecutor;
+ private TestResult testResult;
+
+ /**
+ * @param testMethodExecutor The executor responsible for executing the test method
+ */
+ public Test(TestMethodExecutor testMethodExecutor)
+ {
+ // TODO: how to validate testMethodExecutor
+ super(testMethodExecutor.getInstance(), testMethodExecutor.getMethod());
+
+ //Validate.notNull(testMethodExecutor, "TestMethodExecutor must be specified");
+
+ this.testMethodExecutor = testMethodExecutor;
+ }
+
+ public TestMethodExecutor getTestMethodExecutor()
+ {
+ return testMethodExecutor;
+ }
+
+ public TestResult getTestResult()
+ {
+ return testResult;
+ }
+
+ public void setTestResult(TestResult testResult)
+ {
+ this.testResult = testResult;
+ }
+}
Added: arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/suite/TestEvent.java
===================================================================
--- arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/suite/TestEvent.java (rev 0)
+++ arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/suite/TestEvent.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -0,0 +1,64 @@
+/*
+ * 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.event.suite;
+
+import java.lang.reflect.Method;
+
+/**
+ * Base for events fired in the Test execution cycle.
+ *
+ * @author <a href="mailto:aslak at conduct.no">Aslak Knutsen</a>
+ * @version $Revision: $
+ */
+public class TestEvent extends ClassEvent
+{
+ private Object testInstance;
+ private Method testMethod;
+
+ /**
+ * @param testInstance The test case instance
+ * @param testMethod The test method
+ * @throws IllegalArgumentException if testInstance is null
+ * @throws IllegalArgumentException if testMethod is null
+ */
+ public TestEvent(Object testInstance, Method testMethod)
+ {
+ super(validateAndExtractClass(testInstance, testMethod));
+
+ this.testInstance = testInstance;
+ this.testMethod = testMethod;
+ }
+
+ // TODO: eeehh..?
+ private static Class<?> validateAndExtractClass(Object testInstance, Method testMethod)
+ {
+ Validate.notNull(testInstance, "TestInstance must be specified");
+ Validate.notNull(testMethod, "TestMethod must be specified");
+
+ return testInstance.getClass();
+ }
+
+ public Object getTestInstance()
+ {
+ return testInstance;
+ }
+
+ public Method getTestMethod()
+ {
+ return testMethod;
+ }
+}
Added: arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/suite/Validate.java
===================================================================
--- arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/suite/Validate.java (rev 0)
+++ arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/event/suite/Validate.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -0,0 +1,78 @@
+/*
+ * 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.event.suite;
+
+/**
+ * Validate
+ *
+ * Validation utility
+ *
+ * @author <a href="mailto:aslak at conduct.no">Aslak Knutsen</a>
+ * @version $Revision: $
+ */
+final class Validate
+{
+ private Validate()
+ {
+ }
+
+ /**
+ * Checks that object is not null, throws exception if it is.
+ *
+ * @param obj The object to check
+ * @param message The exception message
+ * @throws IllegalArgumentException Thrown if obj is null
+ */
+ public static void notNull(final Object obj, final String message) throws IllegalArgumentException
+ {
+ if (obj == null)
+ {
+ throw new IllegalArgumentException(message);
+ }
+ }
+
+ /**
+ * Checks that the specified String is not null or empty,
+ * throws exception if it is.
+ *
+ * @param string The object to check
+ * @param message The exception message
+ * @throws IllegalArgumentException Thrown if obj is null
+ */
+ public static void notNullOrEmpty(final String string, final String message) throws IllegalArgumentException
+ {
+ if (string == null || string.length() == 0)
+ {
+ throw new IllegalArgumentException(message);
+ }
+ }
+
+ /**
+ * Checks that obj is not null, throws exception if it is.
+ *
+ * @param obj The object to check
+ * @param message The exception message
+ * @throws IllegalStateException Thrown if obj is null
+ */
+ public static void stateNotNull(final Object obj, final String message) throws IllegalStateException
+ {
+ if(obj == null)
+ {
+ throw new IllegalStateException(message);
+ }
+ }
+}
Modified: arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/util/TestEnrichers.java
===================================================================
--- arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/util/TestEnrichers.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/util/TestEnrichers.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -18,6 +18,7 @@
import java.lang.reflect.Method;
+import org.jboss.arquillian.spi.Context;
import org.jboss.arquillian.spi.TestEnricher;
/**
@@ -35,36 +36,20 @@
}
/**
- * Enrich a object based on all found TestEnricher providers.
- *
- * @param testCase
- * The object that should be enriched.
- */
- public static void enrich(Object testCase)
- {
- DefaultServiceLoader<TestEnricher> serviceLoader = DefaultServiceLoader
- .load(TestEnricher.class);
- for (TestEnricher enricher : serviceLoader)
- {
- enricher.enrich(testCase);
- }
- }
-
- /**
* Enrich the method arguments of a method call.<br/>
* The Object[] index will match the method parameterType[] index.
*
* @param method
* @return the argument values
*/
- public static Object[] enrich(Method method)
+ public static Object[] enrich(Context context, Method method)
{
Object[] values = new Object[method.getParameterTypes().length];
DefaultServiceLoader<TestEnricher> serviceLoader = DefaultServiceLoader
.load(TestEnricher.class);
for (TestEnricher enricher : serviceLoader)
{
- mergeValues(values, enricher.resolve(method));
+ mergeValues(values, enricher.resolve(context, method));
}
return values;
}
Modified: arquillian/trunk/testenrichers/cdi/src/main/java/org/jboss/arquillian/testenricher/cdi/CDIInjectionEnricher.java
===================================================================
--- arquillian/trunk/testenrichers/cdi/src/main/java/org/jboss/arquillian/testenricher/cdi/CDIInjectionEnricher.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/testenrichers/cdi/src/main/java/org/jboss/arquillian/testenricher/cdi/CDIInjectionEnricher.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -17,6 +17,7 @@
package org.jboss.arquillian.testenricher.cdi;
import java.lang.annotation.Annotation;
+
import java.lang.reflect.Method;
import javax.enterprise.context.spi.CreationalContext;
@@ -25,6 +26,7 @@
import javax.enterprise.inject.spi.InjectionTarget;
import javax.naming.InitialContext;
+import org.jboss.arquillian.spi.Context;
import org.jboss.arquillian.spi.TestEnricher;
/**
@@ -40,25 +42,25 @@
private static final String ANNOTATION_NAME = "javax.inject.Inject";
/* (non-Javadoc)
- * @see org.jboss.arquillian.spi.TestEnricher#enrich(java.lang.Object)
+ * @see org.jboss.arquillian.spi.TestEnricher#enrich(org.jboss.arquillian.spi.Context, java.lang.Object)
*/
- public void enrich(Object testCase)
+ public void enrich(Context context, Object testCase)
{
if(SecurityActions.isClassPresent(ANNOTATION_NAME))
{
- injectClass(testCase);
+ injectClass(context, testCase);
}
}
/* (non-Javadoc)
- * @see org.jboss.arquillian.spi.TestEnricher#resolve(java.lang.reflect.Method)
+ * @see org.jboss.arquillian.spi.TestEnricher#resolve(org.jboss.arquillian.spi.Context, java.lang.reflect.Method)
*/
- public Object[] resolve(Method method)
+ public Object[] resolve(Context context, Method method)
{
Object[] values = new Object[method.getParameterTypes().length];
if(SecurityActions.isClassPresent(ANNOTATION_NAME))
{
- BeanManager beanManager = lookupBeanManager();
+ BeanManager beanManager = lookupBeanManager(context);
if(beanManager == null)
{
return values;
@@ -83,11 +85,11 @@
return (T) manager.getReference(bean, type, cc);
}
- protected void injectClass(Object testCase)
+ protected void injectClass(Context context, Object testCase)
{
try
{
- BeanManager beanManager = lookupBeanManager();
+ BeanManager beanManager = lookupBeanManager(context);
if(beanManager != null) {
injectNonContextualInstance(beanManager, testCase);
}
@@ -107,7 +109,7 @@
injectionTarget.inject(instance, creationalContext);
}
- protected BeanManager lookupBeanManager()
+ protected BeanManager lookupBeanManager(Context context)
{
try
{
Modified: arquillian/trunk/testenrichers/ejb/src/main/java/org/jboss/arquillian/testenricher/ejb/EJBInjectionEnricher.java
===================================================================
--- arquillian/trunk/testenrichers/ejb/src/main/java/org/jboss/arquillian/testenricher/ejb/EJBInjectionEnricher.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/testenrichers/ejb/src/main/java/org/jboss/arquillian/testenricher/ejb/EJBInjectionEnricher.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -21,10 +21,10 @@
import java.lang.reflect.Method;
import java.util.List;
-import javax.ejb.EJB;
import javax.naming.InitialContext;
import javax.naming.NamingException;
+import org.jboss.arquillian.spi.Context;
import org.jboss.arquillian.spi.TestEnricher;
/**
@@ -41,25 +41,25 @@
private static final String ANNOTATION_FIELD_MAPPED_NAME = "mappedName";
/* (non-Javadoc)
- * @see org.jboss.arquillian.spi.TestEnricher#enrich(java.lang.Object)
+ * @see org.jboss.arquillian.spi.TestEnricher#enrich(org.jboss.arquillian.spi.Context, java.lang.Object)
*/
- public void enrich(Object testCase)
+ public void enrich(Context context, Object testCase)
{
if(SecurityActions.isClassPresent(ANNOTATION_NAME))
{
- injectClass(testCase);
+ injectClass(context, testCase);
}
}
/* (non-Javadoc)
- * @see org.jboss.arquillian.spi.TestEnricher#resolve(java.lang.reflect.Method)
+ * @see org.jboss.arquillian.spi.TestEnricher#resolve(org.jboss.arquillian.spi.Context, java.lang.reflect.Method)
*/
- public Object[] resolve(Method method)
+ public Object[] resolve(Context context, Method method)
{
return new Object[method.getParameterTypes().length];
}
- protected void injectClass(Object testCase)
+ protected void injectClass(Context context, Object testCase)
{
try
{
@@ -72,7 +72,7 @@
for(Field field : annotatedFields)
{
- Object ejb = lookupEJB(field.getType());
+ Object ejb = lookupEJB(context, field.getType());
field.set(testCase, ejb);
}
@@ -90,7 +90,7 @@
{
throw new RuntimeException("@EJB only allowed on 'set' methods");
}
- Object ejb = lookupEJB(method.getParameterTypes()[0]);
+ Object ejb = lookupEJB(context, method.getParameterTypes()[0]);
method.invoke(testCase, ejb);
}
@@ -101,28 +101,28 @@
}
}
- protected Object lookupEJB(Class<?> fieldType) throws Exception
+ protected Object lookupEJB(Context context, Class<?> fieldType) throws Exception
{
// TODO: figure out test context ?
- InitialContext context = createContext();
+ InitialContext initcontext = createContext(context);
try
{
- return context.lookup("java:global/test.ear/test/" + fieldType.getSimpleName() + "Bean");
+ return initcontext.lookup("java:global/test.ear/test/" + fieldType.getSimpleName() + "Bean");
}
catch (NamingException e)
{
try
{
- return context.lookup("test/" + fieldType.getSimpleName() + "Bean/local");
+ return initcontext.lookup("test/" + fieldType.getSimpleName() + "Bean/local");
}
catch (NamingException e2)
{
- return context.lookup("test/" + fieldType.getSimpleName() + "Bean/remote");
+ return initcontext.lookup("test/" + fieldType.getSimpleName() + "Bean/remote");
}
}
}
- protected InitialContext createContext() throws Exception
+ protected InitialContext createContext(Context context) throws Exception
{
return new InitialContext();
}
Modified: arquillian/trunk/testenrichers/resource/src/main/java/org/jboss/arquillian/testenricher/resource/ResourceInjectionEnricher.java
===================================================================
--- arquillian/trunk/testenrichers/resource/src/main/java/org/jboss/arquillian/testenricher/resource/ResourceInjectionEnricher.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/testenrichers/resource/src/main/java/org/jboss/arquillian/testenricher/resource/ResourceInjectionEnricher.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -24,6 +24,7 @@
import javax.annotation.Resource;
import javax.naming.InitialContext;
+import org.jboss.arquillian.spi.Context;
import org.jboss.arquillian.spi.TestEnricher;
/**
@@ -38,9 +39,9 @@
private static final String ANNOTATION_NAME = "javax.annotation.Resource";
/* (non-Javadoc)
- * @see org.jboss.arquillian.spi.TestEnricher#enrich(java.lang.Object)
+ * @see org.jboss.arquillian.spi.TestEnricher#enrich(org.jboss.arquillian.spi.Context, java.lang.Object)
*/
- public void enrich(Object testCase)
+ public void enrich(Context context, Object testCase)
{
if(SecurityActions.isClassPresent(ANNOTATION_NAME))
{
@@ -49,9 +50,9 @@
}
/* (non-Javadoc)
- * @see org.jboss.arquillian.spi.TestEnricher#resolve(java.lang.reflect.Method)
+ * @see org.jboss.arquillian.spi.TestEnricher#resolve(org.jboss.arquillian.spi.Context, java.lang.reflect.Method)
*/
- public Object[] resolve(Method method)
+ public Object[] resolve(Context context, Method method)
{
return new Object[method.getParameterTypes().length];
}
Modified: arquillian/trunk/testng/src/main/java/org/jboss/arquillian/testng/Arquillian.java
===================================================================
--- arquillian/trunk/testng/src/main/java/org/jboss/arquillian/testng/Arquillian.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/testng/src/main/java/org/jboss/arquillian/testng/Arquillian.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -24,6 +24,7 @@
import org.jboss.arquillian.spi.TestMethodExecutor;
import org.jboss.arquillian.spi.TestResult;
import org.jboss.arquillian.spi.TestRunnerAdaptor;
+import org.jboss.arquillian.spi.util.TestEnrichers;
import org.testng.IHookCallBack;
import org.testng.IHookable;
import org.testng.ITestResult;
@@ -33,6 +34,7 @@
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.BeforeSuite;
+import org.testng.annotations.DataProvider;
/**
* Arquillian
@@ -42,6 +44,8 @@
*/
public abstract class Arquillian implements IHookable
{
+ public static final String ARQUILLIAN_DATA_PROVIDER = "ARQUILLIAN_DATA_PROVIDER";
+
private static ThreadLocal<TestRunnerAdaptor> deployableTest = new ThreadLocal<TestRunnerAdaptor>();
@BeforeSuite(alwaysRun = true)
@@ -99,7 +103,27 @@
public void invoke() throws Throwable
{
callback.runTestMethod(testResult);
+
+ clearParameters(testResult);
}
+
+ private void clearParameters(final ITestResult testResult)
+ {
+ // clear parameters. they can be contextual and might fail TestNG during the report writing.
+ Object[] parameters = testResult.getParameters();
+ for(int i = 0; parameters != null && i < parameters.length; i++)
+ {
+ Object parameter = parameters[i];
+ if(parameter != null)
+ {
+ parameters[i] = parameter.getClass().getName();
+ }
+ else
+ {
+ parameters[i] = "null";
+ }
+ }
+ }
public Method getMethod()
{
@@ -121,4 +145,14 @@
testResult.setThrowable(e);
}
}
+
+ @DataProvider(name = Arquillian.ARQUILLIAN_DATA_PROVIDER)
+ public Object[][] arquillianArgumentProvider(Method method)
+ {
+ Object[] parameterValues = TestEnrichers.enrich(deployableTest.get().getActiveContext(), method);
+ Object[][] values = new Object[1][method.getParameterTypes().length];
+ values[0] = parameterValues;
+
+ return values;
+ }
}
Modified: arquillian/trunk/testng/src/main/java/org/jboss/arquillian/testng/TestEnricherDataProvider.java
===================================================================
--- arquillian/trunk/testng/src/main/java/org/jboss/arquillian/testng/TestEnricherDataProvider.java 2010-04-24 20:40:20 UTC (rev 4328)
+++ arquillian/trunk/testng/src/main/java/org/jboss/arquillian/testng/TestEnricherDataProvider.java 2010-04-24 20:48:13 UTC (rev 4329)
@@ -18,6 +18,7 @@
import java.lang.reflect.Method;
+import org.jboss.arquillian.spi.Context;
import org.jboss.arquillian.spi.util.TestEnrichers;
import org.testng.annotations.DataProvider;
@@ -34,7 +35,7 @@
@DataProvider(name = PROVIDER_NAME)
public static Object[][] enrich(Method method)
{
- Object[] parameterValues = TestEnrichers.enrich(method);
+ Object[] parameterValues = TestEnrichers.enrich(null, method);
Object[][] values = new Object[1][method.getParameterTypes().length];
values[0] = parameterValues;
More information about the jboss-svn-commits
mailing list