classloaderconfig.java
来自「RESIN 3.2 最新源码」· Java 代码 · 共 229 行
JAVA
229 行
/* * Copyright (c) 1998-2008 Caucho Technology -- all rights reserved * * This file is part of Resin(R) Open Source * * Each copy or derived work must preserve the copyright notice and this * notice unmodified. * * Resin Open Source is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * Resin Open Source is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, or any warranty * of NON-INFRINGEMENT. See the GNU General Public License for more * details. * * You should have received a copy of the GNU General Public License * along with Resin Open Source; if not, write to the * * Free Software Foundation, Inc. * 59 Temple Place, Suite 330 * Boston, MA 02111-1307 USA * * @author Scott Ferguson */package com.caucho.loader;import com.caucho.config.ConfigException;import com.caucho.loader.enhancer.EnhancerManager;import com.caucho.loader.ivy.IvyLoader;import com.caucho.loader.osgi.OsgiLoader;import com.caucho.util.L10N;import com.caucho.vfs.Path;import javax.annotation.PostConstruct;import java.util.ArrayList;/** * Class for configuration. */public class ClassLoaderConfig { private final static L10N L = new L10N(ClassLoaderConfig.class); private EnvironmentClassLoader _classLoader; private EnvironmentBean _owner; private Path _source; private boolean _servletHack; private int _index; private ArrayList<String> _priorityPackages; public ClassLoaderConfig() throws ConfigException { Thread thread = Thread.currentThread(); ClassLoader loader = thread.getContextClassLoader(); if (! (loader instanceof EnvironmentClassLoader)) { throw new ConfigException(L.l("<class-loader> requires an EnvironmentClassLoader.")); } _classLoader = (EnvironmentClassLoader) loader; /* _owner = _classLoader.getOwner(); if (_owner == null) throw new ConfigException(L.l("<class-loader> requires an environment with an EnvironmentBean owner.")); */ } /** * Sets the servlet classloader hack. */ public void setServletHack(boolean hack) { _classLoader.setServletHack(hack); } /** * Adds a simple class loader. */ public void addSimpleLoader(SimpleLoader loader) { _classLoader.addLoader(loader, _index++); } /** * Creates an ivy class loader. */ public IvyLoader createIvyLoader() { IvyLoader loader = new IvyLoader(); loader.setLoader(_classLoader); return loader; } /** * Adds an ivy class loader. */ public void addIvyLoader(IvyLoader loader) { _classLoader.addLoader(loader, _index++); } /** * Adds a library loader, e.g. WEB-INF/lib */ public LibraryLoader createLibraryLoader() { LibraryLoader loader = new LibraryLoader(); loader.setLoader(_classLoader); return loader; } /** * Adds a directory class loader. */ public void addLibraryLoader(LibraryLoader loader) { _classLoader.addLoader(loader, _index++); } /** * Adds a compiling class loader. */ public void addCompilingLoader(CompilingLoader loader) { _classLoader.addLoader(loader, _index++); } /** * Creates an osgi class loader. */ public OsgiLoader createOsgiLoader() { OsgiLoader loader = new OsgiLoader(); loader.setLoader(_classLoader); return loader; } /** * Adds an osig class loader. */ public void addOsgiLoader(OsgiLoader loader) { _classLoader.addLoader(loader, _index++); } /** * Adds a tree loader. */ public TreeLoader createTreeLoader() { TreeLoader loader = new TreeLoader(); loader.setLoader(_classLoader); return loader; } public void addTreeLoader(TreeLoader loader) { _classLoader.addLoader(loader, _index++); } /** * Adds an enhancing loader. */ public EnhancerManager createEnhancer() throws ConfigException { return EnhancerManager.create(); } /** * Creates the aop. */ /* public AopClassEnhancer createAop() throws ConfigException { return AopClassEnhancer.create(); } */ /** * Add a package for which this class loader will * take precendence over the parent. Any class that * has a qualified name that starts with the passed value * will be loaded from this classloader instead of the * parent classloader. */ public void addPriorityPackage(String priorityPackage) { _classLoader.addPriorityPackage(priorityPackage); } /** * init */ @PostConstruct public void init() throws ConfigException { _classLoader.init(); _classLoader.validate(); } public String toString() { return "ClassLoaderConfig[]"; }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?