Author: markt
Date: Mon Oct 23 16:23:31 2006
New Revision: 467179
URL: http://svn.apache.org/viewvc?view=rev&rev=467179
Log:
Fix properties.
Modified:
tomcat/connectors/trunk/util/loader/org/apache/tomcat/util/loader/RepositoryClassLoader.java
(contents, props changed)
Modified:
tomcat/connectors/trunk/util/loader/org/apache/tomcat/util/loader/RepositoryClassLoader.java
URL:
http://svn.apache.org/viewvc/tomcat/connectors/trunk/util/loader/org/apache/tomcat/util/loader/RepositoryClassLoader.java?view=diff&rev=467179&r1=467178&r2=467179
==============================================================================
---
tomcat/connectors/trunk/util/loader/org/apache/tomcat/util/loader/RepositoryClassLoader.java
(original)
+++
tomcat/connectors/trunk/util/loader/org/apache/tomcat/util/loader/RepositoryClassLoader.java
Mon Oct 23 16:23:31 2006
@@ -1,254 +1,254 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-package org.apache.tomcat.util.loader;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.net.URLClassLoader;
-import java.util.Enumeration;
-import java.util.Vector;
-
-/**
- * Class loader associated with a repository ( common, shared, server, etc ).
- *
- * This class loader will never load any class by itself ( since it has no
repository ),
- * it will just delegate to modules.
- *
- * Refactored as a separate class to make the code cleaner.
- * Based on catalina loader.
- *
- * @author Costin Manolache
- * @author Remy Maucherat
- * @author Craig R. McClanahan
- */
-public class RepositoryClassLoader
- extends URLClassLoader
-{
- private static final boolean DEBUG=false;
//LoaderProperties.getProperty("loader.debug.ModuleClassLoader") != null;
- private static final boolean
DEBUGNF=false;//LoaderProperties.getProperty("loader.debug.ModuleClassLoaderNF")
!= null;
-
- // ----------------------------------------------------------- Constructors
-
- public RepositoryClassLoader(URL repositories[], ClassLoader parent,
Repository lg) {
- super(repositories, parent);
- this.repository=lg;
- }
-
-
- public RepositoryClassLoader(URL repositories[], Repository lg) {
- super(repositories);
- this.repository=lg;
- }
-
-
- // ----------------------------------------------------- Instance Variables
-
- private Repository repository;
-
- // ---------------------------------------------------- ClassLoader Methods
-
-
- /**
- * Find the specified class in our local repositories, if possible. If
- * not found, throw <code>ClassNotFoundException</code>.
- *
- * @param name Name of the class to be loaded
- *
- * @exception ClassNotFoundException if the class was not found
- */
- public Class findClass(String name) throws ClassNotFoundException {
-
- Class clazz = null;
-
- Enumeration modulesE=repository.getModules();
- while( modulesE.hasMoreElements() ) {
- try {
- Module m=(Module)modulesE.nextElement();
- return
((ModuleClassLoader)m.getClassLoader()).findClass2(name, false);
- } catch( ClassNotFoundException ex ) {
- // ignore
- }
- }
- throw new ClassNotFoundException( name );
-
- }
-
- /** Same as findClass, but also checks if the class has been previously
- * loaded.
- *
- * In most implementations, findClass() doesn't check with
findLoadedClass().
- * In order to implement repository, we need to ask each loader in the
group
- * to load only from it's local resources - however this will lead to
errors
- * ( duplicated definition ) if findClass() is used.
- *
- * @param name
- * @return
- * @throws ClassNotFoundException
- */
- public Class findLocalClass(String name) throws ClassNotFoundException
- {
- Enumeration modulesE=repository.getModules();
- while( modulesE.hasMoreElements() ) {
- try {
- Module m=(Module)modulesE.nextElement();
- return
((ModuleClassLoader)m.getClassLoader()).findLocalClass(name);
- } catch( ClassNotFoundException ex ) {
- // ignore
- }
- }
- throw new ClassNotFoundException( name );
- }
-
-
-
-
- /**
- * Find the specified resource in our local repository, and return a
- * <code>URL</code> refering to it, or <code>null</code> if this resource
- * cannot be found.
- *
- * @param name Name of the resource to be found
- */
- public URL findResource(final String name) {
- URL url = null;
- Enumeration modulesE=repository.getModules();
- while( modulesE.hasMoreElements() ) {
- Module m=(Module)modulesE.nextElement();
-
url=((ModuleClassLoader)m.getClassLoader()).findResource2(name, false);
- if( url!= null ) {
- return url;
- }
- }
-
- if (url==null && DEBUG) {
- if (DEBUGNF) log("findResource() NOTFOUND " + name );
- }
-
- return null;
- }
-
-
- /**
- * Return an enumeration of <code>URLs</code> representing all of the
- * resources with the given name. If no resources with this name are
- * found, return an empty enumeration.
- *
- * @param name Name of the resources to be found
- *
- * @exception IOException if an input/output error occurs
- */
- public Enumeration findResources(String name) throws IOException {
- Vector result=new Vector();
-
- Enumeration modulesE=repository.getModules();
- while( modulesE.hasMoreElements() ) {
- Module m=(Module)modulesE.nextElement();
- Enumeration
myRes=((ModuleClassLoader)m.getClassLoader()).findResources2(name,false);
- if( myRes!=null ) {
- while( myRes.hasMoreElements() ) {
- result.addElement(myRes.nextElement());
- }
- }
- }
-
- return result.elements();
-
- }
-
- // Next methods implement the search alghoritm - parent, repo, delegation,
etc
-
- /** getResource() - modified to implement the search alghoritm
- *
- */
- public URL getResource(String name) {
- URL url = null;
- Enumeration modulesE=repository.getModules();
- while( modulesE.hasMoreElements() ) {
- Module m=(Module)modulesE.nextElement();
- url=((ModuleClassLoader)m.getClassLoader()).getResource2(name,
null, false);
- if( url!= null ) {
- return url;
- }
- }
-
- if (url==null && DEBUG) {
- if (DEBUGNF) log("findResource() NOTFOUND " + name );
- }
-
- return null;
- }
-
- /**
- * Load the class with the specified name, searching using the following
- * algorithm until it finds and returns the class. If the class cannot
- * be found, returns <code>ClassNotFoundException</code>.
- * <ul>
- * <li>Call <code>findLoadedClass(String)</code> to check if the
- * class has already been loaded. If it has, the same
- * <code>Class</code> object is returned.</li>
- * <li>If the <code>delegate</code> property is set to <code>true</code>,
- * call the <code>loadClass()</code> method of the parent class
- * loader, if any.</li>
- * <li>Call <code>findClass()</code> to find this class in our locally
- * defined repositories.</li>
- * <li>Call the <code>loadClass()</code> method of our parent
- * class loader, if any.</li>
- * </ul>
- * If the class was found using the above steps, and the
- * <code>resolve</code> flag is <code>true</code>, this method will then
- * call <code>resolveClass(Class)</code> on the resulting Class object.
- *
- * @param name Name of the class to be loaded
- * @param resolve If <code>true</code> then resolve the class
- *
- * @exception ClassNotFoundException if the class was not found
- */
- public Class loadClass(String name, boolean resolve)
- throws ClassNotFoundException
- {
-
- Class clazz = null;
- Enumeration modulesE=repository.getModules();
- while( modulesE.hasMoreElements() ) {
- try {
- Module m=(Module)modulesE.nextElement();
- return
((ModuleClassLoader)m.getClassLoader()).loadClass2(name, resolve, false);
- } catch( ClassNotFoundException ex ) {
- // ignore
- }
- }
- throw new ClassNotFoundException( name );
-
- }
-
-
- // ------------------ Local methods ------------------------
-
- private void log(String s ) {
- System.err.println("RepositoryClassLoader: " + s);
- }
- private void log(String s, Throwable t ) {
- System.err.println("RepositoryClassLoader: " + s);
- t.printStackTrace();
- }
-
-}
-
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+package org.apache.tomcat.util.loader;
+
+import java.io.File;
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.util.Enumeration;
+import java.util.Vector;
+
+/**
+ * Class loader associated with a repository ( common, shared, server, etc ).
+ *
+ * This class loader will never load any class by itself ( since it has no
repository ),
+ * it will just delegate to modules.
+ *
+ * Refactored as a separate class to make the code cleaner.
+ * Based on catalina loader.
+ *
+ * @author Costin Manolache
+ * @author Remy Maucherat
+ * @author Craig R. McClanahan
+ */
+public class RepositoryClassLoader
+ extends URLClassLoader
+{
+ private static final boolean DEBUG=false;
//LoaderProperties.getProperty("loader.debug.ModuleClassLoader") != null;
+ private static final boolean
DEBUGNF=false;//LoaderProperties.getProperty("loader.debug.ModuleClassLoaderNF")
!= null;
+
+ // ----------------------------------------------------------- Constructors
+
+ public RepositoryClassLoader(URL repositories[], ClassLoader parent,
Repository lg) {
+ super(repositories, parent);
+ this.repository=lg;
+ }
+
+
+ public RepositoryClassLoader(URL repositories[], Repository lg) {
+ super(repositories);
+ this.repository=lg;
+ }
+
+
+ // ----------------------------------------------------- Instance Variables
+
+ private Repository repository;
+
+ // ---------------------------------------------------- ClassLoader Methods
+
+
+ /**
+ * Find the specified class in our local repositories, if possible. If
+ * not found, throw <code>ClassNotFoundException</code>.
+ *
+ * @param name Name of the class to be loaded
+ *
+ * @exception ClassNotFoundException if the class was not found
+ */
+ public Class findClass(String name) throws ClassNotFoundException {
+
+ Class clazz = null;
+
+ Enumeration modulesE=repository.getModules();
+ while( modulesE.hasMoreElements() ) {
+ try {
+ Module m=(Module)modulesE.nextElement();
+ return
((ModuleClassLoader)m.getClassLoader()).findClass2(name, false);
+ } catch( ClassNotFoundException ex ) {
+ // ignore
+ }
+ }
+ throw new ClassNotFoundException( name );
+
+ }
+
+ /** Same as findClass, but also checks if the class has been previously
+ * loaded.
+ *
+ * In most implementations, findClass() doesn't check with
findLoadedClass().
+ * In order to implement repository, we need to ask each loader in the
group
+ * to load only from it's local resources - however this will lead to
errors
+ * ( duplicated definition ) if findClass() is used.
+ *
+ * @param name
+ * @return
+ * @throws ClassNotFoundException
+ */
+ public Class findLocalClass(String name) throws ClassNotFoundException
+ {
+ Enumeration modulesE=repository.getModules();
+ while( modulesE.hasMoreElements() ) {
+ try {
+ Module m=(Module)modulesE.nextElement();
+ return
((ModuleClassLoader)m.getClassLoader()).findLocalClass(name);
+ } catch( ClassNotFoundException ex ) {
+ // ignore
+ }
+ }
+ throw new ClassNotFoundException( name );
+ }
+
+
+
+
+ /**
+ * Find the specified resource in our local repository, and return a
+ * <code>URL</code> refering to it, or <code>null</code> if this resource
+ * cannot be found.
+ *
+ * @param name Name of the resource to be found
+ */
+ public URL findResource(final String name) {
+ URL url = null;
+ Enumeration modulesE=repository.getModules();
+ while( modulesE.hasMoreElements() ) {
+ Module m=(Module)modulesE.nextElement();
+
url=((ModuleClassLoader)m.getClassLoader()).findResource2(name, false);
+ if( url!= null ) {
+ return url;
+ }
+ }
+
+ if (url==null && DEBUG) {
+ if (DEBUGNF) log("findResource() NOTFOUND " + name );
+ }
+
+ return null;
+ }
+
+
+ /**
+ * Return an enumeration of <code>URLs</code> representing all of the
+ * resources with the given name. If no resources with this name are
+ * found, return an empty enumeration.
+ *
+ * @param name Name of the resources to be found
+ *
+ * @exception IOException if an input/output error occurs
+ */
+ public Enumeration findResources(String name) throws IOException {
+ Vector result=new Vector();
+
+ Enumeration modulesE=repository.getModules();
+ while( modulesE.hasMoreElements() ) {
+ Module m=(Module)modulesE.nextElement();
+ Enumeration
myRes=((ModuleClassLoader)m.getClassLoader()).findResources2(name,false);
+ if( myRes!=null ) {
+ while( myRes.hasMoreElements() ) {
+ result.addElement(myRes.nextElement());
+ }
+ }
+ }
+
+ return result.elements();
+
+ }
+
+ // Next methods implement the search alghoritm - parent, repo, delegation,
etc
+
+ /** getResource() - modified to implement the search alghoritm
+ *
+ */
+ public URL getResource(String name) {
+ URL url = null;
+ Enumeration modulesE=repository.getModules();
+ while( modulesE.hasMoreElements() ) {
+ Module m=(Module)modulesE.nextElement();
+ url=((ModuleClassLoader)m.getClassLoader()).getResource2(name,
null, false);
+ if( url!= null ) {
+ return url;
+ }
+ }
+
+ if (url==null && DEBUG) {
+ if (DEBUGNF) log("findResource() NOTFOUND " + name );
+ }
+
+ return null;
+ }
+
+ /**
+ * Load the class with the specified name, searching using the following
+ * algorithm until it finds and returns the class. If the class cannot
+ * be found, returns <code>ClassNotFoundException</code>.
+ * <ul>
+ * <li>Call <code>findLoadedClass(String)</code> to check if the
+ * class has already been loaded. If it has, the same
+ * <code>Class</code> object is returned.</li>
+ * <li>If the <code>delegate</code> property is set to <code>true</code>,
+ * call the <code>loadClass()</code> method of the parent class
+ * loader, if any.</li>
+ * <li>Call <code>findClass()</code> to find this class in our locally
+ * defined repositories.</li>
+ * <li>Call the <code>loadClass()</code> method of our parent
+ * class loader, if any.</li>
+ * </ul>
+ * If the class was found using the above steps, and the
+ * <code>resolve</code> flag is <code>true</code>, this method will then
+ * call <code>resolveClass(Class)</code> on the resulting Class object.
+ *
+ * @param name Name of the class to be loaded
+ * @param resolve If <code>true</code> then resolve the class
+ *
+ * @exception ClassNotFoundException if the class was not found
+ */
+ public Class loadClass(String name, boolean resolve)
+ throws ClassNotFoundException
+ {
+
+ Class clazz = null;
+ Enumeration modulesE=repository.getModules();
+ while( modulesE.hasMoreElements() ) {
+ try {
+ Module m=(Module)modulesE.nextElement();
+ return
((ModuleClassLoader)m.getClassLoader()).loadClass2(name, resolve, false);
+ } catch( ClassNotFoundException ex ) {
+ // ignore
+ }
+ }
+ throw new ClassNotFoundException( name );
+
+ }
+
+
+ // ------------------ Local methods ------------------------
+
+ private void log(String s ) {
+ System.err.println("RepositoryClassLoader: " + s);
+ }
+ private void log(String s, Throwable t ) {
+ System.err.println("RepositoryClassLoader: " + s);
+ t.printStackTrace();
+ }
+
+}
+
Propchange:
tomcat/connectors/trunk/util/loader/org/apache/tomcat/util/loader/RepositoryClassLoader.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
tomcat/connectors/trunk/util/loader/org/apache/tomcat/util/loader/RepositoryClassLoader.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]