metron-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From l...@apache.org
Subject [metron] branch master updated: METRON-2009 Address Javadoc checkstyle issues in metron-common (justinleet) closes apache/metron#1342
Date Wed, 20 Feb 2019 15:52:00 GMT
This is an automated email from the ASF dual-hosted git repository.

leet pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/metron.git


The following commit(s) were added to refs/heads/master by this push:
     new 14dfdc6  METRON-2009 Address Javadoc checkstyle issues in metron-common (justinleet) closes apache/metron#1342
14dfdc6 is described below

commit 14dfdc69317f71388e63cd58e2064dc41f6934e5
Author: justinleet <justinjleet@gmail.com>
AuthorDate: Wed Feb 20 10:50:16 2019 -0500

    METRON-2009 Address Javadoc checkstyle issues in metron-common (justinleet) closes apache/metron#1342
---
 .../apache/metron/common/bolt/ConfiguredBolt.java  |  18 ++
 .../metron/common/cli/ConfigurationManager.java    |  78 +++++-
 .../metron/common/configuration/ConfigOption.java  |  69 ++++-
 .../metron/common/configuration/Configuration.java |  17 ++
 .../common/configuration/ConfigurationType.java    |  10 +
 .../common/configuration/Configurations.java       |  19 ++
 .../common/configuration/ConfigurationsUtils.java  | 281 ++++++++++++++++++++-
 .../configuration/EnrichmentConfigurations.java    |   9 +
 .../common/configuration/FieldTransformer.java     |  45 +++-
 .../common/configuration/FieldValidator.java       |  43 +++-
 .../configuration/IndexingConfigurations.java      | 107 +++++++-
 .../common/configuration/ParserConfigurations.java |   8 +
 .../common/configuration/SensorParserConfig.java   |  12 +-
 .../configuration/enrichment/EnrichmentConfig.java |  11 +-
 .../enrichment/SensorEnrichmentConfig.java         |   3 +
 .../enrichment/SensorEnrichmentUpdateConfig.java   |  14 +
 .../configuration/enrichment/handler/Config.java   |  14 +-
 .../enrichment/handler/ConfigHandler.java          |   8 +
 .../enrichment/threatintel/RiskLevelRule.java      |  13 +-
 .../enrichment/threatintel/RuleScore.java          |   6 +-
 .../enrichment/threatintel/ThreatScore.java        |   4 +-
 .../enrichment/threatintel/ThreatTriageConfig.java |  11 +
 .../configuration/profiler/ProfileConfig.java      |   6 +-
 .../configuration/profiler/ProfileResult.java      |   2 +-
 .../profiler/ProfileTriageExpressions.java         |   4 +-
 .../configuration/profiler/ProfilerConfig.java     |   6 +-
 .../writer/ConfigurationStrategy.java              |   8 +-
 .../writer/ConfigurationsStrategies.java           |   2 +-
 .../writer/EnrichmentWriterConfiguration.java      |   4 +-
 .../writer/ProfilerWriterConfiguration.java        |   4 +-
 .../configuration/writer/WriterConfiguration.java  |   7 +-
 .../org/apache/metron/common/csv/CSVConverter.java |  41 ++-
 .../apache/metron/common/error/MetronError.java    |  11 +
 .../metron/common/field/FieldNameConverters.java   |   8 +-
 .../field/transformation/FieldTransformations.java |   7 +
 .../transformation/RegexSelectTransformation.java  |   2 +-
 .../common/field/validation/FieldValidations.java  |   7 +
 .../field/validation/network/IPValidation.java     |   2 +-
 .../field/validation/primitive/DateValidation.java |   2 +-
 .../metron/common/hadoop/SequenceFileIterable.java |   4 +-
 .../metadata/DefaultRawMessageStrategy.java        |   8 +-
 .../metadata/EnvelopedRawMessageStrategy.java      |  10 +-
 .../common/message/metadata/MetadataUtil.java      |  11 +-
 .../metron/common/message/metadata/RawMessage.java |   6 +-
 .../message/metadata/RawMessageStrategies.java     |  10 +-
 .../message/metadata/RawMessageStrategy.java       |   4 +-
 .../common/message/metadata/RawMessageUtil.java    |  12 +-
 .../common/performance/PerformanceLogger.java      |  22 +-
 .../common/performance/ThresholdCalculator.java    |   2 +-
 .../apache/metron/common/performance/Timing.java   |   4 +-
 .../org/apache/metron/common/system/Clock.java     |   6 +
 .../apache/metron/common/system/Environment.java   |   2 +-
 .../org/apache/metron/common/system/FakeClock.java |  45 ++--
 .../common/typosquat/TyposquattingStrategies.java  |  12 +
 .../org/apache/metron/common/utils/ErrorUtils.java |  13 +-
 .../org/apache/metron/common/utils/HDFSUtils.java  |  11 +-
 .../org/apache/metron/common/utils/HashUtils.java  |  11 +
 .../org/apache/metron/common/utils/JSONUtils.java  |  49 +++-
 .../org/apache/metron/common/utils/KafkaUtils.java |  29 +++
 .../org/apache/metron/common/utils/KeyUtil.java    |  13 +
 .../metron/common/utils/ReflectionUtils.java       |  10 +-
 .../org/apache/metron/common/utils/SerDeUtils.java |   4 +-
 .../apache/metron/common/utils/StringUtils.java    |  14 +-
 .../metron/common/utils/cli/OptionHandler.java     |  26 ++
 .../common/utils/file/ReaderSpliterator.java       |  10 +-
 .../utils/timestamp/TimestampConverters.java       |   6 +
 .../metron/common/writer/BulkWriterResponse.java   |  11 +
 .../common/zookeeper/ZKConfigurationsCache.java    |  18 +-
 .../configurations/ConfigurationsUpdater.java      |  11 +-
 69 files changed, 1159 insertions(+), 158 deletions(-)

diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/bolt/ConfiguredBolt.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/bolt/ConfiguredBolt.java
index ef3b2bf..221edad 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/bolt/ConfiguredBolt.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/bolt/ConfiguredBolt.java
@@ -28,6 +28,7 @@ import org.apache.metron.common.Constants;
 import org.apache.metron.common.configuration.ConfigurationType;
 import org.apache.metron.common.configuration.Configurations;
 import org.apache.metron.common.configuration.ConfigurationsUtils;
+import org.apache.metron.common.configuration.ParserConfigurations;
 import org.apache.metron.common.configuration.writer.ConfigurationStrategy;
 import org.apache.metron.common.configuration.writer.ConfigurationsStrategies;
 import org.apache.metron.zookeeper.SimpleEventListener;
@@ -40,6 +41,12 @@ import org.apache.storm.topology.base.BaseRichBolt;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+/**
+ * A Storm bolt that will manage configuration via ZooKeeper. A cache is maintained using an
+ * {@link ZKCache}
+ *
+ * @param <CONFIG_T> The config type being used, e.g. {@link ParserConfigurations}
+ */
 public abstract class ConfiguredBolt<CONFIG_T extends Configurations> extends BaseRichBolt implements Reloadable {
 
   private static final Logger LOG =  LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
@@ -50,6 +57,14 @@ public abstract class ConfiguredBolt<CONFIG_T extends Configurations> extends Ba
   protected CuratorFramework client;
   protected ZKCache cache;
   private final CONFIG_T configurations;
+
+  /**
+   * Builds the bolt that knows where to communicate with ZooKeeper and which configuration this
+   * bolt will be responsible for.
+   *
+   * @param zookeeperUrl A URL for ZooKeeper in the form host:port
+   * @param configurationStrategy The configuration strategy to use, e.g. INDEXING or PROFILER
+   */
   public ConfiguredBolt(String zookeeperUrl, String configurationStrategy) {
     this.zookeeperUrl = zookeeperUrl;
     this.configurationStrategy = configurationStrategy;
@@ -86,6 +101,9 @@ public abstract class ConfiguredBolt<CONFIG_T extends Configurations> extends Ba
     prepCache();
   }
 
+  /**
+   * Prepares the cache that will be used during Metron's interaction with ZooKeeper.
+   */
   protected void prepCache() {
     try {
       if (client == null) {
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/cli/ConfigurationManager.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/cli/ConfigurationManager.java
index f42831c..14e3653 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/cli/ConfigurationManager.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/cli/ConfigurationManager.java
@@ -43,6 +43,11 @@ import org.apache.metron.common.configuration.ConfigurationsUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+/**
+ * Program for managing configuration in ZooKeeper. This can handle pushing/pulling data in ZK.
+ * This can be done by specific configuration type (e.g. INDEXING) and by specific configuration
+ * (e.g. bro).
+ */
 public class ConfigurationManager {
   private static final Logger LOG = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
@@ -136,6 +141,14 @@ public class ConfigurationManager {
       return cli.getOptionValue(shortCode);
     }
 
+    /**
+     * Parses the arguments passed via the command line using Apache Commons CLI.
+     * If a parsing error occurs, help will be printed and the program will exit.
+     *
+     * @param parser The parser to be used for parsing incoming arguments
+     * @param args The arguments to be parsed
+     * @return The parsed arguments
+     */
     public static CommandLine parse(CommandLineParser parser, String[] args) {
       try {
         CommandLine cli = parser.parse(getOptions(), args);
@@ -153,11 +166,18 @@ public class ConfigurationManager {
       }
     }
 
+    /**
+     * Prints formatted help if the user requested it or provided invalid arguments.
+     */
     public static void printHelp() {
       HelpFormatter formatter = new HelpFormatter();
       formatter.printHelp( "configuration_manager", getOptions());
     }
 
+    /**
+     * Returns the configurations options that are available.
+     * @return The options available
+     */
     public static Options getOptions() {
       Options ret = new Options();
       for(ConfigurationOptions o : ConfigurationOptions.values()) {
@@ -167,29 +187,39 @@ public class ConfigurationManager {
     }
   }
 
+  /**
+   * What type of patch is being applied. ADD/REMOVE modify keys when no patch file is present.
+   */
   public enum PatchMode {
     ADD, REMOVE, REPLACE, MOVE, COPY, TEST;
   }
 
   /**
-   * Dumps all config
-   * @param client
-   * @throws Exception
+   * Dumps all config.
+   * @param client The ZooKeeper client for configs
+   * @throws Exception If there's an error retrieving configs
    */
   public void dump(CuratorFramework client) throws Exception {
     ConfigurationsUtils.dumpConfigs(System.out, client);
   }
 
   /**
-   * Dumps specific config type only
-   * @param client
-   * @param type
-   * @throws Exception
+   * Dumps specific config type only.
+   * @param client The ZooKeeper client for configs
+   * @param type The type of config to retrieve, e.g. INDEXING
+   * @throws Exception If there's an error retrieving the config.
    */
   public void dump(CuratorFramework client, ConfigurationType type, Optional<String> configName) throws Exception {
     ConfigurationsUtils.dumpConfigs(System.out, client, type, configName);
   }
 
+  /**
+   * Retrieves configuration and writes it on local disk.
+   * @param client The Zookeeper client for configs
+   * @param outFileStr The output location to write the config to
+   * @param force Overwrite, if there's already data in the output location.
+   * @throws Exception If there's an issue retrieving data or writing out.
+   */
   public void pull(CuratorFramework client, String outFileStr, final boolean force) throws Exception {
     final File outputDir = new File(outFileStr);
     if (!outputDir.exists()) {
@@ -218,6 +248,12 @@ public class ConfigurationManager {
     });
   }
 
+  /**
+   * Pushes local config data to ZooKeeper.
+   * @param inputDirStr The input dir where config data is located.
+   * @param client The ZooKeeper client for configs
+   * @throws Exception If there's no data in the input location or there's an error writing to ZK
+   */
   public void push(String inputDirStr, CuratorFramework client) throws Exception {
     final File inputDir = new File(inputDirStr);
 
@@ -227,6 +263,14 @@ public class ConfigurationManager {
     ConfigurationsUtils.uploadConfigsToZookeeper(inputDirStr, client);
   }
 
+  /**
+   * Pushes local config data to ZooKeeper for a specific config type and, optionally, config name.
+   * @param inputDirStr The input dir where config data is located
+   * @param client The ZooKeeper client for configs
+   * @param type The config type being pushed, e.g. INDEXING
+   * @param configName The config name being pushed, e.g. bro
+   * @throws Exception If there's no data in the input location or there's an error writing to ZK
+   */
   public void push(String inputDirStr, CuratorFramework client, ConfigurationType type, Optional<String> configName)
       throws Exception {
     final File inputDir = new File(inputDirStr);
@@ -238,12 +282,26 @@ public class ConfigurationManager {
     ConfigurationsUtils.uploadConfigsToZookeeper(inputDirStr, client, type, configName);
   }
 
+  /**
+   * Opens a connection to ZooKeeper and performs the requested operation.
+   * @param cli The command line options provided by the user
+   * @throws Exception If there's an error executing requested actions
+   */
   public void run(CommandLine cli) throws Exception {
     try(CuratorFramework client = ConfigurationsUtils.getClient(ConfigurationOptions.ZK_QUORUM.get(cli))) {
       client.start();
       run(client, cli);
     }
   }
+
+
+  /**
+   * Performs the requested actions with ZooKeeper, e.g. pushing / pulling requested configs.
+   *
+   * @param client The ZooKeeper client for configs
+   * @param cli The command line options provided by the user
+   * @throws Exception If there's an error executing requested actions
+   */
   public void run(CuratorFramework client, CommandLine cli) throws Exception {
     final boolean force = ConfigurationOptions.FORCE.has(cli);
     String mode = ConfigurationOptions.MODE.get(cli);
@@ -353,6 +411,12 @@ public class ConfigurationManager {
     return new File(new File(baseDir, configurationType.getDirectory()), name + ".json");
   }
 
+  /**
+   * Parses and executes the program to manage configs in ZooKeeper.
+   *
+   * @param argv User input arguments.
+   * @throws Exception If there's an issue running the program
+   */
   public static void main(String... argv) throws Exception {
     CommandLineParser parser = new PosixParser();
     CommandLine cli = ConfigurationOptions.parse(parser, argv);
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/ConfigOption.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/ConfigOption.java
index 14d5b69..1174630 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/ConfigOption.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/ConfigOption.java
@@ -22,16 +22,25 @@ import java.util.Map;
 import java.util.function.BiFunction;
 import org.apache.metron.stellar.common.utils.ConversionUtils;
 
+/**
+ * Interface for defining Key -> Value options for programs, along with some basic utilities for
+ * handling casting to specified types.
+ */
 public interface ConfigOption {
 
   String getKey();
 
+  /**
+   * A default identity transformation.
+   *
+   * @return The transformed object
+   */
   default BiFunction<String, Object, Object> transform() {
     return (s, o) -> o;
   }
 
   /**
-   * Returns true if the map contains the key for the defined config option
+   * Returns true if the map contains the key for the defined config option.
    */
   default boolean containsOption(Map<String, Object> map) {
     return map.containsKey(getKey());
@@ -41,11 +50,29 @@ public interface ConfigOption {
     map.put(getKey(), value);
   }
 
+  /**
+   * Retrieves a value from a {@link Map}. It will cast to a provided class. If nothing is found,
+   * a default will be returned.
+   *
+   * @param map The map to look for the key in
+   * @param clazz The class to cast the value to
+   * @param defaultValue The default value if no key is found
+   * @param <T> The class type parameter for the class being casted to
+   * @return The value, or if not found, the default value
+   */
   default <T> T getOrDefault(Map<String, Object> map, Class<T> clazz, T defaultValue) {
     T val;
     return ((val = get(map, clazz)) == null ? defaultValue : val);
   }
 
+  /**
+   * Retrieves a value from a {@link Map}. It will cast to a provided class.
+   *
+   * @param map The map to look for the key in
+   * @param clazz The class to cast the value to
+   * @param <T> The class type parameter for the class being casted to
+   * @return The value if found, else null
+   */
   default <T> T get(Map<String, Object> map, Class<T> clazz) {
     Object obj = map.get(getKey());
     if (clazz.isInstance(obj)) {
@@ -55,22 +82,62 @@ public interface ConfigOption {
     }
   }
 
+  /**
+   * Retrieves a transformed result from a {@link Map}. It will cast to a provided class. If
+   * the transformation result is null, a default will be returned.
+   *
+   * @param map The map to look for the key in
+   * @param transform The transform to run on key-value
+   * @param clazz The class to cast the value to
+   * @param defaultValue The default value if no key is found
+   * @param <T> The class type parameter for the class being casted to
+   * @return The transformed result of the lookup, or the default value if the result is null
+   */
   default <T> T getOrDefault(Map<String, Object> map, BiFunction<String, Object, T> transform,
       Class<T> clazz, T defaultValue) {
     T val;
     return ((val = get(map, transform, clazz)) == null ? defaultValue : val);
   }
 
+  /**
+   * Retrieves a transformed result from a {@link Map}. It will cast to a provided class.
+   *
+   * @param map The map to look for the key in
+   * @param transform The transform to run on key-value
+   * @param clazz The class to cast the value to
+   * @param <T> The class type parameter for the class being casted to
+   * @return The transformed result of the lookup
+   */
   default <T> T get(Map<String, Object> map, BiFunction<String, Object, T> transform,
       Class<T> clazz) {
     return clazz.cast(transform.apply(getKey(), map.get(getKey())));
   }
 
+  /**
+   * Retrieves a transformed result from a {@link Map}. It will cast to a provided class. The
+   * transform is the one provided by the implementation. If the transformation result is null,
+   * a default will be returned.
+   *
+   * @param map The map to look for the key in
+   * @param clazz The class to cast the value to
+   * @param defaultValue The default value if no key is found
+   * @param <T> The class type parameter for the class being casted to
+   * @return The transformed result of the lookup, or the default value if the result is null
+   */
   default <T> T getTransformedOrDefault(Map<String, Object> map, Class<T> clazz, T defaultValue) {
     T val;
     return ((val = getTransformed(map, clazz)) == null ? defaultValue : val);
   }
 
+  /**
+   * Retrieves a transformed result from a {@link Map}. It will cast to a provided class. The
+   * transform is the one provided by the implementation.
+   *
+   * @param map The map to look for the key in
+   * @param clazz The class to cast the value to
+   * @param <T> The class type parameter for the class being casted to
+   * @return The transformed result of the lookup, or the default value if the result is null
+   */
   default <T> T getTransformed(Map<String, Object> map, Class<T> clazz) {
     return clazz.cast(transform().apply(getKey(), map.get(getKey())));
   }
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/Configuration.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/Configuration.java
index ebb46e4..aa16c91 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/Configuration.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/Configuration.java
@@ -22,11 +22,19 @@ import org.apache.curator.framework.CuratorFramework;
 import java.nio.file.Path;
 import java.util.Map;
 
+/**
+ * Allows users to have a {@link Configurations} that can use a ZooKeeper curator or a file during
+ * updates of the global config.
+ */
 public class Configuration extends Configurations {
 
     protected CuratorFramework curatorFramework = null;
     private Path configFileRoot;
 
+    /**
+     * Constructor for interacting with ZooKeeper.
+     * @param curatorFramework The ZooKeeper curator to use for configs
+     */
     public Configuration(CuratorFramework curatorFramework){
 
         this.curatorFramework = curatorFramework;
@@ -34,11 +42,20 @@ public class Configuration extends Configurations {
     }
 
 
+    /**
+     * Constructor for interacting with a file.
+     * @param configFileRoot The config file path to use
+     */
     public Configuration(Path configFileRoot){
 
         this.configFileRoot = configFileRoot;
     }
 
+    /**
+     * If there's a ZooKeeper client available, use that for updating configs, otherwise
+     * update global configs from a file.
+     * @throws Exception If there's an issue updating the config
+     */
     public void update() throws Exception {
 
         if( null != curatorFramework ) {
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/ConfigurationType.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/ConfigurationType.java
index 6a03cb6..c1cf598 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/ConfigurationType.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/ConfigurationType.java
@@ -22,6 +22,9 @@ import com.google.common.base.Function;
 import java.io.IOException;
 import org.apache.curator.framework.CuratorFramework;
 
+/**
+ * Defines the types of configurations available and the associated {@link ConfigurationOperations}.
+ */
 public enum ConfigurationType implements Function<String, Object>, ConfigurationOperations {
 
   GLOBAL(new GlobalConfigurationOperations()),
@@ -44,6 +47,13 @@ public enum ConfigurationType implements Function<String, Object>, Configuration
     return ops.getDirectory();
   }
 
+  /**
+   * Deserializes a string according for the config type.
+   *
+   * @param s The string to be deserialized
+   * @return The deserialized string
+   * @throws RuntimeException If the string cannot be deserialized
+   */
   public Object deserialize(String s) {
     try {
       return ops.deserialize(s);
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/Configurations.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/Configurations.java
index 62cf742..ba336f1 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/Configurations.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/Configurations.java
@@ -32,6 +32,9 @@ import org.apache.metron.stellar.common.utils.ConversionUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+/**
+ * Allows for retrieval and update of configurations, particularly global configurations.
+ */
 public class Configurations implements Serializable {
   private static final Logger LOG = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
   private List<FieldValidator> validations = new ArrayList<>();
@@ -64,6 +67,11 @@ public class Configurations implements Serializable {
     updateGlobalConfig(globalConfig);
   }
 
+  /**
+   * Updates the global config from a provided map.
+   *
+   * @param globalConfig The map to update the config to
+   */
   public void updateGlobalConfig(Map<String, Object> globalConfig) {
     if(globalConfig != null) {
       getConfigurations().put(ConfigurationType.GLOBAL.getTypeName(), globalConfig);
@@ -75,6 +83,17 @@ public class Configurations implements Serializable {
     getConfigurations().remove(ConfigurationType.GLOBAL.getTypeName());
   }
 
+  /**
+   * Retrieves a key from a map, casts it to a provided class. If there is no entry for the key,
+   * a default is returned.
+   *
+   * @param key The key to retrieve from the map
+   * @param map The map to retrieve the key from
+   * @param defaultValue The default value to return if no value is found
+   * @param clazz The class to cast the result to
+   * @param <T> The type value of the class being casted to
+   * @return The casted value if found, the default value otherwise
+   */
   public static <T> T getAs(String key, Map<String, Object> map, T defaultValue, Class<T> clazz) {
     return map == null ? defaultValue
         : ConversionUtils.convert(map.getOrDefault(key, defaultValue), clazz);
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/ConfigurationsUtils.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/ConfigurationsUtils.java
index 4550a41..910fe27 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/ConfigurationsUtils.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/ConfigurationsUtils.java
@@ -54,6 +54,10 @@ import org.apache.zookeeper.KeeperException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+/**
+ * A Utility class for managing various configs, including global configs, sensor specific configs,
+ * and profiler configs.
+ */
 public class ConfigurationsUtils {
   protected static final Logger LOG =  LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
@@ -62,16 +66,38 @@ public class ConfigurationsUtils {
     return CuratorFrameworkFactory.newClient(zookeeperUrl, retryPolicy);
   }
 
+  /**
+   * Writes the global config from a map to ZooKeeper.
+   *
+   * @param globalConfig The key -> value config to upload
+   * @param zookeeperUrl The ZK URL in host:port format
+   * @throws Exception If there's an error writing to ZK
+   */
   public static void writeGlobalConfigToZookeeper(Map<String, Object> globalConfig, String zookeeperUrl) throws Exception {
     try(CuratorFramework client = getClient(zookeeperUrl)) {
      client.start();
       writeGlobalConfigToZookeeper(globalConfig, client);
     }
   }
+
+  /**
+   * Writes the global config from a map to ZooKeeper.
+   *
+   * @param globalConfig The key -> value config to upload
+   * @param client The ZK client to use
+   * @throws Exception If there's an error writing to ZK
+   */
   public static void writeGlobalConfigToZookeeper(Map<String, Object> globalConfig, CuratorFramework client) throws Exception {
     writeGlobalConfigToZookeeper(JSONUtils.INSTANCE.toJSONPretty(globalConfig), client);
   }
 
+  /**
+   * Writes the global config from raw bytes to ZooKeeper.
+   *
+   * @param globalConfig The config to upload as bytes
+   * @param zookeeperUrl The ZK URL in host:port format
+   * @throws Exception If there's an error writing to ZK
+   */
   public static void writeGlobalConfigToZookeeper(byte[] globalConfig, String zookeeperUrl) throws Exception {
     try(CuratorFramework client = getClient(zookeeperUrl)) {
       client.start();
@@ -79,20 +105,50 @@ public class ConfigurationsUtils {
     }
   }
 
+  /**
+   * Writes the global config from raw bytes to ZooKeeper.
+   *
+   * @param globalConfig The config to upload as bytes
+   * @param client The ZK client to use
+   * @throws Exception If there's an error writing to ZK
+   */
   public static void writeGlobalConfigToZookeeper(byte[] globalConfig, CuratorFramework client) throws Exception {
     GLOBAL.deserialize(new String(globalConfig));
     writeToZookeeper(GLOBAL.getZookeeperRoot(), globalConfig, client);
   }
 
+  /**
+   * Writes the profiler config from raw bytes to ZooKeeper.
+   *
+   * @param config The config to upload as bytes
+   * @param client The ZK client to use
+   * @throws Exception If there's an error writing to ZK
+   */
   public static void writeProfilerConfigToZookeeper(byte[] config, CuratorFramework client) throws Exception {
     PROFILER.deserialize(new String(config));
     writeToZookeeper(PROFILER.getZookeeperRoot(), config, client);
   }
 
+  /**
+   * Writes sensor parser config to ZooKeeper for a specific sensor.
+   *
+   * @param sensorType The specific sensor to write configs for
+   * @param sensorParserConfig The config for the sensor
+   * @param zookeeperUrl The ZK URL in host:port format
+   * @throws Exception If there's an error writing to ZK
+   */
   public static void writeSensorParserConfigToZookeeper(String sensorType, SensorParserConfig sensorParserConfig, String zookeeperUrl) throws Exception {
     writeSensorParserConfigToZookeeper(sensorType, JSONUtils.INSTANCE.toJSONPretty(sensorParserConfig), zookeeperUrl);
   }
 
+  /**
+   * Writes sensor parser config from raw bytes to ZooKeeper for a specific sensor.
+   *
+   * @param sensorType The specific sensor to write configs for
+   * @param configData The config for the sensor in raw bytes
+   * @param zookeeperUrl The ZK URL in host:port format
+   * @throws Exception If there's an error writing to ZK
+   */
   public static void writeSensorParserConfigToZookeeper(String sensorType, byte[] configData, String zookeeperUrl) throws Exception {
     try(CuratorFramework client = getClient(zookeeperUrl)) {
       client.start();
@@ -100,16 +156,40 @@ public class ConfigurationsUtils {
     }
   }
 
+  /**
+   * Writes sensor parser config from raw bytes to ZooKeeper for a specific sensor.
+   *
+   * @param sensorType The specific sensor to write configs for
+   * @param configData The config for the sensor in raw bytes
+   * @param client The ZK client to use
+   * @throws Exception If there's an error writing to ZK
+   */
   public static void writeSensorParserConfigToZookeeper(String sensorType, byte[] configData, CuratorFramework client) throws Exception {
     SensorParserConfig c = (SensorParserConfig) PARSER.deserialize(new String(configData));
     c.init();
     writeToZookeeper(PARSER.getZookeeperRoot() + "/" + sensorType, configData, client);
   }
 
+  /**
+   * Writes sensor indexing config to ZooKeeper for a specific sensor.
+   *
+   * @param sensorType The specific sensor to write configs for
+   * @param sensorIndexingConfig The config for the sensor
+   * @param zookeeperUrl The ZK URL in host:port format
+   * @throws Exception If there's an error writing to ZK
+   */
   public static void writeSensorIndexingConfigToZookeeper(String sensorType, Map<String, Object> sensorIndexingConfig, String zookeeperUrl) throws Exception {
     writeSensorIndexingConfigToZookeeper(sensorType, JSONUtils.INSTANCE.toJSONPretty(sensorIndexingConfig), zookeeperUrl);
   }
 
+  /**
+   * Writes sensor indexing config from raw bytes to ZooKeeper for a specific sensor.
+   *
+   * @param sensorType The specific sensor to write configs for
+   * @param configData The config for the sensor in raw bytes
+   * @param zookeeperUrl The ZK URL in host:port format
+   * @throws Exception If there's an error writing to ZK
+   */
   public static void writeSensorIndexingConfigToZookeeper(String sensorType, byte[] configData, String zookeeperUrl) throws Exception {
     try(CuratorFramework client = getClient(zookeeperUrl)) {
       client.start();
@@ -117,15 +197,39 @@ public class ConfigurationsUtils {
     }
   }
 
+  /**
+   * Writes sensor indexing config from raw bytes to ZooKeeper for a specific sensor.
+   *
+   * @param sensorType The specific sensor to write configs for
+   * @param configData The config for the sensor in raw bytes
+   * @param client The ZK client to use
+   * @throws Exception If there's an error writing to ZK
+   */
   public static void writeSensorIndexingConfigToZookeeper(String sensorType, byte[] configData, CuratorFramework client) throws Exception {
     INDEXING.deserialize(new String(configData));
     writeToZookeeper(INDEXING.getZookeeperRoot() + "/" + sensorType, configData, client);
   }
 
+  /**
+   * Writes sensor enrichment config to ZooKeeper for a specific sensor.
+   *
+   * @param sensorType The specific sensor to write configs for
+   * @param sensorEnrichmentConfig The config for the sensor
+   * @param zookeeperUrl The ZK URL in host:port format
+   * @throws Exception If there's an error writing to ZK
+   */
   public static void writeSensorEnrichmentConfigToZookeeper(String sensorType, SensorEnrichmentConfig sensorEnrichmentConfig, String zookeeperUrl) throws Exception {
     writeSensorEnrichmentConfigToZookeeper(sensorType, JSONUtils.INSTANCE.toJSONPretty(sensorEnrichmentConfig), zookeeperUrl);
   }
 
+  /**
+   * Writes sensor enrichment config from raw bytes to ZooKeeper for a specific sensor.
+   *
+   * @param sensorType The specific sensor to write configs for
+   * @param configData The config for the sensor in raw bytes
+   * @param zookeeperUrl The ZK URL in host:port format
+   * @throws Exception If there's an error writing to ZK
+   */
   public static void writeSensorEnrichmentConfigToZookeeper(String sensorType, byte[] configData, String zookeeperUrl) throws Exception {
     try(CuratorFramework client = getClient(zookeeperUrl)) {
       client.start();
@@ -133,6 +237,14 @@ public class ConfigurationsUtils {
     }
   }
 
+  /**
+   * Writes sensor enrichment config from raw bytes to ZooKeeper for a specific sensor.
+   *
+   * @param sensorType The specific sensor to write configs for
+   * @param configData The config for the sensor in raw bytes
+   * @param client The ZK client to use
+   * @throws Exception If there's an error writing to ZK
+   */
   public static void writeSensorEnrichmentConfigToZookeeper(String sensorType, byte[] configData, CuratorFramework client) throws Exception {
     ENRICHMENT.deserialize(new String(configData));
     writeToZookeeper(ENRICHMENT.getZookeeperRoot() + "/" + sensorType, configData, client);
@@ -163,7 +275,7 @@ public class ConfigurationsUtils {
   }
 
   /**
-   * Writes config to path in Zookeeper, /metron/topology/$CONFIG_TYPE/$CONFIG_NAME
+   * Writes config to path in Zookeeper, /metron/topology/$CONFIG_TYPE/$CONFIG_NAME.
    */
   public static void writeConfigToZookeeper(String configPath, byte[] config, String zookeeperUrl)
       throws Exception {
@@ -173,6 +285,14 @@ public class ConfigurationsUtils {
     }
   }
 
+  /**
+   * Writes raw bytes data to a specified path in ZooKeeper.
+   *
+   * @param path The path to write data to
+   * @param configData The config data to write
+   * @param client The ZK client to use
+   * @throws Exception If there's an error writing data
+   */
   public static void writeToZookeeper(String path, byte[] configData, CuratorFramework client) throws Exception {
     try {
       client.setData().forPath(path, configData);
@@ -181,11 +301,16 @@ public class ConfigurationsUtils {
     }
   }
 
+  /**
+   * Updates global config from ZooKeeper.
+   * @param configurations The configurations to load into
+   * @param client The Zk client to use
+   * @throws Exception If there's an error reading data
+   */
   public static void updateConfigsFromZookeeper(Configurations configurations, CuratorFramework client) throws Exception {
     configurations.updateGlobalConfig(readGlobalConfigBytesFromZookeeper(client));
   }
 
-
   private interface Callback {
     void apply(String sensorType) throws Exception;
   }
@@ -213,6 +338,13 @@ public class ConfigurationsUtils {
     }
   }
 
+  /**
+   * Update parser configs from ZooKeeper.
+   *
+   * @param configurations The configurations to load into
+   * @param client The Zk client to use
+   * @throws Exception If there's an error reading data
+   */
   public static void updateParserConfigsFromZookeeper(ParserConfigurations configurations, CuratorFramework client) throws Exception {
     updateConfigsFromZookeeper( configurations
                               , PARSER
@@ -221,6 +353,13 @@ public class ConfigurationsUtils {
                               );
   }
 
+  /**
+   * Update indexing configs from ZooKeeper.
+   *
+   * @param configurations The configurations to load into
+   * @param client The Zk client to use
+   * @throws Exception If there's an error reading data
+   */
   public static void updateSensorIndexingConfigsFromZookeeper(IndexingConfigurations configurations, CuratorFramework client) throws Exception {
     updateConfigsFromZookeeper( configurations
                               , INDEXING
@@ -229,6 +368,13 @@ public class ConfigurationsUtils {
                               );
   }
 
+  /**
+   * Update enrichment configs from ZooKeeper.
+   *
+   * @param configurations The configurations to load into
+   * @param client The Zk client to use
+   * @throws Exception If there's an error reading data
+   */
   public static void updateEnrichmentConfigsFromZookeeper(EnrichmentConfigurations configurations, CuratorFramework client) throws Exception {
     updateConfigsFromZookeeper( configurations
                               , ENRICHMENT
@@ -242,7 +388,7 @@ public class ConfigurationsUtils {
    *
    * @param client The Zookeeper client.
    * @return The global configuration, if one exists.  Otherwise, null.
-   * @throws Exception
+   * @throws Exception If there's an error reading from ZK
    */
   public static Map<String, Object> readGlobalConfigFromZookeeper(CuratorFramework client) throws Exception {
     Map<String, Object> config = null;
@@ -262,7 +408,7 @@ public class ConfigurationsUtils {
    * @param sensorType The type of sensor.
    * @param client The Zookeeper client.
    * @return The indexing configuration for the given sensor type, if one exists.  Otherwise, null.
-   * @throws Exception
+   * @throws Exception If there's an error reading from ZK
    */
   public static Map<String, Object> readSensorIndexingConfigFromZookeeper(String sensorType, CuratorFramework client) throws Exception {
     Map<String, Object> config = null;
@@ -282,7 +428,7 @@ public class ConfigurationsUtils {
    * @param sensorType The type of sensor.
    * @param client The Zookeeper client.
    * @return The Enrichment configuration for the given sensor type, if one exists. Otherwise, null.
-   * @throws Exception
+   * @throws Exception If there's an error reading from ZK
    */
   public static SensorEnrichmentConfig readSensorEnrichmentConfigFromZookeeper(String sensorType, CuratorFramework client) throws Exception {
     SensorEnrichmentConfig config = null;
@@ -301,7 +447,7 @@ public class ConfigurationsUtils {
    * @param sensorType The type of sensor.
    * @param client The Zookeeper client.
    * @return The Parser configuration for the given sensor type, if one exists. Otherwise, null.
-   * @throws Exception
+   * @throws Exception If there's an error reading from ZK
    */
   public static SensorParserConfig readSensorParserConfigFromZookeeper(String sensorType, CuratorFramework client) throws Exception {
     SensorParserConfig config = null;
@@ -319,7 +465,7 @@ public class ConfigurationsUtils {
    *
    * @param client The Zookeeper client.
    * @return THe Profiler configuration.
-   * @throws Exception
+   * @throws Exception If there's an error reading from ZK
    */
   public static ProfilerConfig readProfilerConfigFromZookeeper(CuratorFramework client) throws Exception {
     ProfilerConfig config = null;
@@ -371,6 +517,14 @@ public class ConfigurationsUtils {
     return readFromZookeeper(getConfigZKPath(configType, configName), zookeeperUrl);
   }
 
+  /**
+   * Reads data from ZooKeeper located in a given path.
+   *
+   * @param path The path to read from
+   * @param zookeeperUrl The ZK URL in host:port format
+   * @return The raw bytes of the data
+   * @throws Exception If there's an error reading data
+   */
   public static byte[] readFromZookeeper(String path, String zookeeperUrl) throws Exception {
     try (CuratorFramework client = getClient(zookeeperUrl)) {
       client.start();
@@ -384,7 +538,7 @@ public class ConfigurationsUtils {
    * @param path The path to the Zookeeper node to read.
    * @param client The Zookeeper client.
    * @return The bytes read from Zookeeper, if node exists.  Otherwise, null.
-   * @throws Exception
+   * @throws Exception If there's an issue reading from ZK
    */
   public static Optional<byte[]> readFromZookeeperSafely(String path, CuratorFramework client) throws Exception {
     Optional<byte[]> result = Optional.empty();
@@ -415,6 +569,17 @@ public class ConfigurationsUtils {
     return new byte[]{};
   }
 
+  /**
+   * Uploads configs from local storage into ZooKeeper.
+   *
+   * @param globalConfigPath The local path of the global configs
+   * @param parsersConfigPath The local path of the parser configs
+   * @param enrichmentsConfigPath The local path of enrichment configs
+   * @param indexingConfigPath The local path of indexing configs
+   * @param profilerConfigPath The local path of profiler configs
+   * @param zookeeperUrl The ZK url in host:port format
+   * @throws Exception If there's an error reading or uploading configs
+   */
   public static void uploadConfigsToZookeeper(String globalConfigPath,
                                               String parsersConfigPath,
                                               String enrichmentsConfigPath,
@@ -427,6 +592,12 @@ public class ConfigurationsUtils {
     }
   }
 
+  /**
+   * Uploads local filesystem stored configs to ZooKeeper based on the specified rootFilePath.
+   * @param rootFilePath Base configuration path on the local FSj
+   * @param client The ZK client to use
+   * @throws Exception If there's an issue reading local or uploading local configs
+   */
   public static void uploadConfigsToZookeeper(String rootFilePath, CuratorFramework client) throws Exception {
     uploadConfigsToZookeeper(rootFilePath, rootFilePath, rootFilePath, rootFilePath, rootFilePath, client);
   }
@@ -503,6 +674,17 @@ public class ConfigurationsUtils {
     }
   }
 
+  /**
+   * Uploads configs from local storage into ZooKeeper.
+   *
+   * @param globalConfigPath The local path of the global configs
+   * @param parsersConfigPath The local path of the parser configs
+   * @param enrichmentsConfigPath The local path of enrichment configs
+   * @param indexingConfigPath The local path of indexing configs
+   * @param profilerConfigPath The local path of profiler configs
+   * @param client The ZK client to use
+   * @throws Exception If there's an error reading or uploading configs
+   */
   public static void uploadConfigsToZookeeper(String globalConfigPath,
                                               String parsersConfigPath,
                                               String enrichmentsConfigPath,
@@ -552,6 +734,12 @@ public class ConfigurationsUtils {
     }
   }
 
+  /**
+   * Sets up Stellar statically with a connection to ZooKeeper and optionally, global configuration
+   * to be used. Global config will be pulled from ZooKeeper.
+   *
+   * @param client The ZK client to be used
+   */
   public static void setupStellarStatically(CuratorFramework client) throws Exception {
     byte[] ret = null;
     try {
@@ -568,6 +756,13 @@ public class ConfigurationsUtils {
     }
   }
 
+  /**
+   * Sets up Stellar statically with a connection to ZooKeeper and optionally, global configuration
+   * to be used.
+   *
+   * @param client The ZK client to be used
+   * @param globalConfig Optional global configuration to be used
+   */
   public static void setupStellarStatically(CuratorFramework client, Optional<String> globalConfig) {
     /*
       In order to validate stellar functions, the function resolver must be initialized.  Otherwise,
@@ -588,6 +783,13 @@ public class ConfigurationsUtils {
     StellarFunctions.FUNCTION_RESOLVER().initialize(stellarContext);
   }
 
+  /**
+   * Reads global configs from a file on local disk.
+   *
+   * @param rootPath root FS location to read configs from
+   * @return map of file names to the contents of that file as a byte array
+   * @throws IOException If there's an issue reading the configs
+   */
   public static byte[] readGlobalConfigFromFile(String rootPath) throws IOException {
     byte[] globalConfig = new byte[0];
     File configPath = new File(rootPath, GLOBAL.getTypeName() + ".json");
@@ -597,14 +799,35 @@ public class ConfigurationsUtils {
     return globalConfig;
   }
 
+  /**
+   * Reads sensor parser configs from a file on local disk.
+   *
+   * @param rootPath root FS location to read configs from
+   * @return map of file names to the contents of that file as a byte array
+   * @throws IOException If there's an issue reading the configs
+   */
   public static Map<String, byte[]> readSensorParserConfigsFromFile(String rootPath) throws IOException {
     return readSensorConfigsFromFile(rootPath, PARSER, Optional.empty());
   }
 
+  /**
+   * Reads sensor enrichment configs from a file on local disk.
+   *
+   * @param rootPath root FS location to read configs from
+   * @return map of file names to the contents of that file as a byte array
+   * @throws IOException If there's an issue reading the configs
+   */
   public static Map<String, byte[]> readSensorEnrichmentConfigsFromFile(String rootPath) throws IOException {
     return readSensorConfigsFromFile(rootPath, ENRICHMENT, Optional.empty());
   }
 
+  /**
+   * Reads sensor indexing configs from a file on local disk.
+   *
+   * @param rootPath root FS location to read configs from
+   * @return map of file names to the contents of that file as a byte array
+   * @throws IOException If there's an issue reading the configs
+   */
   public static Map<String, byte[]> readSensorIndexingConfigsFromFile(String rootPath) throws IOException {
     return readSensorConfigsFromFile(rootPath, INDEXING, Optional.empty());
   }
@@ -624,6 +847,14 @@ public class ConfigurationsUtils {
     return config;
   }
 
+  /**
+   * Reads sensor configs from a file on local disk.
+   *
+   * @param rootPath root FS location to read configs from
+   * @param configType e.g. GLOBAL, PARSER, ENRICHMENT, etc.
+   * @return map of file names to the contents of that file as a byte array
+   * @throws IOException If there's an issue reading the configs
+   */
   public static Map<String, byte[]> readSensorConfigsFromFile(String rootPath, ConfigurationType configType) throws IOException {
     return readSensorConfigsFromFile(rootPath, configType, Optional.empty());
   }
@@ -636,7 +867,7 @@ public class ConfigurationsUtils {
    * @param configType e.g. GLOBAL, PARSER, ENRICHMENT, etc.
    * @param configName a specific config, for instance a sensor name like bro, yaf, snort, etc.
    * @return map of file names to the contents of that file as a byte array
-   * @throws IOException
+   * @throws IOException If there's an issue reading the configs
    */
   public static Map<String, byte[]> readSensorConfigsFromFile(String rootPath,
       ConfigurationType configType, Optional<String> configName) throws IOException {
@@ -724,10 +955,20 @@ public class ConfigurationsUtils {
     writeConfigToZookeeper(configurationType, configName, prettyPatchedConfig, client);
   }
 
+  /**
+   * Interface for handling a Visitor pattern on configurations.
+   */
   public interface ConfigurationVisitor{
     void visit(ConfigurationType configurationType, String name, String data);
   }
 
+  /**
+   * Visits the configs in ZooKeeper for retrieving data in Visitor pattern style.
+   *
+   * @param client The ZK client used to retrieve the configs
+   * @param callback A callback to be run at each config location
+   * @throws Exception If there's an issue encountered during traversal
+   */
   public static void visitConfigs(CuratorFramework client, final ConfigurationVisitor callback) throws Exception {
     visitConfigs(client, (type, name, data) -> {
       setupStellarStatically(client, Optional.ofNullable(data));
@@ -739,6 +980,15 @@ public class ConfigurationsUtils {
     visitConfigs(client, callback, PROFILER, Optional.empty());
   }
 
+  /**
+   * Visits the configs in ZooKeeper for retrieving data in Visitor pattern style.
+   *
+   * @param client The ZK client used to retrieve configs
+   * @param callback A callback to be run at each config location
+   * @param configType The config type to check
+   * @param configName The specific config to visit, if present
+   * @throws Exception If there's an issue encountered during traversal
+   */
   public static void visitConfigs(CuratorFramework client, ConfigurationVisitor callback, ConfigurationType configType, Optional<String> configName) throws Exception {
 
     if (client.checkExists().forPath(configType.getZookeeperRoot()) != null) {
@@ -771,7 +1021,7 @@ public class ConfigurationsUtils {
    *
    * @param out stream to use as output
    * @param client zk client
-   * @throws Exception
+   * @throws Exception If there's an issue writing the configs out
    */
   public static void dumpConfigs(PrintStream out, CuratorFramework client) throws Exception {
     ConfigurationsUtils.visitConfigs(client, (type, name, data) -> {
@@ -789,7 +1039,7 @@ public class ConfigurationsUtils {
    * @param client zk client
    * @param configType GLOBAL, PARSER, ENRICHMENT, etc.
    * @param configName Typically a sensor name like bro, snort, yaf, etc.
-   * @throws Exception
+   * @throws Exception If there's an error writing the configs out
    */
   public static void dumpConfigs(PrintStream out, CuratorFramework client,
       ConfigurationType configType, Optional<String> configName) throws Exception {
@@ -800,6 +1050,15 @@ public class ConfigurationsUtils {
     }, configType, configName);
   }
 
+  /**
+   * Gets the field name from a map of the global config. Returns a default if the global config
+   * itself is null or the key isn't found.
+   *
+   * @param globalConfig Map of the global config
+   * @param globalConfigKey The key too retrieve from the map
+   * @param defaultFieldName The default to use if config is null or key not found
+   * @return The config value or the default if config is null or key not found
+   */
   public static String getFieldName(Map<String, Object> globalConfig, String globalConfigKey, String defaultFieldName) {
     if (globalConfig == null) {
       return defaultFieldName;
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/EnrichmentConfigurations.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/EnrichmentConfigurations.java
index 1c723c7..9136725 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/EnrichmentConfigurations.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/EnrichmentConfigurations.java
@@ -26,6 +26,10 @@ import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.List;
 
+/**
+ * Allows for retrieval and update of enrichment configurations. Some fields are pulled from
+ * global config and provided here for convenience.
+ */
 public class EnrichmentConfigurations extends Configurations {
   public static final Integer DEFAULT_KAFKA_BATCH_SIZE = 15;
   public static final String BATCH_SIZE_CONF = "enrichment.writer.batchSize";
@@ -74,6 +78,11 @@ public class EnrichmentConfigurations extends Configurations {
     return getAs(BATCH_TIMEOUT_CONF, getGlobalConfig(true), 0, Integer.class);
   }
 
+  /**
+   * Gets the sensor names that have associated enrichments.
+   *
+   * @return List of sensor names
+   */
   public List<String> getTypes() {
     List<String> ret = new ArrayList<>();
     for(String keyedSensor : getConfigurations().keySet()) {
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/FieldTransformer.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/FieldTransformer.java
index 43ce9d8..2c592d0 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/FieldTransformer.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/FieldTransformer.java
@@ -20,14 +20,20 @@ package org.apache.metron.common.configuration;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.google.common.collect.ImmutableList;
-import org.apache.metron.stellar.dsl.Context;
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
 import org.apache.metron.common.field.transformation.FieldTransformation;
 import org.apache.metron.common.field.transformation.FieldTransformations;
+import org.apache.metron.stellar.dsl.Context;
 import org.json.simple.JSONObject;
 
-import java.io.Serializable;
-import java.util.*;
-
+/**
+ * Performs an {@link FieldTransformation} on Json.
+ */
 public class FieldTransformer implements Serializable {
   private List<String> input = new ArrayList<>();
   private List<String> output;
@@ -42,6 +48,12 @@ public class FieldTransformer implements Serializable {
     return input;
   }
 
+  /**
+   * Setter for input fields. Will handle either a plain string or a list of strings.
+   *
+   * @param inputFields The input fields to the transformation. Can be either a string or list of
+   *     strings.
+   */
   public void setInput(Object inputFields) {
     if(inputFields instanceof String) {
       this.input= ImmutableList.of(inputFields.toString());
@@ -55,6 +67,12 @@ public class FieldTransformer implements Serializable {
     return output;
   }
 
+  /**
+   * Setter for output fields. Will handle either a plain string or a list of strings.
+   *
+   * @param outputField The output fields of the transformation. Can be either a string or list of
+   *     strings.
+   */
   public void setOutput(Object outputField) {
     if(outputField instanceof String) {
       this.output = ImmutableList.of(outputField.toString());
@@ -86,6 +104,9 @@ public class FieldTransformer implements Serializable {
     this.transformation = FieldTransformations.get(transformation);
   }
 
+  /**
+   * Initializes the FieldTransformer and does some basic checking of input and output fields.
+   */
   public void initAndValidate() {
     if(!initialized) {
       if (getTransformation() == null) {
@@ -105,6 +126,14 @@ public class FieldTransformer implements Serializable {
     }
   }
 
+  /**
+   * Performs the actual transformation on Json input. Returns a map of fields to values.
+   *
+   * @param input The input Json to be transformed
+   * @param context The Stellar context of the transformation
+   * @param sensorConfig Map of the sensor config
+   * @return A map of field -> value
+   */
   public Map<String, Object> transform(JSONObject input, Context context, Map<String, Object>... sensorConfig) {
     if(getInput() == null || getInput().isEmpty()) {
       return transformation.map(input, getOutput(), config, context, sensorConfig);
@@ -118,6 +147,14 @@ public class FieldTransformer implements Serializable {
     }
   }
 
+  /**
+   * Performs the actual transformation on Json input in place, removing or adding keys as
+   * necessary.
+   *
+   * @param message The input Json to be transformed
+   * @param context The Stellar context of the transformation
+   * @param sensorConfig Map of the sensor config
+   */
   public void transformAndUpdate(JSONObject message, Context context, Map<String, Object>... sensorConfig) {
     Map<String, Object> currentValue = transform(message, context, sensorConfig);
     if(currentValue != null) {
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/FieldValidator.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/FieldValidator.java
index 55d1468..28b5bcf 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/FieldValidator.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/FieldValidator.java
@@ -19,17 +19,20 @@
 package org.apache.metron.common.configuration;
 
 import com.google.common.collect.ImmutableList;
-import org.apache.metron.stellar.dsl.Context;
-import org.apache.metron.common.field.validation.FieldValidation;
-import org.apache.metron.common.field.validation.FieldValidations;
-import org.json.simple.JSONObject;
-
 import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import org.apache.metron.common.field.validation.FieldValidation;
+import org.apache.metron.common.field.validation.FieldValidations;
+import org.apache.metron.stellar.dsl.Context;
+import org.json.simple.JSONObject;
 
+/**
+ * Allows for the ability to run validations across messages that are being passed through the
+ * system.
+ */
 public class FieldValidator implements Serializable {
 
   public enum Config {
@@ -42,6 +45,15 @@ public class FieldValidator implements Serializable {
     Config(String key) {
       this.key = key;
     }
+
+    /**
+     * Retrieves the value of the key from the provided config, and casts it to the provided class.
+     *
+     * @param config The config to retrieve the value associated with the key from
+     * @param clazz The class to cast to
+     * @param <T> The type parameter of the class to cast to
+     * @return The value, casted appropriately
+     */
     public <T> T get(Map<String, Object> config, Class<T> clazz) {
       Object o = config.get(key);
       if(o == null) {
@@ -54,6 +66,13 @@ public class FieldValidator implements Serializable {
   private List<String> input;
   private Map<String, Object> config;
 
+  /**
+   * Constructor for a FieldValidator.
+   *
+   * @param o Should be a map, otherwise exception is thrown. From the map, retrieve the various
+   *     necessary components, e.g. input, and ensure they are read appropriately.
+   *
+   */
   public FieldValidator(Object o) {
     if(o instanceof Map) {
       Map<String, Object> validatorConfig = (Map<String, Object>) o;
@@ -96,6 +115,14 @@ public class FieldValidator implements Serializable {
     return config;
   }
 
+  /**
+   * Runs a validation against Json input data.
+   *
+   * @param inputData The Json data being validated
+   * @param globalConfig The global config feeding the validation
+   * @param context The Stellar context of the validation
+   * @return true if valid, false otherwise
+   */
   public boolean isValid(JSONObject inputData, Map<String, Object> globalConfig, Context context) {
     Map<String, Object> in = inputData;
     if(input != null && !input.isEmpty()) {
@@ -108,6 +135,12 @@ public class FieldValidator implements Serializable {
     return validation.isValid(in, config, globalConfig, context);
   }
 
+  /**
+   * Reads the validations from the global config and returns a list of them.
+   *
+   * @param globalConfig The config to read field validations from
+   * @return A list of validations
+   */
   public static List<FieldValidator> readValidations(Map<String, Object> globalConfig) {
     List<FieldValidator> validators = new ArrayList<>();
     List<Object> validations = (List<Object>) Config.FIELD_VALIDATIONS.get(globalConfig, List.class);
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/IndexingConfigurations.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/IndexingConfigurations.java
index 2f01884..584bed1 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/IndexingConfigurations.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/IndexingConfigurations.java
@@ -26,6 +26,9 @@ import java.util.List;
 import java.util.Map;
 import org.apache.metron.common.utils.JSONUtils;
 
+/**
+ * Allows for retrieval and update of indexing configurations.
+ */
 public class IndexingConfigurations extends Configurations {
   public static final String BATCH_SIZE_CONF = "batchSize";
   public static final String BATCH_TIMEOUT_CONF = "batchTimeout";
@@ -34,6 +37,13 @@ public class IndexingConfigurations extends Configurations {
   public static final String OUTPUT_PATH_FUNCTION_CONF = "outputPathFunction";
   public static final String FIELD_NAME_CONVERTER_CONF = "fieldNameConverter";
 
+  /**
+   * Gets the indexing config for a specific sensor.
+   *
+   * @param sensorType The sensor to retrieve config for
+   * @param emptyMapOnNonExistent If true and the config doesn't exist return empty map, else null
+   * @return Map of the config key -> value. Value on missing depends on emptyMapOnNonExistent
+   */
   public Map<String, Object> getSensorIndexingConfig(String sensorType, boolean emptyMapOnNonExistent) {
     Map<String, Object> ret = (Map<String, Object>) getConfigurations().get(getKey(sensorType));
     if(ret == null) {
@@ -48,6 +58,11 @@ public class IndexingConfigurations extends Configurations {
     return getSensorIndexingConfig(sensorType, true);
   }
 
+  /**
+   * Gets the list of sensor types that indexing configurations exist for.
+   *
+   * @return List of sensor types
+   */
   public List<String> getTypes() {
     List<String> ret = new ArrayList<>();
     for(String keyedSensor : getConfigurations().keySet()) {
@@ -62,6 +77,13 @@ public class IndexingConfigurations extends Configurations {
     getConfigurations().remove(getKey(sensorType));
   }
 
+  /**
+   * Gets the sensor indexing config for a given writer.
+   *
+   * @param sensorType The sensor to retrieve configs for
+   * @param writerName The particular writer to get configurations for
+   * @return A Map of the configuration
+   */
   public Map<String, Object> getSensorIndexingConfig(String sensorType, String writerName) {
     String key = getKey(sensorType);
     Map<String, Object> ret = (Map<String, Object>) getConfigurations().get(key);
@@ -91,6 +113,14 @@ public class IndexingConfigurations extends Configurations {
     return ConfigurationType.INDEXING.getTypeName() + "." + sensorType;
   }
 
+  /**
+   * Determines if a configuration is default or not. In particular, this means the config is null
+   * for the sensor/writer combo.
+   *
+   * @param sensorName The sensor to check for default
+   * @param writerName The specific writer to check for default
+   * @return True if default, false otherwise.
+   */
   public boolean isDefault(String sensorName, String writerName) {
     Map<String, Object> ret = (Map<String, Object>) getConfigurations().get(getKey(sensorName));
     if(ret == null) {
@@ -117,7 +147,7 @@ public class IndexingConfigurations extends Configurations {
    * The goal is to return to a {@link org.apache.metron.common.bolt.ConfiguredBolt}
    * the set of all and only batchTimeouts relevant to that ConfiguredBolt.
    *
-   * @param writerName
+   * @param writerName The name of the writer to look up.
    * @return list of integer batchTimeouts, one per configured sensor
    */
   public List<Integer> getAllConfiguredTimeouts(String writerName) {
@@ -154,6 +184,12 @@ public class IndexingConfigurations extends Configurations {
     return getFieldNameConverter(getSensorIndexingConfig(sensorName, writerName), sensorName);
   }
 
+  /**
+   *  Retrieves the enabled value from the config.
+   *
+   * @param conf The configuration to retrieve from
+   * @return True if this configuration is enabled, false otherwise
+   */
   public static boolean isEnabled(Map<String, Object> conf) {
     return getAs( ENABLED_CONF
                  ,conf
@@ -162,6 +198,12 @@ public class IndexingConfigurations extends Configurations {
                 );
   }
 
+  /**
+   *  Retrieves the batch size value from the config.
+   *
+   * @param conf The configuration to retrieve from
+   * @return  The batch size if defined, 1 by default
+   */
   public static int getBatchSize(Map<String, Object> conf) {
     return getAs( BATCH_SIZE_CONF
                  ,conf
@@ -170,6 +212,12 @@ public class IndexingConfigurations extends Configurations {
                 );
   }
 
+  /**
+   *  Retrieves the batch timeout value from the config.
+   *
+   * @param conf The configuration to retrieve from
+   * @return  The batch timeout if defined, 0 by default
+   */
   public static int getBatchTimeout(Map<String, Object> conf) {
     return getAs( BATCH_TIMEOUT_CONF
                  ,conf
@@ -178,6 +226,13 @@ public class IndexingConfigurations extends Configurations {
                 );
   }
 
+  /**
+   *  Retrieves the index value from the config.
+   *
+   * @param conf The configuration to retrieve from
+   * @param sensorName The name of the sensor to retrieve the index for
+   * @return  The index if defined, the sensor name by default
+   */
   public static String getIndex(Map<String, Object> conf, String sensorName) {
     return getAs( INDEX_CONF
                  ,conf
@@ -186,6 +241,13 @@ public class IndexingConfigurations extends Configurations {
                 );
   }
 
+  /**
+   *  Retrieves the output path function value from the config.
+   *
+   * @param conf The configuration to retrieve from
+   * @param sensorName Unused
+   * @return  The output path function if defined, empty string otherwise
+   */
   public static String getOutputPathFunction(Map<String, Object> conf, String sensorName) {
     return getAs(OUTPUT_PATH_FUNCTION_CONF
             ,conf
@@ -194,33 +256,76 @@ public class IndexingConfigurations extends Configurations {
     );
   }
 
+  /**
+   *  Retrieves the field name converter value from the config.
+   *
+   * @param conf The configuration to retrieve from
+   * @param sensorName Unused
+   * @return  The field name converter if defined, empty string otherwise
+   */
   public static String getFieldNameConverter(Map<String, Object> conf, String sensorName) {
     return getAs(FIELD_NAME_CONVERTER_CONF, conf, "", String.class);
   }
 
+  /**
+   * Sets the enabled flag in the config.
+   *
+   * @param conf The configuration map to set enabled in. If null replaced with empty map.
+   * @param enabled True if enabled, false otherwise
+   * @return The configuration with the enabled value set
+   */
   public static Map<String, Object> setEnabled(Map<String, Object> conf, boolean enabled) {
     Map<String, Object> ret = conf == null?new HashMap<>():conf;
     ret.put(ENABLED_CONF, enabled);
     return ret;
   }
+
+  /**
+   * Sets the batch size in the config.
+   *
+   * @param conf The configuration map to set enabled in. If null, replaced with empty map.
+   * @param batchSize The desired batch size
+   * @return The configuration with the batch size value set
+   */
   public static Map<String, Object> setBatchSize(Map<String, Object> conf, int batchSize) {
     Map<String, Object> ret = conf == null?new HashMap<>():conf;
     ret.put(BATCH_SIZE_CONF, batchSize);
     return ret;
   }
 
+  /**
+   * Sets the batch timeout in the config.
+   *
+   * @param conf The configuration map to set enabled in. If null, replaced with empty map.
+   * @param batchTimeout The desired batch timeout
+   * @return The configuration with the batch timeout value set
+   */
   public static Map<String, Object> setBatchTimeout(Map<String, Object> conf, int batchTimeout) {
     Map<String, Object> ret = conf == null?new HashMap<>():conf;
     ret.put(BATCH_TIMEOUT_CONF, batchTimeout);
     return ret;
   }
 
+  /**
+   * Sets the index in the config.
+   *
+   * @param conf The configuration map to set enabled in. If null, replaced with empty map.
+   * @param index The desired index
+   * @return The configuration with the index value set
+   */
   public static Map<String, Object> setIndex(Map<String, Object> conf, String index) {
     Map<String, Object> ret = conf == null?new HashMap<>():conf;
     ret.put(INDEX_CONF, index);
     return ret;
   }
 
+  /**
+   * Sets the field name converter in the config.
+   *
+   * @param conf The configuration map to set enabled in. If null, replaced with empty map.
+   * @param index The desired index
+   * @return The configuration with the field name converter value set
+   */
   public static Map<String, Object> setFieldNameConverter(Map<String, Object> conf, String index) {
     Map<String, Object> ret = conf == null ? new HashMap<>(): conf;
     ret.put(FIELD_NAME_CONVERTER_CONF, index);
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/ParserConfigurations.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/ParserConfigurations.java
index 83daf0d..0043d71 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/ParserConfigurations.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/ParserConfigurations.java
@@ -25,6 +25,9 @@ import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.List;
 
+/**
+ * Allows for retrieval and update of parsing configurations.
+ */
 public class ParserConfigurations extends Configurations {
   public static final Integer DEFAULT_KAFKA_BATCH_SIZE = 15;
 
@@ -46,6 +49,11 @@ public class ParserConfigurations extends Configurations {
     getConfigurations().put(getKey(sensorType), sensorParserConfig);
   }
 
+  /**
+   * Gets the list of sensor types that parsing configurations exist for.
+   *
+   * @return List of sensor types
+   */
   public List<String> getTypes() {
     List<String> ret = new ArrayList<>();
     for(String keyedSensor : getConfigurations().keySet()) {
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/SensorParserConfig.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/SensorParserConfig.java
index d3eca42..9797c22 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/SensorParserConfig.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/SensorParserConfig.java
@@ -48,7 +48,7 @@ public class SensorParserConfig implements Serializable {
    * Allows logic to be defined to filter or ignore messages.  Messages that have been
    * filtered will not be parsed.
    *
-   * This should be a fully qualified name of a class that implements the
+   * <p>This should be a fully qualified name of a class that implements the
    * org.apache.metron.parsers.interfaces.MessageFilter interface.
    */
   private String filterClassName;
@@ -424,12 +424,22 @@ public class SensorParserConfig implements Serializable {
     this.parserConfig = parserConfig;
   }
 
+  /**
+   * Creates a SensorParserConfig from the raw bytes of a Json string.
+   *
+   * @param config The raw bytes value of the config as a Json string
+   * @return SensorParserConfig containing the configuration
+   * @throws IOException If the config cannot be loaded
+   */
   public static SensorParserConfig fromBytes(byte[] config) throws IOException {
     SensorParserConfig ret = JSONUtils.INSTANCE.load(new String(config), SensorParserConfig.class);
     ret.init();
     return ret;
   }
 
+  /**
+   * Init method that retrieves, initializes, and validates field transformations for this config.
+   */
   public void init() {
     for(FieldTransformer h : getFieldTransformations()) {
       h.initAndValidate();
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/enrichment/EnrichmentConfig.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/enrichment/EnrichmentConfig.java
index 3261c9f..344c6f6 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/enrichment/EnrichmentConfig.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/enrichment/EnrichmentConfig.java
@@ -25,6 +25,9 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+/**
+ * Holds the enrichment configuration.
+ */
 public class EnrichmentConfig {
   private Map<String, Object> fieldMap = new HashMap<>();
   private Map<String, ConfigHandler> enrichmentConfigs = new HashMap<>();
@@ -48,7 +51,13 @@ public class EnrichmentConfig {
     return enrichmentConfigs;
   }
 
-
+  /**
+   * Builds enrichment configs map of enrichment type to {@link ConfigHandler}, based on a
+   * provided map.
+   *
+   * @param fieldMap Map of enrichment bolts names to configuration handlers which know how to
+   *     split the message up.
+   */
   public void setFieldMap(Map<String, Object> fieldMap) {
     this.fieldMap = fieldMap;
     for(Map.Entry<String, Object> kv : fieldMap.entrySet()) {
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/enrichment/SensorEnrichmentConfig.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/enrichment/SensorEnrichmentConfig.java
index 2b4f5a8..0bfc7a8 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/enrichment/SensorEnrichmentConfig.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/enrichment/SensorEnrichmentConfig.java
@@ -25,6 +25,9 @@ import java.io.IOException;
 import java.util.HashMap;
 import java.util.Map;
 
+/**
+ * Allows for retrieval and update of enrichment configurations.
+ */
 public class SensorEnrichmentConfig {
 
   private EnrichmentConfig enrichment = new EnrichmentConfig();
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/enrichment/SensorEnrichmentUpdateConfig.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/enrichment/SensorEnrichmentUpdateConfig.java
index 69aaaf4..f55957b 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/enrichment/SensorEnrichmentUpdateConfig.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/enrichment/SensorEnrichmentUpdateConfig.java
@@ -75,6 +75,12 @@ public class SensorEnrichmentUpdateConfig {
     this.sensorToFieldList = sensorToFieldList;
   }
 
+  /**
+   * Updates the sensor configs using a {@link ZKSourceConfigHandler} to read configs from
+   * ZooKeeper and the internal {@code sensorToFieldList}.
+   *
+   * @throws Exception If there's an issue reading from ZK or updating configs
+   */
   public void updateSensorConfigs( ) throws Exception {
     CuratorFramework client = ConfigurationsUtils.getClient(getZkQuorum());
     try {
@@ -112,6 +118,14 @@ public class SensorEnrichmentUpdateConfig {
     }
   }
 
+  /**
+   * Updates the sensor configs with the provided @{link SourceConfigHandler} and the provided
+   * {@code sensorToFieldList}.
+   *
+   * @param scHandler Handles retrieval of configs
+   * @param sensorToFieldList Map from sensor to @{link FieldList}
+   * @throws Exception If there's an issue updating config
+   */
   public static void updateSensorConfigs( SourceConfigHandler scHandler
                                         , Map<String, FieldList> sensorToFieldList
                                         ) throws Exception
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/enrichment/handler/Config.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/enrichment/handler/Config.java
index bbadeac..909ecc1 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/enrichment/handler/Config.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/enrichment/handler/Config.java
@@ -31,11 +31,12 @@ public interface Config {
   /**
    * Split a message by the fields.  Certain configs will do this differently than others, but
    * these are the messages sent to the enrichment adapter downstream.
-   * @param message
-   * @param fields
-   * @param fieldToEnrichmentKey
+   *
+   * @param message The Json message to be split
+   * @param fields The fields to split by
+   * @param fieldToEnrichmentKey A function to get the enrichment key
    * @param config The config to use
-   * @return
+   * @return A list of Json objects that have been split from the message.
    */
   List<JSONObject> splitByFields( JSONObject message
                           , Object fields
@@ -52,10 +53,9 @@ public interface Config {
   }
 
   /**
-   *
    * Return the subgroups for a given enrichment.  This will allow the join bolt to know when the join is complete.
    * NOTE: this implies that a given enrichment may have a 1 to many relationship with subgroups.
-   * @param config
+   * @param config An iterable of config entries
    * @return The list of subgroups
    */
   List<String> getSubgroups(Iterable<Map.Entry<String, Object>> config);
@@ -67,7 +67,7 @@ public interface Config {
   /**
    * Convert a config object (currently either a map or list is supported) to a list of configs.
    * @param c Either a map or list representing the enrichment adapter configuration.
-   * @return
+   * @return an iterable of config entries
    */
   Iterable<Map.Entry<String, Object>> toConfig(Object c);
 }
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/enrichment/handler/ConfigHandler.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/enrichment/handler/ConfigHandler.java
index 369ba8c..050fef3 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/enrichment/handler/ConfigHandler.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/enrichment/handler/ConfigHandler.java
@@ -26,6 +26,14 @@ import java.util.*;
 public class ConfigHandler {
   private Object config;
   private Configs type = Configs.LIST;
+
+  /**
+   * Constructs new instance.
+   *
+   * @param enrichment The enrichment being handled
+   * @param obj Map that contains the config and may contain the type of enrichment,
+   *     (e.g. Stellar). Otherwise, use it will use the uppercased enrichment as the type.
+   */
   public ConfigHandler(String enrichment, Map<String, Object> obj) {
     config = obj.get("config");
     if(obj.containsKey("type")) {
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/enrichment/threatintel/RiskLevelRule.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/enrichment/threatintel/RiskLevelRule.java
index 0443c27..be96125 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/enrichment/threatintel/RiskLevelRule.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/enrichment/threatintel/RiskLevelRule.java
@@ -18,19 +18,18 @@
 package org.apache.metron.common.configuration.enrichment.threatintel;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
-
 import java.util.Objects;
 
 /**
  * This class represents a rule that is used to triage threats.
  *
- * The goal of threat triage is to prioritize the alerts that pose the greatest
+ * <p>The goal of threat triage is to prioritize the alerts that pose the greatest
  * threat and thus need urgent attention.  To perform threat triage, a set of rules
  * are applied to each message.  Each rule has a predicate to determine if the rule
  * applies or not.  The threat score from each applied rule is aggregated into a single
  * threat triage score that can be used to prioritize high risk threats.
  *
- * Tuning the threat triage process involves creating one or more rules, adjusting
+ * <p>Tuning the threat triage process involves creating one or more rules, adjusting
  * the score of each rule, and changing the way that each rule's score is aggregated.
  */
 public class RiskLevelRule {
@@ -61,7 +60,7 @@ public class RiskLevelRule {
    * Allows a rule author to provide contextual information when a rule is applied
    * to a message.  This can assist a SOC analyst when actioning a threat.
    *
-   * This is expected to be a valid Stellar expression and can refer to any of the
+   * <p>This is expected to be a valid Stellar expression and can refer to any of the
    * fields within the message itself.
    */
   private String reason;
@@ -95,6 +94,12 @@ public class RiskLevelRule {
     return scoreExpression;
   }
 
+  /**
+   * Sets the score expression based on an input object, taking care to properly handle numbers or
+   * strings.
+   *
+   * @param scoreExpression The raw object containing the score expression.
+   */
   @JsonProperty("score")
   public void setScoreExpression(Object scoreExpression) {
     if(scoreExpression instanceof Number) {
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/enrichment/threatintel/RuleScore.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/enrichment/threatintel/RuleScore.java
index 7889fac..fb09c95 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/enrichment/threatintel/RuleScore.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/enrichment/threatintel/RuleScore.java
@@ -23,7 +23,7 @@ import java.util.Objects;
  * This class represents the score resulting from applying a RiskLevelRule
  * to a message.
  *
- * The goal of threat triage is to prioritize the alerts that pose the greatest
+ * <p>The goal of threat triage is to prioritize the alerts that pose the greatest
  * threat and thus need urgent attention.  To perform threat triage, a set of rules
  * are applied to each message.  Each rule has a predicate to determine if the rule
  * applies or not.  The threat score from each applied rule is aggregated into a single
@@ -40,7 +40,7 @@ public class RuleScore {
    * Allows a rule author to provide contextual information when a rule is applied
    * to a message.  This can assist a SOC analyst when actioning a threat.
    *
-   * This is the result of executing the 'reason' Stellar expression from the
+   * <p>This is the result of executing the 'reason' Stellar expression from the
    * associated RiskLevelRule.
    */
   private String reason;
@@ -51,6 +51,8 @@ public class RuleScore {
   private Number score;
 
   /**
+   * Constructs a RuleScore.
+   *
    * @param rule The threat triage rule that when applied resulted in this score.
    * @param reason The result of executing the rule's 'reason' expression.  Provides context to why a rule was applied.
    * @param score The result of executing the rule's 'score' expression.
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/enrichment/threatintel/ThreatScore.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/enrichment/threatintel/ThreatScore.java
index 3e5b583..9e4a988 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/enrichment/threatintel/ThreatScore.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/enrichment/threatintel/ThreatScore.java
@@ -24,13 +24,13 @@ import java.util.List;
  * The overall threat score which is arrived at by aggregating the individual
  * scores from each applied rule.
  *
- * The goal of threat triage is to prioritize the alerts that pose the greatest
+ * <p>The goal of threat triage is to prioritize the alerts that pose the greatest
  * threat and thus need urgent attention.  To perform threat triage, a set of rules
  * are applied to each message.  Each rule has a predicate to determine if the rule
  * applies or not.  The threat score from each applied rule is aggregated into a single
  * threat triage score that can be used to prioritize high risk threats.
  *
- * Tuning the threat triage process involves creating one or more rules, adjusting
+ * <p>Tuning the threat triage process involves creating one or more rules, adjusting
  * the score of each rule, and changing the way that each rule's score is aggregated.
  */
 public class ThreatScore {
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/enrichment/threatintel/ThreatTriageConfig.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/enrichment/threatintel/ThreatTriageConfig.java
index 13effc4..f363f76 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/enrichment/threatintel/ThreatTriageConfig.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/enrichment/threatintel/ThreatTriageConfig.java
@@ -40,6 +40,12 @@ public class ThreatTriageConfig {
     return riskLevelRules;
   }
 
+  /**
+   * Given a list of @{link RiskLevelRule}, builds up the necessary context to evaluate them.
+   * This includes validation of the Stellar expression contained.
+   *
+   * @param riskLevelRules The list of {@link RiskLevelRule}s to be evaluated
+   */
   public void setRiskLevelRules(List<RiskLevelRule> riskLevelRules) {
     List<RiskLevelRule> rules = new ArrayList<>();
     Set<String> ruleIndex = new HashSet<>();
@@ -72,6 +78,11 @@ public class ThreatTriageConfig {
     return aggregator;
   }
 
+  /**
+   * Sets an aggregator by name from {@link Aggregators}.
+   *
+   * @param aggregator The aggregator name to grab
+   */
   public void setAggregator(String aggregator) {
     try {
       this.aggregator = Aggregators.valueOf(aggregator);
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/profiler/ProfileConfig.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/profiler/ProfileConfig.java
index f2272c3..c4df1b4 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/profiler/ProfileConfig.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/profiler/ProfileConfig.java
@@ -284,7 +284,7 @@ public class ProfileConfig implements Serializable {
    *
    * @param bytes Raw bytes containing a UTF-8 JSON String.
    * @return The Profile definition.
-   * @throws IOException
+   * @throws IOException If unable to deserialize the bytes into a {@link ProfileConfig}
    */
   public static ProfileConfig fromBytes(byte[] bytes) throws IOException {
     return JSONUtils.INSTANCE.load(new String(bytes), ProfileConfig.class);
@@ -295,7 +295,7 @@ public class ProfileConfig implements Serializable {
    *
    * @param json A String containing JSON.
    * @return The Profile definition.
-   * @throws IOException
+   * @throws IOException If unable to deserialize the string into a {@link ProfileConfig}
    */
   public static ProfileConfig fromJSON(String json) throws IOException {
     return JSONUtils.INSTANCE.load(json, ProfileConfig.class);
@@ -305,7 +305,7 @@ public class ProfileConfig implements Serializable {
    * Serialize the profile definition to a JSON string.
    *
    * @return The Profiler configuration serialized as a JSON string.
-   * @throws JsonProcessingException
+   * @throws JsonProcessingException If there's an error converting this to Json
    */
   public String toJSON() throws JsonProcessingException {
     return JSONUtils.INSTANCE.toJSON(this, true);
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/profiler/ProfileResult.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/profiler/ProfileResult.java
index b66efe8..70c9dd1 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/profiler/ProfileResult.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/profiler/ProfileResult.java
@@ -57,7 +57,7 @@ public class ProfileResult implements Serializable {
   /**
    * Allows a single result expression to be interpreted as a 'profile' expression.
    *
-   * The profile definition
+   * <p>The profile definition
    *    <pre>{@code {..., "result": "2 + 2" }}</pre>
    * is equivalent to
    *    <pre>{@code {..., "result": { "profile": "2 + 2" }}}</pre>
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/profiler/ProfileTriageExpressions.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/profiler/ProfileTriageExpressions.java
index b1b7175..c958efd 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/profiler/ProfileTriageExpressions.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/profiler/ProfileTriageExpressions.java
@@ -30,7 +30,7 @@ import java.util.Map;
  * A set of Stellar expressions that are executed to produce a single
  * measurement that can be interrogated by the threat triage process.
  *
- * The result of evaluating each expression are made available, keyed
+ * <p>The result of evaluating each expression are made available, keyed
  * by the given name, to the threat triage process.
  */
 public class ProfileTriageExpressions implements Serializable {
@@ -39,7 +39,7 @@ public class ProfileTriageExpressions implements Serializable {
    * A set of named Stellar expressions.  The name of the expression
    * serves as the key and the value is the expression itself.
    *
-   * Evaluating the expression(s) must result in a basic data type
+   * <p>Evaluating the expression(s) must result in a basic data type
    * or map of basic data types that can be serialized.
    */
   @JsonIgnore
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/profiler/ProfilerConfig.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/profiler/ProfilerConfig.java
index 068a4c8..f5c4981 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/profiler/ProfilerConfig.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/profiler/ProfilerConfig.java
@@ -132,7 +132,7 @@ public class ProfilerConfig implements Serializable {
    *
    * @param bytes Raw bytes containing a UTF-8 JSON String.
    * @return The Profiler configuration.
-   * @throws IOException
+   * @throws IOException If there's an error deserializing the raw bytes
    */
   public static ProfilerConfig fromBytes(byte[] bytes) throws IOException {
     return JSONUtils.INSTANCE.load(new String(bytes), ProfilerConfig.class);
@@ -143,7 +143,7 @@ public class ProfilerConfig implements Serializable {
    *
    * @param json A String containing JSON.
    * @return The Profiler configuration.
-   * @throws IOException
+   * @throws IOException If there's an error deserializing the string
    */
   public static ProfilerConfig fromJSON(String json) throws IOException {
     return JSONUtils.INSTANCE.load(json, ProfilerConfig.class);
@@ -153,7 +153,7 @@ public class ProfilerConfig implements Serializable {
    * Serialize a {@link ProfilerConfig} to a JSON string.
    *
    * @return The Profiler configuration serialized as a JSON string.
-   * @throws JsonProcessingException
+   * @throws JsonProcessingException If an error occurs serializing this as a Json string
    */
   public String toJSON() throws JsonProcessingException {
     return JSONUtils.INSTANCE.toJSON(this, true);
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/writer/ConfigurationStrategy.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/writer/ConfigurationStrategy.java
index cd13dc7..a611213 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/writer/ConfigurationStrategy.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/writer/ConfigurationStrategy.java
@@ -26,15 +26,15 @@ import org.apache.metron.common.zookeeper.configurations.Reloadable;
 public interface ConfigurationStrategy<T extends Configurations> {
 
   /**
-   * Create a specific writer configuration
+   * Create a specific writer configuration.
    * @param writer provided for the underlying creator to access metadata as needed
-   * @param configs a WriterConfiguration will typically access the pass configs
-   * @return
+   * @param configs a {@link WriterConfiguration} will typically access the pass configs
+   * @return A {@link WriterConfiguration} created from the configs
    */
   WriterConfiguration createWriterConfig(BulkMessageWriter writer, Configurations configs);
 
   /**
-   * Create specific config updater for the type of config extending Configurations
+   * Create specific {@link ConfigurationsUpdater} for the type of config extending Configurations.
    * @param reloadable setup as a callback by the updater
    * @param configSupplier supplies config to the updater
    * @return updater
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/writer/ConfigurationsStrategies.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/writer/ConfigurationsStrategies.java
index bafbbe1..6d274b7 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/writer/ConfigurationsStrategies.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/writer/ConfigurationsStrategies.java
@@ -132,7 +132,7 @@ public enum ConfigurationsStrategies implements ConfigurationStrategy {
   }
 
   /**
-   * Config updater
+   * Config updater.
    * @param reloadable callback
    * @param configSupplier Supplier provides config of type {@code <? extends Configurations>}
    * @return Config updater
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/writer/EnrichmentWriterConfiguration.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/writer/EnrichmentWriterConfiguration.java
index c275a76..7000154 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/writer/EnrichmentWriterConfiguration.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/writer/EnrichmentWriterConfiguration.java
@@ -67,7 +67,7 @@ public class EnrichmentWriterConfiguration implements WriterConfiguration {
   }
 
   /**
-   * n/a for enrichment
+   * n/a for enrichment.
    * @param sensorName n/a
    * @return null
    */
@@ -77,7 +77,7 @@ public class EnrichmentWriterConfiguration implements WriterConfiguration {
   }
 
   /**
-   * Always enabled in enrichment
+   * Always enabled in enrichment.
    * @param sensorName n/a
    * @return true
    */
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/writer/ProfilerWriterConfiguration.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/writer/ProfilerWriterConfiguration.java
index fe283bd..55399e3 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/writer/ProfilerWriterConfiguration.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/writer/ProfilerWriterConfiguration.java
@@ -66,7 +66,7 @@ public class ProfilerWriterConfiguration implements WriterConfiguration {
   }
 
   /**
-   * n/a for profiler
+   * n/a for profiler.
    * @param sensorName n/a
    * @return null
    */
@@ -76,7 +76,7 @@ public class ProfilerWriterConfiguration implements WriterConfiguration {
   }
 
   /**
-   * Always enabled in profiler
+   * Always enabled in profiler.
    * @param sensorName n/a
    * @return true
    */
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/writer/WriterConfiguration.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/writer/WriterConfiguration.java
index 4abb582..e75a65d 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/writer/WriterConfiguration.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/writer/WriterConfiguration.java
@@ -28,6 +28,7 @@ import java.util.Map;
  * Configures a writer to write messages to an endpoint.
  *
  * <p>Each destination will have its own {@link WriterConfiguration}; for example HDFS, Elasticsearch, and Solr.
+ *
  * <p>A writer can be configured independently for each source type.
  */
 public interface WriterConfiguration extends Serializable {
@@ -73,8 +74,10 @@ public interface WriterConfiguration extends Serializable {
   boolean isEnabled(String sensorName);
 
   /**
+   * Returns the sensor config for a specific sensor.
+   *
    * @param sensorName The name of a sensor.
-   * @return
+   * @return a map containing the config
    */
   Map<String, Object> getSensorConfig(String sensorName);
 
@@ -97,7 +100,7 @@ public interface WriterConfiguration extends Serializable {
    * when writing messages.
    *
    * @param sensorName The name of the sensor;
-   * @return
+   * @return The {@link FieldNameConverter}
    */
   String getFieldNameConverter(String sensorName);
 }
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/csv/CSVConverter.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/csv/CSVConverter.java
index f200d84..9d946bc 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/csv/CSVConverter.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/csv/CSVConverter.java
@@ -36,7 +36,7 @@ import static org.apache.commons.lang3.StringUtils.isEmpty;
  * Based on the parser config field `COLUMNS_KEY` the log line is
  * transformed into a intermediate result using the CSV parser.
  *
- * All keys in `COLUMNS_KEY` and values extracted from the log line
+ * <p>All keys in `COLUMNS_KEY` and values extracted from the log line
  * will be trimmed before adding to `values`.
  */
 public class CSVConverter implements Serializable {
@@ -53,6 +53,13 @@ public class CSVConverter implements Serializable {
     return parser;
   }
 
+  /**
+   * Converts a CSV line to a map of column name -> value.
+   *
+   * @param line The line to be turned into a map
+   * @return A map from column name -> value in the line
+   * @throws IOException If there's an issue parsing the line
+   */
   public Map<String, String> toMap(String line) throws IOException {
     if(ignore(line)) {
       return null;
@@ -65,6 +72,12 @@ public class CSVConverter implements Serializable {
     return values;
   }
 
+  /**
+   * Initializes the CSVConverter based on the provided config. The config should contain
+   * an entry for {@code columns}, and can optionally contain a {@code separator}.
+   *
+   * @param config The configuration used for setup
+   */
   public void initialize(Map<String, Object> config) {
     if(config.containsKey(COLUMNS_KEY)) {
       columnMap = getColumnMap(config);
@@ -80,6 +93,7 @@ public class CSVConverter implements Serializable {
     parser = new CSVParserBuilder().withSeparator(separator)
               .build();
   }
+
   protected boolean ignore(String line) {
     if(null == line) {
       return true;
@@ -87,6 +101,15 @@ public class CSVConverter implements Serializable {
     String trimmedLine = line.trim();
     return trimmedLine.startsWith("#") || isEmpty(trimmedLine);
   }
+
+  /**
+   * Given a column determines the column -> position. If the column contains data in the format
+   * {@code columnName:position}, use that. Otherwise, use the provided value of i.
+   *
+   * @param column The data in the column
+   * @param i The default position to use
+   * @return A map entry of column value -> position
+   */
   public static Map.Entry<String, Integer> getColumnMapEntry(String column, int i) {
     if(column.contains(":")) {
       Iterable<String> tokens = Splitter.on(':').split(column);
@@ -99,6 +122,22 @@ public class CSVConverter implements Serializable {
     }
 
   }
+
+  /**
+   * Retrieves the column map based on the columns key in the config map.
+   *
+   * <p>If the data is a string, the default is to split on ',' as a list of column names.
+   *
+   * <p>If the data is a list, the default is to used as the list of column names.
+   *
+   * <p>If the data is a map, it must be in the form columnName -> position.
+   *
+   * <p>For string and list, the data can be in the form columnName:position, and extracted
+   * appropriately.
+   *
+   * @param config Uses the columns key if defined to retrieve columns.
+   * @return A map from column -> position
+   */
   public static Map<String, Integer> getColumnMap(Map<String, Object> config) {
     Map<String, Integer> columnMap = new HashMap<>();
     if(config.containsKey(COLUMNS_KEY)) {
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/error/MetronError.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/error/MetronError.java
index 89044de..df21c3b 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/error/MetronError.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/error/MetronError.java
@@ -81,6 +81,12 @@ public class MetronError {
     return this;
   }
 
+  /**
+   * Adds a rawMessage to the error. Calls can be chained, as the method returns this.
+   *
+   * @param rawMessage The raw message to add
+   * @return this, to allow for call chaining
+   */
   public MetronError addRawMessage(Object rawMessage) {
     if (rawMessage != null) {
       if (this.rawMessages == null) {
@@ -100,6 +106,11 @@ public class MetronError {
     return throwable != null ? Optional.of(throwable) : Optional.empty();
   }
 
+  /**
+   * Serializes the MetronError into a JSON object.
+   *
+   * @return The resulting json object
+   */
   @SuppressWarnings({"unchecked"})
   public JSONObject getJSONObject() {
     JSONObject errorMessage = new JSONObject();
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/field/FieldNameConverters.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/field/FieldNameConverters.java
index d5858ed..c5e71d2 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/field/FieldNameConverters.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/field/FieldNameConverters.java
@@ -58,7 +58,7 @@ public enum FieldNameConverters implements FieldNameConverter {
   }
 
   /**
-   * Returns a shared instance of the {@link FieldNameConverter}/
+   * Returns a shared instance of the {@link FieldNameConverter}.
    *
    * @return A shared {@link FieldNameConverter} instance.
    */
@@ -74,7 +74,7 @@ public enum FieldNameConverters implements FieldNameConverter {
    * }
    *
    * @param originalField The original field name.
-   * @return
+   * @return the converted field name
    */
   @Override
   public String convert(String originalField) {
@@ -82,11 +82,11 @@ public enum FieldNameConverters implements FieldNameConverter {
   }
 
   /**
-   * Create a new {@link FieldNameConverter}.
+   * Create a new {@link FieldNameConverter} for a given sensor type and config.
    *
    * @param sensorType The type of sensor.
    * @param config The writer configuration.
-   * @return
+   * @return The new {@link FieldNameConverter}
    */
   public static FieldNameConverter create(String sensorType, WriterConfiguration config) {
     FieldNameConverter result = null;
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/field/transformation/FieldTransformations.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/field/transformation/FieldTransformations.java
index d80c1a4..d30b71a 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/field/transformation/FieldTransformations.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/field/transformation/FieldTransformations.java
@@ -32,6 +32,13 @@ public enum FieldTransformations {
   FieldTransformations(FieldTransformation mapping) {
     this.mapping = mapping;
   }
+
+  /**
+   * Gets a {@link FieldTransformation} based on the provided mapping.
+   *
+   * @param mapping The name of the mapping to pull
+   * @return The field transformation associated with the mapping
+   */
   public static FieldTransformation get(String mapping) {
     try {
       return FieldTransformations.valueOf(mapping).mapping;
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/field/transformation/RegexSelectTransformation.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/field/transformation/RegexSelectTransformation.java
index b8d1c07..ed8cd33 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/field/transformation/RegexSelectTransformation.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/field/transformation/RegexSelectTransformation.java
@@ -65,7 +65,7 @@ public class RegexSelectTransformation implements FieldTransformation {
    * Return true if there is a regex match or false otherwise.
    * @param regexes This could be either a list of regexes or a single regex
    * @param field The field to match
-   * @return
+   * @return True if match, false otherwise
    */
   private static boolean isMatch(Object regexes, String field) {
     if(regexes instanceof String) {
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/field/validation/FieldValidations.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/field/validation/FieldValidations.java
index 5ca33a6..cc378a8 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/field/validation/FieldValidations.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/field/validation/FieldValidations.java
@@ -43,6 +43,13 @@ public enum FieldValidations {
   FieldValidations(FieldValidation validation) {
     this.validation = validation;
   }
+
+  /**
+   * Gets a {@link FieldValidation} based on the provided validation.
+   *
+   * @param validation The validation to pull
+   * @return The field validation associated with the mapping
+   */
   public static FieldValidation get(String validation) {
     try {
       return FieldValidations.valueOf(validation).validation;
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/field/validation/network/IPValidation.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/field/validation/network/IPValidation.java
index 552d437..585b979 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/field/validation/network/IPValidation.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/field/validation/network/IPValidation.java
@@ -92,7 +92,7 @@ public class IPValidation implements FieldValidation, Predicate<List<Object>> {
    *
    * @param strings the input argument
    * @return {@code true} if the input argument matches the predicate,
-   * otherwise {@code false}
+   *     otherwise {@code false}
    */
   @Override
   public boolean test(List<Object> strings) {
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/field/validation/primitive/DateValidation.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/field/validation/primitive/DateValidation.java
index c326d93..bc558e5 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/field/validation/primitive/DateValidation.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/field/validation/primitive/DateValidation.java
@@ -52,7 +52,7 @@ public class DateValidation implements FieldValidation, Predicate<List<Object>>
    *
    * @param strings the input argument
    * @return {@code true} if the input argument matches the predicate,
-   * otherwise {@code false}
+   *     otherwise {@code false}
    */
   @Override
   public boolean test(List<Object> strings) {
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/hadoop/SequenceFileIterable.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/hadoop/SequenceFileIterable.java
index 1e4384b..fa666eb 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/hadoop/SequenceFileIterable.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/hadoop/SequenceFileIterable.java
@@ -53,10 +53,10 @@ public class SequenceFileIterable implements Iterable<byte[]> {
   }
 
   /**
-   * Cleans up all files read by this Iterable
+   * Cleans up all files read by this Iterable.
    *
    * @return true if success, false if any files were not deleted
-   * @throws IOException
+   * @throws IOException if there's an error cleaning up files
    */
   public boolean cleanup() throws IOException {
     FileSystem fileSystem = FileSystem.get(config);
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/message/metadata/DefaultRawMessageStrategy.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/message/metadata/DefaultRawMessageStrategy.java
index 77ce340..780da96 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/message/metadata/DefaultRawMessageStrategy.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/message/metadata/DefaultRawMessageStrategy.java
@@ -25,7 +25,7 @@ import java.lang.invoke.MethodHandles;
 import java.util.Map;
 
 /**
- * The default implementation, which defines:
+ * The default implementation. Defines:
  * <ul>
  *   <li>Metadata: The data which comes in via the
  *   kafka key and the other bits of the tuple from the storm spout (e.g. the topic, etc).
@@ -44,7 +44,7 @@ public class DefaultRawMessageStrategy implements RawMessageStrategy {
    * @param rawMessage The raw message from the kafka value
    * @param readMetadata True if we want to read read the metadata
    * @param config The config for the RawMessageStrategy (See the rawMessageStrategyConfig in the SensorParserConfig)
-   * @return
+   * @return The {@link RawMessage} that includes metadata.
    */
   @Override
   public RawMessage get(Map<String, Object> rawMetadata, byte[] rawMessage, boolean readMetadata, Map<String, Object> config) {
@@ -68,7 +68,7 @@ public class DefaultRawMessageStrategy implements RawMessageStrategy {
 
   /**
    * The default mergeMetadata is false.
-   * @return
+   * @return false
    */
   @Override
   public boolean mergeMetadataDefault() {
@@ -77,7 +77,7 @@ public class DefaultRawMessageStrategy implements RawMessageStrategy {
 
   /**
    * The default readMetadata is false.
-   * @return
+   * @return false
    */
   @Override
   public boolean readMetadataDefault() {
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/message/metadata/EnvelopedRawMessageStrategy.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/message/metadata/EnvelopedRawMessageStrategy.java
index 9ea2e9a..d485245 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/message/metadata/EnvelopedRawMessageStrategy.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/message/metadata/EnvelopedRawMessageStrategy.java
@@ -36,7 +36,7 @@ import java.util.Map;
  *  <li>The non-data fields are considered metadata</li>
  * </ul>
  *
- * Additionally, the defaults around merging and reading metadata are adjusted to be on by default.
+ * <p>Additionally, the defaults around merging and reading metadata are adjusted to be on by default.
  * Note, this strategy allows for parser chaining and for a fully worked example, check the parser chaining use-case.
  */
 public class EnvelopedRawMessageStrategy implements RawMessageStrategy {
@@ -51,13 +51,13 @@ public class EnvelopedRawMessageStrategy implements RawMessageStrategy {
    * Retrieve the raw message by parsing the JSON Map in the kafka value and pulling the appropriate field.
    * Also, augment the default metadata with the non-data fields in the JSON Map.
    *
-   * Note: The data field in the JSON Map is not considered metadata.
+   * <p>Note: The data field in the JSON Map is not considered metadata.
    *
    * @param rawMetadata The metadata read from kafka Key (e.g. the topic, index, etc.)
    * @param rawMessage The raw message from the kafka value
    * @param readMetadata True if we want to read read the metadata
    * @param config The config for the RawMessageStrategy (See the rawMessageStrategyConfig in the SensorParserConfig)
-   * @return
+   * @return The {@link RawMessage}, potentially including metadata
    */
   @Override
   public RawMessage get(Map<String, Object> rawMetadata, byte[] rawMessage, boolean readMetadata, Map<String, Object> config) {
@@ -128,7 +128,7 @@ public class EnvelopedRawMessageStrategy implements RawMessageStrategy {
   /**
    * By default merge metadata.
    *
-   * @return
+   * @return true
    */
   @Override
   public boolean mergeMetadataDefault() {
@@ -137,7 +137,7 @@ public class EnvelopedRawMessageStrategy implements RawMessageStrategy {
 
   /**
    * By default read metadata.
-   * @return
+   * @return true
    */
   @Override
   public boolean readMetadataDefault() {
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/message/metadata/MetadataUtil.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/message/metadata/MetadataUtil.java
index bfd1622..3034ddd 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/message/metadata/MetadataUtil.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/message/metadata/MetadataUtil.java
@@ -50,7 +50,7 @@ public enum MetadataUtil {
    * 'metron.metadata'.
    *
    * @param config The rawMessageStrategyConfig
-   * @return
+   * @return the prefix for metadata keys
    */
   public String getMetadataPrefix(Map<String, Object> config) {
     String prefix = (String) config.getOrDefault(METADATA_PREFIX_CONFIG, METADATA_PREFIX);
@@ -82,10 +82,11 @@ public enum MetadataUtil {
    *   <li>The kafka key</li>
    *   <li>The tuple fields outside of the value (e.g. the topic)</li>
    * </ul>
-   * In addition to extracting the metadata into a map, it applies the appropriate prefix (as configured in the rawMessageStrategyConfig).
-   * @param prefix
-   * @param t
-   * @return
+   *
+   * <p>In addition to extracting the metadata into a map, it applies the appropriate prefix (as configured in the rawMessageStrategyConfig).
+   * @param prefix The prefix of the metadata keys
+   * @param t The tuple to get metadata from
+   * @return A map containing the metadata
    */
   public Map<String, Object> extractMetadata(String prefix, Tuple t) {
     Map<String, Object> metadata = new HashMap<>();
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/message/metadata/RawMessage.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/message/metadata/RawMessage.java
index 5fc9971..e5f80aa 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/message/metadata/RawMessage.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/message/metadata/RawMessage.java
@@ -21,7 +21,7 @@ import java.util.Arrays;
 import java.util.Map;
 
 /**
- * A holder class for the message and metadata
+ * A holder class for the message and metadata.
  */
 public class RawMessage {
   byte[] message;
@@ -34,7 +34,7 @@ public class RawMessage {
 
   /**
    * Get the data to be parsed.
-   * @return
+   * @return Raw bytes data of the message
    */
   public byte[] getMessage() {
     return message;
@@ -46,7 +46,7 @@ public class RawMessage {
 
   /**
    * Get the metadata to use based on the RawMessageStrategy.
-   * @return
+   * @return Map of the metadata
    */
   public Map<String, Object> getMetadata() {
     return metadata;
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/message/metadata/RawMessageStrategies.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/message/metadata/RawMessageStrategies.java
index 1b2081e..50f8537 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/message/metadata/RawMessageStrategies.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/message/metadata/RawMessageStrategies.java
@@ -27,7 +27,7 @@ import java.util.Map;
  */
 public enum RawMessageStrategies implements RawMessageStrategy {
   /**
-   * The default strategy
+   * The default strategy.
    */
   DEFAULT(new DefaultRawMessageStrategy()),
   /**
@@ -41,13 +41,13 @@ public enum RawMessageStrategies implements RawMessageStrategy {
   }
 
   /**
-   * Retrieve the raw message given the strategy specified. Note the javadocs for the individual strategy for more info.
+   * Retrieve the raw message given the strategy specified. Note the Javadocs for the individual strategy for more info.
    *
    * @param rawMetadata The metadata read from kafka Key (e.g. the topic, index, etc.)
-   * @param originalMessage
+   * @param originalMessage The raw bytes of the original message
    * @param readMetadata True if we want to read read the metadata
    * @param config The config for the RawMessageStrategy (See the rawMessageStrategyConfig in the SensorParserConfig)
-   * @return
+   * @return a {@link RawMessage} based on the given strategy.
    */
   @Override
   public RawMessage get(Map<String, Object> rawMetadata, byte[] originalMessage, boolean readMetadata, Map<String, Object> config) {
@@ -55,7 +55,7 @@ public enum RawMessageStrategies implements RawMessageStrategy {
   }
 
   /**
-   * Merge metadata given the strategy specified. Note the javadocs for the individual strategy for more info.
+   * Merge metadata given the strategy specified. Note the Javadocs for the individual strategy for more info.
    *
    * @param message The parsed message (note: prior to the field transformations)
    * @param metadata The metadata passed along
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/message/metadata/RawMessageStrategy.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/message/metadata/RawMessageStrategy.java
index c93389d..ccd7768 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/message/metadata/RawMessageStrategy.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/message/metadata/RawMessageStrategy.java
@@ -65,13 +65,13 @@ public interface RawMessageStrategy extends Serializable {
 
   /**
    * The default value for merging metadata.
-   * @return
+   * @return true if default to merge, false otherwise
    */
   boolean mergeMetadataDefault();
 
   /**
    * The default value for reading metadata.
-   * @return
+   * @return true if default to read, false otherwise
    */
   boolean readMetadataDefault();
 }
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/message/metadata/RawMessageUtil.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/message/metadata/RawMessageUtil.java
index 91a80f1..3bd9915 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/message/metadata/RawMessageUtil.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/message/metadata/RawMessageUtil.java
@@ -39,12 +39,12 @@ public enum RawMessageUtil {
 
   /**
    * Extract the raw message given the strategy, the tuple and the metadata configs.
-   * @param strategy
-   * @param t
-   * @param rawMessage
-   * @param readMetadata
-   * @param config
-   * @return
+   * @param strategy The {@link RawMessageStrategy} to use for extraction
+   * @param t The tuple to pull the message from
+   * @param rawMessage The raw message in bytes
+   * @param readMetadata True if read metadata, false otherwise
+   * @param config The config to use during extraction
+   * @return The resulting {@link RawMessage}
    */
   public RawMessage getRawMessage(RawMessageStrategy strategy, Tuple t, byte[] rawMessage, boolean readMetadata, Map<String, Object> config) {
     Map<String, Object> metadata = new HashMap<>();
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/performance/PerformanceLogger.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/performance/PerformanceLogger.java
index 78aacd3..b5e8646 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/performance/PerformanceLogger.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/performance/PerformanceLogger.java
@@ -48,13 +48,21 @@ public class PerformanceLogger {
    *
    * @param configSupplier provides configuration for the logger as a Map&lt;String, Object&gt;
    * @param loggerName     name for the underlying logger. This name is used when enabling/disabling
-   * the logger.
+   *     the logger.
    */
   public PerformanceLogger(Supplier<Map<String, Object>> configSupplier, String loggerName) {
     this(configSupplier, LoggerFactory.getLogger(loggerName), new ThresholdCalculator(),
         new Timing());
   }
 
+  /**
+   * Constructor that allows more fine grained control.
+   *
+   * @param configSupplier provides configuration for the logger as a Map&lt;String, Object&gt;
+   * @param logger The actual logger to be used
+   * @param thresholdCalc The {@link ThresholdCalculator} to use
+   * @param timing The {@link Timing} to use
+   */
   public PerformanceLogger(Supplier<Map<String, Object>> configSupplier, Logger logger,
       ThresholdCalculator thresholdCalc, Timing timing) {
     this.configSupplier = configSupplier;
@@ -68,7 +76,7 @@ public class PerformanceLogger {
    * Marks a timer start. Works in conjunction with the log methods. Calling log after
    * calling mark will log elapsed time for the provided markName.
    *
-   * @param markName
+   * @param markName The name of the mark to use
    */
   public void mark(String markName) {
     timing.mark(markName);
@@ -77,7 +85,7 @@ public class PerformanceLogger {
   /**
    * Log a message at DEBUG level for the given markName.
    * Warns when logging for a markName that hasn't been set.
-   * <p>
+   *
    * <p>This form avoids superfluous string concatenation when the logger
    * is disabled for the DEBUG level.</p>
    *
@@ -92,7 +100,7 @@ public class PerformanceLogger {
   /**
    * Log a message at DEBUG level for the given markName according to the specified message.
    * Warns when logging for a markName that hasn't been set.
-   * <p>
+   *
    * <p>This form avoids superfluous string concatenation when the logger
    * is disabled for the DEBUG level.</p>
    *
@@ -127,7 +135,7 @@ public class PerformanceLogger {
   /**
    * Log a message at DEBUG level for the given markName according to the specified format
    * and argument. Warns when logging for a markName that hasn't been set.
-   * <p>
+   *
    * <p>This form avoids superfluous string concatenation when the logger
    * is disabled for the DEBUG level.</p>
    *
@@ -144,7 +152,7 @@ public class PerformanceLogger {
 
   /**
    * Log a message at DEBUG level according to the specified format and argument.
-   * <p>
+   *
    * <p>This form avoids superfluous string concatenation when the logger
    * is disabled for the DEBUG level.</p>
    *
@@ -162,7 +170,7 @@ public class PerformanceLogger {
 
   /**
    * Log a message at DEBUG level according to the specified format and arguments.
-   * <p>
+   *
    * <p>This form avoids superfluous string concatenation when the logger
    * is disabled for the DEBUG level. However, this variant incurs the hidden
    * (and relatively small) cost of creating an <code>Object[]</code> before invoking the method,
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/performance/ThresholdCalculator.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/performance/ThresholdCalculator.java
index de7cfdd..9cd592b 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/performance/ThresholdCalculator.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/performance/ThresholdCalculator.java
@@ -21,7 +21,7 @@ package org.apache.metron.common.performance;
 public class ThresholdCalculator {
 
   /**
-   * Returns true roughly the provided percent of the time, false 100%-'percent' of the time
+   * Returns true roughly the provided percent of the time, false 100%-'percent' of the time.
    *
    * @param percent Desired probability to return true
    * @return true if the percent probability is true for this call.
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/performance/Timing.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/performance/Timing.java
index 67d471b..747ac81 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/performance/Timing.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/performance/Timing.java
@@ -30,7 +30,7 @@ public class Timing {
   }
 
   /**
-   * Stores a starting time from current nanoTime with the provided name
+   * Stores a starting time from current nanoTime with the provided name.
    *
    * @param name starting time mark name
    */
@@ -40,7 +40,7 @@ public class Timing {
 
   /**
    * Returns elapsed nanoTime given a stored marked time for the given name. Returns 0 for
-   * non-existent mark names
+   * non-existent mark names.
    *
    * @param name mark name to get elapsed time for.
    */
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/system/Clock.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/system/Clock.java
index 458b730..0dd36dd 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/system/Clock.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/system/Clock.java
@@ -28,6 +28,12 @@ public class Clock {
     return System.currentTimeMillis();
   }
 
+  /**
+   * Retrieves the current time in a given format compatible with {@link SimpleDateFormat}.
+   *
+   * @param stdDateFormat The format to use
+   * @return String representation of the current time
+   */
   public String currentTimeFormatted(String stdDateFormat) {
     SimpleDateFormat format = new SimpleDateFormat(stdDateFormat);
     format.setTimeZone(TimeZone.getTimeZone(UTC));
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/system/Environment.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/system/Environment.java
index 6568484..97faa04 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/system/Environment.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/system/Environment.java
@@ -18,7 +18,7 @@
 package org.apache.metron.common.system;
 
 /**
- * Useful so we can test mock dependency injection with environment variables
+ * Useful so we can test mock dependency injection with environment variables.
  */
 public class Environment {
   public String get(String variable) {
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/system/FakeClock.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/system/FakeClock.java
index d0f9b5e..1ba49ef 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/system/FakeClock.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/system/FakeClock.java
@@ -23,11 +23,11 @@ import java.util.concurrent.TimeUnit;
  * A fake clock for test purposes, that starts out at time zero (epoch), and
  * never advances itself, but allows you to increment it by any desired amount.
  *
- * Note that the base class is not the Java 8 Clock, but rather the Clock we
+ * <p>Note that the base class is not the Java 8 Clock, but rather the Clock we
  * defined in {@link org.apache.metron.common.system.Clock}.  Fundamental units of time
  * are milliseconds.
  *
- * Three exceptions are also defined: {@link IllegalArgumentClockNegative},
+ * <p>Three exceptions are also defined: {@link IllegalArgumentClockNegative},
  * {@link IllegalArgumentClockZero}, and {@link IllegalArgumentClockOverflow}.
  * These are thrown in various circumstances that imply the FakeClock is
  * being used outside of its design intent. They are subclasses of IllegalArgumentException,
@@ -43,16 +43,15 @@ public class FakeClock extends Clock {
 
   /**
    * Advance the fake clock by a number of milliseconds.
-   * @param duration_ms
-   *
+   * @param duration_ms The duration of the adjustment
    * @throws IllegalArgumentClockNegative (unchecked) if you try to go backwards in time.
-   * This is not an allowed behavior, because most system clocks go to great
-   * effort to make sure it never happens, even with, e.g., anomalous events
-   * from a bad NTP server.
-   * If we really get a demand for this capability, we'll add methods that don't
-   * check for this.
+   *     This is not an allowed behavior, because most system clocks go to great
+   *     effort to make sure it never happens, even with, e.g., anomalous events
+   *     from a bad NTP server.
+   *     If we really get a demand for this capability, we'll add methods that don't
+   *     check for this.
    * @throws IllegalArgumentClockOverflow (unchecked) if you try to add a duration
-   * that would overflow the Long value of {@code currentTimeMillis}
+   *     that would overflow the Long value of {@code currentTimeMillis}
    */
   public void elapseMillis(long duration_ms) {
     long instant_ms = now_ms + duration_ms;
@@ -73,7 +72,7 @@ public class FakeClock extends Clock {
    * Advance the fake clock by a number of seconds.
    * See {@code elapseMillis} for details.
    *
-   * @param duration_secs
+   * @param duration_secs The duration to elapse in seconds
    */
   public void elapseSeconds(long duration_secs) {
     elapseMillis(TimeUnit.SECONDS.toMillis(duration_secs));
@@ -81,19 +80,19 @@ public class FakeClock extends Clock {
 
   /**
    * Advance the fake clock to a point in time specified as milliseconds after 0.
-   * @param instant_ms - epoch time in milliseconds
    *
+   * @param instant_ms - epoch time in milliseconds
    * @throws IllegalArgumentClockNegative (unchecked) if you try to go backwards in time.
-   * This is not an allowed behavior, because most system clocks go to great
-   * effort to make sure it never happens, even with, e.g., anomalous events
-   * from a bad NTP server.
-   * If we really get a demand for this capability, we'll add methods that don't
-   * check for this.
+   *     This is not an allowed behavior, because most system clocks go to great
+   *     effort to make sure it never happens, even with, e.g., anomalous events
+   *     from a bad NTP server.
+   *     If we really get a demand for this capability, we'll add methods that don't
+   *     check for this.
    * @throws IllegalArgumentClockZero (unchecked) if you try to "advance" the clock to the time it already is.
-   * Why?  Because it implies your test code has lost track of previous increments,
-   * which might be problematic, so we do this in the spirit of "fail fast".
-   * If you *meant* to lose track, for instance if you were using random numbers of events,
-   * or whatever, you can always orient yourself in time by reading {@code currentTimeMillis}.
+   *     Why?  Because it implies your test code has lost track of previous increments,
+   *     which might be problematic, so we do this in the spirit of "fail fast".
+   *     If you *meant* to lose track, for instance if you were using random numbers of events,
+   *     or whatever, you can always orient yourself in time by reading {@code currentTimeMillis}.
    */
   public void advanceToMillis(long instant_ms) {
     if (instant_ms < now_ms) {
@@ -140,7 +139,7 @@ public class FakeClock extends Clock {
    * If you *meant* to lose track, for instance if you were using random numbers of events,
    * or whatever, you can always orient yourself in time by reading {@code currentTimeMillis}.
    *
-   * Note that argument does not apply to ellapseMillis(0), so it does not throw
+   * <p>Note that argument does not apply to ellapseMillis(0), so it does not throw
    * this exception.
    */
   public static class IllegalArgumentClockZero extends IllegalArgumentException {
@@ -151,7 +150,7 @@ public class FakeClock extends Clock {
 
   /**
    * IllegalArgumentClockOverflow (unchecked) is thrown if you try to add a duration
-   * that would overflow the Long value of {@code currentTimeMillis}
+   * that would overflow the Long value of {@code currentTimeMillis}.
    */
   public static class IllegalArgumentClockOverflow extends IllegalArgumentException {
     public IllegalArgumentClockOverflow(String s) {
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/typosquat/TyposquattingStrategies.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/typosquat/TyposquattingStrategies.java
index a9f9a41..c8a89d9 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/typosquat/TyposquattingStrategies.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/typosquat/TyposquattingStrategies.java
@@ -54,6 +54,12 @@ public enum TyposquattingStrategies implements TyposquattingStrategy {
     return candidates;
   }
 
+  /**
+   * Generates all typosquatting candidates.
+   *
+   * @param originalString The original string to generate candidates for
+   * @return A set of candidates for typosquatting
+   */
   public static Set<String> generateAllCandidates(String originalString) {
     Set<String> ret = new HashSet<>();
     for(TyposquattingStrategy s : values() ) {
@@ -62,6 +68,12 @@ public enum TyposquattingStrategies implements TyposquattingStrategy {
     return ret;
   }
 
+  /**
+   * Retrieves a strategy by name.
+   *
+   * @param name The name of the strategy
+   * @return The associated {@link TyposquattingStrategy}
+   */
   public static TyposquattingStrategies byName(String name) {
     for(TyposquattingStrategies s : values()) {
       if(s.strategy.name().equals(name)) {
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/utils/ErrorUtils.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/utils/ErrorUtils.java
index 241b0fe..e3ad306 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/utils/ErrorUtils.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/utils/ErrorUtils.java
@@ -56,7 +56,7 @@ public class ErrorUtils {
     }
 
     /**
-     * Throw runtime exception with format "reason + cause message + cause Throwable"
+     * Throw runtime exception with format "reason + cause message + cause Throwable".
      *
      * @param reason Message to include in exception
      * @param t Wrapped exception
@@ -89,6 +89,12 @@ public class ErrorUtils {
     }
   }
 
+  /**
+   * Handles a {@link MetronError} that occurs.
+   *
+   * @param collector The Storm output collector being reported to
+   * @param error The error that occurred
+   */
   public static void handleError(OutputCollector collector, MetronError error)
   {
     collector.emit(Constants.ERROR_STREAM, new Values(error.getJSONObject()));
@@ -99,6 +105,11 @@ public class ErrorUtils {
 
   }
 
+  /**
+   * Generates a string version of a thread dump.
+   *
+   * @return String of the thread dump
+   */
 	public static String generateThreadDump() {
 		final StringBuilder dump = new StringBuilder();
 		final ThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean();
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/utils/HDFSUtils.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/utils/HDFSUtils.java
index 31a4d0e..d1697f4 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/utils/HDFSUtils.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/utils/HDFSUtils.java
@@ -33,6 +33,13 @@ public class HDFSUtils {
     return readBytes(new Path(path));
   }
 
+  /**
+   * Reads a provided path as raw bytes.
+   *
+   * @param inPath The path to be read
+   * @return The raw bytes of the contents
+   * @throws IOException If an error occurs during reading the path
+   */
   public static byte[] readBytes(Path inPath) throws IOException {
     FileSystem fs = FileSystem.get(inPath.toUri(), new Configuration());
     try (FSDataInputStream inputStream = fs.open(inPath)) {
@@ -49,7 +56,7 @@ public class HDFSUtils {
    *
    * @param path path to file
    * @return file contents as a String
-   * @throws IOException
+   * @throws IOException If an error occurs during reading the path
    */
   public static List<String> readFile(String path) throws IOException {
     return readFile(new Configuration(), path);
@@ -64,7 +71,7 @@ public class HDFSUtils {
    * @param config Hadoop configuration
    * @param path path to file
    * @return file contents as a String
-   * @throws IOException
+   * @throws IOException If an error occurs during reading the path
    */
   public static List<String> readFile(Configuration config, String path) throws IOException {
     Path inPath = new Path(path);
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/utils/HashUtils.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/utils/HashUtils.java
index b5170ce..2048a91 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/utils/HashUtils.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/utils/HashUtils.java
@@ -26,8 +26,19 @@ import java.util.stream.Collectors;
 
 import static java.nio.charset.StandardCharsets.UTF_8;
 
+/**
+ * A set of utilities for converted a message to a SHA-256 hex-encoded hash string. Can be applied
+ * to JSON messages (or a subset of fields of a JSON message), or raw bytes.
+ */
 public class HashUtils {
 
+  /**
+   * Produces a hash of a JSON message from a subset of the fields.
+   *
+   * @param message The JSON message to be hashed
+   * @param hashFields The fields to hash
+   * @return A string containing the resulting hash
+   */
   public static String getMessageHash(JSONObject message, Collection<String> hashFields) {
     List<String> hashElements = hashFields.stream().map(errorField ->
             String.format("%s-%s", errorField, message.get(errorField))).collect(Collectors.toList());
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/utils/JSONUtils.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/utils/JSONUtils.java
index 12bb879..93eee8a 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/utils/JSONUtils.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/utils/JSONUtils.java
@@ -92,6 +92,15 @@ public enum JSONUtils {
     return _mapper.get().readValue(is, (TypeReference<T>)ref.get());
   }
 
+  /**
+   * Loads JSON from a file and ensures it's located in the specified class.
+   *
+   * @param f The file to read from
+   * @param ref A {@link ReferenceSupplier} for the class to be loaded into.
+   * @param <T> The type parameter of the class
+   * @return The JSON loaded into the provided class
+   * @throws IOException If there's an issue loading the JSON
+   */
   public <T> T load(File f, ReferenceSupplier<T> ref) throws IOException {
     try (InputStream is = new BufferedInputStream(new FileInputStream(f))) {
       return _mapper.get().readValue(is, (TypeReference<T>)ref.get());
@@ -102,6 +111,15 @@ public enum JSONUtils {
     return _mapper.get().readValue(is, clazz);
   }
 
+  /**
+   * Loads JSON from a file and ensures it's located in the provided class.
+   *
+   * @param f The file to read from
+   * @param clazz The class to read into
+   * @param <T> The type parameter of the class
+   * @return The JSON loaded into the provided class
+   * @throws IOException If there's an issue loading the JSON
+   */
   public <T> T load(File f, Class<T> clazz) throws IOException {
     try (InputStream is = new BufferedInputStream(new FileInputStream(f))) {
       return _mapper.get().readValue(is, clazz);
@@ -112,6 +130,14 @@ public enum JSONUtils {
     return _mapper.get().readValue(is, clazz);
   }
 
+  /**
+   * Converts an object to a JSON string. Can be a pretty string
+   *
+   * @param o The object to convert
+   * @param pretty Pretty formatted string if true, otherwise not pretty formatted.
+   * @return A JSON string representation of the object
+   * @throws JsonProcessingException If there's an issue converting to JSON.
+   */
   public String toJSON(Object o, boolean pretty) throws JsonProcessingException {
     if (pretty) {
       return _mapper.get().writerWithDefaultPrettyPrinter().writeValueAsString(o);
@@ -136,7 +162,7 @@ public enum JSONUtils {
   }
 
   /**
-   * Reads a JSON string into a JsonNode Object
+   * Reads a JSON string into a JsonNode Object.
    *
    * @param json JSON value to deserialize
    * @return deserialized JsonNode Object
@@ -146,7 +172,7 @@ public enum JSONUtils {
   }
 
   /**
-   * Reads a JSON byte array into a JsonNode Object
+   * Reads a JSON byte array into a JsonNode Object.
    *
    * @param json JSON value to deserialize
    * @return deserialized JsonNode Object
@@ -177,12 +203,31 @@ public enum JSONUtils {
     return toJSONPretty(JsonPatch.apply(patchNode, sourceNode));
   }
 
+  /**
+   * Update JSON given a JSON Patch (see RFC 6902 at https://tools.ietf.org/html/rfc6902)
+   *
+   * @param patch Array of JSON patches in raw bytes
+   * @param source Source JSON in raw bytes to apply patch to
+   * @return new json after applying the patch
+   *
+   * @see JSONUtils#applyPatch(String, String)
+   */
   public byte[] applyPatch(byte[] patch, byte[] source) throws IOException {
     JsonNode patchNode = readTree(patch);
     JsonNode sourceNode = readTree(source);
     return toJSONPretty(JsonPatch.apply(patchNode, sourceNode));
   }
 
+
+  /**
+   * Update JSON given a JSON Patch (see RFC 6902 at https://tools.ietf.org/html/rfc6902)
+   *
+   * @param patch List of JSON patches in map form
+   * @param source Source JSON in map form to apply patch to
+   * @return new json after applying the patch
+   *
+   * @see JSONUtils#applyPatch(String, String)
+   */
   public Map<String, Object> applyPatch(List<Map<String, Object>> patch, Map<String, Object> source) {
     JsonNode originalNode = convert(source, JsonNode.class);
     JsonNode patchNode = convert(patch, JsonNode.class);
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/utils/KafkaUtils.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/utils/KafkaUtils.java
index 796bc42..5cd25a2 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/utils/KafkaUtils.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/utils/KafkaUtils.java
@@ -34,6 +34,14 @@ import java.util.Map;
 public enum KafkaUtils {
   INSTANCE;
   public static final String SECURITY_PROTOCOL = "security.protocol";
+
+  /**
+   * Retrieves the list of Kafka brokers from ZooKeeper.
+   *
+   * @param zkQuorum The ZK quorum to use to connect with ZK
+   * @return List of string for Kafka brokers in host:port format
+   * @throws Exception If there's an issue retrieving brokers
+   */
   public List<String> getBrokersFromZookeeper(String zkQuorum) throws Exception {
     RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3);
     CuratorFramework framework = CuratorFrameworkFactory.newClient(zkQuorum, retryPolicy);
@@ -45,6 +53,13 @@ public enum KafkaUtils {
     }
   }
 
+  /**
+   * Retrieves the list of Kafka brokers from ZooKeeper.
+   *
+   * @param client ZK client to use during lookup
+   * @return List of string for Kafka brokers in host:port format
+   * @throws Exception If there's an issue retrieving brokers
+   */
   public List<String> getBrokersFromZookeeper(CuratorFramework client) throws Exception {
     List<String> ret = new ArrayList<>();
     for(String id : client.getChildren().forPath("/brokers/ids")) {
@@ -68,6 +83,13 @@ public enum KafkaUtils {
     return ret;
   }
 
+  /**
+   * Normalizes the Kafka security protocol name found in configs, in order to handle the
+   * inconsistencies seen in Kafka versions (PLAINTEXTSASL vs. SASL_PLAINTEXT)
+   *
+   * @param configs The config to normalize the protocol in
+   * @return The map with protocol adjusted
+   */
   public Map<String, Object> normalizeProtocol(Map<String, Object> configs) {
     if(configs.containsKey(SECURITY_PROTOCOL)) {
       String protocol = normalizeProtocol((String)configs.get(SECURITY_PROTOCOL));
@@ -76,6 +98,13 @@ public enum KafkaUtils {
     return configs;
   }
 
+  /**
+   * Normalizes the Kafka security protocol name, in order to handle the inconsistencies seen in
+   * Kafka versions (PLAINTEXTSASL vs. SASL_PLAINTEXT)
+   *
+   * @param protocol The protocol to normalize
+   * @return The protocol recognized by Kafka
+   */
   public String normalizeProtocol(String protocol) {
     if(protocol.equalsIgnoreCase("PLAINTEXTSASL") || protocol.equalsIgnoreCase("SASL_PLAINTEXT")) {
       if(SecurityProtocol.getNames().contains("PLAINTEXTSASL")) {
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/utils/KeyUtil.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/utils/KeyUtil.java
index 595a839..11fce4d 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/utils/KeyUtil.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/utils/KeyUtil.java
@@ -32,12 +32,25 @@ public enum KeyUtil {
     }
   };
 
+  /**
+   * Determines the prefix, given a key.
+   *
+   * @param key The key to get a prefix for
+   * @return A 16 byte hashed prefix based on the key.
+   */
   public byte[] getPrefix(byte[] key) {
     Hasher hasher = hFunction.get().newHasher();
     hasher.putBytes(key);
     return hasher.hash().asBytes();
   }
 
+  /**
+   * Merges a prefix and a key into a single byte array. Simple concatenation.
+   *
+   * @param prefix A byte array with the prefix
+   * @param key A byte array with the key
+   * @return A byte array with the prefix and key concatenated.
+   */
   public byte[] merge(byte[] prefix, byte[] key) {
     byte[] val = new byte[key.length + prefix.length];
     int offset = 0;
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/utils/ReflectionUtils.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/utils/ReflectionUtils.java
index 1f216a8..4689014 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/utils/ReflectionUtils.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/utils/ReflectionUtils.java
@@ -21,6 +21,14 @@ import java.lang.reflect.InvocationTargetException;
 
 public class ReflectionUtils {
 
+  /**
+   * Creates an instance of a provided class.
+   *
+   * @param className The name of the class to create an instance of
+   * @param defaultClass The default if the class name is null/empty or is an inner class
+   * @param <T> The type parameter of the default class
+   * @return An instance of the provided class.
+   */
   public static <T> T createInstance(String className, T defaultClass) {
     T instance;
     if (className == null || className.length() == 0 || className.charAt(0) == '$') {
@@ -51,7 +59,7 @@ public class ReflectionUtils {
 
 
   /**
-   * Create instance from no-args constructor
+   * Create instance from no-args constructor.
    *
    * @param clazz Class to create instance from
    * @param <T> Instance created from passed class
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/utils/SerDeUtils.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/utils/SerDeUtils.java
index 5e2ceb9..fe1d7cd 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/utils/SerDeUtils.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/utils/SerDeUtils.java
@@ -226,7 +226,7 @@ public class SerDeUtils {
   /**
    * Serialize a profile measurement's value.
    *
-   * The value produced by a Profile definition can be any numeric data type.  The data
+   * <p>The value produced by a Profile definition can be any numeric data type.  The data
    * type depends on how the profile is defined by the user.  The user should be able to
    * choose the data type that is most suitable for their use case.
    *
@@ -250,7 +250,7 @@ public class SerDeUtils {
   /**
    * Deserialize a profile measurement's value.
    *
-   * The value produced by a Profile definition can be any numeric data type.  The data
+   * <p>The value produced by a Profile definition can be any numeric data type.  The data
    * type depends on how the profile is defined by the user.  The user should be able to
    * choose the data type that is most suitable for their use case.
    *
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/utils/StringUtils.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/utils/StringUtils.java
index 0882788..d08f70a 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/utils/StringUtils.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/utils/StringUtils.java
@@ -23,6 +23,14 @@ import java.util.Arrays;
 import java.util.Optional;
 
 public class StringUtils {
+
+  /**
+   * Joins string optionals potentially containing string with a delimiter.
+   *
+   * @param delim The delimiter
+   * @param parts The string optionals to join
+   * @return The joined string, without any missing optionals.
+   */
   public static String join(String delim, Optional<String>... parts) {
     return Joiner.on(delim).join(
             Arrays.asList(parts).stream().filter(
@@ -33,9 +41,9 @@ public class StringUtils {
   }
 
   /**
-   * Strips specified number of lines from beginning for String val
-   * @param val
-   * @param numLines
+   * Strips specified number of lines from beginning for String val.
+   * @param val The input string
+   * @param numLines The number of lines to remove
    */
   public static String stripLines(String val, int numLines) {
     int start = org.apache.commons.lang3.StringUtils.ordinalIndexOf(val, System.lineSeparator(), numLines);
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/utils/cli/OptionHandler.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/utils/cli/OptionHandler.java
index 6dfebb8..61fe06b 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/utils/cli/OptionHandler.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/utils/cli/OptionHandler.java
@@ -32,6 +32,12 @@ public abstract class OptionHandler<OPT_T extends Enum<OPT_T> & CLIOptions<OPT_T
 
   public abstract String getShortCode();
 
+  /**
+   * Returns options based on the {@link CLIOptions} provided.
+   *
+   * @param values the values to produce options with
+   * @return The resulting options
+   */
   public static Options getOptions(CLIOptions[] values) {
     Options ret = new Options();
     for(CLIOptions o : values) {
@@ -45,6 +51,16 @@ public abstract class OptionHandler<OPT_T extends Enum<OPT_T> & CLIOptions<OPT_T
     formatter.printHelp( name, getOptions(values));
   }
 
+  /**
+   * Creates a config based on the provided command line options, allowing user to get an enum
+   * based view of the options map.
+   *
+   * @param cli The command line with the parsed options.
+   * @param values The values of the options.
+   * @param clazz The class of the enum representing the option keys.
+   * @param <OPT_T> The type parameter of the enum
+   * @return A Map of enum key -> option value
+   */
   public static <OPT_T extends Enum<OPT_T> & CLIOptions<OPT_T>>
   EnumMap<OPT_T, Optional<Object> > createConfig(CommandLine cli, OPT_T[] values, Class<OPT_T> clazz) {
     EnumMap<OPT_T, Optional<Object> > ret = new EnumMap<>(clazz);
@@ -54,6 +70,16 @@ public abstract class OptionHandler<OPT_T extends Enum<OPT_T> & CLIOptions<OPT_T
     return ret;
   }
 
+  /**
+   * Parses options of a program and returns a command line representing them.
+   *
+   * @param name Name of the program
+   * @param parser The command line parser to be used
+   * @param args The arguments to the program
+   * @param values The cli option values
+   * @param helpOption The cli help option
+   * @return A command line representing the parsed options.
+   */
   public static CommandLine parse(String name, CommandLineParser parser, String[] args, CLIOptions[] values, CLIOptions helpOption) {
     try {
       CommandLine cli = parser.parse(getOptions(values), args);
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/utils/file/ReaderSpliterator.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/utils/file/ReaderSpliterator.java
index 9de61d4..908c51a 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/utils/file/ReaderSpliterator.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/utils/file/ReaderSpliterator.java
@@ -33,7 +33,7 @@ import static java.util.Spliterators.spliterator;
  * which gives up and reports no size and has no strategy for batching.  This is a bug
  * in Java 8 and will be fixed in Java 9.
  *
- * The ideas have been informed by https://www.airpair.com/java/posts/parallel-processing-of-io-based-data-with-java-streams
+ * <p>The ideas have been informed by https://www.airpair.com/java/posts/parallel-processing-of-io-based-data-with-java-streams
  * except more specific to strings and motivated by a JDK 8 bug as
  * described at http://bytefish.de/blog/jdk8_files_lines_parallel_stream/
  */
@@ -122,6 +122,14 @@ public class ReaderSpliterator implements Spliterator<String> {
     return lineStream(in, batchSize, false);
   }
 
+  /**
+   * Creates a {@link Stream} with a ReaderSpliterator underlying it.
+   *
+   * @param in the input for creating the stream
+   * @param batchSize The batch size to be used by the spliterator
+   * @param isParallel True if stream should be parallel, false otherwise
+   * @return The created {@link Stream}
+   */
   public static Stream<String> lineStream(BufferedReader in, int batchSize, boolean isParallel) {
     return StreamSupport.stream(new ReaderSpliterator(in, batchSize), isParallel)
                         .onClose(() -> {
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/utils/timestamp/TimestampConverters.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/utils/timestamp/TimestampConverters.java
index f0e0dd0..a6dc2a9 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/utils/timestamp/TimestampConverters.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/utils/timestamp/TimestampConverters.java
@@ -30,6 +30,12 @@ public enum TimestampConverters implements TimestampConverter{
     this.converter = converter;
   }
 
+  /**
+   * Gets a {@link TimestampConverter} by name.
+   *
+   * @param converter The name of the converter to get
+   * @return The timestamp converter
+   */
   public static TimestampConverter getConverter(String converter) {
     if(converter != null) {
       return TimestampConverters.valueOf(converter.toUpperCase()).converter;
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/writer/BulkWriterResponse.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/writer/BulkWriterResponse.java
index c4fa881..7606153 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/writer/BulkWriterResponse.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/writer/BulkWriterResponse.java
@@ -36,6 +36,12 @@ public class BulkWriterResponse {
         errors.put(error, tuple);
     }
 
+    /**
+     * Adds provided errors and associated tuples.
+     *
+     * @param error The error to add
+     * @param tuples Iterable of all tuples with the error
+     */
     public void addAllErrors(Throwable error, Iterable<Tuple> tuples) {
         if(tuples != null) {
             errors.putAll(error, tuples);
@@ -50,6 +56,11 @@ public class BulkWriterResponse {
         successes.add(success);
     }
 
+    /**
+     * Adds all provided successes.
+     *
+     * @param allSuccesses Successes to add
+     */
     public void addAllSuccesses(Iterable<Tuple> allSuccesses) {
         if(allSuccesses != null) {
             Iterables.addAll(successes, allSuccesses);
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/zookeeper/ZKConfigurationsCache.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/zookeeper/ZKConfigurationsCache.java
index 42967b2..2a6a22b 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/zookeeper/ZKConfigurationsCache.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/zookeeper/ZKConfigurationsCache.java
@@ -73,6 +73,13 @@ public class ZKConfigurationsCache implements ConfigurationsCache {
   private CuratorFramework client;
   ReadWriteLock lock = new ReentrantReadWriteLock();
 
+  /**
+   * Constructor that sets up the cache.
+   *
+   * @param client The client to use for ZooKeeper communications
+   * @param reloadable Callback for handling reloading
+   * @param types The types to be handled by the cache
+   */
   public ZKConfigurationsCache(CuratorFramework client, Reloadable reloadable, ConfiguredTypes... types) {
     updaters = new ArrayList<>();
     configs = new HashMap<>();
@@ -119,6 +126,9 @@ public class ZKConfigurationsCache implements ConfigurationsCache {
     }
   }
 
+  /**
+   * Closes and reinitializes the instance.
+   */
   public void reset() {
     Lock writeLock = lock.writeLock();
     try {
@@ -163,7 +173,13 @@ public class ZKConfigurationsCache implements ConfigurationsCache {
     }
   }
 
-
+  /**
+   * Retrieves the {@link Configurations} for the provided config class.
+   *
+   * @param configClass The Configurations class to return
+   * @param <T> The type parameter of the config class to return
+   * @return The appropriate configurations class
+   */
   public <T extends Configurations> T get(Class<T> configClass){
     Lock readLock = lock.readLock();
     try {
diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/zookeeper/configurations/ConfigurationsUpdater.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/zookeeper/configurations/ConfigurationsUpdater.java
index f616ece..235586e 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/zookeeper/configurations/ConfigurationsUpdater.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/zookeeper/configurations/ConfigurationsUpdater.java
@@ -41,7 +41,7 @@ public abstract class ConfigurationsUpdater<T extends Configurations> implements
   private Supplier<T> configSupplier;
 
   /**
-   * Construct a ConfigurationsUpdater
+   * Construct a ConfigurationsUpdater.
    * @param reloadable A callback which gets called whenever a reload happens
    * @param configSupplier A Supplier which creates the Configurations object.
    */
@@ -122,21 +122,22 @@ public abstract class ConfigurationsUpdater<T extends Configurations> implements
   public abstract void delete(String name);
 
   /**
+   * Gets the class for the {@link Configurations} type.
    *
-   * @return The Class for the Configurations type.
+   * @return The class
    */
   public abstract Class<T> getConfigurationClass();
 
   /**
    * This pulls the configuration from zookeeper and updates the cache.  It represents the initial state.
    * Force update is called when the zookeeper cache is initialized to ensure that the caches are updated.
-   * @param client
+   * @param client The ZK client interacting with configuration
    */
   public abstract void forceUpdate(CuratorFramework client);
 
   /**
-   * Create an empty Configurations object of type T.
-   * @return
+   * Create an empty {@link Configurations} object of type T.
+   * @return configurations
    */
   public abstract T defaultConfigurations();
 


Mime
View raw message