Changeset 7899


Ignore:
Timestamp:
02/24/12 12:26:11 (8 years ago)
Author:
melissa
Message:

Really fix how the artifact lists are built for Maven 2 and 3

r7896 intended to do this, but was not so well tested.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/projects/cppwrap-maven-plugin/src/main/java/loci/maven/plugin/cppwrap/CppWrapMojo.java

    r7896 r7899  
    4242import java.util.Comparator; 
    4343import java.util.List; 
     44import java.util.Set; 
    4445 
    4546import loci.jar2lib.Jar2Lib; 
     
    193194 
    194195                // add project artifacts 
    195                 List<Artifact> allArtifacts = project.getAttachedArtifacts(); 
    196                 for (Artifact artifact : allArtifacts) { 
    197                         final File projectArtifact = artifact.getFile(); 
    198                         if (projectArtifact == null || !projectArtifact.exists()) { 
    199                                 throw new MojoExecutionException("Must execute package target first " + 
    200                                         "(e.g., mvn package cppwrap:wrap)."); 
    201                         } 
    202                         jars.add(projectArtifact.getPath()); 
    203                 } 
     196                final File projectArtifact = project.getArtifact().getFile(); 
     197                if (projectArtifact == null || !projectArtifact.exists()) { 
     198                        throw new MojoExecutionException("Must execute package target first " + 
     199                                "(e.g., mvn package cppwrap:wrap)."); 
     200                } 
     201                jars.add(projectArtifact.getPath()); 
    204202 
    205203                // add explicitly enumerated dependencies 
    206204                if (libraries != null) { 
    207205                        @SuppressWarnings("unchecked") 
    208                         final List<Artifact> artifacts = project.getRuntimeArtifacts(); 
     206                        final Artifact[] artifacts = 
     207        (Artifact[]) project.getDependencyArtifacts().toArray(new Artifact[0]); 
    209208                        ArrayList<String> libs = new ArrayList<String>(Arrays.asList(libraries)); 
    210209 
    211                         Collections.sort(artifacts, new ArtComparator()); 
     210                        Arrays.sort(artifacts, new ArtComparator()); 
    212211                        Collections.sort(libs); 
    213212                        int libIndex = 0; 
    214213                        int artIndex = 0; 
    215214 
    216                         boolean done = artIndex == artifacts.size(); 
     215                        boolean done = artIndex == artifacts.length; 
    217216                        while (!done) 
    218217                        { 
    219                                 if(libs.get(libIndex).compareTo(artifacts.get(artIndex).getId()) == 0) 
     218                                if(libs.get(libIndex).compareTo(artifacts[artIndex].getId()) == 0) 
    220219                                { 
    221                                         File artifactFile = artifacts.get(artIndex).getFile(); 
     220                                        File artifactFile = artifacts[artIndex].getFile(); 
    222221                                        if (!artifactFile.exists()) { 
    223222                                                throw new MojoExecutionException("Artifact not found: " + 
     
    232231                                } 
    233232 
    234                                 if(artIndex == artifacts.size()) 
     233                                if(artIndex == artifacts.length) 
    235234                                { 
    236235                                        throw new MojoExecutionException("Invalid library dependency: " + 
     
    248247                // add project runtime dependencies 
    249248                @SuppressWarnings("unchecked") 
    250                 final List<Artifact> artifacts = project.getRuntimeArtifacts(); 
     249                final Set<Artifact> artifacts = project.getDependencyArtifacts(); 
    251250                for (final Artifact classPathElement : artifacts) { 
    252251                        jars.add(classPathElement.getFile().getPath()); 
Note: See TracChangeset for help on using the changeset viewer.