commit 32e65b3b431621e714bdf6a8277ff75e74115000 Author: Juan Hernandez juan.hernandez@redhat.com Date: Sat Mar 31 20:30:25 2012 +0200
Remove istack-commons-dependency
This patch removes the dependency on istack-commons. The reason to do that is that an updated version of the istack-commons will intruduce a dependency on codemodel, so we need to break this mutual dependency in advance.
codemodel-2.6-pom.patch | 15 --- codemodel-remove-istack-commons-dependency.patch | 130 ++++++++++++++++++++++ codemodel.spec | 15 ++- 3 files changed, 140 insertions(+), 20 deletions(-) --- diff --git a/codemodel-remove-istack-commons-dependency.patch b/codemodel-remove-istack-commons-dependency.patch new file mode 100644 index 0000000..8ce3252 --- /dev/null +++ b/codemodel-remove-istack-commons-dependency.patch @@ -0,0 +1,130 @@ +commit 1c15b90aa77cbc242bcec7ea3b38eb46e4c037cb +Author: Juan Hernandez juan.hernandez@redhat.com +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 @@ + <version>2.6</version> + </dependency> + <dependency> +- <groupId>com.sun.istack</groupId> +- <artifactId>istack-commons-tools</artifactId> +- <version>2.5</version> +- <exclusions> +- <exclusion> +- <groupId>org.apache.ant</groupId> +- <artifactId>ant</artifactId> +- </exclusion> +- </exclusions> +- </dependency> +- <dependency> + <groupId>org.apache.ant</groupId> + <artifactId>ant</artifactId> + <version>1.7.0</version> +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. ++ * ++ * <p> ++ * 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<String> masks) { ++ this(masks.toArray(new String[masks.size()])); ++ } ++ ++ public MaskingClassLoader(ClassLoader parent, String... masks) { ++ super(parent); ++ this.masks = masks; ++ } ++ ++ public MaskingClassLoader(ClassLoader parent, Collection<String> 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); ++ } ++} diff --git a/codemodel.spec b/codemodel.spec index 2634cbe..56b8314 100644 --- a/codemodel.spec +++ b/codemodel.spec @@ -1,6 +1,6 @@ Name: codemodel Version: 2.6 -Release: 3%{?dist} +Release: 4%{?dist} Summary: Java library for code generators Group: Development/Libraries License: CDDL and GPLv2 @@ -10,15 +10,15 @@ URL: http://codemodel.java.net # tar -zcvf codemodel-2.6.tar.gz codemodel-2.6 Source0: %{name}-%{version}.tar.gz
-# Remove the reference to the parent from the POM: -Patch0: %{name}-%{version}-pom.patch +# Remove the dependency on istack-commons (otherwise it will be a +# recursive dependency with the upcoming changes to that package): +Patch0: %{name}-remove-istack-commons-dependency.patch
BuildArch: noarch
BuildRequires: jpackage-utils BuildRequires: java-devel BuildRequires: maven -BuildRequires: istack-commons BuildRequires: maven-compiler-plugin BuildRequires: maven-install-plugin BuildRequires: maven-jar-plugin @@ -27,10 +27,11 @@ BuildRequires: maven-release-plugin BuildRequires: maven-resources-plugin BuildRequires: maven-surefire-plugin BuildRequires: maven-surefire-provider-junit4 +BuildRequires: jvnet-parent
-Requires: istack-commons Requires: jpackage-utils Requires: java +Requires: jvnet-parent
%description @@ -103,6 +104,10 @@ cp -p codemodel-annotation-compiler/pom.xml %{buildroot}%{_mavenpomdir}/JPP-%{na
%changelog +* Sat Mar 31 2012 Juan Hernandez juan.hernandez@redhat.com 2.6-4 +- Restore the dependency on jvnet-parent +- Remove the dependency on istack-commons + * Tue Feb 14 2012 Juan Hernandez juan.hernandez@redhat.com 2.6-3 - Added build requirement for maven-surefire-provider-junit4
scm-commits@lists.fedoraproject.org