⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xmlblasterclassloader.java

📁 java开源的企业总线.xmlBlaster
💻 JAVA
字号:
/*------------------------------------------------------------------------------Name:      XmlBlasterClassLoader.javaProject:   xmlBlaster.orgCopyright: xmlBlaster.org, see xmlBlaster-LICENSE fileComment:   Creates a new class loader for the XmlBlaster Serverthread.Author:    konrad.krafft@doubleslash.de------------------------------------------------------------------------------*/package org.xmlBlaster.util.classloader;import java.net.*;import java.util.logging.Logger;import java.util.logging.Level;import org.xmlBlaster.util.Global;/** * This class loader changes the loading precedence of the JVM * to prefer locally found classes and only if not found delegate * to the JVM class loader */public class XmlBlasterClassLoader extends URLClassLoader {   private String ME = "XmlBlasterClassLoader";   private static Logger log = Logger.getLogger(XmlBlasterClassLoader.class.getName());   private final boolean useXmlBlasterClassloader;   public XmlBlasterClassLoader(Global glob, URL[] urls) {      super(urls);      useXmlBlasterClassloader = glob.getProperty().get("classloader.xmlBlaster", false);   }   public Class loadClass(String name) throws ClassNotFoundException {      //debugState(name);      ClassLoader parent = getClass().getClassLoader();      if (!useXmlBlasterClassloader) {         return parent.loadClass(name);      }      if (name.startsWith("java.")) {         if (log.isLoggable(Level.FINE)) log.fine("Using default JVM class loader for java class " + name);         return parent.loadClass(name);      }      if (name.startsWith("org.xmlBlaster.I_Main") || name.startsWith("org.omg") || name.startsWith("org.w3c")) {         if (log.isLoggable(Level.FINE)) log.fine("Using default JVM class loader for " + name);         return parent.loadClass(name);      }               Class clazz = findLoadedClass(name);      if (clazz != null) {            if (log.isLoggable(Level.FINE)) log.fine("Using specific class loader from cache for " + name);            return clazz;      }      try {         clazz = findClass(name);         //resolveClass(clazz);         if (log.isLoggable(Level.FINE)) log.fine("Using specific class loader for " + name);         return clazz;      }      catch (ClassNotFoundException e) {            if (log.isLoggable(Level.FINE)) log.fine("Using default JVM class loader for " + name + " as not found in specific class loader");            clazz = parent.loadClass(name);            resolveClass(clazz);            return clazz;      }   } // end of loadClass   public void appendURL(URL url) {      addURL(url);   }   /**    * Helper for debugging classpath.    */   private void debugState(String name) {     log.fine("Looking up class: " + name);     log.fine("Local path is: " + getURLPath());        }   String getURLPath() {      URL[] urls = getURLs();      StringBuffer buff = new StringBuffer();      if (urls != null && urls.length > 0) {         for (int i = 0;i<urls.length;i++) {            buff.append(urls[i].toString()).append(";");         }      }      return buff.toString();   }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -