Author: evenisse
Date: Thu Nov 17 07:10:53 2005
New Revision: 345257

URL: http://svn.apache.org/viewcvs?rev=345257&view=rev
Log:
PR: MNG-1553 and MNG-1561
Submitted by: Dan Tran

o ability to retreive starteam username/password from settings.xml
o define goals to run on command line

Modified:
    
maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/AbstractReleaseMojo.java
    
maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PerformReleaseMojo.java
    
maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java

Modified: 
maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/AbstractReleaseMojo.java
URL: 
http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/AbstractReleaseMojo.java?rev=345257&r1=345256&r2=345257&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/AbstractReleaseMojo.java
 (original)
+++ 
maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/AbstractReleaseMojo.java
 Thu Nov 17 07:10:53 2005
@@ -1,80 +1,157 @@
-package org.apache.maven.plugins.release;

-

-/*

- * Copyright 2001-2005 The Apache Software Foundation.

- * 

- * Licensed 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 org.apache.maven.plugin.AbstractMojo;

-import org.apache.maven.plugin.MojoExecutionException;

-import org.apache.maven.plugins.release.helpers.ReleaseProgressTracker;

-import org.apache.maven.plugins.release.helpers.ScmHelper;

-import org.apache.maven.scm.manager.ScmManager;

-import org.codehaus.plexus.components.interactivity.InputHandler;

-

-/**

- * @author <a href="mailto:[EMAIL PROTECTED]">John Casey</a>

- * @author <a href="mailto:[EMAIL PROTECTED]">Emmanuel Venisse</a>

- * @version $Id$

- */

-public abstract class AbstractReleaseMojo

-    extends AbstractMojo

-{

-    /**

-     * @component

-     */

-    private ScmManager scmManager;

-

-    /**

-     * @component

-     */

-    private InputHandler inputHandler;

-

-    private ScmHelper scmHelper;

-

-    protected abstract ReleaseProgressTracker getReleaseProgress()

-        throws MojoExecutionException;

-    

-    protected InputHandler getInputHandler()

-    {

-        return inputHandler;

-    }

-

-    protected ScmHelper getScm( String directory )

-        throws MojoExecutionException

-    {

-        if ( scmHelper == null )

-        {

-            scmHelper = new ScmHelper();

-

-            scmHelper.setScmManager( scmManager );

-

-            ReleaseProgressTracker releaseProgress = getReleaseProgress();

-

-            scmHelper.setUrl( releaseProgress.getScmUrl() );

-

-            scmHelper.setTag( releaseProgress.getScmTag() );

-

-            scmHelper.setTagBase( releaseProgress.getScmTagBase() );

-

-            scmHelper.setUsername( releaseProgress.getUsername() );

-

-            scmHelper.setPassword( releaseProgress.getPassword() );

-        }

-

-        scmHelper.setWorkingDirectory( directory );

-

-        return scmHelper;

-    }

-}

+package org.apache.maven.plugins.release;
+
+/*
+ * Copyright 2001-2005 The Apache Software Foundation.
+ * 
+ * Licensed 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 org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugins.release.helpers.ReleaseProgressTracker;
+import org.apache.maven.plugins.release.helpers.ScmHelper;
+import org.apache.maven.scm.manager.ScmManager;
+import 
org.apache.maven.scm.provider.starteam.repository.StarteamScmProviderRepository;
+import org.apache.maven.scm.repository.ScmRepository;
+import org.apache.maven.settings.Server;
+import org.apache.maven.settings.Settings;
+import org.codehaus.plexus.components.interactivity.InputHandler;
+
+/**
+ * @author <a href="mailto:[EMAIL PROTECTED]">John Casey</a>
+ * @author <a href="mailto:[EMAIL PROTECTED]">Emmanuel Venisse</a>
+ * @version $Id$
+ */
+public abstract class AbstractReleaseMojo
+    extends AbstractMojo
+{
+    /**
+     * @component
+     */
+    private ScmManager scmManager;
+
+    /**
+     * @component
+     */
+    private InputHandler inputHandler;
+
+    /**
+     * @parameter expression="${settings}"
+     * @required
+     * @readonly
+     */
+    private Settings settings;
+
+    
+    private ScmHelper scmHelper;
+
+    protected abstract ReleaseProgressTracker getReleaseProgress()
+        throws MojoExecutionException;
+    
+    protected InputHandler getInputHandler()
+    {
+        return inputHandler;
+    }
+
+    protected Settings getSettings()
+    {
+        return settings;
+    }
+    
+    protected ScmHelper getScm( String directory )
+        throws MojoExecutionException
+    {
+        if ( scmHelper == null )
+        {
+            scmHelper = new ScmHelper();
+
+            scmHelper.setScmManager( scmManager );
+
+            ReleaseProgressTracker releaseProgress = getReleaseProgress();
+
+            scmHelper.setUrl( releaseProgress.getScmUrl() );
+
+            scmHelper.setTag( releaseProgress.getScmTag() );
+
+            scmHelper.setTagBase( releaseProgress.getScmTagBase() );
+
+            scmHelper.setUsername( releaseProgress.getUsername() );
+
+            scmHelper.setPassword( releaseProgress.getPassword() );
+        }
+
+        scmHelper.setWorkingDirectory( directory );
+        
+        loadStarteamUsernamePassword( scmHelper );
+
+        return scmHelper;
+    }
+    
+    private ScmManager getScmManager()
+    {
+        return this.scmManager;
+    }
+    
+    /**
+     * Load starteam username/password from settings if needed
+     * @param scmHelper
+     * @throws MojoExecutionException
+     */
+    private void loadStarteamUsernamePassword( ScmHelper scmHelper )
+        throws MojoExecutionException
+    {
+        if ( scmHelper.getUsername() == null || scmHelper.getPassword() == 
null )
+        {
+            ScmRepository repository = null;
+     
+            try
+            {
+                repository = getScmManager().makeScmRepository( 
scmHelper.getUrl() );
+            }
+            catch ( Exception e )
+            {
+                throw new MojoExecutionException ( "Can't load the scm 
provider.", e );
+            }
+
+            if ( repository.getProvider().equals( "starteam" ) )
+            {
+                StarteamScmProviderRepository starteamRepo = 
(StarteamScmProviderRepository) repository.getProviderRepository();
+                    
+                String starteamAddress = starteamRepo.getHost();
+                    
+                int starteamPort = starteamRepo.getPort();
+                    
+                if ( starteamPort != 0 )
+                {
+                    starteamAddress += ":" + starteamPort;
+                }
+                    
+                Server server = this.settings.getServer( starteamAddress );
+                    
+                if ( server != null )
+                {
+                    if ( scmHelper.getUsername() == null )
+                    {
+                        scmHelper.setUsername( server.getUsername() );
+                    }
+                
+                    if ( scmHelper.getPassword() == null )
+                    {
+                        scmHelper.setPassword( server.getPassword() );
+                    }
+                 }
+              }
+        }
+        
+    }
+}

Modified: 
maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PerformReleaseMojo.java
URL: 
http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PerformReleaseMojo.java?rev=345257&r1=345256&r2=345257&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PerformReleaseMojo.java
 (original)
+++ 
maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PerformReleaseMojo.java
 Thu Nov 17 07:10:53 2005
@@ -53,6 +53,7 @@
     private File basedir;
 
     /**
+     * Comma or space separated goals 
      * @parameter expression="${goals}"
      */
     private String goals = "deploy";
@@ -122,8 +123,17 @@
 
         cl.setWorkingDirectory( workingDirectory );
 
-        cl.createArgument().setLine( goals );
-
+        if ( this.goals != null )
+        {
+            // accept both space and comma, so the old way still work
+            String [] tokens = StringUtils.split( this.goals, ", " );
+            
+            for ( int i = 0 ; i < tokens.length ; ++i )
+            {
+                cl.createArgument().setValue( tokens[i] );
+            }
+        }
+        
         cl.createArgument().setLine( "-DperformRelease=true" );
 
         cl.createArgument().setLine( "--no-plugin-updates" );
@@ -201,6 +211,8 @@
 
         try
         {
+            this.getLog().info( cl.toString() );
+            
             int result = CommandLineUtils.executeCommandLine( cl, consumer, 
consumer );
 
             if ( result != 0 )

Modified: 
maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java
URL: 
http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java?rev=345257&r1=345256&r2=345257&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java
 (original)
+++ 
maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java
 Thu Nov 17 07:10:53 2005
@@ -47,7 +47,6 @@
 import org.apache.maven.project.path.PathTranslator;
 import org.apache.maven.scm.ScmException;
 import org.apache.maven.scm.ScmFile;
-import org.apache.maven.settings.Settings;
 import org.codehaus.plexus.util.IOUtil;
 import org.codehaus.plexus.util.StringUtils;
 
@@ -119,12 +118,6 @@
      */
     private ArtifactRepository localRepository;
 
-    /**
-     * @parameter expression="${settings}"
-     * @required
-     * @readonly
-     */
-    private Settings settings;
 
     /**
      * @parameter expression="${reactorProjects}"
@@ -972,7 +965,7 @@
                         {
                             version = 
pluginVersionManager.resolvePluginVersion( plugin.getGroupId(),
                                                                                
  plugin.getArtifactId(), releaseProject,
-                                                                               
  settings, localRepository );
+                                                                               
  getSettings(), localRepository );
                         }
                         catch ( PluginVersionResolutionException e )
                         {
@@ -1016,7 +1009,7 @@
                         {
                             version = 
pluginVersionManager.resolveReportPluginVersion( plugin.getGroupId(),
                                                                                
        plugin.getArtifactId(),
-                                                                               
        releaseProject, settings,
+                                                                               
        releaseProject, getSettings(),
                                                                                
        localRepository );
                         }
                         catch ( PluginVersionResolutionException e )


Reply via email to