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/08 03:05:22 UTC
svn commit: r392469 - in /maven/plugins/trunk/maven-assembly-plugin: ./
src/it/ src/it/repository-assembly/ src/it/repository-assembly/src/
src/it/repository-assembly/src/assemble/
src/it/repository-assembly/src/main/ src/it/repository-assembly/src/mai...
Author: jvanzyl
Date: Fri Apr 7 18:05:19 2006
New Revision: 392469
URL: http://svn.apache.org/viewcvs?rev=392469&view=rev
Log:
[MASSEMBLY-77] add the ability to assemble a maven repository
Added:
maven/plugins/trunk/maven-assembly-plugin/src/it/
maven/plugins/trunk/maven-assembly-plugin/src/it/repository-assembly/
maven/plugins/trunk/maven-assembly-plugin/src/it/repository-assembly/pom.xml (with props)
maven/plugins/trunk/maven-assembly-plugin/src/it/repository-assembly/src/
maven/plugins/trunk/maven-assembly-plugin/src/it/repository-assembly/src/assemble/
maven/plugins/trunk/maven-assembly-plugin/src/it/repository-assembly/src/assemble/bin.xml (with props)
maven/plugins/trunk/maven-assembly-plugin/src/it/repository-assembly/src/main/
maven/plugins/trunk/maven-assembly-plugin/src/it/repository-assembly/src/main/java/
maven/plugins/trunk/maven-assembly-plugin/src/it/repository-assembly/src/main/java/org/
maven/plugins/trunk/maven-assembly-plugin/src/it/repository-assembly/src/main/java/org/apache/
maven/plugins/trunk/maven-assembly-plugin/src/it/repository-assembly/src/main/java/org/apache/maven/
maven/plugins/trunk/maven-assembly-plugin/src/it/repository-assembly/src/main/java/org/apache/maven/plugin/
maven/plugins/trunk/maven-assembly-plugin/src/it/repository-assembly/src/main/java/org/apache/maven/plugin/assembly/
maven/plugins/trunk/maven-assembly-plugin/src/it/repository-assembly/src/main/java/org/apache/maven/plugin/assembly/test/
maven/plugins/trunk/maven-assembly-plugin/src/it/repository-assembly/src/main/java/org/apache/maven/plugin/assembly/test/App.java (with props)
maven/plugins/trunk/maven-assembly-plugin/src/it/repository-assembly/src/test/
maven/plugins/trunk/maven-assembly-plugin/src/it/repository-assembly/src/test/java/
maven/plugins/trunk/maven-assembly-plugin/src/it/repository-assembly/src/test/java/org/
maven/plugins/trunk/maven-assembly-plugin/src/it/repository-assembly/src/test/java/org/apache/
maven/plugins/trunk/maven-assembly-plugin/src/it/repository-assembly/src/test/java/org/apache/maven/
maven/plugins/trunk/maven-assembly-plugin/src/it/repository-assembly/src/test/java/org/apache/maven/plugin/
maven/plugins/trunk/maven-assembly-plugin/src/it/repository-assembly/src/test/java/org/apache/maven/plugin/assembly/
maven/plugins/trunk/maven-assembly-plugin/src/it/repository-assembly/src/test/java/org/apache/maven/plugin/assembly/test/
maven/plugins/trunk/maven-assembly-plugin/src/it/repository-assembly/src/test/java/org/apache/maven/plugin/assembly/test/AppTest.java (with props)
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/repository/
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/repository/DefaultRepositoryAssembler.java (with props)
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/repository/RepositoryAssembler.java (with props)
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/repository/RepositoryAssemblyException.java (with props)
Modified:
maven/plugins/trunk/maven-assembly-plugin/pom.xml
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/AbstractDirectoryMojo.java
maven/plugins/trunk/maven-assembly-plugin/src/main/mdo/descriptor.mdo
Modified: maven/plugins/trunk/maven-assembly-plugin/pom.xml
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-assembly-plugin/pom.xml?rev=392469&r1=392468&r2=392469&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/pom.xml (original)
+++ maven/plugins/trunk/maven-assembly-plugin/pom.xml Fri Apr 7 18:05:19 2006
@@ -58,6 +58,11 @@
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
+ <artifactId>maven-core</artifactId>
+ <version>2.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
<artifactId>maven-archiver</artifactId>
<version>2.0</version>
</dependency>
Added: maven/plugins/trunk/maven-assembly-plugin/src/it/repository-assembly/pom.xml
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-assembly-plugin/src/it/repository-assembly/pom.xml?rev=392469&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/repository-assembly/pom.xml (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/repository-assembly/pom.xml Fri Apr 7 18:05:19 2006
@@ -0,0 +1,29 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.maven.plugin.assembly.test</groupId>
+ <artifactId>repository-assembly</artifactId>
+ <packaging>jar</packaging>
+ <version>1.0-SNAPSHOT</version>
+ <name>Maven Quick Start Archetype</name>
+ <url>http://maven.apache.org</url>
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.1</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <configuration>
+ <descriptor>src/assemble/bin.xml</descriptor>
+ <finalName>assembly</finalName>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/repository-assembly/pom.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/repository-assembly/pom.xml
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/plugins/trunk/maven-assembly-plugin/src/it/repository-assembly/src/assemble/bin.xml
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-assembly-plugin/src/it/repository-assembly/src/assemble/bin.xml?rev=392469&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/repository-assembly/src/assemble/bin.xml (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/repository-assembly/src/assemble/bin.xml Fri Apr 7 18:05:19 2006
@@ -0,0 +1,14 @@
+<assembly>
+ <id>bin</id>
+ <formats>
+ <format>zip</format>
+ </formats>
+ <repositories>
+ <repository>
+ <outputDirectory>repo</outputDirectory>
+ <includes>
+ <include>junit:junit</include>
+ </includes>
+ </repository>
+ </repositories>
+</assembly>
Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/repository-assembly/src/assemble/bin.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/repository-assembly/src/assemble/bin.xml
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/plugins/trunk/maven-assembly-plugin/src/it/repository-assembly/src/main/java/org/apache/maven/plugin/assembly/test/App.java
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-assembly-plugin/src/it/repository-assembly/src/main/java/org/apache/maven/plugin/assembly/test/App.java?rev=392469&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/repository-assembly/src/main/java/org/apache/maven/plugin/assembly/test/App.java (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/repository-assembly/src/main/java/org/apache/maven/plugin/assembly/test/App.java Fri Apr 7 18:05:19 2006
@@ -0,0 +1,13 @@
+package org.apache.maven.plugin.assembly.test;
+
+/**
+ * Hello world!
+ *
+ */
+public class App
+{
+ public static void main( String[] args )
+ {
+ System.out.println( "Hello World!" );
+ }
+}
Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/repository-assembly/src/main/java/org/apache/maven/plugin/assembly/test/App.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/repository-assembly/src/main/java/org/apache/maven/plugin/assembly/test/App.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/plugins/trunk/maven-assembly-plugin/src/it/repository-assembly/src/test/java/org/apache/maven/plugin/assembly/test/AppTest.java
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-assembly-plugin/src/it/repository-assembly/src/test/java/org/apache/maven/plugin/assembly/test/AppTest.java?rev=392469&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/repository-assembly/src/test/java/org/apache/maven/plugin/assembly/test/AppTest.java (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/repository-assembly/src/test/java/org/apache/maven/plugin/assembly/test/AppTest.java Fri Apr 7 18:05:19 2006
@@ -0,0 +1,38 @@
+package org.apache.maven.plugin.assembly.test;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+/**
+ * Unit test for simple App.
+ */
+public class AppTest
+ extends TestCase
+{
+ /**
+ * Create the test case
+ *
+ * @param testName name of the test case
+ */
+ public AppTest( String testName )
+ {
+ super( testName );
+ }
+
+ /**
+ * @return the suite of tests being tested
+ */
+ public static Test suite()
+ {
+ return new TestSuite( AppTest.class );
+ }
+
+ /**
+ * Rigourous Test :-)
+ */
+ public void testApp()
+ {
+ assertTrue( true );
+ }
+}
Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/repository-assembly/src/test/java/org/apache/maven/plugin/assembly/test/AppTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/repository-assembly/src/test/java/org/apache/maven/plugin/assembly/test/AppTest.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
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=392469&r1=392468&r2=392469&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 Fri Apr 7 18:05:19 2006
@@ -20,10 +20,17 @@
import org.apache.maven.archiver.MavenArchiver;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.DependencyResolutionRequiredException;
+import org.apache.maven.artifact.InvalidRepositoryException;
+import org.apache.maven.artifact.factory.ArtifactFactory;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
+import org.apache.maven.artifact.repository.ArtifactRepositoryFactory;
+import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
import org.apache.maven.artifact.handler.ArtifactHandler;
import org.apache.maven.artifact.resolver.filter.AndArtifactFilter;
import org.apache.maven.artifact.resolver.filter.ExcludesArtifactFilter;
import org.apache.maven.artifact.resolver.filter.IncludesArtifactFilter;
+import org.apache.maven.artifact.resolver.ArtifactResolver;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
import org.apache.maven.plugin.assembly.filter.AssemblyScopeArtifactFilter;
@@ -31,17 +38,23 @@
import org.apache.maven.plugin.assembly.interpolation.AssemblyInterpolator;
import org.apache.maven.plugin.assembly.interpolation.ReflectionProperties;
import org.apache.maven.plugin.assembly.utils.PropertyUtils;
+import org.apache.maven.plugin.assembly.repository.RepositoryAssembler;
+import org.apache.maven.plugin.assembly.repository.RepositoryAssemblyException;
import org.apache.maven.plugins.assembly.model.Assembly;
import org.apache.maven.plugins.assembly.model.Component;
import org.apache.maven.plugins.assembly.model.DependencySet;
import org.apache.maven.plugins.assembly.model.FileItem;
import org.apache.maven.plugins.assembly.model.FileSet;
+import org.apache.maven.plugins.assembly.model.Repository;
import org.apache.maven.plugins.assembly.model.io.xpp3.AssemblyXpp3Reader;
import org.apache.maven.plugins.assembly.model.io.xpp3.ComponentXpp3Reader;
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.MavenProjectHelper;
import org.apache.maven.wagon.PathUtils;
import org.apache.maven.shared.model.fileset.util.FileSetManager;
+import org.apache.maven.model.RepositoryPolicy;
+import org.apache.maven.model.RepositoryBase;
+import org.apache.maven.execution.MavenSession;
import org.codehaus.plexus.archiver.Archiver;
import org.codehaus.plexus.archiver.ArchiverException;
import org.codehaus.plexus.archiver.jar.JarArchiver;
@@ -58,6 +71,7 @@
import org.codehaus.plexus.util.InterpolationFilterReader;
import org.codehaus.plexus.util.introspection.ReflectionValueExtractor;
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
+import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
import java.io.BufferedReader;
import java.io.BufferedWriter;
@@ -69,8 +83,6 @@
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
-import java.io.FileInputStream;
-import java.io.PrintWriter;
import java.io.Writer;
import java.util.ArrayList;
import java.util.HashMap;
@@ -212,6 +224,11 @@
private Properties filterProperties;
/**
+ * @component
+ */
+ private RepositoryAssembler repositoryAssembler;
+
+ /**
* Create the binary distribution.
*
* @throws org.apache.maven.plugin.MojoExecutionException
@@ -274,6 +291,14 @@
{
throw new MojoExecutionException( "Error creating assembly: " + e.getMessage(), e );
}
+ catch ( RepositoryAssemblyException e )
+ {
+ throw new MojoExecutionException( "Error creating assembly: " + e.getMessage(), e );
+ }
+ catch ( InvalidRepositoryException e )
+ {
+ throw new MojoExecutionException( "Error creating assembly: " + e.getMessage(), e );
+ }
if ( appendAssemblyId )
{
@@ -314,8 +339,9 @@
}
protected File createArchive( Archiver archiver, Assembly assembly, String filename )
- throws ArchiverException, IOException, MojoExecutionException, MojoFailureException, XmlPullParserException
+ throws ArchiverException, IOException, MojoExecutionException, MojoFailureException, XmlPullParserException, RepositoryAssemblyException, InvalidRepositoryException
{
+ processRepositories( archiver, assembly.getRepositories(), assembly.isIncludeBaseDirectory() );
processDependencySets( archiver, assembly.getDependencySets(), assembly.isIncludeBaseDirectory() );
processModules( archiver, assembly.getModules(), assembly.isIncludeBaseDirectory() );
processFileSets( archiver, assembly.getFileSets(), assembly.isIncludeBaseDirectory() );
@@ -380,6 +406,54 @@
archiver.createArchive();
return destFile;
+ }
+
+ private void processRepositories( Archiver archiver, List modulesList, boolean includeBaseDirectory )
+ throws MojoExecutionException, InvalidRepositoryException, RepositoryAssemblyException, ArchiverException
+ {
+ for ( Iterator i = modulesList.iterator(); i.hasNext(); )
+ {
+ Repository repository = (Repository) i.next();
+
+ Set dependencyArtifacts = getDependencies();
+
+ List artifacts = new ArrayList();
+
+ AndArtifactFilter filter = new AndArtifactFilter();
+
+ if ( !repository.getIncludes().isEmpty() )
+ {
+ filter.add( new IncludesArtifactFilter( repository.getIncludes() ) );
+ }
+ if ( !repository.getExcludes().isEmpty() )
+ {
+ filter.add( new ExcludesArtifactFilter( repository.getExcludes() ) );
+ }
+
+ for ( Iterator j = dependencyArtifacts.iterator(); j.hasNext(); )
+ {
+ Artifact artifact = (Artifact) j.next();
+
+ if ( filter.include( artifact ) )
+ {
+ artifacts.add( artifact );
+ }
+ }
+
+ File repositoryDirectory = new File( tempRoot, repository.getOutputDirectory() );
+
+ repositoryAssembler.assemble( repositoryDirectory, artifacts, project.getRemoteArtifactRepositories() );
+
+ if ( includeBaseDirectory )
+ {
+ archiver.addDirectory( repositoryDirectory, repository.getOutputDirectory() + "/" );
+ }
+ else
+ {
+ archiver.addDirectory( repositoryDirectory );
+ }
+
+ }
}
private void processModules( Archiver archiver, List modulesList, boolean includeBaseDirectory )
Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/AbstractDirectoryMojo.java
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/AbstractDirectoryMojo.java?rev=392469&r1=392468&r2=392469&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/AbstractDirectoryMojo.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/AbstractDirectoryMojo.java Fri Apr 7 18:05:19 2006
@@ -3,7 +3,9 @@
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
import org.apache.maven.plugin.assembly.interpolation.AssemblyInterpolationException;
+import org.apache.maven.plugin.assembly.repository.RepositoryAssemblyException;
import org.apache.maven.plugins.assembly.model.Assembly;
+import org.apache.maven.artifact.InvalidRepositoryException;
import org.codehaus.plexus.archiver.Archiver;
import org.codehaus.plexus.archiver.ArchiverException;
import org.codehaus.plexus.archiver.manager.NoSuchArchiverException;
@@ -73,6 +75,14 @@
catch ( XmlPullParserException e )
{
throw new MojoExecutionException( "Error creating assembly", e );
+ }
+ catch ( RepositoryAssemblyException e )
+ {
+ throw new MojoExecutionException( "Error creating assembly: " + e.getMessage(), e );
+ }
+ catch ( InvalidRepositoryException e )
+ {
+ throw new MojoExecutionException( "Error creating assembly: " + e.getMessage(), e );
}
}
Added: 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=392469&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/repository/DefaultRepositoryAssembler.java (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/repository/DefaultRepositoryAssembler.java Fri Apr 7 18:05:19 2006
@@ -0,0 +1,98 @@
+package org.apache.maven.plugin.assembly.repository;
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.factory.ArtifactFactory;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+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.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.codehaus.plexus.logging.AbstractLogEnabled;
+
+import java.io.File;
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * @author Jason van Zyl
+ */
+public class DefaultRepositoryAssembler
+ extends AbstractLogEnabled
+ implements RepositoryAssembler
+{
+ protected ArtifactFactory artifactFactory;
+
+ protected ArtifactResolver artifactResolver;
+
+ protected ArtifactRepositoryLayout repositoryLayout;
+
+ protected ArtifactRepositoryFactory artifactRepositoryFactory;
+
+ public void assemble( File outputDirectory, List artifacts, List remoteRepositories )
+ throws RepositoryAssemblyException
+ {
+ ArtifactRepository localRepository = createLocalRepository( outputDirectory );
+
+ for ( Iterator i = artifacts.iterator(); i.hasNext(); )
+ {
+ Artifact ma = (Artifact) i.next();
+
+ Artifact a = artifactFactory.createProjectArtifact( ma.getGroupId(), ma.getArtifactId(), ma.getVersion() );
+
+ try
+ {
+ // Not sure if i want to do this transitively
+ artifactResolver.resolveAlways( a, remoteRepositories, localRepository );
+ }
+ catch ( ArtifactResolutionException e )
+ {
+ throw new RepositoryAssemblyException( "Error resolving artifact: " + a, e );
+ }
+ catch ( ArtifactNotFoundException e )
+ {
+ throw new RepositoryAssemblyException( "Cannot find artifact: " + a, e );
+ }
+ }
+ }
+
+ public ArtifactRepository createLocalRepository( File directory )
+ {
+ String localRepositoryUrl = directory.getAbsolutePath();
+
+ if ( !localRepositoryUrl.startsWith( "file:" ) )
+ {
+ localRepositoryUrl = "file://" + localRepositoryUrl;
+ }
+
+ return createRepository( "local", localRepositoryUrl, false, true, ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN );
+ }
+
+ public ArtifactRepository createRepository( String repositoryId,
+ String repositoryUrl,
+ boolean offline,
+ boolean updateSnapshots,
+ String globalChecksumPolicy )
+ {
+ ArtifactRepository localRepository =
+ new DefaultArtifactRepository( repositoryId, repositoryUrl, repositoryLayout );
+
+ boolean snapshotPolicySet = false;
+
+ if ( offline )
+ {
+ snapshotPolicySet = true;
+ }
+
+ if ( !snapshotPolicySet && updateSnapshots )
+ {
+ artifactRepositoryFactory.setGlobalUpdatePolicy( ArtifactRepositoryPolicy.UPDATE_POLICY_ALWAYS );
+ }
+
+ artifactRepositoryFactory.setGlobalChecksumPolicy( globalChecksumPolicy );
+
+ return localRepository;
+ }
+}
Propchange: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/repository/DefaultRepositoryAssembler.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/repository/DefaultRepositoryAssembler.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added: 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=392469&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/repository/RepositoryAssembler.java (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/repository/RepositoryAssembler.java Fri Apr 7 18:05:19 2006
@@ -0,0 +1,15 @@
+package org.apache.maven.plugin.assembly.repository;
+
+import java.io.File;
+import java.util.List;
+
+/**
+ * @author Jason van Zyl
+ */
+public interface RepositoryAssembler
+{
+ String ROLE = RepositoryAssembler.class.getName();
+
+ public void assemble( File outputDirectory, List artifacts, List remoteRepositories )
+ throws RepositoryAssemblyException;
+}
Propchange: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/repository/RepositoryAssembler.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/repository/RepositoryAssembler.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/repository/RepositoryAssemblyException.java
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/repository/RepositoryAssemblyException.java?rev=392469&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/repository/RepositoryAssemblyException.java (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/repository/RepositoryAssemblyException.java Fri Apr 7 18:05:19 2006
@@ -0,0 +1,24 @@
+package org.apache.maven.plugin.assembly.repository;
+
+/**
+ * @author Jason van Zyl
+ */
+public class RepositoryAssemblyException
+ extends Exception
+{
+ public RepositoryAssemblyException( String string )
+ {
+ super( string );
+ }
+
+ public RepositoryAssemblyException( String string,
+ Throwable throwable )
+ {
+ super( string, throwable );
+ }
+
+ public RepositoryAssemblyException( Throwable throwable )
+ {
+ super( throwable );
+ }
+}
Propchange: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/repository/RepositoryAssemblyException.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/repository/RepositoryAssemblyException.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
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=392469&r1=392468&r2=392469&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 Fri Apr 7 18:05:19 2006
@@ -47,7 +47,7 @@
<required>true</required>
<type>String</type>
<description>
- The id of this assembly. This is a symbolic name for a
+ The id of this assembly. This is a symbolic name for a
particular assembly of files from this project.
</description>
</field>
@@ -78,10 +78,10 @@
<type>boolean</type>
<defaultValue>true</defaultValue>
<description>
- Includes a base directory in the final archive. For example,
+ Includes a base directory in the final archive. For example,
if you are creating an assembly named "your-app", setting
includeBaseDirectory to true will create an archive that
- includes this base directory. If this option is set to false
+ includes this base directory. If this option is set to false
the archive created will unzip its content to the current
directory.
</description>
@@ -135,7 +135,17 @@
Specify assembly behavior for sets of dependencies.
</description>
</field>
-
+ <field>
+ <name>repositories</name>
+ <version>1.0.0</version>
+ <association>
+ <type>Repository</type>
+ <multiplicity>*</multiplicity>
+ </association>
+ <description>
+ Specify assembly behavior for sets of repositories.
+ </description>
+ </field>
<field>
<name>componentDescriptors</name>
<version>1.0.0</version>
@@ -163,7 +173,7 @@
<type>String</type>
<description>
Specifies the output directory relative to the root
- of the root directory of the assembly. For example,
+ of the root directory of the assembly. For example,
"log" will put the specified files in the log directory.
</description>
</field>
@@ -237,7 +247,7 @@
<version>1.0.0</version>
<type>String</type>
<description>
- Absolute or relative from the module's directory. For
+ Absolute or relative from the module's directory. For
example, "src/main/bin" would select this subdirectory
of the project in which this dependency is defined.
</description>
@@ -287,7 +297,7 @@
<required>false</required>
<description>
Specifies the output directory relative to the root
- of the root directory of the assembly. For example,
+ of the root directory of the assembly. For example,
"log" will put the specified files in the log directory.
</description>
</field>
@@ -296,7 +306,7 @@
<version>1.0.0</version>
<type>String</type>
<description>
- Destination file name in outputDirectory.
+ Destination file name in outputDirectory.
Default is the same name as the source's file.
</description>
</field>
@@ -356,7 +366,7 @@
<type>String</type>
<defaultValue>${artifactId}-${version}.${extension}</defaultValue>
<description>
- Specify the mapping pattern for all dependencies included
+ Specify the mapping pattern for all dependencies included
in this assembly.
Default is ${artifactId}-${version}.${extension}.
</description>
@@ -367,7 +377,7 @@
<defaultValue>false</defaultValue>
<description>
If set to true, this property will unpack all dependencies
- into the specified output directory. When set to false
+ into the specified output directory. When set to false
dependencies will be includes as archives (jars).
Default value is false.
</description>
@@ -385,7 +395,13 @@
</field>
</fields>
</class>
-
+
+ <class>
+ <name>Repository</name>
+ <version>1.0.0</version>
+ <superClass>SetBase</superClass>
+ <description>Defines a Maven repository to be included in the assembly.</description>
+ </class>
</classes>
</model>