This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository maven-helper-plugin. See http://git.nuiton.org/maven-helper-plugin.git commit 8b4d64738b9d3304b652e4409325855b30359c66 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Feb 27 12:22:18 2016 +0100 Update org.apache.maven.shared:maven-dependency-tree to 3.0 (See #3895) --- .../java/org/nuiton/plugin/DependencyUtil.java | 216 +++++++++++++-------- pom.xml | 2 +- 2 files changed, 137 insertions(+), 81 deletions(-) diff --git a/helper-maven-plugin-api/src/main/java/org/nuiton/plugin/DependencyUtil.java b/helper-maven-plugin-api/src/main/java/org/nuiton/plugin/DependencyUtil.java index b221647..b45bf6c 100644 --- a/helper-maven-plugin-api/src/main/java/org/nuiton/plugin/DependencyUtil.java +++ b/helper-maven-plugin-api/src/main/java/org/nuiton/plugin/DependencyUtil.java @@ -25,9 +25,16 @@ package org.nuiton.plugin; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.maven.artifact.Artifact; -import org.apache.maven.shared.dependency.tree.DependencyNode; +import org.apache.maven.shared.dependency.graph.DependencyNode; +import org.apache.maven.shared.dependency.graph.traversal.CollectingDependencyNodeVisitor; +import org.apache.maven.shared.dependency.graph.traversal.DependencyNodeVisitor; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; /** * Une classe de methodes utiles sur les dependences entre artifacts. @@ -46,8 +53,7 @@ public class DependencyUtil { return; } - Map<String, ArtifactDependencyEntry> dico = - new HashMap<>(artifacts.size()); + Map<String, ArtifactDependencyEntry> dico = new HashMap<>(artifacts.size()); for (Artifact a : artifacts) { ArtifactDependencyEntry entry = new ArtifactDependencyEntry(a); @@ -66,8 +72,7 @@ public class DependencyUtil { // premiere passe pour recuperer l'ensemble des dependances for (ArtifactDependencyEntry entry : dico.values()) { - List<String> dependencies = getDependencies(rootNode, entry, universe, verbose); - entry.depIds = dependencies; + entry.depIds = getDependencies(/*rootNode,*/ entry, universe, verbose); } int level = 0; @@ -126,7 +131,7 @@ public class DependencyUtil { } protected static List<String> getDependencies( - DependencyNode rootNode, + /*DependencyNode rootNode,*/ ArtifactDependencyEntry entry, Set<String> universe, boolean verbose) { @@ -139,7 +144,7 @@ public class DependencyUtil { } DependencyNode node = entry.node; - getDependencies(rootNode, + getDependencies(/*rootNode,*/ node, entry.artifactKey, universe, @@ -151,7 +156,7 @@ public class DependencyUtil { return order; } - private static void getDependencies(DependencyNode rootNode, + private static void getDependencies(/*DependencyNode rootNode,*/ DependencyNode node, String artifactKey, Set<String> universe, @@ -159,52 +164,87 @@ public class DependencyUtil { List<String> order, Set<String> exclude) { - for (Iterator<?> itr = node.preorderIterator(); itr.hasNext();) { - DependencyNode d = (DependencyNode) itr.next(); - Artifact artifact = d.getArtifact(); - String key = getArtifactId(artifact); - if (artifactKey.equals(key)) { - // artifact du noeud en parametre, rien a faire - continue; - } - if (order.contains(key) || exclude.contains(key)) { - // artifact deja rencontree - continue; - } + DependencyNodeVisitor visitor = new DependencyNodeVisitor() { + @Override + public boolean visit(DependencyNode node) { - if (d.getState() != DependencyNode.INCLUDED) { - // on doit recuperer le noeud complete - if (log.isDebugEnabled()) { - log.debug("!!! doit recuperer le noeud complet pour " + - d.getArtifact()); + Artifact artifact = node.getArtifact(); + String key = getArtifactId(artifact); + if (artifactKey.equals(key)) { + // artifact du noeud en parametre, rien a faire + return false; + } + if (order.contains(key) || exclude.contains(key)) { + // artifact deja rencontree + return false; + } + if (universe.contains(key)) { + // artifact a retenir + if (verbose) { + log.info(" << [" + node.getArtifact() + "]"); + } + order.add(key); + return true; } - DependencyNode node1 = getNode(rootNode, key, verbose); - getDependencies(rootNode, - node1, - artifactKey, - universe, - verbose, - order, - exclude - ); - } - if (log.isDebugEnabled()) { - log.debug("[" + artifactKey + "] ??????? [" + key + "]"); + exclude.add(key); + return false; } - if (universe.contains(key)) { - // artifact a retenir - if (verbose) { - log.info(" << [" + d.getArtifact() + "]"); - } - order.add(key); - continue; + @Override + public boolean endVisit(DependencyNode node) { + return false; } - - // cet artifact peut etre marque comme a ne plus etre scanne - exclude.add(key); - } + }; + + node.accept(visitor); + +// for (Iterator<?> itr = node.preorderIterator(); itr.hasNext();) { +// DependencyNode d = (DependencyNode) itr.next(); +// Artifact artifact = d.getArtifact(); +// String key = getArtifactId(artifact); +// if (artifactKey.equals(key)) { +// // artifact du noeud en parametre, rien a faire +// continue; +// } +// if (order.contains(key) || exclude.contains(key)) { +// // artifact deja rencontree +// continue; +// } +// +// if (d.getState() != DependencyNode.INCLUDED) { +// // on doit recuperer le noeud complete +// if (log.isDebugEnabled()) { +// log.debug("!!! doit recuperer le noeud complet pour " + +// d.getArtifact()); +// } +// DependencyNode node1 = getNode(rootNode, key, verbose); +// getDependencies(rootNode, +// node1, +// artifactKey, +// universe, +// verbose, +// order, +// exclude +// ); +// } +// +// if (log.isDebugEnabled()) { +// log.debug("[" + artifactKey + "] ??????? [" + key + "]"); +// } +// +// if (universe.contains(key)) { +// // artifact a retenir +// if (verbose) { +// log.info(" << [" + d.getArtifact() + "]"); +// } +// order.add(key); +// continue; +// } +// +// // cet artifact peut etre marque comme a ne plus etre scanne +// exclude.add(key); +// } } @@ -213,47 +253,63 @@ public class DependencyUtil { Set<String> universe, boolean verbose) { - for (Iterator<?> itr = rootNode.preorderIterator(); itr.hasNext();) { - DependencyNode d = (DependencyNode) itr.next(); - Artifact artifact = d.getArtifact(); + CollectingDependencyNodeVisitor visitor = new CollectingDependencyNodeVisitor(); + rootNode.accept(visitor); + for (DependencyNode node : visitor.getNodes()) { + Artifact artifact = node.getArtifact(); String key = getArtifactId(artifact); if (log.isDebugEnabled()) { log.debug("key : " + key); } - if (universe.contains(key) && - d.getState() == DependencyNode.INCLUDED) { + if (universe.contains(key) /* FIXME && d.getState() == DependencyNode.INCLUDED */) { ArtifactDependencyEntry entry = dico.get(key); - entry.node = d; -// if (d == null) { -// // ce cas ne devrait jamais arrive -// throw new IllegalStateException( -// "on a pas trouve le node pour l'artifact " + -// artifact); -// } - if (log.isDebugEnabled()) { - log.debug("detected node : " + d); + entry.node = node; + if (verbose || log.isDebugEnabled()) { + log.debug("detected node : " + node); } } } +// for (Iterator<?> itr = rootNode.preorderIterator(); itr.hasNext();) { +// DependencyNode d = (DependencyNode) itr.next(); +// Artifact artifact = d.getArtifact(); +// String key = getArtifactId(artifact); +// if (log.isDebugEnabled()) { +// log.debug("key : " + key); +// } +// if (universe.contains(key) && +// d.getState() == DependencyNode.INCLUDED) { +// ArtifactDependencyEntry entry = dico.get(key); +// entry.node = d; +//// if (d == null) { +//// // ce cas ne devrait jamais arrive +//// throw new IllegalStateException( +//// "on a pas trouve le node pour l'artifact " + +//// artifact); +//// } +// if (log.isDebugEnabled()) { +// log.debug("detected node : " + d); +// } +// } +// } } - protected static DependencyNode getNode(DependencyNode rootNode, String requiredKey, boolean verbose) { - - for (Iterator<?> itr = rootNode.preorderIterator(); itr.hasNext();) { - DependencyNode d = (DependencyNode) itr.next(); - Artifact artifact = d.getArtifact(); - String key = getArtifactId(artifact); - if (log.isDebugEnabled()) { - log.debug("key : " + key); - } - if (requiredKey.equals(key) && - d.getState() == DependencyNode.INCLUDED) { - return d; - } - } - - return null; - } +// protected static DependencyNode getNode(DependencyNode rootNode, String requiredKey, boolean verbose) { +// +// for (Iterator<?> itr = rootNode.preorderIterator(); itr.hasNext();) { +// DependencyNode d = (DependencyNode) itr.next(); +// Artifact artifact = d.getArtifact(); +// String key = getArtifactId(artifact); +// if (log.isDebugEnabled()) { +// log.debug("key : " + key); +// } +// if (requiredKey.equals(key) && +// d.getState() == DependencyNode.INCLUDED) { +// return d; +// } +// } +// +// return null; +// } public static class ArtifactDependencyEntry { diff --git a/pom.xml b/pom.xml index 7c4be69..140ed2b 100644 --- a/pom.xml +++ b/pom.xml @@ -118,7 +118,7 @@ <dependency> <groupId>org.apache.maven.shared</groupId> <artifactId>maven-dependency-tree</artifactId> - <version>2.2</version> + <version>3.0</version> </dependency> <dependency> -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.