[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