You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by be...@apache.org on 2009/02/23 23:29:14 UTC
svn commit: r747168 - in /maven/plugins/trunk/maven-invoker-plugin/src:
it/staging-dependencies/
it/staging-dependencies/repo/org/apache/maven/its/minvoker-70/1.0-SNAPSHOT/
it/staging-dependencies/repo/org/apache/maven/its/parent-a/
it/staging-dependen...
Author: bentmann
Date: Mon Feb 23 22:29:07 2009
New Revision: 747168
URL: http://svn.apache.org/viewvc?rev=747168&view=rev
Log:
[MINVOKER-84] Staging of snapshot dependencies is incomplete
Added:
maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/repo/org/apache/maven/its/parent-a/
maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/repo/org/apache/maven/its/parent-a/0.1-SNAPSHOT/
maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/repo/org/apache/maven/its/parent-a/0.1-SNAPSHOT/maven-metadata.xml (with props)
maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/repo/org/apache/maven/its/parent-a/0.1-SNAPSHOT/parent-a-0.1-20081020.164906-1.pom
maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/repo/org/apache/maven/its/parent-b/
maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/repo/org/apache/maven/its/parent-b/0.1-SNAPSHOT/
maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/repo/org/apache/maven/its/parent-b/0.1-SNAPSHOT/maven-metadata.xml (with props)
maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/repo/org/apache/maven/its/parent-b/0.1-SNAPSHOT/parent-b-0.1-20081020.164906-1.pom
maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/repo/org/apache/maven/its/pom/
maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/repo/org/apache/maven/its/pom/0.3-SNAPSHOT/
maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/repo/org/apache/maven/its/pom/0.3-SNAPSHOT/maven-metadata.xml (with props)
maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/repo/org/apache/maven/its/pom/0.3-SNAPSHOT/pom-0.3-20081020.164906-1.pom
maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/PomUtils.java (with props)
Modified:
maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/pom.xml
maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/repo/org/apache/maven/its/minvoker-70/1.0-SNAPSHOT/minvoker-70-1.0-20081020.164906-1.pom
maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/verify.bsh
maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/InstallMojo.java
maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/InvokerMojo.java
Modified: maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/pom.xml?rev=747168&r1=747167&r2=747168&view=diff
==============================================================================
--- maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/pom.xml (original)
+++ maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/pom.xml Mon Feb 23 22:29:07 2009
@@ -43,6 +43,13 @@
<artifactId>minvoker-70</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
+ <!-- a dependency that does not contribute to the class path but must be staged, too -->
+ <dependency>
+ <groupId>org.apache.maven.its</groupId>
+ <artifactId>pom</artifactId>
+ <version>0.3-SNAPSHOT</version>
+ <type>pom</type>
+ </dependency>
</dependencies>
<repositories>
Modified: maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/repo/org/apache/maven/its/minvoker-70/1.0-SNAPSHOT/minvoker-70-1.0-20081020.164906-1.pom
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/repo/org/apache/maven/its/minvoker-70/1.0-SNAPSHOT/minvoker-70-1.0-20081020.164906-1.pom?rev=747168&r1=747167&r2=747168&view=diff
==============================================================================
--- maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/repo/org/apache/maven/its/minvoker-70/1.0-SNAPSHOT/minvoker-70-1.0-20081020.164906-1.pom (original)
+++ maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/repo/org/apache/maven/its/minvoker-70/1.0-SNAPSHOT/minvoker-70-1.0-20081020.164906-1.pom Mon Feb 23 22:29:07 2009
@@ -1,6 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.maven.its</groupId>
+ <artifactId>parent-b</artifactId>
+ <version>0.1-SNAPSHOT</version>
+ </parent>
<groupId>org.apache.maven.its</groupId>
<artifactId>minvoker-70</artifactId>
<packaging>jar</packaging>
Added: maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/repo/org/apache/maven/its/parent-a/0.1-SNAPSHOT/maven-metadata.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/repo/org/apache/maven/its/parent-a/0.1-SNAPSHOT/maven-metadata.xml?rev=747168&view=auto
==============================================================================
--- maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/repo/org/apache/maven/its/parent-a/0.1-SNAPSHOT/maven-metadata.xml (added)
+++ maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/repo/org/apache/maven/its/parent-a/0.1-SNAPSHOT/maven-metadata.xml Mon Feb 23 22:29:07 2009
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata>
+ <groupId>org.apache.maven.its</groupId>
+ <artifactId>parent-a</artifactId>
+ <version>0.1-SNAPSHOT</version>
+ <versioning>
+ <snapshot>
+ <timestamp>20081020.164906</timestamp>
+ <buildNumber>1</buildNumber>
+ </snapshot>
+ <lastUpdated>20081020164906</lastUpdated>
+ </versioning>
+</metadata>
Propchange: maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/repo/org/apache/maven/its/parent-a/0.1-SNAPSHOT/maven-metadata.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/repo/org/apache/maven/its/parent-a/0.1-SNAPSHOT/maven-metadata.xml
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added: maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/repo/org/apache/maven/its/parent-a/0.1-SNAPSHOT/parent-a-0.1-20081020.164906-1.pom
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/repo/org/apache/maven/its/parent-a/0.1-SNAPSHOT/parent-a-0.1-20081020.164906-1.pom?rev=747168&view=auto
==============================================================================
--- maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/repo/org/apache/maven/its/parent-a/0.1-SNAPSHOT/parent-a-0.1-20081020.164906-1.pom (added)
+++ maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/repo/org/apache/maven/its/parent-a/0.1-SNAPSHOT/parent-a-0.1-20081020.164906-1.pom Mon Feb 23 22:29:07 2009
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.maven.its</groupId>
+ <artifactId>parent-a</artifactId>
+ <packaging>pom</packaging>
+ <version>0.1-SNAPSHOT</version>
+</project>
Added: maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/repo/org/apache/maven/its/parent-b/0.1-SNAPSHOT/maven-metadata.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/repo/org/apache/maven/its/parent-b/0.1-SNAPSHOT/maven-metadata.xml?rev=747168&view=auto
==============================================================================
--- maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/repo/org/apache/maven/its/parent-b/0.1-SNAPSHOT/maven-metadata.xml (added)
+++ maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/repo/org/apache/maven/its/parent-b/0.1-SNAPSHOT/maven-metadata.xml Mon Feb 23 22:29:07 2009
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata>
+ <groupId>org.apache.maven.its</groupId>
+ <artifactId>parent-b</artifactId>
+ <version>0.1-SNAPSHOT</version>
+ <versioning>
+ <snapshot>
+ <timestamp>20081020.164906</timestamp>
+ <buildNumber>1</buildNumber>
+ </snapshot>
+ <lastUpdated>20081020164906</lastUpdated>
+ </versioning>
+</metadata>
Propchange: maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/repo/org/apache/maven/its/parent-b/0.1-SNAPSHOT/maven-metadata.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/repo/org/apache/maven/its/parent-b/0.1-SNAPSHOT/maven-metadata.xml
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added: maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/repo/org/apache/maven/its/parent-b/0.1-SNAPSHOT/parent-b-0.1-20081020.164906-1.pom
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/repo/org/apache/maven/its/parent-b/0.1-SNAPSHOT/parent-b-0.1-20081020.164906-1.pom?rev=747168&view=auto
==============================================================================
--- maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/repo/org/apache/maven/its/parent-b/0.1-SNAPSHOT/parent-b-0.1-20081020.164906-1.pom (added)
+++ maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/repo/org/apache/maven/its/parent-b/0.1-SNAPSHOT/parent-b-0.1-20081020.164906-1.pom Mon Feb 23 22:29:07 2009
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.maven.its</groupId>
+ <artifactId>parent-a</artifactId>
+ <version>0.1-SNAPSHOT</version>
+ </parent>
+ <groupId>org.apache.maven.its</groupId>
+ <artifactId>parent-b</artifactId>
+ <packaging>pom</packaging>
+ <version>0.1-SNAPSHOT</version>
+</project>
Added: maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/repo/org/apache/maven/its/pom/0.3-SNAPSHOT/maven-metadata.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/repo/org/apache/maven/its/pom/0.3-SNAPSHOT/maven-metadata.xml?rev=747168&view=auto
==============================================================================
--- maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/repo/org/apache/maven/its/pom/0.3-SNAPSHOT/maven-metadata.xml (added)
+++ maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/repo/org/apache/maven/its/pom/0.3-SNAPSHOT/maven-metadata.xml Mon Feb 23 22:29:07 2009
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata>
+ <groupId>org.apache.maven.its</groupId>
+ <artifactId>pom</artifactId>
+ <version>0.3-SNAPSHOT</version>
+ <versioning>
+ <snapshot>
+ <timestamp>20081020.164906</timestamp>
+ <buildNumber>1</buildNumber>
+ </snapshot>
+ <lastUpdated>20081020164906</lastUpdated>
+ </versioning>
+</metadata>
Propchange: maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/repo/org/apache/maven/its/pom/0.3-SNAPSHOT/maven-metadata.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/repo/org/apache/maven/its/pom/0.3-SNAPSHOT/maven-metadata.xml
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added: maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/repo/org/apache/maven/its/pom/0.3-SNAPSHOT/pom-0.3-20081020.164906-1.pom
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/repo/org/apache/maven/its/pom/0.3-SNAPSHOT/pom-0.3-20081020.164906-1.pom?rev=747168&view=auto
==============================================================================
--- maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/repo/org/apache/maven/its/pom/0.3-SNAPSHOT/pom-0.3-20081020.164906-1.pom (added)
+++ maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/repo/org/apache/maven/its/pom/0.3-SNAPSHOT/pom-0.3-20081020.164906-1.pom Mon Feb 23 22:29:07 2009
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.maven.its</groupId>
+ <artifactId>pom</artifactId>
+ <packaging>pom</packaging>
+ <version>0.3-SNAPSHOT</version>
+</project>
Modified: maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/verify.bsh
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/verify.bsh?rev=747168&r1=747167&r2=747168&view=diff
==============================================================================
--- maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/verify.bsh (original)
+++ maven/plugins/trunk/maven-invoker-plugin/src/it/staging-dependencies/verify.bsh Mon Feb 23 22:29:07 2009
@@ -17,6 +17,9 @@
"junit/junit/3.8.2/junit-3.8.2.jar",
"org/apache/maven/its/minvoker-70/1.0-SNAPSHOT/minvoker-70-1.0-SNAPSHOT.pom",
"org/apache/maven/its/minvoker-70/1.0-SNAPSHOT/minvoker-70-1.0-SNAPSHOT.jar",
+ "org/apache/maven/its/parent-b/0.1-SNAPSHOT/parent-b-0.1-SNAPSHOT.pom",
+ "org/apache/maven/its/parent-a/0.1-SNAPSHOT/parent-a-0.1-SNAPSHOT.pom",
+ "org/apache/maven/its/pom/0.3-SNAPSHOT/pom-0.3-SNAPSHOT.pom",
};
for ( String file : files )
{
@@ -24,8 +27,7 @@
System.out.println( "Checking for existence of: " + stagedFile );
if ( !stagedFile.isFile() )
{
- System.out.println( "FAILED!" );
- return false;
+ throw new IllegalStateException( "Missing: " + stagedFile );
}
}
}
Modified: maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/InstallMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/InstallMojo.java?rev=747168&r1=747167&r2=747168&view=diff
==============================================================================
--- maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/InstallMojo.java (original)
+++ maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/InstallMojo.java Mon Feb 23 22:29:07 2009
@@ -33,6 +33,8 @@
import org.apache.maven.artifact.installer.ArtifactInstaller;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.repository.ArtifactRepositoryFactory;
+import org.apache.maven.model.Model;
+import org.apache.maven.model.Parent;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.project.MavenProject;
@@ -135,9 +137,9 @@
ArtifactRepository testRepository = createTestRepository();
- installProjectArtifacts( project, testRepository );
- installProjectParents( project, testRepository );
installProjectDependencies( project, reactorProjects, testRepository );
+ installProjectParents( project, testRepository );
+ installProjectArtifacts( project, testRepository );
}
/**
@@ -263,6 +265,8 @@
{
if ( parent.getFile() == null )
{
+ installParentPoms( parent.getGroupId(), parent.getArtifactId(), parent.getVersion(),
+ testRepository );
break;
}
installProjectPom( parent, testRepository );
@@ -329,7 +333,7 @@
// collect transitive dependencies
Collection dependencies = new HashSet();
- for ( Iterator it = mvnProject.getRuntimeArtifacts().iterator(); it.hasNext(); )
+ for ( Iterator it = mvnProject.getArtifacts().iterator(); it.hasNext(); )
{
Artifact artifact = (Artifact) it.next();
String id = ArtifactUtils.versionlessKey( artifact );
@@ -353,7 +357,7 @@
}
// install remaining dependencies from local repository
- for ( Iterator it = mvnProject.getRuntimeArtifacts().iterator(); it.hasNext(); )
+ for ( Iterator it = mvnProject.getArtifacts().iterator(); it.hasNext(); )
{
Artifact artifact = (Artifact) it.next();
String id = ArtifactUtils.versionlessKey( artifact );
@@ -373,9 +377,13 @@
artifact.getBaseVersion(), null, "pom" );
File pomFile = new File( localRepository.getBasedir(), localRepository.pathOf( pomArtifact ) );
- if ( pomFile.exists() )
+ if ( pomFile.isFile() )
{
- depArtifact.addMetadata( new ProjectArtifactMetadata( depArtifact, pomFile ) );
+ if ( !pomFile.equals( artifactFile ) )
+ {
+ depArtifact.addMetadata( new ProjectArtifactMetadata( depArtifact, pomFile ) );
+ }
+ installParentPoms( pomFile, testRepository );
}
installArtifact( artifactFile, depArtifact, testRepository );
@@ -388,4 +396,45 @@
}
}
+ /**
+ * Installs all parent POMs of the specified POM file that are available in the local repository.
+ *
+ * @param pomFile The path to the POM file whose parents should be installed, must not be <code>null</code>.
+ * @param testRepository The local repository to install the POMs to, must not be <code>null</code>.
+ * @throws MojoExecutionException If any (existing) parent POM could not be installed.
+ */
+ private void installParentPoms( File pomFile, ArtifactRepository testRepository )
+ throws MojoExecutionException
+ {
+ Model model = PomUtils.loadPom( pomFile );
+ Parent parent = model.getParent();
+ if ( parent != null )
+ {
+ installParentPoms( parent.getGroupId(), parent.getArtifactId(), parent.getVersion(), testRepository );
+ }
+ }
+
+ /**
+ * Installs the specified POM and all its parent POMs to the local repository.
+ *
+ * @param groupId The group id of the POM which should be installed, must not be <code>null</code>.
+ * @param artifactId The artifact id of the POM which should be installed, must not be <code>null</code>.
+ * @param version The version of the POM which should be installed, must not be <code>null</code>.
+ * @param testRepository The local repository to install the POMs to, must not be <code>null</code>.
+ * @throws MojoExecutionException If any (existing) parent POM could not be installed.
+ */
+ private void installParentPoms( String groupId, String artifactId, String version, ArtifactRepository testRepository )
+ throws MojoExecutionException
+ {
+ Artifact pomArtifact = artifactFactory.createProjectArtifact( groupId, artifactId, version );
+
+ File pomFile = new File( localRepository.getBasedir(), localRepository.pathOf( pomArtifact ) );
+ if ( pomFile.isFile() )
+ {
+ // TODO: track which parents were already installed to prevent needless re-installation
+ installArtifact( pomFile, pomArtifact, testRepository );
+ installParentPoms( pomFile, testRepository );
+ }
+ }
+
}
Modified: maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/InvokerMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/InvokerMojo.java?rev=747168&r1=747167&r2=747168&view=diff
==============================================================================
--- maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/InvokerMojo.java (original)
+++ maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/InvokerMojo.java Mon Feb 23 22:29:07 2009
@@ -46,7 +46,6 @@
import java.util.TreeSet;
import org.apache.maven.model.Model;
-import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
@@ -718,22 +717,7 @@
}
getLog().debug( "Collecting parent/child projects of " + projectPath );
- Model model;
-
- Reader reader = null;
- try
- {
- reader = ReaderFactory.newXmlReader( pomFile );
- model = new MavenXpp3Reader().read( reader );
- }
- catch ( Exception e )
- {
- throw new MojoExecutionException( "Failed to parse POM: " + pomFile, e );
- }
- finally
- {
- IOUtil.close( reader );
- }
+ Model model = PomUtils.loadPom( pomFile );
try
{
Added: maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/PomUtils.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/PomUtils.java?rev=747168&view=auto
==============================================================================
--- maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/PomUtils.java (added)
+++ maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/PomUtils.java Mon Feb 23 22:29:07 2009
@@ -0,0 +1,71 @@
+package org.apache.maven.plugin.invoker;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.io.File;
+import java.io.IOException;
+import java.io.Reader;
+
+import org.apache.maven.model.Model;
+import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.codehaus.plexus.util.IOUtil;
+import org.codehaus.plexus.util.ReaderFactory;
+import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
+
+/**
+ * Provides utility methods for POM processing.
+ *
+ * @author Benjamin Bentmann
+ */
+class PomUtils
+{
+
+ /**
+ * Loads the (raw) model from the specified POM file.
+ *
+ * @param pomFile The path to the POM file to load, must not be <code>null</code>.
+ * @return The raw model, never <code>null</code>.
+ * @throws MojoExecutionException If the POM file could not be loaded.
+ */
+ public static Model loadPom( File pomFile )
+ throws MojoExecutionException
+ {
+ Reader reader = null;
+ try
+ {
+ reader = ReaderFactory.newXmlReader( pomFile );
+ return new MavenXpp3Reader().read( reader, false );
+ }
+ catch ( XmlPullParserException e )
+ {
+ throw new MojoExecutionException( "Failed to parse POM: " + pomFile, e );
+ }
+ catch ( IOException e )
+ {
+ throw new MojoExecutionException( "Failed to read POM: " + pomFile, e );
+ }
+ finally
+ {
+ IOUtil.close( reader );
+ }
+ }
+
+}
Propchange: maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/PomUtils.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/PomUtils.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision