You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@fluo.apache.org by kt...@apache.org on 2016/07/01 03:14:03 UTC

[1/5] incubator-fluo git commit: Fixes #683 - Move class config to impl props

Repository: incubator-fluo
Updated Branches:
  refs/heads/master fee0ca74d -> 734061bd4


Fixes #683 - Move class config to impl props


Project: http://git-wip-us.apache.org/repos/asf/incubator-fluo/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-fluo/commit/28b9f2f9
Tree: http://git-wip-us.apache.org/repos/asf/incubator-fluo/tree/28b9f2f9
Diff: http://git-wip-us.apache.org/repos/asf/incubator-fluo/diff/28b9f2f9

Branch: refs/heads/master
Commit: 28b9f2f933f3c6ce3db8e618acd826288645300a
Parents: 6fd8629
Author: Mike Walch <mw...@gmail.com>
Authored: Tue Jun 28 13:33:12 2016 -0400
Committer: Mike Walch <mw...@gmail.com>
Committed: Tue Jun 28 16:54:07 2016 -0400

----------------------------------------------------------------------
 .../org/apache/fluo/api/client/FluoFactory.java | 50 +++++++++++++----
 .../fluo/api/config/FluoConfiguration.java      | 57 --------------------
 .../fluo/api/config/FluoConfigurationTest.java  | 13 +----
 3 files changed, 41 insertions(+), 79 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-fluo/blob/28b9f2f9/modules/api/src/main/java/org/apache/fluo/api/client/FluoFactory.java
----------------------------------------------------------------------
diff --git a/modules/api/src/main/java/org/apache/fluo/api/client/FluoFactory.java b/modules/api/src/main/java/org/apache/fluo/api/client/FluoFactory.java
index 1b684e8..91cc966 100644
--- a/modules/api/src/main/java/org/apache/fluo/api/client/FluoFactory.java
+++ b/modules/api/src/main/java/org/apache/fluo/api/client/FluoFactory.java
@@ -16,7 +16,9 @@
 package org.apache.fluo.api.client;
 
 import java.lang.reflect.InvocationTargetException;
+import java.util.Objects;
 
+import com.google.common.base.Preconditions;
 import org.apache.commons.configuration.Configuration;
 import org.apache.fluo.api.config.FluoConfiguration;
 import org.apache.fluo.api.exceptions.FluoException;
@@ -26,6 +28,8 @@ import org.apache.fluo.api.service.FluoWorker;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import static org.apache.fluo.api.config.FluoConfiguration.FLUO_PREFIX;
+
 /**
  * Factory for creating {@link FluoClient}, {@link FluoAdmin}, and {@link MiniFluo}. All factory
  * methods take a configuration object which can be built using {@link FluoConfiguration}.
@@ -34,6 +38,18 @@ public class FluoFactory {
 
   private static final Logger log = LoggerFactory.getLogger(FluoFactory.class);
 
+  private static final String FLUO_IMPL_PREFIX = FLUO_PREFIX + ".impl";
+  private static final String CLIENT_CLASS_PROP = FLUO_IMPL_PREFIX + ".client.class";
+  private static final String CLIENT_CLASS_DEFAULT = FLUO_PREFIX + ".core.client.FluoClientImpl";
+  private static final String ADMIN_CLASS_PROP = FLUO_IMPL_PREFIX + ".admin.class";
+  private static final String ADMIN_CLASS_DEFAULT = FLUO_PREFIX + ".core.client.FluoAdminImpl";
+  private static final String WORKER_CLASS_PROP = FLUO_IMPL_PREFIX + ".worker.class";
+  private static final String WORKER_CLASS_DEFAULT = FLUO_PREFIX + ".core.worker.FluoWorkerImpl";
+  private static final String ORACLE_CLASS_PROP = FLUO_IMPL_PREFIX + ".oracle.class";
+  private static final String ORACLE_CLASS_DEFAULT = FLUO_PREFIX + ".core.oracle.FluoOracleImpl";
+  private static final String MINI_CLASS_PROP = FLUO_IMPL_PREFIX + ".mini.class";
+  private static final String MINI_CLASS_DEFAULT = FLUO_PREFIX + ".mini.MiniFluoImpl";
+
   /**
    * Creates a {@link FluoClient} for reading and writing data to Fluo. {@link FluoClient#close()}
    * should be called when you are finished using it. Configuration (see {@link FluoConfiguration})
@@ -43,8 +59,7 @@ public class FluoFactory {
    * org.apache.fluo.client.accumulo.instance
    */
   public static FluoClient newClient(Configuration configuration) {
-    FluoConfiguration config = new FluoConfiguration(configuration);
-    return buildClassWithConfig(config.getClientClass(), config);
+    return getAndBuildClassWithConfig(configuration, CLIENT_CLASS_PROP, CLIENT_CLASS_DEFAULT);
   }
 
   /**
@@ -56,8 +71,7 @@ public class FluoFactory {
    * org.apache.fluo.admin.accumulo.table, org.apache.fluo.admin.accumulo.classpath
    */
   public static FluoAdmin newAdmin(Configuration configuration) {
-    FluoConfiguration config = new FluoConfiguration(configuration);
-    return buildClassWithConfig(config.getAdminClass(), config);
+    return getAndBuildClassWithConfig(configuration, ADMIN_CLASS_PROP, ADMIN_CLASS_DEFAULT);
   }
 
   /**
@@ -70,24 +84,40 @@ public class FluoFactory {
    * org.apache.fluo.admin.accumulo.table
    */
   public static MiniFluo newMiniFluo(Configuration configuration) {
-    FluoConfiguration config = new FluoConfiguration(configuration);
-    return buildClassWithConfig(config.getMiniClass(), config);
+    return getAndBuildClassWithConfig(configuration, MINI_CLASS_PROP, MINI_CLASS_DEFAULT);
   }
 
   /**
    * Creates a {@link FluoOracle} using the provided configuration.
    */
   public static FluoOracle newOracle(Configuration configuration) {
-    FluoConfiguration config = new FluoConfiguration(configuration);
-    return buildClassWithConfig(config.getOracleClass(), config);
+    return getAndBuildClassWithConfig(configuration, ORACLE_CLASS_PROP, ORACLE_CLASS_DEFAULT);
   }
 
   /**
    * Creates a {@link FluoWorker} using the provided configuration.
    */
   public static FluoWorker newWorker(Configuration configuration) {
+    return getAndBuildClassWithConfig(configuration, WORKER_CLASS_PROP, WORKER_CLASS_DEFAULT);
+  }
+
+  @SuppressWarnings("unchecked")
+  private static <T> T getAndBuildClassWithConfig(Configuration configuration, String classProp,
+      String classDefault) {
     FluoConfiguration config = new FluoConfiguration(configuration);
-    return buildClassWithConfig(config.getWorkerClass(), config);
+    String clazz = config.getString(classProp, classDefault);
+    Objects.requireNonNull(clazz, classProp + " cannot be null");
+    Preconditions.checkArgument(!clazz.isEmpty(), classProp + " cannot be empty");
+    return buildClassWithConfig(clazz, config);
+  }
+
+  @SuppressWarnings({"unchecked", "unused"})
+  private static <T> T getAndBuildClass(Configuration configuration, String classProp,
+      String classDefault) {
+    String clazz = configuration.getString(classProp, classDefault);
+    Objects.requireNonNull(clazz, classProp + " cannot be null");
+    Preconditions.checkArgument(!clazz.isEmpty(), classProp + " cannot be empty");
+    return buildClass(clazz);
   }
 
   @SuppressWarnings("unchecked")
@@ -111,7 +141,7 @@ public class FluoFactory {
     }
   }
 
-  @SuppressWarnings({"unchecked", "unused"})
+  @SuppressWarnings({"unchecked"})
   private static <T> T buildClass(String clazz) {
     try {
       return (T) Class.forName(clazz).newInstance();

http://git-wip-us.apache.org/repos/asf/incubator-fluo/blob/28b9f2f9/modules/api/src/main/java/org/apache/fluo/api/config/FluoConfiguration.java
----------------------------------------------------------------------
diff --git a/modules/api/src/main/java/org/apache/fluo/api/config/FluoConfiguration.java b/modules/api/src/main/java/org/apache/fluo/api/config/FluoConfiguration.java
index 6a3b74a..c3f459a 100644
--- a/modules/api/src/main/java/org/apache/fluo/api/config/FluoConfiguration.java
+++ b/modules/api/src/main/java/org/apache/fluo/api/config/FluoConfiguration.java
@@ -55,25 +55,19 @@ public class FluoConfiguration extends CompositeConfiguration {
   public static final String CLIENT_ZOOKEEPER_TIMEOUT_PROP = CLIENT_PREFIX + ".zookeeper.timeout";
   public static final String CLIENT_ZOOKEEPER_CONNECT_PROP = CLIENT_PREFIX + ".zookeeper.connect";
   public static final String CLIENT_RETRY_TIMEOUT_MS_PROP = CLIENT_PREFIX + ".retry.timeout.ms";
-  public static final String CLIENT_CLASS_PROP = CLIENT_PREFIX + ".class";
   public static final int CLIENT_ZOOKEEPER_TIMEOUT_DEFAULT = 30000;
   public static final String CLIENT_ACCUMULO_ZOOKEEPERS_DEFAULT = "localhost";
   public static final String CLIENT_ZOOKEEPER_CONNECT_DEFAULT = "localhost/fluo";
   public static final int CLIENT_RETRY_TIMEOUT_MS_DEFAULT = -1;
-  public static final String CLIENT_CLASS_DEFAULT = FLUO_PREFIX + ".core.client.FluoClientImpl";
 
   // Administration
   private static final String ADMIN_PREFIX = FLUO_PREFIX + ".admin";
   public static final String ADMIN_ACCUMULO_TABLE_PROP = ADMIN_PREFIX + ".accumulo.table";
   public static final String ADMIN_ACCUMULO_CLASSPATH_PROP = ADMIN_PREFIX + ".accumulo.classpath";
   public static final String ADMIN_ACCUMULO_CLASSPATH_DEFAULT = "";
-  public static final String ADMIN_CLASS_PROP = ADMIN_PREFIX + ".class";
-  public static final String ADMIN_CLASS_DEFAULT = FLUO_PREFIX + ".core.client.FluoAdminImpl";
 
   // Worker
   private static final String WORKER_PREFIX = FLUO_PREFIX + ".worker";
-  public static final String WORKER_CLASS_PROP = WORKER_PREFIX + ".class";
-  public static final String WORKER_CLASS_DEFAULT = FLUO_PREFIX + ".core.worker.FluoWorkerImpl";
   public static final String WORKER_NUM_THREADS_PROP = WORKER_PREFIX + ".num.threads";
   public static final String WORKER_INSTANCES_PROP = WORKER_PREFIX + ".instances";
   public static final String WORKER_MAX_MEMORY_MB_PROP = WORKER_PREFIX + ".max.memory.mb";
@@ -92,8 +86,6 @@ public class FluoConfiguration extends CompositeConfiguration {
 
   // Oracle
   private static final String ORACLE_PREFIX = FLUO_PREFIX + ".oracle";
-  public static final String ORACLE_CLASS_PROP = ORACLE_PREFIX + ".class";
-  public static final String ORACLE_CLASS_DEFAULT = FLUO_PREFIX + ".core.oracle.FluoOracleImpl";
   public static final String ORACLE_INSTANCES_PROP = ORACLE_PREFIX + ".instances";
   public static final String ORACLE_MAX_MEMORY_MB_PROP = ORACLE_PREFIX + ".max.memory.mb";
   public static final String ORACLE_NUM_CORES_PROP = ORACLE_PREFIX + ".num.cores";
@@ -103,10 +95,8 @@ public class FluoConfiguration extends CompositeConfiguration {
 
   // MiniFluo
   private static final String MINI_PREFIX = FLUO_PREFIX + ".mini";
-  public static final String MINI_CLASS_PROP = MINI_PREFIX + ".class";
   public static final String MINI_START_ACCUMULO_PROP = MINI_PREFIX + ".start.accumulo";
   public static final String MINI_DATA_DIR_PROP = MINI_PREFIX + ".data.dir";
-  public static final String MINI_CLASS_DEFAULT = FLUO_PREFIX + ".mini.MiniFluoImpl";
   public static final boolean MINI_START_ACCUMULO_DEFAULT = true;
   public static final String MINI_DATA_DIR_DEFAULT = "${env:FLUO_HOME}/mini";
 
@@ -171,20 +161,16 @@ public class FluoConfiguration extends CompositeConfiguration {
     getAccumuloTable();
     getAccumuloUser();
     getAccumuloZookeepers();
-    getAdminClass();
     getApplicationName();
     getAppZookeepers();
-    getClientClass();
     getClientRetryTimeout();
     getLoaderQueueSize();
     getLoaderThreads();
     getObserverConfig();
-    getOracleClass();
     getOracleInstances();
     getOracleMaxMemory();
     getOracleNumCores();
     getTransactionRollbackTime();
-    getWorkerClass();
     getWorkerInstances();
     getWorkerMaxMemory();
     getWorkerNumCores();
@@ -306,14 +292,6 @@ public class FluoConfiguration extends CompositeConfiguration {
     return getNonEmptyString(CLIENT_ACCUMULO_ZOOKEEPERS_PROP, CLIENT_ACCUMULO_ZOOKEEPERS_DEFAULT);
   }
 
-  public FluoConfiguration setClientClass(String clientClass) {
-    return setNonEmptyString(CLIENT_CLASS_PROP, clientClass);
-  }
-
-  public String getClientClass() {
-    return getNonEmptyString(CLIENT_CLASS_PROP, CLIENT_CLASS_DEFAULT);
-  }
-
   /**
    * Sets Accumulo table. This property only needs to be set for FluoAdmin as it will be stored in
    * retrieved from Zookeeper for clients.
@@ -335,22 +313,6 @@ public class FluoConfiguration extends CompositeConfiguration {
     return getString(ADMIN_ACCUMULO_CLASSPATH_PROP, ADMIN_ACCUMULO_CLASSPATH_DEFAULT);
   }
 
-  public FluoConfiguration setAdminClass(String adminClass) {
-    return setNonEmptyString(ADMIN_CLASS_PROP, adminClass);
-  }
-
-  public String getAdminClass() {
-    return getNonEmptyString(ADMIN_CLASS_PROP, ADMIN_CLASS_DEFAULT);
-  }
-
-  public FluoConfiguration setWorkerClass(String workerClass) {
-    return setNonEmptyString(WORKER_CLASS_PROP, workerClass);
-  }
-
-  public String getWorkerClass() {
-    return getNonEmptyString(WORKER_CLASS_PROP, WORKER_CLASS_DEFAULT);
-  }
-
   public FluoConfiguration setWorkerThreads(int numThreads) {
     return setPositiveInt(WORKER_NUM_THREADS_PROP, numThreads);
   }
@@ -516,14 +478,6 @@ public class FluoConfiguration extends CompositeConfiguration {
     return getNonNegativeInt(LOADER_QUEUE_SIZE_PROP, LOADER_QUEUE_SIZE_DEFAULT);
   }
 
-  public FluoConfiguration setOracleClass(String oracleClass) {
-    return setNonEmptyString(ORACLE_CLASS_PROP, oracleClass);
-  }
-
-  public String getOracleClass() {
-    return getNonEmptyString(ORACLE_CLASS_PROP, ORACLE_CLASS_DEFAULT);
-  }
-
   public FluoConfiguration setOracleMaxMemory(int oracleMaxMemory) {
     return setPositiveInt(ORACLE_MAX_MEMORY_MB_PROP, oracleMaxMemory);
   }
@@ -548,14 +502,6 @@ public class FluoConfiguration extends CompositeConfiguration {
     return getPositiveInt(ORACLE_NUM_CORES_PROP, ORACLE_NUM_CORES_DEFAULT);
   }
 
-  public FluoConfiguration setMiniClass(String miniClass) {
-    return setNonEmptyString(MINI_CLASS_PROP, miniClass);
-  }
-
-  public String getMiniClass() {
-    return getNonEmptyString(MINI_CLASS_PROP, MINI_CLASS_DEFAULT);
-  }
-
   /**
    * @param reporter The name of the reporter to get configuration for, i.e. console, jmx, graphite.
    * @return A {@link SubsetConfiguration} using the prefix {@value #REPORTER_PREFIX} with the
@@ -723,8 +669,6 @@ public class FluoConfiguration extends CompositeConfiguration {
     config.setProperty(CLIENT_ZOOKEEPER_CONNECT_PROP, CLIENT_ZOOKEEPER_CONNECT_DEFAULT);
     config.setProperty(CLIENT_ZOOKEEPER_TIMEOUT_PROP, CLIENT_ZOOKEEPER_TIMEOUT_DEFAULT);
     config.setProperty(CLIENT_ACCUMULO_ZOOKEEPERS_PROP, CLIENT_ACCUMULO_ZOOKEEPERS_DEFAULT);
-    config.setProperty(CLIENT_CLASS_PROP, CLIENT_CLASS_DEFAULT);
-    config.setProperty(ADMIN_CLASS_PROP, ADMIN_CLASS_DEFAULT);
     config.setProperty(WORKER_NUM_THREADS_PROP, WORKER_NUM_THREADS_DEFAULT);
     config.setProperty(WORKER_INSTANCES_PROP, WORKER_INSTANCES_DEFAULT);
     config.setProperty(WORKER_MAX_MEMORY_MB_PROP, WORKER_MAX_MEMORY_MB_DEFAULT);
@@ -734,7 +678,6 @@ public class FluoConfiguration extends CompositeConfiguration {
     config.setProperty(LOADER_QUEUE_SIZE_PROP, LOADER_QUEUE_SIZE_DEFAULT);
     config.setProperty(ORACLE_MAX_MEMORY_MB_PROP, ORACLE_MAX_MEMORY_MB_DEFAULT);
     config.setProperty(ORACLE_NUM_CORES_PROP, ORACLE_NUM_CORES_DEFAULT);
-    config.setProperty(MINI_CLASS_PROP, MINI_CLASS_DEFAULT);
     config.setProperty(MINI_START_ACCUMULO_PROP, MINI_START_ACCUMULO_DEFAULT);
     config.setProperty(MINI_DATA_DIR_PROP, MINI_DATA_DIR_DEFAULT);
   }

http://git-wip-us.apache.org/repos/asf/incubator-fluo/blob/28b9f2f9/modules/api/src/test/java/org/apache/fluo/api/config/FluoConfigurationTest.java
----------------------------------------------------------------------
diff --git a/modules/api/src/test/java/org/apache/fluo/api/config/FluoConfigurationTest.java b/modules/api/src/test/java/org/apache/fluo/api/config/FluoConfigurationTest.java
index f475311..01b14e8 100644
--- a/modules/api/src/test/java/org/apache/fluo/api/config/FluoConfigurationTest.java
+++ b/modules/api/src/test/java/org/apache/fluo/api/config/FluoConfigurationTest.java
@@ -46,11 +46,8 @@ public class FluoConfigurationTest {
         base.getClientRetryTimeout());
     Assert.assertEquals(FluoConfiguration.CLIENT_ACCUMULO_ZOOKEEPERS_DEFAULT,
         base.getAccumuloZookeepers());
-    Assert.assertEquals(FluoConfiguration.CLIENT_CLASS_DEFAULT, base.getClientClass());
-    Assert.assertEquals(FluoConfiguration.ADMIN_CLASS_DEFAULT, base.getAdminClass());
     Assert.assertEquals(FluoConfiguration.ADMIN_ACCUMULO_CLASSPATH_DEFAULT,
         base.getAccumuloClasspath());
-    Assert.assertEquals(FluoConfiguration.WORKER_CLASS_DEFAULT, base.getWorkerClass());
     Assert.assertEquals(FluoConfiguration.WORKER_NUM_THREADS_DEFAULT, base.getWorkerThreads());
     Assert.assertEquals(FluoConfiguration.WORKER_INSTANCES_DEFAULT, base.getWorkerInstances());
     Assert.assertEquals(FluoConfiguration.WORKER_MAX_MEMORY_MB_DEFAULT, base.getWorkerMaxMemory());
@@ -59,11 +56,9 @@ public class FluoConfigurationTest {
         base.getTransactionRollbackTime());
     Assert.assertEquals(FluoConfiguration.LOADER_NUM_THREADS_DEFAULT, base.getLoaderThreads());
     Assert.assertEquals(FluoConfiguration.LOADER_QUEUE_SIZE_DEFAULT, base.getLoaderQueueSize());
-    Assert.assertEquals(FluoConfiguration.ORACLE_CLASS_DEFAULT, base.getOracleClass());
     Assert.assertEquals(FluoConfiguration.ORACLE_INSTANCES_DEFAULT, base.getOracleInstances());
     Assert.assertEquals(FluoConfiguration.ORACLE_MAX_MEMORY_MB_DEFAULT, base.getOracleMaxMemory());
     Assert.assertEquals(FluoConfiguration.ORACLE_NUM_CORES_DEFAULT, base.getOracleNumCores());
-    Assert.assertEquals(FluoConfiguration.MINI_CLASS_DEFAULT, base.getMiniClass());
     Assert.assertEquals(FluoConfiguration.MINI_START_ACCUMULO_DEFAULT, base.getMiniStartAccumulo());
     Assert.assertTrue(base.getMiniDataDir().endsWith("/mini"));
   }
@@ -97,17 +92,12 @@ public class FluoConfigurationTest {
     Assert.assertEquals("pass", config.setAccumuloPassword("pass").getAccumuloPassword());
     Assert.assertEquals("table", config.setAccumuloTable("table").getAccumuloTable());
     Assert.assertEquals("user", config.setAccumuloUser("user").getAccumuloUser());
-    Assert.assertEquals("admin", config.setAdminClass("admin").getAdminClass());
-    Assert.assertEquals("client", config.setClientClass("client").getClientClass());
     Assert.assertEquals(4, config.setLoaderQueueSize(4).getLoaderQueueSize());
     Assert.assertEquals(0, config.setLoaderQueueSize(0).getLoaderQueueSize());
     Assert.assertEquals(7, config.setLoaderThreads(7).getLoaderThreads());
     Assert.assertEquals(0, config.setLoaderThreads(0).getLoaderThreads());
-    Assert.assertEquals("mini", config.setMiniClass("mini").getMiniClass());
-    Assert.assertEquals("oracle", config.setOracleClass("oracle").getOracleClass());
     Assert.assertEquals(8, config.setOracleMaxMemory(8).getOracleMaxMemory());
     Assert.assertEquals(10, config.setOracleInstances(10).getOracleInstances());
-    Assert.assertEquals("worker", config.setWorkerClass("worker").getWorkerClass());
     Assert.assertEquals(11, config.setWorkerInstances(11).getWorkerInstances());
     Assert.assertEquals(12, config.setWorkerMaxMemory(12).getWorkerMaxMemory());
     Assert.assertEquals(13, config.setWorkerThreads(13).getWorkerThreads());
@@ -379,8 +369,7 @@ public class FluoConfigurationTest {
     }
     String[] nonEmptyMethods =
         {"setAccumuloInstance", "setAccumuloTable", "setAccumuloUser", "setAccumuloZookeepers",
-            "setAdminClass", "setClientClass", "setMiniClass", "setMiniDataDir",
-            "setInstanceZookeepers", "setWorkerClass", "setOracleClass"};
+            "setMiniDataDir", "setInstanceZookeepers"};
     for (String methodName : nonEmptyMethods) {
       try {
         config.getClass().getMethod(methodName, String.class).invoke(config, "");


[2/5] incubator-fluo git commit: #683 - Stopped creating Oracle & Worker using FluoFactory so Twill can find dependencies

Posted by kt...@apache.org.
#683 - Stopped creating Oracle & Worker using FluoFactory so Twill can find dependencies


Project: http://git-wip-us.apache.org/repos/asf/incubator-fluo/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-fluo/commit/7547863c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-fluo/tree/7547863c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-fluo/diff/7547863c

Branch: refs/heads/master
Commit: 7547863cdd6e531c28ee009d9bdcad529b034780
Parents: 28b9f2f
Author: Mike Walch <mw...@gmail.com>
Authored: Tue Jun 28 16:47:47 2016 -0400
Committer: Mike Walch <mw...@gmail.com>
Committed: Tue Jun 28 16:54:20 2016 -0400

----------------------------------------------------------------------
 .../java/org/apache/fluo/cluster/runnable/OracleRunnable.java   | 5 ++++-
 .../java/org/apache/fluo/cluster/runnable/WorkerRunnable.java   | 5 ++++-
 2 files changed, 8 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-fluo/blob/7547863c/modules/cluster/src/main/java/org/apache/fluo/cluster/runnable/OracleRunnable.java
----------------------------------------------------------------------
diff --git a/modules/cluster/src/main/java/org/apache/fluo/cluster/runnable/OracleRunnable.java b/modules/cluster/src/main/java/org/apache/fluo/cluster/runnable/OracleRunnable.java
index e4f2cea..5080037 100644
--- a/modules/cluster/src/main/java/org/apache/fluo/cluster/runnable/OracleRunnable.java
+++ b/modules/cluster/src/main/java/org/apache/fluo/cluster/runnable/OracleRunnable.java
@@ -24,6 +24,7 @@ import org.apache.fluo.api.config.FluoConfiguration;
 import org.apache.fluo.api.service.FluoOracle;
 import org.apache.fluo.cluster.util.LogbackUtil;
 import org.apache.fluo.core.metrics.MetricNames;
+import org.apache.fluo.core.oracle.FluoOracleImpl;
 import org.apache.fluo.core.util.UtilWaitThread;
 import org.apache.twill.api.AbstractTwillRunnable;
 import org.apache.twill.api.TwillContext;
@@ -76,7 +77,9 @@ public class OracleRunnable extends AbstractTwillRunnable {
         System.setProperty(MetricNames.METRICS_ID_PROP, "oracle-" + context.getInstanceId());
       }
 
-      FluoOracle oracle = FluoFactory.newOracle(config);
+      // FluoFactory cannot be used to create FluoOracle as Twill will not load its dependencies
+      // if it is loaded dynamically
+      FluoOracle oracle = new FluoOracleImpl(config);
       oracle.start();
       while (!shutdown.get()) {
         UtilWaitThread.sleep(10000);

http://git-wip-us.apache.org/repos/asf/incubator-fluo/blob/7547863c/modules/cluster/src/main/java/org/apache/fluo/cluster/runnable/WorkerRunnable.java
----------------------------------------------------------------------
diff --git a/modules/cluster/src/main/java/org/apache/fluo/cluster/runnable/WorkerRunnable.java b/modules/cluster/src/main/java/org/apache/fluo/cluster/runnable/WorkerRunnable.java
index f7fdbb9..9b7e6b7 100644
--- a/modules/cluster/src/main/java/org/apache/fluo/cluster/runnable/WorkerRunnable.java
+++ b/modules/cluster/src/main/java/org/apache/fluo/cluster/runnable/WorkerRunnable.java
@@ -25,6 +25,7 @@ import org.apache.fluo.api.service.FluoWorker;
 import org.apache.fluo.cluster.util.LogbackUtil;
 import org.apache.fluo.core.metrics.MetricNames;
 import org.apache.fluo.core.util.UtilWaitThread;
+import org.apache.fluo.core.worker.FluoWorkerImpl;
 import org.apache.twill.api.AbstractTwillRunnable;
 import org.apache.twill.api.TwillContext;
 import org.slf4j.Logger;
@@ -90,7 +91,9 @@ public class WorkerRunnable extends AbstractTwillRunnable {
         System.setProperty(MetricNames.METRICS_ID_PROP, "worker-" + context.getInstanceId());
       }
 
-      FluoWorker worker = FluoFactory.newWorker(config);
+      // FluoFactory cannot be used to create FluoWorker as Twill will not load its dependencies
+      // if it is loaded dynamically
+      FluoWorker worker = new FluoWorkerImpl(config);
       worker.start();
       while (!shutdown.get()) {
         UtilWaitThread.sleep(1000);


[4/5] incubator-fluo git commit: Merge remote-tracking branch 'mike/fluo-683'

Posted by kt...@apache.org.
Merge remote-tracking branch 'mike/fluo-683'


Project: http://git-wip-us.apache.org/repos/asf/incubator-fluo/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-fluo/commit/a305df03
Tree: http://git-wip-us.apache.org/repos/asf/incubator-fluo/tree/a305df03
Diff: http://git-wip-us.apache.org/repos/asf/incubator-fluo/diff/a305df03

Branch: refs/heads/master
Commit: a305df039250c14bb1f6295fc2b5b1437ce53fad
Parents: fee0ca7 7547863
Author: Keith Turner <ke...@deenlo.com>
Authored: Thu Jun 30 22:53:37 2016 -0400
Committer: Keith Turner <ke...@deenlo.com>
Committed: Thu Jun 30 22:53:37 2016 -0400

----------------------------------------------------------------------
 .../org/apache/fluo/api/client/FluoFactory.java | 50 +++++++++++++----
 .../fluo/api/config/FluoConfiguration.java      | 57 --------------------
 .../fluo/api/config/FluoConfigurationTest.java  | 13 +----
 .../fluo/cluster/runnable/OracleRunnable.java   |  5 +-
 .../fluo/cluster/runnable/WorkerRunnable.java   |  5 +-
 5 files changed, 49 insertions(+), 81 deletions(-)
----------------------------------------------------------------------



[5/5] incubator-fluo git commit: Merge remote-tracking branch 'mike/fluo-429'

Posted by kt...@apache.org.
Merge remote-tracking branch 'mike/fluo-429'


Project: http://git-wip-us.apache.org/repos/asf/incubator-fluo/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-fluo/commit/734061bd
Tree: http://git-wip-us.apache.org/repos/asf/incubator-fluo/tree/734061bd
Diff: http://git-wip-us.apache.org/repos/asf/incubator-fluo/diff/734061bd

Branch: refs/heads/master
Commit: 734061bd443345465c19bb259302287833234c28
Parents: a305df0 9adf216
Author: Keith Turner <ke...@deenlo.com>
Authored: Thu Jun 30 22:54:57 2016 -0400
Committer: Keith Turner <ke...@deenlo.com>
Committed: Thu Jun 30 22:54:57 2016 -0400

----------------------------------------------------------------------
 .../org/apache/fluo/api/client/FluoAdmin.java   |  8 +++++
 .../org/apache/fluo/api/client/FluoClient.java  |  2 ++
 .../org/apache/fluo/api/client/FluoFactory.java |  2 ++
 .../java/org/apache/fluo/api/client/Loader.java |  5 +++
 .../apache/fluo/api/client/LoaderExecutor.java  |  2 ++
 .../org/apache/fluo/api/client/Snapshot.java    |  2 ++
 .../apache/fluo/api/client/SnapshotBase.java    |  2 ++
 .../org/apache/fluo/api/client/Transaction.java |  2 ++
 .../apache/fluo/api/client/TransactionBase.java |  2 ++
 .../fluo/api/config/FluoConfiguration.java      |  2 ++
 .../fluo/api/config/ObserverConfiguration.java  |  2 ++
 .../fluo/api/config/ScannerConfiguration.java   |  2 ++
 .../java/org/apache/fluo/api/data/Bytes.java    |  8 +++++
 .../org/apache/fluo/api/data/BytesBuilder.java  |  2 ++
 .../java/org/apache/fluo/api/data/Column.java   |  2 ++
 .../org/apache/fluo/api/data/RowColumn.java     |  2 ++
 .../apache/fluo/api/data/RowColumnValue.java    |  3 +-
 .../java/org/apache/fluo/api/data/Span.java     | 32 ++++++++++++++++++++
 .../api/exceptions/AlreadySetException.java     |  2 ++
 .../fluo/api/exceptions/CommitException.java    |  2 ++
 .../fluo/api/exceptions/FluoException.java      |  2 ++
 .../fluo/api/iterator/ColumnIterator.java       |  2 ++
 .../apache/fluo/api/iterator/RowIterator.java   |  2 ++
 .../java/org/apache/fluo/api/mini/MiniFluo.java |  2 ++
 .../fluo/api/observer/AbstractObserver.java     |  2 ++
 .../org/apache/fluo/api/observer/Observer.java  | 10 ++++++
 .../org/apache/fluo/api/service/FluoOracle.java |  2 ++
 .../apache/fluo/api/service/FluoService.java    |  2 ++
 .../org/apache/fluo/api/service/FluoWorker.java |  2 ++
 .../java/org/apache/fluo/api/types/Encoder.java |  2 ++
 .../apache/fluo/api/types/StringEncoder.java    |  2 ++
 .../org/apache/fluo/api/types/TypeLayer.java    | 24 ++++++++++++++-
 .../org/apache/fluo/api/types/TypedLoader.java  |  2 ++
 .../apache/fluo/api/types/TypedObserver.java    |  2 ++
 .../apache/fluo/api/types/TypedSnapshot.java    |  2 ++
 .../fluo/api/types/TypedSnapshotBase.java       | 23 ++++++++++++++
 .../apache/fluo/api/types/TypedTransaction.java |  2 ++
 .../fluo/api/types/TypedTransactionBase.java    | 17 +++++++++++
 38 files changed, 186 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-fluo/blob/734061bd/modules/api/src/main/java/org/apache/fluo/api/client/FluoFactory.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-fluo/blob/734061bd/modules/api/src/main/java/org/apache/fluo/api/config/FluoConfiguration.java
----------------------------------------------------------------------


[3/5] incubator-fluo git commit: Fixes #429 - Added @since javadoc tags for 1.0.0 release

Posted by kt...@apache.org.
Fixes #429 - Added @since javadoc tags for 1.0.0 release


Project: http://git-wip-us.apache.org/repos/asf/incubator-fluo/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-fluo/commit/9adf2166
Tree: http://git-wip-us.apache.org/repos/asf/incubator-fluo/tree/9adf2166
Diff: http://git-wip-us.apache.org/repos/asf/incubator-fluo/diff/9adf2166

Branch: refs/heads/master
Commit: 9adf21666c95c6c50bbac228e320bde37126080e
Parents: fee0ca7
Author: Mike Walch <mw...@gmail.com>
Authored: Wed Jun 29 13:49:43 2016 -0400
Committer: Mike Walch <mw...@gmail.com>
Committed: Wed Jun 29 13:50:05 2016 -0400

----------------------------------------------------------------------
 .../org/apache/fluo/api/client/FluoAdmin.java   |  8 +++++
 .../org/apache/fluo/api/client/FluoClient.java  |  2 ++
 .../org/apache/fluo/api/client/FluoFactory.java |  2 ++
 .../java/org/apache/fluo/api/client/Loader.java |  5 +++
 .../apache/fluo/api/client/LoaderExecutor.java  |  2 ++
 .../org/apache/fluo/api/client/Snapshot.java    |  2 ++
 .../apache/fluo/api/client/SnapshotBase.java    |  2 ++
 .../org/apache/fluo/api/client/Transaction.java |  2 ++
 .../apache/fluo/api/client/TransactionBase.java |  2 ++
 .../fluo/api/config/FluoConfiguration.java      |  2 ++
 .../fluo/api/config/ObserverConfiguration.java  |  2 ++
 .../fluo/api/config/ScannerConfiguration.java   |  2 ++
 .../java/org/apache/fluo/api/data/Bytes.java    |  8 +++++
 .../org/apache/fluo/api/data/BytesBuilder.java  |  2 ++
 .../java/org/apache/fluo/api/data/Column.java   |  2 ++
 .../org/apache/fluo/api/data/RowColumn.java     |  2 ++
 .../apache/fluo/api/data/RowColumnValue.java    |  3 +-
 .../java/org/apache/fluo/api/data/Span.java     | 32 ++++++++++++++++++++
 .../api/exceptions/AlreadySetException.java     |  2 ++
 .../fluo/api/exceptions/CommitException.java    |  2 ++
 .../fluo/api/exceptions/FluoException.java      |  2 ++
 .../fluo/api/iterator/ColumnIterator.java       |  2 ++
 .../apache/fluo/api/iterator/RowIterator.java   |  2 ++
 .../java/org/apache/fluo/api/mini/MiniFluo.java |  2 ++
 .../fluo/api/observer/AbstractObserver.java     |  2 ++
 .../org/apache/fluo/api/observer/Observer.java  | 10 ++++++
 .../org/apache/fluo/api/service/FluoOracle.java |  2 ++
 .../apache/fluo/api/service/FluoService.java    |  2 ++
 .../org/apache/fluo/api/service/FluoWorker.java |  2 ++
 .../java/org/apache/fluo/api/types/Encoder.java |  2 ++
 .../apache/fluo/api/types/StringEncoder.java    |  2 ++
 .../org/apache/fluo/api/types/TypeLayer.java    | 24 ++++++++++++++-
 .../org/apache/fluo/api/types/TypedLoader.java  |  2 ++
 .../apache/fluo/api/types/TypedObserver.java    |  2 ++
 .../apache/fluo/api/types/TypedSnapshot.java    |  2 ++
 .../fluo/api/types/TypedSnapshotBase.java       | 23 ++++++++++++++
 .../apache/fluo/api/types/TypedTransaction.java |  2 ++
 .../fluo/api/types/TypedTransactionBase.java    | 17 +++++++++++
 38 files changed, 186 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-fluo/blob/9adf2166/modules/api/src/main/java/org/apache/fluo/api/client/FluoAdmin.java
----------------------------------------------------------------------
diff --git a/modules/api/src/main/java/org/apache/fluo/api/client/FluoAdmin.java b/modules/api/src/main/java/org/apache/fluo/api/client/FluoAdmin.java
index 4575e9f..980a712 100644
--- a/modules/api/src/main/java/org/apache/fluo/api/client/FluoAdmin.java
+++ b/modules/api/src/main/java/org/apache/fluo/api/client/FluoAdmin.java
@@ -19,11 +19,15 @@ import org.apache.fluo.api.config.FluoConfiguration;
 
 /**
  * Provides methods for initializing and administering a Fluo application.
+ * 
+ * @since 1.0.0
  */
 public interface FluoAdmin extends AutoCloseable {
 
   /**
    * Specifies Fluo initialization options such as clearing Zookeeper or existing Accumulo table.
+   *
+   * @since 1.0.0
    */
   class InitOpts {
 
@@ -62,6 +66,8 @@ public interface FluoAdmin extends AutoCloseable {
    * initialized if a directory with same name as application exists at the chroot directory set by
    * the property org.apache.fluo.client.zookeeper.connect. If this directory can be cleared, set
    * {@link InitOpts#setClearTable(boolean)} to true
+   *
+   * @since 1.0.0
    */
   class AlreadyInitializedException extends Exception {
 
@@ -80,6 +86,8 @@ public interface FluoAdmin extends AutoCloseable {
    * Exception that is thrown if Accumulo table (set by org.apache.fluo.admin.accumulo.table) exists
    * during initialization. If this table can be cleared, set
    * {@link InitOpts#setClearZookeeper(boolean)} to true
+   *
+   * @since 1.0.0
    */
   class TableExistsException extends Exception {
 

http://git-wip-us.apache.org/repos/asf/incubator-fluo/blob/9adf2166/modules/api/src/main/java/org/apache/fluo/api/client/FluoClient.java
----------------------------------------------------------------------
diff --git a/modules/api/src/main/java/org/apache/fluo/api/client/FluoClient.java b/modules/api/src/main/java/org/apache/fluo/api/client/FluoClient.java
index 8125b59..5088531 100644
--- a/modules/api/src/main/java/org/apache/fluo/api/client/FluoClient.java
+++ b/modules/api/src/main/java/org/apache/fluo/api/client/FluoClient.java
@@ -22,6 +22,8 @@ import org.apache.commons.configuration.SubsetConfiguration;
  * Client interface for Fluo. Fluo clients will have shared resources used by all objects created by
  * the client. Therefore, {@link FluoClient#close()} must called when you are finished using the
  * client.
+ * 
+ * @since 1.0.0
  */
 public interface FluoClient extends AutoCloseable {
 

http://git-wip-us.apache.org/repos/asf/incubator-fluo/blob/9adf2166/modules/api/src/main/java/org/apache/fluo/api/client/FluoFactory.java
----------------------------------------------------------------------
diff --git a/modules/api/src/main/java/org/apache/fluo/api/client/FluoFactory.java b/modules/api/src/main/java/org/apache/fluo/api/client/FluoFactory.java
index 1b684e8..df4d44f 100644
--- a/modules/api/src/main/java/org/apache/fluo/api/client/FluoFactory.java
+++ b/modules/api/src/main/java/org/apache/fluo/api/client/FluoFactory.java
@@ -29,6 +29,8 @@ import org.slf4j.LoggerFactory;
 /**
  * Factory for creating {@link FluoClient}, {@link FluoAdmin}, and {@link MiniFluo}. All factory
  * methods take a configuration object which can be built using {@link FluoConfiguration}.
+ *
+ * @since 1.0.0
  */
 public class FluoFactory {
 

http://git-wip-us.apache.org/repos/asf/incubator-fluo/blob/9adf2166/modules/api/src/main/java/org/apache/fluo/api/client/Loader.java
----------------------------------------------------------------------
diff --git a/modules/api/src/main/java/org/apache/fluo/api/client/Loader.java b/modules/api/src/main/java/org/apache/fluo/api/client/Loader.java
index 9d35d4b..f65b331 100644
--- a/modules/api/src/main/java/org/apache/fluo/api/client/Loader.java
+++ b/modules/api/src/main/java/org/apache/fluo/api/client/Loader.java
@@ -20,9 +20,14 @@ import org.apache.commons.configuration.Configuration;
 /**
  * Interface that is implemented by users to load data into Fluo. Loader classes are executed by a
  * {@link LoaderExecutor}.
+ *
+ * @since 1.0.0
  */
 public interface Loader {
 
+  /**
+   * @since 1.0.0
+   */
   interface Context {
     /**
      * @return A configuration object with application configuration like that returned by

http://git-wip-us.apache.org/repos/asf/incubator-fluo/blob/9adf2166/modules/api/src/main/java/org/apache/fluo/api/client/LoaderExecutor.java
----------------------------------------------------------------------
diff --git a/modules/api/src/main/java/org/apache/fluo/api/client/LoaderExecutor.java b/modules/api/src/main/java/org/apache/fluo/api/client/LoaderExecutor.java
index d8f277a..c06e072 100644
--- a/modules/api/src/main/java/org/apache/fluo/api/client/LoaderExecutor.java
+++ b/modules/api/src/main/java/org/apache/fluo/api/client/LoaderExecutor.java
@@ -18,6 +18,8 @@ package org.apache.fluo.api.client;
 /**
  * Executes provided {@link Loader} objects to load data into Fluo. {@link LoaderExecutor#close()}
  * should be called when finished.
+ *
+ * @since 1.0.0
  */
 public interface LoaderExecutor extends AutoCloseable {
 

http://git-wip-us.apache.org/repos/asf/incubator-fluo/blob/9adf2166/modules/api/src/main/java/org/apache/fluo/api/client/Snapshot.java
----------------------------------------------------------------------
diff --git a/modules/api/src/main/java/org/apache/fluo/api/client/Snapshot.java b/modules/api/src/main/java/org/apache/fluo/api/client/Snapshot.java
index 9f56e00..625cf62 100644
--- a/modules/api/src/main/java/org/apache/fluo/api/client/Snapshot.java
+++ b/modules/api/src/main/java/org/apache/fluo/api/client/Snapshot.java
@@ -19,6 +19,8 @@ package org.apache.fluo.api.client;
  * Allows users to read from a Fluo table at a certain point in time. Snapshot extends
  * {@link SnapshotBase} to include a {@link #close} method which must be called when you are
  * finished using it.
+ *
+ * @since 1.0.0
  */
 public interface Snapshot extends SnapshotBase, AutoCloseable {
 

http://git-wip-us.apache.org/repos/asf/incubator-fluo/blob/9adf2166/modules/api/src/main/java/org/apache/fluo/api/client/SnapshotBase.java
----------------------------------------------------------------------
diff --git a/modules/api/src/main/java/org/apache/fluo/api/client/SnapshotBase.java b/modules/api/src/main/java/org/apache/fluo/api/client/SnapshotBase.java
index fad219f..778aa94 100644
--- a/modules/api/src/main/java/org/apache/fluo/api/client/SnapshotBase.java
+++ b/modules/api/src/main/java/org/apache/fluo/api/client/SnapshotBase.java
@@ -27,6 +27,8 @@ import org.apache.fluo.api.iterator.RowIterator;
 
 /**
  * Allows users to read from a Fluo table at a certain point in time
+ *
+ * @since 1.0.0
  */
 public interface SnapshotBase {
 

http://git-wip-us.apache.org/repos/asf/incubator-fluo/blob/9adf2166/modules/api/src/main/java/org/apache/fluo/api/client/Transaction.java
----------------------------------------------------------------------
diff --git a/modules/api/src/main/java/org/apache/fluo/api/client/Transaction.java b/modules/api/src/main/java/org/apache/fluo/api/client/Transaction.java
index c96defd..79b664c 100644
--- a/modules/api/src/main/java/org/apache/fluo/api/client/Transaction.java
+++ b/modules/api/src/main/java/org/apache/fluo/api/client/Transaction.java
@@ -21,6 +21,8 @@ import org.apache.fluo.api.exceptions.CommitException;
  * Enables users to read and write to Fluo at a certain point in time. Transaction extends
  * {@link TransactionBase} to include the {@link #commit()} and {@link #close()} methods as users
  * are responsible for committing and closing resources when using Transaction.
+ *
+ * @since 1.0.0
  */
 public interface Transaction extends TransactionBase, AutoCloseable {
 

http://git-wip-us.apache.org/repos/asf/incubator-fluo/blob/9adf2166/modules/api/src/main/java/org/apache/fluo/api/client/TransactionBase.java
----------------------------------------------------------------------
diff --git a/modules/api/src/main/java/org/apache/fluo/api/client/TransactionBase.java b/modules/api/src/main/java/org/apache/fluo/api/client/TransactionBase.java
index 750cf36..c9362da 100644
--- a/modules/api/src/main/java/org/apache/fluo/api/client/TransactionBase.java
+++ b/modules/api/src/main/java/org/apache/fluo/api/client/TransactionBase.java
@@ -22,6 +22,8 @@ import org.apache.fluo.api.exceptions.AlreadySetException;
 /**
  * Enables users to read and write to a Fluo table at certain point in time. TransactionBase extends
  * {@link SnapshotBase} to include methods for writing to Fluo.
+ *
+ * @since 1.0.0
  */
 public interface TransactionBase extends SnapshotBase {
 

http://git-wip-us.apache.org/repos/asf/incubator-fluo/blob/9adf2166/modules/api/src/main/java/org/apache/fluo/api/config/FluoConfiguration.java
----------------------------------------------------------------------
diff --git a/modules/api/src/main/java/org/apache/fluo/api/config/FluoConfiguration.java b/modules/api/src/main/java/org/apache/fluo/api/config/FluoConfiguration.java
index 6a3b74a..38886b8 100644
--- a/modules/api/src/main/java/org/apache/fluo/api/config/FluoConfiguration.java
+++ b/modules/api/src/main/java/org/apache/fluo/api/config/FluoConfiguration.java
@@ -37,6 +37,8 @@ import org.slf4j.LoggerFactory;
 
 /**
  * Configuration helper class for Fluo. FluoConfiguration extends {@link CompositeConfiguration}.
+ *
+ * @since 1.0.0
  */
 public class FluoConfiguration extends CompositeConfiguration {
 

http://git-wip-us.apache.org/repos/asf/incubator-fluo/blob/9adf2166/modules/api/src/main/java/org/apache/fluo/api/config/ObserverConfiguration.java
----------------------------------------------------------------------
diff --git a/modules/api/src/main/java/org/apache/fluo/api/config/ObserverConfiguration.java b/modules/api/src/main/java/org/apache/fluo/api/config/ObserverConfiguration.java
index 21d5220..9c2efb9 100644
--- a/modules/api/src/main/java/org/apache/fluo/api/config/ObserverConfiguration.java
+++ b/modules/api/src/main/java/org/apache/fluo/api/config/ObserverConfiguration.java
@@ -25,6 +25,8 @@ import org.apache.fluo.api.observer.Observer;
 /**
  * Used to pass configuration to an {@link AbstractObserver}. Set using
  * {@link FluoConfiguration#addObserver(ObserverConfiguration)}
+ *
+ * @since 1.0.0
  */
 public class ObserverConfiguration {
   private final String className;

http://git-wip-us.apache.org/repos/asf/incubator-fluo/blob/9adf2166/modules/api/src/main/java/org/apache/fluo/api/config/ScannerConfiguration.java
----------------------------------------------------------------------
diff --git a/modules/api/src/main/java/org/apache/fluo/api/config/ScannerConfiguration.java b/modules/api/src/main/java/org/apache/fluo/api/config/ScannerConfiguration.java
index 458b9aa..3a73b50 100644
--- a/modules/api/src/main/java/org/apache/fluo/api/config/ScannerConfiguration.java
+++ b/modules/api/src/main/java/org/apache/fluo/api/config/ScannerConfiguration.java
@@ -28,6 +28,8 @@ import org.apache.fluo.api.data.Span;
 /**
  * Contains configuration for a {@link org.apache.fluo.api.client.Snapshot} scanner. Passed to
  * {@link SnapshotBase#get(ScannerConfiguration)}.
+ *
+ * @since 1.0.0
  */
 public class ScannerConfiguration implements Cloneable {
 

http://git-wip-us.apache.org/repos/asf/incubator-fluo/blob/9adf2166/modules/api/src/main/java/org/apache/fluo/api/data/Bytes.java
----------------------------------------------------------------------
diff --git a/modules/api/src/main/java/org/apache/fluo/api/data/Bytes.java b/modules/api/src/main/java/org/apache/fluo/api/data/Bytes.java
index c291db0..b02e96a 100644
--- a/modules/api/src/main/java/org/apache/fluo/api/data/Bytes.java
+++ b/modules/api/src/main/java/org/apache/fluo/api/data/Bytes.java
@@ -34,6 +34,8 @@ import java.util.Objects;
 /**
  * Represents bytes in Fluo. Similar to an Accumulo ByteSequence. Bytes is immutable after it is
  * created. Bytes.EMPTY is used to represent a Bytes object with no data.
+ *
+ * @since 1.0.0
  */
 public abstract class Bytes implements Comparable<Bytes>, Serializable {
 
@@ -42,10 +44,16 @@ public abstract class Bytes implements Comparable<Bytes>, Serializable {
       "org.apache.fluo.accumulo.data.MutableBytesFactory";
   private static final String WRITE_UTIL_CLASS = "org.apache.fluo.accumulo.data.WriteUtilImpl";
 
+  /**
+   * @since 1.0.0
+   */
   public interface BytesFactory {
     Bytes get(byte[] data);
   }
 
+  /**
+   * @since 1.0.0
+   */
   public interface WriteUtil {
     void writeVInt(DataOutput stream, int i) throws IOException;
 

http://git-wip-us.apache.org/repos/asf/incubator-fluo/blob/9adf2166/modules/api/src/main/java/org/apache/fluo/api/data/BytesBuilder.java
----------------------------------------------------------------------
diff --git a/modules/api/src/main/java/org/apache/fluo/api/data/BytesBuilder.java b/modules/api/src/main/java/org/apache/fluo/api/data/BytesBuilder.java
index 0dc2fe1..549b9e9 100644
--- a/modules/api/src/main/java/org/apache/fluo/api/data/BytesBuilder.java
+++ b/modules/api/src/main/java/org/apache/fluo/api/data/BytesBuilder.java
@@ -22,6 +22,8 @@ import com.google.common.base.Preconditions;
 
 /**
  * This class provides an easy, efficient, reusable mechanism for building immutable Bytes objects.
+ *
+ * @since 1.0.0
  */
 public class BytesBuilder {
 

http://git-wip-us.apache.org/repos/asf/incubator-fluo/blob/9adf2166/modules/api/src/main/java/org/apache/fluo/api/data/Column.java
----------------------------------------------------------------------
diff --git a/modules/api/src/main/java/org/apache/fluo/api/data/Column.java b/modules/api/src/main/java/org/apache/fluo/api/data/Column.java
index 3ef0755..8d17a93 100644
--- a/modules/api/src/main/java/org/apache/fluo/api/data/Column.java
+++ b/modules/api/src/main/java/org/apache/fluo/api/data/Column.java
@@ -22,6 +22,8 @@ import java.util.Objects;
  * Represents all or a subset of the column family, column qualifier, and column visibility fields.
  * A column with no fields set is represented by Column.EMPTY. Column is immutable after it is
  * created.
+ *
+ * @since 1.0.0
  */
 public class Column implements Comparable<Column>, Serializable {
 

http://git-wip-us.apache.org/repos/asf/incubator-fluo/blob/9adf2166/modules/api/src/main/java/org/apache/fluo/api/data/RowColumn.java
----------------------------------------------------------------------
diff --git a/modules/api/src/main/java/org/apache/fluo/api/data/RowColumn.java b/modules/api/src/main/java/org/apache/fluo/api/data/RowColumn.java
index b926905..1fa43d7 100644
--- a/modules/api/src/main/java/org/apache/fluo/api/data/RowColumn.java
+++ b/modules/api/src/main/java/org/apache/fluo/api/data/RowColumn.java
@@ -21,6 +21,8 @@ import java.util.Objects;
 /**
  * Represents all or subset of a Fluo row and {@link Column}. RowColumn is similar to an Accumulo
  * Key. RowColumn is immutable after it is created.
+ *
+ * @since 1.0.0
  */
 public class RowColumn implements Comparable<RowColumn>, Serializable {
 

http://git-wip-us.apache.org/repos/asf/incubator-fluo/blob/9adf2166/modules/api/src/main/java/org/apache/fluo/api/data/RowColumnValue.java
----------------------------------------------------------------------
diff --git a/modules/api/src/main/java/org/apache/fluo/api/data/RowColumnValue.java b/modules/api/src/main/java/org/apache/fluo/api/data/RowColumnValue.java
index 35d9b90..de32948 100644
--- a/modules/api/src/main/java/org/apache/fluo/api/data/RowColumnValue.java
+++ b/modules/api/src/main/java/org/apache/fluo/api/data/RowColumnValue.java
@@ -17,8 +17,9 @@ package org.apache.fluo.api.data;
 
 /**
  * An immutable object that can hold a row, column, and value.
+ *
+ * @since 1.0.0
  */
-
 public class RowColumnValue extends RowColumn {
   private static final long serialVersionUID = 1L;
 

http://git-wip-us.apache.org/repos/asf/incubator-fluo/blob/9adf2166/modules/api/src/main/java/org/apache/fluo/api/data/Span.java
----------------------------------------------------------------------
diff --git a/modules/api/src/main/java/org/apache/fluo/api/data/Span.java b/modules/api/src/main/java/org/apache/fluo/api/data/Span.java
index 94fd42e..61f3178 100644
--- a/modules/api/src/main/java/org/apache/fluo/api/data/Span.java
+++ b/modules/api/src/main/java/org/apache/fluo/api/data/Span.java
@@ -21,6 +21,8 @@ import java.util.Objects;
 /**
  * Represents a range between two {@link RowColumn}s in a Fluo table. Similar to an Accumulo Range.
  * Span is immutable after it is created.
+ *
+ * @since 1.0.0
  */
 public class Span implements Serializable {
 
@@ -316,6 +318,9 @@ public class Span implements Serializable {
     return prefix(Bytes.of(row), colPrefix);
   }
 
+  /**
+   * @since 1.0.0
+   */
   public static class KeyBuilder {
     protected Bytes row = Bytes.EMPTY;
     protected Bytes cf = Bytes.EMPTY;
@@ -325,6 +330,9 @@ public class Span implements Serializable {
     protected boolean infinite = true;
   }
 
+  /**
+   * @since 1.0.0
+   */
   public static class Builder {
 
     private KeyBuilder start = new KeyBuilder();
@@ -367,6 +375,9 @@ public class Span implements Serializable {
     }
   }
 
+  /**
+   * @since 1.0.0
+   */
   public static class StartBuilder {
 
     protected Builder builder;
@@ -402,6 +413,9 @@ public class Span implements Serializable {
     }
   }
 
+  /**
+   * @since 1.0.0
+   */
   public static class EndBuilder {
 
     protected Builder builder;
@@ -426,6 +440,9 @@ public class Span implements Serializable {
     }
   }
 
+  /**
+   * @since 1.0.0
+   */
   public static class StartCVBuilder extends StartBuilder {
 
     private StartCVBuilder(Builder builder) {
@@ -448,6 +465,9 @@ public class Span implements Serializable {
     }
   }
 
+  /**
+   * @since 1.0.0
+   */
   public static class StartCQBuilder extends StartBuilder {
 
     private StartCQBuilder(Builder builder) {
@@ -470,6 +490,9 @@ public class Span implements Serializable {
     }
   }
 
+  /**
+   * @since 1.0.0
+   */
   public static class StartCFBuilder extends StartBuilder {
 
     private StartCFBuilder(Builder builder) {
@@ -492,6 +515,9 @@ public class Span implements Serializable {
     }
   }
 
+  /**
+   * @since 1.0.0
+   */
   public static class EndCVBuilder extends EndBuilder {
 
     private EndCVBuilder(Builder builder) {
@@ -514,6 +540,9 @@ public class Span implements Serializable {
     }
   }
 
+  /**
+   * @since 1.0.0
+   */
   public static class EndCQBuilder extends EndBuilder {
 
     private EndCQBuilder(Builder builder) {
@@ -536,6 +565,9 @@ public class Span implements Serializable {
     }
   }
 
+  /**
+   * @since 1.0.0
+   */
   public static class EndCFBuilder extends EndBuilder {
 
     private EndCFBuilder(Builder builder) {

http://git-wip-us.apache.org/repos/asf/incubator-fluo/blob/9adf2166/modules/api/src/main/java/org/apache/fluo/api/exceptions/AlreadySetException.java
----------------------------------------------------------------------
diff --git a/modules/api/src/main/java/org/apache/fluo/api/exceptions/AlreadySetException.java b/modules/api/src/main/java/org/apache/fluo/api/exceptions/AlreadySetException.java
index 11d0578..c6dfd5f 100644
--- a/modules/api/src/main/java/org/apache/fluo/api/exceptions/AlreadySetException.java
+++ b/modules/api/src/main/java/org/apache/fluo/api/exceptions/AlreadySetException.java
@@ -21,6 +21,8 @@ import org.apache.fluo.api.data.Column;
 /**
  * Thrown if {@link org.apache.fluo.api.client.Transaction#set(Bytes, Column, Bytes)} is called
  * multiple times for the same row and column
+ *
+ * @since 1.0.0
  */
 public class AlreadySetException extends FluoException {
 

http://git-wip-us.apache.org/repos/asf/incubator-fluo/blob/9adf2166/modules/api/src/main/java/org/apache/fluo/api/exceptions/CommitException.java
----------------------------------------------------------------------
diff --git a/modules/api/src/main/java/org/apache/fluo/api/exceptions/CommitException.java b/modules/api/src/main/java/org/apache/fluo/api/exceptions/CommitException.java
index c5cd140..bda03d3 100644
--- a/modules/api/src/main/java/org/apache/fluo/api/exceptions/CommitException.java
+++ b/modules/api/src/main/java/org/apache/fluo/api/exceptions/CommitException.java
@@ -17,6 +17,8 @@ package org.apache.fluo.api.exceptions;
 
 /**
  * Exception thrown when {@link org.apache.fluo.api.client.Transaction#commit()} fails
+ *
+ * @since 1.0.0
  */
 public class CommitException extends FluoException {
 

http://git-wip-us.apache.org/repos/asf/incubator-fluo/blob/9adf2166/modules/api/src/main/java/org/apache/fluo/api/exceptions/FluoException.java
----------------------------------------------------------------------
diff --git a/modules/api/src/main/java/org/apache/fluo/api/exceptions/FluoException.java b/modules/api/src/main/java/org/apache/fluo/api/exceptions/FluoException.java
index 493e539..317f5c7 100644
--- a/modules/api/src/main/java/org/apache/fluo/api/exceptions/FluoException.java
+++ b/modules/api/src/main/java/org/apache/fluo/api/exceptions/FluoException.java
@@ -17,6 +17,8 @@ package org.apache.fluo.api.exceptions;
 
 /**
  * Base exception class for Fluo. All other exceptions extend this class.
+ *
+ * @since 1.0.0
  */
 public class FluoException extends RuntimeException {
 

http://git-wip-us.apache.org/repos/asf/incubator-fluo/blob/9adf2166/modules/api/src/main/java/org/apache/fluo/api/iterator/ColumnIterator.java
----------------------------------------------------------------------
diff --git a/modules/api/src/main/java/org/apache/fluo/api/iterator/ColumnIterator.java b/modules/api/src/main/java/org/apache/fluo/api/iterator/ColumnIterator.java
index 389ff34..be04738 100644
--- a/modules/api/src/main/java/org/apache/fluo/api/iterator/ColumnIterator.java
+++ b/modules/api/src/main/java/org/apache/fluo/api/iterator/ColumnIterator.java
@@ -23,6 +23,8 @@ import org.apache.fluo.api.data.Column;
 
 /**
  * Iterator for Fluo columns
+ *
+ * @since 1.0.0
  */
 public interface ColumnIterator extends Iterator<Entry<Column, Bytes>> {
 

http://git-wip-us.apache.org/repos/asf/incubator-fluo/blob/9adf2166/modules/api/src/main/java/org/apache/fluo/api/iterator/RowIterator.java
----------------------------------------------------------------------
diff --git a/modules/api/src/main/java/org/apache/fluo/api/iterator/RowIterator.java b/modules/api/src/main/java/org/apache/fluo/api/iterator/RowIterator.java
index a912234..21e53b1 100644
--- a/modules/api/src/main/java/org/apache/fluo/api/iterator/RowIterator.java
+++ b/modules/api/src/main/java/org/apache/fluo/api/iterator/RowIterator.java
@@ -22,6 +22,8 @@ import org.apache.fluo.api.data.Bytes;
 
 /**
  * Iterator for Fluo rows
+ *
+ * @since 1.0.0
  */
 public interface RowIterator extends Iterator<Entry<Bytes, ColumnIterator>> {
 

http://git-wip-us.apache.org/repos/asf/incubator-fluo/blob/9adf2166/modules/api/src/main/java/org/apache/fluo/api/mini/MiniFluo.java
----------------------------------------------------------------------
diff --git a/modules/api/src/main/java/org/apache/fluo/api/mini/MiniFluo.java b/modules/api/src/main/java/org/apache/fluo/api/mini/MiniFluo.java
index b92fe9d..aaf3bfc 100644
--- a/modules/api/src/main/java/org/apache/fluo/api/mini/MiniFluo.java
+++ b/modules/api/src/main/java/org/apache/fluo/api/mini/MiniFluo.java
@@ -19,6 +19,8 @@ import org.apache.commons.configuration.Configuration;
 
 /**
  * A test and development instance of Fluo containing its own Oracle and Worker
+ *
+ * @since 1.0.0
  */
 public interface MiniFluo extends AutoCloseable {
 

http://git-wip-us.apache.org/repos/asf/incubator-fluo/blob/9adf2166/modules/api/src/main/java/org/apache/fluo/api/observer/AbstractObserver.java
----------------------------------------------------------------------
diff --git a/modules/api/src/main/java/org/apache/fluo/api/observer/AbstractObserver.java b/modules/api/src/main/java/org/apache/fluo/api/observer/AbstractObserver.java
index 439ee16..24505a5 100644
--- a/modules/api/src/main/java/org/apache/fluo/api/observer/AbstractObserver.java
+++ b/modules/api/src/main/java/org/apache/fluo/api/observer/AbstractObserver.java
@@ -24,6 +24,8 @@ import org.apache.fluo.api.client.TransactionBase;
  * method. AbstractObserver extends {@link Observer} but provides a default implementation for the
  * {@link #init(Context)} and {@link #close()} method so that they can be optionally implemented by
  * user.
+ *
+ * @since 1.0.0
  */
 public abstract class AbstractObserver implements Observer {
 

http://git-wip-us.apache.org/repos/asf/incubator-fluo/blob/9adf2166/modules/api/src/main/java/org/apache/fluo/api/observer/Observer.java
----------------------------------------------------------------------
diff --git a/modules/api/src/main/java/org/apache/fluo/api/observer/Observer.java b/modules/api/src/main/java/org/apache/fluo/api/observer/Observer.java
index d15985c..138999b 100644
--- a/modules/api/src/main/java/org/apache/fluo/api/observer/Observer.java
+++ b/modules/api/src/main/java/org/apache/fluo/api/observer/Observer.java
@@ -29,15 +29,22 @@ import org.apache.fluo.api.data.Column;
  * thread and reused for the lifetime of a worker thread. Consider extending
  * {@link AbstractObserver} as it will let you optionally implement {@link #init(Context)} and
  * {@link #close()}. The abstract class will also shield you from the addition of interface methods.
+ *
+ * @since 1.0.0
  */
 public interface Observer {
 
+  /**
+   * @since 1.0.0
+   */
   enum NotificationType {
     WEAK, STRONG
   }
 
   /**
    * A {@link Column} and {@link NotificationType} pair
+   *
+   * @since 1.0.0
    */
   class ObservedColumn {
     private final Column col;
@@ -57,6 +64,9 @@ public interface Observer {
     }
   }
 
+  /**
+   * @since 1.0.0
+   */
   interface Context {
     /**
      * @return A configuration object with application configuration like that returned by

http://git-wip-us.apache.org/repos/asf/incubator-fluo/blob/9adf2166/modules/api/src/main/java/org/apache/fluo/api/service/FluoOracle.java
----------------------------------------------------------------------
diff --git a/modules/api/src/main/java/org/apache/fluo/api/service/FluoOracle.java b/modules/api/src/main/java/org/apache/fluo/api/service/FluoOracle.java
index e042151..31bab95 100644
--- a/modules/api/src/main/java/org/apache/fluo/api/service/FluoOracle.java
+++ b/modules/api/src/main/java/org/apache/fluo/api/service/FluoOracle.java
@@ -17,6 +17,8 @@ package org.apache.fluo.api.service;
 
 /**
  * Fluo Oracle service
+ *
+ * @since 1.0.0
  */
 public interface FluoOracle extends FluoService {
 

http://git-wip-us.apache.org/repos/asf/incubator-fluo/blob/9adf2166/modules/api/src/main/java/org/apache/fluo/api/service/FluoService.java
----------------------------------------------------------------------
diff --git a/modules/api/src/main/java/org/apache/fluo/api/service/FluoService.java b/modules/api/src/main/java/org/apache/fluo/api/service/FluoService.java
index 5be879b..6a3bf2a 100644
--- a/modules/api/src/main/java/org/apache/fluo/api/service/FluoService.java
+++ b/modules/api/src/main/java/org/apache/fluo/api/service/FluoService.java
@@ -17,6 +17,8 @@ package org.apache.fluo.api.service;
 
 /**
  * Shared interface for Fluo services
+ *
+ * @since 1.0.0
  */
 public interface FluoService {
 

http://git-wip-us.apache.org/repos/asf/incubator-fluo/blob/9adf2166/modules/api/src/main/java/org/apache/fluo/api/service/FluoWorker.java
----------------------------------------------------------------------
diff --git a/modules/api/src/main/java/org/apache/fluo/api/service/FluoWorker.java b/modules/api/src/main/java/org/apache/fluo/api/service/FluoWorker.java
index e760c6f..fe97087 100644
--- a/modules/api/src/main/java/org/apache/fluo/api/service/FluoWorker.java
+++ b/modules/api/src/main/java/org/apache/fluo/api/service/FluoWorker.java
@@ -17,6 +17,8 @@ package org.apache.fluo.api.service;
 
 /**
  * Fluo worker service
+ *
+ * @since 1.0.0
  */
 public interface FluoWorker extends FluoService {
 

http://git-wip-us.apache.org/repos/asf/incubator-fluo/blob/9adf2166/modules/api/src/main/java/org/apache/fluo/api/types/Encoder.java
----------------------------------------------------------------------
diff --git a/modules/api/src/main/java/org/apache/fluo/api/types/Encoder.java b/modules/api/src/main/java/org/apache/fluo/api/types/Encoder.java
index b9ef297..886a03c 100644
--- a/modules/api/src/main/java/org/apache/fluo/api/types/Encoder.java
+++ b/modules/api/src/main/java/org/apache/fluo/api/types/Encoder.java
@@ -19,6 +19,8 @@ import org.apache.fluo.api.data.Bytes;
 
 /**
  * Transforms Java primitives to and from bytes using desired encoding
+ *
+ * @since 1.0.0
  */
 public interface Encoder {
 

http://git-wip-us.apache.org/repos/asf/incubator-fluo/blob/9adf2166/modules/api/src/main/java/org/apache/fluo/api/types/StringEncoder.java
----------------------------------------------------------------------
diff --git a/modules/api/src/main/java/org/apache/fluo/api/types/StringEncoder.java b/modules/api/src/main/java/org/apache/fluo/api/types/StringEncoder.java
index 78ae249..4393f7f 100644
--- a/modules/api/src/main/java/org/apache/fluo/api/types/StringEncoder.java
+++ b/modules/api/src/main/java/org/apache/fluo/api/types/StringEncoder.java
@@ -19,6 +19,8 @@ import org.apache.fluo.api.data.Bytes;
 
 /**
  * Transforms Java primitives to and from bytes using a String encoding
+ *
+ * @since 1.0.0
  */
 public class StringEncoder implements Encoder {
 

http://git-wip-us.apache.org/repos/asf/incubator-fluo/blob/9adf2166/modules/api/src/main/java/org/apache/fluo/api/types/TypeLayer.java
----------------------------------------------------------------------
diff --git a/modules/api/src/main/java/org/apache/fluo/api/types/TypeLayer.java b/modules/api/src/main/java/org/apache/fluo/api/types/TypeLayer.java
index d324a67..d80ea76 100644
--- a/modules/api/src/main/java/org/apache/fluo/api/types/TypeLayer.java
+++ b/modules/api/src/main/java/org/apache/fluo/api/types/TypeLayer.java
@@ -245,8 +245,9 @@ import org.apache.fluo.api.data.Column;
  *     String val1 = rowCols.get("row1").get(c1).toString();
  * }
  * </pre>
+ *
+ * @since 1.0.0
  */
-
 public class TypeLayer {
 
   private Encoder encoder;
@@ -268,6 +269,9 @@ public class TypeLayer {
     }
   }
 
+  /**
+   * @since 1.0.0
+   */
   public abstract class RowMethods<R> {
 
     abstract R create(Data data);
@@ -300,6 +304,9 @@ public class TypeLayer {
     }
   }
 
+  /**
+   * @since 1.0.0
+   */
   public abstract class SimpleFamilyMethods<R1> {
 
     protected Data data;
@@ -336,6 +343,9 @@ public class TypeLayer {
     }
   }
 
+  /**
+   * @since 1.0.0
+   */
   public abstract class FamilyMethods<R1, R2> extends SimpleFamilyMethods<R1> {
 
     FamilyMethods(Data data) {
@@ -352,6 +362,9 @@ public class TypeLayer {
     }
   }
 
+  /**
+   * @since 1.0.0
+   */
   public abstract class QualifierMethods<R> {
 
     protected Data data;
@@ -388,6 +401,9 @@ public class TypeLayer {
     }
   }
 
+  /**
+   * @since 1.0.0
+   */
   public static class VisibilityMethods {
 
     private Data data;
@@ -417,6 +433,9 @@ public class TypeLayer {
     }
   }
 
+  /**
+   * @since 1.0.0
+   */
   public class CQB extends QualifierMethods<VisibilityMethods> {
     CQB(Data data) {
       super(data);
@@ -428,6 +447,9 @@ public class TypeLayer {
     }
   }
 
+  /**
+   * @since 1.0.0
+   */
   public class CFB extends SimpleFamilyMethods<CQB> {
     CFB() {
       super(new Data());

http://git-wip-us.apache.org/repos/asf/incubator-fluo/blob/9adf2166/modules/api/src/main/java/org/apache/fluo/api/types/TypedLoader.java
----------------------------------------------------------------------
diff --git a/modules/api/src/main/java/org/apache/fluo/api/types/TypedLoader.java b/modules/api/src/main/java/org/apache/fluo/api/types/TypedLoader.java
index 89b9260..86c31bb 100644
--- a/modules/api/src/main/java/org/apache/fluo/api/types/TypedLoader.java
+++ b/modules/api/src/main/java/org/apache/fluo/api/types/TypedLoader.java
@@ -20,6 +20,8 @@ import org.apache.fluo.api.client.TransactionBase;
 
 /**
  * A {@link Loader} that uses a {@link TypeLayer}
+ *
+ * @since 1.0.0
  */
 public abstract class TypedLoader implements Loader {
 

http://git-wip-us.apache.org/repos/asf/incubator-fluo/blob/9adf2166/modules/api/src/main/java/org/apache/fluo/api/types/TypedObserver.java
----------------------------------------------------------------------
diff --git a/modules/api/src/main/java/org/apache/fluo/api/types/TypedObserver.java b/modules/api/src/main/java/org/apache/fluo/api/types/TypedObserver.java
index daf888b..302f382 100644
--- a/modules/api/src/main/java/org/apache/fluo/api/types/TypedObserver.java
+++ b/modules/api/src/main/java/org/apache/fluo/api/types/TypedObserver.java
@@ -22,6 +22,8 @@ import org.apache.fluo.api.observer.AbstractObserver;
 
 /**
  * An {@link AbstractObserver} that uses a {@link TypeLayer}
+ *
+ * @since 1.0.0
  */
 public abstract class TypedObserver extends AbstractObserver {
 

http://git-wip-us.apache.org/repos/asf/incubator-fluo/blob/9adf2166/modules/api/src/main/java/org/apache/fluo/api/types/TypedSnapshot.java
----------------------------------------------------------------------
diff --git a/modules/api/src/main/java/org/apache/fluo/api/types/TypedSnapshot.java b/modules/api/src/main/java/org/apache/fluo/api/types/TypedSnapshot.java
index c7b8467..97c7f1c 100644
--- a/modules/api/src/main/java/org/apache/fluo/api/types/TypedSnapshot.java
+++ b/modules/api/src/main/java/org/apache/fluo/api/types/TypedSnapshot.java
@@ -19,6 +19,8 @@ import org.apache.fluo.api.client.Snapshot;
 
 /**
  * A {@link Snapshot} that uses a {@link TypeLayer}
+ *
+ * @since 1.0.0
  */
 public class TypedSnapshot extends TypedSnapshotBase implements Snapshot {
 

http://git-wip-us.apache.org/repos/asf/incubator-fluo/blob/9adf2166/modules/api/src/main/java/org/apache/fluo/api/types/TypedSnapshotBase.java
----------------------------------------------------------------------
diff --git a/modules/api/src/main/java/org/apache/fluo/api/types/TypedSnapshotBase.java b/modules/api/src/main/java/org/apache/fluo/api/types/TypedSnapshotBase.java
index 08459ee..c8e30df 100644
--- a/modules/api/src/main/java/org/apache/fluo/api/types/TypedSnapshotBase.java
+++ b/modules/api/src/main/java/org/apache/fluo/api/types/TypedSnapshotBase.java
@@ -44,6 +44,8 @@ import org.apache.fluo.api.types.TypeLayer.RowMethods;
 
 /**
  * A {@link SnapshotBase} that uses a {@link TypeLayer}
+ *
+ * @since 1.0.0
  */
 public class TypedSnapshotBase implements SnapshotBase {
 
@@ -51,6 +53,9 @@ public class TypedSnapshotBase implements SnapshotBase {
   private Encoder encoder;
   private TypeLayer tl;
 
+  /**
+   * @since 1.0.0
+   */
   public class VisibilityMethods extends Value {
 
     public VisibilityMethods(Data data) {
@@ -78,6 +83,9 @@ public class TypedSnapshotBase implements SnapshotBase {
     }
   }
 
+  /**
+   * @since 1.0.0
+   */
   public class Value {
     private Bytes bytes;
     private boolean gotBytes = false;
@@ -246,6 +254,9 @@ public class TypedSnapshotBase implements SnapshotBase {
     }
   }
 
+  /**
+   * @since 1.0.0
+   */
   public class ValueQualifierBuilder extends QualifierMethods<VisibilityMethods> {
 
     ValueQualifierBuilder(Data data) {
@@ -258,6 +269,9 @@ public class TypedSnapshotBase implements SnapshotBase {
     }
   }
 
+  /**
+   * @since 1.0.0
+   */
   public class ValueFamilyMethods extends FamilyMethods<ValueQualifierBuilder, Value> {
 
     ValueFamilyMethods(Data data) {
@@ -291,6 +305,9 @@ public class TypedSnapshotBase implements SnapshotBase {
     }
   }
 
+  /**
+   * @since 1.0.0
+   */
   public class MapConverter {
     private Collection<Bytes> rows;
     private Set<Column> columns;
@@ -363,6 +380,9 @@ public class TypedSnapshotBase implements SnapshotBase {
     }
   }
 
+  /**
+   * @since 1.0.0
+   */
   public class ColumnsMethods {
     private Collection<Bytes> rows;
 
@@ -379,6 +399,9 @@ public class TypedSnapshotBase implements SnapshotBase {
     }
   }
 
+  /**
+   * @since 1.0.0
+   */
   public class ValueRowMethods extends RowMethods<ValueFamilyMethods> {
 
     ValueRowMethods() {

http://git-wip-us.apache.org/repos/asf/incubator-fluo/blob/9adf2166/modules/api/src/main/java/org/apache/fluo/api/types/TypedTransaction.java
----------------------------------------------------------------------
diff --git a/modules/api/src/main/java/org/apache/fluo/api/types/TypedTransaction.java b/modules/api/src/main/java/org/apache/fluo/api/types/TypedTransaction.java
index 57eb2cf..62b32c2 100644
--- a/modules/api/src/main/java/org/apache/fluo/api/types/TypedTransaction.java
+++ b/modules/api/src/main/java/org/apache/fluo/api/types/TypedTransaction.java
@@ -21,6 +21,8 @@ import org.apache.fluo.api.exceptions.CommitException;
 
 /**
  * A {@link Transaction} that uses a {@link TypeLayer}
+ *
+ * @since 1.0.0
  */
 public class TypedTransaction extends TypedTransactionBase implements Transaction {
 

http://git-wip-us.apache.org/repos/asf/incubator-fluo/blob/9adf2166/modules/api/src/main/java/org/apache/fluo/api/types/TypedTransactionBase.java
----------------------------------------------------------------------
diff --git a/modules/api/src/main/java/org/apache/fluo/api/types/TypedTransactionBase.java b/modules/api/src/main/java/org/apache/fluo/api/types/TypedTransactionBase.java
index 22b3120..8c12a2f 100644
--- a/modules/api/src/main/java/org/apache/fluo/api/types/TypedTransactionBase.java
+++ b/modules/api/src/main/java/org/apache/fluo/api/types/TypedTransactionBase.java
@@ -29,6 +29,8 @@ import org.apache.fluo.api.types.TypeLayer.RowMethods;
 
 /**
  * A {@link TransactionBase} that uses a {@link TypeLayer}
+ *
+ * @since 1.0.0
  */
 public class TypedTransactionBase extends TypedSnapshotBase implements TransactionBase {
 
@@ -36,6 +38,9 @@ public class TypedTransactionBase extends TypedSnapshotBase implements Transacti
   private final Encoder encoder;
   private final TypeLayer tl;
 
+  /**
+   * @since 1.0.0
+   */
   public class Mutator {
 
     private boolean set = false;
@@ -144,6 +149,9 @@ public class TypedTransactionBase extends TypedSnapshotBase implements Transacti
 
   }
 
+  /**
+   * @since 1.0.0
+   */
   public class VisibilityMutator extends Mutator {
 
     public VisibilityMutator(Data data) {
@@ -175,6 +183,9 @@ public class TypedTransactionBase extends TypedSnapshotBase implements Transacti
     }
   }
 
+  /**
+   * @since 1.0.0
+   */
   public class MutatorQualifierMethods extends QualifierMethods<VisibilityMutator> {
 
     MutatorQualifierMethods(Data data) {
@@ -187,6 +198,9 @@ public class TypedTransactionBase extends TypedSnapshotBase implements Transacti
     }
   }
 
+  /**
+   * @since 1.0.0
+   */
   public class MutatorFamilyMethods extends FamilyMethods<MutatorQualifierMethods, Mutator> {
 
     MutatorFamilyMethods(Data data) {
@@ -204,6 +218,9 @@ public class TypedTransactionBase extends TypedSnapshotBase implements Transacti
     }
   }
 
+  /**
+   * @since 1.0.0
+   */
   public class MutatorRowMethods extends RowMethods<MutatorFamilyMethods> {
 
     MutatorRowMethods() {