You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@curator.apache.org by ra...@apache.org on 2017/01/24 02:07:13 UTC

[1/4] curator git commit: Add 'enabled' flag to service instance

Repository: curator
Updated Branches:
  refs/heads/master 386cadefb -> 467513b3d


Add 'enabled' flag to service instance

Service providers will omit any instance that is marked 'enabled: false'.
The low level API provided by ServiceDiscovery (e.g. queryForInstance,
queryForInstances) will continue to return all instances, including
those that are marked 'enabled: false'.

This change allows instances to be temporarily removed from service
discovery via an update to the instance node data.


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

Branch: refs/heads/master
Commit: 4776a2daacb3a776e9dd0bdc214ed4987fef96c9
Parents: 31c0465
Author: Joe Littlejohn <jo...@gmail.com>
Authored: Mon Nov 2 22:12:43 2015 +0000
Committer: Joe Littlejohn <jo...@gmail.com>
Committed: Mon Nov 2 22:35:20 2015 +0000

----------------------------------------------------------------------
 .../curator/x/discovery/ServiceInstance.java    |  17 ++-
 .../x/discovery/ServiceInstanceBuilder.java     |   9 +-
 .../details/EnabledInstanceFilter.java          |  33 ++++++
 .../discovery/details/ServiceProviderImpl.java  |   1 +
 .../x/discovery/TestJsonInstanceSerializer.java |  35 ++++--
 .../discovery/details/TestServiceProvider.java  | 109 +++++++++++++++++++
 6 files changed, 191 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/curator/blob/4776a2da/curator-x-discovery/src/main/java/org/apache/curator/x/discovery/ServiceInstance.java
----------------------------------------------------------------------
diff --git a/curator-x-discovery/src/main/java/org/apache/curator/x/discovery/ServiceInstance.java b/curator-x-discovery/src/main/java/org/apache/curator/x/discovery/ServiceInstance.java
index 939e708..820e92c 100644
--- a/curator-x-discovery/src/main/java/org/apache/curator/x/discovery/ServiceInstance.java
+++ b/curator-x-discovery/src/main/java/org/apache/curator/x/discovery/ServiceInstance.java
@@ -42,6 +42,7 @@ public class ServiceInstance<T>
     private final long          registrationTimeUTC;
     private final ServiceType   serviceType;
     private final UriSpec       uriSpec;
+    private final boolean       enabled;
 
     /**
      * Return a new builder. The {@link #address} is set to the ip of the first
@@ -75,7 +76,7 @@ public class ServiceInstance<T>
      * @param serviceType type of the service
      * @param uriSpec the uri spec or null
      */
-    public ServiceInstance(String name, String id, String address, Integer port, Integer sslPort, T payload, long registrationTimeUTC, ServiceType serviceType, UriSpec uriSpec)
+    public ServiceInstance(String name, String id, String address, Integer port, Integer sslPort, T payload, long registrationTimeUTC, ServiceType serviceType, UriSpec uriSpec, boolean enabled)
     {
         name = Preconditions.checkNotNull(name, "name cannot be null");
         id = Preconditions.checkNotNull(id, "id cannot be null");
@@ -89,6 +90,7 @@ public class ServiceInstance<T>
         this.sslPort = sslPort;
         this.payload = payload;
         this.registrationTimeUTC = registrationTimeUTC;
+        this.enabled = enabled;
     }
 
     /**
@@ -96,7 +98,7 @@ public class ServiceInstance<T>
      */
     ServiceInstance()
     {
-        this("", "", null, null, null, null, 0, ServiceType.DYNAMIC, null);
+        this("", "", null, null, null, null, 0, ServiceType.DYNAMIC, null, true);
     }
 
     public String getName()
@@ -145,6 +147,11 @@ public class ServiceInstance<T>
         return uriSpec;
     }
 
+    public boolean isEnabled()
+    {
+        return enabled;
+    }
+
     public String buildUriSpec()
     {
         return buildUriSpec(Maps.<String, Object>newHashMap());
@@ -206,6 +213,10 @@ public class ServiceInstance<T>
         {
             return false;
         }
+        if ( enabled != that.enabled )
+        {
+            return false;
+        }
 
         return true;
     }
@@ -222,6 +233,7 @@ public class ServiceInstance<T>
         result = 31 * result + (int)(registrationTimeUTC ^ (registrationTimeUTC >>> 32));
         result = 31 * result + (serviceType != null ? serviceType.hashCode() : 0);
         result = 31 * result + (uriSpec != null ? uriSpec.hashCode() : 0);
+        result = 31 * result + (enabled ? 1231 : 1237);
         return result;
     }
 
@@ -238,6 +250,7 @@ public class ServiceInstance<T>
             ", registrationTimeUTC=" + registrationTimeUTC +
             ", serviceType=" + serviceType +
             ", uriSpec=" + uriSpec +
+            ", enabled=" + enabled +
             '}';
     }
 }

http://git-wip-us.apache.org/repos/asf/curator/blob/4776a2da/curator-x-discovery/src/main/java/org/apache/curator/x/discovery/ServiceInstanceBuilder.java
----------------------------------------------------------------------
diff --git a/curator-x-discovery/src/main/java/org/apache/curator/x/discovery/ServiceInstanceBuilder.java b/curator-x-discovery/src/main/java/org/apache/curator/x/discovery/ServiceInstanceBuilder.java
index 4365cd6..c2ea40e 100644
--- a/curator-x-discovery/src/main/java/org/apache/curator/x/discovery/ServiceInstanceBuilder.java
+++ b/curator-x-discovery/src/main/java/org/apache/curator/x/discovery/ServiceInstanceBuilder.java
@@ -41,6 +41,7 @@ public class ServiceInstanceBuilder<T>
     private long registrationTimeUTC;
     private ServiceType serviceType = ServiceType.DYNAMIC;
     private UriSpec uriSpec;
+    private boolean enabled = true;
 
     private static final AtomicReference<LocalIpFilter> localIpFilter = new AtomicReference<LocalIpFilter>
     (
@@ -85,7 +86,7 @@ public class ServiceInstanceBuilder<T>
      */
     public ServiceInstance<T> build()
     {
-        return new ServiceInstance<T>(name, id, address, port, sslPort, payload, registrationTimeUTC, serviceType, uriSpec);
+        return new ServiceInstance<T>(name, id, address, port, sslPort, payload, registrationTimeUTC, serviceType, uriSpec, enabled);
     }
 
     public ServiceInstanceBuilder<T> name(String name)
@@ -142,6 +143,12 @@ public class ServiceInstanceBuilder<T>
         return this;
     }
 
+    public ServiceInstanceBuilder<T> enabled(boolean enabled)
+    {
+        this.enabled = enabled;
+        return this;
+    }
+
     /**
      * based on http://pastebin.com/5X073pUc
      * <p>

http://git-wip-us.apache.org/repos/asf/curator/blob/4776a2da/curator-x-discovery/src/main/java/org/apache/curator/x/discovery/details/EnabledInstanceFilter.java
----------------------------------------------------------------------
diff --git a/curator-x-discovery/src/main/java/org/apache/curator/x/discovery/details/EnabledInstanceFilter.java b/curator-x-discovery/src/main/java/org/apache/curator/x/discovery/details/EnabledInstanceFilter.java
new file mode 100644
index 0000000..d153653
--- /dev/null
+++ b/curator-x-discovery/src/main/java/org/apache/curator/x/discovery/details/EnabledInstanceFilter.java
@@ -0,0 +1,33 @@
+/**
+ * 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.discovery.details;
+
+import org.apache.curator.x.discovery.InstanceFilter;
+import org.apache.curator.x.discovery.ServiceInstance;
+
+public class EnabledInstanceFilter<T> implements InstanceFilter<T>
+{
+
+    @Override
+    public boolean apply(ServiceInstance<T> instance)
+    {
+        return instance.isEnabled();
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/curator/blob/4776a2da/curator-x-discovery/src/main/java/org/apache/curator/x/discovery/details/ServiceProviderImpl.java
----------------------------------------------------------------------
diff --git a/curator-x-discovery/src/main/java/org/apache/curator/x/discovery/details/ServiceProviderImpl.java b/curator-x-discovery/src/main/java/org/apache/curator/x/discovery/details/ServiceProviderImpl.java
index 5c63836..4cbd126 100644
--- a/curator-x-discovery/src/main/java/org/apache/curator/x/discovery/details/ServiceProviderImpl.java
+++ b/curator-x-discovery/src/main/java/org/apache/curator/x/discovery/details/ServiceProviderImpl.java
@@ -53,6 +53,7 @@ public class ServiceProviderImpl<T> implements ServiceProvider<T>
 
         ArrayList<InstanceFilter<T>> localFilters = Lists.newArrayList(filters);
         localFilters.add(downInstanceManager);
+        localFilters.add(new EnabledInstanceFilter<T>());
         instanceProvider = new FilteredInstanceProvider<T>(cache, localFilters);
     }
 

http://git-wip-us.apache.org/repos/asf/curator/blob/4776a2da/curator-x-discovery/src/test/java/org/apache/curator/x/discovery/TestJsonInstanceSerializer.java
----------------------------------------------------------------------
diff --git a/curator-x-discovery/src/test/java/org/apache/curator/x/discovery/TestJsonInstanceSerializer.java b/curator-x-discovery/src/test/java/org/apache/curator/x/discovery/TestJsonInstanceSerializer.java
index 8417710..f17919d 100644
--- a/curator-x-discovery/src/test/java/org/apache/curator/x/discovery/TestJsonInstanceSerializer.java
+++ b/curator-x-discovery/src/test/java/org/apache/curator/x/discovery/TestJsonInstanceSerializer.java
@@ -32,8 +32,8 @@ public class TestJsonInstanceSerializer
     @Test
     public void     testBasic() throws Exception
     {
-        JsonInstanceSerializer<String> serializer = new JsonInstanceSerializer<String>(String.class);
-        ServiceInstance<String>         instance = new ServiceInstance<String>("name", "id", "address", 10, 20, "payload", 0, ServiceType.DYNAMIC, new UriSpec("{a}/b/{c}"));
+        JsonInstanceSerializer<String>  serializer = new JsonInstanceSerializer<String>(String.class);
+        ServiceInstance<String>         instance = new ServiceInstance<String>("name", "id", "address", 10, 20, "payload", 0, ServiceType.DYNAMIC, new UriSpec("{a}/b/{c}"), true);
         byte[]                          bytes = serializer.serialize(instance);
 
         ServiceInstance<String>         rhs = serializer.deserialize(bytes);
@@ -45,6 +45,7 @@ public class TestJsonInstanceSerializer
         Assert.assertEquals(instance.getPort(), rhs.getPort());
         Assert.assertEquals(instance.getSslPort(), rhs.getSslPort());
         Assert.assertEquals(instance.getUriSpec(), rhs.getUriSpec());
+        Assert.assertEquals(instance.isEnabled(), rhs.isEnabled());
     }
 
     @Test
@@ -53,7 +54,7 @@ public class TestJsonInstanceSerializer
         JsonInstanceSerializer<String>  stringSerializer = new JsonInstanceSerializer<String>(String.class);
         JsonInstanceSerializer<Double>  doubleSerializer = new JsonInstanceSerializer<Double>(Double.class);
 
-        byte[]                          bytes = stringSerializer.serialize(new ServiceInstance<String>("name", "id", "address", 10, 20, "payload", 0, ServiceType.DYNAMIC, new UriSpec("{a}/b/{c}")));
+        byte[]                          bytes = stringSerializer.serialize(new ServiceInstance<String>("name", "id", "address", 10, 20, "payload", 0, ServiceType.DYNAMIC, new UriSpec("{a}/b/{c}"), true));
         try
         {
             doubleSerializer.deserialize(bytes);
@@ -69,7 +70,7 @@ public class TestJsonInstanceSerializer
     public void     testNoPayload() throws Exception
     {
         JsonInstanceSerializer<Void>    serializer = new JsonInstanceSerializer<Void>(Void.class);
-        ServiceInstance<Void>           instance = new ServiceInstance<Void>("name", "id", "address", 10, 20, null, 0, ServiceType.DYNAMIC, new UriSpec("{a}/b/{c}"));
+        ServiceInstance<Void>           instance = new ServiceInstance<Void>("name", "id", "address", 10, 20, null, 0, ServiceType.DYNAMIC, new UriSpec("{a}/b/{c}"), true);
         byte[]                          bytes = serializer.serialize(instance);
 
         ServiceInstance<Void>           rhs = serializer.deserialize(bytes);
@@ -81,6 +82,17 @@ public class TestJsonInstanceSerializer
         Assert.assertEquals(instance.getPort(), rhs.getPort());
         Assert.assertEquals(instance.getSslPort(), rhs.getSslPort());
         Assert.assertEquals(instance.getUriSpec(), rhs.getUriSpec());
+        Assert.assertEquals(instance.isEnabled(), rhs.isEnabled());
+    }
+
+    @Test
+    public void     testNoEnabledState() throws Exception
+    {
+        JsonInstanceSerializer<Void>    serializer = new JsonInstanceSerializer<Void>(Void.class);
+        byte[]                          bytes = "{}".getBytes("utf-8");
+
+        ServiceInstance<Void>           instance = serializer.deserialize(bytes);
+        Assert.assertTrue(instance.isEnabled(), "Instance that has no 'enabled' should be assumed enabled");
     }
 
     @Test
@@ -90,8 +102,8 @@ public class TestJsonInstanceSerializer
         List<String> payload = new ArrayList<String>();
         payload.add("Test value 1");
         payload.add("Test value 2");
-        ServiceInstance<Object>           instance = new ServiceInstance<Object>("name", "id", "address", 10, 20, payload, 0, ServiceType.DYNAMIC, new UriSpec("{a}/b/{c}"));
-        byte[]                          bytes = serializer.serialize(instance);
+        ServiceInstance<Object>           instance = new ServiceInstance<Object>("name", "id", "address", 10, 20, payload, 0, ServiceType.DYNAMIC, new UriSpec("{a}/b/{c}"), false);
+        byte[]                            bytes = serializer.serialize(instance);
 
         ServiceInstance<Object>           rhs = serializer.deserialize(bytes);
         Assert.assertEquals(instance, rhs);
@@ -102,6 +114,7 @@ public class TestJsonInstanceSerializer
         Assert.assertEquals(instance.getPort(), rhs.getPort());
         Assert.assertEquals(instance.getSslPort(), rhs.getSslPort());
         Assert.assertEquals(instance.getUriSpec(), rhs.getUriSpec());
+        Assert.assertEquals(instance.isEnabled(), rhs.isEnabled());
     }
 
 
@@ -112,8 +125,8 @@ public class TestJsonInstanceSerializer
         Map<String,String> payload = new HashMap<String,String>();
         payload.put("1", "Test value 1");
         payload.put("2", "Test value 2");
-        ServiceInstance<Object>           instance = new ServiceInstance<Object>("name", "id", "address", 10, 20, payload, 0, ServiceType.DYNAMIC, new UriSpec("{a}/b/{c}"));
-        byte[]                          bytes = serializer.serialize(instance);
+        ServiceInstance<Object>           instance = new ServiceInstance<Object>("name", "id", "address", 10, 20, payload, 0, ServiceType.DYNAMIC, new UriSpec("{a}/b/{c}"), false);
+        byte[]                            bytes = serializer.serialize(instance);
 
         ServiceInstance<Object>           rhs = serializer.deserialize(bytes);
         Assert.assertEquals(instance, rhs);
@@ -124,6 +137,7 @@ public class TestJsonInstanceSerializer
         Assert.assertEquals(instance.getPort(), rhs.getPort());
         Assert.assertEquals(instance.getSslPort(), rhs.getSslPort());
         Assert.assertEquals(instance.getUriSpec(), rhs.getUriSpec());
+        Assert.assertEquals(instance.isEnabled(), rhs.isEnabled());
     }
 
     @Test
@@ -132,8 +146,8 @@ public class TestJsonInstanceSerializer
         JsonInstanceSerializer<Payload>    serializer = new JsonInstanceSerializer<Payload>(Payload.class);
         Payload payload = new Payload();
         payload.setVal("Test value");
-        ServiceInstance<Payload>           instance = new ServiceInstance<Payload>("name", "id", "address", 10, 20, payload, 0, ServiceType.DYNAMIC, new UriSpec("{a}/b/{c}"));
-        byte[]                          bytes = serializer.serialize(instance);
+        ServiceInstance<Payload>           instance = new ServiceInstance<Payload>("name", "id", "address", 10, 20, payload, 0, ServiceType.DYNAMIC, new UriSpec("{a}/b/{c}"), true);
+        byte[]                             bytes = serializer.serialize(instance);
 
         ServiceInstance<Payload>           rhs = serializer.deserialize(bytes);
         Assert.assertEquals(instance, rhs);
@@ -144,6 +158,7 @@ public class TestJsonInstanceSerializer
         Assert.assertEquals(instance.getPort(), rhs.getPort());
         Assert.assertEquals(instance.getSslPort(), rhs.getSslPort());
         Assert.assertEquals(instance.getUriSpec(), rhs.getUriSpec());
+        Assert.assertEquals(instance.isEnabled(), rhs.isEnabled());
     }
 
     public static class Payload {

http://git-wip-us.apache.org/repos/asf/curator/blob/4776a2da/curator-x-discovery/src/test/java/org/apache/curator/x/discovery/details/TestServiceProvider.java
----------------------------------------------------------------------
diff --git a/curator-x-discovery/src/test/java/org/apache/curator/x/discovery/details/TestServiceProvider.java b/curator-x-discovery/src/test/java/org/apache/curator/x/discovery/details/TestServiceProvider.java
new file mode 100644
index 0000000..fae7266
--- /dev/null
+++ b/curator-x-discovery/src/test/java/org/apache/curator/x/discovery/details/TestServiceProvider.java
@@ -0,0 +1,109 @@
+/**
+ * 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.discovery.details;
+
+import java.io.Closeable;
+import java.util.Collections;
+import java.util.List;
+
+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.utils.CloseableUtils;
+import org.apache.curator.x.discovery.ServiceDiscovery;
+import org.apache.curator.x.discovery.ServiceDiscoveryBuilder;
+import org.apache.curator.x.discovery.ServiceInstance;
+import org.apache.curator.x.discovery.ServiceProvider;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+import com.google.common.collect.Lists;
+
+public class TestServiceProvider extends BaseClassForTests
+{
+
+    @Test
+    public void testBasic() throws Exception
+    {
+        List<Closeable> closeables = Lists.newArrayList();
+        try
+        {
+            CuratorFramework client = CuratorFrameworkFactory.newClient(server.getConnectString(), new RetryOneTime(1));
+            closeables.add(client);
+            client.start();
+
+            ServiceInstance<String> instance = ServiceInstance.<String>builder().payload("thing").name("test").port(10064).build();
+            ServiceDiscovery<String> discovery = ServiceDiscoveryBuilder.builder(String.class).basePath("/test").client(client).thisInstance(instance).build();
+            closeables.add(discovery);
+            discovery.start();
+
+            ServiceProvider<String> provider = discovery.serviceProviderBuilder().serviceName("test").build();
+            closeables.add(provider);
+            provider.start();
+
+            Assert.assertEquals(provider.getInstance(), instance);
+
+            List<ServiceInstance<String>> list = Lists.newArrayList();
+            list.add(instance);
+            Assert.assertEquals(provider.getAllInstances(), list);
+        }
+        finally
+        {
+            Collections.reverse(closeables);
+            for ( Closeable c : closeables )
+            {
+                CloseableUtils.closeQuietly(c);
+            }
+        }
+    }
+
+    @Test
+    public void testDisabledInstance() throws Exception
+    {
+        List<Closeable> closeables = Lists.newArrayList();
+        try
+        {
+            CuratorFramework client = CuratorFrameworkFactory.newClient(server.getConnectString(), new RetryOneTime(1));
+            closeables.add(client);
+            client.start();
+
+            ServiceInstance<String> instance = ServiceInstance.<String>builder().payload("thing").name("test").port(10064).enabled(false).build();
+            ServiceDiscovery<String> discovery = ServiceDiscoveryBuilder.builder(String.class).basePath("/test").client(client).thisInstance(instance).build();
+            closeables.add(discovery);
+            discovery.start();
+
+            ServiceProvider<String> provider = discovery.serviceProviderBuilder().serviceName("test").build();
+            closeables.add(provider);
+            provider.start();
+
+            Assert.assertEquals(provider.getInstance(), null);
+            Assert.assertTrue(provider.getAllInstances().isEmpty(), "Disabled instance still appears available via service provider");
+        }
+        finally
+        {
+            Collections.reverse(closeables);
+            for ( Closeable c : closeables )
+            {
+                CloseableUtils.closeQuietly(c);
+            }
+        }
+    }
+
+}


[2/4] curator git commit: Merge branch 'CURATOR-275' of github.com:joelittlejohn/curator into CURATOR-275

Posted by ra...@apache.org.
Merge branch 'CURATOR-275' of github.com:joelittlejohn/curator into CURATOR-275


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

Branch: refs/heads/master
Commit: 8fe1e2699feea9efea0029af5f6961b2b67318a3
Parents: 386cade 4776a2d
Author: randgalt <ra...@apache.org>
Authored: Mon Jan 23 20:53:00 2017 -0500
Committer: randgalt <ra...@apache.org>
Committed: Mon Jan 23 20:53:00 2017 -0500

----------------------------------------------------------------------
 .../curator/x/discovery/ServiceInstance.java    |  17 ++-
 .../x/discovery/ServiceInstanceBuilder.java     |   9 +-
 .../details/EnabledInstanceFilter.java          |  33 ++++++
 .../discovery/details/ServiceProviderImpl.java  |   1 +
 .../x/discovery/TestJsonInstanceSerializer.java |  35 ++++--
 .../discovery/details/TestServiceProvider.java  | 109 +++++++++++++++++++
 6 files changed, 191 insertions(+), 13 deletions(-)
----------------------------------------------------------------------



[3/4] curator git commit: Keep old ctor, add some doc, minor changes

Posted by ra...@apache.org.
Keep old ctor, add some doc, minor changes


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

Branch: refs/heads/master
Commit: 27d3b109723e999d463d2a29a3df79b04a53a4db
Parents: 8fe1e26
Author: randgalt <ra...@apache.org>
Authored: Mon Jan 23 21:06:16 2017 -0500
Committer: randgalt <ra...@apache.org>
Committed: Mon Jan 23 21:06:16 2017 -0500

----------------------------------------------------------------------
 .../curator/x/discovery/ServiceInstance.java    | 19 ++++++++++-
 .../details/EnabledInstanceFilter.java          | 33 --------------------
 2 files changed, 18 insertions(+), 34 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/curator/blob/27d3b109/curator-x-discovery/src/main/java/org/apache/curator/x/discovery/ServiceInstance.java
----------------------------------------------------------------------
diff --git a/curator-x-discovery/src/main/java/org/apache/curator/x/discovery/ServiceInstance.java b/curator-x-discovery/src/main/java/org/apache/curator/x/discovery/ServiceInstance.java
index 820e92c..ebdd6bc 100644
--- a/curator-x-discovery/src/main/java/org/apache/curator/x/discovery/ServiceInstance.java
+++ b/curator-x-discovery/src/main/java/org/apache/curator/x/discovery/ServiceInstance.java
@@ -76,6 +76,23 @@ public class ServiceInstance<T>
      * @param serviceType type of the service
      * @param uriSpec the uri spec or null
      */
+    public ServiceInstance(String name, String id, String address, Integer port, Integer sslPort, T payload, long registrationTimeUTC, ServiceType serviceType, UriSpec uriSpec)
+    {
+        this(name, id, address, port, sslPort, payload, registrationTimeUTC, serviceType, uriSpec, true);
+    }
+
+    /**
+     * @param name name of the service
+     * @param id id of this instance (must be unique)
+     * @param address address of this instance
+     * @param port the port for this instance or null
+     * @param sslPort the SSL port for this instance or null
+     * @param payload the payload for this instance or null
+     * @param registrationTimeUTC the time (in UTC) of the registration
+     * @param serviceType type of the service
+     * @param uriSpec the uri spec or null
+     * @param enabled true if the instance should be considered enabled
+     */
     public ServiceInstance(String name, String id, String address, Integer port, Integer sslPort, T payload, long registrationTimeUTC, ServiceType serviceType, UriSpec uriSpec, boolean enabled)
     {
         name = Preconditions.checkNotNull(name, "name cannot be null");
@@ -233,7 +250,7 @@ public class ServiceInstance<T>
         result = 31 * result + (int)(registrationTimeUTC ^ (registrationTimeUTC >>> 32));
         result = 31 * result + (serviceType != null ? serviceType.hashCode() : 0);
         result = 31 * result + (uriSpec != null ? uriSpec.hashCode() : 0);
-        result = 31 * result + (enabled ? 1231 : 1237);
+        result = 31 * result + (enabled ? 1 : 0);
         return result;
     }
 

http://git-wip-us.apache.org/repos/asf/curator/blob/27d3b109/curator-x-discovery/src/main/java/org/apache/curator/x/discovery/details/EnabledInstanceFilter.java
----------------------------------------------------------------------
diff --git a/curator-x-discovery/src/main/java/org/apache/curator/x/discovery/details/EnabledInstanceFilter.java b/curator-x-discovery/src/main/java/org/apache/curator/x/discovery/details/EnabledInstanceFilter.java
deleted file mode 100644
index d153653..0000000
--- a/curator-x-discovery/src/main/java/org/apache/curator/x/discovery/details/EnabledInstanceFilter.java
+++ /dev/null
@@ -1,33 +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.discovery.details;
-
-import org.apache.curator.x.discovery.InstanceFilter;
-import org.apache.curator.x.discovery.ServiceInstance;
-
-public class EnabledInstanceFilter<T> implements InstanceFilter<T>
-{
-
-    @Override
-    public boolean apply(ServiceInstance<T> instance)
-    {
-        return instance.isEnabled();
-    }
-
-}


[4/4] curator git commit: EnabledInstanceFilter class isn't needed

Posted by ra...@apache.org.
EnabledInstanceFilter class 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/467513b3
Tree: http://git-wip-us.apache.org/repos/asf/curator/tree/467513b3
Diff: http://git-wip-us.apache.org/repos/asf/curator/diff/467513b3

Branch: refs/heads/master
Commit: 467513b3d5b6eb1e16b5ee9693ed09a6f703ccf5
Parents: 27d3b10
Author: randgalt <ra...@apache.org>
Authored: Mon Jan 23 21:06:46 2017 -0500
Committer: randgalt <ra...@apache.org>
Committed: Mon Jan 23 21:06:46 2017 -0500

----------------------------------------------------------------------
 .../curator/x/discovery/details/ServiceProviderImpl.java    | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/curator/blob/467513b3/curator-x-discovery/src/main/java/org/apache/curator/x/discovery/details/ServiceProviderImpl.java
----------------------------------------------------------------------
diff --git a/curator-x-discovery/src/main/java/org/apache/curator/x/discovery/details/ServiceProviderImpl.java b/curator-x-discovery/src/main/java/org/apache/curator/x/discovery/details/ServiceProviderImpl.java
index 4cbd126..2ab1434 100644
--- a/curator-x-discovery/src/main/java/org/apache/curator/x/discovery/details/ServiceProviderImpl.java
+++ b/curator-x-discovery/src/main/java/org/apache/curator/x/discovery/details/ServiceProviderImpl.java
@@ -53,7 +53,14 @@ public class ServiceProviderImpl<T> implements ServiceProvider<T>
 
         ArrayList<InstanceFilter<T>> localFilters = Lists.newArrayList(filters);
         localFilters.add(downInstanceManager);
-        localFilters.add(new EnabledInstanceFilter<T>());
+        localFilters.add(new InstanceFilter<T>()
+        {
+            @Override
+            public boolean apply(ServiceInstance<T> instance)
+            {
+                return instance.isEnabled();
+            }
+        });
         instanceProvider = new FilteredInstanceProvider<T>(cache, localFilters);
     }