commit 1c15b90aa77cbc242bcec7ea3b38eb46e4c037cb Author: Juan Hernandez Date: Sat Mar 31 16:25:02 2012 +0200 Remove the dependency on istack-commons diff --git a/codemodel-annotation-compiler/pom.xml b/codemodel-annotation-compiler/pom.xml index 100e084..e1459bc 100644 --- a/codemodel-annotation-compiler/pom.xml +++ b/codemodel-annotation-compiler/pom.xml @@ -60,17 +60,6 @@ 2.6 - com.sun.istack - istack-commons-tools - 2.5 - - - org.apache.ant - ant - - - - org.apache.ant ant 1.7.0 diff --git a/codemodel-annotation-compiler/src/main/java/com/sun/codemodel/ac/ACTask.java b/codemodel-annotation-compiler/src/main/java/com/sun/codemodel/ac/ACTask.java index d5b0a14..c6d799d 100644 --- a/codemodel-annotation-compiler/src/main/java/com/sun/codemodel/ac/ACTask.java +++ b/codemodel-annotation-compiler/src/main/java/com/sun/codemodel/ac/ACTask.java @@ -64,7 +64,6 @@ import com.sun.codemodel.JDefinedClass; import com.sun.codemodel.JMod; import com.sun.codemodel.JPackage; import com.sun.codemodel.JType; -import com.sun.istack.tools.MaskingClassLoader; import java.io.Closeable; import java.net.MalformedURLException; import java.net.URL; diff --git a/codemodel-annotation-compiler/src/main/java/com/sun/codemodel/ac/MaskingClassLoader.java b/codemodel-annotation-compiler/src/main/java/com/sun/codemodel/ac/MaskingClassLoader.java new file mode 100644 index 0000000..d303c11 --- /dev/null +++ b/codemodel-annotation-compiler/src/main/java/com/sun/codemodel/ac/MaskingClassLoader.java @@ -0,0 +1,84 @@ +/* + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + * + * Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved. + * + * The contents of this file are subject to the terms of either the GNU + * General Public License Version 2 only ("GPL") or the Common Development + * and Distribution License("CDDL") (collectively, the "License"). You + * may not use this file except in compliance with the License. You can + * obtain a copy of the License at + * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html + * or packager/legal/LICENSE.txt. See the License for the specific + * language governing permissions and limitations under the License. + * + * When distributing the software, include this License Header Notice in each + * file and include the License file at packager/legal/LICENSE.txt. + * + * GPL Classpath Exception: + * Oracle designates this particular file as subject to the "Classpath" + * exception as provided by Oracle in the GPL Version 2 section of the License + * file that accompanied this code. + * + * Modifications: + * If applicable, add the following below the License Header, with the fields + * enclosed by brackets [] replaced by your own identifying information: + * "Portions Copyright [year] [name of copyright owner]" + * + * Contributor(s): + * If you wish your version of this file to be governed by only the CDDL or + * only the GPL Version 2, indicate your decision by adding "[Contributor] + * elects to include this software in this distribution under the [CDDL or GPL + * Version 2] license." If you don't indicate a single choice of license, a + * recipient has the option to distribute your version of this file under + * either the CDDL, the GPL Version 2 or to extend the choice of license to + * its licensees as provided above. However, if you add GPL Version 2 code + * and therefore, elected the GPL Version 2 license, then the option applies + * only if the new code is made subject to such option by the copyright + * holder. + */ + +package com.sun.codemodel.ac; + +import java.util.Collection; + +/** + * {@link ClassLoader} that masks a specified set of classes + * from its parent class loader. + * + *

+ * This code is used to create an isolated environment. + * + * @author Kohsuke Kawaguchi + */ +public class MaskingClassLoader extends ClassLoader { + + private final String[] masks; + + public MaskingClassLoader(String... masks) { + this.masks = masks; + } + + public MaskingClassLoader(Collection masks) { + this(masks.toArray(new String[masks.size()])); + } + + public MaskingClassLoader(ClassLoader parent, String... masks) { + super(parent); + this.masks = masks; + } + + public MaskingClassLoader(ClassLoader parent, Collection masks) { + this(parent, masks.toArray(new String[masks.size()])); + } + + @Override + protected synchronized Class loadClass(String name, boolean resolve) throws ClassNotFoundException { + for (String mask : masks) { + if(name.startsWith(mask)) + throw new ClassNotFoundException(); + } + + return super.loadClass(name, resolve); + } +}