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/04/12 20:37:59 UTC
svn commit: r393571 - in /maven/plugins/trunk/maven-assembly-plugin/src/main:
java/org/apache/maven/plugin/assembly/
java/org/apache/maven/plugin/assembly/repository/ mdo/
Author: jvanzyl
Date: Wed Apr 12 11:37:57 2006
New Revision: 393571
URL: http://svn.apache.org/viewcvs?rev=393571&view=rev
Log:
[MASSEMBLY-80] provide the option to write out repository metadata
Modified:
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/AbstractAssemblyMojo.java
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/AbstractUnpackingMojo.java
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/java/org/apache/maven/plugin/assembly/repository/RepositoryAssembler.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/AbstractAssemblyMojo.java
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/AbstractAssemblyMojo.java?rev=393571&r1=393570&r2=393571&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/AbstractAssemblyMojo.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/AbstractAssemblyMojo.java Wed Apr 12 11:37:57 2006
@@ -436,7 +436,6 @@
filter.add( new IncludesArtifactFilter( repository.getIncludes() ) );
}
-
// ----------------------------------------------------------------------------
// Excludes
//
@@ -468,7 +467,10 @@
repositoryDirectory.mkdirs();
}
- repositoryAssembler.assemble( repositoryDirectory, artifacts, project.getRemoteArtifactRepositories() );
+ repositoryAssembler.assemble( repositoryDirectory,
+ artifacts,
+ project.getRemoteArtifactRepositories(),
+ repository.isIncludeMetadata() );
if ( includeBaseDirectory )
{
Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/AbstractUnpackingMojo.java
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/AbstractUnpackingMojo.java?rev=393571&r1=393570&r2=393571&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/AbstractUnpackingMojo.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/AbstractUnpackingMojo.java Wed Apr 12 11:37:57 2006
@@ -151,7 +151,7 @@
{
Artifact a = (Artifact) i.next();
- if ( project.getArtifactId().equals( a.getArtifactId() ))
+ if ( project.getGroupId().equals( a.getGroupId() ) && project.getArtifactId().equals( a.getArtifactId() ))
{
continue;
}
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=393571&r1=393570&r2=393571&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 Wed Apr 12 11:37:57 2006
@@ -6,15 +6,25 @@
import org.apache.maven.artifact.repository.ArtifactRepositoryFactory;
import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
import org.apache.maven.artifact.repository.DefaultArtifactRepository;
+import org.apache.maven.artifact.repository.metadata.Metadata;
+import org.apache.maven.artifact.repository.metadata.Versioning;
+import org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Writer;
import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
import org.apache.maven.artifact.resolver.ArtifactResolutionException;
import org.apache.maven.artifact.resolver.ArtifactResolver;
+import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
import org.codehaus.plexus.logging.AbstractLogEnabled;
import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
import java.util.Iterator;
import java.util.List;
+import java.util.TimeZone;
+import java.util.Date;
+import java.text.SimpleDateFormat;
+import java.text.DateFormat;
/**
* @author Jason van Zyl
@@ -23,6 +33,10 @@
extends AbstractLogEnabled
implements RepositoryAssembler
{
+ protected static final TimeZone UTC_TIME_ZONE = TimeZone.getTimeZone( "UTC" );
+
+ protected static final String UTC_TIMESTAMP_PATTERN = "yyyyMMddHHmmss";
+
protected ArtifactFactory artifactFactory;
protected ArtifactResolver artifactResolver;
@@ -31,7 +45,7 @@
protected ArtifactRepositoryFactory artifactRepositoryFactory;
- public void assemble( File outputDirectory, List artifacts, List remoteRepositories )
+ public void assemble( File outputDirectory, List artifacts, List remoteRepositories, boolean includeMetadata )
throws RepositoryAssemblyException
{
ArtifactRepository localRepository = createLocalRepository( outputDirectory );
@@ -44,8 +58,32 @@
try
{
- // Not sure if i want to do this transitively
artifactResolver.resolveAlways( a, remoteRepositories, localRepository );
+
+ if ( includeMetadata )
+ {
+ File metadataFile = new File( a.getFile().getParent(), "maven-metadata.xml" );
+
+ Metadata m = new Metadata();
+
+ m.setGroupId( a.getGroupId() );
+
+ m.setArtifactId( a.getArtifactId() );
+
+ Versioning v = new Versioning();
+
+ v.setRelease( a.getVersion() );
+
+ v.addVersion( a.getVersion() );
+
+ m.setVersioning( v );
+
+ v.setLastUpdated( getUtcDateFormatter().format( new Date() ));
+
+ MetadataXpp3Writer metadataWriter = new MetadataXpp3Writer();
+
+ metadataWriter.write( new FileWriter( metadataFile ), m );
+ }
}
catch ( ArtifactResolutionException e )
{
@@ -55,8 +93,20 @@
{
throw new RepositoryAssemblyException( "Cannot find artifact: " + a, e );
}
+ catch ( IOException e )
+ {
+ throw new RepositoryAssemblyException( "Error writing artifact metdata.", e );
+ }
}
}
+
+ public static DateFormat getUtcDateFormatter()
+ {
+ DateFormat utcDateFormatter = new SimpleDateFormat( UTC_TIMESTAMP_PATTERN );
+ utcDateFormatter.setTimeZone( UTC_TIME_ZONE );
+ return utcDateFormatter;
+ }
+
public ArtifactRepository createLocalRepository( File directory )
{
Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/repository/RepositoryAssembler.java
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/repository/RepositoryAssembler.java?rev=393571&r1=393570&r2=393571&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/repository/RepositoryAssembler.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/repository/RepositoryAssembler.java Wed Apr 12 11:37:57 2006
@@ -10,6 +10,6 @@
{
String ROLE = RepositoryAssembler.class.getName();
- public void assemble( File outputDirectory, List artifacts, List remoteRepositories )
+ public void assemble( File outputDirectory, List artifacts, List remoteRepositories, boolean includeMetadata )
throws RepositoryAssemblyException;
}
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=393571&r1=393570&r2=393571&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 Wed Apr 12 11:37:57 2006
@@ -401,6 +401,18 @@
<version>1.0.0</version>
<superClass>SetBase</superClass>
<description>Defines a Maven repository to be included in the assembly.</description>
+ <fields>
+ <field>
+ <name>includeMetadata</name>
+ <type>boolean</type>
+ <defaultValue>false</defaultValue>
+ <description>
+ If set to true, this property will trigger the creation of repository
+ metadata which will allow the repository to be used as a functional remote
+ repository.
+ </description>
+ </field>
+ </fields>
</class>
</classes>
</model>