You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ol...@apache.org on 2012/09/04 12:32:35 UTC
svn commit: r1380527 - in /maven/plugins/trunk/maven-scm-publish-plugin:
pom.xml
src/main/java/org/apache/maven/plugins/scmpublish/AbstractScmPublishMojo.java
Author: olamy
Date: Tue Sep 4 10:32:34 2012
New Revision: 1380527
URL: http://svn.apache.org/viewvc?rev=1380527&view=rev
Log:
in case of svn repository, we now check if remote path exists and create it.
Modified:
maven/plugins/trunk/maven-scm-publish-plugin/pom.xml
maven/plugins/trunk/maven-scm-publish-plugin/src/main/java/org/apache/maven/plugins/scmpublish/AbstractScmPublishMojo.java
Modified: maven/plugins/trunk/maven-scm-publish-plugin/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-scm-publish-plugin/pom.xml?rev=1380527&r1=1380526&r2=1380527&view=diff
==============================================================================
--- maven/plugins/trunk/maven-scm-publish-plugin/pom.xml (original)
+++ maven/plugins/trunk/maven-scm-publish-plugin/pom.xml Tue Sep 4 10:32:34 2012
@@ -52,7 +52,7 @@ under the License.
</distributionManagement>
<properties>
- <scmVersion>1.7</scmVersion>
+ <scmVersion>1.8-SNAPSHOT</scmVersion>
<mavenVersion>2.2.1</mavenVersion>
<pluginTools>3.1</pluginTools>
</properties>
@@ -64,6 +64,26 @@ under the License.
<version>2.3.2</version>
</dependency>
<dependency>
+ <groupId>org.apache.maven.scm</groupId>
+ <artifactId>maven-scm-api</artifactId>
+ <version>${scmVersion}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.scm</groupId>
+ <artifactId>maven-scm-provider-gitexe</artifactId>
+ <version>${scmVersion}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.scm</groupId>
+ <artifactId>maven-scm-provider-svnexe</artifactId>
+ <version>${scmVersion}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.scm</groupId>
+ <artifactId>maven-scm-provider-svn-commons</artifactId>
+ <version>${scmVersion}</version>
+ </dependency>
+ <dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-model</artifactId>
<version>${mavenVersion}</version>
Modified: maven/plugins/trunk/maven-scm-publish-plugin/src/main/java/org/apache/maven/plugins/scmpublish/AbstractScmPublishMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-scm-publish-plugin/src/main/java/org/apache/maven/plugins/scmpublish/AbstractScmPublishMojo.java?rev=1380527&r1=1380526&r2=1380527&view=diff
==============================================================================
--- maven/plugins/trunk/maven-scm-publish-plugin/src/main/java/org/apache/maven/plugins/scmpublish/AbstractScmPublishMojo.java (original)
+++ maven/plugins/trunk/maven-scm-publish-plugin/src/main/java/org/apache/maven/plugins/scmpublish/AbstractScmPublishMojo.java Tue Sep 4 10:32:34 2012
@@ -26,6 +26,8 @@ import org.apache.maven.plugin.MojoExecu
import org.apache.maven.plugin.MojoFailureException;
import org.apache.maven.plugins.annotations.Component;
import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.scm.CommandParameter;
+import org.apache.maven.scm.CommandParameters;
import org.apache.maven.scm.ScmBranch;
import org.apache.maven.scm.ScmException;
import org.apache.maven.scm.ScmFileSet;
@@ -33,6 +35,8 @@ import org.apache.maven.scm.ScmResult;
import org.apache.maven.scm.manager.NoSuchScmProviderException;
import org.apache.maven.scm.manager.ScmManager;
import org.apache.maven.scm.provider.ScmProvider;
+import org.apache.maven.scm.provider.svn.AbstractSvnScmProvider;
+import org.apache.maven.scm.provider.svn.repository.SvnScmProviderRepository;
import org.apache.maven.scm.repository.ScmRepository;
import org.apache.maven.scm.repository.ScmRepositoryException;
import org.apache.maven.settings.Settings;
@@ -240,6 +244,57 @@ public abstract class AbstractScmPublish
protected void checkoutExisting()
throws MojoExecutionException
{
+
+ if ( scmProvider instanceof AbstractSvnScmProvider )
+ {
+ File baseDir = null;
+ try
+ {
+
+ getLog().debug( "use AbstractSvnScmProvider so we can check if remote url exists and create it" );
+ AbstractSvnScmProvider svnScmProvider = (AbstractSvnScmProvider) scmProvider;
+
+ boolean remoteExists = svnScmProvider.remoteUrlExist( scmRepository.getProviderRepository(), null );
+ if ( !remoteExists )
+ {
+ // create a temporary directory for svnexec
+ baseDir = File.createTempFile( "scm", "tmp" );
+ baseDir.delete();
+ baseDir.mkdirs();
+ // to prevent fileSet cannot be empty
+ ScmFileSet scmFileSet = new ScmFileSet( baseDir, new File( "" ) );
+
+ CommandParameters commandParameters = new CommandParameters();
+ commandParameters.setString( CommandParameter.SCM_MKDIR_CREATE_IN_LOCAL, Boolean.FALSE.toString() );
+ commandParameters.setString( CommandParameter.MESSAGE, "automatic path creation:"
+ + ( (SvnScmProviderRepository) scmRepository.getProviderRepository() ).getUrl() );
+ svnScmProvider.mkdir( scmRepository.getProviderRepository(), scmFileSet, commandParameters );
+ }
+ }
+ catch ( IOException e )
+ {
+ throw new MojoExecutionException( e.getMessage(), e );
+ }
+ catch ( ScmException e )
+ {
+ throw new MojoExecutionException( e.getMessage(), e );
+ }
+ finally
+ {
+ if ( baseDir != null )
+ {
+ try
+ {
+ FileUtils.forceDeleteOnExit( baseDir );
+ }
+ catch ( IOException e )
+ {
+ throw new MojoExecutionException( e.getMessage(), e );
+ }
+ }
+ }
+ }
+
logInfo( "%s the pub tree from %s ...", ( tryUpdate ? "Updating" : "Checking out" ), pubScmUrl );
if ( checkoutDirectory.exists() && !tryUpdate )