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/08/04 02:50:42 UTC
svn commit: r428584 - in
/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly:
archive/ archive/phase/ archive/task/ io/ repository/ utils/
Author: jdcasey
Date: Thu Aug 3 17:50:42 2006
New Revision: 428584
URL: http://svn.apache.org/viewvc?rev=428584&view=rev
Log:
Fixing some bugs that should have been caught by functional testing.
Modified:
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiver.java
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/ModuleSetAssemblyPhase.java
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddFileSetsTask.java
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/io/DefaultAssemblyReader.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/utils/DigestUtils.java
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/ProjectUtils.java
Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiver.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiver.java?rev=428584&r1=428583&r2=428584&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiver.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiver.java Thu Aug 3 17:50:42 2006
@@ -27,7 +27,7 @@
import org.codehaus.plexus.logging.AbstractLogEnabled;
/**
- * @plexus.component role="org.apache.maven.plugin.assembly.archive.ArchiveCreator" role-hint="default"
+ * @plexus.component role="org.apache.maven.plugin.assembly.archive.AssemblyArchiver" role-hint="default"
*/
public class DefaultAssemblyArchiver
extends AbstractLogEnabled
Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/ModuleSetAssemblyPhase.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/ModuleSetAssemblyPhase.java?rev=428584&r1=428583&r2=428584&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/ModuleSetAssemblyPhase.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/ModuleSetAssemblyPhase.java Thu Aug 3 17:50:42 2006
@@ -15,10 +15,10 @@
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.MavenProjectBuilder;
import org.apache.maven.project.ProjectBuildingException;
-import org.apache.maven.wagon.PathUtils;
import org.codehaus.plexus.archiver.Archiver;
import org.codehaus.plexus.logging.AbstractLogEnabled;
+import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
@@ -71,7 +71,7 @@
getLogger().warn( "Encountered ModuleSet with no sources or binaries specified. Skipping." );
continue;
}
-
+
addModuleSourceFileSets( moduleSet.getSources(), moduleProjects, archiver, configSource,
includeBaseDirectory );
@@ -93,6 +93,9 @@
for ( Iterator j = moduleProjects.iterator(); j.hasNext(); )
{
MavenProject project = ( MavenProject ) j.next();
+
+ getLogger().debug( "Processing binary artifact for module project: " + project.getId() );
+
Artifact artifact = project.getArtifact();
addArtifact( artifact, project, archiver, configSource, binaries, includeBaseDirectory );
@@ -110,6 +113,8 @@
{
MavenProject moduleProject = ( MavenProject ) it.next();
+ getLogger().debug( "Processing binary dependencies for module project: " + moduleProject.getId() );
+
Set binaryDependencies = moduleProject.getArtifacts();
List includes = binaries.getIncludes();
@@ -202,7 +207,26 @@
{
MavenProject moduleProject = ( MavenProject ) j.next();
- sources.setDirectory( PathUtils.toRelative( moduleProject.getBasedir(), sources.getDirectory() ) );
+ getLogger().debug( "Processing sources for module project: " + moduleProject.getId() );
+
+ String sourcePath = sources.getDirectory();
+
+ File moduleBasedir = moduleProject.getBasedir();
+
+ if ( sourcePath != null )
+ {
+ File sourceDir = new File( sourcePath );
+
+ if ( !sourceDir.isAbsolute() )
+ {
+ sourcePath = new File( moduleBasedir, sourcePath ).getAbsolutePath();
+ sources.setDirectory( sourcePath );
+ }
+ }
+ else
+ {
+ sourcePath = moduleBasedir.getAbsolutePath();
+ }
AddFileSetsTask task = new AddFileSetsTask( Collections.singletonList( sources ) );
Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddFileSetsTask.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddFileSetsTask.java?rev=428584&r1=428583&r2=428584&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddFileSetsTask.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddFileSetsTask.java Thu Aug 3 17:50:42 2006
@@ -99,7 +99,7 @@
destDirectory = AssemblyFormatUtils.getOutputDirectory( destDirectory, project, configSource.getFinalName(),
includeBaseDirectory );
- logger.debug( "The archive base directory is '" + archiveBaseDir.getAbsolutePath() + "'" );
+ logger.debug( "The archive base directory is '" + archiveBaseDir + "'" );
File fileSetDir = getFileSetDirectory( fileSet, basedir, archiveBaseDir );
Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/io/DefaultAssemblyReader.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/io/DefaultAssemblyReader.java?rev=428584&r1=428583&r2=428584&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/io/DefaultAssemblyReader.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/io/DefaultAssemblyReader.java Thu Aug 3 17:50:42 2006
@@ -38,6 +38,9 @@
import java.util.Map;
import java.util.Set;
+/**
+ * @plexus.component role="org.apache.maven.plugin.assembly.io.AssemblyReader" role-hint="default"
+ */
public class DefaultAssemblyReader
extends AbstractLogEnabled
implements AssemblyReader
Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/repository/DefaultRepositoryAssembler.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/repository/DefaultRepositoryAssembler.java?rev=428584&r1=428583&r2=428584&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 Thu Aug 3 17:50:42 2006
@@ -45,6 +45,7 @@
import org.apache.maven.project.MavenProjectBuilder;
import org.apache.maven.project.ProjectBuildingException;
import org.codehaus.plexus.logging.AbstractLogEnabled;
+import org.codehaus.plexus.logging.Logger;
import org.codehaus.plexus.util.FileUtils;
import org.codehaus.plexus.util.IOUtil;
@@ -67,6 +68,7 @@
/**
* @author Jason van Zyl
+ * @plexus.component role="org.apache.maven.plugin.assembly.repository.RepositoryAssembler" role-hint="default"
*/
// todo will need to pop the processed project cache using reflection
@@ -78,33 +80,62 @@
protected static final String UTC_TIMESTAMP_PATTERN = "yyyyMMddHHmmss";
+ /**
+ * @plexus.requirement
+ */
protected ArtifactFactory artifactFactory;
+ /**
+ * @plexus.requirement
+ */
protected ArtifactResolver artifactResolver;
+ /**
+ * @plexus.requirement
+ */
protected ArtifactRepositoryLayout repositoryLayout;
+ /**
+ * @plexus.requirement
+ */
protected ArtifactRepositoryFactory artifactRepositoryFactory;
+ /**
+ * @plexus.requirement
+ */
protected ArtifactMetadataSource metadataSource;
+ /**
+ * @plexus.requirement
+ */
protected MavenProjectBuilder projectBuilder;
- private Map groupVersionAlignments;
-
- private DigestUtils digester = new DigestUtils();
-
public void assemble( File repositoryDirectory, Repository repository, AssemblerConfigurationSource configSource )
throws RepositoryAssemblyException
{
MavenProject project = configSource.getProject();
ArtifactRepository localRepository = configSource.getLocalRepository();
- createGroupVersionAlignments( repository.getGroupVersionAlignments() );
+ Map groupVersionAlignments = createGroupVersionAlignments( repository.getGroupVersionAlignments() );
ArtifactRepository targetRepository = createLocalRepository( repositoryDirectory );
- ArtifactResolutionResult result;
+ ArtifactResolutionResult result = null;
+
+ Set dependencyArtifacts = project.getDependencyArtifacts();
+
+ if ( dependencyArtifacts == null )
+ {
+ Logger logger = getLogger();
+
+ if ( logger.isDebugEnabled() )
+ {
+ logger.debug( "dependency-artifact set for project: " + project.getId() + " is null. Skipping repository processing." );
+ }
+
+ return;
+ }
+
try
{
// i have to get everything first as a filter or transformation here
@@ -115,7 +146,7 @@
// JARs.
// FIXME I'm not getting runtime dependencies here
- result = artifactResolver.resolveTransitively( project.getDependencyArtifacts(), project.getArtifact(),
+ result = artifactResolver.resolveTransitively( dependencyArtifacts, project.getArtifact(),
project.getRemoteArtifactRepositories(), localRepository, metadataSource );
}
catch ( ArtifactResolutionException e )
@@ -140,7 +171,7 @@
ArtifactFilter filter = buildRepositoryFilter( repository, project);
- assembleRepositoryArtifacts( result, filter, project, localRepository, targetRepository, repositoryDirectory );
+ assembleRepositoryArtifacts( result, filter, project, localRepository, targetRepository, repositoryDirectory, groupVersionAlignments );
ArtifactRepository centralRepository = findCentralRepository( project );
@@ -209,7 +240,7 @@
private void assembleRepositoryArtifacts( ArtifactResolutionResult result, ArtifactFilter filter,
MavenProject project, ArtifactRepository localRepository,
- ArtifactRepository targetRepository, File repositoryDirectory )
+ ArtifactRepository targetRepository, File repositoryDirectory, Map groupVersionAlignments )
throws RepositoryAssemblyException
{
try
@@ -227,7 +258,7 @@
if ( filter.include( a ) )
{
- setAlignment( a );
+ setAlignment( a, groupVersionAlignments );
// We need to flip it back to not being resolved so we can
// look for it again!
@@ -252,7 +283,7 @@
a = artifactFactory.createProjectArtifact( p.getGroupId(), p.getArtifactId(), p
.getVersion() );
- setAlignment( a );
+ setAlignment( a, groupVersionAlignments );
File sourceFile = new File( localRepository.getBasedir(), localRepository.pathOf( a ) );
@@ -376,8 +407,8 @@
{
try
{
- String md5 = digester.createChecksum( file, "MD5" );
- String sha1 = digester.createChecksum( file, "SHA-1" );
+ String md5 = DigestUtils.createChecksum( file, "MD5" );
+ String sha1 = DigestUtils.createChecksum( file, "SHA-1" );
FileUtils.fileWrite( new File( file.getParentFile(), file.getName() + ".md5" ).getAbsolutePath(), md5
.toLowerCase() );
@@ -390,9 +421,9 @@
}
}
- protected void createGroupVersionAlignments( List versionAlignments )
+ protected Map createGroupVersionAlignments( List versionAlignments )
{
- groupVersionAlignments = new HashMap();
+ Map groupVersionAlignments = new HashMap();
for ( Iterator i = versionAlignments.iterator(); i.hasNext(); )
{
@@ -400,6 +431,8 @@
groupVersionAlignments.put( alignment.getId(), alignment );
}
+
+ return groupVersionAlignments;
}
protected static DateFormat getUtcDateFormatter()
@@ -461,7 +494,7 @@
field.setAccessible( false );
}
- private void setAlignment( Artifact artifact )
+ private void setAlignment( Artifact artifact, Map groupVersionAlignments )
{
GroupVersionAlignment alignment = (GroupVersionAlignment) groupVersionAlignments.get( artifact.getGroupId() );
Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/DigestUtils.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/DigestUtils.java?rev=428584&r1=428583&r2=428584&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/DigestUtils.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/DigestUtils.java Thu Aug 3 17:50:42 2006
@@ -33,13 +33,17 @@
* @author <a href="mailto:brett@apache.org">Brett Porter</a>
* @todo [jdcasey] This needs unit tests.
*/
-public class DigestUtils
+public final class DigestUtils
{
private static final int CHECKSUM_BUFFER_SIZE = 16384;
private static final int BYTE_MASK = 0xFF;
+
+ private DigestUtils()
+ {
+ }
- public String createChecksum( File file, String algorithm )
+ public static String createChecksum( File file, String algorithm )
throws IOException, NoSuchAlgorithmException
{
MessageDigest digest = MessageDigest.getInstance( algorithm );
Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/ProjectUtils.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/ProjectUtils.java?rev=428584&r1=428583&r2=428584&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/ProjectUtils.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/ProjectUtils.java Thu Aug 3 17:50:42 2006
@@ -49,7 +49,9 @@
continue;
}
- for ( Iterator parentIterator = modules.iterator(); parentIterator.hasNext(); )
+ Set currentPotentialParents = new HashSet( modules );
+
+ for ( Iterator parentIterator = currentPotentialParents.iterator(); parentIterator.hasNext(); )
{
MavenProject potentialParent = (MavenProject) parentIterator.next();