From 32d030d450ab407bef15e5a7efe824b12f86b26a Mon Sep 17 00:00:00 2001 From: George Gastaldi Date: Fri, 15 Mar 2013 17:30:47 -0300 Subject: [PATCH] Fixed ClasspathWorkspaceReader --- .../ClasspathWorkspaceReader.java | 54 +++++++++++-------- 1 file changed, 31 insertions(+), 23 deletions(-) diff --git a/maven/impl/src/main/java/org/jboss/forge/maven/dependencies/ClasspathWorkspaceReader.java b/maven/impl/src/main/java/org/jboss/forge/maven/dependencies/ClasspathWorkspaceReader.java index a9d7696d66..cf26df3480 100644 --- a/maven/impl/src/main/java/org/jboss/forge/maven/dependencies/ClasspathWorkspaceReader.java +++ b/maven/impl/src/main/java/org/jboss/forge/maven/dependencies/ClasspathWorkspaceReader.java @@ -16,6 +16,7 @@ import java.util.List; import java.util.Map; import java.util.Set; +import java.util.TreeSet; import java.util.logging.Level; import java.util.logging.Logger; @@ -36,6 +37,7 @@ */ public class ClasspathWorkspaceReader implements WorkspaceReader { + private static final Logger log = Logger.getLogger(ClasspathWorkspaceReader.class.getName()); /** @@ -112,10 +114,8 @@ public File findArtifact(final Artifact artifact) && foundArtifact.getArtifactId().equals(artifact.getArtifactId()) && foundArtifact.getVersion().equals(artifact.getVersion())) { - if (log.isLoggable(Level.FINE)) - { - log.fine("################################# Artifact: " + artifact + " File: " + pomFile); - } + // System.out.println("BUILD: ################################# Artifact: " + artifact + " DIRPOM: " + // + pomFile); if ("pom".equals(artifact.getExtension())) { return pomFile; @@ -127,7 +127,7 @@ public File findArtifact(final Artifact artifact) } } } - // this is needed for Surefire when runned as 'mvn package' + // this is needed for Surefire when run as 'mvn package' else if (file.isFile()) { final StringBuilder name = new StringBuilder(artifact.getArtifactId()).append("-").append( @@ -135,7 +135,7 @@ else if (file.isFile()) // TODO: This is nasty // we need to get a a pom.xml file to be sure we fetch transitive deps as well - if (file.getAbsolutePath().contains(name.toString())) + if (file.getName().contains(name.toString())) { if ("pom".equals(artifact.getExtension())) { @@ -143,11 +143,17 @@ else if (file.isFile()) final File pomFile = new File(file.getParentFile().getParentFile(), "pom.xml"); if (pomFile.isFile()) { - if (log.isLoggable(Level.FINE)) + Artifact foundArtifact = getFoundArtifact(pomFile); + if (foundArtifact.getGroupId().equals(artifact.getGroupId()) + && foundArtifact.getArtifactId().equals(artifact.getArtifactId()) + && foundArtifact.getVersion().equals(artifact.getVersion())) { - log.fine("################################# Artifact: " + artifact + " File: " + pomFile); + + // System.out + // .println("BUILD: ################################# Artifact: " + artifact + " POM: " + // + pomFile); + return pomFile; } - return pomFile; } } // SHRINKRES-102, consider classifier as well @@ -159,25 +165,26 @@ else if (file.isFile()) // we are looking for a non pom artifact, let's get it name.append(".").append(artifact.getExtension()); - if (file.getAbsolutePath().endsWith(name.toString())) + if (file.getName().equals(name.toString())) { // return raw file - if (log.isLoggable(Level.FINE)) - { - log.fine("################################# Artifact: " + artifact + " File: " + file); - } + // System.out.println("BUILD: ################################# Artifact: " + artifact + " OTHER: " + // + file); return file; } } } } + // return raw file + // System.out.println("BUILD: ################################# Artifact: " + artifact + " NOTHING RETURNED"); + return null; } @Override public List findVersions(final Artifact artifact) { - List versions = new ArrayList(); + Set versions = new TreeSet(); for (String classpathEntry : classPathEntries) { final File file = getClasspathFile(classpathEntry); @@ -185,7 +192,7 @@ public List findVersions(final Artifact artifact) if (file.isDirectory()) { // TODO: This is not reliable, file might have different name - // FIXME: Surefire might user jar in the classpath instead of the target/classes + // FIXME: Surefire might use jar in the classpath instead of the target/classes final File pomFile = getPomFile(file); if (pomFile.isFile()) { @@ -198,12 +205,15 @@ public List findVersions(final Artifact artifact) } } } - // this is needed for Surefire when runned as 'mvn package' + // this is needed for Surefire when run as 'mvn package' else if (file.isFile()) { + final StringBuilder name = new StringBuilder(artifact.getArtifactId()).append("-").append( + artifact.getVersion()); + // TODO: This is nasty // we need to get a a pom.xml file to be sure we fetch transitive deps as well - if (file.getAbsolutePath().contains(artifact.getArtifactId())) + if (file.getName().contains(name.toString())) { if ("pom".equals(artifact.getExtension())) { @@ -223,11 +233,9 @@ else if (file.isFile()) } } } - if (log.isLoggable(Level.FINE)) - { - log.fine("################################# Artifact: " + artifact + " Versions: " + versions); - } - return versions; + // System.out.println("BUILD: ################################# Artifact: " + artifact + " VERSIONS: " + + // versions); + return new ArrayList(versions); } private Set getClassPathEntries(final String classPath)