This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch camel-3.20.x in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/camel-3.20.x by this push: new 6abaa25f4a1 CAMEL-19133: camel-zookeeper - Serialize MetaData in camel-cloud service discovery problem. Thanks to geyipeng for patch. 6abaa25f4a1 is described below commit 6abaa25f4a1052878210363cac595b0e89c023f3 Author: Claus Ibsen <claus.ib...@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));