[jboss-cvs] JBossAS SVN: r63913 - in trunk: ejb3 and 12 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Jul 9 14:00:04 EDT 2007


Author: adrian at jboss.org
Date: 2007-07-09 14:00:04 -0400 (Mon, 09 Jul 2007)
New Revision: 63913

Added:
   trunk/server/src/main/org/jboss/web/WebClassLoaderFactory.java
Removed:
   trunk/j2se/src/main/org/jboss/mx/loading/LoaderRepositoryClassLoader.java
Modified:
   trunk/build/build-distr.xml
   trunk/ejb3/.classpath
   trunk/ejb3/src/main/org/jboss/ejb3/iiop/EJB3IIOPWebClassLoader.java
   trunk/ejb3/src/main/org/jboss/ejb3/iiop/IORFactory.java
   trunk/iiop/.classpath
   trunk/iiop/src/main/org/jboss/iiop/WebCL.java
   trunk/j2se/.classpath
   trunk/j2se/build.xml
   trunk/j2se/src/main/org/jboss/mx/loading/RepositoryClassLoader.java
   trunk/jmx/.classpath
   trunk/jmx/build.xml
   trunk/server/.classpath
   trunk/server/src/main/org/jboss/ejb/EjbModule.java
   trunk/server/src/main/org/jboss/web/WebClassLoader.java
   trunk/system-jmx/.classpath
   trunk/system-jmx/build.xml
   trunk/system/src/main/org/jboss/system/server/ServerLoader.java
   trunk/system/src/main/org/jboss/system/server/profileservice/hotdeploy/HDScanner.java
Log:
[JBMICROCONT-31] - Make a start on removing direct JMX classloader dependencies
by adding a notion of RealDeployer in the intergration project.
This has removed the LoaderRepositoryClassLoader, but there are still many others to do.

Modified: trunk/build/build-distr.xml
===================================================================
--- trunk/build/build-distr.xml	2007-07-09 16:49:57 UTC (rev 63912)
+++ trunk/build/build-distr.xml	2007-07-09 18:00:04 UTC (rev 63913)
@@ -1691,6 +1691,9 @@
       <fileset dir="${jboss.jbossxb.lib}">
         <include name="jboss-xml-binding.jar"/>
       </fileset>
+      <fileset dir="${jboss.integration.lib}">
+        <include name="jboss-classloading-spi.jar"/>
+      </fileset>
       <fileset dir="${jboss.microcontainer.lib}">
         <include name="jboss-aop-mc-int.jar"/>
         <include name="jboss-container.jar"/>

Modified: trunk/ejb3/.classpath
===================================================================
--- trunk/ejb3/.classpath	2007-07-09 16:49:57 UTC (rev 63912)
+++ trunk/ejb3/.classpath	2007-07-09 18:00:04 UTC (rev 63913)
@@ -58,6 +58,6 @@
 	<classpathentry kind="lib" path="/thirdparty/jboss/microcontainer/lib/jboss-deployers-spi.jar" sourcepath="/thirdparty/jboss/microcontainer/lib/jboss-deployers-spi-sources.jar"/>
 	<classpathentry kind="lib" path="/thirdparty/jboss/microcontainer/lib/jboss-deployers-vfs-spi.jar" sourcepath="/thirdparty/jboss/microcontainer/lib/jboss-deployers-vfs-spi-sources.jar"/>
 	<classpathentry kind="lib" path="/thirdparty/quartz/lib/quartz-all.jar"/>
-	<classpathentry kind="lib" path="/thirdparty/jboss/integration/lib/jboss-integration.jar" sourcepath="/thirdparty/jboss/integration/lib/integration-sources.jar"/>
+	<classpathentry kind="lib" path="/thirdparty/jboss/integration/lib/jboss-integration.jar" sourcepath="/thirdparty/jboss/integration/lib/jboss-integration-sources.jar"/>
 	<classpathentry kind="output" path="output/eclipse-classes"/>
 </classpath>

Modified: trunk/ejb3/src/main/org/jboss/ejb3/iiop/EJB3IIOPWebClassLoader.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/ejb3/iiop/EJB3IIOPWebClassLoader.java	2007-07-09 16:49:57 UTC (rev 63912)
+++ trunk/ejb3/src/main/org/jboss/ejb3/iiop/EJB3IIOPWebClassLoader.java	2007-07-09 18:00:04 UTC (rev 63913)
@@ -23,20 +23,21 @@
 
 import javax.management.ObjectName;
 
+import org.jboss.classloading.spi.RealClassLoader;
 import org.jboss.iiop.WebCL;
-import org.jboss.mx.loading.RepositoryClassLoader;
 
 /**
  * The getKey method of the WebCL class is not working in EJB3, this class fixes that.
  *
  * @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
+ * @author adrian at jboss.org
  * @version $Revision$
  */
 public class EJB3IIOPWebClassLoader extends WebCL
 {
    private String jndiName;
    
-   public EJB3IIOPWebClassLoader(ObjectName container, RepositoryClassLoader parent, String jndiName)
+   public EJB3IIOPWebClassLoader(ObjectName container, RealClassLoader parent, String jndiName)
    {
       super(container, parent);
       this.jndiName = jndiName;

Modified: trunk/ejb3/src/main/org/jboss/ejb3/iiop/IORFactory.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/ejb3/iiop/IORFactory.java	2007-07-09 16:49:57 UTC (rev 63912)
+++ trunk/ejb3/src/main/org/jboss/ejb3/iiop/IORFactory.java	2007-07-09 18:00:04 UTC (rev 63913)
@@ -36,6 +36,7 @@
 import org.jboss.annotation.ejb.IIOP;
 import org.jboss.annotation.ejb.RemoteBinding;
 import org.jboss.aop.Advisor;
+import org.jboss.classloading.spi.RealClassLoader;
 import org.jboss.ejb3.Container;
 import org.jboss.ejb3.NonSerializableFactory;
 import org.jboss.ejb3.ProxyFactoryHelper;
@@ -317,7 +318,7 @@
       // Hack in a WebCL (from org.jboss.ejb.EjbModule.initializeContainer)
       // TODO:  seting up a WebClassLoader needs to be done somewhere where
       ObjectName on = container.getObjectName();
-      this.wcl = new EJB3IIOPWebClassLoader(on, (RepositoryClassLoader) ((SessionContainer) container).getClassloader(), getJndiName());
+      this.wcl = new EJB3IIOPWebClassLoader(on, (RealClassLoader) ((SessionContainer) container).getClassloader(), getJndiName());
       WebServiceMBean webServer = getWebServer();
       URL[] codebaseURLs = {webServer.addClassLoader(wcl)};
       wcl.setWebURLs(codebaseURLs);

Modified: trunk/iiop/.classpath
===================================================================
--- trunk/iiop/.classpath	2007-07-09 16:49:57 UTC (rev 63912)
+++ trunk/iiop/.classpath	2007-07-09 18:00:04 UTC (rev 63913)
@@ -21,6 +21,6 @@
 	<classpathentry kind="lib" path="/thirdparty/jboss/common-logging-log4j/lib/jboss-logging-log4j.jar"/>
 	<classpathentry kind="lib" path="/thirdparty/jboss/jboss-javaee/lib/jboss-javaee.jar" sourcepath="/thirdparty/jboss/jboss-javaee/lib/jboss-javaee-sources.jar"/>
 	<classpathentry kind="lib" path="/thirdparty/jboss/microcontainer/lib/jboss-deployers-core-spi.jar" sourcepath="/thirdparty/jboss/microcontainer/lib/jboss-deployers-core-spi-sources.jar"/>
-	<classpathentry kind="lib" path="/thirdparty/jboss/integration/lib/jboss-integration.jar" sourcepath="/thirdparty/jboss/integration/lib/integration-sources.jar"/>
+	<classpathentry kind="lib" path="/thirdparty/jboss/integration/lib/jboss-integration.jar" sourcepath="/thirdparty/jboss/integration/lib/jboss-integration-sources.jar"/>
 	<classpathentry kind="output" path="output/eclipse-classes"/>
 </classpath>

Modified: trunk/iiop/src/main/org/jboss/iiop/WebCL.java
===================================================================
--- trunk/iiop/src/main/org/jboss/iiop/WebCL.java	2007-07-09 16:49:57 UTC (rev 63912)
+++ trunk/iiop/src/main/org/jboss/iiop/WebCL.java	2007-07-09 18:00:04 UTC (rev 63913)
@@ -26,6 +26,7 @@
 import java.util.WeakHashMap;
 import javax.management.ObjectName;
 
+import org.jboss.classloading.spi.RealClassLoader;
 import org.jboss.logging.Logger;
 import org.jboss.mx.loading.RepositoryClassLoader;
 import org.jboss.proxy.compiler.IIOPStubCompiler;
@@ -35,6 +36,7 @@
  * A subclass of WebClassLoader that does IIOP bytecode generation on the fly.
  *
  * @author  <a href="mailto:reverbel at ime.usp.br">Francisco Reverbel</a>
+ * @author adrian at jboss.org
  * @version $Revision$
 */
 public class WebCL extends WebClassLoader
@@ -45,8 +47,7 @@
     /** Map from stub classes into bytecode arrays (stub bytecode cache) */
     private Map loadedStubMap = Collections.synchronizedMap(new WeakHashMap());
 
-    /** Creates new WebCL */
-    public WebCL(ObjectName container, RepositoryClassLoader parent)
+    public WebCL(ObjectName container, RealClassLoader parent)
     {
         super(container, parent);
         logger.debug("Constructed WebCL " + this.toString());

Modified: trunk/j2se/.classpath
===================================================================
--- trunk/j2se/.classpath	2007-07-09 16:49:57 UTC (rev 63912)
+++ trunk/j2se/.classpath	2007-07-09 18:00:04 UTC (rev 63913)
@@ -10,5 +10,6 @@
 	<classpathentry kind="lib" path="/thirdparty/dom4j/lib/dom4j.jar"/>
 	<classpathentry kind="lib" path="/thirdparty/junit/lib/junit.jar"/>
 	<classpathentry sourcepath="/thirdparty/jboss/microcontainer/container-src" kind="lib" path="/thirdparty/jboss/microcontainer/lib/jboss-container.jar"/>
+	<classpathentry kind="lib" path="/thirdparty/jboss/integration/lib/jboss-integration.jar" sourcepath="/thirdparty/jboss/integration/lib/jboss-integration-sources.jar"/>
 	<classpathentry kind="output" path="output/eclipse-classes"/>
 </classpath>

Modified: trunk/j2se/build.xml
===================================================================
--- trunk/j2se/build.xml	2007-07-09 16:49:57 UTC (rev 63912)
+++ trunk/j2se/build.xml	2007-07-09 18:00:04 UTC (rev 63913)
@@ -69,6 +69,7 @@
       <path refid="oswego.concurrent.classpath"/>
       <path refid="dom4j.dom4j.classpath"/>
       <path refid="junit.junit.classpath"/>
+      <path refid="jboss.integration.classpath"/>
     </path>
 
     <!-- ======= -->

Deleted: trunk/j2se/src/main/org/jboss/mx/loading/LoaderRepositoryClassLoader.java
===================================================================
--- trunk/j2se/src/main/org/jboss/mx/loading/LoaderRepositoryClassLoader.java	2007-07-09 16:49:57 UTC (rev 63912)
+++ trunk/j2se/src/main/org/jboss/mx/loading/LoaderRepositoryClassLoader.java	2007-07-09 18:00:04 UTC (rev 63913)
@@ -1,92 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2005, 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.mx.loading;
-
-import java.net.URLStreamHandlerFactory;
-
-import org.jboss.util.loading.DelegatingClassLoader;
-
-/**
- * A delegating classloader that first peeks in the loader
- * repository's cache.
- *
- * @author <a href="mailto:adrian at jboss.org">Adrian Brock</a>
- * @version $Revision$
- */
-public class LoaderRepositoryClassLoader
-   extends DelegatingClassLoader
-{
-   /** The loader repository */
-   protected LoaderRepository repository;
-
-   /**
-    * Constructor
-    *
-    * @param parent the parent classloader, cannot be null.
-    * @param repository the loader repository, cannot be null.
-    */
-   public LoaderRepositoryClassLoader(ClassLoader parent, LoaderRepository repository)
-   {
-      super(parent);
-      if (repository == null)
-         throw new IllegalArgumentException("No repository");
-      this.repository = repository;
-   }
-
-   /**
-    * Constructor
-    *
-    * @param parent, the parent classloader, cannot be null.
-    * @param factory the url stream factory.
-    */
-   public LoaderRepositoryClassLoader(ClassLoader parent, LoaderRepository repository, URLStreamHandlerFactory factory)
-   {
-      super(parent);
-      if (repository == null)
-         throw new IllegalArgumentException("No repository");
-      this.repository = repository;
-   }
-
-   /**
-    * Load a class, first peek in the loader repository cache then
-    * ask the parent.
-    *
-    * @param className the class name to load
-    * @param resolve whether to link the class
-    * @return the loaded class
-    * @throws ClassNotFoundException when the class could not be found
-    */
-   protected Class loadClass(String className, boolean resolve)
-      throws ClassNotFoundException
-   {
-      Class clazz = repository.getCachedClass(className);
-      if (clazz != null)
-      {
-         if (resolve)
-            resolveClass(clazz);
-         return clazz;
-      }
-
-      // Delegate
-      return super.loadClass(className, resolve);
-   }
-}

Modified: trunk/j2se/src/main/org/jboss/mx/loading/RepositoryClassLoader.java
===================================================================
--- trunk/j2se/src/main/org/jboss/mx/loading/RepositoryClassLoader.java	2007-07-09 16:49:57 UTC (rev 63912)
+++ trunk/j2se/src/main/org/jboss/mx/loading/RepositoryClassLoader.java	2007-07-09 18:00:04 UTC (rev 63913)
@@ -41,6 +41,7 @@
 import javax.management.MalformedObjectNameException;
 import javax.management.ObjectName;
 
+import org.jboss.classloading.spi.RealClassLoader;
 import org.jboss.logging.Logger;
 import org.jboss.util.loading.Translator;
 import org.jboss.util.collection.SoftSet;
@@ -54,7 +55,7 @@
  * @author <a href="adrian at jboss.com">Adrian Brock</a>
  * @version $Revision$
  */
-public abstract class RepositoryClassLoader extends URLClassLoader
+public abstract class RepositoryClassLoader extends URLClassLoader implements RealClassLoader
 {
    // Constants -----------------------------------------------------
 
@@ -146,6 +147,20 @@
       this.repository = repository;
    }
 
+   public Class<?> getCachedClass(String name)
+   {
+      LoaderRepository repository = this.repository;
+      if (repository == null)
+         return null;
+      return repository.getCachedClass(name);
+   }
+
+   public URL getCachedResource(String name)
+   {
+      // Not Implemented
+      return null;
+   }
+
    /**
     * Get the order this classloader was added to the repository
     * 

Modified: trunk/jmx/.classpath
===================================================================
--- trunk/jmx/.classpath	2007-07-09 16:49:57 UTC (rev 63912)
+++ trunk/jmx/.classpath	2007-07-09 18:00:04 UTC (rev 63913)
@@ -13,5 +13,6 @@
 	<classpathentry kind="src" path="/j2se"/>
 	<classpathentry kind="src" path="/mbeans"/>
 	<classpathentry sourcepath="/home/svn/JBossMC/jbossmc/container/src/main" kind="lib" path="/thirdparty/jboss/microcontainer/lib/jboss-container.jar"/>
+	<classpathentry kind="lib" path="/thirdparty/jboss/integration/lib/jboss-integration.jar" sourcepath="/thirdparty/jboss/integration/lib/jboss-integration-sources.jar"/>
 	<classpathentry kind="output" path="output/eclipse-classes"/>
 </classpath>

Modified: trunk/jmx/build.xml
===================================================================
--- trunk/jmx/build.xml	2007-07-09 16:49:57 UTC (rev 63912)
+++ trunk/jmx/build.xml	2007-07-09 18:00:04 UTC (rev 63913)
@@ -91,6 +91,7 @@
         <path refid="junit.junit.classpath"/>
         <path refid="apache.bcel.classpath"/>
         <path refid="apache.commons.classpath"/>
+        <path refid="jboss.integration.classpath"/>
       </path>
 
         <!-- The combined thirdparty classpath -->

Modified: trunk/server/.classpath
===================================================================
--- trunk/server/.classpath	2007-07-09 16:49:57 UTC (rev 63912)
+++ trunk/server/.classpath	2007-07-09 18:00:04 UTC (rev 63913)
@@ -43,6 +43,6 @@
 	<classpathentry kind="lib" path="/thirdparty/jboss/microcontainer/lib/jboss-deployers-structure-spi.jar" sourcepath="/thirdparty/jboss/microcontainer/lib/jboss-deployers-structure-spi-sources.jar"/>
 	<classpathentry kind="lib" path="/thirdparty/jboss/microcontainer/lib/jboss-deployers-spi.jar" sourcepath="/thirdparty/jboss/microcontainer/lib/jboss-deployers-spi-sources.jar"/>
 	<classpathentry kind="lib" path="/thirdparty/jboss/microcontainer/lib/jboss-deployers-vfs-spi.jar" sourcepath="/thirdparty/jboss/microcontainer/lib/jboss-deployers-vfs-spi-sources.jar"/>
-	<classpathentry kind="lib" path="/thirdparty/jboss/integration/lib/jboss-integration.jar" sourcepath="/thirdparty/jboss/integration/lib/integration-sources.jar"/>
+	<classpathentry kind="lib" path="/thirdparty/jboss/integration/lib/jboss-integration.jar" sourcepath="/thirdparty/jboss/integration/lib/jboss-integration-sources.jar"/>
 	<classpathentry kind="output" path="output/eclipse-classes"/>
 </classpath>

Modified: trunk/server/src/main/org/jboss/ejb/EjbModule.java
===================================================================
--- trunk/server/src/main/org/jboss/ejb/EjbModule.java	2007-07-09 16:49:57 UTC (rev 63912)
+++ trunk/server/src/main/org/jboss/ejb/EjbModule.java	2007-07-09 18:00:04 UTC (rev 63913)
@@ -44,6 +44,7 @@
 import javax.security.jacc.PolicyContextException;
 import javax.transaction.TransactionManager;
 
+import org.jboss.classloading.spi.RealClassLoader;
 import org.jboss.deployers.structure.spi.DeploymentUnit;
 import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
 import org.jboss.deployment.DeploymentException;
@@ -76,6 +77,7 @@
 import org.jboss.util.loading.DelegatingClassLoader;
 import org.jboss.virtual.VirtualFile;
 import org.jboss.web.WebClassLoader;
+import org.jboss.web.WebClassLoaderFactory;
 import org.jboss.web.WebServiceMBean;
 import org.w3c.dom.Element;
 
@@ -761,10 +763,7 @@
       try
       {
          Class clazz = unitCl.loadClass(webClassLoaderName);
-         Constructor constructor = clazz.getConstructor(
-            new Class[]{ObjectName.class, RepositoryClassLoader.class});
-         wcl = (WebClassLoader) constructor.newInstance(
-            new Object[]{container.getJmxName(), unitCl});
+         wcl = WebClassLoaderFactory.createWebClassLoader(clazz, container.getJmxName(), (RealClassLoader) unitCl);
       }
       catch (Exception e)
       {

Modified: trunk/server/src/main/org/jboss/web/WebClassLoader.java
===================================================================
--- trunk/server/src/main/org/jboss/web/WebClassLoader.java	2007-07-09 16:49:57 UTC (rev 63912)
+++ trunk/server/src/main/org/jboss/web/WebClassLoader.java	2007-07-09 18:00:04 UTC (rev 63913)
@@ -22,11 +22,11 @@
 package org.jboss.web;
 
 import java.net.URL;
-import java.net.URLClassLoader;
+
 import javax.management.ObjectName;
 
-import org.jboss.mx.loading.RepositoryClassLoader;
-import org.jboss.mx.loading.LoaderRepositoryClassLoader;
+import org.jboss.classloading.spi.DelegatingClassLoader;
+import org.jboss.classloading.spi.RealClassLoader;
 
 /** A simple subclass of URLClassLoader that is used in conjunction with the
 the WebService mbean to allow dynamic loading of resources and classes from
@@ -50,9 +50,10 @@
 @author Sacha Labourey <sacha.labourey at cogito-info.ch>
 @author Vladimir Blagojevic <vladimir at xisnext.2y.net>
 @author  <a href="mailto:reverbel at ime.usp.br">Francisco Reverbel</a>
+ at author adrian at jboss.org
 @version $Revision$
 */
-public class WebClassLoader extends LoaderRepositoryClassLoader
+public class WebClassLoader extends DelegatingClassLoader
 {
     /** This WebClassLoader is associated with this container. */
     private ObjectName containerName;
@@ -63,10 +64,14 @@
    private String codebaseString;
 
    /** Creates new WebClassLoader.
-       Subclasses must have a constructor with the same signature. */
-   public WebClassLoader(ObjectName containerName, RepositoryClassLoader parent)
+    *  Subclasses must have a constructor with the same signature.
+    *  
+    * @param containerName the container name
+    * @param parent the parent real classloader
+    */
+   public WebClassLoader(ObjectName containerName, RealClassLoader parent)
    {
-      super(parent, parent.getLoaderRepository());
+      super(parent);
       this.containerName = containerName;
    }
 
@@ -87,32 +92,14 @@
         return containerName;
     }
 
-    /** Returns the single URL for my parent, an UnifiedClassLoader. */
-    public URL getURL()
-    {
-        return ((RepositoryClassLoader) getParent()).getURL();
-    }
-
     /** Get the list of URLs that should be used as the RMI annotated codebase.
-     This is the URLs previously set via setWebURLs. If setWebURLs has not
-     been invoked or was passed in a null value, the super class value of
-     getURLs() is used.
-    @return the local web URLs if not null, else the value of super.getURLs()
+     This is the URLs previously set via setWebURLs.
+    @return the local web URLs if not null
      */
     public URL[] getURLs()
     {
-        URL[] urls = webURLs;
-        if( urls == null )
-            urls = super.getURLs();
-        return urls;
+        return webURLs;
     }
-    /** Access the URLClassLoader.getURLs() value.
-     @return the URLs used for local class and resource loading
-     */
-    public URL[] getLocalURLs()
-    {
-        return super.getURLs();
-    }
 
     /** Set the URLs that should be returned from this classes getURLs() override.
      @param webURLs, the set of URL codebases to be used for remote class loading.

Added: trunk/server/src/main/org/jboss/web/WebClassLoaderFactory.java
===================================================================
--- trunk/server/src/main/org/jboss/web/WebClassLoaderFactory.java	                        (rev 0)
+++ trunk/server/src/main/org/jboss/web/WebClassLoaderFactory.java	2007-07-09 18:00:04 UTC (rev 63913)
@@ -0,0 +1,43 @@
+/*
+* 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.web;
+
+import java.lang.reflect.Constructor;
+
+import javax.management.ObjectName;
+
+import org.jboss.classloading.spi.RealClassLoader;
+
+/**
+ * WebClassLoaderFactory.
+ * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class WebClassLoaderFactory
+{
+   public static WebClassLoader createWebClassLoader(Class<?> webClassLoaderClass, ObjectName containerName, RealClassLoader parent) throws Exception
+   {
+      Constructor constructor = webClassLoaderClass.getConstructor(new Class[]{ObjectName.class, RealClassLoader.class});
+      return (WebClassLoader) constructor.newInstance(new Object[]{containerName, parent});
+   }
+}

Modified: trunk/system/src/main/org/jboss/system/server/ServerLoader.java
===================================================================
--- trunk/system/src/main/org/jboss/system/server/ServerLoader.java	2007-07-09 16:49:57 UTC (rev 63912)
+++ trunk/system/src/main/org/jboss/system/server/ServerLoader.java	2007-07-09 18:00:04 UTC (rev 63913)
@@ -92,6 +92,7 @@
       "jboss-aop-mc-int.jar",
       "trove.jar",
       "jboss-vfs.jar",
+      "jboss-classloading-spi.jar",
       "jboss-container.jar",
       "jboss-dependency.jar",
       "jboss-kernel.jar",

Modified: trunk/system/src/main/org/jboss/system/server/profileservice/hotdeploy/HDScanner.java
===================================================================
--- trunk/system/src/main/org/jboss/system/server/profileservice/hotdeploy/HDScanner.java	2007-07-09 16:49:57 UTC (rev 63912)
+++ trunk/system/src/main/org/jboss/system/server/profileservice/hotdeploy/HDScanner.java	2007-07-09 18:00:04 UTC (rev 63913)
@@ -30,7 +30,6 @@
 
 import org.jboss.deployers.client.spi.main.MainDeployer;
 import org.jboss.deployers.vfs.spi.client.VFSDeployment;
-import org.jboss.kernel.Kernel;
 import org.jboss.kernel.spi.dependency.KernelController;
 import org.jboss.logging.Logger;
 import org.jboss.profileservice.spi.ModificationInfo;

Modified: trunk/system-jmx/.classpath
===================================================================
--- trunk/system-jmx/.classpath	2007-07-09 16:49:57 UTC (rev 63912)
+++ trunk/system-jmx/.classpath	2007-07-09 18:00:04 UTC (rev 63913)
@@ -31,5 +31,6 @@
 	<classpathentry kind="lib" path="/thirdparty/jboss/microcontainer/lib/jboss-deployers-spi.jar" sourcepath="/thirdparty/jboss/microcontainer/lib/jboss-deployers-spi-sources.jar"/>
 	<classpathentry kind="lib" path="/thirdparty/jboss/microcontainer/lib/jboss-deployers-vfs-spi.jar" sourcepath="/thirdparty/jboss/microcontainer/lib/jboss-deployers-vfs-spi-sources.jar"/>
 	<classpathentry kind="lib" path="/thirdparty/jboss/microcontainer/lib/jboss-deployers-impl.jar" sourcepath="/thirdparty/jboss/microcontainer/lib/jboss-deployers-impl-sources.jar"/>
+	<classpathentry kind="lib" path="/thirdparty/jboss/integration/lib/jboss-integration.jar" sourcepath="/thirdparty/jboss/integration/lib/jboss-integration-sources.jar"/>
 	<classpathentry kind="output" path="output/eclipse-classes"/>
 </classpath>

Modified: trunk/system-jmx/build.xml
===================================================================
--- trunk/system-jmx/build.xml	2007-07-09 16:49:57 UTC (rev 63912)
+++ trunk/system-jmx/build.xml	2007-07-09 18:00:04 UTC (rev 63913)
@@ -76,6 +76,7 @@
       <path refid="dom4j.dom4j.classpath"/>
       <path refid="jboss.jbossxb.classpath"/>
       <path refid="jboss.microcontainer.classpath"/>
+      <path refid="jboss.integration.classpath"/>
       <path refid="jboss.jboss.vfs.classpath"/>
       <path refid="jboss.common.core.classpath"/>
       <path refid="jboss.common.logging.spi.classpath"/>




More information about the jboss-cvs-commits mailing list