From 7752db6811fb03336d88b2b3e3bd4d58916c4077 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Sun, 14 Nov 2010 14:09:18 +0100 Subject: [PATCH] use svnkit to create svn repositories --- plugins/scm-svn-plugin/pom.xml | 12 +++- .../scm/repository/SvnRepositoryHandler.java | 24 +++++-- .../AbstractSimpleRepositoryHandler.java | 70 ++++++++++++------- 3 files changed, 75 insertions(+), 31 deletions(-) diff --git a/plugins/scm-svn-plugin/pom.xml b/plugins/scm-svn-plugin/pom.xml index 58eb3da6d3..511052d3a7 100644 --- a/plugins/scm-svn-plugin/pom.xml +++ b/plugins/scm-svn-plugin/pom.xml @@ -23,12 +23,22 @@ 1.0-SNAPSHOT + + org.tmatesoft.svnkit + svnkit + ${svnkit.version} + + org.tmatesoft.svnkit svnkit-dav - 1.3.4 + ${svnkit.version} + + 1.3.4 + + diff --git a/plugins/scm-svn-plugin/src/main/java/sonia/scm/repository/SvnRepositoryHandler.java b/plugins/scm-svn-plugin/src/main/java/sonia/scm/repository/SvnRepositoryHandler.java index d1d611d288..d16aff2fb8 100644 --- a/plugins/scm-svn-plugin/src/main/java/sonia/scm/repository/SvnRepositoryHandler.java +++ b/plugins/scm-svn-plugin/src/main/java/sonia/scm/repository/SvnRepositoryHandler.java @@ -37,12 +37,19 @@ package sonia.scm.repository; import com.google.inject.Singleton; +import org.tmatesoft.svn.core.SVNException; +import org.tmatesoft.svn.core.io.SVNRepositoryFactory; + import sonia.scm.Type; import sonia.scm.io.ExtendedCommand; //~--- JDK imports ------------------------------------------------------------ import java.io.File; +import java.io.IOException; + +import java.util.logging.Level; +import java.util.logging.Logger; /** * @@ -85,14 +92,21 @@ public class SvnRepositoryHandler * @param repository * @param directory * - * @return + * @throws IOException + * @throws RepositoryException */ @Override - protected ExtendedCommand buildCreateCommand(Repository repository, - File directory) + protected void create(Repository repository, File directory) + throws RepositoryException, IOException { - return new ExtendedCommand(config.getSvnAdminBinary(), "create", - directory.getPath()); + try + { + SVNRepositoryFactory.createLocalRepository(directory, true, false); + } + catch (SVNException ex) + { + throw new RepositoryException(ex); + } } //~--- get methods ---------------------------------------------------------- diff --git a/scm-core/src/main/java/sonia/scm/repository/AbstractSimpleRepositoryHandler.java b/scm-core/src/main/java/sonia/scm/repository/AbstractSimpleRepositoryHandler.java index 9a60052ec3..2c8ad966d0 100644 --- a/scm-core/src/main/java/sonia/scm/repository/AbstractSimpleRepositoryHandler.java +++ b/scm-core/src/main/java/sonia/scm/repository/AbstractSimpleRepositoryHandler.java @@ -29,6 +29,8 @@ * */ + + package sonia.scm.repository; //~--- non-JDK imports -------------------------------------------------------- @@ -72,18 +74,6 @@ public abstract class AbstractSimpleRepositoryHandler