Author: jdcasey
Date: Thu Aug 16 12:52:42 2007
New Revision: 566812
URL: http://svn.apache.org/viewvc?view=rev&rev=566812
Log:
[MASSEMBLY-222] Modifying interpolation such that outputDirectory calculations
can pull values from either the dependency's project info or the main project
info, using the ${artifact.*} and ${pom.*} expressions, respectively. Leaving
off the prefix, as in ${version} will now once again reference the main project
info, NOT the dependency info.
Added:
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/PrefixedObjectBasedValueSource.java
(with props)
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/FileItemAssemblyPhase.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/phase/RepositoryAssemblyPhase.java
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddArtifactTask.java
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTask.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/utils/AssemblyFormatUtils.java
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/DependencySetAssemblyPhaseTest.java
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/ModuleSetAssemblyPhaseTest.java
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddFileSetsTaskTest.java
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddArtifactTask.java
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddDependencySetsTask.java
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/utils/AssemblyFormatUtilsTest.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?view=diff&rev=566812&r1=566811&r2=566812
==============================================================================
---
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 16 12:52:42 2007
@@ -96,7 +96,7 @@
if ( specifiedBasedir != null )
{
basedir = AssemblyFormatUtils.getOutputDirectory(
specifiedBasedir, configSource.getProject(),
- finalName );
+ null,
finalName );
}
List containerHandlers = createContainerDescriptorHandlers(
assembly.getContainerDescriptorHandlers() );
Modified:
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/FileItemAssemblyPhase.java
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/FileItemAssemblyPhase.java?view=diff&rev=566812&r1=566811&r2=566812
==============================================================================
---
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/FileItemAssemblyPhase.java
(original)
+++
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/FileItemAssemblyPhase.java
Thu Aug 16 12:52:42 2007
@@ -61,7 +61,7 @@
}
String outputDirectory = AssemblyFormatUtils.getOutputDirectory(
fileItem.getOutputDirectory(),
- configSource.getProject(), configSource.getFinalName() );
+ configSource.getProject(), null, configSource.getFinalName() );
String target;
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?view=diff&rev=566812&r1=566811&r2=566812
==============================================================================
---
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 16 12:52:42 2007
@@ -80,7 +80,7 @@
ModuleSources sources = moduleSet.getSources();
ModuleBinaries binaries = moduleSet.getBinaries();
- if ( sources == null && binaries == null )
+ if ( ( sources == null ) && ( binaries == null ) )
{
getLogger().warn( "Encountered ModuleSet with no sources or
binaries specified. Skipping." );
continue;
@@ -116,7 +116,7 @@
it.remove();
}
}
-
+
String classifier = binaries.getAttachmentClassifier();
for ( Iterator j = moduleProjects.iterator(); j.hasNext(); )
@@ -124,7 +124,7 @@
MavenProject project = ( MavenProject ) j.next();
Artifact artifact = null;
-
+
if ( classifier == null )
{
getLogger().debug( "Processing binary artifact for module
project: " + project.getId() );
@@ -136,12 +136,12 @@
getLogger().debug( "Processing binary attachment: " +
classifier + " for module project: " + project.getId() );
List attachments = project.getAttachedArtifacts();
- if ( attachments != null && !attachments.isEmpty() )
+ if ( ( attachments != null ) && !attachments.isEmpty() )
{
for ( Iterator attachmentIterator =
attachments.iterator(); attachmentIterator.hasNext(); )
{
Artifact attachment = (Artifact)
attachmentIterator.next();
-
+
if ( classifier.equals( attachment.getClassifier() ) )
{
artifact = attachment;
@@ -149,7 +149,7 @@
}
}
}
-
+
if ( artifact == null )
{
throw new InvalidAssemblerConfigurationException( "Cannot
find attachment with classifier: " + classifier + " in module project: " +
project.getId() + ". Please exclude this module from the module-set." );
@@ -161,7 +161,7 @@
List depSets = binaries.getDependencySets();
- if ( ( depSets == null || depSets.isEmpty() ) &&
binaries.isIncludeDependencies() )
+ if ( ( ( depSets == null ) || depSets.isEmpty() ) &&
binaries.isIncludeDependencies() )
{
DependencySet impliedDependencySet = new DependencySet();
@@ -268,7 +268,7 @@
List subFileSets = sources.getFileSets();
- if ( subFileSets == null || subFileSets.isEmpty() )
+ if ( ( subFileSets == null ) || subFileSets.isEmpty() )
{
FileSet fs = new FileSet();
fs.setDirectory( "src" );
@@ -288,7 +288,7 @@
{
FileSet fileSet = ( FileSet ) fsIterator.next();
- FileSet moduleFileSet = createFileSet( fileSet, sources,
moduleProject );
+ FileSet moduleFileSet = createFileSet( fileSet, sources,
moduleProject, configSource );
AddFileSetsTask task = new AddFileSetsTask(
Collections.singletonList( moduleFileSet ) );
@@ -311,11 +311,11 @@
{
result = true;
}
- else if ( sources.getIncludes() != null &&
!sources.getIncludes().isEmpty() )
+ else if ( ( sources.getIncludes() != null ) &&
!sources.getIncludes().isEmpty() )
{
result = true;
}
- else if ( sources.getExcludes() != null &&
!sources.getExcludes().isEmpty() )
+ else if ( ( sources.getExcludes() != null ) &&
!sources.getExcludes().isEmpty() )
{
result = true;
}
@@ -337,7 +337,7 @@
return result;
}
- protected FileSet createFileSet( FileSet fileSet, ModuleSources sources,
MavenProject moduleProject )
+ protected FileSet createFileSet( FileSet fileSet, ModuleSources sources,
MavenProject moduleProject, AssemblerConfigurationSource configSource )
throws AssemblyFormattingException
{
FileSet fs = new FileSet();
@@ -366,7 +366,7 @@
List excludes = new ArrayList();
List originalExcludes = fileSet.getExcludes();
- if ( originalExcludes != null && !originalExcludes.isEmpty() )
+ if ( ( originalExcludes != null ) && !originalExcludes.isEmpty() )
{
excludes.addAll( originalExcludes );
}
@@ -412,7 +412,7 @@
destPath = destPathPrefix + destPath;
}
- destPath = AssemblyFormatUtils.getOutputDirectory( destPath,
moduleProject, "" );
+ destPath = AssemblyFormatUtils.getOutputDirectory( destPath,
configSource.getProject(), moduleProject, "", "module" );
fs.setOutputDirectory( destPath );
Modified:
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/RepositoryAssemblyPhase.java
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/RepositoryAssemblyPhase.java?view=diff&rev=566812&r1=566811&r2=566812
==============================================================================
---
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/RepositoryAssemblyPhase.java
(original)
+++
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/RepositoryAssemblyPhase.java
Thu Aug 16 12:52:42 2007
@@ -93,7 +93,7 @@
String outputDirectory =
AssemblyFormatUtils.getOutputDirectory(
repository.getOutputDirectory(), configSource.getProject(),
-
configSource.getFinalName() );
+ null,
configSource.getFinalName() );
AddDirectoryTask task = new AddDirectoryTask( repositoryDirectory
);
Modified:
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddArtifactTask.java
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddArtifactTask.java?view=diff&rev=566812&r1=566811&r2=566812
==============================================================================
---
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddArtifactTask.java
(original)
+++
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddArtifactTask.java
Thu Aug 16 12:52:42 2007
@@ -49,7 +49,7 @@
{
String destDirectory = outputDirectory;
- destDirectory = AssemblyFormatUtils.getOutputDirectory( destDirectory,
project, configSource.getFinalName() );
+ destDirectory = AssemblyFormatUtils.getOutputDirectory( destDirectory,
configSource.getProject(), project, configSource.getFinalName() );
if ( unpack )
{
Modified:
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTask.java
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTask.java?view=diff&rev=566812&r1=566811&r2=566812
==============================================================================
---
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTask.java
(original)
+++
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTask.java
Thu Aug 16 12:52:42 2007
@@ -118,7 +118,7 @@
if ( NON_ARCHIVE_DEPENDENCY_TYPES.contains( depArtifact.getType()
) )
{
- addNonArchiveDependency( depArtifact, depProject,
dependencySet, archiver );
+ addNonArchiveDependency( depArtifact, depProject,
dependencySet, archiver, configSource );
}
else
{
@@ -215,14 +215,14 @@
}
protected void addNonArchiveDependency( Artifact depArtifact, MavenProject
depProject, DependencySet dependencySet,
- Archiver archiver )
+ Archiver archiver,
AssemblerConfigurationSource configSource )
throws AssemblyFormattingException, ArchiveCreationException
{
File source = depArtifact.getFile();
String outputDirectory = dependencySet.getOutputDirectory();
- outputDirectory = AssemblyFormatUtils.getOutputDirectory(
outputDirectory, depProject, depProject.getBuild()
+ outputDirectory = AssemblyFormatUtils.getOutputDirectory(
outputDirectory, configSource.getProject(), depProject, depProject.getBuild()
.getFinalName() );
String destName = AssemblyFormatUtils.evaluateFileNameMapping(
dependencySet.getOutputFileNameMapping(),
depArtifact );
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?view=diff&rev=566812&r1=566811&r2=566812
==============================================================================
---
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 16 12:52:42 2007
@@ -22,7 +22,7 @@
{
private final List fileSets;
-
+
private Logger logger;
private MavenProject project;
@@ -31,11 +31,11 @@
{
this.fileSets = fileSets;
}
-
+
public void execute( Archiver archiver, AssemblerConfigurationSource
configSource )
throws ArchiveCreationException, AssemblyFormattingException
{
- // don't need this check here. it's more efficient here, but the
logger is not actually
+ // don't need this check here. it's more efficient here, but the
logger is not actually
// used until addFileSet(..)...and the check should be there in case
someone extends the
// class.
// checkLogger();
@@ -74,7 +74,7 @@
FileSetFormatter fileSetFormatter = new FileSetFormatter(
configSource, logger );
File basedir = project.getBasedir();
-
+
if ( project == null )
{
project = configSource.getProject();
@@ -95,7 +95,7 @@
+ ( fileSet.getLineEnding() == null ? "" : " lineEndings: " +
fileSet.getLineEnding() ) );
}
- destDirectory = AssemblyFormatUtils.getOutputDirectory( destDirectory,
project, configSource.getFinalName() );
+ destDirectory = AssemblyFormatUtils.getOutputDirectory( destDirectory,
configSource.getProject(), project, configSource.getFinalName() );
logger.debug( "The archive base directory is '" + archiveBaseDir + "'"
);
Modified:
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/AssemblyFormatUtils.java
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/AssemblyFormatUtils.java?view=diff&rev=566812&r1=566811&r2=566812
==============================================================================
---
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/AssemblyFormatUtils.java
(original)
+++
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/AssemblyFormatUtils.java
Thu Aug 16 12:52:42 2007
@@ -46,7 +46,12 @@
return distributionName;
}
- public static String getOutputDirectory( String output, MavenProject
project, String finalName )
+ public static String getOutputDirectory( String output, MavenProject
mainProject, MavenProject artifactProject, String finalName )
+ {
+ return getOutputDirectory( output, mainProject, artifactProject,
finalName, "artifact" );
+ }
+
+ public static String getOutputDirectory( String output, MavenProject
mainProject, MavenProject artifactProject, String finalName, String
artifactProjectRefName )
{
String value = output;
if ( value == null )
@@ -66,9 +71,15 @@
interpolator.addValueSource( new PropertiesInterpolationValueSource(
specialExpressionOverrides ) );
- if ( project != null )
+ if ( mainProject != null )
+ {
+ interpolator.addValueSource( new PrefixedObjectBasedValueSource(
"pom.", mainProject ) );
+ interpolator.addValueSource( new ObjectBasedValueSource(
mainProject ) );
+ }
+
+ if ( artifactProject != null )
{
- interpolator.addValueSource( new ObjectBasedValueSource( project )
);
+ interpolator.addValueSource( new PrefixedObjectBasedValueSource(
"artifact.", artifactProject ) );
}
value = interpolator.interpolate( value, "__project" );
Added:
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/PrefixedObjectBasedValueSource.java
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/PrefixedObjectBasedValueSource.java?view=auto&rev=566812
==============================================================================
---
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/PrefixedObjectBasedValueSource.java
(added)
+++
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/PrefixedObjectBasedValueSource.java
Thu Aug 16 12:52:42 2007
@@ -0,0 +1,58 @@
+package org.apache.maven.plugin.assembly.utils;
+
+import org.codehaus.plexus.logging.Logger;
+import org.codehaus.plexus.util.interpolation.ValueSource;
+import org.codehaus.plexus.util.introspection.ReflectionValueExtractor;
+
+public class PrefixedObjectBasedValueSource
+ implements ValueSource
+{
+
+ private String prefix;
+ private final Object root;
+ private final Logger logger;
+
+ public PrefixedObjectBasedValueSource( String prefix, Object root )
+ {
+ this.prefix = prefix;
+ this.root = root;
+ logger = null;
+ }
+
+ public PrefixedObjectBasedValueSource( String prefix, Object root, Logger
logger )
+ {
+ this.prefix = prefix;
+ this.root = root;
+ this.logger = logger;
+ }
+
+ public Object getValue( String expression )
+ {
+ if ( !expression.startsWith( prefix ) )
+ {
+ return null;
+ }
+
+ String realExpr = expression.substring( prefix.length() );
+ if ( realExpr.startsWith( "." ) )
+ {
+ realExpr = realExpr.substring( 1 );
+ }
+
+ Object value = null;
+ try
+ {
+ value = ReflectionValueExtractor.evaluate( realExpr, root, false );
+ }
+ catch ( Exception e )
+ {
+ if ( ( logger != null ) && logger.isDebugEnabled() )
+ {
+ logger.debug( "Failed to extract \'" + realExpr + "\' from: "
+ root + " (full expression was: \'" + expression + "\').", e );
+ }
+ }
+
+ return value;
+ }
+
+}
Propchange:
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/PrefixedObjectBasedValueSource.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/PrefixedObjectBasedValueSource.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Modified:
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/DependencySetAssemblyPhaseTest.java
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/DependencySetAssemblyPhaseTest.java?view=diff&rev=566812&r1=566811&r2=566812
==============================================================================
---
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/DependencySetAssemblyPhaseTest.java
(original)
+++
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/DependencySetAssemblyPhaseTest.java
Thu Aug 16 12:52:42 2007
@@ -46,7 +46,7 @@
assembly.setIncludeBaseDirectory( false );
assembly.addDependencySet( ds );
- MockAndControlForAddDependencySetsTask macTask = new
MockAndControlForAddDependencySetsTask( mockManager );
+ MockAndControlForAddDependencySetsTask macTask = new
MockAndControlForAddDependencySetsTask( mockManager, null, project );
macTask.expectArtifactGetFile();
macTask.expectArtifactGetType( "jar" );
@@ -60,7 +60,6 @@
project.setArtifacts( Collections.singleton( macTask.artifact ) );
- macTask.expectGetProject( project );
macTask.expectCSGetFinalName( "final-name" );
Logger logger = new ConsoleLogger( Logger.LEVEL_DEBUG, "test" );
@@ -86,9 +85,7 @@
Logger logger = new ConsoleLogger( Logger.LEVEL_DEBUG, "test" );
- MockAndControlForAddDependencySetsTask macTask = new
MockAndControlForAddDependencySetsTask( mockManager );
-
- macTask.expectGetProject( null );
+ MockAndControlForAddDependencySetsTask macTask = new
MockAndControlForAddDependencySetsTask( mockManager, null, null );
mockManager.replayAll();
Modified:
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/ModuleSetAssemblyPhaseTest.java
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/ModuleSetAssemblyPhaseTest.java?view=diff&rev=566812&r1=566811&r2=566812
==============================================================================
---
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/ModuleSetAssemblyPhaseTest.java
(original)
+++
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/ModuleSetAssemblyPhaseTest.java
Thu Aug 16 12:52:42 2007
@@ -103,32 +103,37 @@
{
MockManager mm = new MockManager();
- FileSet fs = new FileSet();
-
- ModuleSources sources = new ModuleSources();
- sources.setIncludeModuleDirectory( true );
-
Model model = new Model();
model.setArtifactId( "artifact" );
MavenProject project = new MavenProject( model );
+ MockAndControlForAddArtifactTask macTask = new
MockAndControlForAddArtifactTask( mm, "test", project );
+
+ FileSet fs = new FileSet();
+
+ ModuleSources sources = new ModuleSources();
+ sources.setIncludeModuleDirectory( true );
+
File basedir = fileManager.createTempDir();
- project.setFile( new File( basedir, "pom.xml" ) );
+ MavenProject artifactProject = new MavenProject( new Model() );
+
+ artifactProject.setFile( new File( basedir, "pom.xml" ) );
MockAndControlForArtifact macArtifact = new MockAndControlForArtifact(
mm );
macArtifact.expectIsSnapshot( false );
macArtifact.expectGetArtifactHandler();
- project.setArtifact( macArtifact.artifact );
+ artifactProject.setArtifact( macArtifact.artifact );
mm.replayAll();
FileSet result = createPhase( new ConsoleLogger( Logger.LEVEL_DEBUG,
"test" ), null ).createFileSet( fs,
sources,
-
project );
+
artifactProject,
+
macTask.configSource );
assertEquals( "artifact/", result.getOutputDirectory() );
@@ -140,33 +145,38 @@
{
MockManager mm = new MockManager();
+ Model model = new Model();
+ model.setArtifactId( "artifact" );
+
+ MavenProject project = new MavenProject( model );
+
+ MockAndControlForAddArtifactTask macTask = new
MockAndControlForAddArtifactTask( mm, "test", project );
+
FileSet fs = new FileSet();
fs.setOutputDirectory( "out" );
ModuleSources sources = new ModuleSources();
sources.setIncludeModuleDirectory( true );
- Model model = new Model();
- model.setArtifactId( "artifact" );
-
- MavenProject project = new MavenProject( model );
+ MavenProject artifactProject = new MavenProject( new Model() );
File basedir = fileManager.createTempDir();
- project.setFile( new File( basedir, "pom.xml" ) );
+ artifactProject.setFile( new File( basedir, "pom.xml" ) );
MockAndControlForArtifact macArtifact = new MockAndControlForArtifact(
mm );
macArtifact.expectIsSnapshot( false );
macArtifact.expectGetArtifactHandler();
- project.setArtifact( macArtifact.artifact );
+ artifactProject.setArtifact( macArtifact.artifact );
mm.replayAll();
FileSet result = createPhase( new ConsoleLogger( Logger.LEVEL_DEBUG,
"test" ), null ).createFileSet( fs,
sources,
-
project );
+
artifactProject,
+
macTask.configSource );
assertEquals( "artifact/out/", result.getOutputDirectory() );
@@ -178,6 +188,8 @@
{
MockManager mm = new MockManager();
+ MockAndControlForAddArtifactTask macTask = new
MockAndControlForAddArtifactTask( mm, "test", null );
+
FileSet fs = new FileSet();
ModuleSources sources = new ModuleSources();
@@ -205,7 +217,8 @@
FileSet result = createPhase( new ConsoleLogger( Logger.LEVEL_DEBUG,
"test" ), null ).createFileSet( fs,
sources,
-
project );
+
project,
+
macTask.configSource );
assertEquals( 1, result.getExcludes().size() );
assertEquals( "submodule/**", result.getExcludes().get( 0 ) );
@@ -228,9 +241,10 @@
{
MockManager mm = new MockManager();
- MockAndControlForAddArtifactTask macTask = new
MockAndControlForAddArtifactTask( mm );
-
MavenProject project = createProject( "group", "artifact", "version",
null );
+
+ MockAndControlForAddArtifactTask macTask = new
MockAndControlForAddArtifactTask( mm, null, project );
+
MavenProject module = createProject( "group", "module", "version",
project );
macTask.expectArtifactGetFile();
@@ -238,10 +252,8 @@
List projects = new ArrayList();
- projects.add( project );
projects.add( module );
- macTask.expectGetProject( project );
macTask.expectGetReactorProjects( projects );
macTask.expectGetFinalName( "final-name" );
macTask.expectIsSnapshot( false );
@@ -319,7 +331,7 @@
{
MockManager mm = new MockManager();
- MockAndControlForAddArtifactTask macTask = new
MockAndControlForAddArtifactTask( mm, "test" );
+ MockAndControlForAddArtifactTask macTask = new
MockAndControlForAddArtifactTask( mm, "test", null );
macTask.expectArtifactGetFile( true );
macTask.expectGetFinalName( "final-name" );
@@ -680,6 +692,8 @@
MavenProject project = createProject( "group", "artifact", "version",
null );
+ macTask.expectGetProject( project );
+
MockAndControlForArtifact macArtifact = new MockAndControlForArtifact(
mm );
macArtifact.expectIsSnapshot( false );
@@ -720,13 +734,12 @@
{
MockManager mm = new MockManager();
- MockAndControlForAddDependencySetsTask macTask = new
MockAndControlForAddDependencySetsTask( mm );
-
MavenProject project = createProject( "group", "artifact", "version",
null );
+ MockAndControlForAddDependencySetsTask macTask = new
MockAndControlForAddDependencySetsTask( mm, null, project );
+
List projects = Collections.singletonList( project );
- macTask.expectGetProject( project );
macTask.expectGetReactorProjects( projects );
ModuleSet moduleSet = new ModuleSet();
@@ -746,16 +759,16 @@
{
MockManager mm = new MockManager();
- MockAndControlForAddDependencySetsTask macTask = new
MockAndControlForAddDependencySetsTask( mm );
-
MavenProject project = createProject( "group", "artifact", "version",
null );
+
+ MockAndControlForAddDependencySetsTask macTask = new
MockAndControlForAddDependencySetsTask( mm, null, project );
+
MavenProject project2 = createProject( "group", "artifact2",
"version", null );
List projects = new ArrayList();
projects.add( project );
projects.add( project2 );
- macTask.expectGetProject( project );
macTask.expectGetReactorProjects( projects );
ModuleSet moduleSet = new ModuleSet();
@@ -775,16 +788,16 @@
{
MockManager mm = new MockManager();
- MockAndControlForAddDependencySetsTask macTask = new
MockAndControlForAddDependencySetsTask( mm );
-
MavenProject project = createProject( "group", "artifact", "version",
null );
+
+ MockAndControlForAddDependencySetsTask macTask = new
MockAndControlForAddDependencySetsTask( mm, null, project );
+
MavenProject project2 = createProject( "group", "artifact2",
"version", project );
List projects = new ArrayList();
projects.add( project );
projects.add( project2 );
- macTask.expectGetProject( project );
macTask.expectGetReactorProjects( projects );
ModuleSet moduleSet = new ModuleSet();
@@ -808,9 +821,10 @@
{
MockManager mm = new MockManager();
- MockAndControlForAddDependencySetsTask macTask = new
MockAndControlForAddDependencySetsTask( mm );
-
MavenProject project = createProject( "group", "artifact", "version",
null );
+
+ MockAndControlForAddDependencySetsTask macTask = new
MockAndControlForAddDependencySetsTask( mm, null, project );
+
MavenProject project2 = createProject( "group", "artifact2",
"version", project );
MavenProject project3 = createProject( "group", "artifact3",
"version", project2 );
@@ -819,7 +833,6 @@
projects.add( project2 );
projects.add( project3 );
- macTask.expectGetProject( project );
macTask.expectGetReactorProjects( projects );
ModuleSet moduleSet = new ModuleSet();
@@ -845,11 +858,12 @@
{
MockManager mm = new MockManager();
- MockAndControlForAddDependencySetsTask macTask = new
MockAndControlForAddDependencySetsTask( mm );
+ MavenProject project = createProject( "group", "artifact", "version",
null );
+
+ MockAndControlForAddDependencySetsTask macTask = new
MockAndControlForAddDependencySetsTask( mm, null, project );
List macArtifacts = new ArrayList();
- MavenProject project = createProject( "group", "artifact", "version",
null );
macArtifacts.add( addArtifact( project, mm, false, false ) );
MavenProject project2 = createProject( "group", "artifact2",
"version", project );
@@ -869,7 +883,6 @@
projects.add( project2 );
projects.add( project3 );
- macTask.expectGetProject( project );
macTask.expectGetReactorProjects( projects );
ModuleSet moduleSet = new ModuleSet();
Modified:
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddFileSetsTaskTest.java
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddFileSetsTaskTest.java?view=diff&rev=566812&r1=566811&r2=566812
==============================================================================
---
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddFileSetsTaskTest.java
(original)
+++
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddFileSetsTaskTest.java
Thu Aug 16 12:52:42 2007
@@ -32,7 +32,7 @@
mockManager = new MockManager();
fileManager = new TestFileManager( "add-fileset.test.", "" );
-
+
macTask = new MockAndControlForAddFileSetsTask( mockManager,
fileManager );
}
@@ -121,9 +121,11 @@
int[] modes = { -1, -1, Integer.parseInt( fs.getDirectoryMode(), 8 ),
Integer.parseInt( fs.getFileMode(), 8 ) };
macTask.expectAdditionOfSingleFileSet( null, null, null, true, modes,
2, true, false );
-
+
+ macTask.expectGetProject( null );
+
MavenProject project = new MavenProject( new Model() );
-
+
mockManager.replayAll();
AddFileSetsTask task = new AddFileSetsTask( Collections.EMPTY_LIST );
@@ -154,7 +156,9 @@
int[] modes = { -1, -1, Integer.parseInt( fs.getDirectoryMode(), 8 ),
Integer.parseInt( fs.getFileMode(), 8 ) };
macTask.expectAdditionOfSingleFileSet( null, null, null, true, modes,
2, true, false );
-
+
+ macTask.expectGetProject( null );
+
MavenProject project = new MavenProject( new Model() );
mockManager.replayAll();
@@ -181,7 +185,9 @@
File archiveBaseDir = fileManager.createTempDir();
macTask.expectGetFinalName( "finalName" );
-
+
+ macTask.expectGetProject( null );
+
macTask.archiver.getDefaultDirectoryMode();
macTask.archiverCtl.setReturnValue( -1 );
macTask.archiver.getDefaultFileMode();
@@ -230,7 +236,7 @@
throws AssemblyFormattingException, IOException
{
File archiveBaseDir = fileManager.createTempFile();
-
+
macTask.archiveBaseDir = archiveBaseDir;
macTask.expectGetArchiveBaseDirectory();
Modified:
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddArtifactTask.java
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddArtifactTask.java?view=diff&rev=566812&r1=566811&r2=566812
==============================================================================
---
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddArtifactTask.java
(original)
+++
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddArtifactTask.java
Thu Aug 16 12:52:42 2007
@@ -38,14 +38,17 @@
private final String classifier;
+ private MavenProject project = null;
+
public MockAndControlForAddArtifactTask( MockManager mockManager )
{
- this( mockManager, null );
+ this( mockManager, null, null );
}
- public MockAndControlForAddArtifactTask( MockManager mockManager, String
classifier )
+ public MockAndControlForAddArtifactTask( MockManager mockManager, String
classifier, MavenProject project )
{
this.classifier = classifier;
+ this.project = project;
artifactCtl = MockControl.createControl( Artifact.class );
mockManager.add( artifactCtl );
@@ -74,6 +77,9 @@
{
artifact.getClassifier();
artifactCtl.setReturnValue( classifier, MockControl.ZERO_OR_MORE );
+
+ configSource.getProject();
+ configSourceCtl.setReturnValue( project, MockControl.ZERO_OR_MORE );
}
public void expectGetArtifactHandler()
@@ -192,12 +198,6 @@
{
artifact.getScope();
artifactCtl.setReturnValue( scope, MockControl.ONE_OR_MORE );
- }
-
- public void expectGetProject( MavenProject project )
- {
- configSource.getProject();
- configSourceCtl.setReturnValue( project, MockControl.ONE_OR_MORE );
}
public void expectGetReactorProjects( List projects )
Modified:
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddDependencySetsTask.java
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddDependencySetsTask.java?view=diff&rev=566812&r1=566811&r2=566812
==============================================================================
---
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddDependencySetsTask.java
(original)
+++
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddDependencySetsTask.java
Thu Aug 16 12:52:42 2007
@@ -54,13 +54,16 @@
private String classifier;
+ private MavenProject project;
+
public MockAndControlForAddDependencySetsTask( MockManager mockManager )
{
- this( mockManager, null );
+ this( mockManager, null, null );
}
- public MockAndControlForAddDependencySetsTask( MockManager mockManager,
String classifier )
+ public MockAndControlForAddDependencySetsTask( MockManager mockManager,
String classifier, MavenProject project )
{
+ this.project = project;
artifactCtl = MockControl.createControl( Artifact.class );
mockManager.add( artifactCtl );
@@ -100,6 +103,9 @@
{
artifact.getClassifier();
artifactCtl.setReturnValue( classifier, MockControl.ZERO_OR_MORE );
+
+ configSource.getProject();
+ configSourceCtl.setReturnValue( project, MockControl.ZERO_OR_MORE );
}
public void expectGetArtifactHandler()
@@ -223,12 +229,6 @@
{
artifact.getScope();
artifactCtl.setReturnValue( scope, MockControl.ONE_OR_MORE );
- }
-
- public void expectGetProject( MavenProject project )
- {
- configSource.getProject();
- configSourceCtl.setReturnValue( project, MockControl.ONE_OR_MORE );
}
public void expectGetReactorProjects( List projects )
Modified:
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/utils/AssemblyFormatUtilsTest.java
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/utils/AssemblyFormatUtilsTest.java?view=diff&rev=566812&r1=566811&r2=566812
==============================================================================
---
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/utils/AssemblyFormatUtilsTest.java
(original)
+++
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/utils/AssemblyFormatUtilsTest.java
Thu Aug 16 12:52:42 2007
@@ -2,6 +2,7 @@
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.handler.ArtifactHandler;
+import org.apache.maven.model.Build;
import org.apache.maven.model.Model;
import org.apache.maven.plugin.assembly.AssemblerConfigurationSource;
import org.apache.maven.plugin.assembly.format.AssemblyFormattingException;
@@ -29,6 +30,46 @@
verifyDistroName( "assembly", "classifier", "finalName", false,
"finalName-classifier" );
}
+ public void testGetOutputDir_ShouldResolveGroupIdInOutDir_UseArtifactInfo()
+ {
+ verifyOutputDir( "${artifact.groupId}", null, "group", null, null,
null, "group/", false );
+ }
+
+ public void
testGetOutputDir_ShouldResolveArtifactIdInOutDir_UseArtifactInfo()
+ {
+ verifyOutputDir( "${artifact.artifactId}", null, null, "artifact",
null, null, "artifact/", false );
+ }
+
+ public void testGetOutputDir_ShouldResolveVersionInOutDir_UseArtifactInfo()
+ {
+ verifyOutputDir( "${artifact.version}", null, null, null, "version",
null, "version/", false );
+ }
+
+ public void
testGetOutputDir_ShouldResolveBuildFinalNameInOutDir_UseArtifactInfo()
+ {
+ verifyOutputDir( "${artifact.build.finalName}", null, null, null,
null, "finalName", "finalName/", false );
+ }
+
+ public void
testGetOutputDir_ShouldResolveGroupIdInOutDir_UseExplicitMainProject()
+ {
+ verifyOutputDir( "${pom.groupId}", null, "group", null, null, null,
"group/", true );
+ }
+
+ public void
testGetOutputDir_ShouldResolveArtifactIdInOutDir_UseExplicitMainProject()
+ {
+ verifyOutputDir( "${pom.artifactId}", null, null, "artifact", null,
null, "artifact/", true );
+ }
+
+ public void
testGetOutputDir_ShouldResolveVersionInOutDir_UseExplicitMainProject()
+ {
+ verifyOutputDir( "${pom.version}", null, null, null, "version", null,
"version/", true );
+ }
+
+ public void
testGetOutputDir_ShouldResolveBuildFinalNameInOutDir_UseExplicitMainProject()
+ {
+ verifyOutputDir( "${pom.build.finalName}", null, null, null, null,
"finalName", "finalName/", true );
+ }
+
public void
testGetOutputDir_ShouldNotAlterOutDirWhenIncludeBaseFalseAndNoExpressions()
{
verifyOutputDir( "dir/", "finalName", null, null, null, "dir/" );
@@ -139,19 +180,44 @@
private void verifyOutputDir( String outDir, String finalName, String
groupId, String artifactId, String version, String checkValue )
{
- MavenProject project = null;
+ verifyOutputDir( outDir, finalName, groupId, artifactId, version,
null, checkValue, true );
+ }
- if ( ( groupId != null ) || ( artifactId != null ) || ( version !=
null ) )
+ private void verifyOutputDir( String outDir, String finalName, String
groupId, String artifactId, String version, String projectFinalName, String
checkValue, boolean usingMainProject )
+ {
+ MavenProject project = null;
+ if ( ( groupId != null ) || ( artifactId != null ) || ( version !=
null ) || ( projectFinalName != null ) )
{
Model model = new Model();
model.setGroupId( groupId );
model.setArtifactId( artifactId );
model.setVersion( version );
+ if ( projectFinalName != null )
+ {
+ Build build = new Build();
+ build.setFinalName( projectFinalName );
+
+ model.setBuild( build );
+ }
+
project = new MavenProject( model );
}
- String result = AssemblyFormatUtils.getOutputDirectory( outDir,
project, finalName );
+ MavenProject mainProject;
+ MavenProject artifactProject = null;
+
+ if ( usingMainProject )
+ {
+ mainProject = project;
+ }
+ else
+ {
+ artifactProject = project;
+ mainProject = new MavenProject( new Model() );
+ }
+
+ String result = AssemblyFormatUtils.getOutputDirectory( outDir,
mainProject, artifactProject, finalName );
assertEquals( checkValue, result );
}