[jboss-cvs] JBossAS SVN: r97874 - in projects/reloaded/trunk: vdf-bootstrap-minimal and 5 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Dec 16 00:39:14 EST 2009


Author: ALRubinger
Date: 2009-12-16 00:39:13 -0500 (Wed, 16 Dec 2009)
New Revision: 97874

Added:
   projects/reloaded/trunk/vdf-bootstrap-minimal/
   projects/reloaded/trunk/vdf-bootstrap-minimal/pom.xml
   projects/reloaded/trunk/vdf-bootstrap-minimal/src/
   projects/reloaded/trunk/vdf-bootstrap-minimal/src/main/
   projects/reloaded/trunk/vdf-bootstrap-minimal/src/main/java/
   projects/reloaded/trunk/vdf-bootstrap-minimal/src/main/resources/
   projects/reloaded/trunk/vdf-bootstrap-minimal/src/test/
   projects/reloaded/trunk/vdf-bootstrap-minimal/src/test/java/
   projects/reloaded/trunk/vdf-bootstrap-minimal/src/test/java/MainDeployerUnitTest.java
   projects/reloaded/trunk/vdf-bootstrap-minimal/src/test/resources/
   projects/reloaded/trunk/vdf-bootstrap-minimal/src/test/resources/bootstrap.xml
   projects/reloaded/trunk/vdf-bootstrap-minimal/src/test/resources/log4j.xml
   projects/reloaded/trunk/vdf-bootstrap-minimal/src/test/resources/vdf.xml
Log:
[RELOADED-10] Bring up MC+VDF in trim fashion, verify the environment by installing a deployer and processing a deployment


Property changes on: projects/reloaded/trunk/vdf-bootstrap-minimal
___________________________________________________________________
Name: svn:ignore
   + target
.settings
.classpath
.project
eclipse-target
target-eclipse


Added: projects/reloaded/trunk/vdf-bootstrap-minimal/pom.xml
===================================================================
--- projects/reloaded/trunk/vdf-bootstrap-minimal/pom.xml	                        (rev 0)
+++ projects/reloaded/trunk/vdf-bootstrap-minimal/pom.xml	2009-12-16 05:39:13 UTC (rev 97874)
@@ -0,0 +1,174 @@
+<!-- 
+  vi:ts=2:sw=2:expandtab 
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <parent>
+    <groupId>org.jboss.reloaded</groupId>
+    <artifactId>jboss-reloaded-build</artifactId>
+    <version>0.1.0-SNAPSHOT</version>
+    <relativePath>../build/pom.xml</relativePath>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+  <artifactId>jboss-reloaded-vdf-bootstrap-minimal</artifactId>
+  <version>0.1.0-SNAPSHOT</version>
+  <packaging>jar</packaging>
+  <name>JBoss Reloaded VDF Bootstrap (Minimal)</name>
+  <url>http://www.jboss.org</url>
+  <description>
+  </description>
+
+  <properties>
+    <!-- Versioning -->
+    <version.org.jboss.bootstrap_jboss.bootstrap.impl.mc>2.0.0-alpha-3</version.org.jboss.bootstrap_jboss.bootstrap.impl.mc>
+  </properties>
+
+  <build>
+
+    <plugins>
+    
+      <!-- Compiler -->
+      <plugin>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <inherited>true</inherited>
+        <configuration>
+          <source>1.6</source>
+          <target>1.6</target>
+          <showDeprecation>false</showDeprecation>
+          <showWarnings>true</showWarnings>
+          <optimize>true</optimize>
+          <compilerVersion>1.6</compilerVersion>
+          <fork>true</fork>
+          <argLine>-Xmx512M</argLine>
+          <executable>${JAVA_HOME}/bin/javac</executable>
+        </configuration>
+      </plugin>
+
+      <!-- Surefire -->
+      <plugin>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <configuration>
+          <redirectTestOutputToFile>true</redirectTestOutputToFile>
+          <trimStackTrace>false</trimStackTrace>
+          <printSummary>true</printSummary>
+          <includes>
+            <include>**/*UnitTest.java</include>
+          </includes>
+          <forkMode>always</forkMode>
+        </configuration>
+      </plugin>
+
+      <!-- Enforce Maven Environment -->
+      <plugin>
+        <artifactId>maven-enforcer-plugin
+        </artifactId>
+        <executions>
+          <execution>
+            <id>enforce-maven-environment</id>
+            <goals>
+              <goal>enforce</goal>
+            </goals>
+          </execution>
+        </executions>
+        <configuration>
+          <rules>
+            <requireMavenVersion>
+              <version>[2.0.9,2.2.1)</version> <!-- Must be Maven 2.0.9 >= x > 2.2.1  -->
+            </requireMavenVersion>
+            <requireJavaVersion>
+              <version>1.6.0</version> <!-- Must be JDK6 -->
+            </requireJavaVersion>
+          </rules>
+        </configuration>
+      </plugin>
+
+    </plugins>
+
+  </build>
+
+  <dependencyManagement>
+  </dependencyManagement>
+
+  <dependencies>
+
+    <!-- 
+    Required dependencies (as support for VDF is not implicit
+    in jboss-bootstrap-impl-mc alone
+     -->
+    <dependency>
+      <groupId>org.jboss.bootstrap</groupId>
+      <artifactId>jboss-bootstrap-impl-mc</artifactId>
+      <version>${version.org.jboss.bootstrap_jboss.bootstrap.impl.mc}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.deployers</groupId>
+      <artifactId>jboss-deployers-vfs</artifactId>
+      <version>2.2.0-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss</groupId>
+      <artifactId>jbossxb</artifactId>
+      <version>2.0.2.Beta2</version>
+    </dependency>
+
+      <!-- 
+      TODO: Should be a VFS dependency not declared?  Or is optional?
+      Needed to prevent via VFS:
+      java.lang.NoClassDefFoundError: org/jboss/util/collection/ConcurrentNavigableMap 
+      at org.jboss.virtual.plugins.context.file.FileSystemContextFactory.getVFS(FileSystemContextFactory.java:65)
+      at org.jboss.virtual.VFS.getVFS(VFS.java:187)
+      at org.jboss.virtual.VFS.createNewRoot(VFS.java:202)
+      at VdfTestCase.testVdfBoot(VdfTestCase.java:111)
+      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+      at java.lang.reflect.Method.invoke(Method.java:597)
+      at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
+      at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
+      at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
+      at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
+      at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
+      at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
+      at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
+      at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
+      at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
+      at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
+      at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
+      at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
+      at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46)
+      at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
+      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
+      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
+      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
+      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
+    Caused by: java.lang.ClassNotFoundException: org.jboss.util.collection.ConcurrentNavigableMap
+      at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
+      at java.security.AccessController.doPrivileged(Native Method)
+      at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
+      at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
+      at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
+      at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
+      at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
+      ... 26 more -->
+    <dependency>
+      <groupId>org.jboss</groupId>
+      <artifactId>jboss-common-core</artifactId>
+      <version>2.2.14.GA</version>
+    </dependency>
+
+    <!-- Test Dependencies -->
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>4.7</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.shrinkwrap</groupId>
+      <artifactId>shrinkwrap-impl-base</artifactId>
+      <version>1.0.0-alpha-2</version>
+      <scope>test</scope>
+    </dependency>
+
+  </dependencies>
+</project>

Added: projects/reloaded/trunk/vdf-bootstrap-minimal/src/test/java/MainDeployerUnitTest.java
===================================================================
--- projects/reloaded/trunk/vdf-bootstrap-minimal/src/test/java/MainDeployerUnitTest.java	                        (rev 0)
+++ projects/reloaded/trunk/vdf-bootstrap-minimal/src/test/java/MainDeployerUnitTest.java	2009-12-16 05:39:13 UTC (rev 97874)
@@ -0,0 +1,254 @@
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.URL;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+
+import junit.framework.TestCase;
+
+import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
+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.Deployment;
+import org.jboss.deployers.client.spi.main.MainDeployer;
+import org.jboss.deployers.spi.DeploymentException;
+import org.jboss.deployers.spi.deployer.Deployer;
+import org.jboss.deployers.spi.deployer.helpers.AbstractDeployer;
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.deployers.vfs.spi.client.VFSDeployment;
+import org.jboss.deployers.vfs.spi.client.VFSDeploymentFactory;
+import org.jboss.logging.Logger;
+import org.jboss.shrinkwrap.api.Archives;
+import org.jboss.shrinkwrap.api.exporter.ZipExporter;
+import org.jboss.shrinkwrap.api.spec.JavaArchive;
+import org.jboss.shrinkwrap.impl.base.io.IOUtil;
+import org.jboss.virtual.VFS;
+import org.jboss.virtual.VirtualFile;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+/**
+ * Ensures that we can bring up MC and the Virtual Deployers Framework
+ * in an isolated context, supporting installation of new {@link Deployer}
+ * instances into the chain which will be used to process incoming {@link Deployment}s
+ * made into the {@link MainDeployer}.
+ * 
+ * @author <a href="mailto:andrew.rubinger at jboss.org">ALR</a>
+ * @version $Revision: $
+ */
+public class MainDeployerUnitTest
+{
+
+   //-------------------------------------------------------------------------------------||
+   // Class Members ----------------------------------------------------------------------||
+   //-------------------------------------------------------------------------------------||
+
+   /**
+    * Logger
+    */
+   private static final Logger log = Logger.getLogger(MainDeployerUnitTest.class);
+
+   /**
+    * The Server
+    */
+   private static MCServer server;
+
+   /**
+    * Name of the system property signaling JBossXB to ignore order
+    */
+   private static final String NAME_SYSPROP_JBOSSXB_IGNORE_ORDER = "xb.builder.useUnorderedSequence";
+
+   /**
+    * Value to set for JBossXB ordering
+    */
+   private static final String VALUE_SYSPROP_JBOSSXB_IGNORE_ORDER = "true";
+
+   /**
+    * Name of the archive we'll deploy
+    */
+   private static final String NAME_ARCHIVE = "testDeployment.jar";
+
+   /**
+    * MC bean name of the {@link MainDeployer}
+    */
+   private static final String NAME_MC_MAIN_DEPLOYER = "MainDeployer";
+
+   /**
+    * Extension to give to TMP files
+    */
+   private static final String EXTENSION_TMP = ".tmp";
+
+   //-------------------------------------------------------------------------------------||
+   // Instance Members -------------------------------------------------------------------||
+   //-------------------------------------------------------------------------------------||
+
+   //-------------------------------------------------------------------------------------||
+   // Lifecycle --------------------------------------------------------------------------||
+   //-------------------------------------------------------------------------------------||
+
+   /**
+    * Setup JBossXB
+    * TODO @see comments below so that this step is not necessary
+    */
+   @BeforeClass
+   public static void setupJBossXb()
+   {
+      AccessController.doPrivileged(new PrivilegedAction<Void>()
+      {
+         public Void run()
+         {
+            // Must use unordered sequence else JBossXB will explode
+            //TODO Define a proper vfs.xml which is properly ordered
+            System.setProperty(NAME_SYSPROP_JBOSSXB_IGNORE_ORDER, VALUE_SYSPROP_JBOSSXB_IGNORE_ORDER);
+            return null;
+         }
+      });
+   }
+
+   /**
+    * Creates the server
+    */
+   @BeforeClass
+   public static void createAndConfigureServer()
+   {
+      // Create a server
+      final MCServer mcServer = MCServerFactory.createServer();
+      // Set the bootstrap home
+      final URL bootstrapHome = getBootstrapHome();
+      log.info("Using bootstrap home: " + bootstrapHome.toExternalForm());
+      mcServer.getConfiguration().bootstrapHome(bootstrapHome);
+      // Set
+      server = mcServer;
+   }
+
+   /**
+    * Starts the server before each test
+    * @throws Exception
+    */
+   @Before
+   public void startServer() throws Exception
+   {
+      server.start();
+   }
+
+   /**
+    * Stops the server after each test
+    * @throws Exception
+    */
+   @After
+   public void stopServer() throws Exception
+   {
+      if (server != null && server.getState().equals(LifecycleState.STARTED))
+      {
+         server.stop();
+      }
+   }
+
+   //-------------------------------------------------------------------------------------||
+   // Tests ------------------------------------------------------------------------------||
+   //-------------------------------------------------------------------------------------||
+
+   @Test
+   public void testVdfBoot() throws Throwable
+   {
+
+      // Get the MainDeployer
+      MainDeployer mainDeployer = (MainDeployer) server.getKernel().getController().getInstalledContext(
+            NAME_MC_MAIN_DEPLOYER).getTarget();
+      TestCase.assertNotNull(MainDeployer.class.getName() + " instance was not installed into MC", mainDeployer);
+
+      // Install a caching deployer which will remember the last deployment
+      final CachingDeployer deployer = new CachingDeployer();
+      final String deployerName = deployer.getClass().getSimpleName();
+      final BeanMetaDataBuilder bmdb = BeanMetaDataBuilder.createBuilder(deployerName, deployer.getClass().getName());
+      server.getKernel().getController().install(bmdb.getBeanMetaData(), deployer);
+
+      // Construct a test JAR
+      final JavaArchive cachingDeployerJar = Archives.create(NAME_ARCHIVE, JavaArchive.class);
+
+      // Flush out to a real File
+      //TODO Remove this bit when SHRINKWRAP-87 is completed, and use the built-in util
+      final File tmpFile = File.createTempFile(cachingDeployerJar.getName(), EXTENSION_TMP);
+      tmpFile.deleteOnExit();
+      final OutputStream out = new FileOutputStream(tmpFile);
+      final InputStream in = cachingDeployerJar.as(ZipExporter.class).exportZip();
+      try
+      {
+         IOUtil.copy(in, out);
+      }
+      finally
+      {
+         // Close the streams and ignore any problems doing so
+         try
+         {
+            in.close();
+         }
+         catch (IOException ignore)
+         {
+
+         }
+         try
+         {
+            out.close();
+         }
+         catch (IOException ignore)
+         {
+
+         }
+      }
+
+      // Deploy the test JAR
+      final VirtualFile vFile = VFS.createNewRoot(tmpFile.toURI());
+      final VFSDeployment deployment = VFSDeploymentFactory.getInstance().createVFSDeployment(vFile);
+      mainDeployer.addDeployment(deployment);
+      mainDeployer.process();
+      mainDeployer.checkComplete();
+
+      // Obtain the last deployed
+      DeploymentUnit lastDeployed = deployer.lastDeployed;
+      TestCase.assertEquals(vFile.toURI().toURL().toExternalForm(), lastDeployed.getName());
+   }
+
+   //-------------------------------------------------------------------------------------||
+   // Functional Methods -----------------------------------------------------------------||
+   //-------------------------------------------------------------------------------------||
+
+   /**
+    * Simple {@link Deployer} to cache and make accessible the last-deployed
+    * {@link DeploymentUnit}.  Used to ensure that we can install deployers 
+    * into the chain and that they'll process new {@link Deployment}s.
+    */
+   public static class CachingDeployer extends AbstractDeployer
+   {
+
+      /**
+       * The last unit deployed
+       */
+      DeploymentUnit lastDeployed;
+
+      public void deploy(final DeploymentUnit unit) throws DeploymentException
+      {
+         log.info("Deploying: " + unit);
+         lastDeployed = unit;
+      }
+
+   }
+
+   //-------------------------------------------------------------------------------------||
+   // Internal Helper Methods ------------------------------------------------------------||
+   //-------------------------------------------------------------------------------------||
+
+   /**
+    * Obtains the location of the bootstrap home
+    */
+   private static URL getBootstrapHome()
+   {
+      return MainDeployerUnitTest.class.getProtectionDomain().getCodeSource().getLocation();
+   }
+}

Added: projects/reloaded/trunk/vdf-bootstrap-minimal/src/test/resources/bootstrap.xml
===================================================================
--- projects/reloaded/trunk/vdf-bootstrap-minimal/src/test/resources/bootstrap.xml	                        (rev 0)
+++ projects/reloaded/trunk/vdf-bootstrap-minimal/src/test/resources/bootstrap.xml	2009-12-16 05:39:13 UTC (rev 97874)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<bootstrap xmlns="urn:jboss:bootstrap:1.0">
+
+
+  <url>vdf.xml</url>
+  
+
+</bootstrap>
\ No newline at end of file

Added: projects/reloaded/trunk/vdf-bootstrap-minimal/src/test/resources/log4j.xml
===================================================================
--- projects/reloaded/trunk/vdf-bootstrap-minimal/src/test/resources/log4j.xml	                        (rev 0)
+++ projects/reloaded/trunk/vdf-bootstrap-minimal/src/test/resources/log4j.xml	2009-12-16 05:39:13 UTC (rev 97874)
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
+
+  <!-- ================================= -->
+  <!-- Preserve messages in a local file -->
+  <!-- ================================= -->
+
+  <!-- A time/date based rolling appender -->
+  <appender name="FILE" class="org.jboss.logging.appender.DailyRollingFileAppender">
+    <param name="File" value="target/test.log"/>
+    <param name="Threshold" value="INFO"/>
+    <param name="Append" value="false"/>
+
+    <!-- Rollover at midnight each day -->
+    <param name="DatePattern" value="'.'yyyy-MM-dd"/>
+
+    <!-- Rollover at the top of each hour
+    <param name="DatePattern" value="'.'yyyy-MM-dd-HH"/>
+    -->
+
+    <layout class="org.apache.log4j.PatternLayout">
+      <!-- The default pattern: Date Priority [Category] Message\n -->
+      <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
+
+      <!-- The full pattern: Date MS Priority [Category] (Thread:NDC) Message\n
+      <param name="ConversionPattern" value="%d %-5r %-5p [%c] (%t:%x) %m%n"/>
+       -->
+    </layout>     
+  </appender>
+
+  <!-- ============================== -->
+  <!-- Append messages to the console -->
+  <!-- ============================== -->
+
+  <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
+    <param name="Target" value="System.out"/>
+
+    <layout class="org.apache.log4j.PatternLayout">
+      <!-- The default pattern: Date Priority [Category] Message\n -->
+      <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
+    </layout>
+  </appender>
+
+
+  <!-- ================ -->
+  <!-- Limit categories -->
+  <!-- ================ -->
+  
+  <category name="org.jboss">
+    <priority value="INFO"/>
+  </category>  
+  
+  <category name="org.jnp">
+    <priority value="INFO"/>
+  </category>
+  
+  <category name="org.jboss.bootstrap">
+    <priority value="DEBUG"/>
+  </category>
+  
+  <!-- ======================= -->
+  <!-- Setup the Root category -->
+  <!-- ======================= -->
+
+  <root>
+    <appender-ref ref="CONSOLE"/>
+    <appender-ref ref="FILE"/>
+  </root>
+  
+</log4j:configuration>

Added: projects/reloaded/trunk/vdf-bootstrap-minimal/src/test/resources/vdf.xml
===================================================================
--- projects/reloaded/trunk/vdf-bootstrap-minimal/src/test/resources/vdf.xml	                        (rev 0)
+++ projects/reloaded/trunk/vdf-bootstrap-minimal/src/test/resources/vdf.xml	2009-12-16 05:39:13 UTC (rev 97874)
@@ -0,0 +1,121 @@
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+
+   <!-- The ManagedObjectFactory -->
+   <bean name="ManagedObjectFactory">
+      <constructor factoryClass="org.jboss.managed.api.factory.ManagedObjectFactory" factoryMethod="getInstance"/>
+      <!-- Accept any implementor of InstanceClassFactory -->
+      <incallback method="addInstanceClassFactory"/>
+      <uncallback method="removeInstanceClassFactory"/>
+   </bean>
+
+   <!-- The MainDeployer -->
+   <bean name="MainDeployer" class="org.jboss.deployers.plugins.main.MainDeployerImpl">
+      <property name="structuralDeployers"><inject bean="StructuralDeployers"/></property>
+      <property name="deployers"><inject bean="Deployers"/></property>
+      <property name="mgtDeploymentCreator"><inject bean="ManagedDeploymentCreator"/></property>
+   </bean>
+
+   <!-- The ManagedDeploymentCreator implementation -->
+   <bean name="ManagedDeploymentCreator" class="org.jboss.deployers.plugins.managed.DefaultManagedDeploymentCreator" />
+   <!-- The ManagedObjectCreator implementation -->
+   <bean name="ManagedObjectCreator" class="org.jboss.deployers.spi.deployer.helpers.DefaultManagedObjectCreator">
+      <property name="mof"><inject bean="ManagedObjectFactory"/></property>
+   </bean>
+   
+   <!-- The holder for deployers that determine structure -->
+   <bean name="StructuralDeployers" class="org.jboss.deployers.vfs.plugins.structure.VFSStructuralDeployersImpl">
+      <property name="structureBuilder">
+         <!-- The consolidator of the structure information -->
+         <bean name="StructureBuilder" class="org.jboss.deployers.vfs.plugins.structure.VFSStructureBuilder"/>
+      </property>
+      <!-- Accept any implementor of structure deployer -->
+      <incallback method="addDeployer"/>
+      <uncallback method="removeDeployer"/>
+   </bean>
+
+   <!-- The holder for deployers that do real deployment -->
+   <bean name="Deployers" class="org.jboss.deployers.plugins.deployers.DeployersImpl">
+      <constructor><parameter><inject bean="jboss.kernel:service=KernelController"/></parameter></constructor>
+      <property name="mgtObjectCreator"><inject bean="ManagedObjectCreator"/></property>
+      <!-- Accept any implementor of deployer -->
+      <incallback method="addDeployer"/>
+      <uncallback method="removeDeployer"/>
+   </bean>
+
+   <!-- A declared structure descriptor deployer -->
+   <bean name="DeclaredStructure" class="org.jboss.deployers.vfs.plugins.structure.explicit.DeclaredStructure"/>
+
+    <!-- JAR Structure -->
+    <bean name="JARStructure" class="org.jboss.deployers.vfs.plugins.structure.jar.JARStructure">
+       <property name="candidateStructureVisitorFactory">
+          <!-- Any file that is not an ordinary directory is a candidate -->
+          <bean name="JARStructureCandidates" class="org.jboss.deployers.vfs.spi.structure.helpers.DefaultCandidateStructureVisitorFactory">
+             <!-- A filter to exclude some obvious non-subdeployments -->
+             <property name="filter">
+                <bean name="JARFilter" class="org.jboss.virtual.plugins.vfs.helpers.SuffixesExcludeFilter">
+                   <constructor><parameter>
+                      <list elementClass="java.lang.String">
+                         <!-- Exclude class files as subdeployments -->
+                         <value>.class</value>
+                      </list>
+                   </parameter></constructor>
+                </bean>
+             </property>
+          </bean>
+       </property>
+    </bean>
+
+    <!-- File Structure -->
+    <bean name="FileStructure" class="org.jboss.deployers.vfs.plugins.structure.file.FileStructure">
+       <!-- Unless specified the default list of suffixes is -service.xml, -beans.xml, -ds.xml, -aop.xml -->
+       <constructor>
+          <parameter>
+             <set elementClass="java.lang.String">
+                <value>-service.xml</value>
+                <value>-beans.xml</value>
+                <value>-ds.xml</value>
+                <value>-aop.xml</value>
+             </set>
+          </parameter>
+       </constructor>
+    </bean>
+
+   <!-- POJO Deployment -->
+   <bean name="BeanDeployer" class="org.jboss.deployers.vfs.deployer.kernel.BeanDeployer"/>
+   <bean name="KernelDeploymentDeployer" class="org.jboss.deployers.vfs.deployer.kernel.KernelDeploymentDeployer"/>
+   <bean name="BeanMetaDataDeployer" class="org.jboss.deployers.vfs.deployer.kernel.BeanMetaDataDeployer">
+      <constructor><parameter class="org.jboss.dependency.spi.Controller"><inject bean="jboss.kernel:service=KernelController"/></parameter></constructor>
+      <!-- Accept any implementor of KernelControllerContextCreator -->
+      <incallback method="addControllerContextCreator"/>
+      <uncallback method="removeControllerContextCreator"/>
+   </bean>
+
+   <!-- VFS ClassLoader -->
+   <bean name="ClassLoaderSystem" class="org.jboss.classloader.spi.ClassLoaderSystem">
+      <constructor factoryClass="org.jboss.classloader.spi.ClassLoaderSystem" factoryMethod="getInstance"/>
+   </bean>
+   <bean name="ClassLoading" class="org.jboss.classloading.spi.dependency.ClassLoading">
+      <incallback method="addModule" state="Configured"/>
+      <uncallback method="removeModule" state="Configured"/>
+   </bean>
+   <bean name="ClassLoadingMetaDataParser" class="org.jboss.deployers.vfs.spi.deployer.SchemaResolverDeployer">
+      <constructor>
+         <parameter>org.jboss.classloading.spi.metadata.ClassLoadingMetaData</parameter>
+      </constructor>
+      <property name="name">jboss-classloading.xml</property>
+      <property name="buildManagedObject">true</property>
+   </bean>
+   <bean name="ClassLoadingDefaultDeployer" class="org.jboss.deployers.plugins.classloading.ClassLoadingDefaultDeployer">
+      <property name="defaultMetaData">
+         <classloading xmlns="urn:jboss:classloading:1.0" export-all="NON_EMPTY" import-all="true"/>
+      </property>
+   </bean>
+   <bean name="ClassLoaderClassPathDeployer" class="org.jboss.deployers.vfs.plugins.classloader.VFSClassLoaderClassPathDeployer"/>
+   <bean name="ClassLoaderDescribeDeployer" class="org.jboss.deployers.vfs.plugins.classloader.VFSClassLoaderDescribeDeployer">
+      <property name="classLoading"><inject bean="ClassLoading"/></property>
+   </bean>
+   <bean name="ClassLoaderDeployer" class="org.jboss.deployers.plugins.classloading.AbstractLevelClassLoaderSystemDeployer">
+      <property name="classLoading"><inject bean="ClassLoading"/></property>
+      <property name="system"><inject bean="ClassLoaderSystem"/></property>
+   </bean>
+</deployment>




More information about the jboss-cvs-commits mailing list