You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ev...@apache.org on 2005/11/17 16:10:58 UTC
svn commit: r345257 - in
/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release:
AbstractReleaseMojo.java PerformReleaseMojo.java PrepareReleaseMojo.java
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:jdcasey@apache.org">John Casey</a>
- * @author <a href="mailto:evenisse@apache.org">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:jdcasey@apache.org">John Casey</a>
+ * @author <a href="mailto:evenisse@apache.org">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 )