You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm-commits@maven.apache.org by ev...@apache.org on 2006/02/26 16:05:58 UTC
svn commit: r381101 [1/4] - in
/maven/scm/trunk/sandbox/maven-scm-provider-svnjava: ./ src/ src/main/
src/main/java/ src/main/java/org/ src/main/java/org/apache/
src/main/java/org/apache/maven/ src/main/java/org/apache/maven/scm/
src/main/java/org/apac...
Author: evenisse
Date: Sun Feb 26 07:05:52 2006
New Revision: 381101
URL: http://svn.apache.org/viewcvs?rev=381101&view=rev
Log:
[SCM-13] pure Java SVN interface
Submitted by David Hawkins
It's in sandbox until 1.0.4 of javasvn will be release, so we'll can use file protocol and test it with TCK.
Added:
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/ (with props)
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/pom.xml (with props)
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/SvnJavaScmProvider.java (with props)
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/add/
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/add/SvnAddCommand.java (with props)
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/changelog/
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/changelog/SvnChangeLogCommand.java (with props)
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/checkin/
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/checkin/SvnCheckInCommand.java (with props)
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/checkout/
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/checkout/SvnCheckOutCommand.java (with props)
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/diff/
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/diff/SvnDiffCommand.java (with props)
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/remove/
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/remove/SvnRemoveCommand.java (with props)
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/status/
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/status/SvnStatusCommand.java (with props)
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/tag/
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/tag/SvnTagCommand.java (with props)
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/update/
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/update/SvnUpdateCommand.java (with props)
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/repository/
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/repository/SvnJavaScmProviderRepository.java (with props)
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/util/
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/util/ScmFileEventHandler.java (with props)
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/util/SvnJavaUtil.java (with props)
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/util/SvnStatusHandler.java (with props)
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/resources/
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/resources/META-INF/
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/resources/META-INF/plexus/
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/resources/META-INF/plexus/components.xml (with props)
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/test/
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/test/java/
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/test/java/org/
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/test/java/org/apache/
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/test/java/org/apache/maven/
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/test/java/org/apache/maven/scm/
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/test/java/org/apache/maven/scm/provider/
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/test/java/org/apache/maven/scm/provider/svn/
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/test/java/org/apache/maven/scm/provider/svn/svnjava/
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/test/java/org/apache/maven/scm/provider/svn/svnjava/SvnJavaTestUtils.java (with props)
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/test/java/org/apache/maven/scm/provider/svn/svnjava/command/
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/test/java/org/apache/maven/scm/provider/svn/svnjava/command/SvnJavaTckTestCommand.java (with props)
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/test/java/org/apache/maven/scm/provider/svn/svnjava/command/checkin/
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/test/java/org/apache/maven/scm/provider/svn/svnjava/command/checkin/SvnCheckInCommandTckTest.java (with props)
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/test/java/org/apache/maven/scm/provider/svn/svnjava/command/checkout/
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/test/java/org/apache/maven/scm/provider/svn/svnjava/command/checkout/SvnCheckOutCommandTckTest.java (with props)
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/test/java/org/apache/maven/scm/provider/svn/svnjava/command/diff/
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/test/java/org/apache/maven/scm/provider/svn/svnjava/command/diff/SvnDiffCommandTckTest.java (with props)
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/test/java/org/apache/maven/scm/provider/svn/svnjava/command/status/
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/test/java/org/apache/maven/scm/provider/svn/svnjava/command/status/SvnStatusCommandTckTest.java (with props)
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/test/java/org/apache/maven/scm/provider/svn/svnjava/command/tag/
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/test/java/org/apache/maven/scm/provider/svn/svnjava/command/tag/SvnTagCommandTckTest.java (with props)
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/test/java/org/apache/maven/scm/provider/svn/svnjava/command/update/
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/test/java/org/apache/maven/scm/provider/svn/svnjava/command/update/SvnUpdateCommandTckTest.java (with props)
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/test/java/org/apache/maven/scm/provider/svn/svnjava/repository/
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/test/java/org/apache/maven/scm/provider/svn/svnjava/repository/SvnScmProviderRepositoryTest.java (with props)
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/test/resources/
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/test/resources/checkout.dump
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/test/resources/svn/
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/test/resources/svn-test.properties (with props)
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/test/resources/svn/changelog/
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/test/resources/svn/changelog/svnlog.txt (with props)
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/test/resources/svn/changelog/svnlog2.txt (with props)
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/test/resources/tck/
maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/test/resources/tck/tck.dump
Propchange: maven/scm/trunk/sandbox/maven-scm-provider-svnjava/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Sun Feb 26 07:05:52 2006
@@ -0,0 +1,4 @@
+maven-scm-provider-svnjava.iws
+target
+maven-scm-provider-svnjava.iml
+maven-scm-provider-svnjava.ipr
Added: maven/scm/trunk/sandbox/maven-scm-provider-svnjava/pom.xml
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/sandbox/maven-scm-provider-svnjava/pom.xml?rev=381101&view=auto
==============================================================================
--- maven/scm/trunk/sandbox/maven-scm-provider-svnjava/pom.xml (added)
+++ maven/scm/trunk/sandbox/maven-scm-provider-svnjava/pom.xml Sun Feb 26 07:05:52 2006
@@ -0,0 +1,45 @@
+<project>
+ <parent>
+ <artifactId>maven-scm-providers-svn</artifactId>
+ <groupId>org.apache.maven.scm</groupId>
+ <version>1.0-beta-3-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>maven-scm-provider-svnjava</artifactId>
+ <name>Maven SCM Subversion Provider - Java Impl.</name>
+ <version>1.0-beta-3-SNAPSHOT</version>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <!--
+ For information on testing this module, see the documentation in:
+ org.apache.maven.scm.provider.svn.svnjava.SvnTestUtils.java
+ -->
+ <configuration>
+ <excludes>
+ <exclude>**/*TckTest.java</exclude>
+ </excludes>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.maven.scm</groupId>
+ <artifactId>maven-scm-provider-svn-commons</artifactId>
+ <version>1.0-beta-3-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.tmate</groupId>
+ <artifactId>javasvn</artifactId>
+ <version>1.0.3</version>
+ </dependency>
+ <!-- dependency>
+ <groupId>commons-httpclient</groupId>
+ <artifactId>commons-httpclient</artifactId>
+ <version>3.0</version>
+ </dependency -->
+ </dependencies>
+</project>
Propchange: maven/scm/trunk/sandbox/maven-scm-provider-svnjava/pom.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/scm/trunk/sandbox/maven-scm-provider-svnjava/pom.xml
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/SvnJavaScmProvider.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/SvnJavaScmProvider.java?rev=381101&view=auto
==============================================================================
--- maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/SvnJavaScmProvider.java (added)
+++ maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/SvnJavaScmProvider.java Sun Feb 26 07:05:52 2006
@@ -0,0 +1,146 @@
+package org.apache.maven.scm.provider.svn.svnjava;
+
+/*
+ * Copyright 2001-2006 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.scm.provider.ScmProviderRepository;
+import org.apache.maven.scm.provider.svn.AbstractSvnScmProvider;
+import org.apache.maven.scm.provider.svn.command.SvnCommand;
+import org.apache.maven.scm.provider.svn.svnjava.command.add.SvnAddCommand;
+import org.apache.maven.scm.provider.svn.svnjava.command.changelog.SvnChangeLogCommand;
+import org.apache.maven.scm.provider.svn.svnjava.command.checkin.SvnCheckInCommand;
+import org.apache.maven.scm.provider.svn.svnjava.command.checkout.SvnCheckOutCommand;
+import org.apache.maven.scm.provider.svn.svnjava.command.diff.SvnDiffCommand;
+import org.apache.maven.scm.provider.svn.svnjava.command.remove.SvnRemoveCommand;
+import org.apache.maven.scm.provider.svn.svnjava.command.status.SvnStatusCommand;
+import org.apache.maven.scm.provider.svn.svnjava.command.tag.SvnTagCommand;
+import org.apache.maven.scm.provider.svn.svnjava.command.update.SvnUpdateCommand;
+import org.apache.maven.scm.provider.svn.svnjava.repository.SvnJavaScmProviderRepository;
+import org.apache.maven.scm.repository.ScmRepositoryException;
+import org.codehaus.plexus.util.StringUtils;
+import org.tmatesoft.svn.core.SVNException;
+import org.tmatesoft.svn.core.SVNURL;
+import org.tmatesoft.svn.core.internal.io.dav.DAVRepositoryFactory;
+import org.tmatesoft.svn.core.internal.io.svn.SVNRepositoryFactoryImpl;
+
+import java.util.Collections;
+
+/**
+ * @author <a href="mailto:dh-maven@famhq.com">David Hawkins</a>
+ * @version $Id$
+ */
+public class SvnJavaScmProvider
+ extends AbstractSvnScmProvider
+{
+ public static final String COMMAND_LINE = "JavaSVN Library";
+
+ private static boolean initialized = false;
+
+ public ScmProviderRepository makeProviderScmRepository( String scmSpecificUrl, char delimiter )
+ throws ScmRepositoryException
+ {
+ initialize();
+
+ try
+ {
+ SVNURL url = SVNURL.parseURIEncoded( scmSpecificUrl );
+
+ // The existing svn provider pattern is to strip the username (if any)
+ // from the url.
+ String strUrl = url.toString();
+ if ( url.getUserInfo() != null )
+ {
+ strUrl = StringUtils.replace( strUrl, url.getUserInfo() + "@", "" );
+ }
+
+ return new SvnJavaScmProviderRepository( url, strUrl );
+ }
+ catch ( SVNException e )
+ {
+ throw new ScmRepositoryException( "The scm url is invalid: " + e.getMessage(),
+ Collections.singletonList( e.getMessage() ) );
+ }
+ }
+
+ protected SvnCommand getAddCommand()
+ {
+ return new SvnAddCommand();
+ }
+
+ protected SvnCommand getChangeLogCommand()
+ {
+ return new SvnChangeLogCommand();
+ }
+
+ protected SvnCommand getCheckInCommand()
+ {
+ return new SvnCheckInCommand();
+ }
+
+ protected SvnCommand getCheckOutCommand()
+ {
+ return new SvnCheckOutCommand();
+ }
+
+ protected SvnCommand getDiffCommand()
+ {
+ return new SvnDiffCommand();
+ }
+
+ protected SvnCommand getRemoveCommand()
+ {
+ return new SvnRemoveCommand();
+ }
+
+ protected SvnCommand getStatusCommand()
+ {
+ return new SvnStatusCommand();
+ }
+
+ protected SvnCommand getTagCommand()
+ {
+ return new SvnTagCommand();
+ }
+
+ protected SvnCommand getUpdateCommand()
+ {
+ return new SvnUpdateCommand();
+ }
+
+ /*
+ * Initializes the library to work with a repository either via svn:// (and
+ * svn+ssh://) or via http:// (and https://)
+ */
+ private static void initialize()
+ {
+ if ( initialized )
+ {
+ return;
+ }
+
+ /*
+ * for DAV (over http and https)
+ */
+ DAVRepositoryFactory.setup();
+
+ /*
+ * for svn (over svn and svn+ssh)
+ */
+ SVNRepositoryFactoryImpl.setup();
+
+ initialized = true;
+ }
+}
Propchange: maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/SvnJavaScmProvider.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/SvnJavaScmProvider.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/add/SvnAddCommand.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/add/SvnAddCommand.java?rev=381101&view=auto
==============================================================================
--- maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/add/SvnAddCommand.java (added)
+++ maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/add/SvnAddCommand.java Sun Feb 26 07:05:52 2006
@@ -0,0 +1,109 @@
+package org.apache.maven.scm.provider.svn.svnjava.command.add;
+
+/*
+ * Copyright 2001-2006 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.scm.ScmException;
+import org.apache.maven.scm.ScmFileSet;
+import org.apache.maven.scm.ScmResult;
+import org.apache.maven.scm.command.add.AbstractAddCommand;
+import org.apache.maven.scm.command.add.AddScmResult;
+import org.apache.maven.scm.provider.ScmProviderRepository;
+import org.apache.maven.scm.provider.svn.command.SvnCommand;
+import org.apache.maven.scm.provider.svn.svnjava.SvnJavaScmProvider;
+import org.apache.maven.scm.provider.svn.svnjava.repository.SvnJavaScmProviderRepository;
+import org.apache.maven.scm.provider.svn.svnjava.util.SvnJavaUtil;
+import org.tmatesoft.svn.core.SVNCancelException;
+import org.tmatesoft.svn.core.SVNException;
+import org.tmatesoft.svn.core.wc.ISVNEventHandler;
+import org.tmatesoft.svn.core.wc.SVNClientManager;
+import org.tmatesoft.svn.core.wc.SVNEvent;
+import org.tmatesoft.svn.core.wc.SVNEventAction;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author <a href="mailto:brett@apache.org">Brett Porter</a>
+ * @author <a href="mailto:dh-maven@famhq.com">David Hawkins</a>
+ * @version $Id$
+ */
+public class SvnAddCommand
+ extends AbstractAddCommand
+ implements SvnCommand
+{
+ protected ScmResult executeAddCommand( ScmProviderRepository repository, ScmFileSet fileSet, String message,
+ boolean binary )
+ throws ScmException
+ {
+ if ( fileSet.getFiles().length == 0 )
+ {
+ throw new ScmException( "You must provide at least one file/directory to add" );
+ }
+
+ final List filesAdded = new ArrayList();
+
+ SvnJavaScmProviderRepository javaRepo = (SvnJavaScmProviderRepository) repository;
+
+ SVNClientManager clientManager = javaRepo.getClientManager();
+
+ try
+ {
+ clientManager.getWCClient().setEventHandler( new ISVNEventHandler()
+ {
+
+ public void handleEvent( SVNEvent event, double progress )
+ {
+ if ( event.getAction() == SVNEventAction.ADD )
+ {
+ filesAdded.add( event.getFile() );
+ }
+ }
+
+ public void checkCancelled()
+ throws SVNCancelException
+ {
+ // null
+ }
+ } );
+
+ File[] files = fileSet.getFiles();
+
+ for ( int i = 0; i < files.length; i++ )
+ {
+ File fileToAdd = new File( fileSet.getBasedir(), files[i].toString() );
+
+ getLogger().debug( "SVN adding file: " + fileToAdd.getAbsolutePath() );
+
+ SvnJavaUtil.add( clientManager, fileToAdd, false );
+ }
+ }
+ catch ( SVNException e )
+ {
+ return new AddScmResult( SvnJavaScmProvider.COMMAND_LINE, "The svn operation failed.", e.getMessage(),
+ false );
+ }
+ finally
+ {
+ clientManager.getWCClient().setEventHandler( null );
+ }
+
+ return new AddScmResult( null, filesAdded );
+ }
+
+
+}
Propchange: maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/add/SvnAddCommand.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/add/SvnAddCommand.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/changelog/SvnChangeLogCommand.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/changelog/SvnChangeLogCommand.java?rev=381101&view=auto
==============================================================================
--- maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/changelog/SvnChangeLogCommand.java (added)
+++ maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/changelog/SvnChangeLogCommand.java Sun Feb 26 07:05:52 2006
@@ -0,0 +1,122 @@
+package org.apache.maven.scm.provider.svn.svnjava.command.changelog;
+
+/*
+ * Copyright 2001-2006 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.scm.ChangeFile;
+import org.apache.maven.scm.ScmException;
+import org.apache.maven.scm.ScmFileSet;
+import org.apache.maven.scm.command.changelog.AbstractChangeLogCommand;
+import org.apache.maven.scm.command.changelog.ChangeLogScmResult;
+import org.apache.maven.scm.command.changelog.ChangeLogSet;
+import org.apache.maven.scm.provider.ScmProviderRepository;
+import org.apache.maven.scm.provider.svn.SvnChangeSet;
+import org.apache.maven.scm.provider.svn.SvnTagBranchUtils;
+import org.apache.maven.scm.provider.svn.command.SvnCommand;
+import org.apache.maven.scm.provider.svn.svnjava.SvnJavaScmProvider;
+import org.apache.maven.scm.provider.svn.svnjava.repository.SvnJavaScmProviderRepository;
+import org.apache.maven.scm.provider.svn.svnjava.util.SvnJavaUtil;
+import org.tmatesoft.svn.core.ISVNLogEntryHandler;
+import org.tmatesoft.svn.core.SVNException;
+import org.tmatesoft.svn.core.SVNLogEntry;
+import org.tmatesoft.svn.core.SVNURL;
+import org.tmatesoft.svn.core.wc.SVNRevision;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
+ * @version $Id$
+ */
+public class SvnChangeLogCommand
+ extends AbstractChangeLogCommand
+ implements SvnCommand
+{
+ protected ChangeLogScmResult executeChangeLogCommand( ScmProviderRepository repo, ScmFileSet fileSet,
+ Date startDate, Date endDate, String branch,
+ String datePattern )
+ throws ScmException
+ {
+ SvnJavaScmProviderRepository javaRepo = (SvnJavaScmProviderRepository) repo;
+
+ SVNRevision startRevision = ( startDate != null ) ? SVNRevision.create( startDate ) : SVNRevision.PREVIOUS;
+ SVNRevision endRevision = ( endDate != null ) ? SVNRevision.create( endDate ) : SVNRevision.HEAD;
+
+ try
+ {
+ SVNURL url = javaRepo.getSvnUrl();
+
+ if ( branch != null )
+ {
+ url = SVNURL.parseURIEncoded( SvnTagBranchUtils.resolveBranchUrl( javaRepo, url.toString() ) );
+ }
+
+ ChangeLogHandler handler = new ChangeLogHandler( startDate, endDate );
+
+ SvnJavaUtil.changelog( javaRepo.getClientManager(), url, startRevision, endRevision, true, // stopOnCopy
+ true, // reportPaths
+ handler );
+
+ return new ChangeLogScmResult( SvnJavaScmProvider.COMMAND_LINE, handler.getChangeSets() );
+ }
+ catch ( SVNException e )
+ {
+ return new ChangeLogScmResult( SvnJavaScmProvider.COMMAND_LINE, "SVN Changelog failed.", e.getMessage(),
+ false );
+ }
+ }
+
+ // ----------------------------------------------------------------------
+ //
+ // ----------------------------------------------------------------------
+
+ protected static class ChangeLogHandler
+ implements ISVNLogEntryHandler
+ {
+ private ChangeLogSet changeLogSet;
+
+ private List changeSets = new ArrayList();
+
+ public ChangeLogHandler( Date startDate, Date endDate )
+ {
+ changeLogSet = new ChangeLogSet( startDate, endDate );
+ }
+
+ public void handleLogEntry( SVNLogEntry logEntry )
+ throws SVNException
+ {
+ List changedFiles = new ArrayList();
+
+ for ( Iterator i = logEntry.getChangedPaths().keySet().iterator(); i.hasNext(); )
+ {
+ changedFiles.add( new ChangeFile( (String) i.next() ) );
+ }
+
+ changeSets.add(
+ new SvnChangeSet( logEntry.getDate(), logEntry.getMessage(), logEntry.getAuthor(), changedFiles ) );
+ }
+
+ public ChangeLogSet getChangeSets()
+ {
+ changeLogSet.setChangeSets( changeSets );
+
+ return changeLogSet;
+ }
+ }
+}
Propchange: maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/changelog/SvnChangeLogCommand.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/changelog/SvnChangeLogCommand.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/checkin/SvnCheckInCommand.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/checkin/SvnCheckInCommand.java?rev=381101&view=auto
==============================================================================
--- maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/checkin/SvnCheckInCommand.java (added)
+++ maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/checkin/SvnCheckInCommand.java Sun Feb 26 07:05:52 2006
@@ -0,0 +1,115 @@
+package org.apache.maven.scm.provider.svn.svnjava.command.checkin;
+
+/*
+ * Copyright 2001-2006 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.scm.ScmException;
+import org.apache.maven.scm.ScmFile;
+import org.apache.maven.scm.ScmFileSet;
+import org.apache.maven.scm.ScmFileStatus;
+import org.apache.maven.scm.command.checkin.AbstractCheckInCommand;
+import org.apache.maven.scm.command.checkin.CheckInScmResult;
+import org.apache.maven.scm.provider.ScmProviderRepository;
+import org.apache.maven.scm.provider.svn.command.SvnCommand;
+import org.apache.maven.scm.provider.svn.svnjava.SvnJavaScmProvider;
+import org.apache.maven.scm.provider.svn.svnjava.repository.SvnJavaScmProviderRepository;
+import org.apache.maven.scm.provider.svn.svnjava.util.SvnJavaUtil;
+import org.codehaus.plexus.util.StringUtils;
+import org.tmatesoft.svn.core.SVNException;
+import org.tmatesoft.svn.core.SVNNodeKind;
+import org.tmatesoft.svn.core.wc.SVNEvent;
+import org.tmatesoft.svn.core.wc.SVNEventAction;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * @author <a href="mailto:trygvis@inamo.no">Trygve Laugstøl</a>
+ * @version $Id$
+ */
+public class SvnCheckInCommand
+ extends AbstractCheckInCommand
+ implements SvnCommand
+{
+ protected CheckInScmResult executeCheckInCommand( ScmProviderRepository repo, ScmFileSet fileSet, String message,
+ String tag )
+ throws ScmException
+ {
+ if ( StringUtils.isNotEmpty( tag ) )
+ {
+ throw new ScmException( "This provider can't handle tags." );
+ }
+
+ getLogger().info( "SVN commit directory: " + fileSet.getBasedir().getAbsolutePath() );
+
+ SvnJavaScmProviderRepository javaRepo = (SvnJavaScmProviderRepository) repo;
+
+ SvnJavaUtil.GenericEventHandler handler = new SvnJavaUtil.GenericEventHandler();
+
+ javaRepo.getClientManager().getCommitClient().setEventHandler( handler );
+
+ try
+ {
+ File[] tmpPaths = fileSet.getFiles();
+ File[] paths;
+ if ( tmpPaths == null || tmpPaths.length == 0 )
+ {
+ paths = new File[]{fileSet.getBasedir()};
+ }
+ else
+ {
+ paths = new File[tmpPaths.length];
+ for ( int i = 0; i < tmpPaths.length; i++ )
+ {
+ if ( tmpPaths[i].isAbsolute() )
+ {
+ paths[i] = tmpPaths[i];
+ }
+ else
+ {
+ paths[i] = new File( fileSet.getBasedir(), tmpPaths[i].toString() );
+ }
+ }
+ }
+
+ SvnJavaUtil.commit( javaRepo.getClientManager(), paths, false, message, true );
+
+ List files = new ArrayList();
+ for ( Iterator iter = handler.getEvents().iterator(); iter.hasNext(); )
+ {
+ SVNEvent event = (SVNEvent) iter.next();
+ if ( event.getExpectedAction() != SVNEventAction.COMMIT_COMPLETED &&
+ event.getExpectedAction() != SVNEventAction.COMMIT_DELTA_SENT &&
+ event.getNodeKind() == SVNNodeKind.FILE )
+ {
+ files.add( new ScmFile( event.getFile().toString(), ScmFileStatus.CHECKED_IN ) );
+ }
+ }
+
+ return new CheckInScmResult( SvnJavaScmProvider.COMMAND_LINE, files );
+ }
+ catch ( SVNException e )
+ {
+ return new CheckInScmResult( SvnJavaScmProvider.COMMAND_LINE, "SVN commit failed.", e.getMessage(), false );
+ }
+ finally
+ {
+ javaRepo.getClientManager().getCommitClient().setEventHandler( null );
+ }
+ }
+}
Propchange: maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/checkin/SvnCheckInCommand.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/checkin/SvnCheckInCommand.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/checkout/SvnCheckOutCommand.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/checkout/SvnCheckOutCommand.java?rev=381101&view=auto
==============================================================================
--- maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/checkout/SvnCheckOutCommand.java (added)
+++ maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/checkout/SvnCheckOutCommand.java Sun Feb 26 07:05:52 2006
@@ -0,0 +1,81 @@
+package org.apache.maven.scm.provider.svn.svnjava.command.checkout;
+
+/*
+ * Copyright 2001-2006 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.scm.ScmException;
+import org.apache.maven.scm.ScmFileSet;
+import org.apache.maven.scm.command.checkout.AbstractCheckOutCommand;
+import org.apache.maven.scm.command.checkout.CheckOutScmResult;
+import org.apache.maven.scm.provider.ScmProviderRepository;
+import org.apache.maven.scm.provider.svn.SvnTagBranchUtils;
+import org.apache.maven.scm.provider.svn.command.SvnCommand;
+import org.apache.maven.scm.provider.svn.repository.SvnScmProviderRepository;
+import org.apache.maven.scm.provider.svn.svnjava.SvnJavaScmProvider;
+import org.apache.maven.scm.provider.svn.svnjava.repository.SvnJavaScmProviderRepository;
+import org.apache.maven.scm.provider.svn.svnjava.util.ScmFileEventHandler;
+import org.apache.maven.scm.provider.svn.svnjava.util.SvnJavaUtil;
+import org.tmatesoft.svn.core.SVNException;
+import org.tmatesoft.svn.core.SVNURL;
+import org.tmatesoft.svn.core.wc.SVNRevision;
+
+/**
+ * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
+ * @version $Id$
+ */
+public class SvnCheckOutCommand
+ extends AbstractCheckOutCommand
+ implements SvnCommand
+{
+ protected CheckOutScmResult executeCheckOutCommand( ScmProviderRepository repo, ScmFileSet fileSet, String tag )
+ throws ScmException
+ {
+ getLogger().info( "SVN checkout directory: " + fileSet.getBasedir().getAbsolutePath() );
+
+ SvnScmProviderRepository repository = (SvnScmProviderRepository) repo;
+
+ String url = repository.getUrl();
+ if ( tag != null )
+ {
+ url = SvnTagBranchUtils.resolveTagUrl( repository, tag );
+ }
+
+ SvnJavaScmProviderRepository javaRepo = (SvnJavaScmProviderRepository) repo;
+
+ ScmFileEventHandler handler = new ScmFileEventHandler( getLogger() );
+
+ javaRepo.getClientManager().getUpdateClient().setEventHandler( handler );
+
+ try
+ {
+ SvnJavaUtil.checkout( javaRepo.getClientManager(), SVNURL.parseURIEncoded( url ), SVNRevision.HEAD, fileSet
+ .getBasedir(), true );
+
+ return new CheckOutScmResult( SvnJavaScmProvider.COMMAND_LINE, handler.getFiles() );
+ }
+ catch ( SVNException e )
+ {
+ return new CheckOutScmResult( SvnJavaScmProvider.COMMAND_LINE, "SVN checkout failed.", e.getMessage(),
+ false );
+ }
+ finally
+ {
+ javaRepo.getClientManager().getUpdateClient().setEventHandler( null );
+ }
+ }
+
+
+}
Propchange: maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/checkout/SvnCheckOutCommand.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/checkout/SvnCheckOutCommand.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/diff/SvnDiffCommand.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/diff/SvnDiffCommand.java?rev=381101&view=auto
==============================================================================
--- maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/diff/SvnDiffCommand.java (added)
+++ maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/diff/SvnDiffCommand.java Sun Feb 26 07:05:52 2006
@@ -0,0 +1,97 @@
+package org.apache.maven.scm.provider.svn.svnjava.command.diff;
+
+/*
+ * Copyright 2001-2006 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.scm.ScmException;
+import org.apache.maven.scm.ScmFileSet;
+import org.apache.maven.scm.command.diff.AbstractDiffCommand;
+import org.apache.maven.scm.command.diff.DiffScmResult;
+import org.apache.maven.scm.provider.ScmProviderRepository;
+import org.apache.maven.scm.provider.svn.command.SvnCommand;
+import org.apache.maven.scm.provider.svn.command.diff.SvnDiffConsumer;
+import org.apache.maven.scm.provider.svn.svnjava.SvnJavaScmProvider;
+import org.apache.maven.scm.provider.svn.svnjava.repository.SvnJavaScmProviderRepository;
+import org.apache.maven.scm.provider.svn.svnjava.util.ScmFileEventHandler;
+import org.apache.maven.scm.provider.svn.svnjava.util.SvnJavaUtil;
+import org.tmatesoft.svn.core.SVNException;
+import org.tmatesoft.svn.core.wc.SVNRevision;
+
+import java.io.BufferedReader;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
+
+/**
+ * @author <a href="mailto:brett@apache.org">Brett Porter</a>
+ * @version $Id$
+ */
+public class SvnDiffCommand
+ extends AbstractDiffCommand
+ implements SvnCommand
+{
+ protected DiffScmResult executeDiffCommand( ScmProviderRepository repo, ScmFileSet fileSet, String startRevision,
+ String endRevision )
+ throws ScmException
+ {
+ getLogger().info( "SVN diff directory: " + fileSet.getBasedir().getAbsolutePath() );
+
+ SvnJavaScmProviderRepository javaRepo = (SvnJavaScmProviderRepository) repo;
+
+ ScmFileEventHandler handler = new ScmFileEventHandler( getLogger() );
+
+ try
+ {
+ javaRepo.getClientManager().getDiffClient().setEventHandler( handler );
+
+ SVNRevision start = ( startRevision == null ) ? SVNRevision.COMMITTED : SVNRevision.parse( startRevision );
+ SVNRevision end = ( endRevision == null ) ? SVNRevision.WORKING : SVNRevision.parse( endRevision );
+
+ ByteArrayOutputStream out =
+ SvnJavaUtil.diff( javaRepo.getClientManager(), fileSet.getBasedir(), start, end );
+
+ SvnDiffConsumer consumer = new SvnDiffConsumer( getLogger(), fileSet.getBasedir() );
+
+ ByteArrayInputStream bis = new ByteArrayInputStream( out.toByteArray() );
+
+ BufferedReader in = new BufferedReader( new InputStreamReader( bis ) );
+
+ String line = in.readLine();
+ while ( line != null )
+ {
+ consumer.consumeLine( line );
+
+ line = in.readLine();
+ }
+
+ return new DiffScmResult( SvnJavaScmProvider.COMMAND_LINE, consumer.getChangedFiles(),
+ consumer.getDifferences(), consumer.getPatch() );
+ }
+ catch ( IOException e )
+ {
+ return new DiffScmResult( SvnJavaScmProvider.COMMAND_LINE, "SVN diff failed.", e.getMessage(), false );
+ }
+ catch ( SVNException e )
+ {
+ return new DiffScmResult( SvnJavaScmProvider.COMMAND_LINE, "SVN diff failed.", e.getMessage(), false );
+ }
+ finally
+ {
+ javaRepo.getClientManager().getDiffClient().setEventHandler( null );
+ }
+ }
+}
Propchange: maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/diff/SvnDiffCommand.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/diff/SvnDiffCommand.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/remove/SvnRemoveCommand.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/remove/SvnRemoveCommand.java?rev=381101&view=auto
==============================================================================
--- maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/remove/SvnRemoveCommand.java (added)
+++ maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/remove/SvnRemoveCommand.java Sun Feb 26 07:05:52 2006
@@ -0,0 +1,71 @@
+package org.apache.maven.scm.provider.svn.svnjava.command.remove;
+
+/*
+ * Copyright 2001-2006 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.scm.ScmException;
+import org.apache.maven.scm.ScmFileSet;
+import org.apache.maven.scm.ScmResult;
+import org.apache.maven.scm.command.remove.AbstractRemoveCommand;
+import org.apache.maven.scm.command.remove.RemoveScmResult;
+import org.apache.maven.scm.provider.ScmProviderRepository;
+import org.apache.maven.scm.provider.svn.command.SvnCommand;
+import org.apache.maven.scm.provider.svn.svnjava.SvnJavaScmProvider;
+import org.apache.maven.scm.provider.svn.svnjava.repository.SvnJavaScmProviderRepository;
+import org.apache.maven.scm.provider.svn.svnjava.util.ScmFileEventHandler;
+import org.apache.maven.scm.provider.svn.svnjava.util.SvnJavaUtil;
+import org.tmatesoft.svn.core.SVNException;
+
+/**
+ * @author <a href="mailto:brett@apache.org">Brett Porter</a>
+ * @version $Id$
+ */
+public class SvnRemoveCommand
+ extends AbstractRemoveCommand
+ implements SvnCommand
+{
+ protected ScmResult executeRemoveCommand( ScmProviderRepository repo, ScmFileSet fileSet, String message )
+ throws ScmException
+ {
+ if ( fileSet.getFiles().length == 0 )
+ {
+ throw new ScmException( "You must provide at least one file/directory to remove" );
+ }
+
+ getLogger().info( "SVN remove working directory: " + fileSet.getBasedir().getAbsolutePath() );
+
+ SvnJavaScmProviderRepository javaRepo = (SvnJavaScmProviderRepository) repo;
+
+ ScmFileEventHandler handler = new ScmFileEventHandler( getLogger() );
+
+ javaRepo.getClientManager().getWCClient().setEventHandler( handler );
+
+ try
+ {
+ SvnJavaUtil.delete( javaRepo.getClientManager(), fileSet.getFiles(), true );
+
+ return new RemoveScmResult( SvnJavaScmProvider.COMMAND_LINE, handler.getFiles() );
+ }
+ catch ( SVNException e )
+ {
+ return new RemoveScmResult( SvnJavaScmProvider.COMMAND_LINE, "SVN remove failed.", e.getMessage(), false );
+ }
+ finally
+ {
+ javaRepo.getClientManager().getWCClient().setEventHandler( null );
+ }
+ }
+}
Propchange: maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/remove/SvnRemoveCommand.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/remove/SvnRemoveCommand.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/status/SvnStatusCommand.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/status/SvnStatusCommand.java?rev=381101&view=auto
==============================================================================
--- maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/status/SvnStatusCommand.java (added)
+++ maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/status/SvnStatusCommand.java Sun Feb 26 07:05:52 2006
@@ -0,0 +1,61 @@
+package org.apache.maven.scm.provider.svn.svnjava.command.status;
+
+/*
+ * Copyright 2001-2006 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.scm.ScmException;
+import org.apache.maven.scm.ScmFileSet;
+import org.apache.maven.scm.command.status.AbstractStatusCommand;
+import org.apache.maven.scm.command.status.StatusScmResult;
+import org.apache.maven.scm.provider.ScmProviderRepository;
+import org.apache.maven.scm.provider.svn.command.SvnCommand;
+import org.apache.maven.scm.provider.svn.svnjava.SvnJavaScmProvider;
+import org.apache.maven.scm.provider.svn.svnjava.repository.SvnJavaScmProviderRepository;
+import org.apache.maven.scm.provider.svn.svnjava.util.SvnJavaUtil;
+import org.apache.maven.scm.provider.svn.svnjava.util.SvnStatusHandler;
+import org.tmatesoft.svn.core.SVNException;
+
+/**
+ * @author <a href="mailto:brett@apache.org">Brett Porter</a>
+ * @version $Id$
+ */
+public class SvnStatusCommand
+ extends AbstractStatusCommand
+ implements SvnCommand
+{
+ protected StatusScmResult executeStatusCommand( ScmProviderRepository repo, ScmFileSet fileSet )
+ throws ScmException
+ {
+ getLogger().info( "SVN status directory: " + fileSet.getBasedir().getAbsolutePath() );
+
+ SvnJavaScmProviderRepository javaRepo = (SvnJavaScmProviderRepository) repo;
+
+ SvnStatusHandler handler = new SvnStatusHandler();
+
+ try
+ {
+ SvnJavaUtil.status( javaRepo.getClientManager(), fileSet.getBasedir(), true, // isRecursive
+ true, // isRemote
+ handler );
+
+ return new StatusScmResult( SvnJavaScmProvider.COMMAND_LINE, handler.getFiles() );
+ }
+ catch ( SVNException e )
+ {
+ return new StatusScmResult( SvnJavaScmProvider.COMMAND_LINE, "SVN status failed.", e.getMessage(), false );
+ }
+ }
+}
Propchange: maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/status/SvnStatusCommand.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/status/SvnStatusCommand.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/tag/SvnTagCommand.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/tag/SvnTagCommand.java?rev=381101&view=auto
==============================================================================
--- maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/tag/SvnTagCommand.java (added)
+++ maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/tag/SvnTagCommand.java Sun Feb 26 07:05:52 2006
@@ -0,0 +1,111 @@
+package org.apache.maven.scm.provider.svn.svnjava.command.tag;
+
+/*
+ * Copyright 2001-2006 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.scm.ScmException;
+import org.apache.maven.scm.ScmFile;
+import org.apache.maven.scm.ScmFileSet;
+import org.apache.maven.scm.ScmFileStatus;
+import org.apache.maven.scm.ScmResult;
+import org.apache.maven.scm.command.tag.AbstractTagCommand;
+import org.apache.maven.scm.command.tag.TagScmResult;
+import org.apache.maven.scm.provider.ScmProviderRepository;
+import org.apache.maven.scm.provider.svn.SvnTagBranchUtils;
+import org.apache.maven.scm.provider.svn.command.SvnCommand;
+import org.apache.maven.scm.provider.svn.repository.SvnScmProviderRepository;
+import org.apache.maven.scm.provider.svn.svnjava.SvnJavaScmProvider;
+import org.apache.maven.scm.provider.svn.svnjava.repository.SvnJavaScmProviderRepository;
+import org.apache.maven.scm.provider.svn.svnjava.util.SvnJavaUtil;
+import org.codehaus.plexus.util.FileUtils;
+import org.tmatesoft.svn.core.SVNCommitInfo;
+import org.tmatesoft.svn.core.SVNException;
+import org.tmatesoft.svn.core.SVNURL;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * @author <a href="mailto:brett@apache.org">Brett Porter</a>
+ * @version $Id$
+ * @todo since this is just a copy, use that instead.
+ */
+public class SvnTagCommand
+ extends AbstractTagCommand
+ implements SvnCommand
+{
+ public ScmResult executeTagCommand( ScmProviderRepository repo, ScmFileSet fileSet, String tag )
+ throws ScmException
+ {
+ if ( tag == null )
+ {
+ throw new ScmException( "tag must be specified" );
+ }
+
+ if ( fileSet.getFiles().length != 0 )
+ {
+ throw new ScmException( "This provider doesn't support tagging subsets of a directory" );
+ }
+
+ getLogger().info( "SVN checkout directory: " + fileSet.getBasedir().getAbsolutePath() );
+
+ SvnScmProviderRepository repository = (SvnScmProviderRepository) repo;
+
+ SvnJavaScmProviderRepository javaRepo = (SvnJavaScmProviderRepository) repo;
+
+ try
+ {
+ SVNURL destURL = SVNURL.parseURIEncoded( SvnTagBranchUtils.resolveTagUrl( repository, tag ) );
+
+ SVNCommitInfo info = SvnJavaUtil.copy( javaRepo.getClientManager(), javaRepo.getSvnUrl(), destURL, false,
+ "[maven-scm] copy for tag " + tag );
+
+ if ( info.getError() != null )
+ {
+ return new TagScmResult( SvnJavaScmProvider.COMMAND_LINE, "SVN tag failed.",
+ info.getError().getMessage(), false );
+ }
+
+ // The copy command doesn't return a list of files that were tagged,
+ // so manually build the list from the contents of the fileSet.getBaseDir.
+ List fileList = new ArrayList();
+ List files = null;
+ try
+ {
+ files = FileUtils.getFiles( fileSet.getBasedir(), "**", "**/.svn/**", false );
+ }
+ catch ( IOException e )
+ {
+ throw new ScmException( "Error while building list of tagged files.", e );
+ }
+
+ for ( Iterator i = files.iterator(); i.hasNext(); )
+ {
+ File f = (File) i.next();
+ fileList.add( new ScmFile( f.getPath(), ScmFileStatus.TAGGED ) );
+ }
+
+ return new TagScmResult( SvnJavaScmProvider.COMMAND_LINE, fileList );
+ }
+ catch ( SVNException e )
+ {
+ return new TagScmResult( SvnJavaScmProvider.COMMAND_LINE, "SVN tag failed.", e.getMessage(), false );
+ }
+ }
+}
Propchange: maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/tag/SvnTagCommand.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/tag/SvnTagCommand.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/update/SvnUpdateCommand.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/update/SvnUpdateCommand.java?rev=381101&view=auto
==============================================================================
--- maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/update/SvnUpdateCommand.java (added)
+++ maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/update/SvnUpdateCommand.java Sun Feb 26 07:05:52 2006
@@ -0,0 +1,111 @@
+package org.apache.maven.scm.provider.svn.svnjava.command.update;
+
+/*
+ * Copyright 2001-2006 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.scm.ScmException;
+import org.apache.maven.scm.ScmFileSet;
+import org.apache.maven.scm.command.changelog.ChangeLogCommand;
+import org.apache.maven.scm.command.update.AbstractUpdateCommand;
+import org.apache.maven.scm.command.update.UpdateScmResult;
+import org.apache.maven.scm.provider.ScmProviderRepository;
+import org.apache.maven.scm.provider.svn.SvnTagBranchUtils;
+import org.apache.maven.scm.provider.svn.command.SvnCommand;
+import org.apache.maven.scm.provider.svn.repository.SvnScmProviderRepository;
+import org.apache.maven.scm.provider.svn.svnjava.SvnJavaScmProvider;
+import org.apache.maven.scm.provider.svn.svnjava.command.changelog.SvnChangeLogCommand;
+import org.apache.maven.scm.provider.svn.svnjava.repository.SvnJavaScmProviderRepository;
+import org.apache.maven.scm.provider.svn.svnjava.util.ScmFileEventHandler;
+import org.apache.maven.scm.provider.svn.svnjava.util.SvnJavaUtil;
+import org.tmatesoft.svn.core.SVNException;
+import org.tmatesoft.svn.core.SVNURL;
+import org.tmatesoft.svn.core.wc.SVNRevision;
+
+/**
+ * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
+ * @version $Id$
+ */
+public class SvnUpdateCommand
+ extends AbstractUpdateCommand
+ implements SvnCommand
+{
+
+ protected UpdateScmResult executeUpdateCommand( ScmProviderRepository repo, ScmFileSet fileSet, String tag )
+ throws ScmException
+ {
+ SvnScmProviderRepository repository = (SvnScmProviderRepository) repo;
+
+ getLogger().info( "SVN update directory: " + fileSet.getBasedir().getAbsolutePath() );
+
+ SvnJavaScmProviderRepository javaRepo = (SvnJavaScmProviderRepository) repo;
+
+ try
+ {
+ ScmFileEventHandler handler = new ScmFileEventHandler( getLogger() );
+
+ javaRepo.getClientManager().getUpdateClient().setEventHandler( handler );
+
+ if ( tag == null || SvnTagBranchUtils.isRevisionSpecifier( tag ) )
+ {
+ SvnJavaUtil.update( javaRepo.getClientManager(), fileSet.getBasedir(), getSVNRevision( tag ), true );
+ }
+ else
+ {
+ // The tag specified does not appear to be numeric, so assume it refers
+ // to a branch/tag url and perform a switch operation rather than update
+ SvnJavaUtil.switchToURL( javaRepo.getClientManager(), fileSet.getBasedir(),
+ SVNURL.parseURIEncoded( SvnTagBranchUtils.resolveTagUrl( repository, tag ) ),
+ SVNRevision.HEAD, true );
+ }
+
+ return new UpdateScmResult( SvnJavaScmProvider.COMMAND_LINE, handler.getFiles() );
+ }
+ catch ( SVNException e )
+ {
+ return new UpdateScmResult( SvnJavaScmProvider.COMMAND_LINE, "SVN update failed.", e.getMessage(), false );
+ }
+ finally
+ {
+ javaRepo.getClientManager().getUpdateClient().setEventHandler( null );
+ }
+ }
+
+ private static SVNRevision getSVNRevision( String revision )
+ {
+ if ( revision == null || !SvnTagBranchUtils.isRevisionSpecifier( revision ) )
+ {
+ return SVNRevision.HEAD;
+ }
+ else
+ {
+ return SVNRevision.parse( revision );
+ }
+ }
+
+ /**
+ * @see org.apache.maven.scm.command.update.AbstractUpdateCommand#getChangeLogCommand()
+ */
+ protected ChangeLogCommand getChangeLogCommand()
+ {
+ SvnChangeLogCommand command = new SvnChangeLogCommand();
+
+ command.setLogger( getLogger() );
+
+ return command;
+ }
+
+
+}
Propchange: maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/update/SvnUpdateCommand.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/command/update/SvnUpdateCommand.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/repository/SvnJavaScmProviderRepository.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/repository/SvnJavaScmProviderRepository.java?rev=381101&view=auto
==============================================================================
--- maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/repository/SvnJavaScmProviderRepository.java (added)
+++ maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/repository/SvnJavaScmProviderRepository.java Sun Feb 26 07:05:52 2006
@@ -0,0 +1,134 @@
+package org.apache.maven.scm.provider.svn.svnjava.repository;
+
+/*
+ * Copyright 2001-2006 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.scm.provider.svn.repository.SvnScmProviderRepository;
+import org.tmatesoft.svn.core.SVNURL;
+import org.tmatesoft.svn.core.wc.ISVNOptions;
+import org.tmatesoft.svn.core.wc.SVNClientManager;
+import org.tmatesoft.svn.core.wc.SVNWCUtil;
+
+/**
+ * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
+ * @version $Id$
+ */
+public class SvnJavaScmProviderRepository
+ extends SvnScmProviderRepository
+{
+ private SVNURL svnUrl;
+
+ private SVNClientManager clientManager;
+
+ public SvnJavaScmProviderRepository( SVNURL svnUrl, String strUrl )
+ {
+ super( strUrl, null, null );
+
+ setUser( svnUrl.getUserInfo() );
+
+ setPassword( null );
+
+ this.svnUrl = svnUrl;
+
+ if ( getUser() != null )
+ {
+ System.getProperties().setProperty( "javasvn.ssh2.username", getUser() );
+ }
+ if ( getPassword() != null )
+ {
+ System.getProperties().setProperty( "javasvn.ssh2.password", getPassword() );
+ }
+
+ initializeClientManager();
+ }
+
+ public SVNURL getSvnUrl()
+ {
+ return svnUrl;
+ }
+
+ public SVNClientManager getClientManager()
+ {
+ return clientManager;
+ }
+
+ public void setPrivateKey( String privateKey )
+ {
+ super.setPrivateKey( privateKey );
+
+ if ( getPrivateKey() != null )
+ {
+ System.getProperties().setProperty( "javasvn.ssh2.key", getPrivateKey() );
+ }
+
+ initializeClientManager();
+ }
+
+ public void setPassphrase( String passphrase )
+ {
+ super.setPassphrase( passphrase );
+
+ if ( getPassphrase() != null )
+ {
+ System.getProperties().setProperty( "javasvn.ssh2.passphrase", getPassphrase() );
+ }
+
+ initializeClientManager();
+ }
+
+ public void setUser( String user )
+ {
+ super.setUser( user );
+
+ if ( getUser() != null )
+ {
+ System.getProperties().setProperty( "javasvn.ssh2.username", getUser() );
+ }
+
+ initializeClientManager();
+ }
+
+ public void setPassword( String password )
+ {
+ super.setPassword( password );
+
+ if ( getPassword() != null )
+ {
+ System.getProperties().setProperty( "javasvn.ssh2.password", getPassword() );
+ }
+
+ initializeClientManager();
+ }
+
+ private void initializeClientManager()
+ {
+ /*
+ * Creates a default run-time configuration options driver. Default options
+ * created in this way use the Subversion run-time configuration area (for
+ * instance, on a Windows platform it can be found in the '%APPDATA%\Subversion'
+ * directory).
+ *
+ * readonly = true - not to save any configuration changes that can be done
+ * during the program run to a config file (config settings will only
+ * be read to initialize; to enable changes the readonly flag should be set
+ * to false).
+ *
+ */
+ ISVNOptions options = SVNWCUtil.createDefaultOptions( true );
+
+ clientManager = SVNClientManager.newInstance( options, SVNWCUtil.createDefaultAuthenticationManager() );
+ }
+}
Propchange: maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/repository/SvnJavaScmProviderRepository.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/repository/SvnJavaScmProviderRepository.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/util/ScmFileEventHandler.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/util/ScmFileEventHandler.java?rev=381101&view=auto
==============================================================================
--- maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/util/ScmFileEventHandler.java (added)
+++ maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/util/ScmFileEventHandler.java Sun Feb 26 07:05:52 2006
@@ -0,0 +1,103 @@
+package org.apache.maven.scm.provider.svn.svnjava.util;
+
+/*
+ * Copyright 2001-2006 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.scm.ScmFile;
+import org.apache.maven.scm.ScmFileStatus;
+import org.apache.maven.scm.log.ScmLogger;
+import org.codehaus.plexus.util.StringUtils;
+import org.tmatesoft.svn.core.SVNCancelException;
+import org.tmatesoft.svn.core.SVNNodeKind;
+import org.tmatesoft.svn.core.wc.ISVNEventHandler;
+import org.tmatesoft.svn.core.wc.SVNEvent;
+import org.tmatesoft.svn.core.wc.SVNEventAction;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * {@link org.tmatesoft.svn.core.wc.ISVNStatusHandler} implementation for most
+ * scm commands. Creates a list of {@link org.apache.maven.scm.ScmFile} objects and determines
+ * the {@link org.apache.maven.scm.ScmFileStatus} from the
+ * {@link org.tmatesoft.svn.core.wc.SVNEvent#getExpectedAction()}.
+ *
+ * @author <a href="mailto:dh-maven@famhq.com">David Hawkins</a>
+ * @version $Id$
+ */
+public class ScmFileEventHandler
+ implements ISVNEventHandler
+{
+ private final ScmLogger logger;
+
+ private final List files = new ArrayList();
+
+ /**
+ * The logger is used in alerting the user to unknown file statuses.
+ */
+ public ScmFileEventHandler( ScmLogger logger )
+ {
+ this.logger = logger;
+ }
+
+ /**
+ * Creates a {@link ScmFile} for each event with the exception of directories.
+ * Directory events are ignored.
+ */
+ public void handleEvent( SVNEvent event, double progress )
+ {
+ ScmFileStatus status = SvnJavaUtil.getScmFileStatus( event.getExpectedAction() );
+
+ // Do nothing for events without files
+ if ( event.getFile() == null || event.getExpectedAction() == SVNEventAction.COMMIT_DELTA_SENT ||
+ event.getExpectedAction() == SVNEventAction.COMMIT_COMPLETED || event.getNodeKind() != SVNNodeKind.FILE )
+ {
+ return;
+ }
+
+ if ( status == null )
+ {
+ logger.info( "Unknown SVN file status: '" + event.getExpectedAction() + "' for file: " +
+ event.getFile().getAbsolutePath() );
+
+ status = ScmFileStatus.UNKNOWN;
+ }
+
+ if ( logger.isDebugEnabled() )
+ {
+ logger.debug( StringUtils.defaultString( status, event.getContentsStatus().toString() ) + " - " +
+ event.getFile().getAbsolutePath() );
+ }
+
+ files.add( new ScmFile( event.getFile().toString(), status ) );
+ }
+
+ public void checkCancelled()
+ throws SVNCancelException
+ {
+ // null
+ }
+
+ /**
+ * Returns the list of files collected from handling events.
+ *
+ * @return a list of {@link ScmFile} objects
+ */
+ public List getFiles()
+ {
+ return files;
+ }
+}
\ No newline at end of file
Propchange: maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/util/ScmFileEventHandler.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/scm/trunk/sandbox/maven-scm-provider-svnjava/src/main/java/org/apache/maven/scm/provider/svn/svnjava/util/ScmFileEventHandler.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"