You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by jd...@apache.org on 2005/09/19 19:59:04 UTC

svn commit: r290221 - in /maven/components/trunk: maven-core-it/it2002/project/ maven-core-it/it2002/project/src/ maven-core-it/it2002/project/subproject/ maven-core-it/it2002/project/subproject/src/ maven-core-it/it2002/project/subproject/src/main/ ma...

Author: jdcasey
Date: Mon Sep 19 10:58:46 2005
New Revision: 290221

URL: http://svn.apache.org/viewcvs?rev=290221&view=rev
Log:
Resolving: MNG-878, MNG-880 (again)

o Added full resolution of plugins listed in the project hierarchy
o Added better resolution of snapshots within the reactor, and resolution of ${finalName}
o Added usage of fully inherited model for release-pom.xml, to enable convergence of all POM inheritance to a single POM with no parent.
o Improved handling of SCM info in a reactored situation.


Added:
    maven/components/trunk/maven-core-it/it2002/project/subproject/
    maven/components/trunk/maven-core-it/it2002/project/subproject/pom.xml   (with props)
    maven/components/trunk/maven-core-it/it2002/project/subproject/src/
    maven/components/trunk/maven-core-it/it2002/project/subproject/src/main/
    maven/components/trunk/maven-core-it/it2002/project/subproject/src/main/java/
    maven/components/trunk/maven-core-it/it2002/project/subproject/src/main/java/org/
    maven/components/trunk/maven-core-it/it2002/project/subproject/src/main/java/org/apache/
    maven/components/trunk/maven-core-it/it2002/project/subproject/src/main/java/org/apache/maven/
    maven/components/trunk/maven-core-it/it2002/project/subproject/src/main/java/org/apache/maven/it2002/
    maven/components/trunk/maven-core-it/it2002/project/subproject/src/main/java/org/apache/maven/it2002/Thing.java   (with props)
    maven/components/trunk/maven-core-it/it2002/project/subproject/src/main/resources/
    maven/components/trunk/maven-core-it/it2002/project/subproject/src/main/resources/META-INF/
    maven/components/trunk/maven-core-it/it2002/project/subproject/src/main/resources/META-INF/plexus/
    maven/components/trunk/maven-core-it/it2002/project/subproject/src/main/resources/META-INF/plexus/components.xml   (with props)
    maven/components/trunk/maven-core-it/it2002/project/subproject/src/test/
    maven/components/trunk/maven-core-it/it2002/project/subproject/src/test/java/
    maven/components/trunk/maven-core-it/it2002/project/subproject/src/test/java/org/
    maven/components/trunk/maven-core-it/it2002/project/subproject/src/test/java/org/apache/
    maven/components/trunk/maven-core-it/it2002/project/subproject/src/test/java/org/apache/maven/
    maven/components/trunk/maven-core-it/it2002/project/subproject/src/test/java/org/apache/maven/it2002/
    maven/components/trunk/maven-core-it/it2002/project/subproject/src/test/java/org/apache/maven/it2002/ContainerDependentTest.java   (with props)
    maven/components/trunk/maven-core-it/it2002/project/subproject2/
    maven/components/trunk/maven-core-it/it2002/project/subproject2/pom.xml   (with props)
    maven/components/trunk/maven-core-it/it2002/project/subproject2/src/
    maven/components/trunk/maven-core-it/it2002/project/subproject2/src/main/
    maven/components/trunk/maven-core-it/it2002/project/subproject2/src/main/java/
    maven/components/trunk/maven-core-it/it2002/project/subproject2/src/main/java/org/
    maven/components/trunk/maven-core-it/it2002/project/subproject2/src/main/java/org/apache/
    maven/components/trunk/maven-core-it/it2002/project/subproject2/src/main/java/org/apache/maven/
    maven/components/trunk/maven-core-it/it2002/project/subproject2/src/main/java/org/apache/maven/it2002/
    maven/components/trunk/maven-core-it/it2002/project/subproject2/src/main/java/org/apache/maven/it2002/Thing.java   (with props)
    maven/components/trunk/maven-core-it/it2002/project/subproject2/src/main/resources/
    maven/components/trunk/maven-core-it/it2002/project/subproject2/src/main/resources/META-INF/
    maven/components/trunk/maven-core-it/it2002/project/subproject2/src/main/resources/META-INF/plexus/
    maven/components/trunk/maven-core-it/it2002/project/subproject2/src/main/resources/META-INF/plexus/components.xml   (with props)
    maven/components/trunk/maven-core-it/it2002/project/subproject2/src/test/
    maven/components/trunk/maven-core-it/it2002/project/subproject2/src/test/java/
    maven/components/trunk/maven-core-it/it2002/project/subproject2/src/test/java/org/
    maven/components/trunk/maven-core-it/it2002/project/subproject2/src/test/java/org/apache/
    maven/components/trunk/maven-core-it/it2002/project/subproject2/src/test/java/org/apache/maven/
    maven/components/trunk/maven-core-it/it2002/project/subproject2/src/test/java/org/apache/maven/it2002/
    maven/components/trunk/maven-core-it/it2002/project/subproject2/src/test/java/org/apache/maven/it2002/ContainerDependentTest.java   (with props)
Removed:
    maven/components/trunk/maven-core-it/it2002/project/src/
Modified:
    maven/components/trunk/maven-core-it/it2002/project/pom.xml
    maven/components/trunk/maven-plugins/maven-release-plugin/pom.xml
    maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java
    maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/helpers/ProjectScmRewriter.java
    maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/helpers/ReleaseProgressTracker.java
    maven/components/trunk/maven-plugins/pom.xml

Modified: maven/components/trunk/maven-core-it/it2002/project/pom.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it2002/project/pom.xml?rev=290221&r1=290220&r2=290221&view=diff
==============================================================================
--- maven/components/trunk/maven-core-it/it2002/project/pom.xml (original)
+++ maven/components/trunk/maven-core-it/it2002/project/pom.xml Mon Sep 19 10:58:46 2005
@@ -3,6 +3,12 @@
   <groupId>org.apache.maven.it2002</groupId>
   <artifactId>project</artifactId>
   <version>1.0-SNAPSHOT</version>
+  <packaging>pom</packaging>
+  
+  <modules>
+    <module>subproject</module>
+    <module>subproject2</module>
+  </modules>
 
   <dependencies>
     <dependency>
@@ -11,18 +17,6 @@
       <version>1.0-alpha-6</version>
       <scope>test</scope>
     </dependency>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-artifact</artifactId>
-      <version>2.0-beta-1</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-artifact-manager</artifactId>
-      <version>2.0-beta-1</version>
-      <scope>test</scope>
-    </dependency>
   </dependencies>
 
   <repositories>
@@ -56,20 +50,21 @@
     <tagBase>file://${project.file.parentFile.parentFile}/target/svnroot/project/tags</tagBase>
   </properties>
 
-  <!-- build>
+  <build>
     <plugins>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-release-plugin</artifactId>
-        <version>2.0-beta-1-SNAPSHOT</version>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <version>2.0-beta-1</version>
       </plugin>
     </plugins>
-  </build -->
+  </build>
 
   <reporting>
     <plugins>
       <plugin>
         <artifactId>maven-project-info-reports-plugin</artifactId>
+        <version>2.0-alpha-1</version>
       </plugin>
     </plugins>
   </reporting>

Added: maven/components/trunk/maven-core-it/it2002/project/subproject/pom.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it2002/project/subproject/pom.xml?rev=290221&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it2002/project/subproject/pom.xml (added)
+++ maven/components/trunk/maven-core-it/it2002/project/subproject/pom.xml Mon Sep 19 10:58:46 2005
@@ -0,0 +1,26 @@
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.apache.maven.it2002</groupId>
+    <artifactId>project</artifactId>
+    <version>1.0-SNAPSHOT</version>
+  </parent>
+
+  <artifactId>project-sub1</artifactId>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-artifact</artifactId>
+      <version>2.0-beta-1</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-artifact-manager</artifactId>
+      <version>2.0-beta-1</version>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+
+</project>

Propchange: maven/components/trunk/maven-core-it/it2002/project/subproject/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-core-it/it2002/project/subproject/pom.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/components/trunk/maven-core-it/it2002/project/subproject/src/main/java/org/apache/maven/it2002/Thing.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it2002/project/subproject/src/main/java/org/apache/maven/it2002/Thing.java?rev=290221&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it2002/project/subproject/src/main/java/org/apache/maven/it2002/Thing.java (added)
+++ maven/components/trunk/maven-core-it/it2002/project/subproject/src/main/java/org/apache/maven/it2002/Thing.java Mon Sep 19 10:58:46 2005
@@ -0,0 +1,9 @@
+package org.apache.maven.it2002;
+
+public class Thing
+{
+    public static final String ROLE = Thing.class.getName();
+    
+    private String type;
+}
+

Propchange: maven/components/trunk/maven-core-it/it2002/project/subproject/src/main/java/org/apache/maven/it2002/Thing.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-core-it/it2002/project/subproject/src/main/java/org/apache/maven/it2002/Thing.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/components/trunk/maven-core-it/it2002/project/subproject/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it2002/project/subproject/src/main/resources/META-INF/plexus/components.xml?rev=290221&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it2002/project/subproject/src/main/resources/META-INF/plexus/components.xml (added)
+++ maven/components/trunk/maven-core-it/it2002/project/subproject/src/main/resources/META-INF/plexus/components.xml Mon Sep 19 10:58:46 2005
@@ -0,0 +1,8 @@
+<component-set>
+  <components>
+    <component>
+      <role>org.apache.maven.it2002.Thing</role>
+      <implementation>org.apache.maven.it2002.Thing</implementation>
+    </component>
+  </components>
+</component-set>
\ No newline at end of file

Propchange: maven/components/trunk/maven-core-it/it2002/project/subproject/src/main/resources/META-INF/plexus/components.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-core-it/it2002/project/subproject/src/main/resources/META-INF/plexus/components.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/components/trunk/maven-core-it/it2002/project/subproject/src/test/java/org/apache/maven/it2002/ContainerDependentTest.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it2002/project/subproject/src/test/java/org/apache/maven/it2002/ContainerDependentTest.java?rev=290221&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it2002/project/subproject/src/test/java/org/apache/maven/it2002/ContainerDependentTest.java (added)
+++ maven/components/trunk/maven-core-it/it2002/project/subproject/src/test/java/org/apache/maven/it2002/ContainerDependentTest.java Mon Sep 19 10:58:46 2005
@@ -0,0 +1,20 @@
+package org.apache.maven.it2002;
+
+import org.apache.maven.artifact.resolver.ArtifactResolver;
+import org.codehaus.plexus.PlexusTestCase;
+
+public class ContainerDependentTest extends PlexusTestCase
+{
+    
+    public void testOne() throws Exception
+    {
+        ArtifactResolver resolver = (ArtifactResolver) lookup( ArtifactResolver.ROLE );
+        
+        assertNotNull( resolver );
+        
+        Thing thing = (Thing) lookup( Thing.ROLE );
+        
+        assertNotNull( thing );
+    }
+
+}

Propchange: maven/components/trunk/maven-core-it/it2002/project/subproject/src/test/java/org/apache/maven/it2002/ContainerDependentTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-core-it/it2002/project/subproject/src/test/java/org/apache/maven/it2002/ContainerDependentTest.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/components/trunk/maven-core-it/it2002/project/subproject2/pom.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it2002/project/subproject2/pom.xml?rev=290221&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it2002/project/subproject2/pom.xml (added)
+++ maven/components/trunk/maven-core-it/it2002/project/subproject2/pom.xml Mon Sep 19 10:58:46 2005
@@ -0,0 +1,31 @@
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.apache.maven.it2002</groupId>
+    <artifactId>project</artifactId>
+    <version>1.0-SNAPSHOT</version>
+  </parent>
+
+  <artifactId>project-sub2</artifactId>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.it2002</groupId>
+      <artifactId>project-sub1</artifactId>
+      <version>1.0-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-artifact</artifactId>
+      <version>2.0-beta-1</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-artifact-manager</artifactId>
+      <version>2.0-beta-1</version>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+
+</project>

Propchange: maven/components/trunk/maven-core-it/it2002/project/subproject2/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-core-it/it2002/project/subproject2/pom.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/components/trunk/maven-core-it/it2002/project/subproject2/src/main/java/org/apache/maven/it2002/Thing.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it2002/project/subproject2/src/main/java/org/apache/maven/it2002/Thing.java?rev=290221&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it2002/project/subproject2/src/main/java/org/apache/maven/it2002/Thing.java (added)
+++ maven/components/trunk/maven-core-it/it2002/project/subproject2/src/main/java/org/apache/maven/it2002/Thing.java Mon Sep 19 10:58:46 2005
@@ -0,0 +1,9 @@
+package org.apache.maven.it2002;
+
+public class Thing
+{
+    public static final String ROLE = Thing.class.getName();
+    
+    private String type;
+}
+

Propchange: maven/components/trunk/maven-core-it/it2002/project/subproject2/src/main/java/org/apache/maven/it2002/Thing.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-core-it/it2002/project/subproject2/src/main/java/org/apache/maven/it2002/Thing.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/components/trunk/maven-core-it/it2002/project/subproject2/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it2002/project/subproject2/src/main/resources/META-INF/plexus/components.xml?rev=290221&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it2002/project/subproject2/src/main/resources/META-INF/plexus/components.xml (added)
+++ maven/components/trunk/maven-core-it/it2002/project/subproject2/src/main/resources/META-INF/plexus/components.xml Mon Sep 19 10:58:46 2005
@@ -0,0 +1,8 @@
+<component-set>
+  <components>
+    <component>
+      <role>org.apache.maven.it2002.Thing</role>
+      <implementation>org.apache.maven.it2002.Thing</implementation>
+    </component>
+  </components>
+</component-set>
\ No newline at end of file

Propchange: maven/components/trunk/maven-core-it/it2002/project/subproject2/src/main/resources/META-INF/plexus/components.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-core-it/it2002/project/subproject2/src/main/resources/META-INF/plexus/components.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/components/trunk/maven-core-it/it2002/project/subproject2/src/test/java/org/apache/maven/it2002/ContainerDependentTest.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it2002/project/subproject2/src/test/java/org/apache/maven/it2002/ContainerDependentTest.java?rev=290221&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it2002/project/subproject2/src/test/java/org/apache/maven/it2002/ContainerDependentTest.java (added)
+++ maven/components/trunk/maven-core-it/it2002/project/subproject2/src/test/java/org/apache/maven/it2002/ContainerDependentTest.java Mon Sep 19 10:58:46 2005
@@ -0,0 +1,20 @@
+package org.apache.maven.it2002;
+
+import org.apache.maven.artifact.resolver.ArtifactResolver;
+import org.codehaus.plexus.PlexusTestCase;
+
+public class ContainerDependentTest extends PlexusTestCase
+{
+    
+    public void testOne() throws Exception
+    {
+        ArtifactResolver resolver = (ArtifactResolver) lookup( ArtifactResolver.ROLE );
+        
+        assertNotNull( resolver );
+        
+        Thing thing = (Thing) lookup( Thing.ROLE );
+        
+        assertNotNull( thing );
+    }
+
+}

Propchange: maven/components/trunk/maven-core-it/it2002/project/subproject2/src/test/java/org/apache/maven/it2002/ContainerDependentTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-core-it/it2002/project/subproject2/src/test/java/org/apache/maven/it2002/ContainerDependentTest.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Modified: maven/components/trunk/maven-plugins/maven-release-plugin/pom.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-release-plugin/pom.xml?rev=290221&r1=290220&r2=290221&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-release-plugin/pom.xml (original)
+++ maven/components/trunk/maven-plugins/maven-release-plugin/pom.xml Mon Sep 19 10:58:46 2005
@@ -11,6 +11,16 @@
   <version>2.0-beta-2-SNAPSHOT</version>
   <dependencies>
     <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-core</artifactId>
+      <version>2.0-beta-1</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-artifact</artifactId>
+      <version>2.0-beta-1</version>
+    </dependency>
+    <dependency>
       <groupId>org.apache.maven.scm</groupId>
       <artifactId>maven-scm-api</artifactId>
       <version>1.0-alpha-2</version>
@@ -50,4 +60,4 @@
       <version>1.0-alpha-2</version>
     </dependency>
   </dependencies>
-</project>
\ No newline at end of file
+</project>

Modified: maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java?rev=290221&r1=290220&r2=290221&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java (original)
+++ maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java Mon Sep 19 10:58:46 2005
@@ -31,7 +31,10 @@
 import org.apache.maven.model.PluginManagement;
 import org.apache.maven.model.ReportPlugin;
 import org.apache.maven.model.Reporting;
+import org.apache.maven.model.Resource;
 import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.version.PluginVersionManager;
+import org.apache.maven.plugin.version.PluginVersionResolutionException;
 import org.apache.maven.plugins.release.helpers.ProjectScmRewriter;
 import org.apache.maven.plugins.release.helpers.ProjectVersionResolver;
 import org.apache.maven.plugins.release.helpers.ReleaseProgressTracker;
@@ -39,6 +42,7 @@
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.scm.ScmException;
 import org.apache.maven.scm.ScmFile;
+import org.apache.maven.settings.Settings;
 import org.codehaus.plexus.components.inputhandler.InputHandler;
 import org.codehaus.plexus.util.IOUtil;
 import org.codehaus.plexus.util.StringUtils;
@@ -90,12 +94,15 @@
     private boolean interactive;
 
     /**
-     * @parameter expression="${component.org.apache.maven.artifact.metadata.ArtifactMetadataSource}"
-     * @required
-     * @readonly
+     * @component role="org.apache.maven.artifact.metadata.ArtifactMetadataSource"
      */
     private ArtifactMetadataSource artifactMetadataSource;
-
+    
+    /**
+     * @component role="org.apache.maven.plugin.version.PluginVersionManager"
+     */
+    private PluginVersionManager pluginVersionManager;
+    
     /**
      * @parameter expression="${component.org.codehaus.plexus.components.inputhandler.InputHandler}"
      * @required
@@ -109,6 +116,13 @@
      * @readonly
      */
     private ArtifactRepository localRepository;
+    
+    /**
+     * @parameter expression="${settings}"
+     * @required
+     * @readonly
+     */
+    private Settings settings;
 
     /**
      * @parameter expression="${reactorProjects}"
@@ -239,7 +253,7 @@
                 }
             }
 
-            removeReleasePoms();
+//            removeReleasePoms();
 
             checkInNextSnapshot();
 
@@ -819,17 +833,37 @@
                 MavenProject project = (MavenProject) it.next();
 
                 MavenProject releaseProject = new MavenProject( project );
-                Model releaseModel = releaseProject.getOriginalModel();
-                fixNullValueInModel( releaseModel, project.getOriginalModel() );
+                Model releaseModel = releaseProject.getModel();
+                fixNullValueInModel( releaseModel, project.getModel() );
                 
-                // Remove parent
-/* TODO: put this back after it is properly resolved again
-                if ( releaseModel.getParent() != null )
+                String projectVersion = releaseModel.getVersion();
+                if ( ArtifactUtils.isSnapshot( projectVersion ) )
                 {
-                    releaseModel.setParent( null );
+                    String snapshotVersion = projectVersion;
+                    
+                    projectVersion = getVersionResolver().getResolvedVersion( releaseModel.getGroupId(), releaseModel.getArtifactId() );
+                    
+                    if ( ArtifactUtils.isSnapshot( projectVersion ) )
+                    {
+                        throw new MojoExecutionException( "MAJOR PROBLEM!!! Cannot find resolved version to be used in releasing project: " + releaseProject.getId() );
+                    }
+                    
+                    releaseModel.setVersion( projectVersion );
+                    
+                    String finalName = releaseModel.getBuild().getFinalName();
+                    
+                    if ( finalName.equals( releaseModel.getArtifactId() + "-" + snapshotVersion ) )
+                    {
+                        releaseModel.getBuild().setFinalName( releaseModel.getArtifactId() + "-" + projectVersion );
+                    }
+                    else if ( finalName.indexOf( "SNAPSHOT" ) > -1 )
+                    {
+                        throw new MojoExecutionException( "Cannot reliably adjust the finalName of project: " + releaseProject.getId() );
+                    }
                 }
+                
+                releaseModel.setParent( null );
 
-*/
                 Set artifacts = releaseProject.getArtifacts();
 
                 if ( artifacts != null )
@@ -840,12 +874,24 @@
                     for ( Iterator i = releaseProject.getArtifacts().iterator(); i.hasNext(); )
                     {
                         Artifact artifact = (Artifact) i.next();
-
+                        
                         Dependency newdep = new Dependency();
 
                         newdep.setArtifactId( artifact.getArtifactId() );
                         newdep.setGroupId( artifact.getGroupId() );
-                        newdep.setVersion( artifact.getVersion() );
+                        
+                        String version = artifact.getVersion();
+                        if ( artifact.isSnapshot() )
+                        {
+                            version = getVersionResolver().getResolvedVersion(artifact.getGroupId(), artifact.getArtifactId() );
+                            
+                            if ( ArtifactUtils.isSnapshot( version ) )
+                            {
+                                throw new MojoExecutionException( "Unresolved SNAPSHOT version of: " + artifact.getId() + ". Cannot proceed with release." );
+                            }
+                        }
+                        
+                        newdep.setVersion( version );
                         newdep.setType( artifact.getType() );
                         newdep.setScope( artifact.getScope() );
                         newdep.setClassifier( artifact.getClassifier() );
@@ -858,21 +904,30 @@
 
                 // Use original - don't want the lifecycle introduced ones
                 // TODO: but is it the right settings?
-                Build originalModel = releaseProject.getOriginalModel().getBuild();
-                List plugins = originalModel != null ? originalModel.getPlugins() : null;
+                Build model = releaseProject.getModel().getBuild();
+                List plugins = model != null ? model.getPlugins() : null;
 
                 if ( plugins != null )
                 {
                     //Rewrite plugins version
-                    Map pluginArtifacts = releaseProject.getPluginArtifactMap();
-
                     for ( Iterator i = plugins.iterator(); i.hasNext(); )
                     {
                         Plugin plugin = (Plugin) i.next();
 
-                        Artifact artifact = (Artifact) pluginArtifacts.get( plugin.getKey() );
-
-                        String version = resolveVersion( artifact, "plugin", releaseProject );
+                        String version;
+                        try
+                        {
+                            version = pluginVersionManager.resolvePluginVersion( plugin.getGroupId(), plugin.getArtifactId(), project, settings, localRepository );
+                        }
+                        catch ( PluginVersionResolutionException e )
+                        {
+                            throw new MojoExecutionException( "Cannot resolve version for plugin: " + plugin );
+                        }
+                        
+                        if ( ArtifactUtils.isSnapshot(version))
+                        {
+                            throw new MojoExecutionException( "Resolved version of plugin is a snapshot. Please release this plugin before releasing this project.\n\nGroupId: " + plugin.getGroupId() + "\nArtifactId: " + plugin.getArtifactId() + "\nResolved Version: " + version + "\n\n" );
+                        }
 
                         plugin.setVersion( version );
                     }
@@ -883,21 +938,25 @@
                 if ( reports != null )
                 {
                     //Rewrite report version
-                    Map reportArtifacts = releaseProject.getReportArtifactMap();
-                    
-                    getLog().info( "Using report-artifact map with " + reportArtifacts.size() + " entries." );
-
                     for ( Iterator i = reports.iterator(); i.hasNext(); )
                     {
                         ReportPlugin plugin = (ReportPlugin) i.next();
 
-                        String pluginKey = plugin.getKey();
-                        
-                        getLog().info( "Looking up report artifact for: \'" + pluginKey + "\'" );
+                        String version;
+                        try
+                        {
+                            version = pluginVersionManager.resolvePluginVersion( plugin.getGroupId(), plugin
+                                .getArtifactId(), project, settings, localRepository, true );
+                        }
+                        catch ( PluginVersionResolutionException e )
+                        {
+                            throw new MojoExecutionException( "Cannot resolve version for report plugin: " + plugin );
+                        }
                         
-                        Artifact artifact = (Artifact) reportArtifacts.get( pluginKey );
-
-                        String version = resolveVersion( artifact, "report", releaseProject );
+                        if ( ArtifactUtils.isSnapshot(version))
+                        {
+                            throw new MojoExecutionException( "Resolved version of plugin is a snapshot. Please release this report plugin before releasing this project.\n\nGroupId: " + plugin.getGroupId() + "\nArtifactId: " + plugin.getArtifactId() + "\nResolved Version: " + version + "\n\n" );
+                        }
 
                         plugin.setVersion( version );
                     }
@@ -923,6 +982,15 @@
                         ext.setVersion( version );
                     }
                 }
+                
+                try
+                {
+                    relativizeBuildPaths( model, project.getFile().getParentFile().getCanonicalPath() );
+                }
+                catch ( IOException e )
+                {
+                    throw new MojoExecutionException( "Cannot relativize build paths for: " + project.getId(), e );
+                }
 
                 File releasePomFile = new File( releaseProject.getFile().getParentFile(), RELEASE_POM );
 
@@ -932,7 +1000,7 @@
                 {
                     writer = new FileWriter( releasePomFile );
 
-                    releaseProject.writeOriginalModel( writer );
+                    releaseProject.writeModel( writer );
                 }
                 catch ( IOException e )
                 {
@@ -974,6 +1042,77 @@
         }
     }
 
+    private void relativizeBuildPaths( Build build, String canonicalBasedir )
+    {
+        int basePathLength = canonicalBasedir.length() + 1;
+        
+        String directory = build.getDirectory();
+        if ( directory.startsWith( canonicalBasedir ) )
+        {
+            build.setDirectory( directory.substring( basePathLength ) );
+        }
+        
+        String outDir = build.getOutputDirectory();
+        if ( outDir.startsWith( canonicalBasedir ) )
+        {
+            build.setOutputDirectory( outDir.substring( basePathLength ) );
+        }
+        
+        String testOutDir = build.getTestOutputDirectory();
+        if ( testOutDir.startsWith( canonicalBasedir ) )
+        {
+            build.setTestOutputDirectory( testOutDir.substring( basePathLength ) );
+        }
+        
+        String srcDir = build.getSourceDirectory();
+        if ( srcDir.startsWith( canonicalBasedir ) )
+        {
+            build.setSourceDirectory( srcDir.substring( basePathLength ) );
+        }
+        
+        String scriptSrcDir = build.getScriptSourceDirectory();
+        if ( scriptSrcDir.startsWith( canonicalBasedir ) )
+        {
+            build.setScriptSourceDirectory( scriptSrcDir.substring( basePathLength ) );
+        }
+        
+        String testSrcDir = build.getTestSourceDirectory();
+        if ( testSrcDir.startsWith( canonicalBasedir ) )
+        {
+            build.setTestSourceDirectory( testSrcDir.substring( basePathLength ) );
+        }
+        
+        List resources = build.getResources();
+        if ( resources != null )
+        {
+            for ( Iterator it = resources.iterator(); it.hasNext(); )
+            {
+                Resource resource = (Resource) it.next();
+                
+                String dir = resource.getDirectory();
+                if ( dir.startsWith( canonicalBasedir ) )
+                {
+                    resource.setDirectory( dir.substring( basePathLength ) );
+                }
+            }
+        }
+        
+        List testResources = build.getTestResources();
+        if ( testResources != null )
+        {
+            for ( Iterator it = testResources.iterator(); it.hasNext(); )
+            {
+                Resource resource = (Resource) it.next();
+                
+                String dir = resource.getDirectory();
+                if ( dir.startsWith( canonicalBasedir ) )
+                {
+                    resource.setDirectory( dir.substring( basePathLength ) );
+                }
+            }
+        }
+    }
+
     private void fixNullValueInModel( Model modelToFix, Model correctModel )
     {
         if ( modelToFix.getModelVersion() != null )
@@ -1054,7 +1193,6 @@
     private String resolveVersion( Artifact artifact, String artifactUsage, MavenProject project )
         throws MojoExecutionException
     {
-        getLog().info( "Resolving version for: " + artifact );
         String resolvedVersion = getVersionResolver().getResolvedVersion( artifact.getGroupId(),
                                                                           artifact.getArtifactId() );
 

Modified: maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/helpers/ProjectScmRewriter.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/helpers/ProjectScmRewriter.java?rev=290221&r1=290220&r2=290221&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/helpers/ProjectScmRewriter.java (original)
+++ maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/helpers/ProjectScmRewriter.java Mon Sep 19 10:58:46 2005
@@ -37,12 +37,6 @@
     {
         String projectId = ArtifactUtils.versionlessKey( project.getGroupId(), project.getArtifactId() );
 
-        if ( project.getScm() == null )
-        {
-            throw new MojoExecutionException(
-                "Project: " + projectId + " does not have a SCM section! Cannot proceed with release." );
-        }
-
         Model model = project.getOriginalModel();
 
         Scm scm = model.getScm();
@@ -75,8 +69,18 @@
             if ( scmConnection != null && scmConnection.startsWith( "scm:svn" ) )
             {
                 scm.setConnection( convertSvnConnectionString( scmConnection, tag ) );
-                scm.setDeveloperConnection( convertSvnConnectionString( scm.getDeveloperConnection(), tag ) );
-                scm.setUrl( convertSvnConnectionString( scm.getUrl(), tag ) );
+                
+                String devConnection = scm.getDeveloperConnection();
+                if ( devConnection != null )
+                {
+                    scm.setDeveloperConnection( convertSvnConnectionString( devConnection, tag ) );
+                }
+                
+                String url = scm.getUrl();
+                if ( url != null )
+                {
+                    scm.setUrl( convertSvnConnectionString( url, tag ) );
+                }
             }
         }
     }

Modified: maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/helpers/ReleaseProgressTracker.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/helpers/ReleaseProgressTracker.java?rev=290221&r1=290220&r2=290221&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/helpers/ReleaseProgressTracker.java (original)
+++ maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/helpers/ReleaseProgressTracker.java Mon Sep 19 10:58:46 2005
@@ -198,25 +198,56 @@
 
     public void addOriginalScmInfo( String projectId, Scm scm )
     {
-        releaseProperties.setProperty( SCM_INFO_PREFIX + projectId + ".connection", scm.getConnection() );
-        releaseProperties.setProperty( SCM_INFO_PREFIX + projectId + ".developerConnection",
-                                       scm.getDeveloperConnection() );
-        releaseProperties.setProperty( SCM_INFO_PREFIX + projectId + ".url", scm.getUrl() );
-        releaseProperties.setProperty( SCM_INFO_PREFIX + projectId + ".tag", scm.getTag() );
+        String connection = scm.getConnection();
+        if ( connection != null )
+        {
+            releaseProperties.setProperty( SCM_INFO_PREFIX + projectId + ".connection", connection );
+        }
+        
+        String devConnection = scm.getDeveloperConnection();
+        if ( devConnection != null )
+        {
+            releaseProperties.setProperty( SCM_INFO_PREFIX + projectId + ".developerConnection",
+                                           devConnection );
+        }
+        
+        String url = scm.getUrl();
+        if ( url != null )
+        {
+            releaseProperties.setProperty( SCM_INFO_PREFIX + projectId + ".url", url );
+        }
+        
+        String tag = scm.getTag();
+        if ( tag != null )
+        {
+            releaseProperties.setProperty( SCM_INFO_PREFIX + projectId + ".tag", tag );
+        }
     }
 
     public void restoreScmInfo( String projectId, Scm scm )
     {
         String connection = releaseProperties.getProperty( SCM_INFO_PREFIX + projectId + ".connection" );
-        if ( connection == null )
+        if ( connection != null )
+        {
+            scm.setConnection( connection );
+        }
+        
+        String devConnection = releaseProperties.getProperty( SCM_INFO_PREFIX + projectId + ".connection" );
+        if ( devConnection != null )
+        {
+            scm.setDeveloperConnection( devConnection );
+        }
+        
+        String url = releaseProperties.getProperty( SCM_INFO_PREFIX + projectId + ".url" );
+        if ( url != null )
+        {
+            scm.setUrl( url );
+        }
+        
+        String tag = releaseProperties.getProperty( SCM_INFO_PREFIX + projectId + ".tag" );
+        if ( tag != null )
         {
-            throw new IllegalArgumentException(
-                "Project \'" + projectId + "\' has not had its SCM info cached. Cannot restore uncached SCM info." );
+            scm.setTag( tag );
         }
-        scm.setConnection( connection );
-        scm.setDeveloperConnection(
-            releaseProperties.getProperty( SCM_INFO_PREFIX + projectId + ".developerConnection" ) );
-        scm.setUrl( releaseProperties.getProperty( SCM_INFO_PREFIX + projectId + ".url" ) );
-        scm.setTag( releaseProperties.getProperty( SCM_INFO_PREFIX + projectId + ".tag" ) );
     }
 }

Modified: maven/components/trunk/maven-plugins/pom.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/pom.xml?rev=290221&r1=290220&r2=290221&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/pom.xml (original)
+++ maven/components/trunk/maven-plugins/pom.xml Mon Sep 19 10:58:46 2005
@@ -152,7 +152,7 @@
     <module>maven-assembly-plugin</module>
     <module>maven-checkstyle-plugin</module>
     <module>maven-clean-plugin</module>
-    <module>maven-clover-plugin</module>
+    <!-- module>maven-clover-plugin</module -->
     <module>maven-compiler-plugin</module>
     <module>maven-deploy-plugin</module>
     <module>maven-eclipse-plugin</module>



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org