You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@storm.apache.org by ka...@apache.org on 2015/06/30 00:17:51 UTC

[1/3] storm git commit: STORM-843 Add Javadoc to storm-redis

Repository: storm
Updated Branches:
  refs/heads/master e2894f70f -> f7a8a7513


STORM-843 Add Javadoc to storm-redis

* leaves javadoc for Trident API : it should be treated from Trident API
* some code cleanup


Project: http://git-wip-us.apache.org/repos/asf/storm/repo
Commit: http://git-wip-us.apache.org/repos/asf/storm/commit/8d056058
Tree: http://git-wip-us.apache.org/repos/asf/storm/tree/8d056058
Diff: http://git-wip-us.apache.org/repos/asf/storm/diff/8d056058

Branch: refs/heads/master
Commit: 8d05605868421f58096def9119bd8e5db7de24e9
Parents: 58372f0
Author: Jungtaek Lim <ka...@gmail.com>
Authored: Mon Jun 15 08:14:11 2015 +0900
Committer: Jungtaek Lim <ka...@gmail.com>
Committed: Mon Jun 15 08:14:11 2015 +0900

----------------------------------------------------------------------
 .../storm/redis/bolt/AbstractRedisBolt.java     |  42 +++++++
 .../storm/redis/bolt/RedisLookupBolt.java       |  23 +++-
 .../apache/storm/redis/bolt/RedisStoreBolt.java |  21 ++++
 .../redis/common/config/JedisClusterConfig.java |  55 +++++++-
 .../redis/common/config/JedisPoolConfig.java    |  66 ++++++++++
 .../common/container/JedisClusterContainer.java |  18 +++
 .../JedisCommandsContainerBuilder.java          |  15 +++
 .../JedisCommandsInstanceContainer.java         |  12 ++
 .../redis/common/container/JedisContainer.java  |  16 +++
 .../common/mapper/RedisDataTypeDescription.java |  20 +++
 .../redis/common/mapper/RedisLookupMapper.java  |   7 +-
 .../storm/redis/common/mapper/RedisMapper.java  |   9 +-
 .../redis/common/mapper/RedisStoreMapper.java   |   3 +
 .../storm/redis/common/mapper/TupleMapper.java  |  18 ++-
 .../trident/state/AbstractRedisMapState.java    |  41 ++++++
 .../state/AbstractRedisStateQuerier.java        |  28 ++++-
 .../state/AbstractRedisStateUpdater.java        |  27 ++++
 .../storm/redis/trident/state/KeyFactory.java   |  22 ++++
 .../storm/redis/trident/state/Options.java      |   6 +
 .../trident/state/RedisClusterMapState.java     | 124 +++++++++++++++++-
 .../redis/trident/state/RedisClusterState.java  |  44 ++++++-
 .../trident/state/RedisClusterStateQuerier.java |  19 ++-
 .../trident/state/RedisClusterStateUpdater.java |  19 +++
 .../redis/trident/state/RedisMapState.java      | 126 +++++++++++++++++--
 .../storm/redis/trident/state/RedisState.java   |  44 ++++++-
 .../redis/trident/state/RedisStateQuerier.java  |  19 ++-
 .../redis/trident/state/RedisStateUpdater.java  |  19 +++
 27 files changed, 822 insertions(+), 41 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/storm/blob/8d056058/external/storm-redis/src/main/java/org/apache/storm/redis/bolt/AbstractRedisBolt.java
----------------------------------------------------------------------
diff --git a/external/storm-redis/src/main/java/org/apache/storm/redis/bolt/AbstractRedisBolt.java b/external/storm-redis/src/main/java/org/apache/storm/redis/bolt/AbstractRedisBolt.java
index 158fcaa..dc2a2d3 100644
--- a/external/storm-redis/src/main/java/org/apache/storm/redis/bolt/AbstractRedisBolt.java
+++ b/external/storm-redis/src/main/java/org/apache/storm/redis/bolt/AbstractRedisBolt.java
@@ -28,6 +28,26 @@ import redis.clients.jedis.JedisCommands;
 
 import java.util.Map;
 
+/**
+ * AbstractRedisBolt class is for users to implement custom bolts which makes interaction with Redis.
+ * <p/>
+ * Due to environment abstraction, AbstractRedisBolt provides JedisCommands which contains only single key operations.
+ * <p/>
+ * Custom Bolts may want to follow this pattern:
+ * <p><blockquote><pre>
+ * JedisCommands jedisCommands = null;
+ * try {
+ *     jedisCommand = getInstance();
+ *     // do some works
+ * } finally {
+ *     if (jedisCommand != null) {
+ *         returnInstance(jedisCommand);
+ *     }
+ * }
+ * </pre></blockquote>
+ *
+ */
+// TODO: Separate Jedis / JedisCluster to provide full operations for each environment to users
 public abstract class AbstractRedisBolt extends BaseRichBolt {
     protected OutputCollector collector;
 
@@ -36,16 +56,28 @@ public abstract class AbstractRedisBolt extends BaseRichBolt {
     private JedisPoolConfig jedisPoolConfig;
     private JedisClusterConfig jedisClusterConfig;
 
+    /**
+     * Constructor for single Redis environment (JedisPool)
+     * @param config configuration for initializing JedisPool
+     */
     public AbstractRedisBolt(JedisPoolConfig config) {
         this.jedisPoolConfig = config;
     }
 
+    /**
+     * Constructor for Redis Cluster environment (JedisCluster)
+     * @param config configuration for initializing JedisCluster
+     */
     public AbstractRedisBolt(JedisClusterConfig config) {
         this.jedisClusterConfig = config;
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public void prepare(Map map, TopologyContext topologyContext, OutputCollector collector) {
+        // FIXME: stores map (stormConf), topologyContext and expose these to derived classes
         this.collector = collector;
 
         if (jedisPoolConfig != null) {
@@ -57,10 +89,20 @@ public abstract class AbstractRedisBolt extends BaseRichBolt {
         }
     }
 
+    /**
+     * Borrow JedisCommands instance from container.<p/>
+     * JedisCommands is an interface which contains single key operations.
+     * @return implementation of JedisCommands
+     * @see JedisCommandsInstanceContainer#getInstance()
+     */
     protected JedisCommands getInstance() {
         return this.container.getInstance();
     }
 
+    /**
+     * Return borrowed instance to container.
+     * @param instance borrowed object
+     */
     protected void returnInstance(JedisCommands instance) {
         this.container.returnInstance(instance);
     }

http://git-wip-us.apache.org/repos/asf/storm/blob/8d056058/external/storm-redis/src/main/java/org/apache/storm/redis/bolt/RedisLookupBolt.java
----------------------------------------------------------------------
diff --git a/external/storm-redis/src/main/java/org/apache/storm/redis/bolt/RedisLookupBolt.java b/external/storm-redis/src/main/java/org/apache/storm/redis/bolt/RedisLookupBolt.java
index bbd7e6a..47c98cb 100644
--- a/external/storm-redis/src/main/java/org/apache/storm/redis/bolt/RedisLookupBolt.java
+++ b/external/storm-redis/src/main/java/org/apache/storm/redis/bolt/RedisLookupBolt.java
@@ -28,11 +28,21 @@ import redis.clients.jedis.JedisCommands;
 
 import java.util.List;
 
+/**
+ * Basic bolt for querying from Redis and emits response as tuple.
+ * <p/>
+ * Various data types are supported: STRING, LIST, HASH, SET, SORTED_SET, HYPER_LOG_LOG
+ */
 public class RedisLookupBolt extends AbstractRedisBolt {
     private final RedisLookupMapper lookupMapper;
     private final RedisDataTypeDescription.RedisDataType dataType;
     private final String additionalKey;
 
+    /**
+     * Constructor for single Redis environment (JedisPool)
+     * @param config configuration for initializing JedisPool
+     * @param lookupMapper mapper containing which datatype, query key, output key that Bolt uses
+     */
     public RedisLookupBolt(JedisPoolConfig config, RedisLookupMapper lookupMapper) {
         super(config);
 
@@ -43,6 +53,11 @@ public class RedisLookupBolt extends AbstractRedisBolt {
         this.additionalKey = dataTypeDescription.getAdditionalKey();
     }
 
+    /**
+     * Constructor for Redis Cluster environment (JedisCluster)
+     * @param config configuration for initializing JedisCluster
+     * @param lookupMapper mapper containing which datatype, query key, output key that Bolt uses
+     */
     public RedisLookupBolt(JedisClusterConfig config, RedisLookupMapper lookupMapper) {
         super(config);
 
@@ -53,10 +68,13 @@ public class RedisLookupBolt extends AbstractRedisBolt {
         this.additionalKey = dataTypeDescription.getAdditionalKey();
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public void execute(Tuple input) {
         String key = lookupMapper.getKeyFromTuple(input);
-        Object lookupValue = null;
+        Object lookupValue;
 
         JedisCommands jedisCommand = null;
         try {
@@ -105,6 +123,9 @@ public class RedisLookupBolt extends AbstractRedisBolt {
         }
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public void declareOutputFields(OutputFieldsDeclarer declarer) {
         lookupMapper.declareOutputFields(declarer);

http://git-wip-us.apache.org/repos/asf/storm/blob/8d056058/external/storm-redis/src/main/java/org/apache/storm/redis/bolt/RedisStoreBolt.java
----------------------------------------------------------------------
diff --git a/external/storm-redis/src/main/java/org/apache/storm/redis/bolt/RedisStoreBolt.java b/external/storm-redis/src/main/java/org/apache/storm/redis/bolt/RedisStoreBolt.java
index 761c5ed..be9a328 100644
--- a/external/storm-redis/src/main/java/org/apache/storm/redis/bolt/RedisStoreBolt.java
+++ b/external/storm-redis/src/main/java/org/apache/storm/redis/bolt/RedisStoreBolt.java
@@ -25,11 +25,21 @@ import org.apache.storm.redis.common.mapper.RedisDataTypeDescription;
 import org.apache.storm.redis.common.mapper.RedisStoreMapper;
 import redis.clients.jedis.JedisCommands;
 
+/**
+ * Basic bolt for writing to Redis
+ * <p/>
+ * Various data types are supported: STRING, LIST, HASH, SET, SORTED_SET, HYPER_LOG_LOG
+ */
 public class RedisStoreBolt extends AbstractRedisBolt {
     private final RedisStoreMapper storeMapper;
     private final RedisDataTypeDescription.RedisDataType dataType;
     private final String additionalKey;
 
+    /**
+     * Constructor for single Redis environment (JedisPool)
+     * @param config configuration for initializing JedisPool
+     * @param storeMapper mapper containing which datatype, storing value's key that Bolt uses
+     */
     public RedisStoreBolt(JedisPoolConfig config, RedisStoreMapper storeMapper) {
         super(config);
         this.storeMapper = storeMapper;
@@ -39,6 +49,11 @@ public class RedisStoreBolt extends AbstractRedisBolt {
         this.additionalKey = dataTypeDescription.getAdditionalKey();
     }
 
+    /**
+     * Constructor for Redis Cluster environment (JedisCluster)
+     * @param config configuration for initializing JedisCluster
+     * @param storeMapper mapper containing which datatype, storing value's key that Bolt uses
+     */
     public RedisStoreBolt(JedisClusterConfig config, RedisStoreMapper storeMapper) {
         super(config);
         this.storeMapper = storeMapper;
@@ -48,6 +63,9 @@ public class RedisStoreBolt extends AbstractRedisBolt {
         this.additionalKey = dataTypeDescription.getAdditionalKey();
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public void execute(Tuple input) {
         String key = storeMapper.getKeyFromTuple(input);
@@ -94,6 +112,9 @@ public class RedisStoreBolt extends AbstractRedisBolt {
         }
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public void declareOutputFields(OutputFieldsDeclarer declarer) {
     }

http://git-wip-us.apache.org/repos/asf/storm/blob/8d056058/external/storm-redis/src/main/java/org/apache/storm/redis/common/config/JedisClusterConfig.java
----------------------------------------------------------------------
diff --git a/external/storm-redis/src/main/java/org/apache/storm/redis/common/config/JedisClusterConfig.java b/external/storm-redis/src/main/java/org/apache/storm/redis/common/config/JedisClusterConfig.java
index a13eced..d8696aa 100644
--- a/external/storm-redis/src/main/java/org/apache/storm/redis/common/config/JedisClusterConfig.java
+++ b/external/storm-redis/src/main/java/org/apache/storm/redis/common/config/JedisClusterConfig.java
@@ -26,56 +26,105 @@ import java.net.InetSocketAddress;
 import java.util.HashSet;
 import java.util.Set;
 
+/**
+ * Configuration for JedisCluster.
+ */
 public class JedisClusterConfig implements Serializable {
     private Set<InetSocketAddress> nodes;
     private int timeout;
     private int maxRedirections;
 
+    /**
+     * Constructor
+     * <p/>
+     * You can use JedisClusterConfig.Builder() for leaving some fields to apply default value.
+     * <p/>
+     * Note that list of node is mandatory, and when you didn't set nodes, it throws NullPointerException.
+     *
+     * @param nodes list of node information for JedisCluster
+     * @param timeout socket / connection timeout
+     * @param maxRedirections limit of redirections - how much we'll follow MOVED or ASK
+     * @throws NullPointerException when you didn't set nodes
+     */
     public JedisClusterConfig(Set<InetSocketAddress> nodes, int timeout, int maxRedirections) {
+        Preconditions.checkNotNull(nodes, "Node information should be presented");
+
         this.nodes = nodes;
         this.timeout = timeout;
         this.maxRedirections = maxRedirections;
     }
 
+    /**
+     * Returns nodes.
+     * @return list of node information
+     */
     public Set<HostAndPort> getNodes() {
-        Set<HostAndPort> ret = new HashSet<HostAndPort>();
+        Set<HostAndPort> ret = new HashSet<>();
         for (InetSocketAddress node : nodes) {
             ret.add(new HostAndPort(node.getHostName(), node.getPort()));
         }
         return ret;
     }
 
+    /**
+     * Returns socket / connection timeout.
+     * @return socket / connection timeout
+     */
     public int getTimeout() {
         return timeout;
     }
 
+    /**
+     * Returns limit of redirection.
+     * @return limit of redirection
+     */
     public int getMaxRedirections() {
         return maxRedirections;
     }
 
+    /**
+     * Builder for initializing JedisClusterConfig.
+     */
     public static class Builder {
         private Set<InetSocketAddress> nodes;
         private int timeout = Protocol.DEFAULT_TIMEOUT;
         private int maxRedirections = 5;
 
+        /**
+         * Sets list of node.
+         * @param nodes list of node
+         * @return Builder itself
+         */
         public Builder setNodes(Set<InetSocketAddress> nodes) {
             this.nodes = nodes;
             return this;
         }
 
+        /**
+         * Sets socket / connection timeout.
+         * @param timeout socket / connection timeout
+         * @return Builder itself
+         */
         public Builder setTimeout(int timeout) {
             this.timeout = timeout;
             return this;
         }
 
+        /**
+         * Sets limit of redirection.
+         * @param maxRedirections limit of redirection
+         * @return Builder itself
+         */
         public Builder setMaxRedirections(int maxRedirections) {
             this.maxRedirections = maxRedirections;
             return this;
         }
 
+        /**
+         * Builds JedisClusterConfig.
+         * @return JedisClusterConfig
+         */
         public JedisClusterConfig build() {
-            Preconditions.checkNotNull(this.nodes, "Node information should be presented");
-
             return new JedisClusterConfig(nodes, timeout, maxRedirections);
         }
     }

http://git-wip-us.apache.org/repos/asf/storm/blob/8d056058/external/storm-redis/src/main/java/org/apache/storm/redis/common/config/JedisPoolConfig.java
----------------------------------------------------------------------
diff --git a/external/storm-redis/src/main/java/org/apache/storm/redis/common/config/JedisPoolConfig.java b/external/storm-redis/src/main/java/org/apache/storm/redis/common/config/JedisPoolConfig.java
index cc5f6e4..8b3a2e5 100644
--- a/external/storm-redis/src/main/java/org/apache/storm/redis/common/config/JedisPoolConfig.java
+++ b/external/storm-redis/src/main/java/org/apache/storm/redis/common/config/JedisPoolConfig.java
@@ -21,6 +21,9 @@ import redis.clients.jedis.Protocol;
 
 import java.io.Serializable;
 
+/**
+ * Configuration for JedisPool.
+ */
 public class JedisPoolConfig implements Serializable {
     public static final String DEFAULT_HOST = "127.0.0.1";
 
@@ -30,6 +33,17 @@ public class JedisPoolConfig implements Serializable {
     private int database;
     private String password;
 
+    /**
+     * Constructor
+     * <p/>
+     * You can use JedisPoolConfig.Builder() for leaving some fields to apply default value.
+     *
+     * @param host hostname or IP
+     * @param port port
+     * @param timeout socket / connection timeout
+     * @param database database index
+     * @param password password, if any
+     */
     public JedisPoolConfig(String host, int port, int timeout, String password, int database) {
         this.host = host;
         this.port = port;
@@ -38,26 +52,49 @@ public class JedisPoolConfig implements Serializable {
         this.password = password;
     }
 
+    /**
+     * Returns host.
+     * @return hostname or IP
+     */
     public String getHost() {
         return host;
     }
 
+    /**
+     * Returns port.
+     * @return port
+     */
     public int getPort() {
         return port;
     }
 
+    /**
+     * Returns timeout.
+     * @return socket / connection timeout
+     */
     public int getTimeout() {
         return timeout;
     }
 
+    /**
+     * Returns database index.
+     * @return database index
+     */
     public int getDatabase() {
         return database;
     }
 
+    /**
+     * Returns password.
+     * @return password
+     */
     public String getPassword() {
         return password;
     }
 
+    /**
+     * Builder for initializing JedisPoolConfig.
+     */
     public static class Builder {
         private String host = DEFAULT_HOST;
         private int port = Protocol.DEFAULT_PORT;
@@ -65,31 +102,60 @@ public class JedisPoolConfig implements Serializable {
         private int database = Protocol.DEFAULT_DATABASE;
         private String password;
 
+        /**
+         * Sets host.
+         * @param host host
+         * @return Builder itself
+         */
         public Builder setHost(String host) {
             this.host = host;
             return this;
         }
 
+        /**
+         * Sets port.
+         * @param port port
+         * @return Builder itself
+         */
         public Builder setPort(int port) {
             this.port = port;
             return this;
         }
 
+        /**
+         * Sets timeout.
+         * @param timeout timeout
+         * @return Builder itself
+         */
         public Builder setTimeout(int timeout) {
             this.timeout = timeout;
             return this;
         }
 
+        /**
+         * Sets database index.
+         * @param database database index
+         * @return Builder itself
+         */
         public Builder setDatabase(int database) {
             this.database = database;
             return this;
         }
 
+        /**
+         * Sets password.
+         * @param password password, if any
+         * @return Builder itself
+         */
         public Builder setPassword(String password) {
             this.password = password;
             return this;
         }
 
+        /**
+         * Builds JedisPoolConfig.
+         * @return JedisPoolConfig
+         */
         public JedisPoolConfig build() {
             return new JedisPoolConfig(host, port, timeout, password, database);
         }

http://git-wip-us.apache.org/repos/asf/storm/blob/8d056058/external/storm-redis/src/main/java/org/apache/storm/redis/common/container/JedisClusterContainer.java
----------------------------------------------------------------------
diff --git a/external/storm-redis/src/main/java/org/apache/storm/redis/common/container/JedisClusterContainer.java b/external/storm-redis/src/main/java/org/apache/storm/redis/common/container/JedisClusterContainer.java
index a1ff19f..ea294a6 100644
--- a/external/storm-redis/src/main/java/org/apache/storm/redis/common/container/JedisClusterContainer.java
+++ b/external/storm-redis/src/main/java/org/apache/storm/redis/common/container/JedisClusterContainer.java
@@ -22,24 +22,42 @@ import redis.clients.jedis.JedisCommands;
 
 import java.io.Closeable;
 
+/**
+ * Container for managing JedisCluster.
+ * <p/>
+ * Note that JedisCluster doesn't need to be pooled since it's thread-safe and it stores pools internally.
+ */
 public class JedisClusterContainer implements JedisCommandsInstanceContainer, Closeable {
 
     private JedisCluster jedisCluster;
 
+    /**
+     * Constructor
+     * @param jedisCluster JedisCluster instance
+     */
     public JedisClusterContainer(JedisCluster jedisCluster) {
         this.jedisCluster = jedisCluster;
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public JedisCommands getInstance() {
         return this.jedisCluster;
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public void returnInstance(JedisCommands jedisCommands) {
         // do nothing
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public void close() {
         this.jedisCluster.close();

http://git-wip-us.apache.org/repos/asf/storm/blob/8d056058/external/storm-redis/src/main/java/org/apache/storm/redis/common/container/JedisCommandsContainerBuilder.java
----------------------------------------------------------------------
diff --git a/external/storm-redis/src/main/java/org/apache/storm/redis/common/container/JedisCommandsContainerBuilder.java b/external/storm-redis/src/main/java/org/apache/storm/redis/common/container/JedisCommandsContainerBuilder.java
index a2f8c2e..36a74d6 100644
--- a/external/storm-redis/src/main/java/org/apache/storm/redis/common/container/JedisCommandsContainerBuilder.java
+++ b/external/storm-redis/src/main/java/org/apache/storm/redis/common/container/JedisCommandsContainerBuilder.java
@@ -22,15 +22,30 @@ import org.apache.storm.redis.common.config.JedisPoolConfig;
 import redis.clients.jedis.JedisCluster;
 import redis.clients.jedis.JedisPool;
 
+/**
+ * Container Builder which helps abstraction of two env. - single instance or Redis Cluster.
+ */
 public class JedisCommandsContainerBuilder {
 
+    // FIXME: We're using default config since it cannot be serialized
+    // We still needs to provide some options externally
     public static final redis.clients.jedis.JedisPoolConfig DEFAULT_POOL_CONFIG = new redis.clients.jedis.JedisPoolConfig();
 
+    /**
+     * Builds container for single Redis environment.
+     * @param config configuration for JedisPool
+     * @return container for single Redis environment
+     */
     public static JedisCommandsInstanceContainer build(JedisPoolConfig config) {
         JedisPool jedisPool = new JedisPool(DEFAULT_POOL_CONFIG, config.getHost(), config.getPort(), config.getTimeout(), config.getPassword(), config.getDatabase());
         return new JedisContainer(jedisPool);
     }
 
+    /**
+     * Builds container for Redis Cluster environment.
+     * @param config configuration for JedisCluster
+     * @return container for Redis Cluster environment
+     */
     public static JedisCommandsInstanceContainer build(JedisClusterConfig config) {
         JedisCluster jedisCluster = new JedisCluster(config.getNodes(), config.getTimeout(), config.getMaxRedirections(), DEFAULT_POOL_CONFIG);
         return new JedisClusterContainer(jedisCluster);

http://git-wip-us.apache.org/repos/asf/storm/blob/8d056058/external/storm-redis/src/main/java/org/apache/storm/redis/common/container/JedisCommandsInstanceContainer.java
----------------------------------------------------------------------
diff --git a/external/storm-redis/src/main/java/org/apache/storm/redis/common/container/JedisCommandsInstanceContainer.java b/external/storm-redis/src/main/java/org/apache/storm/redis/common/container/JedisCommandsInstanceContainer.java
index 9ec32b9..743d7f8 100644
--- a/external/storm-redis/src/main/java/org/apache/storm/redis/common/container/JedisCommandsInstanceContainer.java
+++ b/external/storm-redis/src/main/java/org/apache/storm/redis/common/container/JedisCommandsInstanceContainer.java
@@ -19,7 +19,19 @@ package org.apache.storm.redis.common.container;
 
 import redis.clients.jedis.JedisCommands;
 
+/**
+ * Interfaces for containers which stores instances implementing JedisCommands.
+ */
 public interface JedisCommandsInstanceContainer {
+    /**
+     * Borrows instance from container.
+     * @return instance which implements JedisCommands
+     */
     JedisCommands getInstance();
+
+    /**
+     * Returns instance to container.
+     * @param jedisCommands borrowed instance
+     */
     void returnInstance(JedisCommands jedisCommands);
 }

http://git-wip-us.apache.org/repos/asf/storm/blob/8d056058/external/storm-redis/src/main/java/org/apache/storm/redis/common/container/JedisContainer.java
----------------------------------------------------------------------
diff --git a/external/storm-redis/src/main/java/org/apache/storm/redis/common/container/JedisContainer.java b/external/storm-redis/src/main/java/org/apache/storm/redis/common/container/JedisContainer.java
index 8e1fdf5..e704712 100644
--- a/external/storm-redis/src/main/java/org/apache/storm/redis/common/container/JedisContainer.java
+++ b/external/storm-redis/src/main/java/org/apache/storm/redis/common/container/JedisContainer.java
@@ -26,20 +26,33 @@ import redis.clients.jedis.JedisPool;
 import java.io.Closeable;
 import java.io.IOException;
 
+/**
+ * Container for managing Jedis instances.
+ */
 public class JedisContainer implements JedisCommandsInstanceContainer, Closeable {
     private static final Logger LOG = LoggerFactory.getLogger(JedisContainer.class);
 
     private JedisPool jedisPool;
 
+    /**
+     * Constructor
+     * @param jedisPool JedisPool which actually manages Jedis instances
+     */
     public JedisContainer(JedisPool jedisPool) {
         this.jedisPool = jedisPool;
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public JedisCommands getInstance() {
         return jedisPool.getResource();
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public void returnInstance(JedisCommands jedisCommands) {
         if (jedisCommands == null) {
@@ -53,6 +66,9 @@ public class JedisContainer implements JedisCommandsInstanceContainer, Closeable
         }
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public void close() {
         jedisPool.close();

http://git-wip-us.apache.org/repos/asf/storm/blob/8d056058/external/storm-redis/src/main/java/org/apache/storm/redis/common/mapper/RedisDataTypeDescription.java
----------------------------------------------------------------------
diff --git a/external/storm-redis/src/main/java/org/apache/storm/redis/common/mapper/RedisDataTypeDescription.java b/external/storm-redis/src/main/java/org/apache/storm/redis/common/mapper/RedisDataTypeDescription.java
index ba981d0..ede1868 100644
--- a/external/storm-redis/src/main/java/org/apache/storm/redis/common/mapper/RedisDataTypeDescription.java
+++ b/external/storm-redis/src/main/java/org/apache/storm/redis/common/mapper/RedisDataTypeDescription.java
@@ -19,16 +19,28 @@ package org.apache.storm.redis.common.mapper;
 
 import java.io.Serializable;
 
+/**
+ * RedisDataTypeDescription defines data type and additional key if needed for lookup / store tuples.
+ */
 public class RedisDataTypeDescription implements Serializable {
     public enum RedisDataType { STRING, HASH, LIST, SET, SORTED_SET, HYPER_LOG_LOG }
 
     private RedisDataType dataType;
     private String additionalKey;
 
+    /**
+     * Constructor
+     * @param dataType data type
+     */
     public RedisDataTypeDescription(RedisDataType dataType) {
         this(dataType, null);
     }
 
+    /**
+     * Constructor
+     * @param dataType data type
+     * @param additionalKey additional key for hash and sorted set
+     */
     public RedisDataTypeDescription(RedisDataType dataType, String additionalKey) {
         this.dataType = dataType;
         this.additionalKey = additionalKey;
@@ -40,10 +52,18 @@ public class RedisDataTypeDescription implements Serializable {
         }
     }
 
+    /**
+     * Returns defined data type.
+     * @return data type
+     */
     public RedisDataType getDataType() {
         return dataType;
     }
 
+    /**
+     * Returns defined additional key.
+     * @return additional key
+     */
     public String getAdditionalKey() {
         return additionalKey;
     }

http://git-wip-us.apache.org/repos/asf/storm/blob/8d056058/external/storm-redis/src/main/java/org/apache/storm/redis/common/mapper/RedisLookupMapper.java
----------------------------------------------------------------------
diff --git a/external/storm-redis/src/main/java/org/apache/storm/redis/common/mapper/RedisLookupMapper.java b/external/storm-redis/src/main/java/org/apache/storm/redis/common/mapper/RedisLookupMapper.java
index 880aea1..727e4ec 100644
--- a/external/storm-redis/src/main/java/org/apache/storm/redis/common/mapper/RedisLookupMapper.java
+++ b/external/storm-redis/src/main/java/org/apache/storm/redis/common/mapper/RedisLookupMapper.java
@@ -23,6 +23,9 @@ import backtype.storm.tuple.Values;
 
 import java.util.List;
 
+/**
+ * RedisStoreMapper is for defining spec. which is used for querying value from Redis and converting response to tuple.
+ */
 public interface RedisLookupMapper extends TupleMapper, RedisMapper {
     /**
      * Converts return value from Redis to a list of storm values that can be emitted.
@@ -30,11 +33,11 @@ public interface RedisLookupMapper extends TupleMapper, RedisMapper {
      * @param value Redis query response value. Can be String, Boolean, Long regarding of data type.
      * @return a List of storm values that can be emitted. Each item in list is emitted as an output tuple.
      */
-    public List<Values> toTuple(ITuple input, Object value);
+    List<Values> toTuple(ITuple input, Object value);
 
     /**
      * declare what are the fields that this code will output.
-     * @param declarer
+     * @param declarer OutputFieldsDeclarer
      */
     void declareOutputFields(OutputFieldsDeclarer declarer);
 }

http://git-wip-us.apache.org/repos/asf/storm/blob/8d056058/external/storm-redis/src/main/java/org/apache/storm/redis/common/mapper/RedisMapper.java
----------------------------------------------------------------------
diff --git a/external/storm-redis/src/main/java/org/apache/storm/redis/common/mapper/RedisMapper.java b/external/storm-redis/src/main/java/org/apache/storm/redis/common/mapper/RedisMapper.java
index 416ce5f..b6a9559 100644
--- a/external/storm-redis/src/main/java/org/apache/storm/redis/common/mapper/RedisMapper.java
+++ b/external/storm-redis/src/main/java/org/apache/storm/redis/common/mapper/RedisMapper.java
@@ -17,6 +17,13 @@
  */
 package org.apache.storm.redis.common.mapper;
 
+/**
+ * RedisMapper is for defining data type for querying / storing from / to Redis.
+ */
 public interface RedisMapper {
-    public RedisDataTypeDescription getDataTypeDescription();
+    /**
+     * Returns descriptor which defines data type.
+     * @return data type descriptor
+     */
+    RedisDataTypeDescription getDataTypeDescription();
 }

http://git-wip-us.apache.org/repos/asf/storm/blob/8d056058/external/storm-redis/src/main/java/org/apache/storm/redis/common/mapper/RedisStoreMapper.java
----------------------------------------------------------------------
diff --git a/external/storm-redis/src/main/java/org/apache/storm/redis/common/mapper/RedisStoreMapper.java b/external/storm-redis/src/main/java/org/apache/storm/redis/common/mapper/RedisStoreMapper.java
index b3d7adf..4ab8b1f 100644
--- a/external/storm-redis/src/main/java/org/apache/storm/redis/common/mapper/RedisStoreMapper.java
+++ b/external/storm-redis/src/main/java/org/apache/storm/redis/common/mapper/RedisStoreMapper.java
@@ -17,5 +17,8 @@
  */
 package org.apache.storm.redis.common.mapper;
 
+/**
+ * RedisStoreMapper is for defining spec. which is used for storing value to Redis.
+ */
 public interface RedisStoreMapper extends TupleMapper, RedisMapper {
 }

http://git-wip-us.apache.org/repos/asf/storm/blob/8d056058/external/storm-redis/src/main/java/org/apache/storm/redis/common/mapper/TupleMapper.java
----------------------------------------------------------------------
diff --git a/external/storm-redis/src/main/java/org/apache/storm/redis/common/mapper/TupleMapper.java b/external/storm-redis/src/main/java/org/apache/storm/redis/common/mapper/TupleMapper.java
index 86664b8..bcc531e 100644
--- a/external/storm-redis/src/main/java/org/apache/storm/redis/common/mapper/TupleMapper.java
+++ b/external/storm-redis/src/main/java/org/apache/storm/redis/common/mapper/TupleMapper.java
@@ -21,7 +21,21 @@ import backtype.storm.tuple.ITuple;
 
 import java.io.Serializable;
 
+/**
+ * TupleMapper defines how to extract key and value from tuple for Redis.
+ */
 public interface TupleMapper extends Serializable {
-    public String getKeyFromTuple(ITuple tuple);
-    public String getValueFromTuple(ITuple tuple);
+    /**
+     * Extracts key from tuple.
+     * @param tuple source tuple
+     * @return key
+     */
+    String getKeyFromTuple(ITuple tuple);
+
+    /**
+     * Extracts value from tuple.
+     * @param tuple source tuple
+     * @return value
+     */
+    String getValueFromTuple(ITuple tuple);
 }

http://git-wip-us.apache.org/repos/asf/storm/blob/8d056058/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/AbstractRedisMapState.java
----------------------------------------------------------------------
diff --git a/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/AbstractRedisMapState.java b/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/AbstractRedisMapState.java
index b6fc8d7..26056d2 100644
--- a/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/AbstractRedisMapState.java
+++ b/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/AbstractRedisMapState.java
@@ -33,6 +33,18 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+/**
+ * AbstractRedisMapState is base class of any RedisMapState, which implements IBackingMap.
+ * <p/>
+ * Derived classes should provide<br/>
+ * - which Serializer it uses<br/>
+ * - which KeyFactory it uses<br/>
+ * - how to retrieve values from Redis<br/>
+ * - how to store values to Redis<br/>
+ * and AbstractRedisMapState takes care of rest things.
+ *
+ * @param <T> value's type class
+ */
 public abstract class AbstractRedisMapState<T> implements IBackingMap<T> {
 	public static final EnumMap<StateType, Serializer> DEFAULT_SERIALIZERS = Maps.newEnumMap(ImmutableMap.of(
 			StateType.NON_TRANSACTIONAL, new JSONNonTransactionalSerializer(),
@@ -40,6 +52,9 @@ public abstract class AbstractRedisMapState<T> implements IBackingMap<T> {
 			StateType.OPAQUE, new JSONOpaqueSerializer()
 	));
 
+	/**
+	 * {@inheritDoc}
+	 */
 	@Override public List<T> multiGet(List<List<Object>> keys) {
 		if (keys.size() == 0) {
 			return Collections.emptyList();
@@ -51,6 +66,9 @@ public abstract class AbstractRedisMapState<T> implements IBackingMap<T> {
 		return deserializeValues(keys, values);
 	}
 
+	/**
+	 * {@inheritDoc}
+	 */
 	@Override
 	public void multiPut(List<List<Object>> keys, List<T> vals) {
 		if (keys.size() == 0) {
@@ -89,8 +107,31 @@ public abstract class AbstractRedisMapState<T> implements IBackingMap<T> {
 		return result;
 	}
 
+	/**
+	 * Returns Serializer which is used for serializing tuple value and deserializing Redis value.
+	 *
+	 * @return serializer
+	 */
 	protected abstract Serializer getSerializer();
+
+	/**
+	 * Returns KeyFactory which is used for converting state key -> Redis key.
+	 * @return key factory
+	 */
 	protected abstract KeyFactory getKeyFactory();
+
+	/**
+	 * Retrieves values from Redis that each value is corresponding to each key.
+	 *
+	 * @param keys keys having state values
+	 * @return values which are corresponding to keys
+	 */
 	protected abstract List<String> retrieveValuesFromRedis(List<String> keys);
+
+	/**
+	 * Updates (key, value) pairs to Redis.
+	 *
+	 * @param keyValues (key, value) pairs
+	 */
 	protected abstract void updateStatesToRedis(Map<String, String> keyValues);
 }

http://git-wip-us.apache.org/repos/asf/storm/blob/8d056058/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/AbstractRedisStateQuerier.java
----------------------------------------------------------------------
diff --git a/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/AbstractRedisStateQuerier.java b/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/AbstractRedisStateQuerier.java
index 24ecfc4..5c7335d 100644
--- a/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/AbstractRedisStateQuerier.java
+++ b/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/AbstractRedisStateQuerier.java
@@ -28,11 +28,24 @@ import storm.trident.tuple.TridentTuple;
 
 import java.util.List;
 
+/**
+ * AbstractRedisStateQuerier is base class of any RedisStateQuerier, which implements BaseQueryFunction.
+ * <p/>
+ * Derived classes should provide how to retrieve values from Redis,
+ * and AbstractRedisStateQuerier takes care of rest things.
+ *
+ * @param <T> type of State
+ */
 public abstract class AbstractRedisStateQuerier<T extends State> extends BaseQueryFunction<T, List<Values>> {
 	private final RedisLookupMapper lookupMapper;
 	protected final RedisDataTypeDescription.RedisDataType dataType;
 	protected final String additionalKey;
 
+	/**
+	 * Constructor
+	 *
+	 * @param lookupMapper mapper for querying
+	 */
 	public AbstractRedisStateQuerier(RedisLookupMapper lookupMapper) {
 		this.lookupMapper = lookupMapper;
 
@@ -41,6 +54,9 @@ public abstract class AbstractRedisStateQuerier<T extends State> extends BaseQue
 		this.additionalKey = dataTypeDescription.getAdditionalKey();
 	}
 
+	/**
+	 * {@inheritDoc}
+	 */
 	@Override
 	public List<List<Values>> batchRetrieve(T state, List<TridentTuple> inputs) {
 		List<List<Values>> values = Lists.newArrayList();
@@ -58,6 +74,9 @@ public abstract class AbstractRedisStateQuerier<T extends State> extends BaseQue
 		return values;
 	}
 
+	/**
+	 * {@inheritDoc}
+	 */
 	@Override
 	public void execute(TridentTuple tuple, List<Values> values, TridentCollector collector) {
 		for (Values value : values) {
@@ -65,5 +84,12 @@ public abstract class AbstractRedisStateQuerier<T extends State> extends BaseQue
 		}
 	}
 
-	protected abstract List<String> retrieveValuesFromRedis(T redisClusterState, List<String> keys);
+	/**
+	 * Retrieves values from Redis that each value is corresponding to each key.
+	 *
+	 * @param state State for handling query
+	 * @param keys keys having state values
+	 * @return values which are corresponding to keys
+	 */
+	protected abstract List<String> retrieveValuesFromRedis(T state, List<String> keys);
 }

http://git-wip-us.apache.org/repos/asf/storm/blob/8d056058/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/AbstractRedisStateUpdater.java
----------------------------------------------------------------------
diff --git a/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/AbstractRedisStateUpdater.java b/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/AbstractRedisStateUpdater.java
index 87bb8fa..e9654c7 100644
--- a/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/AbstractRedisStateUpdater.java
+++ b/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/AbstractRedisStateUpdater.java
@@ -28,6 +28,14 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+/**
+ * AbstractRedisStateUpdater is base class of any RedisStateUpdater, which implements BaseStateUpdater.
+ * <p/>
+ * Derived classes should provide how to update (key, value) pairs to Redis,
+ * and AbstractRedisStateUpdater takes care of rest things.
+ *
+ * @param <T> type of State
+ */
 public abstract class AbstractRedisStateUpdater<T extends State> extends BaseStateUpdater<T> {
 	private final RedisStoreMapper storeMapper;
 
@@ -35,6 +43,11 @@ public abstract class AbstractRedisStateUpdater<T extends State> extends BaseSta
 	protected final RedisDataTypeDescription.RedisDataType dataType;
 	protected final String additionalKey;
 
+	/**
+	 * Constructor
+	 *
+	 * @param storeMapper mapper for storing
+	 */
 	public AbstractRedisStateUpdater(RedisStoreMapper storeMapper) {
 		this.storeMapper = storeMapper;
 		RedisDataTypeDescription dataTypeDescription = storeMapper.getDataTypeDescription();
@@ -42,6 +55,11 @@ public abstract class AbstractRedisStateUpdater<T extends State> extends BaseSta
 		this.additionalKey = dataTypeDescription.getAdditionalKey();
 	}
 
+	/**
+	 * Sets expire (time to live) if needed
+	 *
+	 * @param expireIntervalSec time to live in seconds
+	 */
 	public void setExpireInterval(int expireIntervalSec) {
 		if (expireIntervalSec > 0) {
 			this.expireIntervalSec = expireIntervalSec;
@@ -50,6 +68,9 @@ public abstract class AbstractRedisStateUpdater<T extends State> extends BaseSta
 		}
 	}
 
+	/**
+	 * {@inheritDoc}
+	 */
 	@Override
 	public void updateState(T state, List<TridentTuple> inputs,
 			TridentCollector collector) {
@@ -65,5 +86,11 @@ public abstract class AbstractRedisStateUpdater<T extends State> extends BaseSta
 		updateStatesToRedis(state, keyToValue);
 	}
 
+	/**
+	 * Updates (key, value) pairs to Redis.
+	 *
+	 * @param state State for handling query
+	 * @param keyToValue (key, value) pairs
+	 */
 	protected abstract void updateStatesToRedis(T state, Map<String, String> keyToValue);
 }

http://git-wip-us.apache.org/repos/asf/storm/blob/8d056058/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/KeyFactory.java
----------------------------------------------------------------------
diff --git a/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/KeyFactory.java b/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/KeyFactory.java
index 7acea10..4898dcc 100644
--- a/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/KeyFactory.java
+++ b/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/KeyFactory.java
@@ -20,10 +20,32 @@ package org.apache.storm.redis.trident.state;
 import java.io.Serializable;
 import java.util.List;
 
+/**
+ * KeyFactory defines conversion of state key (which could be compounded) -> Redis key.
+ */
 public interface KeyFactory extends Serializable {
+    /**
+     * Converts state key to Redis key.
+     * @param key state key
+     * @return Redis key
+     */
 	String build(List<Object> key);
 
+    /**
+     * Default Key Factory
+     */
 	class DefaultKeyFactory implements KeyFactory {
+        /**
+         * {@inheritDoc}
+         * <p/>
+         * Currently DefaultKeyFactory returns just first element of list.
+         *
+         * @param key state key
+         * @return Redis key
+         * @throws RuntimeException when key is compound key
+         * @see KeyFactory#build(List)
+         */
+        @Override
 		public String build(List<Object> key) {
 			if (key.size() != 1)
 				throw new RuntimeException("Default KeyFactory does not support compound keys");

http://git-wip-us.apache.org/repos/asf/storm/blob/8d056058/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/Options.java
----------------------------------------------------------------------
diff --git a/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/Options.java b/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/Options.java
index e1bf5fb..f4dbfaa 100644
--- a/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/Options.java
+++ b/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/Options.java
@@ -22,6 +22,12 @@ import storm.trident.state.Serializer;
 
 import java.io.Serializable;
 
+/**
+ * Options of State.<br/>
+ * It's a data structure (whole things are public) and you can access and modify all fields.
+ *
+ * @param <T> value's type class
+ */
 public class Options<T> implements Serializable {
 	private static final RedisDataTypeDescription DEFAULT_REDIS_DATATYPE = new RedisDataTypeDescription(RedisDataTypeDescription.RedisDataType.STRING);
 

http://git-wip-us.apache.org/repos/asf/storm/blob/8d056058/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/RedisClusterMapState.java
----------------------------------------------------------------------
diff --git a/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/RedisClusterMapState.java b/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/RedisClusterMapState.java
index cd871eb..cbd37c5 100644
--- a/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/RedisClusterMapState.java
+++ b/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/RedisClusterMapState.java
@@ -39,76 +39,157 @@ import storm.trident.state.map.TransactionalMap;
 import java.util.List;
 import java.util.Map;
 
+/**
+ * IBackingMap implementation for Redis Cluster environment.
+ *
+ * @param <T> value's type class
+ * @see AbstractRedisMapState
+ */
 public class RedisClusterMapState<T> extends AbstractRedisMapState<T> {
     /**
-     * OpaqueTransactional for redis-cluster.
-     * */
+     * Provides StateFactory for opaque transactional.
+     *
+     * @param jedisClusterConfig configuration for JedisCluster
+     * @return StateFactory
+     */
     public static StateFactory opaque(JedisClusterConfig jedisClusterConfig) {
         return opaque(jedisClusterConfig, new Options());
     }
 
+    /**
+     * Provides StateFactory for opaque transactional.
+     *
+     * @param jedisClusterConfig configuration for JedisCluster
+     * @param dataTypeDescription definition of data type
+     * @return StateFactory
+     */
     public static StateFactory opaque(JedisClusterConfig jedisClusterConfig, RedisDataTypeDescription dataTypeDescription) {
         Options opts = new Options();
         opts.dataTypeDescription = dataTypeDescription;
         return opaque(jedisClusterConfig, opts);
     }
 
+    /**
+     * Provides StateFactory for opaque transactional.
+     *
+     * @param jedisClusterConfig configuration for JedisCluster
+     * @param factory key factory
+     * @return StateFactory
+     */
     public static StateFactory opaque(JedisClusterConfig jedisClusterConfig, KeyFactory factory) {
         Options opts = new Options();
         opts.keyFactory = factory;
         return opaque(jedisClusterConfig, opts);
     }
 
+    /**
+     * Provides StateFactory for opaque transactional.
+     *
+     * @param jedisClusterConfig configuration for JedisCluster
+     * @param opts options of State
+     * @return StateFactory
+     */
     public static StateFactory opaque(JedisClusterConfig jedisClusterConfig, Options<OpaqueValue> opts) {
         return new Factory(jedisClusterConfig, StateType.OPAQUE, opts);
     }
 
     /**
-     * Transactional for redis-cluster.
-     * */
+     * Provides StateFactory for transactional.
+     *
+     * @param jedisClusterConfig configuration for JedisCluster
+     * @return StateFactory
+     */
     public static StateFactory transactional(JedisClusterConfig jedisClusterConfig) {
         return transactional(jedisClusterConfig, new Options());
     }
 
+    /**
+     * Provides StateFactory for transactional.
+     *
+     * @param jedisClusterConfig configuration for JedisCluster
+     * @param dataTypeDescription definition of data type
+     * @return StateFactory
+     */
     public static StateFactory transactional(JedisClusterConfig jedisClusterConfig, RedisDataTypeDescription dataTypeDescription) {
         Options opts = new Options();
         opts.dataTypeDescription = dataTypeDescription;
         return transactional(jedisClusterConfig, opts);
     }
 
+    /**
+     * Provides StateFactory for transactional.
+     *
+     * @param jedisClusterConfig configuration for JedisCluster
+     * @param factory key factory
+     * @return StateFactory
+     */
     public static StateFactory transactional(JedisClusterConfig jedisClusterConfig, KeyFactory factory) {
         Options opts = new Options();
         opts.keyFactory = factory;
         return transactional(jedisClusterConfig, opts);
     }
 
+    /**
+     * Provides StateFactory for transactional.
+     *
+     * @param jedisClusterConfig configuration for JedisCluster
+     * @param opts options of State
+     * @return StateFactory
+     */
     public static StateFactory transactional(JedisClusterConfig jedisClusterConfig, Options<TransactionalValue> opts) {
         return new Factory(jedisClusterConfig, StateType.TRANSACTIONAL, opts);
     }
 
     /**
-     * NonTransactional for redis-cluster.
-     * */
+     * Provides StateFactory for non transactional.
+     *
+     * @param jedisClusterConfig configuration for JedisCluster
+     * @return StateFactory
+     */
     public static StateFactory nonTransactional(JedisClusterConfig jedisClusterConfig) {
         return nonTransactional(jedisClusterConfig, new Options());
     }
 
+    /**
+     * Provides StateFactory for non transactional.
+     *
+     * @param jedisClusterConfig configuration for JedisCluster
+     * @param dataTypeDescription definition of data type
+     * @return StateFactory
+     */
     public static StateFactory nonTransactional(JedisClusterConfig jedisClusterConfig, RedisDataTypeDescription dataTypeDescription) {
         Options opts = new Options();
         opts.dataTypeDescription = dataTypeDescription;
         return nonTransactional(jedisClusterConfig, opts);
     }
 
+    /**
+     * Provides StateFactory for non transactional.
+     *
+     * @param jedisClusterConfig configuration for JedisCluster
+     * @param factory key factory
+     * @return StateFactory
+     */
     public static StateFactory nonTransactional(JedisClusterConfig jedisClusterConfig, KeyFactory factory) {
         Options opts = new Options();
         opts.keyFactory = factory;
         return nonTransactional(jedisClusterConfig, opts);
     }
 
+    /**
+     * Provides StateFactory for non transactional.
+     *
+     * @param jedisClusterConfig configuration for JedisCluster
+     * @param opts options of State
+     * @return StateFactory
+     */
     public static StateFactory nonTransactional(JedisClusterConfig jedisClusterConfig, Options<Object> opts) {
         return new Factory(jedisClusterConfig, StateType.NON_TRANSACTIONAL, opts);
     }
 
+    /**
+     * RedisClusterMapState.Factory provides Redis Cluster environment version of StateFactory.
+     */
     protected static class Factory implements StateFactory {
         public static final redis.clients.jedis.JedisPoolConfig DEFAULT_POOL_CONFIG = new redis.clients.jedis.JedisPoolConfig();
 
@@ -119,6 +200,13 @@ public class RedisClusterMapState<T> extends AbstractRedisMapState<T> {
         KeyFactory keyFactory;
         Options options;
 
+        /**
+         * Constructor
+         *
+         * @param jedisClusterConfig configuration for JedisCluster
+         * @param type StateType
+         * @param options options of State
+         */
         public Factory(JedisClusterConfig jedisClusterConfig, StateType type, Options options) {
             this.jedisClusterConfig = jedisClusterConfig;
             this.type = type;
@@ -137,6 +225,10 @@ public class RedisClusterMapState<T> extends AbstractRedisMapState<T> {
             }
         }
 
+        /**
+         * {@inheritDoc}
+         */
+        @Override
         public State makeState(@SuppressWarnings("rawtypes") Map conf, IMetricsContext metrics, int partitionIndex, int numPartitions) {
             JedisCluster jedisCluster = new JedisCluster(jedisClusterConfig.getNodes(),
                                                             jedisClusterConfig.getTimeout(),
@@ -169,6 +261,14 @@ public class RedisClusterMapState<T> extends AbstractRedisMapState<T> {
     private Serializer serializer;
     private KeyFactory keyFactory;
 
+    /**
+     * Constructor
+     *
+     * @param jedisCluster JedisCluster
+     * @param options options of State
+     * @param serializer Serializer
+     * @param keyFactory KeyFactory
+     */
     public RedisClusterMapState(JedisCluster jedisCluster, Options options,
                                 Serializer<T> serializer, KeyFactory keyFactory) {
         this.jedisCluster = jedisCluster;
@@ -177,16 +277,25 @@ public class RedisClusterMapState<T> extends AbstractRedisMapState<T> {
         this.keyFactory = keyFactory;
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     protected Serializer getSerializer() {
         return serializer;
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     protected KeyFactory getKeyFactory() {
         return keyFactory;
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     protected List<String> retrieveValuesFromRedis(List<String> keys) {
         String[] stringKeys = keys.toArray(new String[keys.size()]);
@@ -210,6 +319,9 @@ public class RedisClusterMapState<T> extends AbstractRedisMapState<T> {
         }
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     protected void updateStatesToRedis(Map<String, String> keyValues) {
         RedisDataTypeDescription description = this.options.dataTypeDescription;

http://git-wip-us.apache.org/repos/asf/storm/blob/8d056058/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/RedisClusterState.java
----------------------------------------------------------------------
diff --git a/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/RedisClusterState.java b/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/RedisClusterState.java
index d74e838..764436d 100644
--- a/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/RedisClusterState.java
+++ b/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/RedisClusterState.java
@@ -27,26 +27,47 @@ import storm.trident.state.StateFactory;
 
 import java.util.Map;
 
+/**
+ * Implementation of State for Redis Cluster environment.
+ */
 public class RedisClusterState implements State {
-    private static final Logger logger = LoggerFactory.getLogger(RedisClusterState.class);
-
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public void beginCommit(Long aLong) {
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public void commit(Long aLong) {
     }
 
+    /**
+     * RedisClusterState.Factory implements StateFactory for Redis Cluster environment.
+     *
+     * @see StateFactory
+     */
     public static class Factory implements StateFactory {
         public static final redis.clients.jedis.JedisPoolConfig DEFAULT_POOL_CONFIG = new redis.clients.jedis.JedisPoolConfig();
 
         private JedisClusterConfig jedisClusterConfig;
 
+        /**
+         * Constructor
+         *
+         * @param config configuration of JedisCluster
+         */
         public Factory(JedisClusterConfig config) {
             this.jedisClusterConfig = config;
         }
 
+        /**
+         * {@inheritDoc}
+         */
+        @Override
         public State makeState(@SuppressWarnings("rawtypes") Map conf, IMetricsContext metrics, int partitionIndex, int numPartitions) {
             JedisCluster jedisCluster = new JedisCluster(jedisClusterConfig.getNodes(),
                                                     jedisClusterConfig.getTimeout(),
@@ -59,20 +80,31 @@ public class RedisClusterState implements State {
 
     private JedisCluster jedisCluster;
 
+    /**
+     * Constructor
+     *
+     * @param jedisCluster JedisCluster
+     */
     public RedisClusterState(JedisCluster jedisCluster) {
         this.jedisCluster = jedisCluster;
     }
 
     /**
-     * The state updater and querier can get a JedisCluster instance
-     * */
+     * Borrows JedisCluster instance.
+     * <p/>
+     * Note that you should return borrowed instance when you finish using instance.
+     *
+     * @return JedisCluster instance
+     */
     public JedisCluster getJedisCluster() {
         return this.jedisCluster;
     }
 
     /**
-     * The state updater and querier return the JedisCluster instance
-     * */
+     * Returns JedisCluster instance to pool.
+     *
+     * @param jedisCluster JedisCluster instance to return to pool
+     */
     public void returnJedisCluster(JedisCluster jedisCluster) {
         //do nothing
     }

http://git-wip-us.apache.org/repos/asf/storm/blob/8d056058/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/RedisClusterStateQuerier.java
----------------------------------------------------------------------
diff --git a/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/RedisClusterStateQuerier.java b/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/RedisClusterStateQuerier.java
index 66ff3f6..b692bd8 100644
--- a/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/RedisClusterStateQuerier.java
+++ b/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/RedisClusterStateQuerier.java
@@ -23,16 +23,29 @@ import redis.clients.jedis.JedisCluster;
 import java.util.ArrayList;
 import java.util.List;
 
+/**
+ * BaseQueryFunction implementation for Redis Cluster environment.
+ *
+ * @see AbstractRedisStateQuerier
+ */
 public class RedisClusterStateQuerier extends AbstractRedisStateQuerier<RedisClusterState> {
+    /**
+     * Constructor
+     *
+     * @param lookupMapper mapper for querying
+     */
     public RedisClusterStateQuerier(RedisLookupMapper lookupMapper) {
         super(lookupMapper);
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
-    protected List<String> retrieveValuesFromRedis(RedisClusterState redisClusterState, List<String> keys) {
+    protected List<String> retrieveValuesFromRedis(RedisClusterState state, List<String> keys) {
         JedisCluster jedisCluster = null;
         try {
-            jedisCluster = redisClusterState.getJedisCluster();
+            jedisCluster = state.getJedisCluster();
             List<String> redisVals = new ArrayList<String>();
 
             for (String key : keys) {
@@ -51,7 +64,7 @@ public class RedisClusterStateQuerier extends AbstractRedisStateQuerier<RedisClu
             return redisVals;
         } finally {
             if (jedisCluster != null) {
-                redisClusterState.returnJedisCluster(jedisCluster);
+                state.returnJedisCluster(jedisCluster);
             }
         }
     }

http://git-wip-us.apache.org/repos/asf/storm/blob/8d056058/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/RedisClusterStateUpdater.java
----------------------------------------------------------------------
diff --git a/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/RedisClusterStateUpdater.java b/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/RedisClusterStateUpdater.java
index 17c5bfc..1cc0725 100644
--- a/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/RedisClusterStateUpdater.java
+++ b/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/RedisClusterStateUpdater.java
@@ -23,16 +23,35 @@ import redis.clients.jedis.JedisCluster;
 
 import java.util.Map;
 
+/**
+ * BaseStateUpdater implementation for Redis Cluster environment.
+ *
+ * @see AbstractRedisStateUpdater
+ */
 public class RedisClusterStateUpdater extends AbstractRedisStateUpdater<RedisClusterState> {
+    /**
+     * Constructor
+     *
+     * @param storeMapper mapper for storing
+     */
     public RedisClusterStateUpdater(RedisStoreMapper storeMapper) {
         super(storeMapper);
     }
 
+    /**
+     * Sets expire (time to live) if needed.
+     *
+     * @param expireIntervalSec time to live in seconds
+     * @return RedisClusterStateUpdater itself
+     */
     public RedisClusterStateUpdater withExpire(int expireIntervalSec) {
         setExpireInterval(expireIntervalSec);
         return this;
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     protected void updateStatesToRedis(RedisClusterState redisClusterState, Map<String, String> keyToValue) {
         JedisCluster jedisCluster = null;

http://git-wip-us.apache.org/repos/asf/storm/blob/8d056058/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/RedisMapState.java
----------------------------------------------------------------------
diff --git a/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/RedisMapState.java b/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/RedisMapState.java
index f0ab941..25e9924 100644
--- a/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/RedisMapState.java
+++ b/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/RedisMapState.java
@@ -40,76 +40,157 @@ import storm.trident.state.map.TransactionalMap;
 import java.util.List;
 import java.util.Map;
 
+/**
+ * IBackingMap implementation for single Redis environment.
+ *
+ * @param <T> value's type class
+ * @see AbstractRedisMapState
+ */
 public class RedisMapState<T> extends AbstractRedisMapState<T> {
     /**
-     * OpaqueTransactional for redis.
-     * */
+     * Provides StateFactory for opaque transactional.
+     *
+     * @param jedisPoolConfig configuration for JedisPool
+     * @return StateFactory
+     */
     public static StateFactory opaque(JedisPoolConfig jedisPoolConfig) {
         return opaque(jedisPoolConfig, new Options());
     }
 
+    /**
+     * Provides StateFactory for opaque transactional.
+     *
+     * @param jedisPoolConfig configuration for JedisPool
+     * @param dataTypeDescription definition of data type
+     * @return StateFactory
+     */
     public static StateFactory opaque(JedisPoolConfig jedisPoolConfig, RedisDataTypeDescription dataTypeDescription) {
         Options opts = new Options();
         opts.dataTypeDescription = dataTypeDescription;
         return opaque(jedisPoolConfig, opts);
     }
 
-    public static StateFactory opaque(JedisPoolConfig jedisPoolConfig,  KeyFactory factory) {
+    /**
+     * Provides StateFactory for opaque transactional.
+     *
+     * @param jedisPoolConfig configuration for JedisPool
+     * @param factory key factory
+     * @return StateFactory
+     */
+    public static StateFactory opaque(JedisPoolConfig jedisPoolConfig, KeyFactory factory) {
         Options opts = new Options();
         opts.keyFactory = factory;
         return opaque(jedisPoolConfig, opts);
     }
 
+    /**
+     * Provides StateFactory for opaque transactional.
+     *
+     * @param jedisPoolConfig configuration for JedisPool
+     * @param opts options of State
+     * @return StateFactory
+     */
     public static StateFactory opaque(JedisPoolConfig jedisPoolConfig, Options<OpaqueValue> opts) {
         return new Factory(jedisPoolConfig, StateType.OPAQUE, opts);
     }
 
     /**
-     * Transactional for redis.
-     * */
+     * Provides StateFactory for transactional.
+     *
+     * @param jedisPoolConfig configuration for JedisPool
+     * @return StateFactory
+     */
     public static StateFactory transactional(JedisPoolConfig jedisPoolConfig) {
         return transactional(jedisPoolConfig, new Options());
     }
 
+    /**
+     * Provides StateFactory for transactional.
+     *
+     * @param jedisPoolConfig configuration for JedisPool
+     * @param dataTypeDescription definition of data type
+     * @return StateFactory
+     */
     public static StateFactory transactional(JedisPoolConfig jedisPoolConfig, RedisDataTypeDescription dataTypeDescription) {
         Options opts = new Options();
         opts.dataTypeDescription = dataTypeDescription;
         return transactional(jedisPoolConfig, opts);
     }
 
+    /**
+     * Provides StateFactory for transactional.
+     *
+     * @param jedisPoolConfig configuration for JedisPool
+     * @param factory key factory
+     * @return StateFactory
+     */
     public static StateFactory transactional(JedisPoolConfig jedisPoolConfig, KeyFactory factory) {
         Options opts = new Options();
         opts.keyFactory = factory;
         return transactional(jedisPoolConfig, opts);
     }
 
+    /**
+     * Provides StateFactory for transactional.
+     *
+     * @param jedisPoolConfig configuration for JedisPool
+     * @param opts options of State
+     * @return StateFactory
+     */
     public static StateFactory transactional(JedisPoolConfig jedisPoolConfig, Options<TransactionalValue> opts) {
         return new Factory(jedisPoolConfig, StateType.TRANSACTIONAL, opts);
     }
 
     /**
-     * NonTransactional for redis.
-     * */
+     * Provides StateFactory for non transactional.
+     *
+     * @param jedisPoolConfig configuration for JedisPool
+     * @return StateFactory
+     */
     public static StateFactory nonTransactional(JedisPoolConfig jedisPoolConfig) {
         return nonTransactional(jedisPoolConfig, new Options());
     }
 
+    /**
+     * Provides StateFactory for non transactional.
+     *
+     * @param jedisPoolConfig configuration for JedisPool
+     * @param dataTypeDescription definition of data type
+     * @return StateFactory
+     */
     public static StateFactory nonTransactional(JedisPoolConfig jedisPoolConfig, RedisDataTypeDescription dataTypeDescription) {
         Options opts = new Options();
         opts.dataTypeDescription = dataTypeDescription;
         return nonTransactional(jedisPoolConfig, opts);
     }
 
+    /**
+     * Provides StateFactory for non transactional.
+     *
+     * @param jedisPoolConfig configuration for JedisPool
+     * @param factory key factory
+     * @return StateFactory
+     */
     public static StateFactory nonTransactional(JedisPoolConfig jedisPoolConfig, KeyFactory factory) {
         Options opts = new Options();
         opts.keyFactory = factory;
         return nonTransactional(jedisPoolConfig, opts);
     }
 
+    /**
+     * Provides StateFactory for non transactional.
+     *
+     * @param jedisPoolConfig configuration for JedisPool
+     * @param opts options of State
+     * @return StateFactory
+     */
     public static StateFactory nonTransactional(JedisPoolConfig jedisPoolConfig, Options<Object> opts) {
         return new Factory(jedisPoolConfig, StateType.NON_TRANSACTIONAL, opts);
     }
 
+    /**
+     * RedisMapState.Factory provides single Redis environment version of StateFactory.
+     */
     protected static class Factory implements StateFactory {
         public static final redis.clients.jedis.JedisPoolConfig DEFAULT_POOL_CONFIG = new redis.clients.jedis.JedisPoolConfig();
 
@@ -120,6 +201,13 @@ public class RedisMapState<T> extends AbstractRedisMapState<T> {
         KeyFactory keyFactory;
         Options options;
 
+        /**
+         * Constructor
+         *
+         * @param jedisPoolConfig configuration for JedisPool
+         * @param type StateType
+         * @param options options of State
+         */
         public Factory(JedisPoolConfig jedisPoolConfig, StateType type, Options options) {
             this.jedisPoolConfig = jedisPoolConfig;
             this.type = type;
@@ -138,6 +226,10 @@ public class RedisMapState<T> extends AbstractRedisMapState<T> {
             }
         }
 
+        /**
+         * {@inheritDoc}
+         */
+        @Override
         public State makeState(@SuppressWarnings("rawtypes") Map conf, IMetricsContext metrics, int partitionIndex, int numPartitions) {
             JedisPool jedisPool = new JedisPool(DEFAULT_POOL_CONFIG,
                                                     jedisPoolConfig.getHost(),
@@ -171,6 +263,14 @@ public class RedisMapState<T> extends AbstractRedisMapState<T> {
     private Serializer serializer;
     private KeyFactory keyFactory;
 
+    /**
+     * Constructor
+     *
+     * @param jedisPool JedisPool
+     * @param options options of State
+     * @param serializer Serializer
+     * @param keyFactory KeyFactory
+     */
     public RedisMapState(JedisPool jedisPool, Options options,
                                             Serializer<T> serializer, KeyFactory keyFactory) {
         this.jedisPool = jedisPool;
@@ -179,16 +279,25 @@ public class RedisMapState<T> extends AbstractRedisMapState<T> {
         this.keyFactory = keyFactory;
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     protected Serializer getSerializer() {
         return serializer;
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     protected KeyFactory getKeyFactory() {
         return keyFactory;
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     protected List<String> retrieveValuesFromRedis(List<String> keys) {
         String[] stringKeys = keys.toArray(new String[keys.size()]);
@@ -216,6 +325,9 @@ public class RedisMapState<T> extends AbstractRedisMapState<T> {
         }
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     protected void updateStatesToRedis(Map<String, String> keyValues) {
         Jedis jedis = null;

http://git-wip-us.apache.org/repos/asf/storm/blob/8d056058/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/RedisState.java
----------------------------------------------------------------------
diff --git a/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/RedisState.java b/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/RedisState.java
index 3441936..85d0e1b 100644
--- a/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/RedisState.java
+++ b/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/RedisState.java
@@ -28,26 +28,47 @@ import storm.trident.state.StateFactory;
 
 import java.util.Map;
 
+/**
+ * Implementation of State for single Redis environment.
+ */
 public class RedisState implements State {
-    private static final Logger logger = LoggerFactory.getLogger(RedisState.class);
-
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public void beginCommit(Long aLong) {
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public void commit(Long aLong) {
     }
 
+    /**
+     * RedisState.Factory implements StateFactory for single Redis environment.
+     *
+     * @see StateFactory
+     */
     public static class Factory implements StateFactory {
         public static final redis.clients.jedis.JedisPoolConfig DEFAULT_POOL_CONFIG = new redis.clients.jedis.JedisPoolConfig();
 
         private JedisPoolConfig jedisPoolConfig;
 
+        /**
+         * Constructor
+         *
+         * @param config configuration of JedisPool
+         */
         public Factory(JedisPoolConfig config) {
             this.jedisPoolConfig = config;
         }
 
+        /**
+         * {@inheritDoc}
+         */
+        @Override
         public State makeState(@SuppressWarnings("rawtypes") Map conf, IMetricsContext metrics, int partitionIndex, int numPartitions) {
             JedisPool jedisPool = new JedisPool(DEFAULT_POOL_CONFIG,
                                                 jedisPoolConfig.getHost(),
@@ -62,20 +83,31 @@ public class RedisState implements State {
 
     private JedisPool jedisPool;
 
+    /**
+     * Constructor
+     *
+     * @param jedisPool JedisPool
+     */
     public RedisState(JedisPool jedisPool) {
         this.jedisPool = jedisPool;
     }
 
     /**
-     * The state updater and querier can get a Jedis instance
-     * */
+     * Borrows Jedis instance from pool.
+     * <p/>
+     * Note that you should return borrowed instance to pool when you finish using instance.
+     *
+     * @return Jedis instance
+     */
     public Jedis getJedis() {
         return this.jedisPool.getResource();
     }
 
     /**
-     * The state updater and querier return the Jedis instance
-     * */
+     * Returns Jedis instance to pool.
+     *
+     * @param jedis Jedis instance to return to pool
+     */
     public void returnJedis(Jedis jedis) {
         jedis.close();
     }

http://git-wip-us.apache.org/repos/asf/storm/blob/8d056058/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/RedisStateQuerier.java
----------------------------------------------------------------------
diff --git a/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/RedisStateQuerier.java b/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/RedisStateQuerier.java
index ac102dd..f924e85 100644
--- a/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/RedisStateQuerier.java
+++ b/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/RedisStateQuerier.java
@@ -22,16 +22,29 @@ import redis.clients.jedis.Jedis;
 
 import java.util.List;
 
+/**
+ * BaseQueryFunction implementation for single Redis environment.
+ *
+ * @see AbstractRedisStateQuerier
+ */
 public class RedisStateQuerier extends AbstractRedisStateQuerier<RedisState> {
+    /**
+     * Constructor
+     *
+     * @param lookupMapper mapper for querying
+     */
     public RedisStateQuerier(RedisLookupMapper lookupMapper) {
         super(lookupMapper);
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
-    protected List<String> retrieveValuesFromRedis(RedisState redisState, List<String> keys) {
+    protected List<String> retrieveValuesFromRedis(RedisState state, List<String> keys) {
         Jedis jedis = null;
         try {
-            jedis = redisState.getJedis();
+            jedis = state.getJedis();
             List<String> redisVals;
 
             String[] keysForRedis = keys.toArray(new String[keys.size()]);
@@ -49,7 +62,7 @@ public class RedisStateQuerier extends AbstractRedisStateQuerier<RedisState> {
             return redisVals;
         } finally {
             if (jedis != null) {
-                redisState.returnJedis(jedis);
+                state.returnJedis(jedis);
             }
         }
     }

http://git-wip-us.apache.org/repos/asf/storm/blob/8d056058/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/RedisStateUpdater.java
----------------------------------------------------------------------
diff --git a/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/RedisStateUpdater.java b/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/RedisStateUpdater.java
index babcb1d..d0507cf 100644
--- a/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/RedisStateUpdater.java
+++ b/external/storm-redis/src/main/java/org/apache/storm/redis/trident/state/RedisStateUpdater.java
@@ -24,16 +24,35 @@ import redis.clients.jedis.Pipeline;
 
 import java.util.Map;
 
+/**
+ * BaseStateUpdater implementation for single Redis environment.
+ *
+ * @see AbstractRedisStateUpdater
+ */
 public class RedisStateUpdater extends AbstractRedisStateUpdater<RedisState> {
+    /**
+     * Constructor
+     *
+     * @param storeMapper mapper for storing
+     */
     public RedisStateUpdater(RedisStoreMapper storeMapper) {
         super(storeMapper);
     }
 
+    /**
+     * Sets expire (time to live) if needed.
+     *
+     * @param expireIntervalSec time to live in seconds
+     * @return RedisStateUpdater itself
+     */
     public RedisStateUpdater withExpire(int expireIntervalSec) {
         setExpireInterval(expireIntervalSec);
         return this;
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     protected void updateStatesToRedis(RedisState redisState, Map<String, String> keyToValue) {
         Jedis jedis = null;


[3/3] storm git commit: add STORM-843 to CHANGELOG

Posted by ka...@apache.org.
add STORM-843 to CHANGELOG


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

Branch: refs/heads/master
Commit: f7a8a7513503567ecd32ca82d97d69eae0e9d88b
Parents: cf923a5
Author: Jungtaek Lim <ka...@gmail.com>
Authored: Tue Jun 30 07:16:59 2015 +0900
Committer: Jungtaek Lim <ka...@gmail.com>
Committed: Tue Jun 30 07:16:59 2015 +0900

----------------------------------------------------------------------
 CHANGELOG.md | 2 ++
 1 file changed, 2 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/storm/blob/f7a8a751/CHANGELOG.md
----------------------------------------------------------------------
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 94b9ce6..fcd9259 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,8 @@
  * STORM-860: UI: while topology is transitioned to killed, "Activate" button is enabled but not functioning
  * STORM-477: Add warning for invalid JAVA_HOME
  * STORM-826: Update KafkaBolt to use the new kafka producer API
+ * STORM-843: [storm-redis] Add Javadoc to storm-redis
+
 
 ## 0.10.0-beta
  * STORM-867: fix bug with mk-ssl-connector


[2/3] storm git commit: Merge branch 'STORM-843' of github.com:HeartSaVioR/storm

Posted by ka...@apache.org.
Merge branch 'STORM-843' of github.com:HeartSaVioR/storm


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

Branch: refs/heads/master
Commit: cf923a563018f991447fd708bc694f3b6faff039
Parents: e2894f7 8d05605
Author: Jungtaek Lim <ka...@gmail.com>
Authored: Tue Jun 30 07:06:43 2015 +0900
Committer: Jungtaek Lim <ka...@gmail.com>
Committed: Tue Jun 30 07:06:43 2015 +0900

----------------------------------------------------------------------
 .../storm/redis/bolt/AbstractRedisBolt.java     |  42 +++++++
 .../storm/redis/bolt/RedisLookupBolt.java       |  23 +++-
 .../apache/storm/redis/bolt/RedisStoreBolt.java |  21 ++++
 .../redis/common/config/JedisClusterConfig.java |  55 +++++++-
 .../redis/common/config/JedisPoolConfig.java    |  66 ++++++++++
 .../common/container/JedisClusterContainer.java |  18 +++
 .../JedisCommandsContainerBuilder.java          |  15 +++
 .../JedisCommandsInstanceContainer.java         |  12 ++
 .../redis/common/container/JedisContainer.java  |  16 +++
 .../common/mapper/RedisDataTypeDescription.java |  20 +++
 .../redis/common/mapper/RedisLookupMapper.java  |   7 +-
 .../storm/redis/common/mapper/RedisMapper.java  |   9 +-
 .../redis/common/mapper/RedisStoreMapper.java   |   3 +
 .../storm/redis/common/mapper/TupleMapper.java  |  18 ++-
 .../trident/state/AbstractRedisMapState.java    |  41 ++++++
 .../state/AbstractRedisStateQuerier.java        |  28 ++++-
 .../state/AbstractRedisStateUpdater.java        |  27 ++++
 .../storm/redis/trident/state/KeyFactory.java   |  22 ++++
 .../storm/redis/trident/state/Options.java      |   6 +
 .../trident/state/RedisClusterMapState.java     | 124 +++++++++++++++++-
 .../redis/trident/state/RedisClusterState.java  |  44 ++++++-
 .../trident/state/RedisClusterStateQuerier.java |  19 ++-
 .../trident/state/RedisClusterStateUpdater.java |  19 +++
 .../redis/trident/state/RedisMapState.java      | 126 +++++++++++++++++--
 .../storm/redis/trident/state/RedisState.java   |  44 ++++++-
 .../redis/trident/state/RedisStateQuerier.java  |  19 ++-
 .../redis/trident/state/RedisStateUpdater.java  |  19 +++
 27 files changed, 822 insertions(+), 41 deletions(-)
----------------------------------------------------------------------