diff --git a/scm-clients/scm-cli-client/src/main/java/sonia/scm/cli/SimpleLocalizable.java b/scm-clients/scm-cli-client/src/main/java/sonia/scm/cli/SimpleLocalizable.java new file mode 100644 index 0000000000..33fc3ef0b5 --- /dev/null +++ b/scm-clients/scm-cli-client/src/main/java/sonia/scm/cli/SimpleLocalizable.java @@ -0,0 +1,96 @@ +/** + * 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.cli; + +//~--- non-JDK imports -------------------------------------------------------- + +import org.kohsuke.args4j.Localizable; + +//~--- JDK imports ------------------------------------------------------------ + +import java.util.Locale; + +/** + * TODO create real implementation + * + * @author Sebastian Sdorra + */ +public class SimpleLocalizable implements Localizable +{ + + /** + * Constructs ... + * + * + * @param message + */ + public SimpleLocalizable(String message) + { + this.message = message; + } + + //~--- methods -------------------------------------------------------------- + + /** + * Method description + * + * + * @param args + * + * @return + */ + @Override + public String format(Object... args) + { + return message; + } + + /** + * Method description + * + * + * @param locale + * @param args + * + * @return + */ + @Override + public String formatWithLocale(Locale locale, Object... args) + { + return message; + } + + //~--- fields --------------------------------------------------------------- + + /** Field description */ + private final String message; +} diff --git a/scm-clients/scm-cli-client/src/main/java/sonia/scm/cli/cmd/SubCommandOptionHandler.java b/scm-clients/scm-cli-client/src/main/java/sonia/scm/cli/cmd/SubCommandOptionHandler.java index cf14b44b8e..dd219e557c 100644 --- a/scm-clients/scm-cli-client/src/main/java/sonia/scm/cli/cmd/SubCommandOptionHandler.java +++ b/scm-clients/scm-cli-client/src/main/java/sonia/scm/cli/cmd/SubCommandOptionHandler.java @@ -37,11 +37,15 @@ package sonia.scm.cli.cmd; import org.kohsuke.args4j.CmdLineException; import org.kohsuke.args4j.CmdLineParser; +import org.kohsuke.args4j.Localizable; import org.kohsuke.args4j.OptionDef; +import org.kohsuke.args4j.spi.Messages; import org.kohsuke.args4j.spi.OptionHandler; import org.kohsuke.args4j.spi.Parameters; import org.kohsuke.args4j.spi.Setter; +import sonia.scm.cli.SimpleLocalizable; + /** * * @author Sebastian Sdorra @@ -58,7 +62,7 @@ public class SubCommandOptionHandler extends OptionHandler * @param setter */ public SubCommandOptionHandler(CmdLineParser parser, OptionDef option, - Setter setter) + Setter setter) { super(parser, option, setter); } @@ -90,8 +94,9 @@ public class SubCommandOptionHandler extends OptionHandler } else { - throw new CmdLineException(owner, - "command ".concat(name).concat(" not found")); + String msg = "command ".concat(name).concat(" not found"); + + throw new CmdLineException(owner, new SimpleLocalizable(msg)); } return 1; diff --git a/scm-clients/scm-cli-client/src/main/java/sonia/scm/cli/cmd/TemplateSubCommand.java b/scm-clients/scm-cli-client/src/main/java/sonia/scm/cli/cmd/TemplateSubCommand.java index 99b7b5f982..b9d985b3b9 100644 --- a/scm-clients/scm-cli-client/src/main/java/sonia/scm/cli/cmd/TemplateSubCommand.java +++ b/scm-clients/scm-cli-client/src/main/java/sonia/scm/cli/cmd/TemplateSubCommand.java @@ -120,7 +120,7 @@ public abstract class TemplateSubCommand extends SubCommand */ protected void renderTemplate(Map env, String defaultTemplate) { - Configuration configuration = new Configuration(); + Configuration configuration = new Configuration(Configuration.VERSION_2_3_20); Reader reader = null; try @@ -143,11 +143,7 @@ public abstract class TemplateSubCommand extends SubCommand tpl.process(env, output); } - catch (TemplateException ex) - { - throw new ConfigurationException("could not render template", ex); - } - catch (IOException ex) + catch (TemplateException | IOException ex) { throw new ConfigurationException("could not render template", ex); } diff --git a/scm-core/src/main/java/sonia/scm/repository/api/BundleCommandBuilder.java b/scm-core/src/main/java/sonia/scm/repository/api/BundleCommandBuilder.java index c8ac199e16..4a25c0df50 100644 --- a/scm-core/src/main/java/sonia/scm/repository/api/BundleCommandBuilder.java +++ b/scm-core/src/main/java/sonia/scm/repository/api/BundleCommandBuilder.java @@ -36,9 +36,7 @@ package sonia.scm.repository.api; //~--- non-JDK imports -------------------------------------------------------- import com.google.common.io.ByteSink; -import com.google.common.io.ByteStreams; import com.google.common.io.Files; -import com.google.common.io.OutputSupplier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -57,8 +55,8 @@ import java.io.IOException; import java.io.OutputStream; /** - * The bundle command dumps a repository to a byte source such as a file. The - * created bundle can be restored to an empty repository with the + * The bundle command dumps a repository to a byte source such as a file. The + * created bundle can be restored to an empty repository with the * {@link UnbundleCommandBuilder}. * * @author Sebastian Sdorra @@ -164,15 +162,15 @@ public final class BundleCommandBuilder */ private ByteSink asByteSink(final OutputStream outputStream) { - return ByteStreams.asByteSink(new OutputSupplier() + return new ByteSink() { @Override - public OutputStream getOutput() throws IOException + public OutputStream openStream() throws IOException { return outputStream; } - }); + }; } //~--- fields --------------------------------------------------------------- diff --git a/scm-core/src/main/java/sonia/scm/repository/api/UnbundleCommandBuilder.java b/scm-core/src/main/java/sonia/scm/repository/api/UnbundleCommandBuilder.java index 7860513b51..ff28e5c668 100644 --- a/scm-core/src/main/java/sonia/scm/repository/api/UnbundleCommandBuilder.java +++ b/scm-core/src/main/java/sonia/scm/repository/api/UnbundleCommandBuilder.java @@ -36,9 +36,7 @@ package sonia.scm.repository.api; //~--- non-JDK imports -------------------------------------------------------- import com.google.common.io.ByteSource; -import com.google.common.io.ByteStreams; import com.google.common.io.Files; -import com.google.common.io.InputSupplier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -184,15 +182,15 @@ public final class UnbundleCommandBuilder */ private ByteSource asByteSource(final InputStream inputStream) { - return ByteStreams.asByteSource(new InputSupplier() + return new ByteSource() { @Override - public InputStream getInput() throws IOException + public InputStream openStream() throws IOException { return inputStream; } - }); + }; } /**