You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@opennlp.apache.org by ma...@apache.org on 2023/01/02 10:16:53 UTC

[opennlp] branch main updated: OPENNLP-1429 Add the Internal annotation to interfaces and classes documented accordingly (#474)

This is an automated email from the ASF dual-hosted git repository.

mawiesne pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/opennlp.git


The following commit(s) were added to refs/heads/main by this push:
     new d14d8560 OPENNLP-1429 Add the Internal annotation to interfaces and classes documented accordingly (#474)
d14d8560 is described below

commit d14d85608063efb2a0fd0896e78a300b99529631
Author: Martin Wiesner <ma...@users.noreply.github.com>
AuthorDate: Mon Jan 2 11:16:48 2023 +0100

    OPENNLP-1429 Add the Internal annotation to interfaces and classes documented accordingly (#474)
---
 .../tools/cmdline/AbstractConverterTool.java       |  8 +++--
 .../tools/cmdline/AbstractEvaluatorTool.java       |  3 +-
 .../opennlp/tools/cmdline/AbstractTrainerTool.java |  2 +-
 .../java/opennlp/tools/cmdline/ArgumentParser.java | 14 +++++---
 .../opennlp/tools/cmdline/BasicCmdLineTool.java    |  3 ++
 .../java/opennlp/tools/cmdline/CmdLineTool.java    | 17 +++------
 .../java/opennlp/tools/cmdline/CmdLineUtil.java    |  8 +++--
 .../tools/cmdline/DetailedFMeasureListener.java    | 14 +++++---
 .../tools/cmdline/EvaluationErrorPrinter.java      |  4 +++
 .../tools/cmdline/FineGrainedReportListener.java   | 42 ++++++++++------------
 .../java/opennlp/tools/cmdline/ModelLoader.java    |  2 ++
 .../opennlp/tools/cmdline/ObjectStreamFactory.java |  2 +-
 .../opennlp/tools/cmdline/PerformanceMonitor.java  | 12 ++++---
 .../tools/cmdline/StreamFactoryRegistry.java       |  6 ++--
 .../tools/cmdline/TerminateToolException.java      |  5 ++-
 .../opennlp/tools/cmdline/TypedCmdLineTool.java    |  1 +
 .../cmdline/chunker/ChunkerCrossValidatorTool.java |  2 ++
 .../cmdline/chunker/ChunkerEvaluatorTool.java      |  2 ++
 .../tools/cmdline/chunker/ChunkerMETool.java       |  3 ++
 .../tools/cmdline/chunker/ChunkerModelLoader.java  |  4 ++-
 .../tools/cmdline/chunker/ChunkerTrainerTool.java  |  3 ++
 .../tools/cmdline/chunker/TrainingParams.java      |  6 ++--
 .../dictionary/DictionaryBuilderParams.java        |  6 ++--
 .../cmdline/dictionary/DictionaryBuilderTool.java  |  3 ++
 .../cmdline/doccat/DoccatCrossValidatorTool.java   |  2 ++
 .../doccat/DoccatEvaluationErrorListener.java      |  1 -
 .../tools/cmdline/doccat/DoccatEvaluatorTool.java  |  7 +++-
 .../doccat/DoccatFineGrainedReportListener.java    |  4 ++-
 .../tools/cmdline/doccat/DoccatModelLoader.java    |  4 ++-
 .../tools/cmdline/doccat/TrainingParams.java       |  6 ++--
 .../cmdline/entitylinker/EntityLinkerTool.java     |  2 +-
 .../LanguageDetectorCrossValidatorTool.java        |  2 ++
 .../LanguageDetectorEvaluationErrorListener.java   |  1 -
 .../langdetect/LanguageDetectorEvaluatorTool.java  |  5 +++
 .../LanguageDetectorFineGrainedReportListener.java |  5 ++-
 .../langdetect/LanguageDetectorModelLoader.java    |  4 ++-
 .../tools/cmdline/langdetect/TrainingParams.java   |  6 ++--
 .../lemmatizer/LemmaEvaluationErrorListener.java   |  3 +-
 .../lemmatizer/LemmatizerEvaluatorTool.java        |  2 ++
 .../LemmatizerFineGrainedReportListener.java       |  6 ++--
 .../tools/cmdline/lemmatizer/LemmatizerMETool.java |  2 ++
 .../cmdline/lemmatizer/LemmatizerModelLoader.java  |  4 ++-
 .../cmdline/lemmatizer/LemmatizerTrainerTool.java  |  3 ++
 .../tools/cmdline/lemmatizer/TrainingParams.java   |  6 ++--
 .../namefind/NameEvaluationErrorListener.java      |  5 ++-
 .../cmdline/namefind/NameSampleCountersStream.java |  2 +-
 .../TokenNameFinderCrossValidatorTool.java         |  3 +-
 .../namefind/TokenNameFinderEvaluatorTool.java     |  5 +++
 .../TokenNameFinderFineGrainedReportListener.java  | 14 ++++----
 .../namefind/TokenNameFinderModelLoader.java       |  4 ++-
 .../cmdline/namefind/TokenNameFinderTool.java      |  2 ++
 .../namefind/TokenNameFinderTrainerTool.java       |  9 +++--
 .../tools/cmdline/namefind/TrainingParams.java     |  6 ++--
 .../tools/cmdline/params/BasicTrainingParams.java  |  6 ++--
 .../opennlp/tools/cmdline/params/CVParams.java     |  6 ++--
 .../params/DetailedFMeasureEvaluatorParams.java    |  6 ++--
 .../tools/cmdline/params/EncodingParameter.java    |  9 +++--
 .../tools/cmdline/params/EvaluatorParams.java      |  6 ++--
 .../cmdline/params/FineGrainedEvaluatorParams.java |  6 ++--
 .../tools/cmdline/params/TrainingToolParams.java   |  6 ++--
 .../cmdline/parser/CheckModelUpdaterTool.java      |  5 ++-
 .../tools/cmdline/parser/ModelUpdaterTool.java     |  1 +
 .../tools/cmdline/parser/ParserEvaluatorTool.java  |  2 +-
 .../tools/cmdline/parser/ParserModelLoader.java    |  4 ++-
 .../opennlp/tools/cmdline/parser/ParserTool.java   | 13 ++++---
 .../tools/cmdline/parser/ParserTrainerTool.java    |  2 ++
 .../cmdline/parser/TaggerModelReplacerTool.java    |  3 ++
 .../tools/cmdline/parser/TrainingParams.java       |  6 ++--
 .../cmdline/postag/POSEvaluationErrorListener.java |  5 ++-
 .../tools/cmdline/postag/POSModelLoader.java       |  4 ++-
 .../postag/POSTaggerCrossValidatorTool.java        |  2 ++
 .../cmdline/postag/POSTaggerEvaluatorTool.java     |  2 ++
 .../postag/POSTaggerFineGrainedReportListener.java |  8 +++--
 .../tools/cmdline/postag/POSTaggerTool.java        |  3 ++
 .../tools/cmdline/postag/POSTaggerTrainerTool.java |  2 ++
 .../tools/cmdline/postag/TrainingParams.java       |  6 ++--
 .../SentenceDetectorCrossValidatorTool.java        |  2 ++
 .../sentdetect/SentenceDetectorEvaluatorTool.java  |  3 +-
 .../cmdline/sentdetect/SentenceDetectorTool.java   |  5 ++-
 .../sentdetect/SentenceDetectorTrainerTool.java    |  2 ++
 .../SentenceEvaluationErrorListener.java           |  5 ++-
 .../cmdline/sentdetect/SentenceModelLoader.java    |  4 ++-
 .../tools/cmdline/sentdetect/TrainingParams.java   |  6 ++--
 .../tokenizer/DetokenEvaluationErrorListener.java  |  4 +--
 .../tokenizer/DictionaryDetokenizerTool.java       |  2 ++
 .../cmdline/tokenizer/SimpleTokenizerTool.java     |  3 ++
 .../tokenizer/TokenEvaluationErrorListener.java    |  5 ++-
 .../tokenizer/TokenizerCrossValidatorTool.java     |  2 ++
 .../tokenizer/TokenizerMEEvaluatorTool.java        |  3 +-
 .../tools/cmdline/tokenizer/TokenizerMETool.java   |  3 ++
 .../cmdline/tokenizer/TokenizerModelLoader.java    |  4 ++-
 .../cmdline/tokenizer/TokenizerTrainerTool.java    |  2 ++
 .../tools/cmdline/tokenizer/TrainingParams.java    |  6 ++--
 .../tools/formats/ad/ADNameSampleStream.java       |  2 ++
 .../tools/formats/ad/ADPOSSampleStream.java        |  2 ++
 .../tools/formats/ad/ADSentenceSampleStream.java   |  5 ++-
 .../opennlp/tools/formats/ad/ADSentenceStream.java |  2 ++
 .../formats/ad/PortugueseContractionUtility.java   |  2 ++
 .../sentdetect/EmptyLinePreprocessorStream.java    |  8 +++--
 .../java/opennlp/tools/util/SequenceValidator.java |  2 +-
 .../opennlp/tools/util/ext/ExtensionLoader.java    |  3 ++
 .../tools/util/ext/OSGiExtensionLoader.java        |  3 ++
 .../java/opennlp/tools/util/model/ModelUtil.java   |  4 ++-
 103 files changed, 347 insertions(+), 157 deletions(-)

diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/AbstractConverterTool.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/AbstractConverterTool.java
index f031d7d7..01859335 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/AbstractConverterTool.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/AbstractConverterTool.java
@@ -25,8 +25,8 @@ import opennlp.tools.util.ObjectStream;
 /**
  * Base class for format conversion tools.
  *
- * @param <T> class of data sample the tool converts, for example {@link opennlp.tools.postag
- * .POSSample}
+ * @param <T> The class of data sample the tool converts,
+ *           for example {@link opennlp.tools.postag.POSSample}
  */
 public abstract class AbstractConverterTool<T,P> extends TypedCmdLineTool<T,P> {
 
@@ -39,6 +39,7 @@ public abstract class AbstractConverterTool<T,P> extends TypedCmdLineTool<T,P> {
     super(sampleType);
   }
 
+  @Override
   public String getShortDescription() {
     Map<String, ObjectStreamFactory<T,P>> factories = StreamFactoryRegistry.getFactories(type);
     StringBuilder help = new StringBuilder();
@@ -67,6 +68,7 @@ public abstract class AbstractConverterTool<T,P> extends TypedCmdLineTool<T,P> {
     return "Usage: " + CLI.CMD + " " + getName() + " " + format + " " + usage;
   }
 
+  @Override
   public String getHelp() {
     Map<String, ObjectStreamFactory<T,P>> factories = StreamFactoryRegistry.getFactories(type);
     StringBuilder help = new StringBuilder("help|");
@@ -78,10 +80,12 @@ public abstract class AbstractConverterTool<T,P> extends TypedCmdLineTool<T,P> {
     return createHelpString(help.substring(0, help.length() - 1), "[help|options...]");
   }
 
+  @Override
   public String getHelp(String format) {
     return getHelp();
   }
 
+  @Override
   public void run(String format, String[] args) {
     if (0 == args.length) {
       System.out.println(getHelp());
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/AbstractEvaluatorTool.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/AbstractEvaluatorTool.java
index b72f2876..8f7d45af 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/AbstractEvaluatorTool.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/AbstractEvaluatorTool.java
@@ -22,7 +22,7 @@ import opennlp.tools.util.ObjectStream;
 /**
  * Base class for evaluator tools.
  */
-public class AbstractEvaluatorTool<T, P> extends AbstractTypedParamTool<T, P> {
+public abstract class AbstractEvaluatorTool<T, P> extends AbstractTypedParamTool<T, P> {
 
   protected P params;
   protected ObjectStreamFactory<T, P> factory;
@@ -38,6 +38,7 @@ public class AbstractEvaluatorTool<T, P> extends AbstractTypedParamTool<T, P> {
     super(sampleType, params);
   }
 
+  @Override
   public void run(String format, String[] args) {
     validateAllArgs(args, this.paramsClass, format);
 
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/AbstractTrainerTool.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/AbstractTrainerTool.java
index f87aa45c..2f4719af 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/AbstractTrainerTool.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/AbstractTrainerTool.java
@@ -25,7 +25,7 @@ import opennlp.tools.util.TrainingParameters;
 /**
  * Base class for trainer tools.
  */
-public class AbstractTrainerTool<T, P> extends AbstractEvaluatorTool<T, P> {
+public abstract class AbstractTrainerTool<T, P> extends AbstractEvaluatorTool<T, P> {
 
   protected TrainingParameters mlParams;
 
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/ArgumentParser.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/ArgumentParser.java
index beee3cfe..e2977502 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/ArgumentParser.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/ArgumentParser.java
@@ -34,6 +34,8 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
+import opennlp.tools.commons.Internal;
+
 /**
  * Parser for command line arguments. The parser creates a dynamic proxy which
  * can be access via a command line argument interface.
@@ -47,6 +49,7 @@ import java.util.Set;
  * <p>
  * <b>Note:</b> Do not use this class, internal use only!
  */
+@Internal
 public class ArgumentParser {
 
   public @Retention(RetentionPolicy.RUNTIME) @interface OptionalParameter {
@@ -70,6 +73,7 @@ public class ArgumentParser {
 
   private static class IntegerArgumentFactory  implements ArgumentFactory {
 
+    @Override
     public Object parseArgument(Method method, String argName, String argValue) {
 
       Object value;
@@ -88,6 +92,7 @@ public class ArgumentParser {
 
   private static class BooleanArgumentFactory implements ArgumentFactory {
 
+    @Override
     public Object parseArgument(Method method, String argName, String argValue) {
       return Boolean.parseBoolean(argValue);
     }
@@ -95,6 +100,7 @@ public class ArgumentParser {
 
   private static class StringArgumentFactory implements ArgumentFactory {
 
+    @Override
     public Object parseArgument(Method method, String argName, String argValue) {
       return argValue;
     }
@@ -102,6 +108,7 @@ public class ArgumentParser {
 
   private static class FileArgumentFactory implements ArgumentFactory {
 
+    @Override
     public Object parseArgument(Method method, String argName, String argValue) {
       return new File(argValue);
     }
@@ -109,6 +116,7 @@ public class ArgumentParser {
 
   private static class CharsetArgumentFactory implements ArgumentFactory {
 
+    @Override
     public Object parseArgument(Method method, String argName, String charsetName) {
 
       try {
@@ -135,6 +143,7 @@ public class ArgumentParser {
       this.arguments = arguments;
     }
 
+    @Override
     public Object invoke(Object proxy, Method method, Object[] args)
         throws Throwable {
 
@@ -293,10 +302,7 @@ public class ArgumentParser {
               duplicateFilter.add(paramName);
             }
 
-            boolean isOptional = false;
-
-            if (optional != null)
-              isOptional = true;
+            boolean isOptional = optional != null;
 
             Argument arg = new Argument(paramName.substring(1),
                 desc.valueName(), desc.description(), isOptional);
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/BasicCmdLineTool.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/BasicCmdLineTool.java
index f320986b..518f5481 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/BasicCmdLineTool.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/BasicCmdLineTool.java
@@ -17,11 +17,14 @@
 
 package opennlp.tools.cmdline;
 
+import opennlp.tools.commons.Internal;
+
 /**
  * A simple tool which can be executed from the command line.
  * <p>
  * <b>Note:</b> Do not use this class, internal use only!
  */
+@Internal
 public abstract class BasicCmdLineTool extends CmdLineTool {
 
   /**
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/CmdLineTool.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/CmdLineTool.java
index 149de5c4..d0b2d1b5 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/CmdLineTool.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/CmdLineTool.java
@@ -26,10 +26,8 @@ public abstract class CmdLineTool {
   }
 
   /**
-   * Retrieves the name of the training data tool. The name (used as command)
-   * must not contain white spaces.
-   *
-   * @return the name of the command line tool
+   * @return Retrieves the name of the command line tool. The name (used as command)
+   *         must not contain white spaces.
    */
   public String getName() {
     if (getClass().getName().endsWith("Tool")) {
@@ -40,8 +38,7 @@ public abstract class CmdLineTool {
   }
 
   /**
-   * Returns whether the tool has any command line params.
-   * @return whether the tool has any command line params
+   * @return Retrieves whether the tool has any command line params
    */
   public boolean hasParams() {
     return true;
@@ -57,9 +54,7 @@ public abstract class CmdLineTool {
   }
 
   /**
-   * Retrieves a description on how to use the tool.
-   *
-   * @return a description on how to use the tool
+   * @return Retrieves a description on how to use the tool
    */
   public abstract String getHelp();
 
@@ -72,9 +67,7 @@ public abstract class CmdLineTool {
   }
 
   /**
-   * Retrieves a short description of what the tool does.
-   *
-   * @return a short description of what the tool does
+   * @return Retrieves a short description of what the tool does
    */
   public String getShortDescription() {
     return "";
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/CmdLineUtil.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/CmdLineUtil.java
index 8e304ee6..863a86de 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/CmdLineUtil.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/CmdLineUtil.java
@@ -30,6 +30,7 @@ import java.util.Arrays;
 import java.util.List;
 import java.util.Locale;
 
+import opennlp.tools.commons.Internal;
 import opennlp.tools.ml.TrainerFactory;
 import opennlp.tools.util.InputStreamFactory;
 import opennlp.tools.util.MarkableFileInputStreamFactory;
@@ -41,6 +42,7 @@ import opennlp.tools.util.model.BaseModel;
  * <p>
  * <b>Note:</b> Do not use this class, internal use only!
  */
+@Internal
 public final class CmdLineUtil {
 
   static final int IO_BUFFER_SIZE = 1024 * 1024;
@@ -90,10 +92,10 @@ public final class CmdLineUtil {
    * The method does nothing if it is possible to write otherwise
    * it prints an appropriate error message and a {@link TerminateToolException} is thrown.
    * <p>
-   * Computing the contents of an output file (e.g. ME model) can be very time consuming.
+   * Computing the contents of an output file (e.g. ME model) can be very time-consuming.
    * Prior to this computation it should be checked once that writing this output file is
-   * possible to be able to fail fast if not. If this validation is only done after a time
-   * consuming computation it could frustrate the user.
+   * possible to be able to fail fast if not. If this validation is only done after a
+   * time-consuming computation it could frustrate the user.
    *
    * @param name human-friendly file name. for example perceptron model
    * @param outFile file
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/DetailedFMeasureListener.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/DetailedFMeasureListener.java
index e354dd35..d89f975d 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/DetailedFMeasureListener.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/DetailedFMeasureListener.java
@@ -27,6 +27,7 @@ import java.util.Set;
 import java.util.SortedSet;
 import java.util.TreeSet;
 
+import opennlp.tools.commons.Internal;
 import opennlp.tools.util.Span;
 import opennlp.tools.util.eval.EvaluationMonitor;
 
@@ -36,15 +37,17 @@ import opennlp.tools.util.eval.EvaluationMonitor;
  * <p>
  * <b>Note:</b> Do not use this class, internal use only!
  */
+@Internal
 public abstract class DetailedFMeasureListener<T> implements
     EvaluationMonitor<T> {
 
   private int samples = 0;
-  private Stats generalStats = new Stats();
-  private Map<String, Stats> statsForOutcome = new HashMap<>();
+  private final Stats generalStats = new Stats();
+  private final Map<String, Stats> statsForOutcome = new HashMap<>();
 
   protected abstract Span[] asSpanArray(T sample);
 
+  @Override
   public void correctlyClassified(T reference, T prediction) {
     samples++;
     // add all true positives!
@@ -54,6 +57,7 @@ public abstract class DetailedFMeasureListener<T> implements
     }
   }
 
+  @Override
   public void misclassified(T reference, T prediction) {
     samples++;
     Span[] references = asSpanArray(reference);
@@ -159,6 +163,8 @@ public abstract class DetailedFMeasureListener<T> implements
   }
 
   private class F1Comparator implements Comparator<String> {
+
+    @Override
     public int compare(String o1, String o2) {
       if (o1.equals(o2))
         return 0;
@@ -184,9 +190,9 @@ public abstract class DetailedFMeasureListener<T> implements
   }
 
   /**
-   * Store the statistics.
+   * Holds the statistics.
    */
-  private class Stats {
+  private static class Stats {
 
     // maybe we could use FMeasure class, but it wouldn't allow us to get
     // details like total number of false positives and true positives.
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/EvaluationErrorPrinter.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/EvaluationErrorPrinter.java
index 45408991..81130e57 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/EvaluationErrorPrinter.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/EvaluationErrorPrinter.java
@@ -23,12 +23,14 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 
+import opennlp.tools.commons.Internal;
 import opennlp.tools.util.Span;
 import opennlp.tools.util.eval.EvaluationMonitor;
 
 /**
  * <b>Note:</b> Do not use this class, internal use only!
  */
+@Internal
 public abstract class EvaluationErrorPrinter<T> implements EvaluationMonitor<T> {
 
   protected PrintStream printStream;
@@ -231,10 +233,12 @@ public abstract class EvaluationErrorPrinter<T> implements EvaluationMonitor<T>
     }
   }
 
+  @Override
   public void correctlyClassified(T reference, T prediction) {
     // do nothing
   }
 
+  @Override
   public abstract void misclassified(T reference, T prediction) ;
 
 }
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/FineGrainedReportListener.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/FineGrainedReportListener.java
index 66abe647..f1fbc032 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/FineGrainedReportListener.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/FineGrainedReportListener.java
@@ -53,7 +53,7 @@ public abstract class FineGrainedReportListener {
 
   /**
    * Writes the report to the {@link OutputStream}. Should be called only after
-   * the evaluation process
+   * the evaluation process.
    */
   public FineGrainedReportListener(OutputStream outputStream) {
     this.printStream = new PrintStream(outputStream);
@@ -171,8 +171,7 @@ public abstract class FineGrainedReportListener {
     return stats.getConfusionMatrix(token);
   }
 
-  private String matrixToString(SortedSet<String> tagset, double[][] data,
-                                boolean filter) {
+  private String matrixToString(SortedSet<String> tagset, double[][] data, boolean filter) {
     // we dont want to print trivial cases (acc=1)
     int initialIndex = 0;
     String[] tags = tagset.toArray(new String[tagset.size()]);
@@ -223,25 +222,19 @@ public abstract class FineGrainedReportListener {
   protected void printGeneralStatistics() {
     printHeader("Evaluation summary");
     printStream.append(
-        String.format("%21s: %6s", "Number of sentences",
-            Long.toString(getNumberOfSentences()))).append("\n");
+        String.format("%21s: %6s", "Number of sentences", getNumberOfSentences())).append("\n");
     printStream.append(
-        String.format("%21s: %6s", "Min sentence size", getMinSentenceSize()))
-        .append("\n");
+        String.format("%21s: %6s", "Min sentence size", getMinSentenceSize())).append("\n");
     printStream.append(
-        String.format("%21s: %6s", "Max sentence size", getMaxSentenceSize()))
-        .append("\n");
+        String.format("%21s: %6s", "Max sentence size", getMaxSentenceSize())).append("\n");
     printStream.append(
         String.format("%21s: %6s", "Average sentence size",
-            MessageFormat.format("{0,number,#.##}", getAverageSentenceSize())))
-        .append("\n");
+            MessageFormat.format("{0,number,#.##}", getAverageSentenceSize()))).append("\n");
     printStream.append(
-        String.format("%21s: %6s", "Tags count", getNumberOfTags())).append(
-        "\n");
+        String.format("%21s: %6s", "Tags count", getNumberOfTags())).append("\n");
     printStream.append(
         String.format("%21s: %6s", "Accuracy",
-            MessageFormat.format("{0,number,#.##%}", getAccuracy()))).append(
-        "\n");
+            MessageFormat.format("{0,number,#.##%}", getAccuracy()))).append("\n");
     printFooter("Evaluation Corpus Statistics");
   }
 
@@ -266,8 +259,7 @@ public abstract class FineGrainedReportListener {
     String format = "| %3s | %6s | %" + maxTokSize + "s |";
 
     printLine(tableSize);
-    printStream.append(String.format(format, "Pos", "Count", "Token")).append(
-        "\n");
+    printStream.append(String.format(format, "Pos", "Count", "Token")).append("\n");
     printLine(tableSize);
 
     // get the first 20 errors
@@ -306,8 +298,7 @@ public abstract class FineGrainedReportListener {
     String format = "| %" + maxTokenSize + "s | %6s | %5s | %7s |\n";
 
     printLine(tableSize);
-    printStream.append(String.format(format, "Token", "Errors", "Count",
-        "% Err"));
+    printStream.append(String.format(format, "Token", "Errors", "Count", "% Err"));
     printLine(tableSize);
 
     // get the first 20 errors
@@ -463,6 +454,7 @@ public abstract class FineGrainedReportListener {
       this.confusionMatrix = confusionMatrix;
     }
 
+    @Override
     public int compare(String o1, String o2) {
       if (o1.equals(o2)) {
         return 0;
@@ -491,7 +483,7 @@ public abstract class FineGrainedReportListener {
   public static class GroupedMatrixLabelComparator implements Comparator<String> {
 
     private final HashMap<String, Double> categoryAccuracy;
-    private Map<String, ConfusionMatrixLine> confusionMatrix;
+    private final Map<String, ConfusionMatrixLine> confusionMatrix;
 
     public GroupedMatrixLabelComparator(Map<String, ConfusionMatrixLine> confusionMatrix) {
       this.confusionMatrix = confusionMatrix;
@@ -512,6 +504,7 @@ public abstract class FineGrainedReportListener {
       }
     }
 
+    @Override
     public int compare(String o1, String o2) {
       if (o1.equals(o2)) {
         return 0;
@@ -573,7 +566,7 @@ public abstract class FineGrainedReportListener {
 
   public static class SimpleLabelComparator implements Comparator<String> {
 
-    private Map<String, Counter> map;
+    private final Map<String, Counter> map;
 
     public SimpleLabelComparator(Map<String, Counter> map) {
       this.map = map;
@@ -603,7 +596,7 @@ public abstract class FineGrainedReportListener {
   public static class GroupedLabelComparator implements Comparator<String> {
 
     private final HashMap<String, Integer> categoryCounter;
-    private Map<String, Counter> labelCounter;
+    private final Map<String, Counter> labelCounter;
 
     public GroupedLabelComparator(Map<String, Counter> map) {
       this.labelCounter = map;
@@ -624,6 +617,7 @@ public abstract class FineGrainedReportListener {
       }
     }
 
+    @Override
     public int compare(String o1, String o2) {
       if (o1.equals(o2)) {
         return 0;
@@ -684,8 +678,8 @@ public abstract class FineGrainedReportListener {
    */
   public static class ConfusionMatrixLine {
 
-    private Map<String, Counter> line = new HashMap<>();
-    private String ref;
+    private final Map<String, Counter> line = new HashMap<>();
+    private final String ref;
     private int total = 0;
     private int correct = 0;
     private double acc = -1;
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/ModelLoader.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/ModelLoader.java
index 183164fe..e44a8737 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/ModelLoader.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/ModelLoader.java
@@ -23,6 +23,7 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.util.Objects;
 
+import opennlp.tools.commons.Internal;
 import opennlp.tools.util.InvalidFormatException;
 
 /**
@@ -32,6 +33,7 @@ import opennlp.tools.util.InvalidFormatException;
  *
  * @param <T>
  */
+@Internal
 public abstract class ModelLoader<T> {
 
   private final String modelName;
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/ObjectStreamFactory.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/ObjectStreamFactory.java
index b2f9fb19..27fe710d 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/ObjectStreamFactory.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/ObjectStreamFactory.java
@@ -31,7 +31,7 @@ public interface ObjectStreamFactory<T,P> {
   Class<P> getParameters();
 
   /**
-   * Creates the <code>ObjectStream</code>.
+   * Creates the {@link ObjectStream}.
    *
    * @param args arguments
    * @return ObjectStream instance
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/PerformanceMonitor.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/PerformanceMonitor.java
index f7a869e9..7a66de95 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/PerformanceMonitor.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/PerformanceMonitor.java
@@ -24,19 +24,22 @@ import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.ScheduledFuture;
 import java.util.concurrent.TimeUnit;
 
+import opennlp.tools.commons.Internal;
+
 /**
  * The {@link PerformanceMonitor} measures increments to a counter.
  * During the computation it prints out current and average throughput
  * per second. After the computation is done it prints a final performance
  * report.
  * <p>
- * <b>Note:</b>
- * This class is not thread safe. <br>
- * Do not use this class, internal use only!
+ * <b>Note:</b> This class is not thread safe.
+ * <p>
+ * <b>Note:</b> Do not use this class, internal use only!
  */
+@Internal
 public class PerformanceMonitor {
 
-  private ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1, runnable -> {
+  private final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1, runnable -> {
     Thread thread = new Thread(runnable);
     thread.setName("opennlp.tools.cmdline.PerformanceMonitor");
     thread.setDaemon(true);
@@ -99,6 +102,7 @@ public class PerformanceMonitor {
       private long lastTimeStamp = startTime;
       private int lastCount = counter;
 
+      @Override
       public void run() {
 
         int deltaCount = counter - lastCount;
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/StreamFactoryRegistry.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/StreamFactoryRegistry.java
index 957ee4ca..c4bef61f 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/StreamFactoryRegistry.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/StreamFactoryRegistry.java
@@ -17,6 +17,7 @@
 
 package opennlp.tools.cmdline;
 
+import java.lang.reflect.InvocationTargetException;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -227,8 +228,9 @@ public final class StreamFactoryRegistry {
         // Otherwise there will be class cast exceptions later in the flow
 
         try {
-          return (ObjectStreamFactory<T,P>) factoryClazz.newInstance();
-        } catch (InstantiationException | IllegalAccessException e) {
+          return (ObjectStreamFactory<T,P>) factoryClazz.getDeclaredConstructor().newInstance();
+        } catch (InstantiationException | NoSuchMethodException |
+                 InvocationTargetException | IllegalAccessException e) {
           return null;
         }
 
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/TerminateToolException.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/TerminateToolException.java
index 1ba69faa..72421a20 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/TerminateToolException.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/TerminateToolException.java
@@ -17,6 +17,8 @@
 
 package opennlp.tools.cmdline;
 
+import opennlp.tools.commons.Internal;
+
 /**
  * Exception to terminate the execution of a command line tool.
  * <p>
@@ -30,9 +32,10 @@ package opennlp.tools.cmdline;
  * <p>
  * <b>Note:</b> Do not use this class, internal use only!
  */
-@SuppressWarnings("serial")
+@Internal
 public class TerminateToolException extends RuntimeException {
 
+  private static final long serialVersionUID = -8501408388025885818L;
   private final int code;
   private final String message;
 
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/TypedCmdLineTool.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/TypedCmdLineTool.java
index 529e0f9c..e3f8cbe2 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/TypedCmdLineTool.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/TypedCmdLineTool.java
@@ -105,6 +105,7 @@ public abstract class TypedCmdLineTool<T, P>
         ArgumentParser.createUsage(argProxyInterfaces);
   }
 
+  @Override
   public String getHelp() {
     return getHelp("");
   }
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/chunker/ChunkerCrossValidatorTool.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/chunker/ChunkerCrossValidatorTool.java
index 7485ccac..f1cb962f 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/chunker/ChunkerCrossValidatorTool.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/chunker/ChunkerCrossValidatorTool.java
@@ -44,10 +44,12 @@ public final class ChunkerCrossValidatorTool
     super(ChunkSample.class, CVToolParams.class);
   }
 
+  @Override
   public String getShortDescription() {
     return "K-fold cross validator for the chunker";
   }
 
+  @Override
   public void run(String format, String[] args) {
     super.run(format, args);
 
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/chunker/ChunkerEvaluatorTool.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/chunker/ChunkerEvaluatorTool.java
index 54854da3..c247f6e5 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/chunker/ChunkerEvaluatorTool.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/chunker/ChunkerEvaluatorTool.java
@@ -45,10 +45,12 @@ public final class ChunkerEvaluatorTool
     super(ChunkSample.class, EvalToolParams.class);
   }
 
+  @Override
   public String getShortDescription() {
     return "Measures the performance of the Chunker model with the reference data";
   }
 
+  @Override
   public void run(String format, String[] args) {
     super.run(format, args);
 
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/chunker/ChunkerMETool.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/chunker/ChunkerMETool.java
index c00dc186..f310893c 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/chunker/ChunkerMETool.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/chunker/ChunkerMETool.java
@@ -35,14 +35,17 @@ import opennlp.tools.util.PlainTextByLineStream;
 
 public class ChunkerMETool extends BasicCmdLineTool {
 
+  @Override
   public String getShortDescription() {
     return "learnable chunker";
   }
 
+  @Override
   public String getHelp() {
     return "Usage: " + CLI.CMD + " " + getName() + " model < sentences";
   }
 
+  @Override
   public void run(String[] args) {
     if (args.length != 1) {
       System.out.println(getHelp());
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/chunker/ChunkerModelLoader.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/chunker/ChunkerModelLoader.java
index 95b33241..94891409 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/chunker/ChunkerModelLoader.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/chunker/ChunkerModelLoader.java
@@ -22,12 +22,14 @@ import java.io.InputStream;
 
 import opennlp.tools.chunker.ChunkerModel;
 import opennlp.tools.cmdline.ModelLoader;
+import opennlp.tools.commons.Internal;
 
 /**
- * Loads a Chunker Model for the command line tools.
+ * Loads a {@link ChunkerModel} for the command line tools.
  * <p>
  * <b>Note:</b> Do not use this class, internal use only!
  */
+@Internal
 public class ChunkerModelLoader extends ModelLoader<ChunkerModel> {
 
   public ChunkerModelLoader() {
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/chunker/ChunkerTrainerTool.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/chunker/ChunkerTrainerTool.java
index 1e69a0a2..f8e25a70 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/chunker/ChunkerTrainerTool.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/chunker/ChunkerTrainerTool.java
@@ -40,14 +40,17 @@ public class ChunkerTrainerTool
     super(ChunkSample.class, TrainerToolParams.class);
   }
 
+  @Override
   public String getName() {
     return "ChunkerTrainerME";
   }
 
+  @Override
   public String getShortDescription() {
     return "trainer for the learnable chunker";
   }
 
+  @Override
   public void run(String format, String[] args) {
     super.run(format, args);
 
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/chunker/TrainingParams.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/chunker/TrainingParams.java
index d2305cb7..651427bb 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/chunker/TrainingParams.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/chunker/TrainingParams.java
@@ -20,12 +20,14 @@ package opennlp.tools.cmdline.chunker;
 import opennlp.tools.cmdline.ArgumentParser.OptionalParameter;
 import opennlp.tools.cmdline.ArgumentParser.ParameterDescription;
 import opennlp.tools.cmdline.params.BasicTrainingParams;
+import opennlp.tools.commons.Internal;
 
 /**
  * TrainingParams for Chunker.
- *
- * Note: Do not use this class, internal use only!
+ * <p>
+ * <b>Note:</b> Do not use this class, internal use only!
  */
+@Internal
 interface TrainingParams extends BasicTrainingParams {
 
   @ParameterDescription(valueName = "factoryName",
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/dictionary/DictionaryBuilderParams.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/dictionary/DictionaryBuilderParams.java
index 29bf7009..6232cdac 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/dictionary/DictionaryBuilderParams.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/dictionary/DictionaryBuilderParams.java
@@ -21,12 +21,14 @@ import java.io.File;
 
 import opennlp.tools.cmdline.ArgumentParser.ParameterDescription;
 import opennlp.tools.cmdline.params.EncodingParameter;
+import opennlp.tools.commons.Internal;
 
 /**
  * Params for Dictionary tools.
- *
- * Note: Do not use this class, internal use only!
+ * <p>
+ * <b>Note:</b> Do not use this class, internal use only!
  */
+@Internal
 interface DictionaryBuilderParams extends EncodingParameter {
 
   @ParameterDescription(valueName = "in", description = "Plain file with one entry per line")
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/dictionary/DictionaryBuilderTool.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/dictionary/DictionaryBuilderTool.java
index 91c8d19c..20c046dd 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/dictionary/DictionaryBuilderTool.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/dictionary/DictionaryBuilderTool.java
@@ -35,14 +35,17 @@ public class DictionaryBuilderTool extends BasicCmdLineTool {
   interface Params extends DictionaryBuilderParams {
   }
 
+  @Override
   public String getShortDescription() {
     return "builds a new dictionary";
   }
 
+  @Override
   public String getHelp() {
     return getBasicHelp(Params.class);
   }
 
+  @Override
   public void run(String[] args) {
     Params params = validateAndParseParams(args, Params.class);
 
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/doccat/DoccatCrossValidatorTool.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/doccat/DoccatCrossValidatorTool.java
index a73aba75..53501578 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/doccat/DoccatCrossValidatorTool.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/doccat/DoccatCrossValidatorTool.java
@@ -49,10 +49,12 @@ public final class DoccatCrossValidatorTool extends
     super(DocumentSample.class, CVToolParams.class);
   }
 
+  @Override
   public String getShortDescription() {
     return "K-fold cross validator for the learnable Document Categorizer";
   }
 
+  @Override
   public void run(String format, String[] args) {
     super.run(format, args);
 
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/doccat/DoccatEvaluationErrorListener.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/doccat/DoccatEvaluationErrorListener.java
index 40b5faee..bff05b7d 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/doccat/DoccatEvaluationErrorListener.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/doccat/DoccatEvaluationErrorListener.java
@@ -27,7 +27,6 @@ import opennlp.tools.util.eval.EvaluationMonitor;
 /**
  * A default implementation of {@link EvaluationMonitor} that prints to an
  * output stream.
- *
  */
 public class DoccatEvaluationErrorListener extends
     EvaluationErrorPrinter<DocumentSample> implements DoccatEvaluationMonitor {
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/doccat/DoccatEvaluatorTool.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/doccat/DoccatEvaluatorTool.java
index d76b98d1..0c57a73b 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/doccat/DoccatEvaluatorTool.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/doccat/DoccatEvaluatorTool.java
@@ -50,10 +50,12 @@ public final class DoccatEvaluatorTool extends
     super(DocumentSample.class, EvalToolParams.class);
   }
 
+  @Override
   public String getShortDescription() {
     return "Measures the performance of the Doccat model with the reference data";
   }
 
+  @Override
   public void run(String format, String[] args) {
     super.run(format, args);
 
@@ -86,17 +88,20 @@ public final class DoccatEvaluatorTool extends
 
     final PerformanceMonitor monitor = new PerformanceMonitor("doc");
 
-    try (ObjectStream<DocumentSample> measuredSampleStream = new ObjectStream<DocumentSample>() {
+    try (ObjectStream<DocumentSample> measuredSampleStream = new ObjectStream<>() {
 
+      @Override
       public DocumentSample read() throws IOException {
         monitor.incrementCounter();
         return sampleStream.read();
       }
 
+      @Override
       public void reset() throws IOException {
         sampleStream.reset();
       }
 
+      @Override
       public void close() throws IOException {
         sampleStream.close();
       }
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/doccat/DoccatFineGrainedReportListener.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/doccat/DoccatFineGrainedReportListener.java
index 7cac56c5..07d1fd30 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/doccat/DoccatFineGrainedReportListener.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/doccat/DoccatFineGrainedReportListener.java
@@ -47,11 +47,12 @@ public class DoccatFineGrainedReportListener
   }
 
   // methods inherited from EvaluationMonitor
-
+  @Override
   public void misclassified(DocumentSample reference, DocumentSample prediction) {
     statsAdd(reference, prediction);
   }
 
+  @Override
   public void correctlyClassified(DocumentSample reference, DocumentSample prediction) {
     statsAdd(reference, prediction);
   }
@@ -60,6 +61,7 @@ public class DoccatFineGrainedReportListener
     getStats().add(reference.getText(), reference.getCategory(), prediction.getCategory());
   }
 
+  @Override
   public void writeReport() {
     printGeneralStatistics();
     printTagsErrorRank();
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/doccat/DoccatModelLoader.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/doccat/DoccatModelLoader.java
index 0523954e..50172d3d 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/doccat/DoccatModelLoader.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/doccat/DoccatModelLoader.java
@@ -21,13 +21,15 @@ import java.io.IOException;
 import java.io.InputStream;
 
 import opennlp.tools.cmdline.ModelLoader;
+import opennlp.tools.commons.Internal;
 import opennlp.tools.doccat.DoccatModel;
 
 /**
- * Loads a Document Categorizer Model for the command line tools.
+ * Loads a {@link DoccatModel} for the command line tools.
  * <p>
  * <b>Note:</b> Do not use this class, internal use only!
  */
+@Internal
 public class DoccatModelLoader extends ModelLoader<DoccatModel> {
 
   public DoccatModelLoader() {
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/doccat/TrainingParams.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/doccat/TrainingParams.java
index cb5a39b2..723ac10f 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/doccat/TrainingParams.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/doccat/TrainingParams.java
@@ -20,12 +20,14 @@ package opennlp.tools.cmdline.doccat;
 import opennlp.tools.cmdline.ArgumentParser.OptionalParameter;
 import opennlp.tools.cmdline.ArgumentParser.ParameterDescription;
 import opennlp.tools.cmdline.params.BasicTrainingParams;
+import opennlp.tools.commons.Internal;
 
 /**
  * TrainingParams for DocCat.
- *
- * Note: Do not use this class, internal use only!
+ * <p>
+ * <b>Note:</b> Do not use this class, internal use only!
  */
+@Internal
 interface TrainingParams extends BasicTrainingParams {
 
   @ParameterDescription(valueName = "fg",
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/entitylinker/EntityLinkerTool.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/entitylinker/EntityLinkerTool.java
index 8791642f..9270ff35 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/entitylinker/EntityLinkerTool.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/entitylinker/EntityLinkerTool.java
@@ -50,7 +50,7 @@ public class EntityLinkerTool extends BasicCmdLineTool {
       System.out.println(getHelp());
     }
     else {
-      // TODO: Ask Mark if we can remove the type, the user knows upfront if he tries
+      // TODO: Ask Mark if we can remove the type, the user knows upfront if s/he tries
       // to link place names or company mentions ...
       String entityType = "location";
 
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/langdetect/LanguageDetectorCrossValidatorTool.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/langdetect/LanguageDetectorCrossValidatorTool.java
index bf68fbb6..0db9d74a 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/langdetect/LanguageDetectorCrossValidatorTool.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/langdetect/LanguageDetectorCrossValidatorTool.java
@@ -48,10 +48,12 @@ public final class LanguageDetectorCrossValidatorTool extends
     super(LanguageSample.class, CVToolParams.class);
   }
 
+  @Override
   public String getShortDescription() {
     return "K-fold cross validator for the learnable Language Detector";
   }
 
+  @Override
   public void run(String format, String[] args) {
     super.run(format, args);
 
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/langdetect/LanguageDetectorEvaluationErrorListener.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/langdetect/LanguageDetectorEvaluationErrorListener.java
index 386117fe..68672a99 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/langdetect/LanguageDetectorEvaluationErrorListener.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/langdetect/LanguageDetectorEvaluationErrorListener.java
@@ -27,7 +27,6 @@ import opennlp.tools.util.eval.EvaluationMonitor;
 /**
  * A default implementation of {@link EvaluationMonitor} that prints to an
  * output stream.
- *
  */
 public class LanguageDetectorEvaluationErrorListener extends
     EvaluationErrorPrinter<LanguageSample> implements LanguageDetectorEvaluationMonitor {
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/langdetect/LanguageDetectorEvaluatorTool.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/langdetect/LanguageDetectorEvaluatorTool.java
index 600e5a5a..f3c4c596 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/langdetect/LanguageDetectorEvaluatorTool.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/langdetect/LanguageDetectorEvaluatorTool.java
@@ -49,10 +49,12 @@ public final class LanguageDetectorEvaluatorTool extends
     super(LanguageSample.class, EvalToolParams.class);
   }
 
+  @Override
   public String getShortDescription() {
     return "Measures the performance of the Language Detector model with the reference data";
   }
 
+  @Override
   public void run(String format, String[] args) {
     super.run(format, args);
 
@@ -87,15 +89,18 @@ public final class LanguageDetectorEvaluatorTool extends
 
     try (ObjectStream<LanguageSample> measuredSampleStream = new ObjectStream<LanguageSample>() {
 
+      @Override
       public LanguageSample read() throws IOException {
         monitor.incrementCounter();
         return sampleStream.read();
       }
 
+      @Override
       public void reset() throws IOException {
         sampleStream.reset();
       }
 
+      @Override
       public void close() throws IOException {
         sampleStream.close();
       }
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/langdetect/LanguageDetectorFineGrainedReportListener.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/langdetect/LanguageDetectorFineGrainedReportListener.java
index b1894fc1..08394abb 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/langdetect/LanguageDetectorFineGrainedReportListener.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/langdetect/LanguageDetectorFineGrainedReportListener.java
@@ -27,7 +27,7 @@ import opennlp.tools.langdetect.LanguageSample;
  * Generates a detailed report for the POS Tagger.
  * <p>
  * It is possible to use it from an API and access the statistics using the
- * provided getters
+ * provided getters.
  */
 public class LanguageDetectorFineGrainedReportListener
     extends FineGrainedReportListener implements LanguageDetectorEvaluationMonitor {
@@ -48,10 +48,12 @@ public class LanguageDetectorFineGrainedReportListener
 
   // methods inherited from EvaluationMonitor
 
+  @Override
   public void misclassified(LanguageSample reference, LanguageSample prediction) {
     statsAdd(reference, prediction);
   }
 
+  @Override
   public void correctlyClassified(LanguageSample reference, LanguageSample prediction) {
     statsAdd(reference, prediction);
   }
@@ -61,6 +63,7 @@ public class LanguageDetectorFineGrainedReportListener
         reference.getLanguage().getLang(), prediction.getLanguage().getLang());
   }
 
+  @Override
   public void writeReport() {
     printGeneralStatistics();
     printTagsErrorRank();
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/langdetect/LanguageDetectorModelLoader.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/langdetect/LanguageDetectorModelLoader.java
index c8700fdd..5b1ab93e 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/langdetect/LanguageDetectorModelLoader.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/langdetect/LanguageDetectorModelLoader.java
@@ -21,13 +21,15 @@ import java.io.IOException;
 import java.io.InputStream;
 
 import opennlp.tools.cmdline.ModelLoader;
+import opennlp.tools.commons.Internal;
 import opennlp.tools.langdetect.LanguageDetectorModel;
 
 /**
- * Loads a Language Detector Model for the command line tools.
+ * Loads a {@link LanguageDetectorModel} for the command line tools.
  * <p>
  * <b>Note:</b> Do not use this class, internal use only!
  */
+@Internal
 public class LanguageDetectorModelLoader extends ModelLoader<LanguageDetectorModel> {
 
   public LanguageDetectorModelLoader() {
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/langdetect/TrainingParams.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/langdetect/TrainingParams.java
index 2937c3d3..caafe6f3 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/langdetect/TrainingParams.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/langdetect/TrainingParams.java
@@ -19,12 +19,14 @@ package opennlp.tools.cmdline.langdetect;
 
 import opennlp.tools.cmdline.ArgumentParser.OptionalParameter;
 import opennlp.tools.cmdline.ArgumentParser.ParameterDescription;
+import opennlp.tools.commons.Internal;
 
 /**
  * TrainingParams for Language Detector.
- *
- * Note: Do not use this class, internal use only!
+ * <p>
+ * <b>Note:</b> Do not use this class, internal use only!
  */
+@Internal
 interface TrainingParams {
 
   @ParameterDescription(valueName = "paramsFile", description = "training parameters file.")
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/lemmatizer/LemmaEvaluationErrorListener.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/lemmatizer/LemmaEvaluationErrorListener.java
index fa5d959d..cfa875a7 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/lemmatizer/LemmaEvaluationErrorListener.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/lemmatizer/LemmaEvaluationErrorListener.java
@@ -27,13 +27,12 @@ import opennlp.tools.util.eval.EvaluationMonitor;
 /**
  * A default implementation of {@link EvaluationMonitor} that prints to an
  * output stream.
- *
  */
 public class LemmaEvaluationErrorListener extends
     EvaluationErrorPrinter<LemmaSample> implements LemmatizerEvaluationMonitor {
 
   /**
-   * Creates a listener that will print to System.err
+   * Creates a listener that will print to {@code System.err}.
    */
   public LemmaEvaluationErrorListener() {
     super(System.err);
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/lemmatizer/LemmatizerEvaluatorTool.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/lemmatizer/LemmatizerEvaluatorTool.java
index 50350e37..cdcd8338 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/lemmatizer/LemmatizerEvaluatorTool.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/lemmatizer/LemmatizerEvaluatorTool.java
@@ -40,10 +40,12 @@ public final class LemmatizerEvaluatorTool
     super(LemmaSample.class, EvalToolParams.class);
   }
 
+  @Override
   public String getShortDescription() {
     return "Measures the performance of the Lemmatizer model with the reference data";
   }
 
+  @Override
   public void run(String format, String[] args) {
     super.run(format, args);
 
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/lemmatizer/LemmatizerFineGrainedReportListener.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/lemmatizer/LemmatizerFineGrainedReportListener.java
index a4f73477..25daa95a 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/lemmatizer/LemmatizerFineGrainedReportListener.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/lemmatizer/LemmatizerFineGrainedReportListener.java
@@ -28,13 +28,12 @@ import opennlp.tools.lemmatizer.LemmatizerEvaluationMonitor;
  * <p>
  * It is possible to use it from an API and access the statistics using the
  * provided getters.
- *
  */
 public class LemmatizerFineGrainedReportListener
     extends FineGrainedReportListener implements LemmatizerEvaluationMonitor {
 
   /**
-   * Creates a listener that will print to {@link System#err}
+   * Creates a listener that will print to {@code System#err}.
    */
   public LemmatizerFineGrainedReportListener() {
     super(System.err);
@@ -49,10 +48,12 @@ public class LemmatizerFineGrainedReportListener
 
   // methods inherited from EvaluationMonitor
 
+  @Override
   public void misclassified(LemmaSample reference, LemmaSample prediction) {
     statsAdd(reference, prediction);
   }
 
+  @Override
   public void correctlyClassified(LemmaSample reference, LemmaSample prediction) {
     statsAdd(reference, prediction);
   }
@@ -61,6 +62,7 @@ public class LemmatizerFineGrainedReportListener
     getStats().add(reference.getTokens(), reference.getTags(), prediction.getTags());
   }
 
+  @Override
   public void writeReport() {
     printGeneralStatistics();
     // token stats
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/lemmatizer/LemmatizerMETool.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/lemmatizer/LemmatizerMETool.java
index 5940ed19..5bf95822 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/lemmatizer/LemmatizerMETool.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/lemmatizer/LemmatizerMETool.java
@@ -39,10 +39,12 @@ public class LemmatizerMETool extends BasicCmdLineTool {
     return "learnable lemmatizer";
   }
 
+  @Override
   public String getHelp() {
     return "Usage: " + CLI.CMD + " " + getName() + " model < sentences";
   }
 
+  @Override
   public void run(String[] args) {
     if (args.length != 1) {
       System.out.println(getHelp());
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/lemmatizer/LemmatizerModelLoader.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/lemmatizer/LemmatizerModelLoader.java
index ed43a1fe..9faebec8 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/lemmatizer/LemmatizerModelLoader.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/lemmatizer/LemmatizerModelLoader.java
@@ -21,13 +21,15 @@ import java.io.IOException;
 import java.io.InputStream;
 
 import opennlp.tools.cmdline.ModelLoader;
+import opennlp.tools.commons.Internal;
 import opennlp.tools.lemmatizer.LemmatizerModel;
 
 /**
- * Loads a Lemmatizer Model for the command line tools.
+ * Loads a {@link LemmatizerModel} for the command line tools.
  * <p>
  * <b>Note:</b> Do not use this class, internal use only!
  */
+@Internal
 public class LemmatizerModelLoader extends ModelLoader<LemmatizerModel> {
 
   public LemmatizerModelLoader() {
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/lemmatizer/LemmatizerTrainerTool.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/lemmatizer/LemmatizerTrainerTool.java
index d7cea804..e58248c5 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/lemmatizer/LemmatizerTrainerTool.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/lemmatizer/LemmatizerTrainerTool.java
@@ -40,14 +40,17 @@ public class LemmatizerTrainerTool
     super(LemmaSample.class, TrainerToolParams.class);
   }
 
+  @Override
   public String getName() {
     return "LemmatizerTrainerME";
   }
 
+  @Override
   public String getShortDescription() {
     return "trainer for the learnable lemmatizer";
   }
 
+  @Override
   public void run(String format, String[] args) {
     super.run(format, args);
 
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/lemmatizer/TrainingParams.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/lemmatizer/TrainingParams.java
index faaecf5d..8f7d2da5 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/lemmatizer/TrainingParams.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/lemmatizer/TrainingParams.java
@@ -20,12 +20,14 @@ package opennlp.tools.cmdline.lemmatizer;
 import opennlp.tools.cmdline.ArgumentParser.OptionalParameter;
 import opennlp.tools.cmdline.ArgumentParser.ParameterDescription;
 import opennlp.tools.cmdline.params.BasicTrainingParams;
+import opennlp.tools.commons.Internal;
 
 /**
  * TrainingParams for the Lemmatizer.
- *
- * Note: Do not use this class, internal use only!
+ * <p>
+ * <b>Note:</b> Do not use this class, internal use only!
  */
+@Internal
 interface TrainingParams extends BasicTrainingParams {
 
   @ParameterDescription(valueName = "factoryName",
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/NameEvaluationErrorListener.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/NameEvaluationErrorListener.java
index a79afdc4..454cd11b 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/NameEvaluationErrorListener.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/NameEvaluationErrorListener.java
@@ -27,20 +27,19 @@ import opennlp.tools.util.eval.EvaluationMonitor;
 /**
  * A default implementation of {@link EvaluationMonitor} that prints
  * to an output stream.
- *
  */
 public class NameEvaluationErrorListener extends
     EvaluationErrorPrinter<NameSample> implements TokenNameFinderEvaluationMonitor {
 
   /**
-   * Creates a listener that will print to System.err
+   * Creates a listener that will print to {@code System.err}.
    */
   public NameEvaluationErrorListener() {
     super(System.err);
   }
 
   /**
-   * Creates a listener that will print to a given {@link OutputStream}
+   * Creates a listener that will print to a given {@link OutputStream}.
    */
   public NameEvaluationErrorListener(OutputStream outputStream) {
     super(outputStream);
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/NameSampleCountersStream.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/NameSampleCountersStream.java
index 70674d68..494fd61d 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/NameSampleCountersStream.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/NameSampleCountersStream.java
@@ -28,7 +28,7 @@ import opennlp.tools.util.ObjectStream;
 import opennlp.tools.util.Span;
 
 /**
- * Counts tokens, sentences and names by type
+ * Counts tokens, sentences and names by type.
  */
 public class NameSampleCountersStream
     extends FilterObjectStream<NameSample, NameSample> {
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TokenNameFinderCrossValidatorTool.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TokenNameFinderCrossValidatorTool.java
index ea356a71..81e0f6a6 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TokenNameFinderCrossValidatorTool.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TokenNameFinderCrossValidatorTool.java
@@ -56,10 +56,12 @@ public final class TokenNameFinderCrossValidatorTool
     super(NameSample.class, CVToolParams.class);
   }
 
+  @Override
   public String getShortDescription() {
     return "K-fold cross validator for the learnable Name Finder";
   }
 
+  @Override
   public void run(String format, String[] args) {
     super.run(format, args);
 
@@ -154,7 +156,6 @@ public final class TokenNameFinderCrossValidatorTool
     }
 
     System.out.println("done");
-
     System.out.println();
 
     if (reportFile != null) {
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TokenNameFinderEvaluatorTool.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TokenNameFinderEvaluatorTool.java
index b524d78f..a089e687 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TokenNameFinderEvaluatorTool.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TokenNameFinderEvaluatorTool.java
@@ -58,10 +58,12 @@ public final class TokenNameFinderEvaluatorTool
     super(NameSample.class, EvalToolParams.class);
   }
 
+  @Override
   public String getShortDescription() {
     return "Measures the performance of the NameFinder model with the reference data";
   }
 
+  @Override
   public void run(String format, String[] args) {
     super.run(format, args);
 
@@ -108,15 +110,18 @@ public final class TokenNameFinderEvaluatorTool
 
     try (ObjectStream<NameSample> measuredSampleStream = new ObjectStream<NameSample>() {
 
+      @Override
       public NameSample read() throws IOException {
         monitor.incrementCounter();
         return sampleStream.read();
       }
 
+      @Override
       public void reset() throws IOException {
         sampleStream.reset();
       }
 
+      @Override
       public void close() throws IOException {
         sampleStream.close();
       }
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TokenNameFinderFineGrainedReportListener.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TokenNameFinderFineGrainedReportListener.java
index d8ca7bc2..8279ea71 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TokenNameFinderFineGrainedReportListener.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TokenNameFinderFineGrainedReportListener.java
@@ -30,22 +30,22 @@ import opennlp.tools.util.SequenceCodec;
  * Generates a detailed report for the NameFinder.
  * <p>
  * It is possible to use it from an API and access the statistics using the
- * provided getters
+ * provided getters.
  */
 public class TokenNameFinderFineGrainedReportListener
     extends FineGrainedReportListener implements TokenNameFinderEvaluationMonitor {
 
-  private SequenceCodec<String> sequenceCodec;
+  private final SequenceCodec<String> sequenceCodec;
 
   /**
-   * Creates a listener that will print to {@link System#err}
+   * Creates a listener that will print to {@code System#err}.
    */
   public TokenNameFinderFineGrainedReportListener(SequenceCodec<String> seqCodec) {
     this(seqCodec, System.err);
   }
 
   /**
-   * Creates a listener that prints to a given {@link OutputStream}
+   * Creates a listener that prints to a given {@link OutputStream}.
    */
   public TokenNameFinderFineGrainedReportListener(SequenceCodec<String> seqCodec, OutputStream outputStream) {
     super(outputStream);
@@ -53,11 +53,12 @@ public class TokenNameFinderFineGrainedReportListener
   }
 
   // methods inherited from EvaluationMonitor
-
+  @Override
   public void misclassified(NameSample reference, NameSample prediction) {
     statsAdd(reference, prediction);
   }
 
+  @Override
   public void correctlyClassified(NameSample reference,
                                   NameSample prediction) {
     statsAdd(reference, prediction);
@@ -67,7 +68,7 @@ public class TokenNameFinderFineGrainedReportListener
     String[] refTags = sequenceCodec.encode(reference.getNames(), reference.getSentence().length);
     String[] predTags = sequenceCodec.encode(prediction.getNames(), prediction.getSentence().length);
 
-    // we don' want it to compute token frequency, so we pass an array of empty strings instead
+    // we don't want it to compute token frequency, so we pass an array of empty strings instead
     // of tokens
     getStats().add(new String[reference.getSentence().length], refTags, predTags);
   }
@@ -82,6 +83,7 @@ public class TokenNameFinderFineGrainedReportListener
     return new GroupedLabelComparator(map);
   }
 
+  @Override
   public void writeReport() {
     printGeneralStatistics();
     printTagsErrorRank();
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TokenNameFinderModelLoader.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TokenNameFinderModelLoader.java
index 624bb3c1..c6944604 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TokenNameFinderModelLoader.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TokenNameFinderModelLoader.java
@@ -21,13 +21,15 @@ import java.io.IOException;
 import java.io.InputStream;
 
 import opennlp.tools.cmdline.ModelLoader;
+import opennlp.tools.commons.Internal;
 import opennlp.tools.namefind.TokenNameFinderModel;
 
 /**
- * Loads a Token Name Finder Model for the command line tools.
+ * Loads a {@link TokenNameFinderModel} for the command line tools.
  * <p>
  * <b>Note:</b> Do not use this class, internal use only!
  */
+@Internal
 public final class TokenNameFinderModelLoader extends ModelLoader<TokenNameFinderModel> {
 
   public TokenNameFinderModelLoader() {
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TokenNameFinderTool.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TokenNameFinderTool.java
index 2fa9970f..159c6da1 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TokenNameFinderTool.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TokenNameFinderTool.java
@@ -39,10 +39,12 @@ import opennlp.tools.util.Span;
 
 public final class TokenNameFinderTool extends BasicCmdLineTool {
 
+  @Override
   public String getShortDescription() {
     return "learnable name finder";
   }
 
+  @Override
   public String getHelp() {
     return "Usage: " + CLI.CMD + " " + getName() + " model1 model2 ... modelN < sentences";
   }
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TokenNameFinderTrainerTool.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TokenNameFinderTrainerTool.java
index ecc23677..c986b762 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TokenNameFinderTrainerTool.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TokenNameFinderTrainerTool.java
@@ -52,6 +52,7 @@ public final class TokenNameFinderTrainerTool
     super(NameSample.class, TrainerToolParams.class);
   }
 
+  @Override
   public String getShortDescription() {
     return "trainer for the learnable name finder";
   }
@@ -81,9 +82,10 @@ public final class TokenNameFinderTrainerTool
   /**
    * Load the resources, such as dictionaries, by reading the feature xml descriptor
    * and looking into the directory passed as argument.
-   * @param resourcePath the directory in which the resources are to be found
-   * @param featureGenDescriptor the feature xml descriptor
-   * @return a map consisting of the file name of the resource and its corresponding Object
+   * 
+   * @param resourcePath The directory in which the resources are to be found.
+   * @param featureGenDescriptor The feature xml descriptor.
+   * @return A map consisting of the file name of the resource and its corresponding Object.
    */
   public static Map<String, Object> loadResources(File resourcePath, File featureGenDescriptor)
       throws IOException {
@@ -110,6 +112,7 @@ public final class TokenNameFinderTrainerTool
     return resources;
   }
 
+  @Override
   public void run(String format, String[] args) {
     super.run(format, args);
 
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TrainingParams.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TrainingParams.java
index a047d5a5..01a36ab4 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TrainingParams.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TrainingParams.java
@@ -22,12 +22,14 @@ import java.io.File;
 import opennlp.tools.cmdline.ArgumentParser.OptionalParameter;
 import opennlp.tools.cmdline.ArgumentParser.ParameterDescription;
 import opennlp.tools.cmdline.params.BasicTrainingParams;
+import opennlp.tools.commons.Internal;
 
 /**
  * TrainingParameters for Name Finder.
- *
- * Note: Do not use this class, internal use only!
+ * <p>
+ * <b>Note:</b> Do not use this class, internal use only!
  */
+@Internal
 interface TrainingParams extends BasicTrainingParams {
 
   @ParameterDescription(valueName = "modelType", description = "The type of the token name finder model")
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/params/BasicTrainingParams.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/params/BasicTrainingParams.java
index 4ac2b1a8..3601a505 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/params/BasicTrainingParams.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/params/BasicTrainingParams.java
@@ -19,12 +19,14 @@ package opennlp.tools.cmdline.params;
 
 import opennlp.tools.cmdline.ArgumentParser.OptionalParameter;
 import opennlp.tools.cmdline.ArgumentParser.ParameterDescription;
+import opennlp.tools.commons.Internal;
 
 /**
  * Common training parameters.
- *
- * Note: Do not use this class, internal use only!
+ * <p>
+ * <b>Note:</b> Do not use this class, internal use only!
  */
+@Internal
 public interface BasicTrainingParams extends LanguageParams {
 
   @ParameterDescription(valueName = "paramsFile", description = "training parameters file.")
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/params/CVParams.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/params/CVParams.java
index 2fe16d6f..d21fba17 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/params/CVParams.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/params/CVParams.java
@@ -19,12 +19,14 @@ package opennlp.tools.cmdline.params;
 
 import opennlp.tools.cmdline.ArgumentParser.OptionalParameter;
 import opennlp.tools.cmdline.ArgumentParser.ParameterDescription;
+import opennlp.tools.commons.Internal;
 
 /**
  * Common cross validator parameters.
- *
- * Note: Do not use this class, internal use only!
+ * <p>
+ * <b>Note:</b> Do not use this class, internal use only!
  */
+@Internal
 public interface CVParams {
 
   @ParameterDescription(valueName = "true|false",
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/params/DetailedFMeasureEvaluatorParams.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/params/DetailedFMeasureEvaluatorParams.java
index d7c11c67..d370844a 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/params/DetailedFMeasureEvaluatorParams.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/params/DetailedFMeasureEvaluatorParams.java
@@ -19,13 +19,15 @@ package opennlp.tools.cmdline.params;
 
 import opennlp.tools.cmdline.ArgumentParser.OptionalParameter;
 import opennlp.tools.cmdline.ArgumentParser.ParameterDescription;
+import opennlp.tools.commons.Internal;
 
 
 /**
  * EvaluatorParams for Chunker.
- *
- * Note: Do not use this class, internal use only!
+ * <p>
+ * <b>Note:</b> Do not use this class, internal use only!
  */
+@Internal
 public interface DetailedFMeasureEvaluatorParams {
 
   @ParameterDescription(valueName = "true|false",
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/params/EncodingParameter.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/params/EncodingParameter.java
index 7516dbd9..b86e1e85 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/params/EncodingParameter.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/params/EncodingParameter.java
@@ -21,12 +21,15 @@ import java.nio.charset.Charset;
 
 import opennlp.tools.cmdline.ArgumentParser.OptionalParameter;
 import opennlp.tools.cmdline.ArgumentParser.ParameterDescription;
+import opennlp.tools.commons.Internal;
 
 /**
- * Encoding parameter. The DEFAULT_CHARSET is handled by ArgumentParser.Parse().
- *
- * Note: Do not use this class, internal use only!
+ * Encoding parameter. The DEFAULT_CHARSET is handled by
+ * {@link opennlp.tools.cmdline.ArgumentParser#parse(String[], Class)}.
+ * <p>
+ * <b>Note:</b> Do not use this class, internal use only!
  */
+@Internal
 public interface EncodingParameter {
 
   @ParameterDescription(valueName = "charsetName",
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/params/EvaluatorParams.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/params/EvaluatorParams.java
index 3629ea22..938fda9a 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/params/EvaluatorParams.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/params/EvaluatorParams.java
@@ -21,12 +21,14 @@ import java.io.File;
 
 import opennlp.tools.cmdline.ArgumentParser.OptionalParameter;
 import opennlp.tools.cmdline.ArgumentParser.ParameterDescription;
+import opennlp.tools.commons.Internal;
 
 /**
  * Common evaluation parameters.
- *
- * Note: Do not use this class, internal use only!
+ * <p>
+ * <b>Note:</b> Do not use this class, internal use only!
  */
+@Internal
 public interface EvaluatorParams {
 
   @ParameterDescription(valueName = "model", description = "the model file to be evaluated.")
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/params/FineGrainedEvaluatorParams.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/params/FineGrainedEvaluatorParams.java
index 77e9ddd0..8c6b3d60 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/params/FineGrainedEvaluatorParams.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/params/FineGrainedEvaluatorParams.java
@@ -20,12 +20,14 @@ package opennlp.tools.cmdline.params;
 import java.io.File;
 
 import opennlp.tools.cmdline.ArgumentParser;
+import opennlp.tools.commons.Internal;
 
 /**
  * Common evaluation parameters.
- *
- * Note: Do not use this class, internal use only!
+ * <p>
+ * <b>Note:</b> Do not use this class, internal use only!
  */
+@Internal
 public interface FineGrainedEvaluatorParams {
 
   @ArgumentParser.ParameterDescription(valueName = "outputFile",
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/params/TrainingToolParams.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/params/TrainingToolParams.java
index 337ffa25..2cd8e4c9 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/params/TrainingToolParams.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/params/TrainingToolParams.java
@@ -20,12 +20,14 @@ package opennlp.tools.cmdline.params;
 import java.io.File;
 
 import opennlp.tools.cmdline.ArgumentParser.ParameterDescription;
+import opennlp.tools.commons.Internal;
 
 /**
  * Common training parameters.
- *
- * Note: Do not use this class, internal use only!
+ * <p>
+ * <b>Note:</b> Do not use this class, internal use only!
  */
+@Internal
 public interface TrainingToolParams extends BasicTrainingParams {
 
   @ParameterDescription(valueName = "modelFile", description = "output model file.")
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/CheckModelUpdaterTool.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/CheckModelUpdaterTool.java
index 0c988121..a69f83b2 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/CheckModelUpdaterTool.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/CheckModelUpdaterTool.java
@@ -31,9 +31,12 @@ import opennlp.tools.parser.chunking.ParserEventStream;
 import opennlp.tools.util.ObjectStream;
 import opennlp.tools.util.model.ModelUtil;
 
-// trains a new check model ...
+/**
+ * Trains a new check model.
+ */
 public final class CheckModelUpdaterTool extends ModelUpdaterTool {
 
+  @Override
   public String getShortDescription() {
     return "trains and updates the check model in a parser model";
   }
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/ModelUpdaterTool.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/ModelUpdaterTool.java
index 8ebf3bb1..2863a454 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/ModelUpdaterTool.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/ModelUpdaterTool.java
@@ -47,6 +47,7 @@ abstract class ModelUpdaterTool
       ObjectStream<Parse> parseSamples, ModelUpdaterParams parameters)
       throws IOException;
 
+  @Override
   public final void run(String format, String[] args) {
     ModelUpdaterParams params = validateAndParseParams(
         ArgumentParser.filter(args, ModelUpdaterParams.class), ModelUpdaterParams.class);
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/ParserEvaluatorTool.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/ParserEvaluatorTool.java
index b2a5ce92..8158f40c 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/ParserEvaluatorTool.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/ParserEvaluatorTool.java
@@ -34,6 +34,7 @@ public class ParserEvaluatorTool extends AbstractEvaluatorTool<Parse, EvaluatorP
     super(Parse.class, EvaluatorParams.class);
   }
 
+  @Override
   public String getShortDescription() {
     return "Measures the performance of the Parser model with the reference data";
   }
@@ -64,7 +65,6 @@ public class ParserEvaluatorTool extends AbstractEvaluatorTool<Parse, EvaluatorP
       }
     }
     System.out.println("done");
-
     System.out.println();
 
     System.out.println(evaluator.getFMeasure());
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/ParserModelLoader.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/ParserModelLoader.java
index 3ac89ac4..dfd87b90 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/ParserModelLoader.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/ParserModelLoader.java
@@ -21,14 +21,16 @@ import java.io.IOException;
 import java.io.InputStream;
 
 import opennlp.tools.cmdline.ModelLoader;
+import opennlp.tools.commons.Internal;
 import opennlp.tools.parser.ParserModel;
 import opennlp.tools.util.InvalidFormatException;
 
 /**
- * Loads a Parser Model for the command line tools.
+ * Loads a {@link ParserModel} for the command line tools.
  * <p>
  * <b>Note:</b> Do not use this class, internal use only!
  */
+@Internal
 public final class ParserModelLoader extends ModelLoader<ParserModel> {
 
   public ParserModelLoader() {
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/ParserTool.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/ParserTool.java
index d8d39026..8e9e683a 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/ParserTool.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/ParserTool.java
@@ -45,10 +45,12 @@ import opennlp.tools.util.Span;
 
 public final class ParserTool extends BasicCmdLineTool {
 
+  @Override
   public String getShortDescription() {
     return "performs full syntactic parsing";
   }
 
+  @Override
   public String getHelp() {
     return "Usage: " + CLI.CMD + " " + getName() + " [-bs n -ap n -k n -tk tok_model] model < sentences \n"
             + "-bs n: Use a beam size of n.\n"
@@ -58,8 +60,8 @@ public final class ParserTool extends BasicCmdLineTool {
             + "Defaults to a WhitespaceTokenizer.";
   }
 
-  private static Pattern untokenizedParenPattern1 = Pattern.compile("([^ ])([({)}])");
-  private static Pattern untokenizedParenPattern2 = Pattern.compile("([({)}])([^ ])");
+  private static final Pattern UNTOKENIZED_PAREN_PATTERN_1 = Pattern.compile("([^ ])([({)}])");
+  private static final Pattern UNTOKENIZED_PAREN_PATTERN_2 = Pattern.compile("([({)}])([^ ])");
 
   public static Parse[] parseLine(String line, Parser parser, int numParses) {
     return parseLine( line, parser, WhitespaceTokenizer.INSTANCE, numParses );
@@ -67,8 +69,8 @@ public final class ParserTool extends BasicCmdLineTool {
 
   public static Parse[] parseLine(String line, Parser parser, Tokenizer tokenizer, int numParses) {
     // fix some parens patterns
-    line = untokenizedParenPattern1.matcher(line).replaceAll("$1 $2");
-    line = untokenizedParenPattern2.matcher(line).replaceAll("$1 $2");
+    line = UNTOKENIZED_PAREN_PATTERN_1.matcher(line).replaceAll("$1 $2");
+    line = UNTOKENIZED_PAREN_PATTERN_2.matcher(line).replaceAll("$1 $2");
 
     // tokenize
     List<String> tokens = Arrays.asList( tokenizer.tokenize(line));
@@ -91,6 +93,7 @@ public final class ParserTool extends BasicCmdLineTool {
     return parses;
   }
 
+  @Override
   public void run(String[] args) {
 
     if (args.length < 1) {
@@ -128,7 +131,7 @@ public final class ParserTool extends BasicCmdLineTool {
 
       Parser parser = ParserFactory.create(model, beamSize, advancePercentage);
 
-      ObjectStream<String> lineStream = null;
+      ObjectStream<String> lineStream;
       PerformanceMonitor perfMon = null;
       try {
         lineStream = new PlainTextByLineStream(new SystemInputStreamFactory(),
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/ParserTrainerTool.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/ParserTrainerTool.java
index 956bba61..57027c20 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/ParserTrainerTool.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/ParserTrainerTool.java
@@ -48,6 +48,7 @@ public final class ParserTrainerTool extends AbstractTrainerTool<Parse, TrainerT
     super(Parse.class, TrainerToolParams.class);
   }
 
+  @Override
   public String getShortDescription() {
     return "trains the learnable parser";
   }
@@ -114,6 +115,7 @@ public final class ParserTrainerTool extends AbstractTrainerTool<Parse, TrainerT
   }
 
   // TODO: Add param to train tree insert parser
+  @Override
   public void run(String format, String[] args) {
     super.run(format, args);
 
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/TaggerModelReplacerTool.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/TaggerModelReplacerTool.java
index 97e82646..0e5e918b 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/TaggerModelReplacerTool.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/TaggerModelReplacerTool.java
@@ -29,14 +29,17 @@ import opennlp.tools.postag.POSModel;
 // user should train with the POS tool
 public final class TaggerModelReplacerTool extends BasicCmdLineTool {
 
+  @Override
   public String getShortDescription() {
     return "replaces the tagger model in a parser model";
   }
 
+  @Override
   public String getHelp() {
     return "Usage: " + CLI.CMD + " " + getName() + " parser.model tagger.model";
   }
 
+  @Override
   public void run(String[] args) {
 
     if (args.length != 2) {
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/TrainingParams.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/TrainingParams.java
index 59dda853..56468c93 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/TrainingParams.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/TrainingParams.java
@@ -22,12 +22,14 @@ import java.io.File;
 import opennlp.tools.cmdline.ArgumentParser.OptionalParameter;
 import opennlp.tools.cmdline.ArgumentParser.ParameterDescription;
 import opennlp.tools.cmdline.params.BasicTrainingParams;
+import opennlp.tools.commons.Internal;
 
 /**
  * TrainingParams for Parser.
- *
- * Note: Do not use this class, internal use only!
+ * <p>
+ * <b>Note:</b> Do not use this class, internal use only!
  */
+@Internal
 interface TrainingParams extends BasicTrainingParams {
 
   @ParameterDescription(valueName = "CHUNKING|TREEINSERT",
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/postag/POSEvaluationErrorListener.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/postag/POSEvaluationErrorListener.java
index a5d60299..09147009 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/postag/POSEvaluationErrorListener.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/postag/POSEvaluationErrorListener.java
@@ -27,20 +27,19 @@ import opennlp.tools.util.eval.EvaluationMonitor;
 /**
  * A default implementation of {@link EvaluationMonitor} that prints
  * to an output stream.
- *
  */
 public class POSEvaluationErrorListener extends
     EvaluationErrorPrinter<POSSample> implements POSTaggerEvaluationMonitor {
 
   /**
-   * Creates a listener that will print to System.err
+   * Creates a listener that will print to {@code System.err}.
    */
   public POSEvaluationErrorListener() {
     super(System.err);
   }
 
   /**
-   * Creates a listener that will print to a given {@link OutputStream}
+   * Creates a listener that will print to a given {@link OutputStream}.
    */
   public POSEvaluationErrorListener(OutputStream outputStream) {
     super(outputStream);
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/postag/POSModelLoader.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/postag/POSModelLoader.java
index 97fe1548..2fd74c3b 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/postag/POSModelLoader.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/postag/POSModelLoader.java
@@ -21,13 +21,15 @@ import java.io.IOException;
 import java.io.InputStream;
 
 import opennlp.tools.cmdline.ModelLoader;
+import opennlp.tools.commons.Internal;
 import opennlp.tools.postag.POSModel;
 
 /**
- * Loads a POS Tagger Model for the command line tools.
+ * Loads a {@link POSModel} for the command line tools.
  * <p>
  * <b>Note:</b> Do not use this class, internal use only!
  */
+@Internal
 public final class POSModelLoader extends ModelLoader<POSModel> {
 
   public POSModelLoader() {
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/postag/POSTaggerCrossValidatorTool.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/postag/POSTaggerCrossValidatorTool.java
index c6a37a8d..b4d1b064 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/postag/POSTaggerCrossValidatorTool.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/postag/POSTaggerCrossValidatorTool.java
@@ -46,10 +46,12 @@ public final class POSTaggerCrossValidatorTool
     super(POSSample.class, CVToolParams.class);
   }
 
+  @Override
   public String getShortDescription() {
     return "K-fold cross validator for the learnable POS tagger";
   }
 
+  @Override
   public void run(String format, String[] args) {
     super.run(format, args);
 
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/postag/POSTaggerEvaluatorTool.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/postag/POSTaggerEvaluatorTool.java
index 32da40f3..9b471cdf 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/postag/POSTaggerEvaluatorTool.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/postag/POSTaggerEvaluatorTool.java
@@ -44,10 +44,12 @@ public final class POSTaggerEvaluatorTool
     super(POSSample.class, EvalToolParams.class);
   }
 
+  @Override
   public String getShortDescription() {
     return "Measures the performance of the POS tagger model with the reference data";
   }
 
+  @Override
   public void run(String format, String[] args) {
     super.run(format, args);
 
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/postag/POSTaggerFineGrainedReportListener.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/postag/POSTaggerFineGrainedReportListener.java
index fa0a3655..fe8f2b85 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/postag/POSTaggerFineGrainedReportListener.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/postag/POSTaggerFineGrainedReportListener.java
@@ -34,14 +34,14 @@ public class POSTaggerFineGrainedReportListener
     extends FineGrainedReportListener implements POSTaggerEvaluationMonitor {
 
   /**
-   * Creates a listener that will print to {@link System#err}
+   * Creates a listener that will print to {@code System#err}.
    */
   public POSTaggerFineGrainedReportListener() {
     this(System.err);
   }
 
   /**
-   * Creates a listener that prints to a given {@link OutputStream}
+   * Creates a listener that prints to a given {@link OutputStream}.
    */
   public POSTaggerFineGrainedReportListener(OutputStream outputStream) {
     super(outputStream);
@@ -49,11 +49,12 @@ public class POSTaggerFineGrainedReportListener
   }
 
   // methods inherited from EvaluationMonitor
-
+  @Override
   public void misclassified(POSSample reference, POSSample prediction) {
     statsAdd(reference, prediction);
   }
 
+  @Override
   public void correctlyClassified(POSSample reference, POSSample prediction) {
     statsAdd(reference, prediction);
   }
@@ -62,6 +63,7 @@ public class POSTaggerFineGrainedReportListener
     getStats().add(reference.getSentence(), reference.getTags(), prediction.getTags());
   }
 
+  @Override
   public void writeReport() {
     printGeneralStatistics();
     // token stats
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/postag/POSTaggerTool.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/postag/POSTaggerTool.java
index 64ec09a2..8bc8b125 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/postag/POSTaggerTool.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/postag/POSTaggerTool.java
@@ -34,14 +34,17 @@ import opennlp.tools.util.PlainTextByLineStream;
 
 public final class POSTaggerTool extends BasicCmdLineTool {
 
+  @Override
   public String getShortDescription() {
     return "learnable part of speech tagger";
   }
 
+  @Override
   public String getHelp() {
     return "Usage: " + CLI.CMD + " " + getName() + " model < sentences";
   }
 
+  @Override
   public void run(String[] args) {
 
     if (args.length != 1) {
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/postag/POSTaggerTrainerTool.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/postag/POSTaggerTrainerTool.java
index ca614f9f..bafb8641 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/postag/POSTaggerTrainerTool.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/postag/POSTaggerTrainerTool.java
@@ -47,10 +47,12 @@ public final class POSTaggerTrainerTool
     super(POSSample.class, TrainerToolParams.class);
   }
 
+  @Override
   public String getShortDescription() {
     return "trains a model for the part-of-speech tagger";
   }
 
+  @Override
   public void run(String format, String[] args) {
     super.run(format, args);
 
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/postag/TrainingParams.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/postag/TrainingParams.java
index 31d5e487..8d02a2e2 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/postag/TrainingParams.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/postag/TrainingParams.java
@@ -22,12 +22,14 @@ import java.io.File;
 import opennlp.tools.cmdline.ArgumentParser.OptionalParameter;
 import opennlp.tools.cmdline.ArgumentParser.ParameterDescription;
 import opennlp.tools.cmdline.params.BasicTrainingParams;
+import opennlp.tools.commons.Internal;
 
 /**
  * TrainingParameters for Name Finder.
- *
- * Note: Do not use this class, internal use only!
+ * <p>
+ * <b>Note:</b> Do not use this class, internal use only!
  */
+@Internal
 interface TrainingParams extends BasicTrainingParams {
   @ParameterDescription(valueName = "featuregenFile", description = "The feature generator descriptor file")
   @OptionalParameter
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/sentdetect/SentenceDetectorCrossValidatorTool.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/sentdetect/SentenceDetectorCrossValidatorTool.java
index c088d9d4..96179865 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/sentdetect/SentenceDetectorCrossValidatorTool.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/sentdetect/SentenceDetectorCrossValidatorTool.java
@@ -42,10 +42,12 @@ public final class SentenceDetectorCrossValidatorTool
     super(SentenceSample.class, CVToolParams.class);
   }
 
+  @Override
   public String getShortDescription() {
     return "K-fold cross validator for the learnable sentence detector";
   }
 
+  @Override
   public void run(String format, String[] args) {
     super.run(format, args);
 
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/sentdetect/SentenceDetectorEvaluatorTool.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/sentdetect/SentenceDetectorEvaluatorTool.java
index b0d554f1..dbc80ef0 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/sentdetect/SentenceDetectorEvaluatorTool.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/sentdetect/SentenceDetectorEvaluatorTool.java
@@ -39,10 +39,12 @@ public final class SentenceDetectorEvaluatorTool
     super(SentenceSample.class, EvalToolParams.class);
   }
 
+  @Override
   public String getShortDescription() {
     return "evaluator for the learnable sentence detector";
   }
 
+  @Override
   public void run(String format, String[] args) {
     super.run(format, args);
 
@@ -73,7 +75,6 @@ public final class SentenceDetectorEvaluatorTool
     }
 
     System.err.println("done");
-
     System.out.println();
 
     System.out.println(evaluator.getFMeasure());
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/sentdetect/SentenceDetectorTool.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/sentdetect/SentenceDetectorTool.java
index b4dd1246..46fa2f02 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/sentdetect/SentenceDetectorTool.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/sentdetect/SentenceDetectorTool.java
@@ -36,19 +36,22 @@ import opennlp.tools.util.PlainTextByLineStream;
  */
 public final class SentenceDetectorTool extends BasicCmdLineTool {
 
+  @Override
   public String getShortDescription() {
     return "learnable sentence detector";
   }
 
+  @Override
   public String getHelp() {
     return "Usage: " + CLI.CMD + " " + getName() + " model < sentences";
   }
 
   /**
    * Perform sentence detection the input stream.
-   *
+   * <p>
    * A newline will be treated as a paragraph boundary.
    */
+  @Override
   public void run(String[] args) {
 
     if (args.length != 1) {
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/sentdetect/SentenceDetectorTrainerTool.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/sentdetect/SentenceDetectorTrainerTool.java
index cdd69163..581bf124 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/sentdetect/SentenceDetectorTrainerTool.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/sentdetect/SentenceDetectorTrainerTool.java
@@ -46,6 +46,7 @@ public final class SentenceDetectorTrainerTool
     super(SentenceSample.class, TrainerToolParams.class);
   }
 
+  @Override
   public String getShortDescription() {
     return "trainer for the learnable sentence detector";
   }
@@ -59,6 +60,7 @@ public final class SentenceDetectorTrainerTool
     return dict;
   }
 
+  @Override
   public void run(String format, String[] args) {
     super.run(format, args);
 
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/sentdetect/SentenceEvaluationErrorListener.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/sentdetect/SentenceEvaluationErrorListener.java
index b93d9955..f6e95234 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/sentdetect/SentenceEvaluationErrorListener.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/sentdetect/SentenceEvaluationErrorListener.java
@@ -27,21 +27,20 @@ import opennlp.tools.util.eval.EvaluationMonitor;
 /**
  * A default implementation of {@link EvaluationMonitor} that prints
  * to an output stream.
- *
  */
 public class SentenceEvaluationErrorListener extends
     EvaluationErrorPrinter<SentenceSample> implements
     SentenceDetectorEvaluationMonitor {
 
   /**
-   * Creates a listener that will print to System.err
+   * Creates a listener that will print to {@code System.err}.
    */
   public SentenceEvaluationErrorListener() {
     super(System.err);
   }
 
   /**
-   * Creates a listener that will print to a given {@link OutputStream}
+   * Creates a listener that will print to a given {@link OutputStream}.
    */
   public SentenceEvaluationErrorListener(OutputStream outputStream) {
     super(outputStream);
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/sentdetect/SentenceModelLoader.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/sentdetect/SentenceModelLoader.java
index 751ac40f..ac52f252 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/sentdetect/SentenceModelLoader.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/sentdetect/SentenceModelLoader.java
@@ -21,14 +21,16 @@ import java.io.IOException;
 import java.io.InputStream;
 
 import opennlp.tools.cmdline.ModelLoader;
+import opennlp.tools.commons.Internal;
 import opennlp.tools.sentdetect.SentenceModel;
 import opennlp.tools.util.InvalidFormatException;
 
 /**
- * Loads a Tokenizer Model for the command line tools.
+ * Loads a {@link SentenceModel} for the command line tools.
  * <p>
  * <b>Note:</b> Do not use this class, internal use only!
  */
+@Internal
 final class SentenceModelLoader extends ModelLoader<SentenceModel> {
 
   public SentenceModelLoader() {
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/sentdetect/TrainingParams.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/sentdetect/TrainingParams.java
index fbdf4db8..476f929a 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/sentdetect/TrainingParams.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/sentdetect/TrainingParams.java
@@ -22,12 +22,14 @@ import java.io.File;
 import opennlp.tools.cmdline.ArgumentParser.OptionalParameter;
 import opennlp.tools.cmdline.ArgumentParser.ParameterDescription;
 import opennlp.tools.cmdline.params.BasicTrainingParams;
+import opennlp.tools.commons.Internal;
 
 /**
  * TrainingParams for Sentence Detector.
- *
- * Note: Do not use this class, internal use only!
+ * <p>
+ * <b>Note:</b> Do not use this class, internal use only!
  */
+@Internal
 interface TrainingParams extends BasicTrainingParams {
 
   @ParameterDescription(valueName = "path", description = "abbreviation dictionary in XML format.")
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/DetokenEvaluationErrorListener.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/DetokenEvaluationErrorListener.java
index 475b3c38..4f05ef7f 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/DetokenEvaluationErrorListener.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/DetokenEvaluationErrorListener.java
@@ -32,14 +32,14 @@ public class DetokenEvaluationErrorListener extends
     EvaluationErrorPrinter<TokenSample> implements TokenizerEvaluationMonitor {
 
   /**
-   * Creates a listener that will print to System.err
+   * Creates a listener that will print to {@code System.err}.
    */
   public DetokenEvaluationErrorListener() {
     super(System.err);
   }
 
   /**
-   * Creates a listener that will print to a given {@link OutputStream}
+   * Creates a listener that will print to a given {@link OutputStream}.
    */
   public DetokenEvaluationErrorListener(OutputStream outputStream) {
     super(outputStream);
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/DictionaryDetokenizerTool.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/DictionaryDetokenizerTool.java
index f06c67ab..5053f8cc 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/DictionaryDetokenizerTool.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/DictionaryDetokenizerTool.java
@@ -33,10 +33,12 @@ import opennlp.tools.util.PlainTextByLineStream;
 
 public final class DictionaryDetokenizerTool extends BasicCmdLineTool {
 
+  @Override
   public String getHelp() {
     return "Usage: " + CLI.CMD + " " + getName() + " detokenizerDictionary";
   }
 
+  @Override
   public void run(String[] args) {
     if (args.length != 1) {
       System.out.println(getHelp());
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/SimpleTokenizerTool.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/SimpleTokenizerTool.java
index 0c268070..db8f6fee 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/SimpleTokenizerTool.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/SimpleTokenizerTool.java
@@ -22,10 +22,12 @@ import opennlp.tools.cmdline.CLI;
 
 public final class SimpleTokenizerTool extends BasicCmdLineTool {
 
+  @Override
   public String getShortDescription() {
     return "character class tokenizer";
   }
 
+  @Override
   public String getHelp() {
     return "Usage: " + CLI.CMD + " " + getName() + " < sentences";
   }
@@ -35,6 +37,7 @@ public final class SimpleTokenizerTool extends BasicCmdLineTool {
     return false;
   }
 
+  @Override
   public void run(String[] args) {
     if (args.length != 0) {
       System.out.println(getHelp());
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/TokenEvaluationErrorListener.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/TokenEvaluationErrorListener.java
index 1465eb88..abfa36d8 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/TokenEvaluationErrorListener.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/TokenEvaluationErrorListener.java
@@ -27,20 +27,19 @@ import opennlp.tools.util.eval.EvaluationMonitor;
 /**
  * A default implementation of {@link EvaluationMonitor} that prints
  * to an output stream.
- *
  */
 public class TokenEvaluationErrorListener extends
     EvaluationErrorPrinter<TokenSample> implements TokenizerEvaluationMonitor {
 
   /**
-   * Creates a listener that will print to System.err
+   * Creates a listener that will print to {@code System.err}.
    */
   public TokenEvaluationErrorListener() {
     super(System.err);
   }
 
   /**
-   * Creates a listener that will print to a given {@link OutputStream}
+   * Creates a listener that will print to a given {@link OutputStream}.
    */
   public TokenEvaluationErrorListener(OutputStream outputStream) {
     super(outputStream);
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/TokenizerCrossValidatorTool.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/TokenizerCrossValidatorTool.java
index 2147ae84..b3266f5d 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/TokenizerCrossValidatorTool.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/TokenizerCrossValidatorTool.java
@@ -41,10 +41,12 @@ public final class TokenizerCrossValidatorTool
     super(TokenSample.class, CVToolParams.class);
   }
 
+  @Override
   public String getShortDescription() {
     return "K-fold cross validator for the learnable tokenizer";
   }
 
+  @Override
   public void run(String format, String[] args) {
     super.run(format, args);
 
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/TokenizerMEEvaluatorTool.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/TokenizerMEEvaluatorTool.java
index 0ca7ce07..0e12039c 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/TokenizerMEEvaluatorTool.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/TokenizerMEEvaluatorTool.java
@@ -38,10 +38,12 @@ public final class TokenizerMEEvaluatorTool
     super(TokenSample.class, EvalToolParams.class);
   }
 
+  @Override
   public String getShortDescription() {
     return "evaluator for the learnable tokenizer";
   }
 
+  @Override
   public void run(String format, String[] args) {
     super.run(format, args);
 
@@ -71,7 +73,6 @@ public final class TokenizerMEEvaluatorTool
     }
 
     System.out.println("done");
-
     System.out.println();
 
     System.out.println(evaluator.getFMeasure());
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/TokenizerMETool.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/TokenizerMETool.java
index 27176a12..045d835b 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/TokenizerMETool.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/TokenizerMETool.java
@@ -25,14 +25,17 @@ import opennlp.tools.tokenize.TokenizerModel;
 
 public final class TokenizerMETool extends BasicCmdLineTool {
 
+  @Override
   public String getShortDescription() {
     return "learnable tokenizer";
   }
 
+  @Override
   public String getHelp() {
     return "Usage: " + CLI.CMD + " " + getName() + " model < sentences";
   }
 
+  @Override
   public void run(String[] args) {
     if (args.length != 1) {
       System.out.println(getHelp());
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/TokenizerModelLoader.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/TokenizerModelLoader.java
index a1b2149b..bc4541d4 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/TokenizerModelLoader.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/TokenizerModelLoader.java
@@ -21,13 +21,15 @@ import java.io.IOException;
 import java.io.InputStream;
 
 import opennlp.tools.cmdline.ModelLoader;
+import opennlp.tools.commons.Internal;
 import opennlp.tools.tokenize.TokenizerModel;
 
 /**
- * Loads a Tokenizer Model for the command line tools.
+ * Loads a {@link TokenizerModel} for the command line tools.
  * <p>
  * <b>Note:</b> Do not use this class, internal use only!
  */
+@Internal
 public final class TokenizerModelLoader extends ModelLoader<TokenizerModel> {
 
   public TokenizerModelLoader() {
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/TokenizerTrainerTool.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/TokenizerTrainerTool.java
index eb39ff4d..3cb1735c 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/TokenizerTrainerTool.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/TokenizerTrainerTool.java
@@ -45,6 +45,7 @@ public final class TokenizerTrainerTool
     super(TokenSample.class, TrainerToolParams.class);
   }
 
+  @Override
   public String getShortDescription() {
     return "trainer for the learnable tokenizer";
   }
@@ -58,6 +59,7 @@ public final class TokenizerTrainerTool
     return dict;
   }
 
+  @Override
   public void run(String format, String[] args) {
     super.run(format, args);
     if (null != params.getParams())
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/TrainingParams.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/TrainingParams.java
index 358fc476..cd814acd 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/TrainingParams.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/TrainingParams.java
@@ -22,12 +22,14 @@ import java.io.File;
 import opennlp.tools.cmdline.ArgumentParser.OptionalParameter;
 import opennlp.tools.cmdline.ArgumentParser.ParameterDescription;
 import opennlp.tools.cmdline.params.BasicTrainingParams;
+import opennlp.tools.commons.Internal;
 
 /**
  * TrainingParameters for Tokenizer.
- *
- * Note: Do not use this class, internal use only!
+ * <p>
+ * <b>Note:</b> Do not use this class, internal use only!
  */
+@Internal
 interface TrainingParams extends BasicTrainingParams {
   @ParameterDescription(valueName = "isAlphaNumOpt",
       description = "Optimization flag to skip alpha numeric tokens for further tokenization")
diff --git a/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADNameSampleStream.java b/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADNameSampleStream.java
index a0b77585..a7bab0d0 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADNameSampleStream.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADNameSampleStream.java
@@ -28,6 +28,7 @@ import java.util.Map;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
+import opennlp.tools.commons.Internal;
 import opennlp.tools.formats.ad.ADSentenceStream.Sentence;
 import opennlp.tools.formats.ad.ADSentenceStream.SentenceParser.Leaf;
 import opennlp.tools.formats.ad.ADSentenceStream.SentenceParser.Node;
@@ -62,6 +63,7 @@ import opennlp.tools.util.Span;
  * <b>Note:</b>
  * Do not use this class, internal use only!
  */
+@Internal
 public class ADNameSampleStream implements ObjectStream<NameSample> {
 
   /*
diff --git a/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADPOSSampleStream.java b/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADPOSSampleStream.java
index 782ce7bd..c2cb08c8 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADPOSSampleStream.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADPOSSampleStream.java
@@ -22,6 +22,7 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.StringTokenizer;
 
+import opennlp.tools.commons.Internal;
 import opennlp.tools.formats.ad.ADSentenceStream.Sentence;
 import opennlp.tools.formats.ad.ADSentenceStream.SentenceParser.Leaf;
 import opennlp.tools.formats.ad.ADSentenceStream.SentenceParser.Node;
@@ -35,6 +36,7 @@ import opennlp.tools.util.PlainTextByLineStream;
  * <b>Note:</b>
  * Do not use this class, internal use only!
  */
+@Internal
 public class ADPOSSampleStream implements ObjectStream<POSSample> {
 
   private final ObjectStream<ADSentenceStream.Sentence> adSentenceStream;
diff --git a/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADSentenceSampleStream.java b/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADSentenceSampleStream.java
index 89b819a0..2ff31564 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADSentenceSampleStream.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADSentenceSampleStream.java
@@ -24,6 +24,7 @@ import java.util.List;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
+import opennlp.tools.commons.Internal;
 import opennlp.tools.formats.ad.ADSentenceStream.Sentence;
 import opennlp.tools.sentdetect.SentenceSample;
 import opennlp.tools.sentdetect.lang.Factory;
@@ -33,8 +34,10 @@ import opennlp.tools.util.PlainTextByLineStream;
 import opennlp.tools.util.Span;
 
 /**
- * <b>Note:</b> Do not use this class, internal use only!
+ * <b>Note:</b>
+ * Do not use this class, internal use only!
  */
+@Internal
 public class ADSentenceSampleStream implements ObjectStream<SentenceSample> {
 
   private final ObjectStream<ADSentenceStream.Sentence> adSentenceStream;
diff --git a/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADSentenceStream.java b/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADSentenceStream.java
index 47c0dbca..42244381 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADSentenceStream.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADSentenceStream.java
@@ -26,6 +26,7 @@ import java.util.Stack;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
+import opennlp.tools.commons.Internal;
 import opennlp.tools.formats.ad.ADSentenceStream.SentenceParser.Node;
 import opennlp.tools.util.FilterObjectStream;
 import opennlp.tools.util.ObjectStream;
@@ -44,6 +45,7 @@ import opennlp.tools.util.ObjectStream;
  * <b>Note:</b>
  * Do not use this class, internal use only!
  */
+@Internal
 public class ADSentenceStream extends FilterObjectStream<String, ADSentenceStream.Sentence> {
 
   public static class Sentence {
diff --git a/opennlp-tools/src/main/java/opennlp/tools/formats/ad/PortugueseContractionUtility.java b/opennlp-tools/src/main/java/opennlp/tools/formats/ad/PortugueseContractionUtility.java
index 4eb7a3e9..c734ba46 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/formats/ad/PortugueseContractionUtility.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/formats/ad/PortugueseContractionUtility.java
@@ -21,6 +21,7 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
 
+import opennlp.tools.commons.Internal;
 import opennlp.tools.util.StringUtil;
 
 /**
@@ -35,6 +36,7 @@ import opennlp.tools.util.StringUtil;
  * <b>Note:</b>
  * Do not use this class, internal use only!
  */
+@Internal
 public class PortugueseContractionUtility {
 
   protected static final Map<String, String> CONTRACTIONS;
diff --git a/opennlp-tools/src/main/java/opennlp/tools/sentdetect/EmptyLinePreprocessorStream.java b/opennlp-tools/src/main/java/opennlp/tools/sentdetect/EmptyLinePreprocessorStream.java
index dc4cb61e..dfdbca21 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/sentdetect/EmptyLinePreprocessorStream.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/sentdetect/EmptyLinePreprocessorStream.java
@@ -19,6 +19,7 @@ package opennlp.tools.sentdetect;
 
 import java.io.IOException;
 
+import opennlp.tools.commons.Internal;
 import opennlp.tools.util.FilterObjectStream;
 import opennlp.tools.util.ObjectStream;
 
@@ -32,10 +33,11 @@ import opennlp.tools.util.ObjectStream;
  * <br>
  * This stream should be used by the components that mark empty lines to mark document boundaries.
  * <p>
- * <b>Note:</b>
- * This class is not thread safe. <br>
- * Do not use this class, internal use only!
+ * <b>Note:</b> This class is not thread safe.
+ * <p>
+ * <b>Note:</b> Do not use this class, internal use only!
  */
+@Internal
 public class EmptyLinePreprocessorStream extends FilterObjectStream<String, String> {
 
   private boolean lastLineWasEmpty = true;
diff --git a/opennlp-tools/src/main/java/opennlp/tools/util/SequenceValidator.java b/opennlp-tools/src/main/java/opennlp/tools/util/SequenceValidator.java
index 7d955f45..94c9ba3e 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/util/SequenceValidator.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/util/SequenceValidator.java
@@ -32,7 +32,7 @@ public interface SequenceValidator<T> {
    * @param outcomesSequence The outcomes so far in this sequence.
    * @param outcome The next proposed outcome for the outcomes sequence.
    *
-   * @return {@link true} if the sequence would still be valid with the new outcome,
+   * @return {@code true} if the sequence would still be valid with the new outcome,
    *         {@code false} otherwise.
    */
   boolean validSequence(int i, T[] inputSequence, String[] outcomesSequence,
diff --git a/opennlp-tools/src/main/java/opennlp/tools/util/ext/ExtensionLoader.java b/opennlp-tools/src/main/java/opennlp/tools/util/ext/ExtensionLoader.java
index a0280102..f96e047c 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/util/ext/ExtensionLoader.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/util/ext/ExtensionLoader.java
@@ -19,12 +19,15 @@ package opennlp.tools.util.ext;
 
 import java.lang.reflect.Field;
 
+import opennlp.tools.commons.Internal;
+
 /**
  * The {@link ExtensionLoader} is responsible to load extensions to the OpenNLP library.
  * <p>
  * <b>Note:</b>
  * Do not use this class, internal use only!
  */
+@Internal
 public class ExtensionLoader {
 
   private static boolean isOsgiAvailable = false;
diff --git a/opennlp-tools/src/main/java/opennlp/tools/util/ext/OSGiExtensionLoader.java b/opennlp-tools/src/main/java/opennlp/tools/util/ext/OSGiExtensionLoader.java
index 540c5bd6..7e7f97e7 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/util/ext/OSGiExtensionLoader.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/util/ext/OSGiExtensionLoader.java
@@ -24,6 +24,8 @@ import org.osgi.framework.FrameworkUtil;
 import org.osgi.framework.InvalidSyntaxException;
 import org.osgi.util.tracker.ServiceTracker;
 
+import opennlp.tools.commons.Internal;
+
 /**
  * OSGi bundle activator which can use an OSGi service as
  * an OpenNLP extension.
@@ -31,6 +33,7 @@ import org.osgi.util.tracker.ServiceTracker;
  * <b>Note:</b>
  * Do not use this class, internal use only!
  */
+@Internal
 public class OSGiExtensionLoader implements BundleActivator {
 
   private static OSGiExtensionLoader instance;
diff --git a/opennlp-tools/src/main/java/opennlp/tools/util/model/ModelUtil.java b/opennlp-tools/src/main/java/opennlp/tools/util/model/ModelUtil.java
index 69dcbe0f..2cd03589 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/util/model/ModelUtil.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/util/model/ModelUtil.java
@@ -28,6 +28,7 @@ import java.util.Map;
 import java.util.Objects;
 import java.util.Set;
 
+import opennlp.tools.commons.Internal;
 import opennlp.tools.ml.maxent.GISTrainer;
 import opennlp.tools.ml.model.AbstractModel;
 import opennlp.tools.ml.model.GenericModelWriter;
@@ -145,8 +146,9 @@ public final class ModelUtil {
    * <b>Note:</b>
    * Do not use this method, internal use only!
    *
-   * @return training parameters instance
+   * @return The {@link TrainingParameters} instance with default configuration.
    */
+  @Internal
   public static TrainingParameters createDefaultTrainingParameters() {
     TrainingParameters mlParams = new TrainingParameters();
     mlParams.put(TrainingParameters.ALGORITHM_PARAM, GISTrainer.MAXENT_VALUE);