You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jv...@apache.org on 2006/05/02 22:34:52 UTC
svn commit: r399040 - in /maven/plugins/trunk/maven-assembly-plugin/src/main:
java/org/apache/maven/plugin/assembly/repository/DefaultRepositoryAssembler.java
mdo/descriptor.mdo
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>