[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