Repository: curator
Updated Branches:
  refs/heads/CURATOR-397 0917e314b -> 69f1829d0


added some doc


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

Branch: refs/heads/CURATOR-397
Commit: 69f1829d0f63badb0e16ff0bd4d53f3c4a8df541
Parents: 0917e31
Author: randgalt <[email protected]>
Authored: Tue May 2 22:01:29 2017 -0500
Committer: randgalt <[email protected]>
Committed: Tue May 2 22:01:29 2017 -0500

----------------------------------------------------------------------
 .../src/main/java/pubsub/Publisher.java         | 66 +++++++++++++++-----
 .../src/main/java/pubsub/Subscriber.java        | 30 ++++++++-
 .../src/main/java/pubsub/builders/Clients.java  | 21 +++++--
 .../main/java/pubsub/builders/ModelSpecs.java   | 23 ++++---
 .../src/main/java/pubsub/builders/Paths.java    |  9 +++
 5 files changed, 117 insertions(+), 32 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/curator/blob/69f1829d/curator-examples/src/main/java/pubsub/Publisher.java
----------------------------------------------------------------------
diff --git a/curator-examples/src/main/java/pubsub/Publisher.java 
b/curator-examples/src/main/java/pubsub/Publisher.java
index 53fad3e..8854b35 100644
--- a/curator-examples/src/main/java/pubsub/Publisher.java
+++ b/curator-examples/src/main/java/pubsub/Publisher.java
@@ -28,23 +28,33 @@ public class Publisher
         this.client = Objects.requireNonNull(client, "client cannot be null");
     }
 
+    /**
+     * Publish the given instance using the Instance client template
+     *
+     * @param instance instance to publish
+     */
     public void publishInstance(Instance instance)
     {
         ModeledFramework<Instance> resolvedClient = instanceClient
-            .resolved(client, instance.getType())
-            .resolved(instance);
+            .resolved(client, instance.getType())   // this resolves to the 
parent path
+            .resolved(instance);                    // this resolves to a 
child node - uses the Instance's id because Instance extends NodeName
         resolvedClient.set(instance).exceptionally(e -> {
             log.error("Could not publish instance: " + instance, e);
             return null;
         });
     }
 
+    /**
+     * Publish the given instances using the Instance client template in a 
transaction
+     *
+     * @param instances instances to publish
+     */
     public void publishInstances(List<Instance> instances)
     {
         List<CuratorOp> operations = instances.stream()
             .map(instance -> instanceClient
-                .resolved(client, instance.getType())
-                .resolved(instance)
+                .resolved(client, instance.getType())   // this resolves to 
the parent path
+                .resolved(instance)                     // this resolves to a 
child node - uses the Instance's id because Instance extends NodeName
                 .createOp(instance)
             )
             .collect(Collectors.toList());
@@ -54,27 +64,51 @@ public class Publisher
         });
     }
 
-    public void publishLocationAvailable(Group group, LocationAvailable 
message)
+    /**
+     * Publish the given LocationAvailable using the LocationAvailable client 
template
+     *
+     * @param group group
+     * @param locationAvailable message to publish
+     */
+    public void publishLocationAvailable(Group group, LocationAvailable 
locationAvailable)
     {
-        publishMessage(locationAvailableClient, group, message);
+        publishMessage(locationAvailableClient, group, locationAvailable);
     }
 
-    public void publishUserCreated(Group group, UserCreated message)
+    /**
+     * Publish the given UserCreated using the UserCreated client template
+     *
+     * @param group group
+     * @param userCreated message to publish
+     */
+    public void publishUserCreated(Group group, UserCreated userCreated)
     {
-        publishMessage(userCreatedClient, group, message);
+        publishMessage(userCreatedClient, group, userCreated);
     }
 
-    public void publishLocationsAvailable(Group group, List<LocationAvailable> 
messages)
+    /**
+     * Publish the given LocationAvailables using the LocationAvailable client 
template in a transaction
+     *
+     * @param group group
+     * @param locationsAvailable messages to publish
+     */
+    public void publishLocationsAvailable(Group group, List<LocationAvailable> 
locationsAvailable)
     {
-        publishMessages(locationAvailableClient, group, messages);
+        publishMessages(locationAvailableClient, group, locationsAvailable);
     }
 
-    public void publishUsersCreated(Group group, List<UserCreated> messages)
+    /**
+     * Publish the given UserCreateds using the UserCreated client template in 
a transaction
+     *
+     * @param group group
+     * @param usersCreated messages to publish
+     */
+    public void publishUsersCreated(Group group, List<UserCreated> 
usersCreated)
     {
-        publishMessages(userCreatedClient, group, messages);
+        publishMessages(userCreatedClient, group, usersCreated);
     }
 
-    public <T extends Message> void publishMessage(TypedModeledFramework2<T, 
Group, Priority> typedClient, Group group, T message)
+    private <T extends Message> void publishMessage(TypedModeledFramework2<T, 
Group, Priority> typedClient, Group group, T message)
     {
         ModeledFramework<T> resolvedClient = typedClient
             .resolved(client, group, message.getPriority())
@@ -85,12 +119,12 @@ public class Publisher
         });
     }
 
-    public <T extends Message> void publishMessages(TypedModeledFramework2<T, 
Group, Priority> typedClient, Group group, List<T> messages)
+    private <T extends Message> void publishMessages(TypedModeledFramework2<T, 
Group, Priority> typedClient, Group group, List<T> messages)
     {
         List<CuratorOp> operations = messages.stream()
             .map(message -> typedClient
-                    .resolved(client, group, message.getPriority())
-                    .resolved(message)
+                    .resolved(client, group, message.getPriority()) // this 
resolves to the parent path
+                    .resolved(message)                              // this 
resolves to a child node - uses the Message's id because Message extends 
NodeName
                     .createOp(message)
                 )
             .collect(Collectors.toList());

http://git-wip-us.apache.org/repos/asf/curator/blob/69f1829d/curator-examples/src/main/java/pubsub/Subscriber.java
----------------------------------------------------------------------
diff --git a/curator-examples/src/main/java/pubsub/Subscriber.java 
b/curator-examples/src/main/java/pubsub/Subscriber.java
index 29911a2..1acee0b 100644
--- a/curator-examples/src/main/java/pubsub/Subscriber.java
+++ b/curator-examples/src/main/java/pubsub/Subscriber.java
@@ -22,26 +22,50 @@ public class Subscriber
         this.client = client;
     }
 
+    /**
+     * Start a subscriber (a CachedModeledFramework instance) using the 
LocationAvailable client template
+     *
+     * @param group group to listen for
+     * @param priority priority to listen for
+     * @return CachedModeledFramework instance (already started)
+     */
     public CachedModeledFramework<LocationAvailable> 
startLocationAvailableSubscriber(Group group, Priority priority)
     {
         return startSubscriber(locationAvailableClient, group, priority);
     }
 
+    /**
+     * Start a subscriber (a CachedModeledFramework instance) using the 
UserCreated client template
+     *
+     * @param group group to listen for
+     * @param priority priority to listen for
+     * @return CachedModeledFramework instance (already started)
+     */
     public CachedModeledFramework<UserCreated> 
startUserCreatedSubscriber(Group group, Priority priority)
     {
         return startSubscriber(userCreatedClient, group, priority);
     }
 
+    /**
+     * Start a subscriber (a CachedModeledFramework instance) using the 
Instance client template
+     *
+     * @param instanceType type to listen for
+     * @return CachedModeledFramework instance (already started)
+     */
     public CachedModeledFramework<Instance> 
startInstanceSubscriber(InstanceType instanceType)
     {
-        CachedModeledFramework<Instance> resolved = 
instanceClient.resolved(client, instanceType).cached();
+        CachedModeledFramework<Instance> resolved = instanceClient
+            .resolved(client, instanceType) // resolves to the parent path - 
models are children of this path
+            .cached();                      // makes a cached modeled instance
         resolved.start();
         return resolved;
     }
 
-    public <T extends Message> CachedModeledFramework<T> 
startSubscriber(TypedModeledFramework2<T, Group, Priority> typedClient, Group 
group, Priority priority)
+    private <T extends Message> CachedModeledFramework<T> 
startSubscriber(TypedModeledFramework2<T, Group, Priority> typedClient, Group 
group, Priority priority)
     {
-        CachedModeledFramework<T> resolved = typedClient.resolved(client, 
group, priority).cached();
+        CachedModeledFramework<T> resolved = typedClient
+            .resolved(client, group, priority)  // resolves to the parent path 
- models are children of this path
+            .cached();                          // makes a cached modeled 
instance
         resolved.start();
         return resolved;
     }

http://git-wip-us.apache.org/repos/asf/curator/blob/69f1829d/curator-examples/src/main/java/pubsub/builders/Clients.java
----------------------------------------------------------------------
diff --git a/curator-examples/src/main/java/pubsub/builders/Clients.java 
b/curator-examples/src/main/java/pubsub/builders/Clients.java
index f8569aa..b742e8c 100644
--- a/curator-examples/src/main/java/pubsub/builders/Clients.java
+++ b/curator-examples/src/main/java/pubsub/builders/Clients.java
@@ -12,19 +12,28 @@ import pubsub.models.Priority;
 
 public class Clients
 {
+    /**
+     * A client template for LocationAvailable instances
+     */
     public static final TypedModeledFramework2<LocationAvailable, Group, 
Priority> locationAvailableClient = TypedModeledFramework2.from(
-        ModeledFramework.builder(),
-        ModelSpecs.locationAvailableModelSpec
+        ModeledFramework.builder(),             // our client will use only 
defaults
+        ModelSpecs.locationAvailableModelSpec   // the LocationAvailable model 
spec
     );
 
+    /**
+     * A client template for UserCreated instances
+     */
     public static final TypedModeledFramework2<UserCreated, Group, Priority> 
userCreatedClient = TypedModeledFramework2.from(
-        ModeledFramework.builder(),
-        ModelSpecs.userCreatedModelSpec
+        ModeledFramework.builder(),             // our client will use only 
defaults
+        ModelSpecs.userCreatedModelSpec         // the UserCreated model spec
     );
 
+    /**
+     * A client template for Instance instances
+     */
     public static final TypedModeledFramework<Instance, InstanceType> 
instanceClient = TypedModeledFramework.from(
-        ModeledFramework.builder(),
-        ModelSpecs.instanceModelSpec
+        ModeledFramework.builder(),             // our client will use only 
defaults
+        ModelSpecs.instanceModelSpec            // the Instance model spec
     );
 
     private Clients()

http://git-wip-us.apache.org/repos/asf/curator/blob/69f1829d/curator-examples/src/main/java/pubsub/builders/ModelSpecs.java
----------------------------------------------------------------------
diff --git a/curator-examples/src/main/java/pubsub/builders/ModelSpecs.java 
b/curator-examples/src/main/java/pubsub/builders/ModelSpecs.java
index dff4e21..dcb7a29 100644
--- a/curator-examples/src/main/java/pubsub/builders/ModelSpecs.java
+++ b/curator-examples/src/main/java/pubsub/builders/ModelSpecs.java
@@ -16,25 +16,34 @@ import java.util.concurrent.TimeUnit;
 
 public class ModelSpecs
 {
+    /**
+     * A model spec for LocationAvailable instances
+     */
     public static final TypedModelSpec2<LocationAvailable, Group, Priority> 
locationAvailableModelSpec = TypedModelSpec2.from(
-        builder(LocationAvailable.class),
-        Paths.locationAvailablePath
+        builder(LocationAvailable.class),   // creates a standard JSON 
serializer
+        Paths.locationAvailablePath         // use the path for 
LocationAvailable instances
     );
 
+    /**
+     * A model spec for UserCreated instances
+     */
     public static final TypedModelSpec2<UserCreated, Group, Priority> 
userCreatedModelSpec = TypedModelSpec2.from(
-        builder(UserCreated.class),
-        Paths.userCreatedPath
+        builder(UserCreated.class),         // creates a standard JSON 
serializer
+        Paths.userCreatedPath               // use the path for UserCreated 
instances
     );
 
+    /**
+     * A model spec for Instance instances
+     */
     public static final TypedModelSpec<Instance, InstanceType> 
instanceModelSpec = TypedModelSpec.from(
-        builder(Instance.class),
-        Paths.instancesPath
+        builder(Instance.class),            // creates a standard JSON 
serializer
+        Paths.instancesPath                 // use the path for Instance 
instances
     );
 
     private static <T> ModelSpecBuilder<T> builder(Class<T> clazz)
     {
         return ModelSpec.builder(JacksonModelSerializer.build(clazz))
-            .withTtl(TimeUnit.MINUTES.toMillis(10))
+            .withTtl(TimeUnit.MINUTES.toMillis(10)) // for our pub-sub 
example, messages are valid for 10 minutes
             .withCreateMode(CreateMode.PERSISTENT_WITH_TTL)
             ;
     }

http://git-wip-us.apache.org/repos/asf/curator/blob/69f1829d/curator-examples/src/main/java/pubsub/builders/Paths.java
----------------------------------------------------------------------
diff --git a/curator-examples/src/main/java/pubsub/builders/Paths.java 
b/curator-examples/src/main/java/pubsub/builders/Paths.java
index 6b2dd6f..74f45ce 100644
--- a/curator-examples/src/main/java/pubsub/builders/Paths.java
+++ b/curator-examples/src/main/java/pubsub/builders/Paths.java
@@ -10,10 +10,19 @@ public class Paths
 {
     private static final String basePath = "/root/pubsub";
 
+    /**
+     * Represents a path for LocationAvailable models that is parameterized 
with a Group and a Priority
+     */
     public static final TypedZPath2<Group, Priority> locationAvailablePath = 
TypedZPath2.from(basePath + "/messages/locations/{id}/{id}");
 
+    /**
+     * Represents a path for UserCreated models that is parameterized with a 
Group and a Priority
+     */
     public static final TypedZPath2<Group, Priority> userCreatedPath = 
TypedZPath2.from(basePath + "/messages/users/{id}/{id}");
 
+    /**
+     * Represents a path for Instance models that is parameterized with a 
InstanceType
+     */
     public static final TypedZPath<InstanceType> instancesPath = 
TypedZPath.from(basePath + "/instances/{id}");
 
     private Paths()

Reply via email to