You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@oodt.apache.org by im...@apache.org on 2017/09/10 17:45:02 UTC

[2/2] oodt git commit: Improved java docs

Improved java docs


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

Branch: refs/heads/feature/zookeeper-config
Commit: bd86cd657516eb221759920e941b84322a8a52e6
Parents: 711b445
Author: Imesha Sudasingha <im...@gmail.com>
Authored: Wed Aug 23 19:32:48 2017 +0530
Committer: Imesha Sudasingha <im...@gmail.com>
Committed: Wed Aug 23 19:32:48 2017 +0530

----------------------------------------------------------------------
 .../org/apache/oodt/config/ConfigEventType.java |  5 ++++
 .../DistributedConfigurationManager.java        | 15 +++++++++++-
 .../DistributedConfigurationPublisher.java      | 17 ++++++++++++++
 .../oodt/config/distributed/cli/CLIAction.java  | 24 ++++++++++++++++++++
 .../config/distributed/cli/ConfigPublisher.java |  8 +++++++
 .../config/distributed/utils/ConfigUtils.java   |  5 ++++
 .../config/distributed/utils/CuratorUtils.java  | 19 ++++++++++------
 .../AbstractDistributedConfigurationTest.java   |  7 ++++++
 8 files changed, 92 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/oodt/blob/bd86cd65/config/src/main/java/org/apache/oodt/config/ConfigEventType.java
----------------------------------------------------------------------
diff --git a/config/src/main/java/org/apache/oodt/config/ConfigEventType.java b/config/src/main/java/org/apache/oodt/config/ConfigEventType.java
index 8a465b0..15c68b2 100644
--- a/config/src/main/java/org/apache/oodt/config/ConfigEventType.java
+++ b/config/src/main/java/org/apache/oodt/config/ConfigEventType.java
@@ -17,6 +17,11 @@
 
 package org.apache.oodt.config;
 
+/**
+ * An enum class to represent distributed configuration management related events.
+ *
+ * @author Imesha Sudasingha
+ */
 public enum ConfigEventType {
     PUBLISH("publish"),
     CLEAR("clear");

http://git-wip-us.apache.org/repos/asf/oodt/blob/bd86cd65/config/src/main/java/org/apache/oodt/config/distributed/DistributedConfigurationManager.java
----------------------------------------------------------------------
diff --git a/config/src/main/java/org/apache/oodt/config/distributed/DistributedConfigurationManager.java b/config/src/main/java/org/apache/oodt/config/distributed/DistributedConfigurationManager.java
index 6dfb24b..fe36a02 100644
--- a/config/src/main/java/org/apache/oodt/config/distributed/DistributedConfigurationManager.java
+++ b/config/src/main/java/org/apache/oodt/config/distributed/DistributedConfigurationManager.java
@@ -47,6 +47,8 @@ import static org.apache.oodt.config.distributed.utils.ConfigUtils.getOODTProjec
 /**
  * Distributed configuration manager implementation. This class make use of a {@link CuratorFramework} instance to
  * connect to zookeeper.
+ * <p>
+ * This class can download configuration from zookeeper and clear configuration locally downloaded.
  *
  * @author Imesha Sudasingha.
  */
@@ -63,6 +65,7 @@ public class DistributedConfigurationManager extends ConfigurationManager {
 
     /** {@link NodeCache} to watch for configuration change notifications */
     private NodeCache nodeCache;
+    /** This is the listener which is going to be notified on the configuration changes happening in zookeeper */
     private NodeCacheListener nodeCacheListener = new NodeCacheListener() {
         @Override
         public void nodeChanged() throws Exception {
@@ -150,6 +153,12 @@ public class DistributedConfigurationManager extends ConfigurationManager {
         logger.info("NodeCache for watching configuration changes started successfully");
     }
 
+    /**
+     * {@inheritDoc}
+     * <p>
+     * Since distributed configuration management treats properties files and configuration files in two different ways,
+     * they are loaded in different manners.
+     */
     @Override
     public synchronized void loadConfiguration() throws Exception {
         logger.debug("Loading properties for : {}", component);
@@ -225,7 +234,11 @@ public class DistributedConfigurationManager extends ConfigurationManager {
         savedFiles.add(localFilePath);
     }
 
-    /** {@inheritDoc} */
+    /**
+     * {@inheritDoc}
+     * <p>
+     * This method will additionally delete all the files downloaded earlier from zookeeper.
+     */
     @Override
     public synchronized void clearConfiguration() {
         for (String path : savedFiles) {

http://git-wip-us.apache.org/repos/asf/oodt/blob/bd86cd65/config/src/main/java/org/apache/oodt/config/distributed/DistributedConfigurationPublisher.java
----------------------------------------------------------------------
diff --git a/config/src/main/java/org/apache/oodt/config/distributed/DistributedConfigurationPublisher.java b/config/src/main/java/org/apache/oodt/config/distributed/DistributedConfigurationPublisher.java
index 9d3dd4a..23ff71d 100644
--- a/config/src/main/java/org/apache/oodt/config/distributed/DistributedConfigurationPublisher.java
+++ b/config/src/main/java/org/apache/oodt/config/distributed/DistributedConfigurationPublisher.java
@@ -186,6 +186,13 @@ public class DistributedConfigurationPublisher {
         client.setData().forPath(zNodePaths.getNotificationsZNodePath(), type.toString().getBytes());
     }
 
+    /**
+     * Publishes configuration from local files to zookeeper.
+     *
+     * @param fileMapping  source file to ZNode path mappings
+     * @param isProperties if true, files will be stored under {@link ZNodePaths#propertiesZNodePath}
+     * @throws Exception
+     */
     private void publishConfiguration(Map<String, String> fileMapping, boolean isProperties) throws Exception {
         for (Map.Entry<String, String> entry : fileMapping.entrySet()) {
             String filePath = entry.getKey();
@@ -220,6 +227,16 @@ public class DistributedConfigurationPublisher {
         }
     }
 
+    /**
+     * Verifies whether the content in local files given by keys of the <pre>fileMapping</pre> are identical to the
+     * configuration stored in zookeeper under ZNode paths given by <pre>${prefix}/{fileMapping.value}</pre>
+     *
+     * @param fileMapping  src file to znode path mappings
+     * @param isProperties if true, treated as properties files and will look under {@link
+     *                     ZNodePaths#propertiesZNodePath}
+     * @return true, if all the configuration verification was successful and no error was detected.
+     * @throws Exception
+     */
     private boolean verifyPublishedConfiguration(Map<String, String> fileMapping, boolean isProperties) throws Exception {
         boolean noError = true;
         for (Map.Entry<String, String> entry : fileMapping.entrySet()) {

http://git-wip-us.apache.org/repos/asf/oodt/blob/bd86cd65/config/src/main/java/org/apache/oodt/config/distributed/cli/CLIAction.java
----------------------------------------------------------------------
diff --git a/config/src/main/java/org/apache/oodt/config/distributed/cli/CLIAction.java b/config/src/main/java/org/apache/oodt/config/distributed/cli/CLIAction.java
index 50e567a..38b1775 100644
--- a/config/src/main/java/org/apache/oodt/config/distributed/cli/CLIAction.java
+++ b/config/src/main/java/org/apache/oodt/config/distributed/cli/CLIAction.java
@@ -33,6 +33,7 @@ import static org.apache.oodt.config.Constants.Properties.ZK_CONNECT_STRING;
 /**
  * {@link CmdLineAction} specifying the verify, publish and clear tasks of distributed configuration management.
  *
+ * @see ConfigPublisher
  * @author Imesha Sudasingha
  */
 public class CLIAction extends CmdLineAction {
@@ -83,6 +84,13 @@ public class CLIAction extends CmdLineAction {
         System.out.println("Exiting CLI ...");
     }
 
+    /**
+     * Publishes configuration files (which are stored locally at the moment) specified in {@link #configFile} to
+     * zookeeper.
+     *
+     * @param publisher {@link DistributedConfigurationPublisher} instance
+     * @throws Exception
+     */
     private void publish(DistributedConfigurationPublisher publisher) throws Exception {
         System.out.println();
         System.out.println(String.format("Publishing configuration for : %s", publisher.getComponent()));
@@ -91,6 +99,14 @@ public class CLIAction extends CmdLineAction {
         System.out.println();
     }
 
+    /**
+     * Verifies whether the content in the local files (which were published to zookeeper) are identical to the content
+     * that has actually been published. The file mapping is obtained from {@link #configFile}. Will print error
+     * messages accordingly if the verification fails.
+     *
+     * @param publisher {@link DistributedConfigurationPublisher} instance
+     * @throws Exception
+     */
     private void verify(DistributedConfigurationPublisher publisher) throws Exception {
         System.out.println();
         System.out.println(String.format("Verifying configuration for : %s", publisher.getComponent()));
@@ -103,6 +119,14 @@ public class CLIAction extends CmdLineAction {
         System.out.println();
     }
 
+    /**
+     * Clears all configuration published to zookeeper This will simply delete {@link
+     * org.apache.oodt.config.distributed.ZNodePaths#configurationZNodePath} and {@link
+     * org.apache.oodt.config.distributed.ZNodePaths#propertiesZNodePath} along with its children from zookeeper.
+     *
+     * @param publisher {@link DistributedConfigurationPublisher} instance
+     * @throws Exception
+     */
     private void clear(DistributedConfigurationPublisher publisher) throws Exception {
         System.out.println();
         System.out.println(String.format("Clearing configuration for : %s", publisher.getComponent()));

http://git-wip-us.apache.org/repos/asf/oodt/blob/bd86cd65/config/src/main/java/org/apache/oodt/config/distributed/cli/ConfigPublisher.java
----------------------------------------------------------------------
diff --git a/config/src/main/java/org/apache/oodt/config/distributed/cli/ConfigPublisher.java b/config/src/main/java/org/apache/oodt/config/distributed/cli/ConfigPublisher.java
index f4c45a7..f6f89cf 100644
--- a/config/src/main/java/org/apache/oodt/config/distributed/cli/ConfigPublisher.java
+++ b/config/src/main/java/org/apache/oodt/config/distributed/cli/ConfigPublisher.java
@@ -23,6 +23,14 @@ import org.slf4j.LoggerFactory;
 
 /**
  * Class with main method which gets invoked by the CLI.
+ * <p>
+ * Basic usage:
+ * <pre>
+ *     ./config-publisher -connectString localhost:2181 </> -a {publish|verify|clear}
+ * </pre>
+ * <p>
+ * Optionally, users can give <pre>-notify</pre> option to notify the listening OODT components on the configuration
+ * change.
  *
  * @author Imesha Sudasingha
  */

http://git-wip-us.apache.org/repos/asf/oodt/blob/bd86cd65/config/src/main/java/org/apache/oodt/config/distributed/utils/ConfigUtils.java
----------------------------------------------------------------------
diff --git a/config/src/main/java/org/apache/oodt/config/distributed/utils/ConfigUtils.java b/config/src/main/java/org/apache/oodt/config/distributed/utils/ConfigUtils.java
index 6e4d677..bbb24b0 100644
--- a/config/src/main/java/org/apache/oodt/config/distributed/utils/ConfigUtils.java
+++ b/config/src/main/java/org/apache/oodt/config/distributed/utils/ConfigUtils.java
@@ -27,6 +27,11 @@ import org.slf4j.LoggerFactory;
 import static org.apache.oodt.config.Constants.Properties.OODT_PROJECT;
 import static org.apache.oodt.config.Constants.SEPARATOR;
 
+/**
+ * A utility class to be used for configuration related tasks.
+ *
+ * @author Imesha Sudasingha
+ */
 public class ConfigUtils {
 
     private static final Logger logger = LoggerFactory.getLogger(ConfigUtils.class);

http://git-wip-us.apache.org/repos/asf/oodt/blob/bd86cd65/config/src/main/java/org/apache/oodt/config/distributed/utils/CuratorUtils.java
----------------------------------------------------------------------
diff --git a/config/src/main/java/org/apache/oodt/config/distributed/utils/CuratorUtils.java b/config/src/main/java/org/apache/oodt/config/distributed/utils/CuratorUtils.java
index c559f55..57aefff 100644
--- a/config/src/main/java/org/apache/oodt/config/distributed/utils/CuratorUtils.java
+++ b/config/src/main/java/org/apache/oodt/config/distributed/utils/CuratorUtils.java
@@ -38,6 +38,11 @@ import static org.apache.oodt.config.Constants.Properties.ZK_PROPERTIES_FILE;
 import static org.apache.oodt.config.Constants.ZPaths.NAMESPACE;
 import static org.apache.oodt.config.Constants.ZPaths.SEPARATOR;
 
+/**
+ * A set of utility methods to be used to do complex operations on zookeeper using {@link CuratorFramework}
+ *
+ * @author Imesha Sudasingha
+ */
 public class CuratorUtils {
 
     private static final Logger logger = LoggerFactory.getLogger(CuratorUtils.class);
@@ -88,8 +93,8 @@ public class CuratorUtils {
     }
 
     /**
-     * Builds a {@link CuratorFramework} instance with given connect string. Will use the {@link CuratorUtils#logger} for
-     * logging.
+     * Builds a {@link CuratorFramework} instance with given connect string. Will use the {@link CuratorUtils#logger}
+     * for logging.
      *
      * @param connectString zookeeper connect string
      * @return CuratorFramework instance created
@@ -112,11 +117,11 @@ public class CuratorUtils {
         int maxRetryCount = Integer.parseInt(System.getProperty(Constants.Properties.ZK_CONNECTION_TIMEOUT, "3"));
 
         CuratorFrameworkFactory.Builder builder = CuratorFrameworkFactory.builder()
-                                                          .namespace(NAMESPACE)
-                                                          .connectString(connectString)
-                                                          .retryPolicy(new ExponentialBackoffRetry(retryInitialWaitMs, maxRetryCount))
-                                                          .connectionTimeoutMs(connectionTimeoutMs)
-                                                          .sessionTimeoutMs(sessionTimeoutMs);
+                .namespace(NAMESPACE)
+                .connectString(connectString)
+                .retryPolicy(new ExponentialBackoffRetry(retryInitialWaitMs, maxRetryCount))
+                .connectionTimeoutMs(connectionTimeoutMs)
+                .sessionTimeoutMs(sessionTimeoutMs);
 
         /*
          * If authorization information is available, those will be added to the client. NOTE: These auth info are

http://git-wip-us.apache.org/repos/asf/oodt/blob/bd86cd65/config/src/main/java/org/apache/oodt/config/test/AbstractDistributedConfigurationTest.java
----------------------------------------------------------------------
diff --git a/config/src/main/java/org/apache/oodt/config/test/AbstractDistributedConfigurationTest.java b/config/src/main/java/org/apache/oodt/config/test/AbstractDistributedConfigurationTest.java
index f8d421e..707be01 100644
--- a/config/src/main/java/org/apache/oodt/config/test/AbstractDistributedConfigurationTest.java
+++ b/config/src/main/java/org/apache/oodt/config/test/AbstractDistributedConfigurationTest.java
@@ -25,6 +25,13 @@ import org.junit.BeforeClass;
 
 import static org.apache.oodt.config.Constants.Properties.ZK_CONNECT_STRING;
 
+/**
+ * An abstract class to be used for distributed configuration management related tests. Any test related to any OODT
+ * component can extend this class and connect to the {@link #zookeeper} instance started by this class for further
+ * steps.
+ *
+ * @author Imesha Sudasingha
+ */
 public abstract class AbstractDistributedConfigurationTest {
 
     protected static TestingServer zookeeper;