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:[EMAIL PROTECTED]">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();