if(annotation == null) clss[0] = RMIClassLoader.loadClass(intfs[0]);
for (int i = 0; i < intfs.length; i++) { if (annotation == null) clss[i] = RMIClassLoader.loadClass(intfs[i]); else clss[i] = RMIClassLoader.loadClass(annotation, intfs[i]); }  ClassLoader loader;  if (clss.length > 0) {  ArrayList loaders = new ArrayList(intfs.length); ClassLoader cx; for (int i = 0; i < clss.length; i++) { cx = clss[i].getClassLoader(); if (!loaders.contains(cx)) { loaders.add(0, cx); } } loader = new CombinedClassLoader(loaders); }
protected Class resolveProxyClass(String intfs[])        throws IOException, ClassNotFoundException{    String annotation = (String)getAnnotation();	    Class clss[] = new Class[intfs.length];    if(annotation == null)        clss[0] = RMIClassLoader.loadClass(intfs[0]);    else        clss[0] = RMIClassLoader.loadClass(annotation, intfs[0]);        //assume all interfaces can be loaded by the same classloader    ClassLoader loader = clss[0].getClassLoader();    for (int i = 0; i < intfs.length; i++)        clss[i] = Class.forName(intfs[i], false, loader);            try {    return Proxy.getProxyClass(loader, clss);	} catch (IllegalArgumentException e) {	    throw new ClassNotFoundException(null, e);	}  }