[jboss-cvs] JBossAS SVN: r59856 - in trunk/embedded: src/main/java/org/jboss/embedded and 4 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Jan 19 13:50:13 EST 2007


Author: bill.burke at jboss.com
Date: 2007-01-19 13:50:13 -0500 (Fri, 19 Jan 2007)
New Revision: 59856

Added:
   trunk/embedded/bin2.bat
   trunk/embedded/binary.bat
   trunk/embedded/compiler.bat
   trunk/embedded/embedded.bat
   trunk/embedded/simple-beans.xml
   trunk/embedded/src/main/java/org/jboss/embedded/BeanCompiler.java
   trunk/embedded/src/main/java/org/jboss/embedded/BinaryBootstrap.java
   trunk/embedded/src/main/resources/javase/conf/bootstrap-all-beans.xml
   trunk/embedded/src/test/java/org/jboss/embedded/test/BeanCompilerTester.java
   trunk/embedded/src/test/java/org/jboss/embedded/test/SimpleBean.java
   trunk/embedded/src/test/java/org/jboss/embedded/test/TimedBinaryBootstrap.java
   trunk/embedded/src/test/java/org/jboss/embedded/test/TimedBootstrap.java
Modified:
   trunk/embedded/build.xml
   trunk/embedded/src/main/java/org/jboss/embedded/Bootstrap.java
   trunk/embedded/src/test/java/org/jboss/embedded/test/bootstrap/unit/BootstrapTestCase.java
   trunk/embedded/src/test/java/org/jboss/embedded/test/ejb/unit/EjbTestCase.java
Log:
add readResolve so that == can be used on serialized instance

Added: trunk/embedded/bin2.bat
===================================================================
--- trunk/embedded/bin2.bat	                        (rev 0)
+++ trunk/embedded/bin2.bat	2007-01-19 18:50:13 UTC (rev 59856)
@@ -0,0 +1,8 @@
+set CLASSPATH=output\lib\embedded-jboss\lib\jboss-embedded-all.jar;output\lib\embedded-jboss\lib\hibernate-all.jar;output\lib\embedded-jboss\lib\thirdparty-all.jar;output\lib\embedded-jboss\bootstrap;output\test-classes
+
+rem java -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_shmem,server=y,suspend=y,address=javadebug org.jboss.embedded.test.BeanCompilerTester simple-beans.xml
+
+java org.jboss.embedded.test.BeanCompilerTester simple-beans.xml
+
+
+

Added: trunk/embedded/binary.bat
===================================================================
--- trunk/embedded/binary.bat	                        (rev 0)
+++ trunk/embedded/binary.bat	2007-01-19 18:50:13 UTC (rev 59856)
@@ -0,0 +1,7 @@
+set CLASSPATH=output\lib\embedded-jboss\lib\jboss-embedded-all.jar;output\lib\embedded-jboss\lib\hibernate-all.jar;output\lib\embedded-jboss\lib\thirdparty-all.jar;output\lib\embedded-jboss\bootstrap;output\test-classes
+
+rem java -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_shmem,server=y,suspend=y,address=javadebug org.jboss.embedded.test.TimedBinaryBootstrap
+java org.jboss.embedded.test.TimedBinaryBootstrap
+
+
+

Modified: trunk/embedded/build.xml
===================================================================
--- trunk/embedded/build.xml	2007-01-19 18:42:22 UTC (rev 59855)
+++ trunk/embedded/build.xml	2007-01-19 18:50:13 UTC (rev 59856)
@@ -334,6 +334,9 @@
          <fileset dir="${resources}">
             <include name="stylesheets/*"/>
          </fileset>
+         <fileset dir="${jboss.system.root}/resources">
+            <include name="org/jboss/*"/>
+         </fileset>
          <zipfileset src="${jboss.ejb3.lib}/jboss-ejb3.jar"/>
          <zipfileset src="${jboss.ejb3.lib}/jboss-annotations-ejb3.jar"/>
          <zipfileset src="${jboss.ejb3x.lib}/jboss-ejb3x.jar"/>

Added: trunk/embedded/compiler.bat
===================================================================
--- trunk/embedded/compiler.bat	                        (rev 0)
+++ trunk/embedded/compiler.bat	2007-01-19 18:50:13 UTC (rev 59856)
@@ -0,0 +1,6 @@
+set CLASSPATH=output\lib\embedded-jboss\lib\jboss-embedded-all.jar;output\lib\embedded-jboss\lib\hibernate-all.jar;output\lib\embedded-jboss\lib\thirdparty-all.jar;output\lib\embedded-jboss\bootstrap;output\test-classes
+
+java org.jboss.embedded.BeanCompiler %1
+
+
+

Added: trunk/embedded/embedded.bat
===================================================================
--- trunk/embedded/embedded.bat	                        (rev 0)
+++ trunk/embedded/embedded.bat	2007-01-19 18:50:13 UTC (rev 59856)
@@ -0,0 +1,6 @@
+set CLASSPATH=output\lib\embedded-jboss\lib\jboss-embedded-all.jar;output\lib\embedded-jboss\lib\hibernate-all.jar;output\lib\embedded-jboss\lib\thirdparty-all.jar;output\lib\embedded-jboss\bootstrap;output\test-classes
+
+java org.jboss.embedded.test.TimedBootstrap
+
+
+

Added: trunk/embedded/simple-beans.xml
===================================================================
--- trunk/embedded/simple-beans.xml	                        (rev 0)
+++ trunk/embedded/simple-beans.xml	2007-01-19 18:50:13 UTC (rev 59856)
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+   The bootstrap of the server
+-->
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+   <bean name="Two" class="org.jboss.embedded.test.SimpleBean">
+      <property name="kernel">
+         <inject bean="jboss.kernel:service=Kernel"/>
+      </property>
+   </bean>
+</deployment>

Added: trunk/embedded/src/main/java/org/jboss/embedded/BeanCompiler.java
===================================================================
--- trunk/embedded/src/main/java/org/jboss/embedded/BeanCompiler.java	                        (rev 0)
+++ trunk/embedded/src/main/java/org/jboss/embedded/BeanCompiler.java	2007-01-19 18:50:13 UTC (rev 59856)
@@ -0,0 +1,87 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.embedded;
+
+import org.jboss.xb.binding.Unmarshaller;
+import org.jboss.xb.binding.UnmarshallerFactory;
+import org.jboss.xb.binding.JBossXBException;
+import org.jboss.xb.binding.sunday.unmarshalling.SchemaBindingResolver;
+import org.jboss.xb.binding.sunday.unmarshalling.SingletonSchemaResolverFactory;
+import org.jboss.kernel.spi.deployment.KernelDeployment;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.ObjectOutputStream;
+import java.io.ObjectInputStream;
+import java.net.MalformedURLException;
+
+/**
+ * comment
+ *
+ * @author <a href="bill at jboss.com">Bill Burke</a>
+ * @version $Revision: 1.1 $
+ */
+public class BeanCompiler
+{
+   public static void main(String[] args) throws Exception
+   {
+      System.out.println("compiling: " + args[0]);
+      File fp = new File(args[0]);
+
+      KernelDeployment deployment = parse(fp);
+
+      long start = System.currentTimeMillis();
+
+      FileOutputStream fos = new FileOutputStream(args[0] + ".bin");
+      ObjectOutputStream oos = new ObjectOutputStream(fos);
+      oos.writeObject(deployment);
+      oos.close();
+      fos.close();
+
+      FileInputStream fis = new FileInputStream(args[0] + ".bin");
+      ObjectInputStream ois = new ObjectInputStream(fis);
+      deployment = (KernelDeployment)ois.readObject();
+      ois.close();
+      fis.close();
+
+      long end = System.currentTimeMillis() - start;
+
+      System.out.println("object loading took: " + end);
+
+
+
+   }
+
+   public static KernelDeployment parse(File fp)
+           throws JBossXBException, MalformedURLException
+   {
+      SchemaBindingResolver resolver = SingletonSchemaResolverFactory.getInstance().getSchemaBindingResolver();
+      long start = System.currentTimeMillis();
+      UnmarshallerFactory factory = UnmarshallerFactory.newInstance();
+      Unmarshaller unmarshaller = factory.newUnmarshaller();
+      KernelDeployment deployment = (KernelDeployment) unmarshaller.unmarshal(fp.toURL().toString(), resolver);
+      long end = System.currentTimeMillis() - start;
+      System.out.println("XML parsing took: " + end);
+      return deployment;
+   }
+}

Added: trunk/embedded/src/main/java/org/jboss/embedded/BinaryBootstrap.java
===================================================================
--- trunk/embedded/src/main/java/org/jboss/embedded/BinaryBootstrap.java	                        (rev 0)
+++ trunk/embedded/src/main/java/org/jboss/embedded/BinaryBootstrap.java	2007-01-19 18:50:13 UTC (rev 59856)
@@ -0,0 +1,96 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.embedded;
+
+import org.jboss.deployers.spi.DeploymentException;
+import org.jboss.deployers.spi.deployment.MainDeployer;
+import org.jboss.kernel.plugins.deployment.xml.BeanXMLDeployer;
+import org.jboss.kernel.plugins.deployment.AbstractKernelDeployer;
+import org.jboss.kernel.plugins.deployment.AbstractKernelDeployment;
+import org.jboss.kernel.spi.deployment.KernelDeployment;
+import org.jboss.kernel.spi.dependency.KernelControllerContext;
+import org.jboss.kernel.Kernel;
+import org.jboss.beans.metadata.spi.BeanMetaData;
+import org.jboss.xb.binding.JBossXBException;
+import org.jboss.xb.binding.UnmarshallerFactory;
+import org.jboss.xb.binding.Unmarshaller;
+import org.jboss.xb.binding.sunday.unmarshalling.SchemaBindingResolver;
+import org.jboss.xb.binding.sunday.unmarshalling.SingletonSchemaResolverFactory;
+
+import java.net.URL;
+import java.net.MalformedURLException;
+import java.io.FileInputStream;
+import java.io.ObjectInputStream;
+import java.io.File;
+import java.lang.reflect.Field;
+import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.List;
+
+/**
+ * comment
+ *
+ * @author <a href="bill at jboss.com">Bill Burke</a>
+ * @version $Revision: 1.1 $
+ */
+public class BinaryBootstrap extends Bootstrap
+{
+   private static Bootstrap instance;
+
+
+   public BinaryBootstrap(Kernel kernel)
+   {
+      super(kernel);
+   }
+
+   /**
+    * For those applications that need a singelton Bootstrap instance
+    *
+    * @return
+    */
+   public static synchronized Bootstrap getInstance()
+   {
+      if (instance == null) instance = new BinaryBootstrap(createKernel());
+      return instance;
+   }
+
+   @Override
+   protected void bootstrapURL(URL url) throws DeploymentException
+   {
+      try
+      {
+         String urlString = url.toString() + ".bin";
+         url = new URL(urlString);
+         AbstractKernelDeployer deployer = new AbstractKernelDeployer(kernel);
+         ObjectInputStream ois = new ObjectInputStream(url.openStream());
+         KernelDeployment deployment = (KernelDeployment) ois.readObject();
+         ois.close();
+         deployer.deploy(deployment);
+         mainDeployer = (MainDeployer) kernel.getRegistry().getEntry("MainDeployer").getTarget();
+      }
+      catch (Throwable throwable)
+      {
+         throw new RuntimeException("Unable to bootstrap: ", throwable);
+      }
+      checkIncomplete();
+      started = true;
+   }
+}

Modified: trunk/embedded/src/main/java/org/jboss/embedded/Bootstrap.java
===================================================================
--- trunk/embedded/src/main/java/org/jboss/embedded/Bootstrap.java	2007-01-19 18:42:22 UTC (rev 59855)
+++ trunk/embedded/src/main/java/org/jboss/embedded/Bootstrap.java	2007-01-19 18:50:13 UTC (rev 59856)
@@ -50,11 +50,11 @@
    public static final String BOOTSTRAP_RESOURCE_PATH="jboss.embedded.bootstrap.resource.path";
    public static final String BOOTSTRAP_RESOURCE_FILE="conf/bootstrap-beans.xml";
 
-   private Kernel kernel;
-   private ClassLoader loader = Thread.currentThread().getContextClassLoader();
-   private MainDeployer mainDeployer;
-   private boolean started;
-   private boolean ignoreShutdownErrors;
+   protected Kernel kernel;
+   protected ClassLoader loader = Thread.currentThread().getContextClassLoader();
+   protected MainDeployer mainDeployer;
+   protected boolean started;
+   protected boolean ignoreShutdownErrors;
 
 
 
@@ -67,13 +67,12 @@
     */
    public static synchronized Bootstrap getInstance()
    {
-      if (instance == null) instance = new Bootstrap();
+      if (instance == null) instance = new Bootstrap(createKernel());
       return instance;
    }
 
    public Bootstrap()
    {
-      kernel = createKernel();
    }
 
 
@@ -119,7 +118,7 @@
    }
 
 
-   private static Kernel createKernel()
+   protected static Kernel createKernel()
    {
       BasicBootstrap bootstrap1 = new BasicBootstrap();
       bootstrap1.run();

Added: trunk/embedded/src/main/resources/javase/conf/bootstrap-all-beans.xml
===================================================================
--- trunk/embedded/src/main/resources/javase/conf/bootstrap-all-beans.xml	                        (rev 0)
+++ trunk/embedded/src/main/resources/javase/conf/bootstrap-all-beans.xml	2007-01-19 18:50:13 UTC (rev 59856)
@@ -0,0 +1,335 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+   The bootstrap of the server
+-->
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+
+   <bean name="SystemProperties" class="org.jboss.embedded.util.SystemProperties">
+      <property name="properties">
+         <map keyClass="java.lang.String" valueClass="java.lang.String">
+            <entry>
+               <key>jboss.bind.address</key>
+               <value>0.0.0.0</value>
+            </entry>
+         </map>
+      </property>
+   </bean>
+
+   <bean name="ServerConfig" class="org.jboss.embedded.adapters.ServerConfig"/>
+
+   <!-- The legacy JMX kernel -->
+   <bean name="JMXKernel" class="org.jboss.embedded.adapters.JMXKernel">
+      <property name="kernel">
+         <inject bean="jboss.kernel:service=Kernel"/>
+      </property>
+      <property name="serverConfig">
+         <inject bean="ServerConfig"/>
+      </property>
+   </bean>
+
+   <!-- The MainDeployer -->
+   <bean name="MainDeployer" class="org.jboss.deployers.plugins.deployment.MainDeployerImpl">
+      <property name="structureDeployers">
+         <list>
+            <!-- A declared structure descriptor deployer -->
+            <bean name="DeclaredStructure" class="org.jboss.deployers.plugins.structure.vfs.explicit.DeclaredStructure">
+            </bean>
+            <!-- JAR Structure -->
+            <bean name="JARStructure" class="org.jboss.deployers.plugins.structure.vfs.jar.JARStructure">
+               <!-- Unless specified the default list of suffixes is .zip, .ear, .jar, ,.rar, .war, .sar, .har, .aop -->
+               <constructor>
+                  <parameter>
+                     <set elementClass="java.lang.String">
+                        <value>.zip</value>
+                        <value>.ear</value>
+                        <value>.jar</value>
+                        <value>.rar</value>
+                        <value>.war</value>
+                        <value>.sar</value>
+                        <value>.har</value>
+                        <value>.aop</value>
+                        <value>.deployer</value>
+                        <value>.beans</value>
+                     </set>
+                  </parameter>
+               </constructor>
+               <property name="candidateStructureVisitorFactory">
+                  <!-- Any file that is not an ordinary directory is a candidate -->
+                  <bean name="JARStructureCandidates"
+                        class="org.jboss.deployers.plugins.structure.vfs.jar.JARCandidateStructureVisitorFactory">
+                     <!-- 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.plugins.structure.vfs.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>
+         </list>
+      </property>
+      <property name="deployers">
+         <list>
+            <!-- POJO Deployment -->
+            <bean name="BeanDeployer" class="org.jboss.deployers.plugins.deployers.kernel.BeanDeployer"/>
+            <bean name="KernelDeploymentDeployer"
+                  class="org.jboss.deployers.plugins.deployers.kernel.KernelDeploymentDeployer"/>
+            <bean name="BeanMetaDataDeployer" class="org.jboss.deployers.plugins.deployers.kernel.BeanMetaDataDeployer">
+               <constructor>
+                  <parameter>
+                     <inject bean="jboss.kernel:service=Kernel"/>
+                  </parameter>
+               </constructor>
+            </bean>
+            <!-- JMX Deployment -->
+            <bean name="SARDeployer" class="org.jboss.system.deployers.SARDeployer"/>
+            <bean name="ServiceClassLoaderDeployer" class="org.jboss.embedded.ClassLoaderDeployer"/>
+            <bean name="ServiceDeploymentDeployer" class="org.jboss.system.deployers.ServiceDeploymentDeployer"/>
+            <bean name="ServiceDeployer" class="org.jboss.system.deployers.ServiceDeployer">
+               <constructor>
+                  <parameter>
+                     <inject bean="JMXKernel" property="serviceController"/>
+                  </parameter>
+               </constructor>
+            </bean>
+         </list>
+      </property>
+   </bean>
+
+   <!-- A filter for excluding files from the scanner -->
+   <bean name="DeploymentFilter" class="org.jboss.virtual.plugins.vfs.helpers.ExtensibleFilter">
+      <!-- Files starting with theses strings are ignored -->
+      <property name="prefixes">#,%,\,,.,_$</property>
+      <!-- Files ending with theses strings are ignored -->
+      <property name="suffixes">#,$,%,~,\,v,.BAK,.bak,.old,.orig,.tmp,.rej,.sh</property>
+      <!-- Files matching with theses strings are ignored -->
+      <property name="matches">.make.state,.nse_depinfo,CVS,CVS.admin,RCS,RCSLOG,SCCS,TAGS,core,tags</property>
+   </bean>
+
+   <!--
+        JNDI Initialization of basic beans (NO REMOTING)
+     -->
+   <bean name="Naming" class="org.jnp.server.SingletonNamingServer"/>
+   <bean name="java:comp" class="org.jboss.naming.JavaCompInitializer"/>
+
+   <!--
+        Bootstrap old JMX-based core services
+        setup deployers
+        setup deploy/ directory
+     -->
+   <bean name="ResourcesToDeploy" class="org.jboss.embedded.DeploymentScanner">
+      <property name="filter"><inject bean="DeploymentFilter"/></property>
+      <property name="mainDeployer">
+         <inject bean="MainDeployer"/>
+      </property>
+      <property name="kernel">
+         <inject bean="jboss.kernel:service=Kernel"/>
+      </property>
+      <property name="resources">
+         <list elementClass="java.lang.String">
+            <value>${jboss.embedded.bootstrap.resource.path}conf/jboss-service.xml</value>
+         </list>
+      </property>
+   </bean>
+
+   <bean name="UserTransaction" class="org.jboss.embedded.adapters.LocalOnlyUserTransaction"/>
+
+   <bean name="UserTransactionBinding" class="org.jboss.naming.JndiBinder">
+      <property name="target"><inject bean="UserTransaction"/></property>
+      <property name="bindTo">UserTransaction</property>
+      <property name="serializable">false</property>
+   </bean>
+
+   <!-- Aspect Deployment -->
+   <bean name="AspectDeployer" class="org.jboss.aop.deployers.AspectDeployer">
+      <install bean="MainDeployer" method="addDeployer">
+         <parameter><this/></parameter>
+      </install>
+      <uninstall bean="MainDeployer" method="removeDeployer">
+         <parameter><this/></parameter>
+      </uninstall>
+   </bean>
+
+   <bean name="DefaultPersistenceProperties" class="org.jboss.ejb3.DefaultPersistenceProperties"/>
+
+   <bean name="EJBRegistrationDeployer" class="org.jboss.ejb3.deployers.EJBRegistrationDeployer">
+      <install bean="MainDeployer" method="addDeployer">
+         <parameter>
+            <this/>
+         </parameter>
+      </install>
+      <uninstall bean="MainDeployer" method="removeDeployer">
+         <parameter>
+            <this/>
+         </parameter>
+      </uninstall>
+      <property name="kernel"><inject bean="jboss.kernel:service=Kernel"/></property>
+      <property name="mbeanServer"><inject bean="JMXKernel" property="mbeanServer"/></property>
+      <property name="defaultPersistenceProperties"><inject bean="DefaultPersistenceProperties" property="properties"/></property>
+      <property name="ignoredJarsSet">
+         <set elementClass="java.lang.String">
+            <value>snmp-adaptor.jar</value>
+            <value>otherimages.jar</value>
+            <value>applet.jar</value>
+            <value>jcommon.jar</value>
+            <value>console-mgr-classes.jar</value>
+            <value>jfreechart.jar</value>
+            <value>juddi-service.jar</value>
+            <value>wsdl4j.jar</value>
+            <value>commons-collections.jar</value>
+            <value>commons-pool.jar</value>
+            <value>juddi.jar</value>
+            <value>commons-discovery.jar</value>
+            <value>uddi4j.jar</value>
+            <value>axis.jar</value>
+            <value>commons-dbcp.jar</value>
+            <value>jboss-juddiaxis.jar</value>
+            <value>trove.jar</value>
+            <value>javassist.jar</value>
+            <value>jboss-aop-jdk50.jar</value>
+            <value>jboss-aspect-library-jdk50.jar</value>
+            <value>ejb3-persistence.jar</value>
+            <value>commons-validator-1.1.3.jar</value>
+            <value>commons-collections.jar</value>
+            <value>commons-fileupload.jar</value>
+            <value>commons-pool.jar</value>
+            <value>hibernate-entitymanager.jar</value>
+            <value>jboss-ejb3x.jar</value>
+            <value>commons-digester-1.6.jar</value>
+            <value>cglib-2.1.1.jar</value>
+            <value>commons-discovery.jar</value>
+            <value>jboss-annotations-ejb3.jar</value>
+            <value>jaxen-1.1-beta-4.jar</value>
+            <value>hibernate-annotations.jar</value>
+            <value>commons-httpclient.jar</value>
+            <value>commons-logging.jar</value>
+            <value>commons-vfs.jar</value>
+            <value>hibernate3.jar</value>
+            <value>commons-logging-api.jar</value>
+            <value>asm.jar</value>
+            <value>asm-attrs.jar</value>
+            <value>commons-lang-2.0.jar</value>
+            <value>commons-beanutils.jar</value>
+            <value>jboss-ejb3.jar</value>
+            <value>dom4j.jar</value>
+            <value>commons-codec-1.2.jar</value>
+            <value>wsdl4j.jar</value>
+            <value>xmlsec.jar</value>
+            <value>jbossws.jar</value>
+            <value>jboss-bean-deployer.jar</value>
+            <value>jboss-microcontainer.jar</value>
+            <value>jboss-dependency.jar</value>
+            <value>jboss-container.jar</value>
+            <value>tomcat-coyote.jar</value>
+            <value>commons-collections.jar</value>
+            <value>myfaces.jar</value>
+            <value>jstl.jar</value>
+            <value>commons-digester-1.6.jar</value>
+            <value>myfaces-impl.jar</value>
+            <value>commons-beanutils.jar</value>
+            <value>myfaces-jsf-api.jar</value>
+            <value>commons-codec-1.2.jar</value>
+            <value>catalina-optional.jar</value>
+            <value>tomcat-util.jar</value>
+            <value>jasper-compiler.jar</value>
+            <value>commons-el.jar</value>
+            <value>jasper-compiler-jdt.jar</value>
+            <value>tomcat-http.jar</value>
+            <value>catalina-manager.jar</value>
+            <value>jasper-runtime.jar</value>
+            <value>tomcat55-service.jar</value>
+            <value>servlets-invoker.jar</value>
+            <value>catalina.jar</value>
+            <value>naming-resources.jar</value>
+            <value>servlets-default.jar</value>
+            <value>tomcat-ajp.jar</value>
+            <value>commons-modeler.jar</value>
+            <value>tomcat-apr.jar</value>
+            <value>servlets-webdav.jar</value>
+         </set>
+      </property>
+      <depends>AspectDeployer</depends>
+   </bean>
+   <bean name="EJBStage2Deployer" class="org.jboss.ejb3.deployers.EJBStage2Deployer">
+      <install bean="MainDeployer" method="addDeployer">
+         <parameter>
+            <this/>
+         </parameter>
+      </install>
+      <uninstall bean="MainDeployer" method="removeDeployer">
+         <parameter>
+            <this/>
+         </parameter>
+      </uninstall>
+      <depends>AspectDeployer</depends>
+   </bean>
+
+   <!-- RAR Deployment -->
+   <bean name="RARParserDeployer" class="org.jboss.resource.deployers.RARParserDeployer">
+      <install bean="MainDeployer" method="addDeployer">
+         <parameter><this/></parameter>
+      </install>
+      <uninstall bean="MainDeployer" method="removeDeployer">
+         <parameter><this/></parameter>
+      </uninstall>
+   </bean>
+   <bean name="RARDeployer" class="org.jboss.resource.deployers.RARDeployer">
+      <property name="workManagerName">jboss.jca:service=WorkManager</property>
+      <property name="XATerminatorName">jboss:service=TransactionManager</property>
+      <install bean="MainDeployer" method="addDeployer">
+         <parameter><this/></parameter>
+      </install>
+      <uninstall bean="MainDeployer" method="removeDeployer">
+         <parameter><this/></parameter>
+      </uninstall>
+   </bean>
+
+   <!-- ConnectionFactory Deployment -->
+   <bean name="ConnectionFactoryDeployer" class="org.jboss.system.deployers.ServiceXSLDeployer">
+      <property name="suffix">-ds.xml</property>
+      <property name="XSLPath">stylesheets/NoJRMPConnectionFactoryTemplate.xsl</property>
+      <install bean="MainDeployer" method="addDeployer">
+         <parameter><this/></parameter>
+      </install>
+      <uninstall bean="MainDeployer" method="removeDeployer">
+         <parameter><this/></parameter>
+      </uninstall>
+   </bean>
+
+   <bean name="ResourcesToDeploy3" class="org.jboss.embedded.DeploymentScanner">
+      <property name="filter"><inject bean="DeploymentFilter"/></property>
+      <property name="mainDeployer">
+         <inject bean="MainDeployer"/>
+      </property>
+      <property name="kernel">
+         <inject bean="jboss.kernel:service=Kernel"/>
+      </property>
+      <property name="directoriesByResource">
+         <list elementClass="java.lang.String">
+            <value>${jboss.embedded.bootstrap.resource.path}conf/jboss-service.xml/../deploy</value>
+         </list>
+      </property>
+   </bean>
+</deployment>

Added: trunk/embedded/src/test/java/org/jboss/embedded/test/BeanCompilerTester.java
===================================================================
--- trunk/embedded/src/test/java/org/jboss/embedded/test/BeanCompilerTester.java	                        (rev 0)
+++ trunk/embedded/src/test/java/org/jboss/embedded/test/BeanCompilerTester.java	2007-01-19 18:50:13 UTC (rev 59856)
@@ -0,0 +1,116 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.embedded.test;
+
+import org.jboss.kernel.spi.deployment.KernelDeployment;
+import org.jboss.kernel.spi.dependency.KernelControllerContext;
+import org.jboss.kernel.Kernel;
+import org.jboss.kernel.plugins.bootstrap.basic.BasicBootstrap;
+import org.jboss.kernel.plugins.deployment.AbstractKernelDeployer;
+import org.jboss.kernel.plugins.deployment.AbstractKernelDeployment;
+import org.jboss.xb.binding.JBossXBException;
+import org.jboss.xb.binding.UnmarshallerFactory;
+import org.jboss.xb.binding.Unmarshaller;
+import org.jboss.xb.binding.sunday.unmarshalling.SchemaBindingResolver;
+import org.jboss.xb.binding.sunday.unmarshalling.SingletonSchemaResolverFactory;
+import org.jboss.embedded.BeanCompiler;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.ObjectOutputStream;
+import java.io.FileInputStream;
+import java.io.ObjectInputStream;
+import java.net.MalformedURLException;
+import java.lang.reflect.Field;
+import java.util.concurrent.CopyOnWriteArrayList;
+
+/**
+ * comment
+ *
+ * @author <a href="bill at jboss.com">Bill Burke</a>
+ * @version $Revision: 1.1 $
+ */
+public class BeanCompilerTester
+{
+   protected static Kernel createKernel()
+   {
+      BasicBootstrap bootstrap1 = new BasicBootstrap();
+      bootstrap1.run();
+      return bootstrap1.getKernel();
+   }
+
+   protected static void deploy(KernelDeployment deployment) throws Throwable 
+   {
+      AbstractKernelDeployer deployer = new AbstractKernelDeployer(createKernel());
+      deployer.deploy(deployment);
+      deployer.validate();
+
+   }
+
+   
+   public static void main(String[] args) throws Throwable
+   {
+      System.out.println("compiling: " + args[0]);
+      File fp = new File(args[0]);
+
+      KernelDeployment deployment = parse(fp);
+
+      long start = System.currentTimeMillis();
+
+      FileOutputStream fos = new FileOutputStream(args[0] +".bin");
+      ObjectOutputStream oos = new ObjectOutputStream(fos);
+      oos.writeObject(deployment);
+      oos.close();
+      fos.close();
+
+      FileInputStream fis = new FileInputStream(args[0] +".bin");
+      ObjectInputStream ois = new ObjectInputStream(fis);
+      KernelDeployment deployment2 = (KernelDeployment)ois.readObject();
+      ois.close();
+      fis.close();
+
+      long end = System.currentTimeMillis() - start;
+
+      System.out.println("object loading took: " + end);
+
+      System.out.println("deployment1");
+      deploy(deployment);
+      System.out.println("deployment2");
+      deploy(deployment2);
+
+
+
+   }
+
+   public static KernelDeployment parse(File fp)
+           throws JBossXBException, MalformedURLException
+   {
+      SchemaBindingResolver resolver = SingletonSchemaResolverFactory.getInstance().getSchemaBindingResolver();
+      long start = System.currentTimeMillis();
+      UnmarshallerFactory factory = UnmarshallerFactory.newInstance();
+      Unmarshaller unmarshaller = factory.newUnmarshaller();
+      KernelDeployment deployment = (KernelDeployment) unmarshaller.unmarshal(fp.toURL().toString(), resolver);
+      long end = System.currentTimeMillis() - start;
+      System.out.println("XML parsing took: " + end);
+      return deployment;
+   }
+}

Added: trunk/embedded/src/test/java/org/jboss/embedded/test/SimpleBean.java
===================================================================
--- trunk/embedded/src/test/java/org/jboss/embedded/test/SimpleBean.java	                        (rev 0)
+++ trunk/embedded/src/test/java/org/jboss/embedded/test/SimpleBean.java	2007-01-19 18:50:13 UTC (rev 59856)
@@ -0,0 +1,63 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.embedded.test;
+
+import org.jboss.kernel.Kernel;
+
+/**
+ * comment
+ *
+ * @author <a href="bill at jboss.com">Bill Burke</a>
+ * @version $Revision: 1.1 $
+ */
+public class SimpleBean
+{
+   private SimpleBean ref;
+   private Kernel kernel;
+
+
+   public SimpleBean getRef()
+   {
+      return ref;
+   }
+
+   public void setRef(SimpleBean ref)
+   {
+      this.ref = ref;
+   }
+
+
+   public Kernel getKernel()
+   {
+      return kernel;
+   }
+
+   public void setKernel(Kernel kernel)
+   {
+      this.kernel = kernel;
+   }
+
+   public void start()
+   {
+      System.out.println("**************** STARTED");
+   }
+}

Added: trunk/embedded/src/test/java/org/jboss/embedded/test/TimedBinaryBootstrap.java
===================================================================
--- trunk/embedded/src/test/java/org/jboss/embedded/test/TimedBinaryBootstrap.java	                        (rev 0)
+++ trunk/embedded/src/test/java/org/jboss/embedded/test/TimedBinaryBootstrap.java	2007-01-19 18:50:13 UTC (rev 59856)
@@ -0,0 +1,51 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.embedded.test;
+
+import org.jboss.embedded.Bootstrap;
+import org.jboss.embedded.BinaryBootstrap;
+
+/**
+ * comment
+ *
+ * @author <a href="bill at jboss.com">Bill Burke</a>
+ * @version $Revision: 1.1 $
+ */
+public class TimedBinaryBootstrap
+{
+   public static void main(String[] args) throws Exception
+   {
+      long start = System.currentTimeMillis();
+      BinaryBootstrap.getInstance().bootstrap();
+      long bootEnd = System.currentTimeMillis();
+      long end = bootEnd - start;
+
+      System.out.println("Bootstrap took: " + end);
+
+     BinaryBootstrap.getInstance().shutdown();
+
+      long shutEnd = System.currentTimeMillis() - bootEnd;
+
+      System.out.println("shutdown took: " + shutEnd);
+
+   }
+}

Added: trunk/embedded/src/test/java/org/jboss/embedded/test/TimedBootstrap.java
===================================================================
--- trunk/embedded/src/test/java/org/jboss/embedded/test/TimedBootstrap.java	                        (rev 0)
+++ trunk/embedded/src/test/java/org/jboss/embedded/test/TimedBootstrap.java	2007-01-19 18:50:13 UTC (rev 59856)
@@ -0,0 +1,50 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.embedded.test;
+
+import org.jboss.embedded.Bootstrap;
+
+/**
+ * comment
+ *
+ * @author <a href="bill at jboss.com">Bill Burke</a>
+ * @version $Revision: 1.1 $
+ */
+public class TimedBootstrap
+{
+   public static void main(String[] args) throws Exception
+   {
+      long start = System.currentTimeMillis();
+      Bootstrap.getInstance().bootstrap();
+      long bootEnd = System.currentTimeMillis();
+      long end = bootEnd - start;
+
+      System.out.println("Bootstrap took: " + end);
+
+      Bootstrap.getInstance().shutdown();
+
+      long shutEnd = System.currentTimeMillis() - bootEnd;
+
+      System.out.println("shutdown took: " + shutEnd);
+
+   }
+}

Modified: trunk/embedded/src/test/java/org/jboss/embedded/test/bootstrap/unit/BootstrapTestCase.java
===================================================================
--- trunk/embedded/src/test/java/org/jboss/embedded/test/bootstrap/unit/BootstrapTestCase.java	2007-01-19 18:42:22 UTC (rev 59855)
+++ trunk/embedded/src/test/java/org/jboss/embedded/test/bootstrap/unit/BootstrapTestCase.java	2007-01-19 18:50:13 UTC (rev 59856)
@@ -47,8 +47,6 @@
  */
 public class BootstrapTestCase extends TestCase
 {
-   private static Bootstrap bootstrap = new Bootstrap();
-
    public BootstrapTestCase()
    {
       super("BootstrapTestCase");
@@ -90,7 +88,7 @@
    {
       try
       {
-         bootstrap.bootstrap();
+         Bootstrap.getInstance().bootstrap();
       }
       catch (DeploymentException e)
       {
@@ -100,7 +98,7 @@
 
    public static void shutdownEmbeddedJboss()
    {
-      bootstrap.shutdown();
+      Bootstrap.getInstance().shutdown();
    }
 
    public void testDefaultDS() throws Exception
@@ -122,7 +120,7 @@
 
    private static MBeanServer getMBeanServer()
    {
-      JMXKernel jmxKernel = (JMXKernel)bootstrap.getKernel().getRegistry().getEntry("JMXKernel").getTarget();
+      JMXKernel jmxKernel = (JMXKernel)Bootstrap.getInstance().getKernel().getRegistry().getEntry("JMXKernel").getTarget();
       MBeanServer server = jmxKernel.getMbeanServer();
       return server;
    }

Modified: trunk/embedded/src/test/java/org/jboss/embedded/test/ejb/unit/EjbTestCase.java
===================================================================
--- trunk/embedded/src/test/java/org/jboss/embedded/test/ejb/unit/EjbTestCase.java	2007-01-19 18:42:22 UTC (rev 59855)
+++ trunk/embedded/src/test/java/org/jboss/embedded/test/ejb/unit/EjbTestCase.java	2007-01-19 18:50:13 UTC (rev 59856)
@@ -48,8 +48,6 @@
  */
 public class EjbTestCase extends TestCase
 {
-   private static Bootstrap bootstrap = new Bootstrap();
-
    public EjbTestCase()
    {
       super("BootstrapTestCase");
@@ -91,7 +89,7 @@
    {
       try
       {
-         bootstrap.bootstrap();
+         Bootstrap.getInstance().bootstrap();
       }
       catch (DeploymentException e)
       {
@@ -101,7 +99,7 @@
 
    public static void shutdownEmbeddedJboss()
    {
-      bootstrap.shutdown();
+      Bootstrap.getInstance().shutdown();
    }
 
    private static void outputJNDI()
@@ -114,7 +112,7 @@
 
    private static MBeanServer getMBeanServer()
    {
-      JMXKernel jmxKernel = (JMXKernel)bootstrap.getKernel().getRegistry().getEntry("JMXKernel").getTarget();
+      JMXKernel jmxKernel = (JMXKernel)Bootstrap.getInstance().getKernel().getRegistry().getEntry("JMXKernel").getTarget();
       MBeanServer server = jmxKernel.getMbeanServer();
       return server;
    }
@@ -122,7 +120,7 @@
 
    public void testSimpleEjb() throws Exception
    {
-      DeploymentGroup group = bootstrap.createDeploymentGroup();
+      DeploymentGroup group = Bootstrap.getInstance().createDeploymentGroup();
       group.addClasspath("ejb-test.jar");
       group.process();
 




More information about the jboss-cvs-commits mailing list