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]