Repository: curator
Updated Branches:
  refs/heads/CURATOR-397 dd390b6e1 -> d518417e5


ModeledDetails isn't needed


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

Branch: refs/heads/CURATOR-397
Commit: 45daa69bbf2a9ca0cfaa4c1ac20d53ce0314feb9
Parents: dd390b6
Author: randgalt <[email protected]>
Authored: Sat Apr 8 23:00:16 2017 -0500
Committer: randgalt <[email protected]>
Committed: Sat Apr 8 23:00:16 2017 -0500

----------------------------------------------------------------------
 .../framework/recipes/cache/NodeCache.java      | 10 ++++
 .../modeled/ModeledAsyncCuratorFramework.java   |  2 -
 .../curator/x/async/modeled/ModeledDetails.java | 49 --------------------
 .../ModeledAsyncCuratorFrameworkImpl.java       | 28 +----------
 .../details/recipes/ModeledNodeCacheImpl.java   | 15 +++---
 .../recipes/ModeledPathChildrenCacheImpl.java   | 22 ++++-----
 .../details/recipes/ModeledTreeCacheImpl.java   | 14 +++---
 .../async/modeled/recipes/ModeledNodeCache.java |  8 ++--
 .../recipes/ModeledPathChildrenCache.java       | 10 ++--
 .../async/modeled/recipes/ModeledTreeCache.java |  8 ++--
 .../details/recipes/TestEventTypeMappings.java  | 26 +++++++++++
 .../modeled/recipes/TestModeledNodeCache.java   | 43 +++++++++++++++++
 12 files changed, 120 insertions(+), 115 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/curator/blob/45daa69b/curator-recipes/src/main/java/org/apache/curator/framework/recipes/cache/NodeCache.java
----------------------------------------------------------------------
diff --git 
a/curator-recipes/src/main/java/org/apache/curator/framework/recipes/cache/NodeCache.java
 
b/curator-recipes/src/main/java/org/apache/curator/framework/recipes/cache/NodeCache.java
index 9a6eaa7..3a490ca 100644
--- 
a/curator-recipes/src/main/java/org/apache/curator/framework/recipes/cache/NodeCache.java
+++ 
b/curator-recipes/src/main/java/org/apache/curator/framework/recipes/cache/NodeCache.java
@@ -233,6 +233,16 @@ public class NodeCache implements Closeable
         return data.get();
     }
 
+    /**
+     * Return the path this cache is watching
+     *
+     * @return path
+     */
+    public String getPath()
+    {
+        return path;
+    }
+
     @VisibleForTesting
     volatile Exchanger<Object> rebuildTestExchanger;
 

http://git-wip-us.apache.org/repos/asf/curator/blob/45daa69b/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/ModeledAsyncCuratorFramework.java
----------------------------------------------------------------------
diff --git 
a/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/ModeledAsyncCuratorFramework.java
 
b/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/ModeledAsyncCuratorFramework.java
index d13de24..4b7e8e8 100644
--- 
a/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/ModeledAsyncCuratorFramework.java
+++ 
b/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/ModeledAsyncCuratorFramework.java
@@ -70,8 +70,6 @@ public interface ModeledAsyncCuratorFramework<T>
      */
     CuratorFramework unwrap();
 
-    ModeledDetails<T> getDetails();
-
     /**
      * Return a new Modeled Curator instance with all the same options but 
applying to the given child node of this Modeled Curator's
      * path. E.g. if this Modeled Curator instance applies to "/a/b", calling 
<code>modeled.at("c")</code> returns an instance that applies to

http://git-wip-us.apache.org/repos/asf/curator/blob/45daa69b/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/ModeledDetails.java
----------------------------------------------------------------------
diff --git 
a/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/ModeledDetails.java
 
b/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/ModeledDetails.java
deleted file mode 100644
index c9579d7..0000000
--- 
a/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/ModeledDetails.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.curator.x.async.modeled;
-
-import org.apache.curator.x.async.api.CreateOption;
-import java.util.Set;
-
-/**
- * Modeling options
- */
-public interface ModeledDetails<T>
-{
-    /**
-     * Return the create options set for this instance
-     *
-     * @return options
-     */
-    Set<CreateOption> getCreateOptions();
-
-    /**
-     * Return the serializer for this instance
-     *
-     * @return serializer
-     */
-    ModelSerializer<T> getSerializer();
-
-    /**
-     * Return the path for this instance
-     *
-     * @return path
-     */
-    ZPath getPath();
-}

http://git-wip-us.apache.org/repos/asf/curator/blob/45daa69b/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/details/ModeledAsyncCuratorFrameworkImpl.java
----------------------------------------------------------------------
diff --git 
a/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/details/ModeledAsyncCuratorFrameworkImpl.java
 
b/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/details/ModeledAsyncCuratorFrameworkImpl.java
index 1754f03..40a3be8 100644
--- 
a/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/details/ModeledAsyncCuratorFrameworkImpl.java
+++ 
b/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/details/ModeledAsyncCuratorFrameworkImpl.java
@@ -34,8 +34,6 @@ import org.apache.curator.x.async.api.DeleteOption;
 import org.apache.curator.x.async.api.WatchableAsyncCuratorFramework;
 import org.apache.curator.x.async.modeled.ModelSerializer;
 import org.apache.curator.x.async.modeled.ModeledAsyncCuratorFramework;
-import org.apache.curator.x.async.modeled.ModeledDetails;
-import org.apache.curator.x.async.modeled.ZPath;
 import org.apache.zookeeper.CreateMode;
 import org.apache.zookeeper.WatchedEvent;
 import org.apache.zookeeper.data.ACL;
@@ -47,7 +45,7 @@ import java.util.Set;
 import java.util.concurrent.CompletionStage;
 import java.util.function.UnaryOperator;
 
-public class ModeledAsyncCuratorFrameworkImpl<T> implements 
ModeledAsyncCuratorFramework<T>, ModeledDetails<T>
+public class ModeledAsyncCuratorFrameworkImpl<T> implements 
ModeledAsyncCuratorFramework<T>
 {
     private final AsyncCuratorFramework client;
     private final WatchableAsyncCuratorFramework watchableClient;
@@ -84,30 +82,6 @@ public class ModeledAsyncCuratorFrameworkImpl<T> implements 
ModeledAsyncCuratorF
     }
 
     @Override
-    public ModeledDetails<T> getDetails()
-    {
-        return this;
-    }
-
-    @Override
-    public Set<CreateOption> getCreateOptions()
-    {
-        return createOptions;
-    }
-
-    @Override
-    public ModelSerializer<T> getSerializer()
-    {
-        return serializer;
-    }
-
-    @Override
-    public ZPath getPath()
-    {
-        return ZPath.parse(path);
-    }
-
-    @Override
     public CuratorFramework unwrap()
     {
         return client.unwrap();

http://git-wip-us.apache.org/repos/asf/curator/blob/45daa69b/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/details/recipes/ModeledNodeCacheImpl.java
----------------------------------------------------------------------
diff --git 
a/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/details/recipes/ModeledNodeCacheImpl.java
 
b/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/details/recipes/ModeledNodeCacheImpl.java
index 8270b78..4509c73 100644
--- 
a/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/details/recipes/ModeledNodeCacheImpl.java
+++ 
b/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/details/recipes/ModeledNodeCacheImpl.java
@@ -23,7 +23,8 @@ import org.apache.curator.framework.recipes.cache.ChildData;
 import org.apache.curator.framework.recipes.cache.NodeCache;
 import org.apache.curator.framework.recipes.cache.NodeCacheListener;
 import org.apache.curator.utils.CloseableUtils;
-import org.apache.curator.x.async.modeled.ModeledDetails;
+import org.apache.curator.x.async.modeled.ModelSerializer;
+import org.apache.curator.x.async.modeled.ZPath;
 import org.apache.curator.x.async.modeled.recipes.ModeledCachedNode;
 import org.apache.curator.x.async.modeled.recipes.ModeledNodeCache;
 import org.apache.zookeeper.data.Stat;
@@ -33,12 +34,14 @@ import java.util.Optional;
 public class ModeledNodeCacheImpl<T> implements ModeledNodeCache<T>
 {
     private final NodeCache cache;
-    private final ModeledDetails<T> modeled;
+    private final ModelSerializer<T> serializer;
+    private final ZPath path;
 
-    public ModeledNodeCacheImpl(ModeledDetails<T> modeled, NodeCache cache)
+    public ModeledNodeCacheImpl(NodeCache cache, ModelSerializer<T> serializer)
     {
-        this.modeled = Objects.requireNonNull(modeled, "modeled cannot be 
null");
         this.cache = Objects.requireNonNull(cache, "cache cannot be null");
+        this.serializer = Objects.requireNonNull(serializer, "serializer 
cannot be null");
+        path = ZPath.parse(cache.getPath());
     }
 
     @Override
@@ -108,9 +111,9 @@ public class ModeledNodeCacheImpl<T> implements 
ModeledNodeCache<T>
         }
         if ( (data == null) || (data.length == 0) )
         {
-            return Optional.of(new ModeledCachedNodeImpl<T>(modeled.getPath(), 
null, stat));
+            return Optional.of(new ModeledCachedNodeImpl<T>(path, null, stat));
         }
-        return Optional.of(new ModeledCachedNodeImpl<>(modeled.getPath(), 
modeled.getSerializer().deserialize(data), stat));
+        return Optional.of(new ModeledCachedNodeImpl<>(path, 
serializer.deserialize(data), stat));
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/curator/blob/45daa69b/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/details/recipes/ModeledPathChildrenCacheImpl.java
----------------------------------------------------------------------
diff --git 
a/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/details/recipes/ModeledPathChildrenCacheImpl.java
 
b/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/details/recipes/ModeledPathChildrenCacheImpl.java
index c8b569d..0153806 100644
--- 
a/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/details/recipes/ModeledPathChildrenCacheImpl.java
+++ 
b/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/details/recipes/ModeledPathChildrenCacheImpl.java
@@ -26,13 +26,13 @@ import 
org.apache.curator.framework.recipes.cache.PathChildrenCache;
 import org.apache.curator.framework.recipes.cache.PathChildrenCacheEvent;
 import org.apache.curator.framework.recipes.cache.PathChildrenCacheListener;
 import org.apache.curator.utils.CloseableUtils;
-import org.apache.curator.x.async.modeled.ModeledDetails;
+import org.apache.curator.x.async.modeled.ModelSerializer;
 import org.apache.curator.x.async.modeled.ZPath;
+import org.apache.curator.x.async.modeled.recipes.ModeledCacheEvent;
 import org.apache.curator.x.async.modeled.recipes.ModeledCacheEventType;
+import org.apache.curator.x.async.modeled.recipes.ModeledCacheListener;
 import org.apache.curator.x.async.modeled.recipes.ModeledCachedNode;
 import org.apache.curator.x.async.modeled.recipes.ModeledPathChildrenCache;
-import org.apache.curator.x.async.modeled.recipes.ModeledCacheEvent;
-import org.apache.curator.x.async.modeled.recipes.ModeledCacheListener;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
@@ -43,14 +43,14 @@ import java.util.stream.Collectors;
 
 public class ModeledPathChildrenCacheImpl<T> implements 
ModeledPathChildrenCache<T>
 {
-    private final ModeledDetails<T> modeled;
     private final PathChildrenCache cache;
     private final Map<ModeledCacheListener, PathChildrenCacheListener> 
listenerMap = new ConcurrentHashMap<>();
+    private final ModelSerializer<T> serializer;
 
-    public ModeledPathChildrenCacheImpl(ModeledDetails<T> modeled, 
PathChildrenCache cache)
+    public ModeledPathChildrenCacheImpl(PathChildrenCache cache, 
ModelSerializer<T> serializer)
     {
-        this.modeled = Objects.requireNonNull(modeled, "modeled cannot be 
null");
         this.cache = Objects.requireNonNull(cache, "cache cannot be null");
+        this.serializer = Objects.requireNonNull(serializer, "serializer 
cannot be null");
     }
 
     @Override
@@ -137,7 +137,7 @@ public class ModeledPathChildrenCacheImpl<T> implements 
ModeledPathChildrenCache
                         @Override
                         public Optional<ModeledCachedNode<T>> getNode()
                         {
-                            return Optional.ofNullable(from(modeled, 
event.getData()));
+                            return Optional.ofNullable(from(serializer, 
event.getData()));
                         }
                     };
                     listener.event(modeledEvent);
@@ -162,14 +162,14 @@ public class ModeledPathChildrenCacheImpl<T> implements 
ModeledPathChildrenCache
     public List<ModeledCachedNode> getCurrentData()
     {
         return cache.getCurrentData().stream()
-            .map(data -> from(modeled, data))
+            .map(data -> from(serializer, data))
             .collect(Collectors.toList());
     }
 
     @Override
     public Optional<ModeledCachedNode> getCurrentData(String fullPath)
     {
-        return Optional.ofNullable(from(modeled, 
cache.getCurrentData(fullPath)));
+        return Optional.ofNullable(from(serializer, 
cache.getCurrentData(fullPath)));
     }
 
     @Override
@@ -209,13 +209,13 @@ public class ModeledPathChildrenCacheImpl<T> implements 
ModeledPathChildrenCache
         CloseableUtils.closeQuietly(cache);
     }
 
-    static <T> ModeledCachedNode<T> from(ModeledDetails<T> modeled, ChildData 
data)
+    static <T> ModeledCachedNode<T> from(ModelSerializer<T> serializer, 
ChildData data)
     {
         if ( data == null )
         {
             return null;
         }
-        T model = (data.getData() != null) ? 
modeled.getSerializer().deserialize(data.getData()) : null;
+        T model = (data.getData() != null) ? 
serializer.deserialize(data.getData()) : null;
         return new ModeledCachedNodeImpl<>(ZPath.parse(data.getPath()), model, 
data.getStat());
     }
 

http://git-wip-us.apache.org/repos/asf/curator/blob/45daa69b/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/details/recipes/ModeledTreeCacheImpl.java
----------------------------------------------------------------------
diff --git 
a/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/details/recipes/ModeledTreeCacheImpl.java
 
b/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/details/recipes/ModeledTreeCacheImpl.java
index 20a1bc7..8cf156b 100644
--- 
a/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/details/recipes/ModeledTreeCacheImpl.java
+++ 
b/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/details/recipes/ModeledTreeCacheImpl.java
@@ -26,7 +26,7 @@ import org.apache.curator.framework.recipes.cache.TreeCache;
 import org.apache.curator.framework.recipes.cache.TreeCacheEvent;
 import org.apache.curator.framework.recipes.cache.TreeCacheListener;
 import org.apache.curator.utils.CloseableUtils;
-import org.apache.curator.x.async.modeled.ModeledDetails;
+import org.apache.curator.x.async.modeled.ModelSerializer;
 import org.apache.curator.x.async.modeled.ZPath;
 import org.apache.curator.x.async.modeled.recipes.ModeledCacheEvent;
 import org.apache.curator.x.async.modeled.recipes.ModeledCacheEventType;
@@ -46,14 +46,14 @@ import static 
org.apache.curator.x.async.modeled.details.recipes.ModeledPathChil
 
 public class ModeledTreeCacheImpl<T> implements ModeledTreeCache<T>
 {
-    private final ModeledDetails<T> modeled;
     private final TreeCache cache;
     private final Map<ModeledCacheListener, TreeCacheListener> listenerMap = 
new ConcurrentHashMap<>();
+    private final ModelSerializer<T> serializer;
 
-    public ModeledTreeCacheImpl(ModeledDetails<T> modeled, TreeCache cache)
+    public ModeledTreeCacheImpl(TreeCache cache, ModelSerializer<T> serializer)
     {
-        this.modeled = Objects.requireNonNull(modeled, "modeled cannot be 
null");
         this.cache = Objects.requireNonNull(cache, "cache cannot be null");
+        this.serializer = Objects.requireNonNull(serializer, "serializer 
cannot be null");
     }
 
     @Override
@@ -107,7 +107,7 @@ public class ModeledTreeCacheImpl<T> implements 
ModeledTreeCache<T>
                         @Override
                         public Optional<ModeledCachedNode<T>> getNode()
                         {
-                            return Optional.ofNullable(from(modeled, 
event.getData()));
+                            return Optional.ofNullable(from(serializer, 
event.getData()));
                         }
                     };
                 };
@@ -136,14 +136,14 @@ public class ModeledTreeCacheImpl<T> implements 
ModeledTreeCache<T>
             return Collections.emptyMap();
         }
         return currentChildren.entrySet().stream()
-            .map(entry -> new 
AbstractMap.SimpleEntry<>(ZPath.parse(entry.getKey()), from(modeled, 
entry.getValue())))
+            .map(entry -> new 
AbstractMap.SimpleEntry<>(ZPath.parse(entry.getKey()), from(serializer, 
entry.getValue())))
             .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
     }
 
     @Override
     public Optional<ModeledCachedNode<T>> getCurrentData(ZPath fullPath)
     {
-        return Optional.ofNullable(from(modeled, 
cache.getCurrentData(fullPath.fullPath())));
+        return Optional.ofNullable(from(serializer, 
cache.getCurrentData(fullPath.fullPath())));
     }
 
     @VisibleForTesting

http://git-wip-us.apache.org/repos/asf/curator/blob/45daa69b/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/recipes/ModeledNodeCache.java
----------------------------------------------------------------------
diff --git 
a/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/recipes/ModeledNodeCache.java
 
b/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/recipes/ModeledNodeCache.java
index 0a7064a..73949c5 100644
--- 
a/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/recipes/ModeledNodeCache.java
+++ 
b/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/recipes/ModeledNodeCache.java
@@ -21,7 +21,7 @@ package org.apache.curator.x.async.modeled.recipes;
 import org.apache.curator.framework.listen.Listenable;
 import org.apache.curator.framework.recipes.cache.NodeCache;
 import org.apache.curator.framework.recipes.cache.NodeCacheListener;
-import org.apache.curator.x.async.modeled.ModeledDetails;
+import org.apache.curator.x.async.modeled.ModelSerializer;
 import org.apache.curator.x.async.modeled.details.recipes.ModeledNodeCacheImpl;
 import java.io.Closeable;
 import java.util.Optional;
@@ -35,13 +35,13 @@ public interface ModeledNodeCache<T> extends Closeable
     /**
      * Return a newly wrapped cache
      *
-     * @param modeled modeling options
      * @param cache the cache to wrap
+     * @param serializer for the model
      * @return new wrapped cache
      */
-    static <T> ModeledNodeCache wrap(ModeledDetails<T> modeled, NodeCache 
cache)
+    static <T> ModeledNodeCache wrap(NodeCache cache, ModelSerializer<T> 
serializer)
     {
-        return new ModeledNodeCacheImpl<>(modeled, cache);
+        return new ModeledNodeCacheImpl<>(cache, serializer);
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/curator/blob/45daa69b/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/recipes/ModeledPathChildrenCache.java
----------------------------------------------------------------------
diff --git 
a/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/recipes/ModeledPathChildrenCache.java
 
b/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/recipes/ModeledPathChildrenCache.java
index f192dbf..32ed58f 100644
--- 
a/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/recipes/ModeledPathChildrenCache.java
+++ 
b/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/recipes/ModeledPathChildrenCache.java
@@ -20,7 +20,7 @@ package org.apache.curator.x.async.modeled.recipes;
 
 import org.apache.curator.framework.listen.Listenable;
 import org.apache.curator.framework.recipes.cache.PathChildrenCache;
-import org.apache.curator.x.async.modeled.ModeledDetails;
+import org.apache.curator.x.async.modeled.ModelSerializer;
 import org.apache.curator.x.async.modeled.ZPath;
 import 
org.apache.curator.x.async.modeled.details.recipes.ModeledPathChildrenCacheImpl;
 import java.io.Closeable;
@@ -36,13 +36,13 @@ public interface ModeledPathChildrenCache<T> extends 
Closeable
     /**
      * Return a newly wrapped cache
      *
-     * @param modeled modeling options
      * @param cache the cache to wrap
+     * @param serializer model serializer
      * @return new wrapped cache
      */
-    static <T> ModeledPathChildrenCache<T> wrap(ModeledDetails<T> modeled, 
PathChildrenCache cache)
+    static <T> ModeledPathChildrenCache<T> wrap(PathChildrenCache cache, 
ModelSerializer<T> serializer)
     {
-        return new ModeledPathChildrenCacheImpl<>(modeled, cache);
+        return new ModeledPathChildrenCacheImpl<>(cache, serializer);
     }
 
     /**
@@ -118,7 +118,7 @@ public interface ModeledPathChildrenCache<T> extends 
Closeable
     void clear();
 
     /**
-     * Forwards to {@link 
org.apache.curator.framework.recipes.cache.PathChildrenCache#close()}
+     * Forwards to {@link 
org.apache.curator.framework.recipes.cache.PathChildrenCache#rebuildNode(String)}
      */
     void close();
 }

http://git-wip-us.apache.org/repos/asf/curator/blob/45daa69b/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/recipes/ModeledTreeCache.java
----------------------------------------------------------------------
diff --git 
a/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/recipes/ModeledTreeCache.java
 
b/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/recipes/ModeledTreeCache.java
index 2b6c817..c7a32c2 100644
--- 
a/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/recipes/ModeledTreeCache.java
+++ 
b/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/recipes/ModeledTreeCache.java
@@ -20,7 +20,7 @@ package org.apache.curator.x.async.modeled.recipes;
 
 import org.apache.curator.framework.listen.Listenable;
 import org.apache.curator.framework.recipes.cache.TreeCache;
-import org.apache.curator.x.async.modeled.ModeledDetails;
+import org.apache.curator.x.async.modeled.ModelSerializer;
 import org.apache.curator.x.async.modeled.ZPath;
 import org.apache.curator.x.async.modeled.details.recipes.ModeledTreeCacheImpl;
 import java.io.Closeable;
@@ -36,13 +36,13 @@ public interface ModeledTreeCache<T> extends Closeable
     /**
      * Return a newly wrapped cache
      *
-     * @param modeled modeling options
      * @param cache the cache to wrap
+     * @param serializer model serializer
      * @return new wrapped cache
      */
-    static <T> ModeledTreeCache<T> wrap(ModeledDetails<T> modeled, TreeCache 
cache)
+    static <T> ModeledTreeCache<T> wrap(TreeCache cache, ModelSerializer<T> 
serializer)
     {
-        return new ModeledTreeCacheImpl<>(modeled, cache);
+        return new ModeledTreeCacheImpl<>(cache, serializer);
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/curator/blob/45daa69b/curator-x-async/src/test/java/org/apache/curator/x/async/modeled/details/recipes/TestEventTypeMappings.java
----------------------------------------------------------------------
diff --git 
a/curator-x-async/src/test/java/org/apache/curator/x/async/modeled/details/recipes/TestEventTypeMappings.java
 
b/curator-x-async/src/test/java/org/apache/curator/x/async/modeled/details/recipes/TestEventTypeMappings.java
new file mode 100644
index 0000000..ea46ab1
--- /dev/null
+++ 
b/curator-x-async/src/test/java/org/apache/curator/x/async/modeled/details/recipes/TestEventTypeMappings.java
@@ -0,0 +1,26 @@
+package org.apache.curator.x.async.modeled.details.recipes;
+
+import org.apache.curator.framework.recipes.cache.PathChildrenCacheEvent;
+import org.apache.curator.framework.recipes.cache.TreeCacheEvent;
+import org.testng.annotations.Test;
+
+public class TestEventTypeMappings
+{
+    @Test
+    public void testPathChildrenCacheTypes()
+    {
+        for ( PathChildrenCacheEvent.Type type : 
PathChildrenCacheEvent.Type.values() )
+        {
+            ModeledPathChildrenCacheImpl.toType(type);  // throws an exception 
on unknown types
+        }
+    }
+
+    @Test
+    public void testTreeCacheTypes()
+    {
+        for ( TreeCacheEvent.Type type : TreeCacheEvent.Type.values() )
+        {
+            ModeledTreeCacheImpl.toType(type);  // throws an exception on 
unknown types
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/curator/blob/45daa69b/curator-x-async/src/test/java/org/apache/curator/x/async/modeled/recipes/TestModeledNodeCache.java
----------------------------------------------------------------------
diff --git 
a/curator-x-async/src/test/java/org/apache/curator/x/async/modeled/recipes/TestModeledNodeCache.java
 
b/curator-x-async/src/test/java/org/apache/curator/x/async/modeled/recipes/TestModeledNodeCache.java
new file mode 100644
index 0000000..0f6cd97
--- /dev/null
+++ 
b/curator-x-async/src/test/java/org/apache/curator/x/async/modeled/recipes/TestModeledNodeCache.java
@@ -0,0 +1,43 @@
+package org.apache.curator.x.async.modeled.recipes;
+
+import org.apache.curator.framework.CuratorFramework;
+import org.apache.curator.framework.CuratorFrameworkFactory;
+import org.apache.curator.retry.RetryOneTime;
+import org.apache.curator.test.BaseClassForTests;
+import org.apache.curator.test.Timing;
+import org.apache.curator.utils.CloseableUtils;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+public class TestModeledNodeCache extends BaseClassForTests
+{
+    private static final Timing timing = new Timing();
+    private CuratorFramework client;
+
+    @BeforeMethod
+    @Override
+    public void setup() throws Exception
+    {
+        super.setup();
+
+        client = CuratorFrameworkFactory.newClient(server.getConnectString(), 
timing.session(), timing.connection(), new RetryOneTime(1));
+        client.start();
+    }
+
+    @AfterMethod
+    @Override
+    public void teardown() throws Exception
+    {
+        CloseableUtils.closeQuietly(client);
+
+        super.teardown();
+    }
+
+    @Test
+    public void testBasic()
+    {
+        ModeledNodeCache nodeCache = null;//ModeledNodeCache.wrap(new 
NodeCache(client, modeledDetails.getPath().fullPath()));
+        nodeCache.start();
+    }
+}

Reply via email to