axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Amila Chinthaka Suriarachchi (JIRA)" <j...@apache.org>
Subject [jira] Created: (AXIS2-4349) Child first class loading
Date Fri, 15 May 2009 14:00:45 GMT
Child first class loading
-------------------------

                 Key: AXIS2-4349
                 URL: https://issues.apache.org/jira/browse/AXIS2-4349
             Project: Axis 2.0 (Axis2)
          Issue Type: Improvement
            Reporter: Amila Chinthaka Suriarachchi
         Attachments: child_first_class_loading.patch

Currently Axis2 follows the parent first class loading for service and module loading. 

The reason for this is it uses DeploymentClassLoader loader which is extended from the ClassLoader
class.

The loadClass method of the ClassLoader class looks like this.

protected synchronized Class<?> loadClass(String name, boolean resolve)
	throws ClassNotFoundException
    {
	// First, check if the class has already been loaded
	Class c = findLoadedClass(name);
	if (c == null) {
	    try {
		if (parent != null) {
		    c = parent.loadClass(name, false);
		} else {
		    c = findBootstrapClass0(name);
		}
	    } catch (ClassNotFoundException e) {
	        // If still not found, then invoke findClass in order
	        // to find the class.
	        c = findClass(name);
	    }
	}
	if (resolve) {
	    resolveClass(c);
	}
	return c;
    }

it first check for parent class loader classes and then for its classes. So we can add child
first class loading simply reversing this order in a override loadClass method as follows.

protected synchronized Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException
{

        Class c = findLoadedClass(name);
        if (c == null) {
            try {
                c = findClass(name);
            } catch (Exception e) {
                c = super.loadClass(name, resolve);
            }
        }
        return c;
    }



-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message