/************************************************************************************** * Copyright (c) Jonas Bon�r, Alexandre Vasseur. All rights reserved. * * http://aspectwerkz.codehaus.org * * ---------------------------------------------------------------------------------- * * The software in this package is published under the terms of the LGPL license * * a copy of which has been included with this distribution in the license.txt file. * **************************************************************************************/ package org.codehaus.aspectwerkz.compiler; import java.net.URL; import java.net.URLClassLoader; /** * VerifierClassLoader does not follow parent delegation model. <p/>It allow to run the -verify option of offline mode * on aspectwerkz itself. * * @author <a href="mailto:alex@gnilux.com">Alexandre Vasseur </a> */ public class VerifierClassLoader extends URLClassLoader { public VerifierClassLoader(URL[] urls, ClassLoader parent) { super(urls, parent); } 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 { // try to load the class localy c = findClass(name); } catch (ClassNotFoundException e) { // delegate to parent c = getParent().loadClass(name); } } if (resolve) { resolveClass(c); } return c; } }