Author: markt
Date: Tue Sep  8 11:00:51 2015
New Revision: 1701769

URL: http://svn.apache.org/r1701769
Log:
More preparation for implementing parallel class loading.
Replace the use of the (non-parallel capable) StandardClassLoader with the 
(parallel capable if using the right JRE) URLClassLoader.

Modified:
    tomcat/tc7.0.x/trunk/build.xml
    
tomcat/tc7.0.x/trunk/java/org/apache/catalina/loader/StandardClassLoader.java
    tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/Bootstrap.java
    
tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/ClassLoaderFactory.java
    tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml

Modified: tomcat/tc7.0.x/trunk/build.xml
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/build.xml?rev=1701769&r1=1701768&r2=1701769&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/build.xml (original)
+++ tomcat/tc7.0.x/trunk/build.xml Tue Sep  8 11:00:51 2015
@@ -318,7 +318,6 @@
     <include name="org/apache/catalina/startup/ClassLoaderFactory.*" />
     <include name="org/apache/catalina/startup/ClassLoaderFactory$*.*" />
     <include name="org/apache/catalina/startup/Tool.*" />
-    <include name="org/apache/catalina/loader/StandardClassLoader*.*" />
     <include name="org/apache/catalina/loader/Extension.*" />
     <include name="org/apache/catalina/loader/Reloader.*" />
     <include name="org/apache/catalina/security/SecurityClassLoad.*" />

Modified: 
tomcat/tc7.0.x/trunk/java/org/apache/catalina/loader/StandardClassLoader.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/loader/StandardClassLoader.java?rev=1701769&r1=1701768&r2=1701769&view=diff
==============================================================================
--- 
tomcat/tc7.0.x/trunk/java/org/apache/catalina/loader/StandardClassLoader.java 
(original)
+++ 
tomcat/tc7.0.x/trunk/java/org/apache/catalina/loader/StandardClassLoader.java 
Tue Sep  8 11:00:51 2015
@@ -27,7 +27,7 @@ import java.net.URLClassLoader;
  *
  * @author Craig R. McClanahan
  * @author Remy Maucherat
- * @deprecated  Unnecessary. Will be removed in Tomcat 8.0.x.
+ * @deprecated  Unused. Will be removed in Tomcat 8.0.x.
  */
 @Deprecated
 public class StandardClassLoader

Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/Bootstrap.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/Bootstrap.java?rev=1701769&r1=1701768&r2=1701769&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/Bootstrap.java 
(original)
+++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/Bootstrap.java Tue 
Sep  8 11:00:51 2015
@@ -14,13 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
-
 package org.apache.catalina.startup;
 
-
 import java.io.File;
-import java.lang.management.ManagementFactory;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.net.MalformedURLException;
@@ -29,10 +25,6 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.StringTokenizer;
 
-import javax.management.MBeanServer;
-import javax.management.MBeanServerFactory;
-import javax.management.ObjectName;
-
 import org.apache.catalina.Globals;
 import org.apache.catalina.security.SecurityClassLoad;
 import org.apache.catalina.startup.ClassLoaderFactory.Repository;
@@ -40,7 +32,6 @@ import org.apache.catalina.startup.Class
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
 
-
 /**
  * Bootstrap loader for Catalina.  This application constructs a class loader
  * for use in loading the Catalina internal classes (by accumulating all of the
@@ -53,7 +44,6 @@ import org.apache.juli.logging.LogFactor
  * @author Craig R. McClanahan
  * @author Remy Maucherat
  */
-
 public final class Bootstrap {
 
     private static final Log log = LogFactory.getLog(Bootstrap.class);
@@ -146,24 +136,7 @@ public final class Bootstrap {
             }
         }
 
-        ClassLoader classLoader = ClassLoaderFactory.createClassLoader
-            (repositories, parent);
-
-        // Retrieving MBean server
-        MBeanServer mBeanServer = null;
-        if (MBeanServerFactory.findMBeanServer(null).size() > 0) {
-            mBeanServer = MBeanServerFactory.findMBeanServer(null).get(0);
-        } else {
-            mBeanServer = ManagementFactory.getPlatformMBeanServer();
-        }
-
-        // Register the server classloader
-        ObjectName objectName =
-            new ObjectName("Catalina:type=ServerClassLoader,name=" + name);
-        mBeanServer.registerMBean(classLoader, objectName);
-
-        return classLoader;
-
+        return ClassLoaderFactory.createClassLoader(repositories, parent);
     }
 
     /**

Modified: 
tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/ClassLoaderFactory.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/ClassLoaderFactory.java?rev=1701769&r1=1701768&r2=1701769&view=diff
==============================================================================
--- 
tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/ClassLoaderFactory.java 
(original)
+++ 
tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/ClassLoaderFactory.java 
Tue Sep  8 11:00:51 2015
@@ -22,6 +22,7 @@ package org.apache.catalina.startup;
 import java.io.File;
 import java.io.IOException;
 import java.net.URL;
+import java.net.URLClassLoader;
 import java.security.AccessController;
 import java.security.PrivilegedAction;
 import java.util.LinkedHashSet;
@@ -29,7 +30,6 @@ import java.util.List;
 import java.util.Locale;
 import java.util.Set;
 
-import org.apache.catalina.loader.StandardClassLoader;
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
 
@@ -124,13 +124,13 @@ public final class ClassLoaderFactory {
         // Construct the class loader itself
         final URL[] array = set.toArray(new URL[set.size()]);
         return AccessController.doPrivileged(
-                new PrivilegedAction<StandardClassLoader>() {
+                new PrivilegedAction<URLClassLoader>() {
                     @Override
-                    public StandardClassLoader run() {
+                    public URLClassLoader run() {
                         if (parent == null)
-                            return new StandardClassLoader(array);
+                            return new URLClassLoader(array);
                         else
-                            return new StandardClassLoader(array, parent);
+                            return new URLClassLoader(array, parent);
                     }
                 });
     }
@@ -222,13 +222,13 @@ public final class ClassLoaderFactory {
             }
 
         return AccessController.doPrivileged(
-                new PrivilegedAction<StandardClassLoader>() {
+                new PrivilegedAction<URLClassLoader>() {
                     @Override
-                    public StandardClassLoader run() {
+                    public URLClassLoader run() {
                         if (parent == null)
-                            return new StandardClassLoader(array);
+                            return new URLClassLoader(array);
                         else
-                            return new StandardClassLoader(array, parent);
+                            return new URLClassLoader(array, parent);
                     }
                 });
     }

Modified: tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml?rev=1701769&r1=1701768&r2=1701769&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Tue Sep  8 11:00:51 2015
@@ -74,6 +74,12 @@
         <bug>58320</bug>: Fix concurrent access of request attributes which is
         possible during asynchronous processing. (markt)
       </fix> 
+      <scode>
+        In preparation for implementing enhancement <bug>57681</bug>, replace
+        the use of the <code>StandardClassLoader</code> with
+        <code>URLClassLoader</code>. This removes the server class loader from
+        JMX. (markt)
+      </scode>
     </changelog>
   </subsection>
   <subsection name="Coyote">



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to