From 72b3587d4207a9b51cbf8384d59059a7c42e7870 Mon Sep 17 00:00:00 2001 From: David Pursehouse Date: Tue, 5 Sep 2017 20:27:32 +0900 Subject: [PATCH] Stop using deprecated CmdLineException constructors Instead of taking a String, the constructors now take a Localizable and a variable list of format arguments. Introduce a new Format helper class in CLIText, which implements the Localizable interface, and use it in place of raw Strings. Change-Id: I241eda16e242293ceb17b3c85ae5df85bd37c658 Signed-off-by: David Pursehouse --- .../src/org/eclipse/jgit/pgm/RevParse.java | 3 +- .../eclipse/jgit/pgm/internal/CLIText.java | 33 +++++++++++++++++++ .../pgm/opt/AbstractTreeIteratorHandler.java | 15 ++++++--- .../eclipse/jgit/pgm/opt/ObjectIdHandler.java | 6 ++-- .../jgit/pgm/opt/RevCommitHandler.java | 21 +++++++----- .../eclipse/jgit/pgm/opt/RevTreeHandler.java | 16 +++++---- .../jgit/pgm/opt/SubcommandHandler.java | 6 ++-- .../jgit/pgm/opt/UntrackedFilesHandler.java | 7 ++-- 8 files changed, 75 insertions(+), 32 deletions(-) diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/RevParse.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/RevParse.java index a66b7fa63..fa9f64de4 100644 --- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/RevParse.java +++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/RevParse.java @@ -86,7 +86,8 @@ protected void run() throws Exception { } else { if (verify && commits.size() > 1) { final CmdLineParser clp = new CmdLineParser(this); - throw new CmdLineException(clp, CLIText.get().needSingleRevision); + throw new CmdLineException(clp, + CLIText.format(CLIText.get().needSingleRevision)); } for (final ObjectId o : commits) { diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/internal/CLIText.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/internal/CLIText.java index 7d304bc1c..dfb489d82 100644 --- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/internal/CLIText.java +++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/internal/CLIText.java @@ -45,14 +45,47 @@ package org.eclipse.jgit.pgm.internal; import java.text.MessageFormat; +import java.util.Locale; import org.eclipse.jgit.nls.NLS; import org.eclipse.jgit.nls.TranslationBundle; +import org.kohsuke.args4j.Localizable; /** * Translation bundle for JGit command line interface */ public class CLIText extends TranslationBundle { + /** + * Formats text strings using {@code Localizable}. + * + */ + public static class Format implements Localizable { + final String text; + + Format(String text) { + this.text = text; + } + + @Override + public String formatWithLocale(Locale locale, Object... args) { + // we don't care about Locale for now + return format(args); + } + + @Override + public String format(Object... args) { + return MessageFormat.format(text, args); + } + } + + /** + * @param text + * the text to format. + * @return a new Format instance. + */ + public static Format format(String text) { + return new Format(text); + } /** * @return an instance of this translation bundle diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/opt/AbstractTreeIteratorHandler.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/opt/AbstractTreeIteratorHandler.java index 8f56bda5f..587f98ca5 100644 --- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/opt/AbstractTreeIteratorHandler.java +++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/opt/AbstractTreeIteratorHandler.java @@ -119,20 +119,25 @@ public int parseArguments(final Parameters params) throws CmdLineException { try { id = clp.getRepository().resolve(name); } catch (IOException e) { - throw new CmdLineException(clp, e.getMessage()); + throw new CmdLineException(clp, CLIText.format(e.getMessage())); } if (id == null) - throw new CmdLineException(clp, MessageFormat.format(CLIText.get().notATree, name)); + throw new CmdLineException(clp, + CLIText.format(CLIText.get().notATree), name); final CanonicalTreeParser p = new CanonicalTreeParser(); try (ObjectReader curs = clp.getRepository().newObjectReader()) { p.reset(curs, clp.getRevWalk().parseTree(id)); } catch (MissingObjectException e) { - throw new CmdLineException(clp, MessageFormat.format(CLIText.get().notATree, name)); + throw new CmdLineException(clp, + CLIText.format(CLIText.get().notATree), name); } catch (IncorrectObjectTypeException e) { - throw new CmdLineException(clp, MessageFormat.format(CLIText.get().notATree, name)); + throw new CmdLineException(clp, + CLIText.format(CLIText.get().notATree), name); } catch (IOException e) { - throw new CmdLineException(clp, MessageFormat.format(CLIText.get().cannotReadBecause, name, e.getMessage())); + throw new CmdLineException(clp, + CLIText.format(CLIText.get().cannotReadBecause), name, + e.getMessage()); } setter.addValue(p); diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/opt/ObjectIdHandler.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/opt/ObjectIdHandler.java index 75ca554ef..74bab2d2e 100644 --- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/opt/ObjectIdHandler.java +++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/opt/ObjectIdHandler.java @@ -45,7 +45,6 @@ package org.eclipse.jgit.pgm.opt; import java.io.IOException; -import java.text.MessageFormat; import org.eclipse.jgit.lib.ObjectId; import org.eclipse.jgit.pgm.internal.CLIText; @@ -86,14 +85,15 @@ public int parseArguments(final Parameters params) throws CmdLineException { try { id = clp.getRepository().resolve(name); } catch (IOException e) { - throw new CmdLineException(clp, e.getMessage()); + throw new CmdLineException(clp, CLIText.format(e.getMessage())); } if (id != null) { setter.addValue(id); return 1; } - throw new CmdLineException(clp, MessageFormat.format(CLIText.get().notAnObject, name)); + throw new CmdLineException(clp, + CLIText.format(CLIText.get().notAnObject), name); } @Override diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/opt/RevCommitHandler.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/opt/RevCommitHandler.java index 7661774f5..27555e344 100644 --- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/opt/RevCommitHandler.java +++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/opt/RevCommitHandler.java @@ -45,7 +45,6 @@ package org.eclipse.jgit.pgm.opt; import java.io.IOException; -import java.text.MessageFormat; import org.eclipse.jgit.errors.IncorrectObjectTypeException; import org.eclipse.jgit.errors.MissingObjectException; @@ -97,9 +96,8 @@ public int parseArguments(final Parameters params) throws CmdLineException { if (dot2 != -1) { if (!option.isMultiValued()) throw new CmdLineException(clp, - MessageFormat.format( - CLIText.get().onlyOneMetaVarExpectedIn, - option.metaVar(), name)); + CLIText.format(CLIText.get().onlyOneMetaVarExpectedIn), + option.metaVar(), name); final String left = name.substring(0, dot2); final String right = name.substring(dot2 + 2); @@ -118,20 +116,25 @@ private void addOne(final String name, final boolean interesting) try { id = clp.getRepository().resolve(name); } catch (IOException e) { - throw new CmdLineException(clp, e.getMessage()); + throw new CmdLineException(clp, CLIText.format(e.getMessage())); } if (id == null) - throw new CmdLineException(clp, MessageFormat.format(CLIText.get().notACommit, name)); + throw new CmdLineException(clp, + CLIText.format(CLIText.get().notACommit), name); final RevCommit c; try { c = clp.getRevWalk().parseCommit(id); } catch (MissingObjectException e) { - throw new CmdLineException(clp, MessageFormat.format(CLIText.get().notACommit, name)); + throw new CmdLineException(clp, + CLIText.format(CLIText.get().notACommit), name); } catch (IncorrectObjectTypeException e) { - throw new CmdLineException(clp, MessageFormat.format(CLIText.get().notACommit, name)); + throw new CmdLineException(clp, + CLIText.format(CLIText.get().notACommit), name); } catch (IOException e) { - throw new CmdLineException(clp, MessageFormat.format(CLIText.get().cannotReadBecause, name, e.getMessage())); + throw new CmdLineException(clp, + CLIText.format(CLIText.get().cannotReadBecause), name, + e.getMessage()); } if (interesting) diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/opt/RevTreeHandler.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/opt/RevTreeHandler.java index 9f1d21ec4..15ed5890e 100644 --- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/opt/RevTreeHandler.java +++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/opt/RevTreeHandler.java @@ -45,7 +45,6 @@ package org.eclipse.jgit.pgm.opt; import java.io.IOException; -import java.text.MessageFormat; import org.eclipse.jgit.errors.IncorrectObjectTypeException; import org.eclipse.jgit.errors.MissingObjectException; @@ -89,20 +88,25 @@ public int parseArguments(final Parameters params) throws CmdLineException { try { id = clp.getRepository().resolve(name); } catch (IOException e) { - throw new CmdLineException(clp, e.getMessage()); + throw new CmdLineException(clp, CLIText.format(e.getMessage())); } if (id == null) - throw new CmdLineException(clp, MessageFormat.format(CLIText.get().notATree, name)); + throw new CmdLineException(clp, + CLIText.format(CLIText.get().notATree), name); final RevTree c; try { c = clp.getRevWalk().parseTree(id); } catch (MissingObjectException e) { - throw new CmdLineException(clp, MessageFormat.format(CLIText.get().notATree, name)); + throw new CmdLineException(clp, + CLIText.format(CLIText.get().notATree), name); } catch (IncorrectObjectTypeException e) { - throw new CmdLineException(clp, MessageFormat.format(CLIText.get().notATree, name)); + throw new CmdLineException(clp, + CLIText.format(CLIText.get().notATree), name); } catch (IOException e) { - throw new CmdLineException(clp, MessageFormat.format(CLIText.get().cannotReadBecause, name, e.getMessage())); + throw new CmdLineException(clp, + CLIText.format(CLIText.get().cannotReadBecause), name, + e.getMessage()); } setter.addValue(c); return 1; diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/opt/SubcommandHandler.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/opt/SubcommandHandler.java index 311597e6b..ae5263fba 100644 --- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/opt/SubcommandHandler.java +++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/opt/SubcommandHandler.java @@ -43,8 +43,6 @@ package org.eclipse.jgit.pgm.opt; -import java.text.MessageFormat; - import org.eclipse.jgit.pgm.CommandCatalog; import org.eclipse.jgit.pgm.CommandRef; import org.eclipse.jgit.pgm.TextBuiltin; @@ -85,8 +83,8 @@ public int parseArguments(final Parameters params) throws CmdLineException { final String name = params.getParameter(0); final CommandRef cr = CommandCatalog.get(name); if (cr == null) - throw new CmdLineException(clp, MessageFormat.format( - CLIText.get().notAJgitCommand, name)); + throw new CmdLineException(clp, + CLIText.format(CLIText.get().notAJgitCommand), name); // Force option parsing to stop. Everything after us should // be arguments known only to this command and must not be diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/opt/UntrackedFilesHandler.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/opt/UntrackedFilesHandler.java index 3edd0ddbe..e22b2e49b 100644 --- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/opt/UntrackedFilesHandler.java +++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/opt/UntrackedFilesHandler.java @@ -42,8 +42,6 @@ */ package org.eclipse.jgit.pgm.opt; -import java.text.MessageFormat; - import org.eclipse.jgit.pgm.internal.CLIText; import org.kohsuke.args4j.CmdLineException; import org.kohsuke.args4j.CmdLineParser; @@ -105,8 +103,9 @@ public int parseArguments(Parameters params) throws CmdLineException { if ("no".equals(mode) || "all".equals(mode)) { //$NON-NLS-1$ //$NON-NLS-2$ setter.addValue(mode); } else { - throw new CmdLineException(owner, MessageFormat - .format(CLIText.get().invalidUntrackedFilesMode, mode)); + throw new CmdLineException(owner, + CLIText.format(CLIText.get().invalidUntrackedFilesMode), + mode); } return 1; } else {