Author: jvanzyl
Date: Tue May  2 13:34:49 2006
New Revision: 399040

URL: http://svn.apache.org/viewcvs?rev=399040&view=rev
Log: (empty)

Modified:
    
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/repository/DefaultRepositoryAssembler.java
    maven/plugins/trunk/maven-assembly-plugin/src/main/mdo/descriptor.mdo

Modified: 
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/repository/DefaultRepositoryAssembler.java
URL: 
http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/repository/DefaultRepositoryAssembler.java?rev=399040&r1=399039&r2=399040&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/repository/DefaultRepositoryAssembler.java
 (original)
+++ 
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/repository/DefaultRepositoryAssembler.java
 Tue May  2 13:34:49 2006
@@ -17,12 +17,12 @@
 import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
 import org.apache.maven.artifact.resolver.ArtifactResolver;
 import org.apache.maven.plugins.assembly.model.Repository;
+import org.apache.maven.plugins.assembly.model.GroupVersionAlignment;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.project.MavenProjectBuilder;
 import org.apache.maven.project.DefaultMavenProjectBuilder;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 import org.codehaus.plexus.util.FileUtils;
-import org.codehaus.plexus.util.StringUtils;
 
 import java.io.File;
 import java.io.FileWriter;
@@ -36,6 +36,8 @@
 import java.util.List;
 import java.util.Map;
 import java.util.TimeZone;
+import java.util.Set;
+import java.util.HashSet;
 import java.lang.reflect.Field;
 
 /**
@@ -63,14 +65,16 @@
 
     protected MavenProjectBuilder projectBuilder;
 
-    private Map versionAlignmentMap;
+    private Map groupVersionAlignments;
+
+    private Set groupVersionAlignmentExcludes;
 
     public void assemble( File repositoryDirectory,
                           Repository repository,
                           MavenProject project )
         throws RepositoryAssemblyException
     {
-        versionAlignmentMap = createVersionAlignmentMap( 
repository.getVersionAlignments() );
+        createGroupVersionAlignments( repository.getGroupVersionAlignments() );
 
         ArtifactRepository localRepository = createLocalRepository( 
repositoryDirectory );
 
@@ -80,11 +84,12 @@
             // to align everything. If I use a filter to change the version on 
the fly then I get the
             // I get JARs but no POMs, and in some directories POMs with no 
JARs.
 
+            // I'm not getting runtime dependencies here
+
             ArtifactResolutionResult result = 
artifactResolver.resolveTransitively( project.getDependencyArtifacts(),
                                                                                
     project.getArtifact(),
                                                                                
     project.getRemoteArtifactRepositories(),
-                                                                               
     localRepository,
-                                                                               
     metadataSource );
+                                                                               
     localRepository, metadataSource );
 
             // Now that we have the graph, let's try to align it to versions 
that we want and remove
             // the repository we previously populated.
@@ -99,9 +104,9 @@
             {
                 Artifact a = (Artifact) i.next();
 
-                String alignedVersion = (String) versionAlignmentMap.get( 
a.getGroupId() );
+                String alignedVersion = (String) groupVersionAlignments.get( 
a.getGroupId() );
 
-                if ( alignedVersion != null )
+                if ( alignedVersion != null && 
!groupVersionAlignmentExcludes.contains( a.getArtifactId() ) )
                 {
                     a.setVersion( alignedVersion );
                 }
@@ -122,7 +127,8 @@
                 {
                     Artifact a = (Artifact) i.next();
 
-                    File metadataFile = new File( 
a.getFile().getParentFile().getParent(), "maven-metadata-central.xml" );
+                    File metadataFile =
+                        new File( a.getFile().getParentFile().getParent(), 
"maven-metadata-central.xml" );
 
                     Metadata m = new Metadata();
 
@@ -178,21 +184,23 @@
         }
     }
 
-    protected Map createVersionAlignmentMap( List versionAlignments )
+    protected void createGroupVersionAlignments( List versionAlignments )
     {
-        Map m = new HashMap();
+        groupVersionAlignments = new HashMap();
+
+        groupVersionAlignmentExcludes = new HashSet();
 
         for ( Iterator i = versionAlignments.iterator(); i.hasNext(); )
         {
-            String alignment = (String) i.next();
+            GroupVersionAlignment alignment = (GroupVersionAlignment) i.next();
 
-            // split into groupId and version
-            String[] s = StringUtils.split( alignment, ":" );
+            groupVersionAlignments.put( alignment.getId(), 
alignment.getVersion() );
 
-            m.put( s[0], s[1] );
+            if ( !alignment.getExcludes().isEmpty() )
+            {
+                groupVersionAlignmentExcludes.addAll( alignment.getExcludes() 
);
+            }
         }
-
-        return m;
     }
 
     protected static DateFormat getUtcDateFormatter()

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/mdo/descriptor.mdo
URL: 
http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-assembly-plugin/src/main/mdo/descriptor.mdo?rev=399040&r1=399039&r2=399040&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/mdo/descriptor.mdo 
(original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/mdo/descriptor.mdo Tue 
May  2 13:34:49 2006
@@ -414,9 +414,37 @@
           </description>
         </field>
         <field>
-          <name>versionAlignments</name>
+          <name>groupVersionAlignments</name>
           <version>1.0.0</version>
           <description>Align a group to a version or an individual 
artifact.</description>
+          <association>
+            <type>GroupVersionAlignment</type>
+            <multiplicity>*</multiplicity>
+          </association>
+        </field>
+      </fields>
+    </class>
+    <class>
+      <name>GroupVersionAlignment</name>
+      <version>1.0.0</version>
+      <description>Defines a Maven repository to be included in the 
assembly.</description>
+      <fields>
+        <field>
+          <name>id</name>
+          <version>1.0.0</version>
+          <type>String</type>
+          <description>The groupId for which you want to align the 
versions.</description>
+        </field>
+        <field>
+          <name>version</name>
+          <version>1.0.0</version>
+          <type>String</type>
+          <description>The version you want to align this group 
to.</description>
+        </field>
+        <field>
+          <name>excludes</name>
+          <version>1.0.0</version>
+          <description>Artifact Ids of the artifacts you want excluded from 
version alignment.</description>
           <association>
             <type>String</type>
             <multiplicity>*</multiplicity>


Reply via email to