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 <[email protected]> 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"); }
