This is an automated email from the git hooks/post-receive script. ebourg-guest pushed a commit to branch master in repository maven-debian-helper.
commit a988dfea7c196a8d837474167a5fa3a5bca50372 Author: Emmanuel Bourg <[email protected]> Date: Mon Feb 29 12:45:32 2016 +0100 Inject plexus-utils 2.x instead of 1.1 in the dependency graph of the plugins not depending on it already (Closes: #813287) --- debian/changelog | 8 ++ debian/copyright | 7 ++ debian/rules | 2 +- .../maven/plugin/internal/PlexusUtilsInjector.java | 91 ++++++++++++++++++++++ 4 files changed, 107 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index 0e55b3b..99d08a8 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +maven-debian-helper (2.0.6) UNRELEASED; urgency=medium + + * Team upload. + * Inject plexus-utils 2.x instead of 1.1 in the dependency graph + of the plugins not defining a dependency on it already (Closes: #813287) + + -- Emmanuel Bourg <[email protected]> Mon, 29 Feb 2016 09:13:41 +0100 + maven-debian-helper (2.0.5) unstable; urgency=medium * Team upload. diff --git a/debian/copyright b/debian/copyright index 8943d79..50ac8ae 100644 --- a/debian/copyright +++ b/debian/copyright @@ -13,6 +13,13 @@ Copyright: 2008-2009, Torsten Werner <[email protected]> 2013-2016, Emmanuel Bourg <[email protected]> 2015, Andrew Schurman <[email protected]> License: Apache-2.0 + +Files: maven-debian-helper/src/main/java/org/apache/maven/plugin/internal/PlexusUtilsInjector.java +Copyright: 2010-2012, The Apache Software Foundation +License: Apache-2.0 +Comment: Copied and modified from Apache Maven + +License: Apache-2.0 On Debian systems, the full text of the Apache-2.0 license can be found in the file '/usr/share/common-licenses/Apache-2.0' diff --git a/debian/rules b/debian/rules index 16c605c..9369194 100755 --- a/debian/rules +++ b/debian/rules @@ -7,7 +7,7 @@ PACKAGE := $(DEB_SOURCE_PACKAGE) VERSION := $(shell echo ${DEB_UPSTREAM_VERSION} | sed -r 's/([0-9\.]+).*/\1/') JAVA_HOME := /usr/lib/jvm/default-java DEB_JARS := ant-junit junit commons-io plexus-classworlds maven-core maven-artifact maven-artifact-manager maven-core-3.x maven-model \ - maven-embedder maven3-plugin-api maven-plugin-annotations maven-scm-api velocity file-management plexus-utils \ + maven-embedder maven3-plugin-api maven-plugin-annotations maven-scm-api velocity file-management plexus-utils eclipse-aether-api eclipse-aether-util \ plexus-container-default-alpha maven-repo-helper DEB_ANT_BUILD_TARGET := package #javadoc DEB_ANT_BUILDFILE := debian/build.xml diff --git a/maven-debian-helper/src/main/java/org/apache/maven/plugin/internal/PlexusUtilsInjector.java b/maven-debian-helper/src/main/java/org/apache/maven/plugin/internal/PlexusUtilsInjector.java new file mode 100644 index 0000000..8465b71 --- /dev/null +++ b/maven-debian-helper/src/main/java/org/apache/maven/plugin/internal/PlexusUtilsInjector.java @@ -0,0 +1,91 @@ +package org.apache.maven.plugin.internal; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.eclipse.aether.RepositoryException; +import org.eclipse.aether.artifact.Artifact; +import org.eclipse.aether.artifact.DefaultArtifact; +import org.eclipse.aether.collection.DependencyGraphTransformationContext; +import org.eclipse.aether.collection.DependencyGraphTransformer; +import org.eclipse.aether.graph.DefaultDependencyNode; +import org.eclipse.aether.graph.Dependency; +import org.eclipse.aether.graph.DependencyNode; +import org.eclipse.aether.util.artifact.JavaScopes; + +/** + * Injects plexus-utils:1.1 into a plugin's class path if it doesn't already declare a dependency on plexus-utils. This + * is another legacy bit to provide backward-compat with Maven 2.x. + * + * This class was copied from Maven and modified to use plexus-utils 2.x instead of 1.1. + * It overrides the same class defined by Maven since maven-debian-helper.jar is loaded first + * (this is ensured by the order of the load directives in /etc/maven/m2-debian.conf). + * + * @author Benjamin Bentmann + */ +class PlexusUtilsInjector + implements DependencyGraphTransformer +{ + + private static final String GID = "org.codehaus.plexus"; + + private static final String AID = "plexus-utils"; + + private static final String VER = "2.x"; + + private static final String EXT = "jar"; + + public DependencyNode transformGraph( DependencyNode node, DependencyGraphTransformationContext context ) + throws RepositoryException + { + if ( findPlexusUtils( node ) == null ) + { + Artifact pu = new DefaultArtifact( GID, AID, null, EXT, VER ); + DefaultDependencyNode child = new DefaultDependencyNode( new Dependency( pu, JavaScopes.RUNTIME ) ); + child.setRepositories( node.getRepositories() ); + child.setRequestContext( node.getRequestContext() ); + node.getChildren().add( child ); + } + + return node; + } + + private DependencyNode findPlexusUtils( DependencyNode node ) + { + Artifact artifact = node.getDependency().getArtifact(); + + if ( AID.equals( artifact.getArtifactId() ) && GID.equals( artifact.getGroupId() ) + && EXT.equals( artifact.getExtension() ) && "".equals( artifact.getClassifier() ) ) + { + return node; + } + + for ( DependencyNode child : node.getChildren() ) + { + DependencyNode result = findPlexusUtils( child ); + if ( result != null ) + { + return result; + } + } + + return null; + } + +} -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/maven-debian-helper.git _______________________________________________ pkg-java-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-java-commits

