[jboss-svn-commits] JBoss Common SVN: r4774 - in arquillian/trunk/containers/reloaded-embedded-1: src/main/java/org/jboss/arquillian/container/reloaded/embedded_1 and 2 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sun Jul 18 14:47:23 EDT 2010
Author: ALRubinger
Date: 2010-07-18 14:47:23 -0400 (Sun, 18 Jul 2010)
New Revision: 4774
Added:
arquillian/trunk/containers/reloaded-embedded-1/src/main/resources/shrinkwrap-deployer-jboss-beans.xml
Modified:
arquillian/trunk/containers/reloaded-embedded-1/pom.xml
arquillian/trunk/containers/reloaded-embedded-1/src/main/java/org/jboss/arquillian/container/reloaded/embedded_1/ReloadedContainer.java
arquillian/trunk/containers/reloaded-embedded-1/src/test/java/org/jboss/arquillian/container/reloaded/embedded_1/ReloadedIntegrationTestCase.java
Log:
[ARQ-210] Use ShrinkWrapDeployer from shrinkwrap-vdf extension
Modified: arquillian/trunk/containers/reloaded-embedded-1/pom.xml
===================================================================
--- arquillian/trunk/containers/reloaded-embedded-1/pom.xml 2010-07-18 17:57:58 UTC (rev 4773)
+++ arquillian/trunk/containers/reloaded-embedded-1/pom.xml 2010-07-18 18:47:23 UTC (rev 4774)
@@ -70,6 +70,12 @@
<version>${version.org.jboss.threads}</version>
<scope>provided</scope>
</dependency>
+
+ <dependency>
+ <groupId>org.jboss.shrinkwrap</groupId>
+ <artifactId>shrinkwrap-extension-vdf</artifactId>
+ <scope>provided</scope>
+ </dependency>
<!-- Test Dependencies -->
<dependency>
@@ -84,11 +90,11 @@
<version>${project.version}</version>
<scope>test</scope>
</dependency>
-
+
<dependency>
<groupId>org.jboss.shrinkwrap</groupId>
<artifactId>shrinkwrap-extension-vfs3</artifactId>
- <scope>test</scope>
+ <scope>provided</scope>
</dependency>
</dependencies>
Modified: arquillian/trunk/containers/reloaded-embedded-1/src/main/java/org/jboss/arquillian/container/reloaded/embedded_1/ReloadedContainer.java
===================================================================
--- arquillian/trunk/containers/reloaded-embedded-1/src/main/java/org/jboss/arquillian/container/reloaded/embedded_1/ReloadedContainer.java 2010-07-18 17:57:58 UTC (rev 4773)
+++ arquillian/trunk/containers/reloaded-embedded-1/src/main/java/org/jboss/arquillian/container/reloaded/embedded_1/ReloadedContainer.java 2010-07-18 18:47:23 UTC (rev 4774)
@@ -16,6 +16,8 @@
*/
package org.jboss.arquillian.container.reloaded.embedded_1;
+import java.net.URISyntaxException;
+import java.net.URL;
import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.List;
@@ -31,11 +33,15 @@
import org.jboss.bootstrap.api.lifecycle.LifecycleState;
import org.jboss.bootstrap.api.mc.server.MCServer;
import org.jboss.bootstrap.api.mc.server.MCServerFactory;
+import org.jboss.deployers.client.spi.main.MainDeployer;
+import org.jboss.deployers.vfs.spi.client.VFSDeployment;
+import org.jboss.deployers.vfs.spi.client.VFSDeploymentFactory;
import org.jboss.logging.Logger;
import org.jboss.reloaded.api.ReloadedDescriptors;
-import org.jboss.reloaded.shrinkwrap.api.ShrinkWrapDeployer;
-import org.jboss.reloaded.shrinkwrap.api.ShrinkWrapReloadedDescriptors;
import org.jboss.shrinkwrap.api.Archive;
+import org.jboss.shrinkwrap.vdf.api.ShrinkWrapDeployer;
+import org.jboss.vfs.VFS;
+import org.jboss.vfs.VirtualFile;
/**
* {@link DeployableContainer} implementation to integrate the
@@ -55,6 +61,7 @@
/**
* Logger
*/
+ @SuppressWarnings("unused")
private static final Logger log = Logger.getLogger(ReloadedContainer.class);
/**
@@ -72,6 +79,11 @@
*/
private static final String VALUE_SYSPROP_JBOSSXB_IGNORE_ORDER = "true";
+ /**
+ * Name of the Deployment XML to install the ShrinkWrapDeployer
+ */
+ private static final String FILENAME_SHRINKWRAP_DEPLOYER_XML = "shrinkwrap-deployer-jboss-beans.xml";
+
//-------------------------------------------------------------------------------------||
// Instance Members -------------------------------------------------------------------||
//-------------------------------------------------------------------------------------||
@@ -80,11 +92,21 @@
// Required Implementations -----------------------------------------------------------||
//-------------------------------------------------------------------------------------||
- public void setup(final Context context,final Configuration configuration)
+ /**
+ * {@inheritDoc}
+ * @see org.jboss.arquillian.spi.DeployableContainer#setup(org.jboss.arquillian.spi.Context, org.jboss.arquillian.spi.Configuration)
+ */
+ @Override
+ public void setup(final Context context, final Configuration configuration)
{
//configuration.getContainerConfig(JBossReloadedConfiguration.class);
}
-
+
+ /**
+ * {@inheritDoc}
+ * @see org.jboss.arquillian.spi.DeployableContainer#deploy(org.jboss.arquillian.spi.Context, org.jboss.shrinkwrap.api.Archive)
+ */
+ @Override
public ContainerMethodExecutor deploy(final Context context, final Archive<?> archive) throws DeploymentException
{
// Deploy
@@ -102,6 +124,11 @@
return new LocalMethodExecutor();
}
+ /**
+ * {@inheritDoc}
+ * @see org.jboss.arquillian.spi.DeployableContainer#start(org.jboss.arquillian.spi.Context)
+ */
+ @Override
public void start(Context context) throws LifecycleException
{
// Set up JBossXB
@@ -122,9 +149,6 @@
final List<BootstrapDescriptor> descriptors = server.getConfiguration().getBootstrapDescriptors();
descriptors.add(ReloadedDescriptors.getClassLoadingDescriptor());
descriptors.add(ReloadedDescriptors.getVdfDescriptor());
- descriptors.add(ReloadedDescriptors.getThreadsDescriptor());
- descriptors.add(ShrinkWrapReloadedDescriptors.getTempFileProviderDescriptor());
- descriptors.add(ShrinkWrapReloadedDescriptors.getShrinkWrapDeployerDescriptor());
// Start the server
try
@@ -136,14 +160,50 @@
throw new LifecycleException("Error in starting the Microcontainer server " + server, e);
}
+ // Install the ShrinkWrapDeployer
+ final URL shrinkwrapDeployerJBossBeans = Thread.currentThread().getContextClassLoader()
+ .getResource(FILENAME_SHRINKWRAP_DEPLOYER_XML);
+ assert shrinkwrapDeployerJBossBeans != null : "ShrinkWrap Deployer beans XML not found";
+ final MainDeployer mainDeployer = (MainDeployer) server.getKernel().getController()
+ .getContextByClass(MainDeployer.class).getTarget();
+ final VirtualFile file;
+ try
+ {
+ file = VFS.getChild(shrinkwrapDeployerJBossBeans);
+ }
+ catch (final URISyntaxException e)
+ {
+ throw new LifecycleException("Could not create virtual file for " + shrinkwrapDeployerJBossBeans, e);
+ }
+ if (file == null)
+ {
+ throw new IllegalStateException();
+ }
+ final VFSDeployment deployment = VFSDeploymentFactory.getInstance().createVFSDeployment(file);
+ try
+ {
+ mainDeployer.addDeployment(deployment);
+ mainDeployer.process();
+ mainDeployer.checkComplete();
+ }
+ catch (final org.jboss.deployers.spi.DeploymentException de)
+ {
+ throw new LifecycleException("Could not install ShrinkWrapDeployer", de);
+ }
+
// Get the ShrinkWrapDeployer
- final ShrinkWrapDeployer deployer = (ShrinkWrapDeployer) server.getKernel().getController().getInstalledContext(
- NAME_MC_SHRINKWRAP_DEPLOYER).getTarget();
+ final ShrinkWrapDeployer deployer = (ShrinkWrapDeployer) server.getKernel().getController()
+ .getInstalledContext(NAME_MC_SHRINKWRAP_DEPLOYER).getTarget();
context.add(MCServer.class, server);
context.add(ShrinkWrapDeployer.class, deployer);
}
+ /**
+ * {@inheritDoc}
+ * @see org.jboss.arquillian.spi.DeployableContainer#stop(org.jboss.arquillian.spi.Context)
+ */
+ @Override
public void stop(final Context context) throws LifecycleException
{
final MCServer server = context.get(MCServer.class);
@@ -162,6 +222,11 @@
}
}
+ /**
+ * {@inheritDoc}
+ * @see org.jboss.arquillian.spi.DeployableContainer#undeploy(org.jboss.arquillian.spi.Context, org.jboss.shrinkwrap.api.Archive)
+ */
+ @Override
public void undeploy(Context context, final Archive<?> archive) throws DeploymentException
{
// Undeploy
Added: arquillian/trunk/containers/reloaded-embedded-1/src/main/resources/shrinkwrap-deployer-jboss-beans.xml
===================================================================
--- arquillian/trunk/containers/reloaded-embedded-1/src/main/resources/shrinkwrap-deployer-jboss-beans.xml (rev 0)
+++ arquillian/trunk/containers/reloaded-embedded-1/src/main/resources/shrinkwrap-deployer-jboss-beans.xml 2010-07-18 18:47:23 UTC (rev 4774)
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+
+ Deployment descriptor for the ShrinkWrapDeployer and its dependencies
+
+ -->
+
+<deployment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="urn:jboss:bean-deployer:2.0 bean-deployer_2_0.xsd"
+ xmlns="urn:jboss:bean-deployer:2.0">
+
+ <!-- ShrinkWrapDeployer -->
+ <bean name="ShrinkWrapDeployer" class="org.jboss.shrinkwrap.vdf.impl.ShrinkWrapDeployerImpl">
+ <constructor>
+ <parameter class="org.jboss.deployers.client.spi.main.MainDeployer">
+ <inject />
+ </parameter>
+ <parameter class="org.jboss.vfs.TempFileProvider">
+ <inject />
+ </parameter>
+ </constructor>
+ </bean>
+
+ <!-- Deployment configuration for a VFS TempFileProvider
+
+ <threads xmlns="urn:jboss:threads:2.0">
+ <thread-factory name="org.jboss.reloaded.TempFileThreadFactory"/>
+ <scheduled-thread-pool-executor name="org.jboss.reloaded.TempFileExecutorService">
+ <max-threads count="1" per-cpu="1"/>
+ <thread-factory name="org.jboss.reloaded.TempFileThreadFactory"/>
+ </scheduled-thread-pool-executor>
+ </threads>
+
+ Currently fails with:
+
+ org.jboss.joinpoint.spi.JoinpointException: Constructor not found
+ org.jboss.threads.QueuelessExecutor[int, java.util.concurrent.ThreadFactory] in
+ [ReflectConstructorInfoImpl at 11afd9cc{[ReflectClassInfoImpl at 3003e926{name=java.util.concurrent.ThreadFactory},
+ ReflectClassInfoImpl at 50bfd66a{name=org.jboss.threads.DirectExecutor},
+ ReflectClassInfoImpl at 6295f290{name=java.util.concurrent.Executor}, long]}]
+
+ FIXME: Example on http://community.jboss.org/wiki/ThreadPoolConfiguration might need to be updated
+ Ask DML
+
+ -->
+
+ <!--
+ Define the Executor, but this should really be done in threads.xsd
+ format above
+ TODO Remove this when the above works
+ -->
+ <bean name="org.jboss.shrinkwrap.TempFileExecutorService" class="org.jboss.threads.JBossScheduledThreadPoolExecutor">
+ <constructor>
+ <parameter>1</parameter>
+ </constructor>
+ </bean>
+
+ <bean name="org.jboss.shrinkwrap.TempFileProvider" class="org.jboss.vfs.TempFileProvider">
+ <constructor factoryClass="org.jboss.vfs.TempFileProvider"
+ factoryMethod="create">
+ <parameter>shrinkwrap-</parameter>
+ <parameter>
+ <inject bean="org.jboss.shrinkwrap.TempFileExecutorService" />
+ </parameter>
+ </constructor>
+ </bean>
+
+ </deployment>
\ No newline at end of file
Modified: arquillian/trunk/containers/reloaded-embedded-1/src/test/java/org/jboss/arquillian/container/reloaded/embedded_1/ReloadedIntegrationTestCase.java
===================================================================
--- arquillian/trunk/containers/reloaded-embedded-1/src/test/java/org/jboss/arquillian/container/reloaded/embedded_1/ReloadedIntegrationTestCase.java 2010-07-18 17:57:58 UTC (rev 4773)
+++ arquillian/trunk/containers/reloaded-embedded-1/src/test/java/org/jboss/arquillian/container/reloaded/embedded_1/ReloadedIntegrationTestCase.java 2010-07-18 18:47:23 UTC (rev 4774)
@@ -16,8 +16,6 @@
*/
package org.jboss.arquillian.container.reloaded.embedded_1;
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
import java.util.logging.Logger;
import org.jboss.arquillian.api.Deployment;
@@ -27,6 +25,7 @@
import org.jboss.shrinkwrap.api.ArchivePaths;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.asset.Asset;
+import org.jboss.shrinkwrap.api.asset.StringAsset;
import org.jboss.shrinkwrap.api.spec.JavaArchive;
import org.junit.Assert;
import org.junit.Test;
@@ -60,16 +59,9 @@
public static JavaArchive createDeployment()
{
// Construct a test JAR to install the Lifecycle POJO
- final Asset deploymentXmlAsset = new Asset()
- {
-
- public InputStream openStream()
- {
- return new ByteArrayInputStream(new String(
+ final Asset deploymentXmlAsset = new StringAsset(
"<deployment xmlns=\"urn:jboss:bean-deployer:2.0\"><bean name=\"LifecyclePojo\" class=\""
- + LifecyclePojo.class.getName() + "\" /></deployment>").getBytes());
- }
- };
+ + LifecyclePojo.class.getName() + "\" /></deployment>");
final JavaArchive testJar = ShrinkWrap.create(JavaArchive.class, "pojo.jar").addClass(LifecyclePojo.class).add(
deploymentXmlAsset, ArchivePaths.create("pojo-jboss-beans.xml"));
log.info(testJar.toString(true));
More information about the jboss-svn-commits
mailing list