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 2019/08/21 09:23:38 UTC

[camel] 02/03: CAMEL-13870: Fast property configuration of Camel endpoints. Work in progress.

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

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

commit 5a1ba424b64557cbd0f1728d74d5a2e8664e817a
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed Aug 21 11:21:07 2019 +0200

    CAMEL-13870: Fast property configuration of Camel endpoints. Work in progress.
---
 .../component/atomix/AtomixConfiguration.java      | 23 +++++++++++-----------
 .../client/AbstractAtomixClientComponent.java      |  2 +-
 .../atomix/client/AtomixClientHelper.java          | 11 ++++++-----
 .../atomix/cluster/AtomixClusterClientService.java | 11 +++++------
 .../atomix/cluster/AtomixClusterHelper.java        | 11 ++++++-----
 .../atomix/cluster/AtomixClusterService.java       | 12 +++++------
 6 files changed, 35 insertions(+), 35 deletions(-)

diff --git a/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/AtomixConfiguration.java b/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/AtomixConfiguration.java
index 342f717..f424464 100644
--- a/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/AtomixConfiguration.java
+++ b/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/AtomixConfiguration.java
@@ -26,19 +26,18 @@ import java.util.stream.Stream;
 
 import io.atomix.Atomix;
 import io.atomix.catalyst.transport.Address;
-import io.atomix.catalyst.transport.Transport;
 import io.atomix.catalyst.transport.netty.NettyTransport;
 import io.atomix.resource.ReadConsistency;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.util.ObjectHelper;
 
 public class AtomixConfiguration<T extends Atomix> implements Cloneable {
-    @UriParam(javaType = "io.atomix.Atomix")
-    private T atomix;
+    @UriParam
+    private Atomix atomix;
     @UriParam(javaType = "java.lang.String")
     private List<Address> nodes = Collections.emptyList();
-    @UriParam(javaType = "io.atomix.catalyst.transport.Transport", defaultValue = "io.atomix.catalyst.transport.netty.NettyTransport")
-    private Class<? extends Transport> transport = NettyTransport.class;
+    @UriParam(defaultValue = "io.atomix.catalyst.transport.netty.NettyTransport")
+    private String transportClassName = NettyTransport.class.getName();
     @UriParam
     private String configurationUri;
     @UriParam(label = "advanced")
@@ -62,14 +61,14 @@ public class AtomixConfiguration<T extends Atomix> implements Cloneable {
     // Properties
     // *****************************************
 
-    public T getAtomix() {
+    public Atomix getAtomix() {
         return atomix;
     }
 
     /**
      * The Atomix instance to use
      */
-    public void setAtomix(T client) {
+    public void setAtomix(Atomix client) {
         this.atomix = client;
     }
 
@@ -90,15 +89,15 @@ public class AtomixConfiguration<T extends Atomix> implements Cloneable {
         }
     }
 
-    public Class<? extends Transport> getTransport() {
-        return transport;
+    public String getTransportClassName() {
+        return transportClassName;
     }
 
     /**
-     * Sets the Atomix transport.
+     * The class name (fqn) of the Atomix transport
      */
-    public void setTransport(Class<? extends Transport> transport) {
-        this.transport = transport;
+    public void setTransportClassName(String transportClassName) {
+        this.transportClassName = transportClassName;
     }
 
     public String getConfigurationUri() {
diff --git a/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/client/AbstractAtomixClientComponent.java b/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/client/AbstractAtomixClientComponent.java
index f6d263d..88b2fee 100644
--- a/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/client/AbstractAtomixClientComponent.java
+++ b/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/client/AbstractAtomixClientComponent.java
@@ -40,7 +40,7 @@ public abstract class AbstractAtomixClientComponent<C extends AtomixClientConfig
     // *****************************************
 
     public AtomixClient getAtomix() {
-        return getComponentConfiguration().getAtomix();
+        return (AtomixClient) getComponentConfiguration().getAtomix();
     }
 
     /**
diff --git a/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/client/AtomixClientHelper.java b/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/client/AtomixClientHelper.java
index 06ca370..9909d4f 100644
--- a/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/client/AtomixClientHelper.java
+++ b/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/client/AtomixClientHelper.java
@@ -20,16 +20,18 @@ import java.io.InputStream;
 import java.util.Properties;
 
 import io.atomix.AtomixClient;
+import io.atomix.catalyst.transport.Transport;
 import org.apache.camel.CamelContext;
 import org.apache.camel.support.ResourceHelper;
 import org.apache.camel.util.ObjectHelper;
 
 public final class AtomixClientHelper {
+
     private AtomixClientHelper() {
     }
 
     public static AtomixClient createClient(CamelContext camelContext, AtomixClientConfiguration configuration) throws Exception {
-        AtomixClient atomix = configuration.getAtomix();
+        AtomixClient atomix = (AtomixClient) configuration.getAtomix();
 
         if (atomix == null) {
             final AtomixClient.Builder atomixBuilder;
@@ -47,10 +49,9 @@ public final class AtomixClientHelper {
                 atomixBuilder = AtomixClient.builder();
             }
 
-            if (configuration.getTransport() != null) {
-                atomixBuilder.withTransport(
-                    camelContext.getInjector().newInstance(configuration.getTransport())
-                );
+            if (configuration.getTransportClassName() != null) {
+                Class<? extends Transport> clazz = camelContext.getClassResolver().resolveMandatoryClass(configuration.getTransportClassName(), Transport.class);
+                atomixBuilder.withTransport(camelContext.getInjector().newInstance(clazz));
             }
 
             atomix = atomixBuilder.build();
diff --git a/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/cluster/AtomixClusterClientService.java b/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/cluster/AtomixClusterClientService.java
index 846aa73..524325f 100644
--- a/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/cluster/AtomixClusterClientService.java
+++ b/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/cluster/AtomixClusterClientService.java
@@ -20,7 +20,6 @@ import java.util.List;
 
 import io.atomix.AtomixClient;
 import io.atomix.catalyst.transport.Address;
-import io.atomix.catalyst.transport.Transport;
 import org.apache.camel.CamelContext;
 import org.apache.camel.component.atomix.client.AtomixClientConfiguration;
 import org.apache.camel.component.atomix.client.AtomixClientHelper;
@@ -68,16 +67,16 @@ public final class AtomixClusterClientService extends AbstractCamelClusterServic
         configuration.setNodes(nodes);
     }
 
-    public Class<? extends Transport> getTransport() {
-        return configuration.getTransport();
+    public String getTransport() {
+        return configuration.getTransportClassName();
     }
 
-    public void setTransport(Class<? extends Transport> transport) {
-        configuration.setTransport(transport);
+    public void setTransportClassName(String transport) {
+        configuration.setTransportClassName(transport);
     }
 
     public AtomixClient getAtomix() {
-        return configuration.getAtomix();
+        return (AtomixClient) configuration.getAtomix();
     }
 
     public void setAtomix(AtomixClient atomix) {
diff --git a/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/cluster/AtomixClusterHelper.java b/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/cluster/AtomixClusterHelper.java
index c6f9e39..334a6e0 100644
--- a/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/cluster/AtomixClusterHelper.java
+++ b/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/cluster/AtomixClusterHelper.java
@@ -21,12 +21,14 @@ import java.util.Properties;
 
 import io.atomix.AtomixReplica;
 import io.atomix.catalyst.transport.Address;
+import io.atomix.catalyst.transport.Transport;
 import io.atomix.copycat.server.storage.Storage;
 import org.apache.camel.CamelContext;
 import org.apache.camel.support.ResourceHelper;
 import org.apache.camel.util.ObjectHelper;
 
 public final class AtomixClusterHelper {
+
     private AtomixClusterHelper() {
     }
 
@@ -35,7 +37,7 @@ public final class AtomixClusterHelper {
     }
 
     public static AtomixReplica createReplica(CamelContext camelContext, Address address, AtomixClusterConfiguration configuration) throws Exception {
-        AtomixReplica atomix = configuration.getAtomix();
+        AtomixReplica atomix = (AtomixReplica) configuration.getAtomix();
 
         if (atomix == null) {
             final AtomixReplica.Builder atomixBuilder;
@@ -59,10 +61,9 @@ public final class AtomixClusterHelper {
 
             atomixBuilder.withStorage(storageBuilder.build());
 
-            if (configuration.getTransport() != null) {
-                atomixBuilder.withTransport(
-                    camelContext.getInjector().newInstance(configuration.getTransport())
-                );
+            if (configuration.getTransportClassName() != null) {
+                Class<? extends Transport> clazz = camelContext.getClassResolver().resolveMandatoryClass(configuration.getTransportClassName(), Transport.class);
+                atomixBuilder.withTransport(camelContext.getInjector().newInstance(clazz));
             }
             if (configuration.getClientTransport() != null) {
                 atomixBuilder.withClientTransport(
diff --git a/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/cluster/AtomixClusterService.java b/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/cluster/AtomixClusterService.java
index 44333bc..cfb78f3 100644
--- a/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/cluster/AtomixClusterService.java
+++ b/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/cluster/AtomixClusterService.java
@@ -95,16 +95,16 @@ public final class AtomixClusterService extends AbstractCamelClusterService<Atom
         configuration.setNodes(nodes);
     }
 
-    public Class<? extends Transport> getTransport() {
-        return configuration.getTransport();
+    public String getTransport() {
+        return configuration.getTransportClassName();
     }
 
-    public void setTransport(Class<? extends Transport> transport) {
-        configuration.setTransport(transport);
+    public void setTransportClassName(String transport) {
+        configuration.setTransportClassName(transport);
     }
 
     public AtomixReplica getAtomix() {
-        return configuration.getAtomix();
+        return (AtomixReplica) configuration.getAtomix();
     }
 
     public void setAtomix(AtomixReplica atomix) {
@@ -165,7 +165,7 @@ public final class AtomixClusterService extends AbstractCamelClusterService<Atom
                 this.atomix.bootstrap(configuration.getNodes()).join();
                 log.debug("Bootstrap cluster done");
             } else {
-                log.debug("Bootstrap cluster on address {}", address, configuration.getNodes());
+                log.debug("Bootstrap cluster on address {}", address);
                 this.atomix.bootstrap().join();
                 log.debug("Bootstrap cluster done");
             }