You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jd...@apache.org on 2006/07/18 18:42:44 UTC
svn commit: r423128 [2/2] - in
/maven/plugins/branches/MASSEMBLY-124/src/main:
java/org/apache/maven/plugin/assembly/archive/
java/org/apache/maven/plugin/assembly/archive/phase/
java/org/apache/maven/plugin/assembly/repository/ mdo/
Modified: maven/plugins/branches/MASSEMBLY-124/src/main/java/org/apache/maven/plugin/assembly/repository/DefaultRepositoryAssembler.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/MASSEMBLY-124/src/main/java/org/apache/maven/plugin/assembly/repository/DefaultRepositoryAssembler.java?rev=423128&r1=423127&r2=423128&view=diff
==============================================================================
--- maven/plugins/branches/MASSEMBLY-124/src/main/java/org/apache/maven/plugin/assembly/repository/DefaultRepositoryAssembler.java (original)
+++ maven/plugins/branches/MASSEMBLY-124/src/main/java/org/apache/maven/plugin/assembly/repository/DefaultRepositoryAssembler.java Tue Jul 18 09:42:43 2006
@@ -57,6 +57,7 @@
import org.apache.maven.plugin.assembly.utils.DigestUtils;
import org.apache.maven.plugins.assembly.model.GroupVersionAlignment;
import org.apache.maven.plugins.assembly.model.Repository;
+import org.apache.maven.plugins.assembly.model.SetBase;
import org.apache.maven.project.DefaultMavenProjectBuilder;
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.MavenProjectBuilder;
@@ -99,7 +100,7 @@
{
MavenProject project = configSource.getProject();
ArtifactRepository localRepository = configSource.getLocalRepository();
-
+
createGroupVersionAlignments( repository.getGroupVersionAlignments() );
ArtifactRepository targetRepository = createLocalRepository( repositoryDirectory );
@@ -107,15 +108,16 @@
ArtifactResolutionResult result;
try
{
- // i have to get everything first as a filter or transformation here doesn't seem to work
- // 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
+ // i have to get everything first as a filter or transformation here
+ // doesn't seem to work
+ // 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.
+ // FIXME I'm not getting runtime dependencies here
result = artifactResolver.resolveTransitively( project.getDependencyArtifacts(), project.getArtifact(),
- project.getRemoteArtifactRepositories(), localRepository,
- metadataSource );
+ project.getRemoteArtifactRepositories(), localRepository, metadataSource );
}
catch ( ArtifactResolutionException e )
{
@@ -128,23 +130,39 @@
try
{
- // Blow the cache in the project builder so that we get POMs again on this next download
+ // Blow the cache in the project builder so that we get POMs again
+ // on this next download
invalidateProccessedProjectCache();
}
catch ( Exception e )
{
throw new RepositoryAssemblyException( "Error invalidating the processed project cache.", e );
}
+
+ ArtifactFilter filter = buildRepositoryFilter( repository, project);
+
+ assembleRepositoryArtifacts( result, filter, project, localRepository, targetRepository, repositoryDirectory );
+
+ ArtifactRepository centralRepository = findCentralRepository( project );
+
+ if ( repository.isIncludeMetadata() )
+ {
+ assembleRepositoryMetadata( result, filter, centralRepository, targetRepository );
+ }
+ }
+ private ArtifactFilter buildRepositoryFilter(SetBase repository, MavenProject project)
+ {
AndArtifactFilter filter = new AndArtifactFilter();
ArtifactFilter scopeFilter = new ScopeArtifactFilter( Artifact.SCOPE_RUNTIME );
filter.add( scopeFilter );
-
+
// ----------------------------------------------------------------------------
// Includes
//
- // We'll take everything if no includes are specified to try and make this
+ // We'll take everything if no includes are specified to try and make
+ // this
// process more maintainable. Don't want to have to update the assembly
// descriptor everytime the POM is updated.
// ----------------------------------------------------------------------------
@@ -152,21 +170,21 @@
if ( repository.getIncludes().isEmpty() )
{
List patterns = new ArrayList();
-
+
Set projectArtifacts = project.getDependencyArtifacts();
-
+
if ( projectArtifacts != null )
{
for ( Iterator it = projectArtifacts.iterator(); it.hasNext(); )
{
Artifact artifact = (Artifact) it.next();
-
+
patterns.add( artifact.getDependencyConflictId() );
}
}
-
+
AssemblyIncludesArtifactFilter includeFilter = new AssemblyIncludesArtifactFilter( patterns, true );
-
+
filter.add( includeFilter );
}
else
@@ -177,7 +195,8 @@
// ----------------------------------------------------------------------------
// Excludes
//
- // We still want to make it easy to exclude a few things even if we slurp
+ // We still want to make it easy to exclude a few things even if we
+ // slurp
// up everything.
// ----------------------------------------------------------------------------
@@ -186,9 +205,18 @@
filter.add( new AssemblyExcludesArtifactFilter( repository.getExcludes(), true ) );
}
+ return filter;
+ }
+
+ private void assembleRepositoryArtifacts( ArtifactResolutionResult result, ArtifactFilter filter,
+ MavenProject project, ArtifactRepository localRepository,
+ ArtifactRepository targetRepository, File repositoryDirectory )
+ throws RepositoryAssemblyException
+ {
try
{
- // Now that we have the graph, let's try to align it to versions that we want and remove
+ // Now that we have the graph, let's try to align it to versions
+ // that we want and remove
// the repository we previously populated.
FileUtils.deleteDirectory( repositoryDirectory );
@@ -202,7 +230,8 @@
{
setAlignment( a );
- // We need to flip it back to not being resolved so we can look for it again!
+ // We need to flip it back to not being resolved so we can
+ // look for it again!
a.setResolved( false );
artifactResolver.resolve( a, project.getRemoteArtifactRepositories(), localRepository );
@@ -216,19 +245,19 @@
{
a = artifactFactory.createProjectArtifact( a.getGroupId(), a.getArtifactId(), a.getVersion() );
- MavenProject p = projectBuilder.buildFromRepository( a, project.getRemoteArtifactRepositories(),
- localRepository );
+ MavenProject p = projectBuilder.buildFromRepository( a,
+ project.getRemoteArtifactRepositories(), localRepository );
do
{
- a = artifactFactory.createProjectArtifact( p.getGroupId(), p.getArtifactId(),
- p.getVersion() );
+ a = artifactFactory.createProjectArtifact( p.getGroupId(), p.getArtifactId(), p
+ .getVersion() );
setAlignment( a );
File sourceFile = new File( localRepository.getBasedir(), localRepository.pathOf( a ) );
- if( !sourceFile.exists() )
+ if ( !sourceFile.exists() )
{
break;
}
@@ -240,8 +269,7 @@
writeChecksums( targetFile );
p = p.getParent();
- }
- while ( p != null );
+ } while ( p != null );
}
}
}
@@ -262,7 +290,10 @@
{
throw new RepositoryAssemblyException( "Error reading POM.", e );
}
+ }
+ private ArtifactRepository findCentralRepository( MavenProject project )
+ {
ArtifactRepository centralRepository = null;
for ( Iterator i = project.getRemoteArtifactRepositories().iterator(); i.hasNext(); )
{
@@ -273,68 +304,69 @@
}
}
- if ( repository.isIncludeMetadata() )
+ return centralRepository;
+ }
+
+ private void assembleRepositoryMetadata( ArtifactResolutionResult result, ArtifactFilter filter,
+ ArtifactRepository centralRepository, ArtifactRepository targetRepository )
+ throws RepositoryAssemblyException
+ {
+ for ( Iterator i = result.getArtifacts().iterator(); i.hasNext(); )
{
- for ( Iterator i = result.getArtifacts().iterator(); i.hasNext(); )
- {
- Artifact a = (Artifact) i.next();
+ Artifact a = (Artifact) i.next();
- if ( filter.include( a ) )
- {
- Versioning v = new Versioning();
+ if ( filter.include( a ) )
+ {
+ Versioning v = new Versioning();
- v.setRelease( a.getVersion() );
+ v.setRelease( a.getVersion() );
- v.setLatest( a.getVersion() );
+ v.setLatest( a.getVersion() );
- v.addVersion( a.getVersion() );
+ v.addVersion( a.getVersion() );
- v.setLastUpdated( getUtcDateFormatter().format( new Date() ) );
+ v.setLastUpdated( getUtcDateFormatter().format( new Date() ) );
- ArtifactRepositoryMetadata metadata = new ArtifactRepositoryMetadata( a, v );
- String path = targetRepository.pathOfLocalRepositoryMetadata( metadata, centralRepository );
- File metadataFile = new File( targetRepository.getBasedir(), path );
+ ArtifactRepositoryMetadata metadata = new ArtifactRepositoryMetadata( a, v );
+ String path = targetRepository.pathOfLocalRepositoryMetadata( metadata, centralRepository );
+ File metadataFile = new File( targetRepository.getBasedir(), path );
- MetadataXpp3Writer metadataWriter = new MetadataXpp3Writer();
+ MetadataXpp3Writer metadataWriter = new MetadataXpp3Writer();
- Writer writer = null;
- try
- {
- writer = new FileWriter( metadataFile );
+ Writer writer = null;
+ try
+ {
+ writer = new FileWriter( metadataFile );
- metadataWriter.write( writer, metadata.getMetadata() );
- }
- catch ( IOException e )
- {
- throw new RepositoryAssemblyException( "Error writing artifact metdata.", e );
- }
- finally
- {
- IOUtil.close( writer );
- }
+ metadataWriter.write( writer, metadata.getMetadata() );
+ }
+ catch ( IOException e )
+ {
+ throw new RepositoryAssemblyException( "Error writing artifact metdata.", e );
+ }
+ finally
+ {
+ IOUtil.close( writer );
+ }
- try
- {
- writeChecksums( metadataFile );
+ try
+ {
+ writeChecksums( metadataFile );
- File metadataFileRemote = new File( targetRepository.getBasedir(),
- targetRepository.pathOfRemoteRepositoryMetadata(
- metadata ) );
+ File metadataFileRemote = new File( targetRepository.getBasedir(), targetRepository
+ .pathOfRemoteRepositoryMetadata( metadata ) );
- FileUtils.copyFile( metadataFile, metadataFileRemote );
+ FileUtils.copyFile( metadataFile, metadataFileRemote );
- FileUtils.copyFile( new File( metadataFile.getParentFile(), metadataFile.getName() + ".sha1" ),
- new File( metadataFileRemote.getParentFile(),
- metadataFileRemote.getName() + ".sha1" ) );
+ FileUtils.copyFile( new File( metadataFile.getParentFile(), metadataFile.getName() + ".sha1" ),
+ new File( metadataFileRemote.getParentFile(), metadataFileRemote.getName() + ".sha1" ) );
- FileUtils.copyFile( new File( metadataFile.getParentFile(), metadataFile.getName() + ".md5" ),
- new File( metadataFileRemote.getParentFile(),
- metadataFileRemote.getName() + ".md5" ) );
- }
- catch ( IOException e )
- {
- throw new RepositoryAssemblyException( "Error writing artifact metdata.", e );
- }
+ FileUtils.copyFile( new File( metadataFile.getParentFile(), metadataFile.getName() + ".md5" ),
+ new File( metadataFileRemote.getParentFile(), metadataFileRemote.getName() + ".md5" ) );
+ }
+ catch ( IOException e )
+ {
+ throw new RepositoryAssemblyException( "Error writing artifact metdata.", e );
}
}
}
@@ -348,8 +380,10 @@
String md5 = digester.createChecksum( file, "MD5" );
String sha1 = digester.createChecksum( file, "SHA-1" );
- FileUtils.fileWrite( new File( file.getParentFile(), file.getName() + ".md5" ).getAbsolutePath(), md5.toLowerCase() );
- FileUtils.fileWrite( new File( file.getParentFile(), file.getName() + ".sha1" ).getAbsolutePath(), sha1.toLowerCase() );
+ FileUtils.fileWrite( new File( file.getParentFile(), file.getName() + ".md5" ).getAbsolutePath(), md5
+ .toLowerCase() );
+ FileUtils.fileWrite( new File( file.getParentFile(), file.getName() + ".sha1" ).getAbsolutePath(), sha1
+ .toLowerCase() );
}
catch ( NoSuchAlgorithmException e )
{
@@ -386,14 +420,14 @@
}
return createRepository( "local", localRepositoryUrl, false, true,
- ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN );
+ ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN );
}
public ArtifactRepository createRepository( String repositoryId, String repositoryUrl, boolean offline,
boolean updateSnapshots, String globalChecksumPolicy )
{
- ArtifactRepository localRepository =
- new DefaultArtifactRepository( repositoryId, repositoryUrl, repositoryLayout );
+ ArtifactRepository localRepository = new DefaultArtifactRepository( repositoryId, repositoryUrl,
+ repositoryLayout );
boolean snapshotPolicySet = false;
Modified: maven/plugins/branches/MASSEMBLY-124/src/main/mdo/descriptor.mdo
URL: http://svn.apache.org/viewvc/maven/plugins/branches/MASSEMBLY-124/src/main/mdo/descriptor.mdo?rev=423128&r1=423127&r2=423128&view=diff
==============================================================================
--- maven/plugins/branches/MASSEMBLY-124/src/main/mdo/descriptor.mdo (original)
+++ maven/plugins/branches/MASSEMBLY-124/src/main/mdo/descriptor.mdo Tue Jul 18 09:42:43 2006
@@ -456,7 +456,7 @@
<class>
<name>ModuleSources</name>
<version>1.0.0</version>
- <superClass>SetBase</superClass>
+ <superClass>FileSet</superClass>
<description>Configuration for including the source files for a Module in an assembly.</description>
</class>