You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2023/03/11 07:11:24 UTC

[camel] branch camel-3.x updated: CAMEL-19133: camel-zookeeper - Serialize MetaData in camel-cloud service discovery problem. Thanks to geyipeng for patch.

This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch camel-3.x
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/camel-3.x by this push:
     new 73d8fd9b61b CAMEL-19133: camel-zookeeper - Serialize MetaData in camel-cloud service discovery problem. Thanks to geyipeng for patch.
73d8fd9b61b is described below

commit 73d8fd9b61b14fbb20434600ff85187981fae3cc
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Sat Mar 11 08:10:47 2023 +0100

    CAMEL-19133: camel-zookeeper - Serialize MetaData in camel-cloud service discovery problem. Thanks to geyipeng for patch.
---
 .../apache/camel/component/zookeeper/cloud/MetaData.java | 16 ++++++++++++++++
 .../zookeeper/cloud/ZooKeeperServiceDiscovery.java       |  4 ----
 .../zookeeper/cloud/ZooKeeperServiceRegistry.java        | 12 ------------
 .../integration/SpringZooKeeperServiceCallRouteIT.java   | 14 +++++++-------
 .../cloud/integration/ZooKeeperServiceCallRouteIT.java   | 16 ++++++++--------
 .../cloud/integration/ZooKeeperServiceDiscoveryIT.java   | 11 ++++++-----
 .../integration/ZooKeeperServiceRegistrationITBase.java  | 11 ++++++-----
 7 files changed, 43 insertions(+), 41 deletions(-)

diff --git a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/cloud/MetaData.java b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/cloud/MetaData.java
new file mode 100644
index 00000000000..b83fac0b692
--- /dev/null
+++ b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/cloud/MetaData.java
@@ -0,0 +1,16 @@
+package org.apache.camel.component.zookeeper.cloud;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import com.fasterxml.jackson.annotation.JsonRootName;
+
+@JsonRootName("meta")
+public class MetaData extends HashMap<String, String> {
+    public MetaData() {
+    }
+
+    public MetaData(Map<? extends String, ? extends String> meta) {
+        super(meta);
+    }
+}
diff --git a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/cloud/ZooKeeperServiceDiscovery.java b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/cloud/ZooKeeperServiceDiscovery.java
index e6e6366df4f..8e84e17d3fe 100644
--- a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/cloud/ZooKeeperServiceDiscovery.java
+++ b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/cloud/ZooKeeperServiceDiscovery.java
@@ -23,7 +23,6 @@ import java.util.Map;
 import java.util.Objects;
 import java.util.stream.Collectors;
 
-import com.fasterxml.jackson.annotation.JsonRootName;
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.cloud.ServiceDefinition;
 import org.apache.camel.component.zookeeper.ZooKeeperCuratorConfiguration;
@@ -135,7 +134,4 @@ public class ZooKeeperServiceDiscovery extends DefaultServiceDiscovery {
     // Helpers
     // *********************************************
 
-    @JsonRootName("meta")
-    public static final class MetaData extends HashMap<String, String> {
-    }
 }
diff --git a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/cloud/ZooKeeperServiceRegistry.java b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/cloud/ZooKeeperServiceRegistry.java
index 946f91db121..ac32f546431 100644
--- a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/cloud/ZooKeeperServiceRegistry.java
+++ b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/cloud/ZooKeeperServiceRegistry.java
@@ -16,15 +16,12 @@
  */
 package org.apache.camel.component.zookeeper.cloud;
 
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 import java.util.Objects;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.TimeUnit;
 
-import com.fasterxml.jackson.annotation.JsonRootName;
 import org.apache.camel.cloud.ServiceDefinition;
 import org.apache.camel.component.zookeeper.ZooKeeperCuratorHelper;
 import org.apache.camel.impl.cloud.AbstractServiceRegistry;
@@ -381,13 +378,4 @@ public class ZooKeeperServiceRegistry extends AbstractServiceRegistry {
         return ObjectHelper.notNull(host, "service host");
     }
 
-    @JsonRootName("meta")
-    public static final class MetaData extends HashMap<String, String> {
-        public MetaData() {
-        }
-
-        public MetaData(Map<? extends String, ? extends String> meta) {
-            super(meta);
-        }
-    }
 }
diff --git a/components/camel-zookeeper/src/test/java/org/apache/camel/component/zookeeper/cloud/integration/SpringZooKeeperServiceCallRouteIT.java b/components/camel-zookeeper/src/test/java/org/apache/camel/component/zookeeper/cloud/integration/SpringZooKeeperServiceCallRouteIT.java
index 535de33ccca..3469709cc72 100644
--- a/components/camel-zookeeper/src/test/java/org/apache/camel/component/zookeeper/cloud/integration/SpringZooKeeperServiceCallRouteIT.java
+++ b/components/camel-zookeeper/src/test/java/org/apache/camel/component/zookeeper/cloud/integration/SpringZooKeeperServiceCallRouteIT.java
@@ -18,7 +18,7 @@ package org.apache.camel.component.zookeeper.cloud.integration;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.component.zookeeper.cloud.ZooKeeperServiceDiscovery;
+import org.apache.camel.component.zookeeper.cloud.MetaData;
 import org.apache.camel.spi.PropertiesComponent;
 import org.apache.camel.test.AvailablePortFinderPropertiesFunction;
 import org.apache.camel.test.infra.zookeeper.services.ZooKeeperService;
@@ -45,7 +45,7 @@ public class SpringZooKeeperServiceCallRouteIT extends CamelSpringTestSupport {
     private static final String SERVICE_PATH = "/camel";
 
     private CuratorFramework curator;
-    private ServiceDiscovery<ZooKeeperServiceDiscovery.MetaData> discovery;
+    private ServiceDiscovery<MetaData> discovery;
     private AvailablePortFinderPropertiesFunction function;
 
     // ***********************
@@ -73,17 +73,17 @@ public class SpringZooKeeperServiceCallRouteIT extends CamelSpringTestSupport {
                 .retryPolicy(new ExponentialBackoffRetry(1000, 3))
                 .build();
 
-        discovery = ServiceDiscoveryBuilder.builder(ZooKeeperServiceDiscovery.MetaData.class)
+        discovery = ServiceDiscoveryBuilder.builder(MetaData.class)
                 .client(curator)
                 .basePath(SERVICE_PATH)
-                .serializer(new JsonInstanceSerializer<>(ZooKeeperServiceDiscovery.MetaData.class))
+                .serializer(new JsonInstanceSerializer<>(MetaData.class))
                 .build();
 
         curator.start();
         discovery.start();
 
         discovery.registerService(
-                ServiceInstance.<ZooKeeperServiceDiscovery.MetaData> builder()
+                ServiceInstance.<MetaData> builder()
                         .address("127.0.0.1")
                         .port(Integer.parseInt(function.apply("service-1")))
                         .name(SERVICE_NAME)
@@ -91,7 +91,7 @@ public class SpringZooKeeperServiceCallRouteIT extends CamelSpringTestSupport {
                         .build());
 
         discovery.registerService(
-                ServiceInstance.<ZooKeeperServiceDiscovery.MetaData> builder()
+                ServiceInstance.<MetaData> builder()
                         .address("127.0.0.1")
                         .port(Integer.parseInt(function.apply("service-2")))
                         .name(SERVICE_NAME)
@@ -99,7 +99,7 @@ public class SpringZooKeeperServiceCallRouteIT extends CamelSpringTestSupport {
                         .build());
 
         discovery.registerService(
-                ServiceInstance.<ZooKeeperServiceDiscovery.MetaData> builder()
+                ServiceInstance.<MetaData> builder()
                         .address("127.0.0.1")
                         .port(Integer.parseInt(function.apply("service-3")))
                         .name(SERVICE_NAME)
diff --git a/components/camel-zookeeper/src/test/java/org/apache/camel/component/zookeeper/cloud/integration/ZooKeeperServiceCallRouteIT.java b/components/camel-zookeeper/src/test/java/org/apache/camel/component/zookeeper/cloud/integration/ZooKeeperServiceCallRouteIT.java
index 0ff17def261..8d0c4f74771 100644
--- a/components/camel-zookeeper/src/test/java/org/apache/camel/component/zookeeper/cloud/integration/ZooKeeperServiceCallRouteIT.java
+++ b/components/camel-zookeeper/src/test/java/org/apache/camel/component/zookeeper/cloud/integration/ZooKeeperServiceCallRouteIT.java
@@ -22,7 +22,7 @@ import java.util.List;
 import org.apache.camel.RoutesBuilder;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.component.zookeeper.cloud.ZooKeeperServiceDiscovery;
+import org.apache.camel.component.zookeeper.cloud.MetaData;
 import org.apache.camel.test.AvailablePortFinder;
 import org.apache.camel.test.infra.zookeeper.services.ZooKeeperService;
 import org.apache.camel.test.infra.zookeeper.services.ZooKeeperServiceFactory;
@@ -47,8 +47,8 @@ public class ZooKeeperServiceCallRouteIT extends CamelTestSupport {
     private static final String SERVICE_PATH = "/camel";
 
     private CuratorFramework curator;
-    private ServiceDiscovery<ZooKeeperServiceDiscovery.MetaData> discovery;
-    private List<ServiceInstance<ZooKeeperServiceDiscovery.MetaData>> instances;
+    private ServiceDiscovery<MetaData> discovery;
+    private List<ServiceInstance<MetaData>> instances;
     private List<String> expectedBodies;
 
     // *************************************************************************
@@ -64,10 +64,10 @@ public class ZooKeeperServiceCallRouteIT extends CamelTestSupport {
                 .retryPolicy(new ExponentialBackoffRetry(1000, 3))
                 .build();
 
-        discovery = ServiceDiscoveryBuilder.builder(ZooKeeperServiceDiscovery.MetaData.class)
+        discovery = ServiceDiscoveryBuilder.builder(MetaData.class)
                 .client(curator)
                 .basePath(SERVICE_PATH)
-                .serializer(new JsonInstanceSerializer<>(ZooKeeperServiceDiscovery.MetaData.class))
+                .serializer(new JsonInstanceSerializer<>(MetaData.class))
                 .build();
 
         curator.start();
@@ -77,8 +77,8 @@ public class ZooKeeperServiceCallRouteIT extends CamelTestSupport {
         expectedBodies = new ArrayList<>(SERVICE_COUNT);
 
         for (int i = 0; i < SERVICE_COUNT; i++) {
-            ServiceInstance<ZooKeeperServiceDiscovery.MetaData> instance
-                    = ServiceInstance.<ZooKeeperServiceDiscovery.MetaData> builder()
+            ServiceInstance<MetaData> instance
+                    = ServiceInstance.<MetaData> builder()
                             .address("127.0.0.1")
                             .port(AvailablePortFinder.getNextAvailable())
                             .name(SERVICE_NAME)
@@ -95,7 +95,7 @@ public class ZooKeeperServiceCallRouteIT extends CamelTestSupport {
     public void tearDown() throws Exception {
         super.tearDown();
 
-        for (ServiceInstance<ZooKeeperServiceDiscovery.MetaData> instace : instances) {
+        for (ServiceInstance<MetaData> instace : instances) {
             try {
                 discovery.unregisterService(instace);
             } catch (Exception e) {
diff --git a/components/camel-zookeeper/src/test/java/org/apache/camel/component/zookeeper/cloud/integration/ZooKeeperServiceDiscoveryIT.java b/components/camel-zookeeper/src/test/java/org/apache/camel/component/zookeeper/cloud/integration/ZooKeeperServiceDiscoveryIT.java
index 9b3f9ebe01d..33bcf1e83d7 100644
--- a/components/camel-zookeeper/src/test/java/org/apache/camel/component/zookeeper/cloud/integration/ZooKeeperServiceDiscoveryIT.java
+++ b/components/camel-zookeeper/src/test/java/org/apache/camel/component/zookeeper/cloud/integration/ZooKeeperServiceDiscoveryIT.java
@@ -23,6 +23,7 @@ import java.util.concurrent.TimeUnit;
 import org.apache.camel.cloud.ServiceDefinition;
 import org.apache.camel.component.zookeeper.ZooKeeperCuratorConfiguration;
 import org.apache.camel.component.zookeeper.ZooKeeperCuratorHelper;
+import org.apache.camel.component.zookeeper.cloud.MetaData;
 import org.apache.camel.component.zookeeper.cloud.ZooKeeperServiceDiscovery;
 import org.apache.camel.test.AvailablePortFinder;
 import org.apache.camel.test.infra.zookeeper.services.ZooKeeperService;
@@ -54,19 +55,19 @@ class ZooKeeperServiceDiscoveryIT {
             configuration.setBasePath("/camel");
             configuration.setCuratorFramework(curatorFramework);
 
-            try (ServiceDiscovery<ZooKeeperServiceDiscovery.MetaData> zkDiscovery
+            try (ServiceDiscovery<MetaData> zkDiscovery
                     = ZooKeeperCuratorHelper.createServiceDiscovery(
                             configuration,
                             curatorFramework,
-                            ZooKeeperServiceDiscovery.MetaData.class)) {
+                            MetaData.class)) {
 
                 curatorFramework.start();
                 zkDiscovery.start();
 
-                List<ServiceInstance<ZooKeeperServiceDiscovery.MetaData>> instances = new ArrayList<>();
+                List<ServiceInstance<MetaData>> instances = new ArrayList<>();
                 for (int i = 0; i < 3; i++) {
-                    ServiceInstance<ZooKeeperServiceDiscovery.MetaData> instance
-                            = ServiceInstance.<ZooKeeperServiceDiscovery.MetaData> builder()
+                    ServiceInstance<MetaData> instance
+                            = ServiceInstance.<MetaData> builder()
                                     .address("127.0.0.1")
                                     .port(AvailablePortFinder.getNextAvailable())
                                     .name("my-service")
diff --git a/components/camel-zookeeper/src/test/java/org/apache/camel/component/zookeeper/cloud/integration/ZooKeeperServiceRegistrationITBase.java b/components/camel-zookeeper/src/test/java/org/apache/camel/component/zookeeper/cloud/integration/ZooKeeperServiceRegistrationITBase.java
index 98fbb025004..390747aa9a1 100644
--- a/components/camel-zookeeper/src/test/java/org/apache/camel/component/zookeeper/cloud/integration/ZooKeeperServiceRegistrationITBase.java
+++ b/components/camel-zookeeper/src/test/java/org/apache/camel/component/zookeeper/cloud/integration/ZooKeeperServiceRegistrationITBase.java
@@ -24,6 +24,7 @@ import java.util.concurrent.TimeUnit;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.cloud.ServiceDefinition;
+import org.apache.camel.component.zookeeper.cloud.MetaData;
 import org.apache.camel.component.zookeeper.cloud.ZooKeeperServiceRegistry;
 import org.apache.camel.test.AvailablePortFinder;
 import org.apache.camel.test.infra.zookeeper.services.ZooKeeperContainer;
@@ -52,7 +53,7 @@ public abstract class ZooKeeperServiceRegistrationITBase extends CamelTestSuppor
 
     protected ZooKeeperContainer container;
     protected CuratorFramework curator;
-    protected ServiceDiscovery<ZooKeeperServiceRegistry.MetaData> discovery;
+    protected ServiceDiscovery<MetaData> discovery;
 
     // ***********************
     // Lifecycle
@@ -70,10 +71,10 @@ public abstract class ZooKeeperServiceRegistrationITBase extends CamelTestSuppor
                 .retryPolicy(new ExponentialBackoffRetry(1000, 3))
                 .build();
 
-        discovery = ServiceDiscoveryBuilder.builder(ZooKeeperServiceRegistry.MetaData.class)
+        discovery = ServiceDiscoveryBuilder.builder(MetaData.class)
                 .client(curator)
                 .basePath(SERVICE_PATH)
-                .serializer(new JsonInstanceSerializer<>(ZooKeeperServiceRegistry.MetaData.class))
+                .serializer(new JsonInstanceSerializer<>(MetaData.class))
                 .build();
 
         curator.start();
@@ -126,9 +127,9 @@ public abstract class ZooKeeperServiceRegistrationITBase extends CamelTestSuppor
         // check that service has been registered
         await().atMost(2, TimeUnit.MINUTES)
                 .untilAsserted(() -> assertEquals(1, discovery.queryForInstances(SERVICE_NAME).size()));
-        Collection<ServiceInstance<ZooKeeperServiceRegistry.MetaData>> services = discovery.queryForInstances(SERVICE_NAME);
+        Collection<ServiceInstance<MetaData>> services = discovery.queryForInstances(SERVICE_NAME);
 
-        ServiceInstance<ZooKeeperServiceRegistry.MetaData> instance = services.iterator().next();
+        ServiceInstance<MetaData> instance = services.iterator().next();
         assertEquals(SERVICE_PORT, (int) instance.getPort());
         assertEquals("localhost", instance.getAddress());
         assertEquals("http", instance.getPayload().get(ServiceDefinition.SERVICE_META_PROTOCOL));