Author: brett
Date: Tue Mar 17 12:58:48 2009
New Revision: 755230
URL: http://svn.apache.org/viewvc?rev=755230&view=rev
Log:
[MNG-4074] Fixing cyclic reference problem with a parent pom declaring one of
its modules as a plugin-level dependency in a plugin it uses. Also, fixing a
problem where the version-expression transformation chokes on invalid POMs from
the repository during invoker:install.
Merged from: r751826 | jdcasey
Added:
maven/components/branches/maven-2.1.x/maven-project/src/test/resources/version-expressions/invalid-pom.xml
- copied unchanged from r752622,
maven/components/branches/maven-2.1.0-RC/maven-project/src/test/resources/version-expressions/invalid-pom.xml
Modified:
maven/components/branches/maven-2.1.x/ (props changed)
maven/components/branches/maven-2.1.x/apache-maven/ (props changed)
maven/components/branches/maven-2.1.x/apache-maven/src/test/ (props
changed)
maven/components/branches/maven-2.1.x/maven-core/src/main/java/org/apache/maven/plugin/MavenPluginValidator.java
(props changed)
maven/components/branches/maven-2.1.x/maven-integration-tests/ (props
changed)
maven/components/branches/maven-2.1.x/maven-model/src/test/ (props
changed)
maven/components/branches/maven-2.1.x/maven-project/src/main/java/org/apache/maven/project/ProjectSorter.java
maven/components/branches/maven-2.1.x/maven-project/src/main/java/org/apache/maven/project/artifact/VersionExpressionTransformation.java
maven/components/branches/maven-2.1.x/maven-project/src/test/java/org/apache/maven/project/ProjectSorterTest.java
maven/components/branches/maven-2.1.x/maven-project/src/test/java/org/apache/maven/project/artifact/VersionExpressionTransformationTest.java
maven/components/branches/maven-2.1.x/maven-project/src/test/java/org/apache/maven/project/interpolation/AbstractModelInterpolatorTest.java
(props changed)
Propchange: maven/components/branches/maven-2.1.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Mar 17 12:58:48 2009
@@ -1,7 +1,7 @@
/maven/components/branches/maven-2.0.10-RC:679193-679867,680477-688882,708790-728809,728834
/maven/components/branches/maven-2.0.x:679552-679867,693956-728820,728836,728940,729060,729738,729785,730461,730631,734502,734803,736543,746381
/maven/components/branches/maven-2.1.0-M1-RC:690315,691793-694304
-/maven/components/branches/maven-2.1.0-RC:688883,689695,689976,689990,752168,752428,752653,753089-753090,753320,755086,755199,755215
+/maven/components/branches/maven-2.1.0-RC:688883,689695,689976,689990,752168,752428,752622,752653,753089-753090,753320,755086,755199,755215
/maven/components/branches/maven-2.1.x:751686
/maven/components/trunk:572229,720001,721902,726845,729292
/maven/sandbox/branches/maven/MNG-3379:678167
Propchange: maven/components/branches/maven-2.1.x/apache-maven/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Mar 17 12:58:48 2009
@@ -1,7 +1,7 @@
/maven/components/branches/maven-2.0.10-RC/apache-maven:679193-679867,680477-688882,708790-728809,728834
/maven/components/branches/maven-2.0.x/apache-maven:533160,636838,649903,657432,659677,679552-679867,693956-728820,728836,728940,736543,746038
/maven/components/branches/maven-2.1.0-M1-RC/apache-maven:690315,691793-694304
-/maven/components/branches/maven-2.1.0-RC/apache-maven:688883,689695,689976,689990,752168,752428,752653,753089-753090,753320,755086,755199,755215
+/maven/components/branches/maven-2.1.0-RC/apache-maven:688883,689695,689976,689990,752168,752428,752622,752653,753089-753090,753320,755086,755199,755215
/maven/components/branches/maven-2.1.x/apache-maven:751686
/maven/components/trunk/apache-maven:720001,721902,726845,727688
/maven/components/trunk/maven-distribution:727688
Propchange: maven/components/branches/maven-2.1.x/apache-maven/src/test/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Mar 17 12:58:48 2009
@@ -1,4 +1,4 @@
/maven/components/branches/maven-2.0.10-RC/apache-maven/src/test:728834
/maven/components/branches/maven-2.0.x/apache-maven/src/test:736543
-/maven/components/branches/maven-2.1.0-RC/apache-maven/src/test:752168,752428,752653,753089-753090,753320,755086,755199,755215
+/maven/components/branches/maven-2.1.0-RC/apache-maven/src/test:752168,752428,752622,752653,753089-753090,753320,755086,755199,755215
/maven/components/branches/maven-2.1.x/apache-maven/src/test:751686
Propchange:
maven/components/branches/maven-2.1.x/maven-core/src/main/java/org/apache/maven/plugin/MavenPluginValidator.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Mar 17 12:58:48 2009
@@ -2,7 +2,7 @@
/maven/components/branches/maven-2.0.x/maven-core/src/main/java/org/apache/maven/plugin/MavenPluginCollector.java:679552-679867,693956-728820,728836,728940,729060,729738,729785,730461,730631,734502,734803,736543,746381
/maven/components/branches/maven-2.1.0-M1-RC/maven-core/src/main/java/org/apache/maven/plugin/MavenPluginCollector.java:690315,691793-694304
/maven/components/branches/maven-2.1.0-RC/maven-core/src/main/java/org/apache/maven/plugin/MavenPluginCollector.java:688883,689695,689976,689990
-/maven/components/branches/maven-2.1.0-RC/maven-core/src/main/java/org/apache/maven/plugin/MavenPluginValidator.java:752168,752653,753320,755199,755215
+/maven/components/branches/maven-2.1.0-RC/maven-core/src/main/java/org/apache/maven/plugin/MavenPluginValidator.java:752168,752622,752653,753320,755199,755215
/maven/components/branches/maven-2.1.x/maven-core/src/main/java/org/apache/maven/plugin/MavenPluginCollector.java:751686,753648,754505,754542
/maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/MavenPluginCollector.java:572229,720001,721902,726845,729292
/maven/sandbox/branches/maven/MNG-3379/maven-core/src/main/java/org/apache/maven/plugin/MavenPluginCollector.java:678167
Propchange: maven/components/branches/maven-2.1.x/maven-integration-tests/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Mar 17 12:58:48 2009
@@ -1,4 +1,4 @@
/maven/components/branches/maven-2.0.10-RC/maven-integration-tests:728834
/maven/components/branches/maven-2.0.x/maven-integration-tests:736543
-/maven/components/branches/maven-2.1.0-RC/maven-integration-tests:752168,752428,752653,753089-753090,753320,755086,755199,755215
+/maven/components/branches/maven-2.1.0-RC/maven-integration-tests:752168,752428,752622,752653,753089-753090,753320,755086,755199,755215
/maven/components/branches/maven-2.1.x/maven-integration-tests:751686
Propchange: maven/components/branches/maven-2.1.x/maven-model/src/test/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Mar 17 12:58:48 2009
@@ -1,4 +1,4 @@
/maven/components/branches/maven-2.0.10-RC/maven-model/src/test:728834
/maven/components/branches/maven-2.0.x/maven-model/src/test:736543
-/maven/components/branches/maven-2.1.0-RC/maven-model/src/test:752168,752428,752653,753089-753090,753320,755086,755199,755215
+/maven/components/branches/maven-2.1.0-RC/maven-model/src/test:752168,752428,752622,752653,753089-753090,753320,755086,755199,755215
/maven/components/branches/maven-2.1.x/maven-model/src/test:751686
Modified:
maven/components/branches/maven-2.1.x/maven-project/src/main/java/org/apache/maven/project/ProjectSorter.java
URL:
http://svn.apache.org/viewvc/maven/components/branches/maven-2.1.x/maven-project/src/main/java/org/apache/maven/project/ProjectSorter.java?rev=755230&r1=755229&r2=755230&view=diff
==============================================================================
---
maven/components/branches/maven-2.1.x/maven-project/src/main/java/org/apache/maven/project/ProjectSorter.java
(original)
+++
maven/components/branches/maven-2.1.x/maven-project/src/main/java/org/apache/maven/project/ProjectSorter.java
Tue Mar 17 12:58:48 2009
@@ -158,7 +158,14 @@
{
project.addProjectReference( (MavenProject)
projectMap.get( dependencyId ) );
- dag.addEdge( id, dependencyId );
+ addEdgeWithParentCheck( projectMap,
dependencyId, project, id );
+
+ // TODO: Shouldn't we add an edge between the
plugin and its dependency?
+ // Note that doing this may result in
cycles...run
+ //
ProjectSorterTest.testPluginDependenciesInfluenceSorting_DeclarationInParent()
+ // for more information, if you change this:
+
+ // dag.addEdge( pluginId, dependencyId );
}
}
}
Modified:
maven/components/branches/maven-2.1.x/maven-project/src/main/java/org/apache/maven/project/artifact/VersionExpressionTransformation.java
URL:
http://svn.apache.org/viewvc/maven/components/branches/maven-2.1.x/maven-project/src/main/java/org/apache/maven/project/artifact/VersionExpressionTransformation.java?rev=755230&r1=755229&r2=755230&view=diff
==============================================================================
---
maven/components/branches/maven-2.1.x/maven-project/src/main/java/org/apache/maven/project/artifact/VersionExpressionTransformation.java
(original)
+++
maven/components/branches/maven-2.1.x/maven-project/src/main/java/org/apache/maven/project/artifact/VersionExpressionTransformation.java
Tue Mar 17 12:58:48 2009
@@ -108,13 +108,6 @@
{
throw new ArtifactDeploymentException( "Failed to read or write
POM for version transformation.", e );
}
- catch ( XmlPullParserException e )
- {
- throw new ArtifactDeploymentException(
- "Failed to parse POM for
version transformation. Error was in file: "
- + pomFile + ", at line:
" + e.getLineNumber() + ", column: "
- + e.getColumnNumber(),
e );
- }
catch ( ModelInterpolationException e )
{
throw new ArtifactDeploymentException( "Failed to interpolate POM
versions.", e );
@@ -170,13 +163,6 @@
{
throw new ArtifactInstallationException( "Failed to read or write
POM for version transformation.", e );
}
- catch ( XmlPullParserException e )
- {
- throw new ArtifactInstallationException(
- "Failed to parse POM for
version transformation. Error was in file: "
- + pomFile + ", at
line: " + e.getLineNumber() + ", column: "
- +
e.getColumnNumber(), e );
- }
catch ( ModelInterpolationException e )
{
throw new ArtifactInstallationException( "Failed to interpolate
POM versions.", e );
@@ -190,7 +176,7 @@
}
protected File transformVersions( File pomFile, Artifact artifact,
ArtifactRepository localRepository )
- throws IOException, XmlPullParserException, ModelInterpolationException
+ throws IOException, ModelInterpolationException
{
ProjectBuilderConfiguration pbConfig;
File projectDir;
@@ -224,14 +210,33 @@
{
reader = ReaderFactory.newXmlReader( pomFile );
model = new MavenXpp3Reader().read( reader );
+
+ interpolateVersions( pomFile, outputFile, model, projectDir,
pbConfig );
+ }
+ catch ( XmlPullParserException e )
+ {
+ String message =
+ "Failed to parse POM for version transformation. Proceeding
with original (non-interpolated) POM file.";
+
+ String detail = "\n\nNOTE: Error was in file: " + pomFile + ", at
line: "
+ + e.getLineNumber() + ", column: " + e.getColumnNumber();
+
+ if ( getLogger().isDebugEnabled() )
+ {
+ getLogger().debug( message + detail, e );
+ }
+ else
+ {
+ getLogger().warn( message + " See debug output for details." );
+ }
+
+ outputFile = pomFile;
}
finally
{
IOUtil.close( reader );
}
- interpolateVersions( pomFile, outputFile, model, projectDir, pbConfig
);
-
return outputFile;
}
Modified:
maven/components/branches/maven-2.1.x/maven-project/src/test/java/org/apache/maven/project/ProjectSorterTest.java
URL:
http://svn.apache.org/viewvc/maven/components/branches/maven-2.1.x/maven-project/src/test/java/org/apache/maven/project/ProjectSorterTest.java?rev=755230&r1=755229&r2=755230&view=diff
==============================================================================
---
maven/components/branches/maven-2.1.x/maven-project/src/test/java/org/apache/maven/project/ProjectSorterTest.java
(original)
+++
maven/components/branches/maven-2.1.x/maven-project/src/test/java/org/apache/maven/project/ProjectSorterTest.java
Tue Mar 17 12:58:48 2009
@@ -279,46 +279,98 @@
}
public void testPluginDependenciesInfluenceSorting()
- throws Exception {
- List projects = new ArrayList();
-
- MavenProject parentProject = createProject( "groupId", "parent", "1.0" );
-
- MavenProject project1 = createProject( "groupId", "artifactId1", "1.0" );
- project1.setParent(parentProject);
- projects.add( project1 );
-
- MavenProject project2 = createProject( "groupId", "artifactId2", "1.0" );
- project2.setParent(parentProject);
- projects.add( project2 );
-
- MavenProject pluginProject = createProject( "groupId", "pluginArtifact",
"1.0" );
- pluginProject.setParent(parentProject);
- projects.add( pluginProject );
-
- Plugin plugin = new Plugin();
- plugin.setGroupId(pluginProject.getGroupId());
- plugin.setArtifactId(pluginProject.getArtifactId());
- plugin.setVersion(pluginProject.getVersion());
-
- plugin.addDependency( createDependency( project2 ) );
+ throws Exception
+ {
+ List projects = new ArrayList();
- Model model = project1.getModel();
- Build build = model.getBuild();
+ MavenProject parentProject = createProject( "groupId", "parent", "1.0"
);
+ projects.add( parentProject );
- if ( build == null )
- {
- build = new Build();
- model.setBuild( build );
- }
+ MavenProject declaringProject = createProject( "groupId", "declarer",
"1.0" );
+ declaringProject.setParent( parentProject );
+ projects.add( declaringProject );
+
+ MavenProject pluginLevelDepProject = createProject( "groupId",
"plugin-level-dep", "1.0" );
+ pluginLevelDepProject.setParent( parentProject );
+ projects.add( pluginLevelDepProject );
+
+ MavenProject pluginProject = createProject( "groupId", "plugin", "1.0"
);
+ pluginProject.setParent( parentProject );
+ projects.add( pluginProject );
+
+ Plugin plugin = new Plugin();
+ plugin.setGroupId( pluginProject.getGroupId() );
+ plugin.setArtifactId( pluginProject.getArtifactId() );
+ plugin.setVersion( pluginProject.getVersion() );
+
+ plugin.addDependency( createDependency( pluginLevelDepProject ) );
+
+ Model model = declaringProject.getModel();
+ Build build = model.getBuild();
+
+ if ( build == null )
+ {
+ build = new Build();
+ model.setBuild( build );
+ }
+
+ build.addPlugin( plugin );
+
+ projects = new ProjectSorter( projects ).getSortedProjects();
+
+ assertEquals( parentProject, projects.get( 0 ) );
+
+ // the order of these two is non-deterministic, based on when they're
added to the reactor.
+ assertTrue( projects.contains( pluginProject ) );
+ assertTrue( projects.contains( pluginLevelDepProject ) );
+
+ // the declaring project MUST be listed after the plugin and its
plugin-level dep, though.
+ assertEquals( declaringProject, projects.get( 3 ) );
+ }
- build.addPlugin( plugin );
+ public void testPluginDependenciesInfluenceSorting_DeclarationInParent()
+ throws Exception
+ {
+ List projects = new ArrayList();
- projects = new ProjectSorter( projects ).getSortedProjects();
+ MavenProject parentProject = createProject( "groupId",
"parent-declarer", "1.0" );
+ projects.add( parentProject );
- assertEquals( project1, projects.get( 2 ) );
- assertTrue( projects.contains( project2 ) );
- assertTrue( projects.contains( pluginProject ) );
+ MavenProject pluginProject = createProject( "groupId", "plugin", "1.0"
);
+ pluginProject.setParent( parentProject );
+ projects.add( pluginProject );
+
+ MavenProject pluginLevelDepProject = createProject( "groupId",
"plugin-level-dep", "1.0" );
+ pluginLevelDepProject.setParent( parentProject );
+ projects.add( pluginLevelDepProject );
+
+ Plugin plugin = new Plugin();
+ plugin.setGroupId( pluginProject.getGroupId() );
+ plugin.setArtifactId( pluginProject.getArtifactId() );
+ plugin.setVersion( pluginProject.getVersion() );
+
+ plugin.addDependency( createDependency( pluginLevelDepProject ) );
+
+ Model model = parentProject.getModel();
+ Build build = model.getBuild();
+
+ if ( build == null )
+ {
+ build = new Build();
+ model.setBuild( build );
+ }
+
+ build.addPlugin( plugin );
+
+ projects = new ProjectSorter( projects ).getSortedProjects();
+
+ System.out.println( projects );
+
+ assertEquals( parentProject, projects.get( 0 ) );
+
+ // the order of these two is non-deterministic, based on when they're
added to the reactor.
+ assertTrue( projects.contains( pluginProject ) );
+ assertTrue( projects.contains( pluginLevelDepProject ) );
}
private Dependency createDependency( MavenProject project )
Modified:
maven/components/branches/maven-2.1.x/maven-project/src/test/java/org/apache/maven/project/artifact/VersionExpressionTransformationTest.java
URL:
http://svn.apache.org/viewvc/maven/components/branches/maven-2.1.x/maven-project/src/test/java/org/apache/maven/project/artifact/VersionExpressionTransformationTest.java?rev=755230&r1=755229&r2=755230&view=diff
==============================================================================
---
maven/components/branches/maven-2.1.x/maven-project/src/test/java/org/apache/maven/project/artifact/VersionExpressionTransformationTest.java
(original)
+++
maven/components/branches/maven-2.1.x/maven-project/src/test/java/org/apache/maven/project/artifact/VersionExpressionTransformationTest.java
Tue Mar 17 12:58:48 2009
@@ -74,7 +74,7 @@
private static final String VERSION = "blah";
private VersionExpressionTransformation transformation;
-
+
private Set toDelete = new HashSet();
public void setUp()
@@ -85,18 +85,18 @@
transformation =
(VersionExpressionTransformation) lookup(
ArtifactTransformation.class.getName(), "version-expression" );
}
-
+
public void tearDown()
throws Exception
- {
+ {
super.tearDown();
-
+
if ( toDelete != null && !toDelete.isEmpty() )
{
for ( Iterator it = toDelete.iterator(); it.hasNext(); )
{
File f = (File) it.next();
-
+
try
{
FileUtils.forceDelete( f );
@@ -108,14 +108,60 @@
}
}
}
+ }
+
+ public void testTransformForInstall_AbortOnInvalidPOM()
+ throws URISyntaxException, IOException, XmlPullParserException,
ModelInterpolationException
+ {
+ String pomResource = "version-expressions/invalid-pom.xml";
+ File pomFile = getPom( pomResource );
+
+ File projectDir;
+ if ( pomFile != null )
+ {
+ projectDir = pomFile.getParentFile();
}
-
+ else
+ {
+ projectDir = File.createTempFile(
"VersionExpressionTransformationTest.project.", ".tmp.dir" );
+ projectDir.delete();
+ projectDir.mkdirs();
+
+ toDelete.add( projectDir );
+
+ File newPomFile = new File( projectDir, "pom.xml" );
+ FileUtils.copyFile( pomFile, newPomFile );
+
+ pomFile = newPomFile;
+ }
+
+ File repoDir = File.createTempFile(
"VersionExpressionTransformationTest.repo.", ".tmp.dir" );
+ repoDir.delete();
+ repoDir.mkdirs();
+
+ toDelete.add( repoDir );
+
+ Artifact a =
+ new DefaultArtifact( "groupId", "artifactId",
VersionRange.createFromVersion( "1" ),
+ null, "jar", null, new
DefaultArtifactHandler( "jar" ) );
+
+ ProjectArtifactMetadata pam = new ProjectArtifactMetadata( a, pomFile
);
+ a.addMetadata( pam );
+
+ ArtifactRepository localRepository =
+ new DefaultArtifactRepository( "local", repoDir.getAbsolutePath(),
new DefaultRepositoryLayout() );
+
+ transformation.transformVersions( pomFile, a, localRepository );
+
+ assertEquals( pomFile, pam.getFile() );
+ }
+
public void testTransformForInstall_PreserveComments()
throws URISyntaxException, IOException, XmlPullParserException,
ModelInterpolationException
{
String pomResource = "version-expressions/pom-with-comments.xml";
File pomFile = getPom( pomResource );
-
+
Model model;
Reader reader = null;
try
@@ -128,9 +174,9 @@
{
IOUtil.close( reader );
}
-
+
File newPom = runTransformVersion_VanillaArtifact( model, pomFile );
-
+
StringWriter writer = new StringWriter();
reader = null;
try
@@ -142,9 +188,9 @@
{
IOUtil.close( reader );
}
-
+
assertTrue( "XML comment not found.", writer.toString().indexOf( "This
is a comment." ) > -1 );
-
+
reader = new StringReader( writer.toString() );
try
{
@@ -156,17 +202,17 @@
}
assertEquals( "1.0", model.getVersion() );
-
+
assertNotNull( model.getProperties() );
-
+
assertNotNull( model.getProperties().getProperty( "other.version" ) );
assertEquals( "${testVersion}", model.getProperties().getProperty(
"other.version" ) );
-
+
assertNotNull( model.getScm() );
-
+
assertNotNull( model.getScm().getConnection() );
assertEquals( "${testVersion}", model.getScm().getConnection() );
-
+
assertNotNull( model.getScm().getUrl() );
assertEquals( "${testVersion}", model.getScm().getUrl() );
}
@@ -176,21 +222,21 @@
{
ClassLoader cloader = Thread.currentThread().getContextClassLoader();
URL resource = cloader.getResource( pom );
-
+
if ( resource == null )
{
fail( "POM classpath resource not found: '" + pom + "'." );
}
-
+
File tempDir = File.createTempFile(
"VersionExpressionTransformationTest.", ".dir.tmp" );
tempDir.delete();
tempDir.mkdirs();
-
+
toDelete.add( tempDir );
-
+
File pomFile = new File( tempDir, "pom.xml" );
FileUtils.copyFile( new File( new URI( resource.toExternalForm()
).normalize() ), pomFile );
-
+
return pomFile;
}
@@ -202,9 +248,9 @@
File pomDir = File.createTempFile(
"VersionExpressionTransformationTest.", ".tmp.dir" );
pomDir.delete();
pomDir.mkdirs();
-
+
toDelete.add( pomDir );
-
+
File pomFile = new File( pomDir, "pom.xml" );
FileWriter writer = null;
@@ -254,9 +300,9 @@
File pomDir = File.createTempFile(
"VersionExpressionTransformationTest.", ".tmp.dir" );
pomDir.delete();
pomDir.mkdirs();
-
+
toDelete.add( pomDir );
-
+
File pomFile = new File( pomDir, "pom.xml" );
FileWriter writer = null;
@@ -291,10 +337,10 @@
reader = new FileReader( pam.getFile() );
StringWriter swriter = new StringWriter();
IOUtil.copy( reader, swriter );
-
- System.out.println( "Transformed POM:\n\n\n" + swriter.toString()
);
- System.out.flush();
-
+
+// System.out.println( "Transformed POM:\n\n\n" +
swriter.toString() );
+// System.out.flush();
+
model = new MavenXpp3Reader().read( new StringReader(
swriter.toString() ) );
}
finally
@@ -313,9 +359,9 @@
File pomDir = File.createTempFile(
"VersionExpressionTransformationTest.", ".tmp.dir" );
pomDir.delete();
pomDir.mkdirs();
-
+
toDelete.add( pomDir );
-
+
File pomFile = new File( pomDir, "pom.xml" );
FileWriter writer = null;
@@ -358,123 +404,123 @@
assertTransformedVersions( model );
}
- // FIXME: We can't be this smart (yet) since the deployment step
transforms from the
+ // FIXME: We can't be this smart (yet) since the deployment step
transforms from the
// original POM once again and re-installs over the top of the install
step.
-// public void
testTransformForInstall_SkipIfProjectArtifactMetadataResolvedFlagIsSet()
-// throws IOException, ArtifactInstallationException,
XmlPullParserException
-// {
-// Model model = buildTestModel();
-//
-// File pomDir = File.createTempFile(
"VersionExpressionTransformationTest.", ".tmp.dir" );
-// pomDir.delete();
-// pomDir.mkdirs();
-// try
-// {
-// File pomFile = new File( pomDir, "pom.xml" );
-// pomFile.deleteOnExit();
-//
-// FileWriter writer = null;
-// try
-// {
-// writer = new FileWriter( pomFile );
-// new MavenXpp3Writer().write( writer, model );
-// }
-// finally
-// {
-// IOUtil.close( writer );
-// }
-//
-// Artifact a =
-// new DefaultArtifact( "group", "artifact",
VersionRange.createFromVersion( "1" ), null, "jar", null,
-// new DefaultArtifactHandler( "jar" ),
false );
-// ProjectArtifactMetadata pam = new ProjectArtifactMetadata( a,
pomFile );
-// pam.setVersionExpressionsResolved( true );
-//
-// a.addMetadata( pam );
-//
-// transformation.transformForInstall( a, null );
-//
-// assertEquals( pomFile, pam.getFile() );
-//
-// assertFalse( new File( pomDir, "target/pom-transformed.xml"
).exists() );
-//
-// FileReader reader = null;
-// try
-// {
-// reader = new FileReader( pomFile );
-// model = new MavenXpp3Reader().read( reader );
-// }
-// finally
-// {
-// IOUtil.close( reader );
-// }
-//
-// assertEquals( "${testVersion}", model.getVersion() );
-// }
-// finally
-// {
-// FileUtils.forceDelete( pomDir );
-// }
-// }
+ // public void
testTransformForInstall_SkipIfProjectArtifactMetadataResolvedFlagIsSet()
+ // throws IOException, ArtifactInstallationException,
XmlPullParserException
+ // {
+ // Model model = buildTestModel();
+ //
+ // File pomDir = File.createTempFile(
"VersionExpressionTransformationTest.", ".tmp.dir" );
+ // pomDir.delete();
+ // pomDir.mkdirs();
+ // try
+ // {
+ // File pomFile = new File( pomDir, "pom.xml" );
+ // pomFile.deleteOnExit();
+ //
+ // FileWriter writer = null;
+ // try
+ // {
+ // writer = new FileWriter( pomFile );
+ // new MavenXpp3Writer().write( writer, model );
+ // }
+ // finally
+ // {
+ // IOUtil.close( writer );
+ // }
+ //
+ // Artifact a =
+ // new DefaultArtifact( "group", "artifact",
VersionRange.createFromVersion( "1" ), null, "jar", null,
+ // new DefaultArtifactHandler( "jar" ), false );
+ // ProjectArtifactMetadata pam = new ProjectArtifactMetadata( a, pomFile );
+ // pam.setVersionExpressionsResolved( true );
+ //
+ // a.addMetadata( pam );
+ //
+ // transformation.transformForInstall( a, null );
+ //
+ // assertEquals( pomFile, pam.getFile() );
+ //
+ // assertFalse( new File( pomDir, "target/pom-transformed.xml" ).exists()
);
+ //
+ // FileReader reader = null;
+ // try
+ // {
+ // reader = new FileReader( pomFile );
+ // model = new MavenXpp3Reader().read( reader );
+ // }
+ // finally
+ // {
+ // IOUtil.close( reader );
+ // }
+ //
+ // assertEquals( "${testVersion}", model.getVersion() );
+ // }
+ // finally
+ // {
+ // FileUtils.forceDelete( pomDir );
+ // }
+ // }
- // FIXME: We can't be this smart (yet) since the deployment step
transforms from the
+ // FIXME: We can't be this smart (yet) since the deployment step
transforms from the
// original POM once again and re-installs over the top of the install
step.
-// public void
testTransformForDeploy_SkipIfProjectArtifactMetadataResolvedFlagIsSet()
-// throws IOException, XmlPullParserException,
ArtifactDeploymentException
-// {
-// Model model = buildTestModel();
-//
-// File pomDir = File.createTempFile(
"VersionExpressionTransformationTest.", ".tmp.dir" );
-// pomDir.delete();
-// pomDir.mkdirs();
-// try
-// {
-// File pomFile = new File( pomDir, "pom.xml" );
-// pomFile.deleteOnExit();
-//
-// FileWriter writer = null;
-// try
-// {
-// writer = new FileWriter( pomFile );
-// new MavenXpp3Writer().write( writer, model );
-// }
-// finally
-// {
-// IOUtil.close( writer );
-// }
-//
-// Artifact a =
-// new DefaultArtifact( "group", "artifact",
VersionRange.createFromVersion( "1" ), null, "jar", null,
-// new DefaultArtifactHandler( "jar" ),
false );
-// ProjectArtifactMetadata pam = new ProjectArtifactMetadata( a,
pomFile );
-// pam.setVersionExpressionsResolved( true );
-//
-// a.addMetadata( pam );
-//
-// transformation.transformForDeployment( a, null, null );
-//
-// assertEquals( pomFile, pam.getFile() );
-//
-// assertFalse( new File( pomDir, "target/pom-transformed.xml"
).exists() );
-//
-// FileReader reader = null;
-// try
-// {
-// reader = new FileReader( pomFile );
-// model = new MavenXpp3Reader().read( reader );
-// }
-// finally
-// {
-// IOUtil.close( reader );
-// }
-//
-// assertEquals( "${testVersion}", model.getVersion() );
-// }
-// finally
-// {
-// FileUtils.forceDelete( pomDir );
-// }
-// }
+ // public void
testTransformForDeploy_SkipIfProjectArtifactMetadataResolvedFlagIsSet()
+ // throws IOException, XmlPullParserException, ArtifactDeploymentException
+ // {
+ // Model model = buildTestModel();
+ //
+ // File pomDir = File.createTempFile(
"VersionExpressionTransformationTest.", ".tmp.dir" );
+ // pomDir.delete();
+ // pomDir.mkdirs();
+ // try
+ // {
+ // File pomFile = new File( pomDir, "pom.xml" );
+ // pomFile.deleteOnExit();
+ //
+ // FileWriter writer = null;
+ // try
+ // {
+ // writer = new FileWriter( pomFile );
+ // new MavenXpp3Writer().write( writer, model );
+ // }
+ // finally
+ // {
+ // IOUtil.close( writer );
+ // }
+ //
+ // Artifact a =
+ // new DefaultArtifact( "group", "artifact",
VersionRange.createFromVersion( "1" ), null, "jar", null,
+ // new DefaultArtifactHandler( "jar" ), false );
+ // ProjectArtifactMetadata pam = new ProjectArtifactMetadata( a, pomFile );
+ // pam.setVersionExpressionsResolved( true );
+ //
+ // a.addMetadata( pam );
+ //
+ // transformation.transformForDeployment( a, null, null );
+ //
+ // assertEquals( pomFile, pam.getFile() );
+ //
+ // assertFalse( new File( pomDir, "target/pom-transformed.xml" ).exists()
);
+ //
+ // FileReader reader = null;
+ // try
+ // {
+ // reader = new FileReader( pomFile );
+ // model = new MavenXpp3Reader().read( reader );
+ // }
+ // finally
+ // {
+ // IOUtil.close( reader );
+ // }
+ //
+ // assertEquals( "${testVersion}", model.getVersion() );
+ // }
+ // finally
+ // {
+ // FileUtils.forceDelete( pomDir );
+ // }
+ // }
public void
testTransformVersion_ShouldInterpolate_VanillaArtifact_ModelProperties()
throws IOException, XmlPullParserException, ModelInterpolationException
@@ -482,7 +528,7 @@
Model model = buildTestModel();
File newPom = runTransformVersion_VanillaArtifact( model, null );
-
+
FileReader reader = null;
try
{
@@ -504,7 +550,7 @@
Model model = buildTestModel();
File newPom = runTransformVersion_ArtifactWithProject( model, new
DefaultProjectBuilderConfiguration(), null );
-
+
FileReader reader = null;
try
{
@@ -528,10 +574,12 @@
Properties props = model.getProperties();
model.setProperties( new Properties() );
- File newPom = runTransformVersion_ArtifactWithProject(
+ File newPom =
+ runTransformVersion_ArtifactWithProject(
model,
- new
DefaultProjectBuilderConfiguration().setExecutionProperties( props ), null );
-
+ new
DefaultProjectBuilderConfiguration().setExecutionProperties( props ),
+ null );
+
FileReader reader = null;
try
{
@@ -560,11 +608,11 @@
projectDir = File.createTempFile(
"VersionExpressionTransformationTest.project.", ".tmp.dir" );
projectDir.delete();
projectDir.mkdirs();
-
+
toDelete.add( projectDir );
-
+
pomFile = new File( projectDir, "pom.xml" );
-
+
FileWriter writer = null;
try
{
@@ -580,23 +628,23 @@
File repoDir = File.createTempFile(
"VersionExpressionTransformationTest.repo.", ".tmp.dir" );
repoDir.delete();
repoDir.mkdirs();
-
+
toDelete.add( repoDir );
File dir = new File( projectDir, "target" );
dir.mkdirs();
-
+
if ( model.getBuild() == null )
{
model.setBuild( new Build() );
}
-
+
model.getBuild().setDirectory( dir.getAbsolutePath() );
Artifact a =
new DefaultArtifact( model.getGroupId(), model.getArtifactId(),
VersionRange.createFromVersion( "1" ),
null, "jar", null, new
DefaultArtifactHandler( "jar" ) );
-
+
a.addMetadata( new ProjectArtifactMetadata( a, pomFile ) );
ArtifactRepository localRepository =
@@ -607,7 +655,8 @@
return new File( projectDir, "target/pom-transformed.xml" );
}
- private File runTransformVersion_ArtifactWithProject( Model model,
ProjectBuilderConfiguration pbConfig, File pomFile )
+ private File runTransformVersion_ArtifactWithProject( Model model,
ProjectBuilderConfiguration pbConfig,
+ File pomFile )
throws IOException, XmlPullParserException, ModelInterpolationException
{
File projectDir;
@@ -620,11 +669,11 @@
projectDir = File.createTempFile(
"VersionExpressionTransformationTest.project.", ".tmp.dir" );
projectDir.delete();
projectDir.mkdirs();
-
+
toDelete.add( projectDir );
-
+
pomFile = new File( projectDir, "pom.xml" );
-
+
FileWriter writer = null;
try
{
@@ -640,17 +689,17 @@
File repoDir = File.createTempFile(
"VersionExpressionTransformationTest.repo.", ".tmp.dir" );
repoDir.delete();
repoDir.mkdirs();
-
+
toDelete.add( repoDir );
File dir = new File( projectDir, "target" );
dir.mkdirs();
-
+
if ( model.getBuild() == null )
{
model.setBuild( new Build() );
}
-
+
model.getBuild().setDirectory( dir.getAbsolutePath() );
MavenProject project = new MavenProject( model );
@@ -662,7 +711,7 @@
new ArtifactWithProject( project, "jar", null, new
DefaultArtifactHandler( "jar" ), false );
a.addMetadata( new ProjectArtifactMetadata( a, pomFile ) );
-
+
ArtifactRepository localRepository =
new DefaultArtifactRepository( "local", repoDir.getAbsolutePath(),
new DefaultRepositoryLayout() );
@@ -684,10 +733,10 @@
File pomDir = File.createTempFile(
"VersionExpressionTransformationTest.", ".tmp.dir" );
pomDir.delete();
pomDir.mkdirs();
-
+
toDelete.add( pomDir );
File pomFile = new File( pomDir, "pom.xml" );
-
+
FileWriter writer = null;
try
{
@@ -700,9 +749,9 @@
}
File output = new File( pomDir, "output.xml" );
-
+
transformation.interpolateVersions( pomFile, output, model, pomDir,
new DefaultProjectBuilderConfiguration() );
-
+
FileReader reader = null;
try
{
@@ -725,10 +774,10 @@
File pomDir = File.createTempFile(
"VersionExpressionTransformationTest.", ".tmp.dir" );
pomDir.delete();
pomDir.mkdirs();
-
+
toDelete.add( pomDir );
File pomFile = new File( pomDir, "pom.xml" );
-
+
FileWriter writer = null;
try
{
@@ -741,9 +790,9 @@
}
File output = new File( pomDir, "output.xml" );
-
+
transformation.interpolateVersions( pomFile, output, model, pomDir,
new DefaultProjectBuilderConfiguration() );
-
+
FileReader reader = null;
try
{
@@ -799,11 +848,11 @@
File pomDir = File.createTempFile(
"VersionExpressionTransformationTest.", ".tmp.dir" );
pomDir.delete();
pomDir.mkdirs();
-
+
toDelete.add( pomDir );
-
+
File pomFile = new File( pomDir, "pom.xml" );
-
+
FileWriter writer = null;
try
{
@@ -819,10 +868,10 @@
model.setProperties( new Properties() );
File output = new File( pomDir, "output.xml" );
-
+
transformation.interpolateVersions( pomFile, output, model, pomDir,
new
DefaultProjectBuilderConfiguration().setExecutionProperties( props ) );
-
+
FileReader reader = null;
try
{
Propchange:
maven/components/branches/maven-2.1.x/maven-project/src/test/java/org/apache/maven/project/interpolation/AbstractModelInterpolatorTest.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Mar 17 12:58:48 2009
@@ -1,4 +1,4 @@
/maven/components/branches/maven-2.0.10-RC/maven-project/src/test/java/org/apache/maven/project/interpolation/AbstractModelInterpolatorTest.java:688259,725329-725330,725342,725349,725359
/maven/components/branches/maven-2.1.0-M1-RC/maven-project/src/test/java/org/apache/maven/project/interpolation/AbstractModelInterpolatorTest.java:690315,691793
-/maven/components/branches/maven-2.1.0-RC/maven-project/src/test/java/org/apache/maven/project/interpolation/AbstractModelInterpolatorTest.java:688883,689695,689976,689990,752168,752428,752653,753089-753090,753320,755086,755199,755215
+/maven/components/branches/maven-2.1.0-RC/maven-project/src/test/java/org/apache/maven/project/interpolation/AbstractModelInterpolatorTest.java:688883,689695,689976,689990,752168,752428,752622,752653,753089-753090,753320,755086,755199,755215
/maven/components/branches/maven-2.1.x/maven-project/src/test/java/org/apache/maven/project/interpolation/AbstractModelInterpolatorTest.java:751686