From 9d2d70f9dfe8cbf211291d9cf793e23af76ba3f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Pfeuffer?= Date: Wed, 20 Jun 2018 16:08:51 +0200 Subject: [PATCH] Simplify things --- .../repository/client/spi/SvnAddCommand.java | 54 ------- .../client/spi/SvnChangeWorker.java | 141 ++++++++++++++++ .../client/spi/SvnCommitCommand.java | 135 ---------------- .../repository/client/spi/SvnFileCommand.java | 62 -------- .../client/spi/SvnRemoveCommand.java | 54 ------- .../spi/SvnRepositoryClientProvider.java | 26 ++- .../client/api/AddCommandBuilder.java | 79 ++------- .../client/api/RemoveCommandBuilder.java | 81 ++-------- .../client/api/RepositoryClient.java | 150 ++---------------- 9 files changed, 190 insertions(+), 592 deletions(-) delete mode 100644 scm-plugins/scm-svn-plugin/src/test/java/sonia/scm/repository/client/spi/SvnAddCommand.java create mode 100644 scm-plugins/scm-svn-plugin/src/test/java/sonia/scm/repository/client/spi/SvnChangeWorker.java delete mode 100644 scm-plugins/scm-svn-plugin/src/test/java/sonia/scm/repository/client/spi/SvnCommitCommand.java delete mode 100644 scm-plugins/scm-svn-plugin/src/test/java/sonia/scm/repository/client/spi/SvnFileCommand.java delete mode 100644 scm-plugins/scm-svn-plugin/src/test/java/sonia/scm/repository/client/spi/SvnRemoveCommand.java diff --git a/scm-plugins/scm-svn-plugin/src/test/java/sonia/scm/repository/client/spi/SvnAddCommand.java b/scm-plugins/scm-svn-plugin/src/test/java/sonia/scm/repository/client/spi/SvnAddCommand.java deleted file mode 100644 index 110211ef8b..0000000000 --- a/scm-plugins/scm-svn-plugin/src/test/java/sonia/scm/repository/client/spi/SvnAddCommand.java +++ /dev/null @@ -1,54 +0,0 @@ -/** - * Copyright (c) 2014, Sebastian Sdorra - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * 3. Neither the name of SCM-Manager; nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * http://bitbucket.org/sdorra/scm-manager - * - */ -package sonia.scm.repository.client.spi; - -import java.io.File; -import java.io.IOException; -import java.util.List; - -/** - * Add files to subversion repository. - * - * @author Sebastian Sdorra - * @since 1.51 - */ -public final class SvnAddCommand extends SvnFileCommand implements AddCommand { - - SvnAddCommand(File workingCopy, List pendingFiles) { - super(workingCopy, pendingFiles); - } - - @Override - public void add(String path) throws IOException { - append(path); - } - -} diff --git a/scm-plugins/scm-svn-plugin/src/test/java/sonia/scm/repository/client/spi/SvnChangeWorker.java b/scm-plugins/scm-svn-plugin/src/test/java/sonia/scm/repository/client/spi/SvnChangeWorker.java new file mode 100644 index 0000000000..b54e51c4d6 --- /dev/null +++ b/scm-plugins/scm-svn-plugin/src/test/java/sonia/scm/repository/client/spi/SvnChangeWorker.java @@ -0,0 +1,141 @@ +package sonia.scm.repository.client.spi; + +import org.tmatesoft.svn.core.SVNCommitInfo; +import org.tmatesoft.svn.core.SVNDepth; +import org.tmatesoft.svn.core.SVNErrorMessage; +import org.tmatesoft.svn.core.SVNException; +import org.tmatesoft.svn.core.wc.SVNClientManager; +import org.tmatesoft.svn.core.wc.SVNRevision; +import org.tmatesoft.svn.core.wc.SVNWCClient; +import org.tmatesoft.svn.core.wc2.SvnCommit; +import org.tmatesoft.svn.core.wc2.SvnLog; +import org.tmatesoft.svn.core.wc2.SvnRevisionRange; +import org.tmatesoft.svn.core.wc2.SvnTarget; +import sonia.scm.repository.Changeset; +import sonia.scm.repository.SvnUtil; +import sonia.scm.repository.client.api.RepositoryClientException; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +class SvnChangeWorker { + + private final File workingCopy; + private final List addedFiles = new ArrayList<>(); + private final List removedFiles = new ArrayList<>(); + + public SvnChangeWorker(File workingCopy) { + this.workingCopy = workingCopy; + } + + public AddCommand addCommand() { + return new SvnAddCommand(); + } + + public RemoveCommand removeCommand() { + return new SvnRemoveCommand(); + } + + public CommitCommand commitCommand(SVNClientManager client) { + return new SvnCommitCommand(client); + } + + private class SvnAddCommand implements AddCommand { + @Override + public void add(String path) throws IOException { + addedFiles.add(toFile(path)); + } + } + + private class SvnRemoveCommand implements RemoveCommand { + @Override + public void remove(String path) throws IOException { + removedFiles.add(toFile(path)); + } + } + + private class SvnCommitCommand implements CommitCommand { + private final SVNClientManager client; + + private SvnCommitCommand(SVNClientManager client) { + this.client = client; + } + + @Override + public Changeset commit(CommitRequest request) throws IOException { + SVNWCClient wClient = client.getWCClient(); + + // add files + try { + wClient.doAdd(addedFiles.toArray(new File[0]), true, false, false, + SVNDepth.INFINITY, false, false, false); + addedFiles.clear(); + + } catch (SVNException ex) { + throw new RepositoryClientException("failed to add files", ex); + } + + // remove files + try { + Iterator removeIt = removedFiles.iterator(); + while (removeIt.hasNext()) { + File file = removeIt.next(); + wClient.doDelete(file, false, true, false); + removeIt.remove(); + } + } catch (SVNException ex) { + throw new RepositoryClientException("failed to remove files", ex); + } + + SvnTarget workingCopyTarget = SvnTarget.fromFile(workingCopy); + Changeset changeset; + SVNCommitInfo info; + + // commit files + try { + SvnCommit commit = client.getOperationFactory().createCommit(); + commit.setDepth(SVNDepth.INFINITY); + commit.setCommitMessage(request.getMessage()); + commit.setSingleTarget(workingCopyTarget); + + info = commit.run(); + + SVNErrorMessage msg = info.getErrorMessage(); + if (msg != null) { + throw new IOException(msg.getFullMessage()); + } + + } catch (SVNException ex) { + throw new RepositoryClientException("failed to commit", ex); + } + + // get log for commit + try { + SVNRevision revision = SVNRevision.create(info.getNewRevision()); + + SvnLog log = client.getOperationFactory().createLog(); + log.addRange(SvnRevisionRange.create(revision, revision)); + log.setSingleTarget(workingCopyTarget); + + changeset = SvnUtil.createChangeset(log.run()); + } catch (SVNException ex) { + throw new RepositoryClientException("failed to create log entry for last commit", ex); + } + + return changeset; + } + } + + + protected File toFile(String path) throws FileNotFoundException { + File file = new File(workingCopy, path); + if (!file.exists()) { + throw new FileNotFoundException("could not find file ".concat(path)); + } + return file; + } +} diff --git a/scm-plugins/scm-svn-plugin/src/test/java/sonia/scm/repository/client/spi/SvnCommitCommand.java b/scm-plugins/scm-svn-plugin/src/test/java/sonia/scm/repository/client/spi/SvnCommitCommand.java deleted file mode 100644 index 3142a7be51..0000000000 --- a/scm-plugins/scm-svn-plugin/src/test/java/sonia/scm/repository/client/spi/SvnCommitCommand.java +++ /dev/null @@ -1,135 +0,0 @@ -/** - * Copyright (c) 2014, Sebastian Sdorra - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * 3. Neither the name of SCM-Manager; nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * http://bitbucket.org/sdorra/scm-manager - * - */ -package sonia.scm.repository.client.spi; - -import java.io.File; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import org.tmatesoft.svn.core.SVNCommitInfo; -import org.tmatesoft.svn.core.SVNDepth; -import org.tmatesoft.svn.core.SVNErrorMessage; -import org.tmatesoft.svn.core.SVNException; -import org.tmatesoft.svn.core.wc.SVNClientManager; -import org.tmatesoft.svn.core.wc.SVNRevision; -import org.tmatesoft.svn.core.wc.SVNWCClient; -import org.tmatesoft.svn.core.wc2.SvnCommit; -import org.tmatesoft.svn.core.wc2.SvnLog; -import org.tmatesoft.svn.core.wc2.SvnRevisionRange; -import org.tmatesoft.svn.core.wc2.SvnTarget; - -import sonia.scm.repository.Changeset; -import sonia.scm.repository.SvnUtil; -import sonia.scm.repository.client.api.RepositoryClientException; - -/** - * - * @author Sebastian Sdorra - */ -public class SvnCommitCommand implements CommitCommand { - - private final SVNClientManager client; - private final File workingCopy; - private final List addedFiles; - private final List removedFiles; - - SvnCommitCommand(SVNClientManager client, File workingCopy, List addedFiles, List removedFiles) { - this.client = client; - this.workingCopy = workingCopy; - this.addedFiles = addedFiles; - this.removedFiles = removedFiles; - } - - @Override - public Changeset commit(CommitRequest request) throws IOException { - SVNWCClient wClient = client.getWCClient(); - - // add files - try { - wClient.doAdd(addedFiles.toArray(new File[0]), true, false, false, - SVNDepth.INFINITY, false, false, false); - addedFiles.clear(); - - } catch (SVNException ex) { - throw new RepositoryClientException("failed to add files", ex); - } - - // remove files - try { - Iterator removeIt = removedFiles.iterator(); - while (removeIt.hasNext()) { - File file = removeIt.next(); - wClient.doDelete(file, false, true, false); - removeIt.remove(); - } - } catch (SVNException ex) { - throw new RepositoryClientException("failed to remove files", ex); - } - - SvnTarget workingCopyTarget = SvnTarget.fromFile(workingCopy); - Changeset changeset; - SVNCommitInfo info; - - // commit files - try { - SvnCommit commit = client.getOperationFactory().createCommit(); - commit.setDepth(SVNDepth.INFINITY); - commit.setCommitMessage(request.getMessage()); - commit.setSingleTarget(workingCopyTarget); - - info = commit.run(); - - SVNErrorMessage msg = info.getErrorMessage(); - if (msg != null) { - throw new IOException(msg.getFullMessage()); - } - - } catch (SVNException ex) { - throw new RepositoryClientException("failed to commit", ex); - } - - // get log for commit - try { - SVNRevision revision = SVNRevision.create(info.getNewRevision()); - - SvnLog log = client.getOperationFactory().createLog(); - log.addRange(SvnRevisionRange.create(revision, revision)); - log.setSingleTarget(workingCopyTarget); - - changeset = SvnUtil.createChangeset(log.run()); - } catch (SVNException ex) { - throw new RepositoryClientException("failed to create log entry for last commit", ex); - } - - return changeset; - } - -} diff --git a/scm-plugins/scm-svn-plugin/src/test/java/sonia/scm/repository/client/spi/SvnFileCommand.java b/scm-plugins/scm-svn-plugin/src/test/java/sonia/scm/repository/client/spi/SvnFileCommand.java deleted file mode 100644 index 528923a0d8..0000000000 --- a/scm-plugins/scm-svn-plugin/src/test/java/sonia/scm/repository/client/spi/SvnFileCommand.java +++ /dev/null @@ -1,62 +0,0 @@ -/** - * Copyright (c) 2014, Sebastian Sdorra - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * 3. Neither the name of SCM-Manager; nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * http://bitbucket.org/sdorra/scm-manager - * - */ -package sonia.scm.repository.client.spi; - -import java.io.File; -import java.io.FileNotFoundException; - -import java.util.List; - -/** - * Abstract file based svn command. - * - * @author Sebastian Sdorra - * @since 1.51 - */ -public abstract class SvnFileCommand { - - private final File workingCopy; - private final List pendingFiles; - - protected SvnFileCommand(File workingCopy, List pendingFiles) { - this.workingCopy = workingCopy; - this.pendingFiles = pendingFiles; - } - - protected void append(String path) throws FileNotFoundException { - File file = new File(workingCopy, path); - if (!file.exists()) { - throw new FileNotFoundException("could not find file ".concat(path)); - } - pendingFiles.add(file); - } - -} diff --git a/scm-plugins/scm-svn-plugin/src/test/java/sonia/scm/repository/client/spi/SvnRemoveCommand.java b/scm-plugins/scm-svn-plugin/src/test/java/sonia/scm/repository/client/spi/SvnRemoveCommand.java deleted file mode 100644 index 38e7f70de9..0000000000 --- a/scm-plugins/scm-svn-plugin/src/test/java/sonia/scm/repository/client/spi/SvnRemoveCommand.java +++ /dev/null @@ -1,54 +0,0 @@ -/** - * Copyright (c) 2014, Sebastian Sdorra - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * 3. Neither the name of SCM-Manager; nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * http://bitbucket.org/sdorra/scm-manager - * - */ -package sonia.scm.repository.client.spi; - -import java.io.File; -import java.io.IOException; -import java.util.List; - -/** - * Remove files from subversion repository. - * - * @author Sebastian Sdorra - * @since 1.51 - */ -public class SvnRemoveCommand extends SvnFileCommand implements RemoveCommand { - - SvnRemoveCommand(File workingCopy, List pendingFiles) { - super(workingCopy, pendingFiles); - } - - @Override - public void remove(String path) throws IOException { - append(path); - } - -} diff --git a/scm-plugins/scm-svn-plugin/src/test/java/sonia/scm/repository/client/spi/SvnRepositoryClientProvider.java b/scm-plugins/scm-svn-plugin/src/test/java/sonia/scm/repository/client/spi/SvnRepositoryClientProvider.java index 609ae1441b..2624ec9e84 100644 --- a/scm-plugins/scm-svn-plugin/src/test/java/sonia/scm/repository/client/spi/SvnRepositoryClientProvider.java +++ b/scm-plugins/scm-svn-plugin/src/test/java/sonia/scm/repository/client/spi/SvnRepositoryClientProvider.java @@ -31,14 +31,12 @@ package sonia.scm.repository.client.spi; import com.google.common.collect.ImmutableSet; -import java.io.File; -import java.util.ArrayList; -import java.util.List; -import java.util.Set; -import org.tmatesoft.svn.core.SVNURL; import org.tmatesoft.svn.core.wc.SVNClientManager; import sonia.scm.repository.client.api.ClientCommand; +import java.io.File; +import java.util.Set; + /** * Subversion repository client provider. * @@ -54,27 +52,27 @@ public class SvnRepositoryClientProvider extends RepositoryClientProvider { private final SVNClientManager client; private final File workingCopy; - private final List addedFiles = new ArrayList<>(); - private final List removedFiles = new ArrayList<>(); - + private final SvnChangeWorker changeWorker; + SvnRepositoryClientProvider(SVNClientManager client, File workingCopy) { + changeWorker = new SvnChangeWorker(workingCopy); this.client = client; this.workingCopy = workingCopy; } @Override - public SvnAddCommand getAddCommand() { - return new SvnAddCommand(workingCopy, addedFiles); + public AddCommand getAddCommand() { + return changeWorker.addCommand(); } @Override - public SvnRemoveCommand getRemoveCommand() { - return new SvnRemoveCommand(workingCopy, removedFiles); + public RemoveCommand getRemoveCommand() { + return changeWorker.removeCommand(); } @Override - public SvnCommitCommand getCommitCommand() { - return new SvnCommitCommand(client, workingCopy, addedFiles, removedFiles); + public CommitCommand getCommitCommand() { + return changeWorker.commitCommand(client); } @Override diff --git a/scm-test/src/main/java/sonia/scm/repository/client/api/AddCommandBuilder.java b/scm-test/src/main/java/sonia/scm/repository/client/api/AddCommandBuilder.java index 2add6c73dd..510d2fac11 100644 --- a/scm-test/src/main/java/sonia/scm/repository/client/api/AddCommandBuilder.java +++ b/scm-test/src/main/java/sonia/scm/repository/client/api/AddCommandBuilder.java @@ -32,97 +32,38 @@ package sonia.scm.repository.client.api; -//~--- non-JDK imports -------------------------------------------------------- - import org.slf4j.Logger; import org.slf4j.LoggerFactory; - import sonia.scm.repository.client.spi.AddCommand; import sonia.scm.util.Util; -//~--- JDK imports ------------------------------------------------------------ - import java.io.IOException; /** - * - * @author Sebastian Sdorra * @since 1.18 */ -public final class AddCommandBuilder -{ +public final class AddCommandBuilder { - /** - * the logger for AddCommandBuilder - */ - private static final Logger logger = - LoggerFactory.getLogger(AddCommandBuilder.class); + private static final Logger logger = LoggerFactory.getLogger(AddCommandBuilder.class); - //~--- constructors --------------------------------------------------------- + private final AddCommand command; - /** - * Constructs ... - * - * - * @param directory - * @param command - */ - AddCommandBuilder(AddCommand command) - { + AddCommandBuilder(AddCommand command) { this.command = command; } - //~--- methods -------------------------------------------------------------- - - /** - * Method description - * - * - * @param path - * @param pathes - * - * @return - * - * @throws IOException - */ - public AddCommandBuilder add(String path, String... pathes) throws IOException - { - add(path); - - if (Util.isNotEmpty(pathes)) - { - for (String p : pathes) - { - add(p); - } + public AddCommandBuilder add(String... paths) throws IOException { + for (String p : paths) { + add(p); } - return this; } - /** - * Method description - * - * - * @param path - * - * @throws IOException - */ - private void add(String path) throws IOException - { - if (Util.isNotEmpty(path)) - { - if (logger.isDebugEnabled()) - { - logger.debug("add path {}", path); - } + private void add(String path) throws IOException { + if (Util.isNotEmpty(path)) { + logger.debug("add path {}", path); command.add(path); } } - - //~--- fields --------------------------------------------------------------- - - /** Field description */ - private AddCommand command; } diff --git a/scm-test/src/main/java/sonia/scm/repository/client/api/RemoveCommandBuilder.java b/scm-test/src/main/java/sonia/scm/repository/client/api/RemoveCommandBuilder.java index 23696ae10d..4c3a2517ce 100644 --- a/scm-test/src/main/java/sonia/scm/repository/client/api/RemoveCommandBuilder.java +++ b/scm-test/src/main/java/sonia/scm/repository/client/api/RemoveCommandBuilder.java @@ -32,98 +32,37 @@ package sonia.scm.repository.client.api; -//~--- non-JDK imports -------------------------------------------------------- - import org.slf4j.Logger; import org.slf4j.LoggerFactory; - import sonia.scm.repository.client.spi.RemoveCommand; import sonia.scm.util.Util; -//~--- JDK imports ------------------------------------------------------------ - import java.io.IOException; /** - * - * @author Sebastian Sdorra * @since 1.18 */ -public final class RemoveCommandBuilder -{ +public final class RemoveCommandBuilder { - /** - * the logger for RemoveCommandBuilder - */ - private static final Logger logger = - LoggerFactory.getLogger(RemoveCommandBuilder.class); + private static final Logger logger = LoggerFactory.getLogger(RemoveCommandBuilder.class); - //~--- constructors --------------------------------------------------------- + private final RemoveCommand command; - /** - * Constructs ... - * - * - * @param directory - * @param command - */ - RemoveCommandBuilder(RemoveCommand command) - { + RemoveCommandBuilder(RemoveCommand command) { this.command = command; } - //~--- methods -------------------------------------------------------------- - - /** - * Method description - * - * - * @param path - * @param pathes - * - * @return - * - * @throws IOException - */ - public RemoveCommandBuilder remove(String path, String... pathes) - throws IOException - { - remove(path); - - if (Util.isNotEmpty(pathes)) - { - for (String p : pathes) - { - remove(p); - } + public RemoveCommandBuilder remove(String... paths) throws IOException { + for (String p : paths) { + remove(p); } - return this; } - /** - * Method description - * - * - * @param path - * - * @throws IOException - */ - private void remove(String path) throws IOException - { - if (Util.isNotEmpty(path)) - { - if (logger.isDebugEnabled()) - { - logger.debug("add path {}", path); - } - + private void remove(String path) throws IOException { + if (Util.isNotEmpty(path)) { + logger.debug("add path {}", path); command.remove(path); } } - - //~--- fields --------------------------------------------------------------- - - /** Field description */ - private RemoveCommand command; } diff --git a/scm-test/src/main/java/sonia/scm/repository/client/api/RepositoryClient.java b/scm-test/src/main/java/sonia/scm/repository/client/api/RepositoryClient.java index 664c5a9446..7f18e4fe22 100644 --- a/scm-test/src/main/java/sonia/scm/repository/client/api/RepositoryClient.java +++ b/scm-test/src/main/java/sonia/scm/repository/client/api/RepositoryClient.java @@ -29,191 +29,75 @@ * */ - - package sonia.scm.repository.client.api; -//~--- non-JDK imports -------------------------------------------------------- - import org.slf4j.Logger; import org.slf4j.LoggerFactory; - import sonia.scm.repository.client.spi.RepositoryClientProvider; import sonia.scm.util.IOUtil; -//~--- JDK imports ------------------------------------------------------------ - import java.io.Closeable; import java.io.File; -/** - * - * @author Sebastian Sdorra - * @since 1.18 - */ -public final class RepositoryClient implements Closeable -{ +public final class RepositoryClient implements Closeable { - /** - * the logger for RepositoryClient - */ - private static final Logger logger = - LoggerFactory.getLogger(RepositoryClient.class); + private static final Logger logger = LoggerFactory.getLogger(RepositoryClient.class); - //~--- constructors --------------------------------------------------------- - - /** - * Constructs ... - * - * - * @param directory - * @param clientProvider - */ RepositoryClient(RepositoryClientProvider clientProvider) { this.clientProvider = clientProvider; } - //~--- methods -------------------------------------------------------------- - - /** - * Method description - * - */ @Override - public void close() - { - if (logger.isTraceEnabled()) - { - logger.trace("close client provider"); - } + public void close() { + logger.trace("close client provider"); IOUtil.close(clientProvider); } - //~--- get methods ---------------------------------------------------------- - - /** - * Method description - * - * - * @return - */ - public AddCommandBuilder getAddCommand() - { - if (logger.isTraceEnabled()) - { - logger.trace("create add command"); - } + public AddCommandBuilder getAddCommand() { + logger.trace("create add command"); return new AddCommandBuilder(clientProvider.getAddCommand()); } - /** - * Method description - * - * - * @return - */ - public BranchCommandBuilder getBranchCommand() - { - if (logger.isTraceEnabled()) - { - logger.trace("create branch command"); - } + public BranchCommandBuilder getBranchCommand() { + logger.trace("create branch command"); return new BranchCommandBuilder(clientProvider.getBranchCommand()); } - /** - * Method description - * - * - * @return - */ - public CommitCommandBuilder getCommitCommand() - { - if (logger.isTraceEnabled()) - { - logger.trace("create commit command"); - } + public CommitCommandBuilder getCommitCommand() { + logger.trace("create commit command"); return new CommitCommandBuilder(clientProvider.getCommitCommand()); } - /** - * Method description - * - * - * @return - */ - public PushCommandBuilder getPushCommand() - { - if (logger.isTraceEnabled()) - { - logger.trace("create push command"); - } + public PushCommandBuilder getPushCommand() { + logger.trace("create push command"); return new PushCommandBuilder(clientProvider.getPushCommand()); } - /** - * Method description - * - * - * @return - */ - public RemoveCommandBuilder getRemoveCommand() - { - if (logger.isTraceEnabled()) - { - logger.trace("create remove command"); - } + public RemoveCommandBuilder getRemoveCommand() { + logger.trace("create remove command"); return new RemoveCommandBuilder(clientProvider.getRemoveCommand()); } - /** - * Method description - * - * - * @return - */ - public TagCommandBuilder getTagCommand() - { - if (logger.isTraceEnabled()) - { - logger.trace("create tag command"); - } + public TagCommandBuilder getTagCommand() { + logger.trace("create tag command"); return new TagCommandBuilder(clientProvider.getTagCommand()); } - /** - * Returns the working copy of the repository. - * - * @return working copy - * @since 1.51 - */ public File getWorkingCopy() { return clientProvider.getWorkingCopy(); } - /** - * Method description - * - * - * @param command - * - * @return - */ - public boolean isCommandSupported(ClientCommand command) - { + public boolean isCommandSupported(ClientCommand command) { return clientProvider.getSupportedClientCommands().contains(command); } - //~--- fields --------------------------------------------------------------- - - /** Field description */ private final RepositoryClientProvider clientProvider; }