You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2017/04/21 09:21:00 UTC

[4/5] camel git commit: CAMEL-10798 Splitted camel-ignite component for each endpoint

http://git-wip-us.apache.org/repos/asf/camel/blob/df656782/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/cache/IgniteCacheEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/cache/IgniteCacheEndpoint.java b/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/cache/IgniteCacheEndpoint.java
index d6a3049..b31cbb6 100644
--- a/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/cache/IgniteCacheEndpoint.java
+++ b/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/cache/IgniteCacheEndpoint.java
@@ -25,11 +25,13 @@ import org.apache.camel.CamelException;
 import org.apache.camel.Consumer;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
+import org.apache.camel.component.ignite.AbstractIgniteComponent;
 import org.apache.camel.component.ignite.AbstractIgniteEndpoint;
 import org.apache.camel.component.ignite.IgniteComponent;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
+import org.apache.camel.spi.UriPath;
 import org.apache.ignite.IgniteCache;
 import org.apache.ignite.cache.CacheEntryEventSerializableFilter;
 import org.apache.ignite.cache.CachePeekMode;
@@ -39,48 +41,54 @@ import org.apache.ignite.cache.query.Query;
 /**
  * Ignite Cache endpoint.
  */
-@UriEndpoint(scheme = "ignite:cache", title = "Ignite Cache", syntax = "ignite:cache:[cacheName]", label = "nosql,cache,compute", 
+@UriEndpoint(firstVersion = "2.17.0", scheme = "ignite-cache", title = "Ignite Cache", syntax = "ignite-cache:[cacheName]", label = "nosql,cache,compute", 
     consumerClass = IgniteCacheContinuousQueryConsumer.class)
 public class IgniteCacheEndpoint extends AbstractIgniteEndpoint {
 
-    @UriParam @Metadata(required = "true")
+    @UriPath @Metadata(required = "true")
     private String cacheName;
 
-    @UriParam
+    @UriParam(label = "producer")
     private IgniteCacheOperation operation;
 
-    @UriParam
+    @UriParam(label = "producer", defaultValue = "false")
     private boolean failIfInexistentCache;
 
-    @UriParam
+    @UriParam(label = "producer", defaultValue = "ALL")
     private CachePeekMode cachePeekMode = CachePeekMode.ALL;
 
-    @UriParam
+    @UriParam(label = "producer,consumer")
     private Query<Entry<Object, Object>> query;
 
-    @UriParam
+    @UriParam(label = "consumer")
     private CacheEntryEventSerializableFilter<Object, Object> remoteFilter;
 
-    @UriParam
+    @UriParam(label = "consumer", defaultValue = "true")
     private boolean oneExchangePerUpdate = true;
 
-    @UriParam
+    @UriParam(label = "consumer", defaultValue = "false")
     private boolean fireExistingQueryResults;
 
-    @UriParam
+    @UriParam(label = "consumer", defaultValue = "true", defaultValueNote = "ContinuousQuery.DFLT_AUTO_UNSUBSCRIBE")
     private boolean autoUnsubscribe = ContinuousQuery.DFLT_AUTO_UNSUBSCRIBE;
 
-    @UriParam
+    @UriParam(label = "consumer", defaultValue = "1", defaultValueNote = "ContinuousQuery.DFLT_PAGE_SIZE")
     private int pageSize = ContinuousQuery.DFLT_PAGE_SIZE;
 
-    @UriParam
+    @UriParam(label = "consumer", defaultValue = "0", defaultValueNote = "ContinuousQuery.DFLT_TIME_INTERVAL")
     private long timeInterval = ContinuousQuery.DFLT_TIME_INTERVAL;
 
+    @Deprecated
     public IgniteCacheEndpoint(String endpointUri, URI remainingUri, Map<String, Object> parameters, IgniteComponent igniteComponent) {
         super(endpointUri, igniteComponent);
         cacheName = remainingUri.getHost();
     }
 
+    public IgniteCacheEndpoint(String endpointUri, String remaining, Map<String, Object> parameters, IgniteCacheComponent igniteComponent) {
+        super(endpointUri, igniteComponent);
+        cacheName = remaining;
+    }
+
     @Override
     public Producer createProducer() throws Exception {
         return new IgniteCacheProducer(this, obtainCache());
@@ -113,9 +121,9 @@ public class IgniteCacheEndpoint extends AbstractIgniteEndpoint {
     }
 
     /**
-     * Sets the cache name.
+     * The cache name.
      * 
-     * @param cacheName
+     * @param cacheName cache name
      */
     public void setCacheName(String cacheName) {
         this.cacheName = cacheName;
@@ -124,14 +132,15 @@ public class IgniteCacheEndpoint extends AbstractIgniteEndpoint {
     /**
      * Gets the cache operation to invoke.
      * 
-     * @return
+     * @return cache name
      */
     public IgniteCacheOperation getOperation() {
         return operation;
     }
 
     /**
-     * Sets the cache operation to invoke.
+     * The cache operation to invoke.
+     * <p>Possible values: GET, PUT, REMOVE, SIZE, REBALANCE, QUERY, CLEAR.</p>
      * 
      * @param operation
      */
@@ -140,7 +149,7 @@ public class IgniteCacheEndpoint extends AbstractIgniteEndpoint {
     }
 
     /**
-     * Gets whether to fail the initialization if the cache doesn't exist.
+     * Whether to fail the initialization if the cache doesn't exist.
      * 
      * @return
      */
@@ -149,7 +158,7 @@ public class IgniteCacheEndpoint extends AbstractIgniteEndpoint {
     }
 
     /**
-     * Sets whether to fail the initialization if the cache doesn't exist.
+     * Whether to fail the initialization if the cache doesn't exist.
      * 
      * @param failIfInexistentCache
      */
@@ -167,7 +176,7 @@ public class IgniteCacheEndpoint extends AbstractIgniteEndpoint {
     }
 
     /**
-     * Sets the {@link CachePeekMode}, only needed for operations that require it ({@link IgniteCacheOperation#SIZE}).
+     * The {@link CachePeekMode}, only needed for operations that require it ({@link IgniteCacheOperation#SIZE}).
      * 
      * @param cachePeekMode
      */
@@ -186,7 +195,7 @@ public class IgniteCacheEndpoint extends AbstractIgniteEndpoint {
     }
 
     /**
-     * Sets the query to execute, only needed for operations that require it,
+     * The {@link Query} to execute, only needed for operations that require it,
      * and for the Continuous Query Consumer.
      * 
      * @param query
@@ -205,7 +214,7 @@ public class IgniteCacheEndpoint extends AbstractIgniteEndpoint {
     }
 
     /**
-     * Sets the remote filter, only used by the Continuous Query Consumer.
+     * The remote filter, only used by the Continuous Query Consumer.
      * 
      * @param remoteFilter
      */
@@ -224,7 +233,7 @@ public class IgniteCacheEndpoint extends AbstractIgniteEndpoint {
     }
 
     /**
-     * Sets whether to pack each update in an individual Exchange, even if multiple updates are
+     * Whether to pack each update in an individual Exchange, even if multiple updates are
      * received in one batch. Only used by the Continuous Query Consumer.
      * 
      * @param oneExchangePerUpdate
@@ -243,7 +252,7 @@ public class IgniteCacheEndpoint extends AbstractIgniteEndpoint {
     }
 
     /**
-     * Sets whether auto unsubscribe is enabled in the Continuous Query Consumer.
+     * Whether auto unsubscribe is enabled in the Continuous Query Consumer.
      * 
      * @param autoUnsubscribe
      */
@@ -261,7 +270,7 @@ public class IgniteCacheEndpoint extends AbstractIgniteEndpoint {
     }
 
     /**
-     * Sets the page size. Only used by the Continuous Query Consumer.
+     * The page size. Only used by the Continuous Query Consumer.
      * 
      * @param pageSize
      */
@@ -280,7 +289,7 @@ public class IgniteCacheEndpoint extends AbstractIgniteEndpoint {
     }
 
     /**
-     * Sets whether to process existing results that match the query. Used on initialization of 
+     * Whether to process existing results that match the query. Used on initialization of 
      * the Continuous Query Consumer.
      * 
      * @param fireExistingQueryResults
@@ -299,7 +308,7 @@ public class IgniteCacheEndpoint extends AbstractIgniteEndpoint {
     }
 
     /**
-     * Sets the time interval for the Continuous Query Consumer.
+     * The time interval for the Continuous Query Consumer.
      * 
      * @param timeInterval
      */

http://git-wip-us.apache.org/repos/asf/camel/blob/df656782/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/compute/IgniteComputeComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/compute/IgniteComputeComponent.java b/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/compute/IgniteComputeComponent.java
new file mode 100644
index 0000000..e182182
--- /dev/null
+++ b/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/compute/IgniteComputeComponent.java
@@ -0,0 +1,78 @@
+/**
+ * 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.camel.component.ignite.compute;
+
+import java.io.InputStream;
+import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URL;
+import java.util.Map;
+
+import org.apache.camel.Endpoint;
+import org.apache.camel.component.ignite.AbstractIgniteComponent;
+import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.URISupport;
+import org.apache.ignite.Ignite;
+import org.apache.ignite.Ignition;
+import org.apache.ignite.configuration.IgniteConfiguration;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * The Ignite Compute Component.
+ */
+public class IgniteComputeComponent extends AbstractIgniteComponent {
+
+    public static IgniteComputeComponent fromIgnite(Ignite ignite) {
+        IgniteComputeComponent answer = new IgniteComputeComponent();
+        answer.setIgnite(ignite);
+        return answer;
+    }
+
+    public static IgniteComputeComponent fromConfiguration(IgniteConfiguration configuration) {
+        IgniteComputeComponent answer = new IgniteComputeComponent();
+        answer.setIgniteConfiguration(configuration);
+        return answer;
+    }
+
+    public static IgniteComputeComponent fromInputStream(InputStream inputStream) {
+        IgniteComputeComponent answer = new IgniteComputeComponent();
+        answer.setConfigurationResource(inputStream);
+        return answer;
+    }
+
+    public static IgniteComputeComponent fromUrl(URL url) {
+        IgniteComputeComponent answer = new IgniteComputeComponent();
+        answer.setConfigurationResource(url);
+        return answer;
+    }
+
+    public static IgniteComputeComponent fromLocation(String location) {
+        IgniteComputeComponent answer = new IgniteComputeComponent();
+        answer.setConfigurationResource(location);
+        return answer;
+    }
+
+    @Override
+    protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception {
+        ObjectHelper.notNull(getCamelContext(), "Camel Context");
+        IgniteComputeEndpoint answer = new IgniteComputeEndpoint(uri, remaining, parameters, this);
+        setProperties(answer, parameters);
+        return answer;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/df656782/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/compute/IgniteComputeEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/compute/IgniteComputeEndpoint.java b/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/compute/IgniteComputeEndpoint.java
index d6a3eb2..bdaa8c7 100644
--- a/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/compute/IgniteComputeEndpoint.java
+++ b/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/compute/IgniteComputeEndpoint.java
@@ -25,36 +25,46 @@ import org.apache.camel.Producer;
 import org.apache.camel.component.ignite.AbstractIgniteEndpoint;
 import org.apache.camel.component.ignite.ClusterGroupExpression;
 import org.apache.camel.component.ignite.IgniteComponent;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
+import org.apache.camel.spi.UriPath;
 import org.apache.ignite.Ignite;
 import org.apache.ignite.IgniteCompute;
 
 /**
  * Ignite Compute endpoint.
  */
-@UriEndpoint(scheme = "ignite:compute", title = "Ignite Compute", syntax = "ignite:compute:[endpointId]", label = "nosql,cache,compute", producerOnly = true)
+@UriEndpoint(firstVersion = "2.17.0", scheme = "ignite-compute", title = "Ignite Compute", syntax = "ignite-compute:[endpointId]", label = "nosql,cache,compute", producerOnly = true)
 public class IgniteComputeEndpoint extends AbstractIgniteEndpoint {
 
-    @UriParam
+    @UriPath @Metadata(required = "true")
+    private String endpointId;
+
+    @UriParam(label = "producer")
     private ClusterGroupExpression clusterGroupExpression;
 
-    @UriParam
+    @UriParam(label = "producer") @Metadata(required = "true")
     private IgniteComputeExecutionType executionType;
 
-    @UriParam
+    @UriParam(label = "producer")
     private String taskName;
 
-    @UriParam
+    @UriParam(label = "producer")
     private String computeName;
 
-    @UriParam
+    @UriParam(label = "producer")
     private Long timeoutMillis;
 
+    @Deprecated
     public IgniteComputeEndpoint(String uri, URI remainingUri, Map<String, Object> parameters, IgniteComponent igniteComponent) throws ClassNotFoundException {
         super(uri, igniteComponent);
     }
 
+    public IgniteComputeEndpoint(String uri, String remaining, Map<String, Object> parameters, IgniteComputeComponent igniteComponent) throws ClassNotFoundException {
+        super(uri, igniteComponent);
+    }
+
     @Override
     public Producer createProducer() throws Exception {
         return new IgniteComputeProducer(this);
@@ -81,6 +91,42 @@ public class IgniteComputeEndpoint extends AbstractIgniteEndpoint {
     }
 
     /**
+     * Gets the endpoint ID.
+     * 
+     * @return endpoint ID (not used)
+     */
+    public String getEndpointId() {
+        return endpointId;
+    }
+
+    /**
+     * The endpoint ID (not used).
+     * 
+     * @param endpointId endpoint ID (not used)
+     */
+    public void setEndpointId(String endpointId) {
+        this.endpointId = endpointId;
+    }
+
+    /**
+     * Gets the cluster group expression.
+     * 
+     * @return cluster group expression
+     */
+    public ClusterGroupExpression getClusterGroupExpression() {
+        return clusterGroupExpression;
+    }
+
+    /**
+     * An expression that returns the Cluster Group for the IgniteCompute instance.
+     * 
+     * @param clusterGroupExpression cluster group expression
+     */
+    public void setClusterGroupExpression(ClusterGroupExpression clusterGroupExpression) {
+        this.clusterGroupExpression = clusterGroupExpression;
+    }
+
+    /**
      * Gets the execution type of this producer.
      * 
      * @return
@@ -90,7 +136,9 @@ public class IgniteComputeEndpoint extends AbstractIgniteEndpoint {
     }
 
     /**
-     * Sets the execution type of this producer.
+     * The compute operation to perform. Possible values: CALL, BROADCAST, APPLY,
+     *  EXECUTE, RUN, AFFINITY_CALL, AFFINITY_RUN.
+     * The component expects different payload types depending on the operation.
      * 
      * @param executionType
      */
@@ -108,7 +156,7 @@ public class IgniteComputeEndpoint extends AbstractIgniteEndpoint {
     }
 
     /**
-     * Sets the task name, only applicable if using the {@link IgniteComputeExecutionType#EXECUTE} execution type.
+     * The task name, only applicable if using the {@link IgniteComputeExecutionType#EXECUTE} execution type.
      * 
      * @param taskName
      */
@@ -126,7 +174,7 @@ public class IgniteComputeEndpoint extends AbstractIgniteEndpoint {
     }
 
     /**
-     * Sets the name of the compute job, which will be set via {@link IgniteCompute#withName(String)}.
+     * The name of the compute job, which will be set via {@link IgniteCompute#withName(String)}.
      * 
      * @param computeName
      */
@@ -144,7 +192,7 @@ public class IgniteComputeEndpoint extends AbstractIgniteEndpoint {
     }
 
     /**
-     * Sets the timeout interval for triggered jobs, in milliseconds, which will be set via {@link IgniteCompute#withTimeout(long)}.
+     * The timeout interval for triggered jobs, in milliseconds, which will be set via {@link IgniteCompute#withTimeout(long)}.
      * 
      * @param timeoutMillis
      */

http://git-wip-us.apache.org/repos/asf/camel/blob/df656782/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/events/IgniteEventsComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/events/IgniteEventsComponent.java b/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/events/IgniteEventsComponent.java
new file mode 100644
index 0000000..b0fced0
--- /dev/null
+++ b/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/events/IgniteEventsComponent.java
@@ -0,0 +1,78 @@
+/**
+ * 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.camel.component.ignite.events;
+
+import java.io.InputStream;
+import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URL;
+import java.util.Map;
+
+import org.apache.camel.Endpoint;
+import org.apache.camel.component.ignite.AbstractIgniteComponent;
+import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.URISupport;
+import org.apache.ignite.Ignite;
+import org.apache.ignite.Ignition;
+import org.apache.ignite.configuration.IgniteConfiguration;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * The Ignite Events Component.
+ */
+public class IgniteEventsComponent extends AbstractIgniteComponent {
+
+    public static IgniteEventsComponent fromIgnite(Ignite ignite) {
+        IgniteEventsComponent answer = new IgniteEventsComponent();
+        answer.setIgnite(ignite);
+        return answer;
+    }
+
+    public static IgniteEventsComponent fromConfiguration(IgniteConfiguration configuration) {
+        IgniteEventsComponent answer = new IgniteEventsComponent();
+        answer.setIgniteConfiguration(configuration);
+        return answer;
+    }
+
+    public static IgniteEventsComponent fromInputStream(InputStream inputStream) {
+        IgniteEventsComponent answer = new IgniteEventsComponent();
+        answer.setConfigurationResource(inputStream);
+        return answer;
+    }
+
+    public static IgniteEventsComponent fromUrl(URL url) {
+        IgniteEventsComponent answer = new IgniteEventsComponent();
+        answer.setConfigurationResource(url);
+        return answer;
+    }
+
+    public static IgniteEventsComponent fromLocation(String location) {
+        IgniteEventsComponent answer = new IgniteEventsComponent();
+        answer.setConfigurationResource(location);
+        return answer;
+    }
+
+    @Override
+    protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception {
+        ObjectHelper.notNull(getCamelContext(), "Camel Context");
+        IgniteEventsEndpoint answer = new IgniteEventsEndpoint(uri, remaining, parameters, this);
+        setProperties(answer, parameters);
+        return answer;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/df656782/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/events/IgniteEventsEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/events/IgniteEventsEndpoint.java b/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/events/IgniteEventsEndpoint.java
index 1d48a30..d926f95 100644
--- a/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/events/IgniteEventsEndpoint.java
+++ b/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/events/IgniteEventsEndpoint.java
@@ -31,6 +31,7 @@ import org.apache.camel.component.ignite.ClusterGroupExpression;
 import org.apache.camel.component.ignite.IgniteComponent;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
+import org.apache.camel.spi.UriPath;
 import org.apache.ignite.Ignite;
 import org.apache.ignite.IgniteEvents;
 import org.apache.ignite.cluster.ClusterGroup;
@@ -41,18 +42,22 @@ import org.slf4j.LoggerFactory;
 /**
  * Ignite Events endpoint. Only supports consumers.
  */
-@UriEndpoint(scheme = "ignite:events", title = "Ignite Events", syntax = "ignite:events:[endpointId]", label = "nosql,cache,compute,messaging,data", 
+@UriEndpoint(firstVersion = "2.17.0", scheme = "ignite-events", title = "Ignite Events", syntax = "ignite-events:[endpointId]", label = "nosql,cache,compute,messaging,data", 
     consumerOnly = true, consumerClass = IgniteEventsConsumer.class)
 public class IgniteEventsEndpoint extends AbstractIgniteEndpoint {
 
     private static final Logger LOG = LoggerFactory.getLogger(IgniteEventsEndpoint.class);
 
-    @UriParam
+    @UriPath
+    private String endpointId;
+
+    @UriParam(label = "consumer", javaType = "Set<Integer> or String", defaultValue = "EventType.EVTS_ALL")
     private Set<Integer> events;
 
-    @UriParam
+    @UriParam(label = "consumer")
     private ClusterGroupExpression clusterGroupExpression;
 
+    @Deprecated
     public IgniteEventsEndpoint(String uri, URI remainingUri, Map<String, Object> parameters, IgniteComponent igniteComponent) {
         super(uri, igniteComponent);
 
@@ -63,6 +68,16 @@ public class IgniteEventsEndpoint extends AbstractIgniteEndpoint {
         }
     }
 
+    public IgniteEventsEndpoint(String uri, String remaining, Map<String, Object> parameters, IgniteEventsComponent igniteComponent) {
+        super(uri, igniteComponent);
+
+        // Initialize subscribed event types with ALL.
+        events = new HashSet<>();
+        for (Integer eventType : EventType.EVTS_ALL) {
+            events.add(eventType);
+        }
+    }
+
     @Override
     public Producer createProducer() throws Exception {
         throw new UnsupportedOperationException("The Ignite Events endpoint does not support producers.");
@@ -95,6 +110,24 @@ public class IgniteEventsEndpoint extends AbstractIgniteEndpoint {
     }
 
     /**
+     * Gets the endpoint ID (not used).
+     * 
+     * @return endpoint ID (not used)
+     */
+    public String getEndpointId() {
+        return endpointId;
+    }
+
+    /**
+     * The endpoint ID (not used).
+     * 
+     * @param endpointId endpoint ID (not used)
+     */
+    public void setEndpointId(String endpointId) {
+        this.endpointId = endpointId;
+    }
+
+    /**
      * Gets the event types to subscribe to.
      * 
      * @return
@@ -104,7 +137,8 @@ public class IgniteEventsEndpoint extends AbstractIgniteEndpoint {
     }
 
     /**
-     * Sets the event types to subscribe to as a {@link Set}.
+     * The event IDs to subscribe to as a Set<Integer> directly where
+     * the IDs are the different constants in org.apache.ignite.events.EventType.
      * 
      * @param events
      */
@@ -113,7 +147,7 @@ public class IgniteEventsEndpoint extends AbstractIgniteEndpoint {
     }
 
     /**
-     * Sets the event types to subscribe to as a comma-separated string of event constants as defined in {@link EventType}.
+     * The event types to subscribe to as a comma-separated string of event constants as defined in {@link EventType}.
      * <p>
      * For example: EVT_CACHE_ENTRY_CREATED,EVT_CACHE_OBJECT_REMOVED,EVT_IGFS_DIR_CREATED.
      * 
@@ -135,10 +169,20 @@ public class IgniteEventsEndpoint extends AbstractIgniteEndpoint {
         }
     }
 
+    /**
+     * Gets the cluster group expression.
+     * 
+     * @return cluster group expression
+     */
     public ClusterGroupExpression getClusterGroupExpression() {
         return clusterGroupExpression;
     }
 
+    /**
+     * The cluster group expression.
+     * 
+     * @param clusterGroupExpression cluster group expression
+     */
     public void setClusterGroupExpression(ClusterGroupExpression clusterGroupExpression) {
         this.clusterGroupExpression = clusterGroupExpression;
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/df656782/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/idgen/IgniteIdGenComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/idgen/IgniteIdGenComponent.java b/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/idgen/IgniteIdGenComponent.java
new file mode 100644
index 0000000..456202a
--- /dev/null
+++ b/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/idgen/IgniteIdGenComponent.java
@@ -0,0 +1,78 @@
+/**
+ * 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.camel.component.ignite.idgen;
+
+import java.io.InputStream;
+import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URL;
+import java.util.Map;
+
+import org.apache.camel.Endpoint;
+import org.apache.camel.component.ignite.AbstractIgniteComponent;
+import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.URISupport;
+import org.apache.ignite.Ignite;
+import org.apache.ignite.Ignition;
+import org.apache.ignite.configuration.IgniteConfiguration;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * The Ignite ID Generator Component.
+ */
+public class IgniteIdGenComponent extends AbstractIgniteComponent {
+
+    public static IgniteIdGenComponent fromIgnite(Ignite ignite) {
+        IgniteIdGenComponent answer = new IgniteIdGenComponent();
+        answer.setIgnite(ignite);
+        return answer;
+    }
+
+    public static IgniteIdGenComponent fromConfiguration(IgniteConfiguration configuration) {
+        IgniteIdGenComponent answer = new IgniteIdGenComponent();
+        answer.setIgniteConfiguration(configuration);
+        return answer;
+    }
+
+    public static IgniteIdGenComponent fromInputStream(InputStream inputStream) {
+        IgniteIdGenComponent answer = new IgniteIdGenComponent();
+        answer.setConfigurationResource(inputStream);
+        return answer;
+    }
+
+    public static IgniteIdGenComponent fromUrl(URL url) {
+        IgniteIdGenComponent answer = new IgniteIdGenComponent();
+        answer.setConfigurationResource(url);
+        return answer;
+    }
+
+    public static IgniteIdGenComponent fromLocation(String location) {
+        IgniteIdGenComponent answer = new IgniteIdGenComponent();
+        answer.setConfigurationResource(location);
+        return answer;
+    }
+
+    @Override
+    protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception {
+        ObjectHelper.notNull(getCamelContext(), "Camel Context");
+        IgniteIdGenEndpoint answer = new IgniteIdGenEndpoint(uri, remaining, parameters, this);
+        setProperties(answer, parameters);
+        return answer;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/df656782/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/idgen/IgniteIdGenEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/idgen/IgniteIdGenEndpoint.java b/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/idgen/IgniteIdGenEndpoint.java
index 3e1da3c..5cd86c6 100644
--- a/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/idgen/IgniteIdGenEndpoint.java
+++ b/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/idgen/IgniteIdGenEndpoint.java
@@ -27,6 +27,7 @@ import org.apache.camel.component.ignite.IgniteComponent;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
+import org.apache.camel.spi.UriPath;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.ignite.IgniteAtomicSequence;
 import org.slf4j.Logger;
@@ -35,24 +36,25 @@ import org.slf4j.LoggerFactory;
 /**
  * Ignite ID Generator endpoint.
  */
-@UriEndpoint(scheme = "ignite:idgen", title = "Ignite ID Generator", syntax = "ignite:idgen:[name]", label = "nosql,cache,compute", producerOnly = true)
+@UriEndpoint(firstVersion = "2.17.0", scheme = "ignite-idgen", title = "Ignite ID Generator", syntax = "ignite-idgen:[name]", label = "nosql,cache,compute", producerOnly = true)
 public class IgniteIdGenEndpoint extends AbstractIgniteEndpoint {
 
     private static final Logger LOG = LoggerFactory.getLogger(IgniteIdGenEndpoint.class);
 
-    @UriParam
+    @UriPath
     @Metadata(required = "true")
     private String name;
 
-    @UriParam
+    @UriParam(label = "producer")
     private Integer batchSize;
 
-    @UriParam(defaultValue = "0")
+    @UriParam(label = "producer", defaultValue = "0")
     private Long initialValue = 0L;
 
-    @UriParam
+    @UriParam(label = "producer")
     private IgniteIdGenOperation operation;
 
+    @Deprecated
     public IgniteIdGenEndpoint(String endpointUri, URI remainingUri, Map<String, Object> parameters, IgniteComponent igniteComponent) throws Exception {
         super(endpointUri, igniteComponent);
         name = remainingUri.getHost();
@@ -60,6 +62,13 @@ public class IgniteIdGenEndpoint extends AbstractIgniteEndpoint {
         ObjectHelper.notNull(name, "ID Generator name");
     }
 
+    public IgniteIdGenEndpoint(String endpointUri, String remaining, Map<String, Object> parameters, IgniteIdGenComponent igniteComponent) throws Exception {
+        super(endpointUri, igniteComponent);
+        name = remaining;
+
+        ObjectHelper.notNull(name, "ID Generator name");
+    }
+
     @Override
     public Producer createProducer() throws Exception {
         IgniteAtomicSequence atomicSeq = ignite().atomicSequence(name, initialValue, false);
@@ -81,34 +90,76 @@ public class IgniteIdGenEndpoint extends AbstractIgniteEndpoint {
         throw new UnsupportedOperationException("The Ignite Id Generator endpoint doesn't support consumers.");
     }
 
+    /**
+     * Gets the name.
+     * 
+     * @return name
+     */
     public String getName() {
         return name;
     }
 
+    /**
+     * The sequence name.
+     * 
+     * @param name name
+     */
     public void setName(String name) {
         this.name = name;
     }
 
+    /**
+     * Gets the initial value.
+     * 
+     * @return initial value
+     */
     public Long getInitialValue() {
         return initialValue;
     }
 
+    /**
+     * The initial value.
+     * 
+     * @param initialValue initial value
+     */
     public void setInitialValue(Long initialValue) {
         this.initialValue = initialValue;
     }
 
+    /**
+     * Gets the operation.
+     * 
+     * @return operation
+     */
     public IgniteIdGenOperation getOperation() {
         return operation;
     }
 
+    /**
+     * The operation to invoke on the Ignite ID Generator.
+     * Superseded by the IgniteConstants.IGNITE_IDGEN_OPERATION header in the IN message.
+     * Possible values: ADD_AND_GET, GET, GET_AND_ADD, GET_AND_INCREMENT, INCREMENT_AND_GET.
+     * 
+     * @param operation operation
+     */
     public void setOperation(IgniteIdGenOperation operation) {
         this.operation = operation;
     }
 
+    /**
+     * Gets the batch size.
+     * 
+     * @return batch size
+     */
     public Integer getBatchSize() {
         return batchSize;
     }
 
+    /**
+     * The batch size.
+     * 
+     * @param batchSize batch size
+     */
     public void setBatchSize(Integer batchSize) {
         this.batchSize = batchSize;
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/df656782/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/messaging/IgniteMessagingComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/messaging/IgniteMessagingComponent.java b/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/messaging/IgniteMessagingComponent.java
new file mode 100644
index 0000000..fd66308
--- /dev/null
+++ b/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/messaging/IgniteMessagingComponent.java
@@ -0,0 +1,78 @@
+/**
+ * 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.camel.component.ignite.messaging;
+
+import java.io.InputStream;
+import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URL;
+import java.util.Map;
+
+import org.apache.camel.Endpoint;
+import org.apache.camel.component.ignite.AbstractIgniteComponent;
+import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.URISupport;
+import org.apache.ignite.Ignite;
+import org.apache.ignite.Ignition;
+import org.apache.ignite.configuration.IgniteConfiguration;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * The Ignite Messaging Component.
+ */
+public class IgniteMessagingComponent extends AbstractIgniteComponent {
+
+    public static IgniteMessagingComponent fromIgnite(Ignite ignite) {
+        IgniteMessagingComponent answer = new IgniteMessagingComponent();
+        answer.setIgnite(ignite);
+        return answer;
+    }
+
+    public static IgniteMessagingComponent fromConfiguration(IgniteConfiguration configuration) {
+        IgniteMessagingComponent answer = new IgniteMessagingComponent();
+        answer.setIgniteConfiguration(configuration);
+        return answer;
+    }
+
+    public static IgniteMessagingComponent fromInputStream(InputStream inputStream) {
+        IgniteMessagingComponent answer = new IgniteMessagingComponent();
+        answer.setConfigurationResource(inputStream);
+        return answer;
+    }
+
+    public static IgniteMessagingComponent fromUrl(URL url) {
+        IgniteMessagingComponent answer = new IgniteMessagingComponent();
+        answer.setConfigurationResource(url);
+        return answer;
+    }
+
+    public static IgniteMessagingComponent fromLocation(String location) {
+        IgniteMessagingComponent answer = new IgniteMessagingComponent();
+        answer.setConfigurationResource(location);
+        return answer;
+    }
+
+    @Override
+    protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception {
+        ObjectHelper.notNull(getCamelContext(), "Camel Context");
+        IgniteMessagingEndpoint answer = new IgniteMessagingEndpoint(uri, remaining, parameters, this);
+        setProperties(answer, parameters);
+        return answer;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/df656782/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/messaging/IgniteMessagingEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/messaging/IgniteMessagingEndpoint.java b/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/messaging/IgniteMessagingEndpoint.java
index 124d4c7..fe3c18d 100644
--- a/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/messaging/IgniteMessagingEndpoint.java
+++ b/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/messaging/IgniteMessagingEndpoint.java
@@ -28,34 +28,41 @@ import org.apache.camel.component.ignite.IgniteComponent;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
+import org.apache.camel.spi.UriPath;
 import org.apache.ignite.Ignite;
 import org.apache.ignite.IgniteMessaging;
 
 /**
  * Ignite Messaging endpoint.
  */
-@UriEndpoint(scheme = "ignite:messaging", title = "Ignite Messaging", syntax = "ignite:messaging:[topic]", label = "nosql,cache,messaging", 
+@UriEndpoint(firstVersion = "2.17.0", scheme = "ignite-messaging", title = "Ignite Messaging", syntax = "ignite-messaging:[topic]", label = "nosql,cache,messaging", 
     consumerClass = IgniteMessagingConsumer.class)
 public class IgniteMessagingEndpoint extends AbstractIgniteEndpoint {
 
-    @UriParam
+    @UriPath
     @Metadata(required = "true")
     private String topic;
 
-    @UriParam
+    @UriParam(label = "consumer,producer")
     private ClusterGroupExpression clusterGroupExpression;
 
-    @UriParam
+    @UriParam(label = "producer", defaultValue = "UNORDERED")
     private IgniteMessagingSendMode sendMode = IgniteMessagingSendMode.UNORDERED;
 
-    @UriParam
+    @UriParam(label = "producer")
     private Long timeout;
 
+    @Deprecated
     public IgniteMessagingEndpoint(String endpointUri, URI remainingUri, Map<String, Object> parameters, IgniteComponent igniteComponent) {
         super(endpointUri, igniteComponent);
         topic = remainingUri.getHost();
     }
 
+    public IgniteMessagingEndpoint(String endpointUri, String remaining, Map<String, Object> parameters, IgniteMessagingComponent igniteComponent) {
+        super(endpointUri, igniteComponent);
+        topic = remaining;
+    }
+
     @Override
     public Producer createProducer() throws Exception {
         // Validate options.
@@ -92,34 +99,75 @@ public class IgniteMessagingEndpoint extends AbstractIgniteEndpoint {
         return messaging;
     }
 
+    /**
+     * Gets the topic name.
+     * 
+     * @return topic name
+     */
     public String getTopic() {
         return topic;
     }
 
+    /**
+     * The topic name.
+     * 
+     * @param topic topic name
+     */
     public void setTopic(String topic) {
         this.topic = topic;
     }
 
+    /**
+     * Gets the cluster group expression.
+     * 
+     * @return cluster group expression
+     */
     public ClusterGroupExpression getClusterGroupExpression() {
         return clusterGroupExpression;
     }
 
+    /**
+     * The cluster group expression.
+     * 
+     * @param clusterGroupExpression cluster group expression
+     */
     public void setClusterGroupExpression(ClusterGroupExpression clusterGroupExpression) {
         this.clusterGroupExpression = clusterGroupExpression;
     }
 
+    /**
+     * Gets the timeout.
+     * 
+     * @return timeout
+     */
     public Long getTimeout() {
         return timeout;
     }
 
+    /**
+     * The timeout for the send operation when using ordered messages.
+     * 
+     * @param timeout timeout
+     */
     public void setTimeout(Long timeout) {
         this.timeout = timeout;
     }
 
+    /**
+     * Gets the send mode.
+     * 
+     * @return send mode
+     */
     public IgniteMessagingSendMode getSendMode() {
         return sendMode;
     }
 
+    /**
+     * The send mode to use.
+     * Possible values: UNORDERED, ORDERED.
+     * 
+     * @param sendMode send mode
+     */
     public void setSendMode(IgniteMessagingSendMode sendMode) {
         this.sendMode = sendMode;
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/df656782/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/queue/IgniteQueueComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/queue/IgniteQueueComponent.java b/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/queue/IgniteQueueComponent.java
new file mode 100644
index 0000000..edf6ee4
--- /dev/null
+++ b/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/queue/IgniteQueueComponent.java
@@ -0,0 +1,78 @@
+/**
+ * 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.camel.component.ignite.queue;
+
+import java.io.InputStream;
+import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URL;
+import java.util.Map;
+
+import org.apache.camel.Endpoint;
+import org.apache.camel.component.ignite.AbstractIgniteComponent;
+import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.URISupport;
+import org.apache.ignite.Ignite;
+import org.apache.ignite.Ignition;
+import org.apache.ignite.configuration.IgniteConfiguration;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * The Ignite Queue Component.
+ */
+public class IgniteQueueComponent extends AbstractIgniteComponent {
+
+    public static IgniteQueueComponent fromIgnite(Ignite ignite) {
+        IgniteQueueComponent answer = new IgniteQueueComponent();
+        answer.setIgnite(ignite);
+        return answer;
+    }
+
+    public static IgniteQueueComponent fromConfiguration(IgniteConfiguration configuration) {
+        IgniteQueueComponent answer = new IgniteQueueComponent();
+        answer.setIgniteConfiguration(configuration);
+        return answer;
+    }
+
+    public static IgniteQueueComponent fromInputStream(InputStream inputStream) {
+        IgniteQueueComponent answer = new IgniteQueueComponent();
+        answer.setConfigurationResource(inputStream);
+        return answer;
+    }
+
+    public static IgniteQueueComponent fromUrl(URL url) {
+        IgniteQueueComponent answer = new IgniteQueueComponent();
+        answer.setConfigurationResource(url);
+        return answer;
+    }
+
+    public static IgniteQueueComponent fromLocation(String location) {
+        IgniteQueueComponent answer = new IgniteQueueComponent();
+        answer.setConfigurationResource(location);
+        return answer;
+    }
+
+    @Override
+    protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception {
+        ObjectHelper.notNull(getCamelContext(), "Camel Context");
+        IgniteQueueEndpoint answer = new IgniteQueueEndpoint(uri, remaining, parameters, this);
+        setProperties(answer, parameters);
+        return answer;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/df656782/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/queue/IgniteQueueEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/queue/IgniteQueueEndpoint.java b/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/queue/IgniteQueueEndpoint.java
index 688a209..0252820 100644
--- a/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/queue/IgniteQueueEndpoint.java
+++ b/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/queue/IgniteQueueEndpoint.java
@@ -27,6 +27,7 @@ import org.apache.camel.component.ignite.IgniteComponent;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
+import org.apache.camel.spi.UriPath;
 import org.apache.camel.util.EndpointHelper;
 import org.apache.camel.util.IntrospectionSupport;
 import org.apache.camel.util.ObjectHelper;
@@ -36,24 +37,25 @@ import org.apache.ignite.configuration.CollectionConfiguration;
 /**
  * Ignite Queue endpoint.
  */
-@UriEndpoint(scheme = "ignite:queue", title = "Ignite Queues", syntax = "ignite:queue:[name]", label = "nosql,cache", producerOnly = true)
+@UriEndpoint(firstVersion = "2.17.0", scheme = "ignite-queue", title = "Ignite Queues", syntax = "ignite-queue:[name]", label = "nosql,cache", producerOnly = true)
 public class IgniteQueueEndpoint extends AbstractIgniteEndpoint {
 
-    @UriParam @Metadata(required = "true")
+    @UriPath @Metadata(required = "true")
     private String name;
 
-    @UriParam
+    @UriParam(label = "producer")
     private int capacity;
 
-    @UriParam
+    @UriParam(label = "producer")
     private CollectionConfiguration configuration = new CollectionConfiguration();
 
-    @UriParam
+    @UriParam(label = "producer")
     private Long timeoutMillis;
 
-    @UriParam
+    @UriParam(label = "producer")
     private IgniteQueueOperation operation;
 
+    @Deprecated
     public IgniteQueueEndpoint(String endpointUri, URI remainingUri, Map<String, Object> parameters, IgniteComponent igniteComponent) throws Exception {
         super(endpointUri, igniteComponent);
         name = remainingUri.getHost();
@@ -68,6 +70,20 @@ public class IgniteQueueEndpoint extends AbstractIgniteEndpoint {
         }
     }
 
+    public IgniteQueueEndpoint(String endpointUri, String remaining, Map<String, Object> parameters, IgniteQueueComponent igniteComponent) throws Exception {
+        super(endpointUri, igniteComponent);
+        name = remaining;
+
+        ObjectHelper.notNull(name, "Queue name");
+
+        // Set the configuration values.
+        if (!parameters.containsKey("configuration")) {
+            Map<String, Object> configProps = IntrospectionSupport.extractProperties(parameters, "config.");
+            EndpointHelper.setReferenceProperties(this.getCamelContext(), configProps, parameters);
+            EndpointHelper.setProperties(this.getCamelContext(), configProps, parameters);
+        }
+    }
+
     @Override
     public Producer createProducer() throws Exception {
         IgniteQueue<Object> queue = ignite().queue(name, capacity, configuration);
@@ -90,7 +106,7 @@ public class IgniteQueueEndpoint extends AbstractIgniteEndpoint {
     }
 
     /**
-     * Sets the queue name.
+     * The queue name.
      * 
      * @param name
      */
@@ -108,7 +124,9 @@ public class IgniteQueueEndpoint extends AbstractIgniteEndpoint {
     }
 
     /**
-     * Sets the queue operation to perform.
+     * The operation to invoke on the Ignite Queue.
+     * Superseded by the IgniteConstants.IGNITE_QUEUE_OPERATION header in the IN message.
+     * Possible values: CONTAINS, ADD, SIZE, REMOVE, ITERATOR, CLEAR, RETAIN_ALL, ARRAY, DRAIN, ELEMENT, PEEK, OFFER, POLL, TAKE, PUT.
      * 
      * @param operation
      */
@@ -126,7 +144,7 @@ public class IgniteQueueEndpoint extends AbstractIgniteEndpoint {
     }
 
     /**
-     * Sets the queue capacity. Default: non-bounded.
+     * The queue capacity. Default: non-bounded.
      * 
      * @param capacity
      */
@@ -144,7 +162,7 @@ public class IgniteQueueEndpoint extends AbstractIgniteEndpoint {
     }
 
     /**
-     * Sets the collection configuration. Default: empty configuration.
+     * The collection configuration. Default: empty configuration.
      * <p>
      * You can also conveniently set inner properties by using <tt>configuration.xyz=123</tt> options.
      * 
@@ -164,7 +182,7 @@ public class IgniteQueueEndpoint extends AbstractIgniteEndpoint {
     }
 
     /**
-     * Sets the queue timeout in milliseconds. Default: no timeout.
+     * The queue timeout in milliseconds. Default: no timeout.
      * 
      * @param timeoutMillis
      */

http://git-wip-us.apache.org/repos/asf/camel/blob/df656782/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/set/IgniteSetComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/set/IgniteSetComponent.java b/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/set/IgniteSetComponent.java
new file mode 100644
index 0000000..6a825c2
--- /dev/null
+++ b/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/set/IgniteSetComponent.java
@@ -0,0 +1,78 @@
+/**
+ * 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.camel.component.ignite.set;
+
+import java.io.InputStream;
+import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URL;
+import java.util.Map;
+
+import org.apache.camel.Endpoint;
+import org.apache.camel.component.ignite.AbstractIgniteComponent;
+import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.URISupport;
+import org.apache.ignite.Ignite;
+import org.apache.ignite.Ignition;
+import org.apache.ignite.configuration.IgniteConfiguration;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * The Ignite Set Component.
+ */
+public class IgniteSetComponent extends AbstractIgniteComponent {
+
+    public static IgniteSetComponent fromIgnite(Ignite ignite) {
+        IgniteSetComponent answer = new IgniteSetComponent();
+        answer.setIgnite(ignite);
+        return answer;
+    }
+
+    public static IgniteSetComponent fromConfiguration(IgniteConfiguration configuration) {
+        IgniteSetComponent answer = new IgniteSetComponent();
+        answer.setIgniteConfiguration(configuration);
+        return answer;
+    }
+
+    public static IgniteSetComponent fromInputStream(InputStream inputStream) {
+        IgniteSetComponent answer = new IgniteSetComponent();
+        answer.setConfigurationResource(inputStream);
+        return answer;
+    }
+
+    public static IgniteSetComponent fromUrl(URL url) {
+        IgniteSetComponent answer = new IgniteSetComponent();
+        answer.setConfigurationResource(url);
+        return answer;
+    }
+
+    public static IgniteSetComponent fromLocation(String location) {
+        IgniteSetComponent answer = new IgniteSetComponent();
+        answer.setConfigurationResource(location);
+        return answer;
+    }
+
+    @Override
+    protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception {
+        ObjectHelper.notNull(getCamelContext(), "Camel Context");
+        IgniteSetEndpoint answer = new IgniteSetEndpoint(uri, remaining, parameters, this);
+        setProperties(answer, parameters);
+        return answer;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/df656782/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/set/IgniteSetEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/set/IgniteSetEndpoint.java b/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/set/IgniteSetEndpoint.java
index 6125ff9..ff616ba 100644
--- a/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/set/IgniteSetEndpoint.java
+++ b/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/set/IgniteSetEndpoint.java
@@ -27,26 +27,28 @@ import org.apache.camel.component.ignite.IgniteComponent;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
+import org.apache.camel.spi.UriPath;
 import org.apache.camel.util.EndpointHelper;
 import org.apache.camel.util.IntrospectionSupport;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.ignite.configuration.CollectionConfiguration;
 
 /**
- * Ignite Cache endpoint.
+ * Ignite Set endpoint.
  */
-@UriEndpoint(scheme = "ignite:set", title = "Ignite Sets", syntax = "ignite:set:[name]", label = "nosql,cache", producerOnly = true)
+@UriEndpoint(firstVersion = "2.17.0", scheme = "ignite-set", title = "Ignite Sets", syntax = "ignite-set:[name]", label = "nosql,cache", producerOnly = true)
 public class IgniteSetEndpoint extends AbstractIgniteEndpoint {
 
-    @UriParam @Metadata(required = "true")
+    @UriPath @Metadata(required = "true")
     private String name;
 
-    @UriParam
+    @UriParam(label = "producer")
     private CollectionConfiguration configuration = new CollectionConfiguration();
 
-    @UriParam
+    @UriParam(label = "producer")
     private IgniteSetOperation operation;
 
+    @Deprecated
     public IgniteSetEndpoint(String endpointUri, URI remainingUri, Map<String, Object> parameters, IgniteComponent igniteComponent) throws Exception {
         super(endpointUri, igniteComponent);
         name = remainingUri.getHost();
@@ -62,6 +64,21 @@ public class IgniteSetEndpoint extends AbstractIgniteEndpoint {
 
     }
 
+    public IgniteSetEndpoint(String endpointUri, String remaining, Map<String, Object> parameters, IgniteSetComponent igniteComponent) throws Exception {
+        super(endpointUri, igniteComponent);
+        name = remaining;
+
+        ObjectHelper.notNull(name, "Set name");
+
+        // Set the configuration values.
+        if (!parameters.containsKey("configuration")) {
+            Map<String, Object> configProps = IntrospectionSupport.extractProperties(parameters, "config.");
+            EndpointHelper.setReferenceProperties(this.getCamelContext(), configProps, parameters);
+            EndpointHelper.setProperties(this.getCamelContext(), configProps, parameters);
+        }
+
+    }
+
     @Override
     public Producer createProducer() throws Exception {
         return new IgniteSetProducer(this, ignite().set(name, configuration));
@@ -82,7 +99,7 @@ public class IgniteSetEndpoint extends AbstractIgniteEndpoint {
     }
 
     /**
-     * Sets the set name.
+     * The set name.
      * 
      * @param name
      */
@@ -100,7 +117,7 @@ public class IgniteSetEndpoint extends AbstractIgniteEndpoint {
     }
 
     /**
-     * Sets the collection configuration. Default: empty configuration.
+     * The collection configuration. Default: empty configuration.
      * <p>
      * You can also conveniently set inner properties by using <tt>configuration.xyz=123</tt> options.
      * 
@@ -120,7 +137,9 @@ public class IgniteSetEndpoint extends AbstractIgniteEndpoint {
     }
 
     /**
-     * Sets the set operation to perform.
+     * The operation to invoke on the Ignite Set.
+     * Superseded by the IgniteConstants.IGNITE_SETS_OPERATION header in the IN message.
+     * Possible values: CONTAINS, ADD, SIZE, REMOVE, ITERATOR, CLEAR, RETAIN_ALL, ARRAY.The set operation to perform.
      * 
      * @param operation
      */

http://git-wip-us.apache.org/repos/asf/camel/blob/df656782/components/camel-ignite/src/main/resources/META-INF/services/org/apache/camel/component/ignite-cache
----------------------------------------------------------------------
diff --git a/components/camel-ignite/src/main/resources/META-INF/services/org/apache/camel/component/ignite-cache b/components/camel-ignite/src/main/resources/META-INF/services/org/apache/camel/component/ignite-cache
new file mode 100644
index 0000000..495652e
--- /dev/null
+++ b/components/camel-ignite/src/main/resources/META-INF/services/org/apache/camel/component/ignite-cache
@@ -0,0 +1,18 @@
+#
+# 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.
+#
+
+class=org.apache.camel.component.ignite.cache.IgniteCacheComponent

http://git-wip-us.apache.org/repos/asf/camel/blob/df656782/components/camel-ignite/src/main/resources/META-INF/services/org/apache/camel/component/ignite-compute
----------------------------------------------------------------------
diff --git a/components/camel-ignite/src/main/resources/META-INF/services/org/apache/camel/component/ignite-compute b/components/camel-ignite/src/main/resources/META-INF/services/org/apache/camel/component/ignite-compute
new file mode 100644
index 0000000..aa87994
--- /dev/null
+++ b/components/camel-ignite/src/main/resources/META-INF/services/org/apache/camel/component/ignite-compute
@@ -0,0 +1,18 @@
+#
+# 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.
+#
+
+class=org.apache.camel.component.ignite.compute.IgniteComputeComponent

http://git-wip-us.apache.org/repos/asf/camel/blob/df656782/components/camel-ignite/src/main/resources/META-INF/services/org/apache/camel/component/ignite-events
----------------------------------------------------------------------
diff --git a/components/camel-ignite/src/main/resources/META-INF/services/org/apache/camel/component/ignite-events b/components/camel-ignite/src/main/resources/META-INF/services/org/apache/camel/component/ignite-events
new file mode 100644
index 0000000..299d7ba
--- /dev/null
+++ b/components/camel-ignite/src/main/resources/META-INF/services/org/apache/camel/component/ignite-events
@@ -0,0 +1,18 @@
+#
+# 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.
+#
+
+class=org.apache.camel.component.ignite.events.IgniteEventsComponent

http://git-wip-us.apache.org/repos/asf/camel/blob/df656782/components/camel-ignite/src/main/resources/META-INF/services/org/apache/camel/component/ignite-idgen
----------------------------------------------------------------------
diff --git a/components/camel-ignite/src/main/resources/META-INF/services/org/apache/camel/component/ignite-idgen b/components/camel-ignite/src/main/resources/META-INF/services/org/apache/camel/component/ignite-idgen
new file mode 100644
index 0000000..c13c027
--- /dev/null
+++ b/components/camel-ignite/src/main/resources/META-INF/services/org/apache/camel/component/ignite-idgen
@@ -0,0 +1,18 @@
+#
+# 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.
+#
+
+class=org.apache.camel.component.ignite.idgen.IgniteIdGenComponent

http://git-wip-us.apache.org/repos/asf/camel/blob/df656782/components/camel-ignite/src/main/resources/META-INF/services/org/apache/camel/component/ignite-messaging
----------------------------------------------------------------------
diff --git a/components/camel-ignite/src/main/resources/META-INF/services/org/apache/camel/component/ignite-messaging b/components/camel-ignite/src/main/resources/META-INF/services/org/apache/camel/component/ignite-messaging
new file mode 100644
index 0000000..28dbd84
--- /dev/null
+++ b/components/camel-ignite/src/main/resources/META-INF/services/org/apache/camel/component/ignite-messaging
@@ -0,0 +1,18 @@
+#
+# 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.
+#
+
+class=org.apache.camel.component.ignite.messaging.IgniteMessagingComponent

http://git-wip-us.apache.org/repos/asf/camel/blob/df656782/components/camel-ignite/src/main/resources/META-INF/services/org/apache/camel/component/ignite-queue
----------------------------------------------------------------------
diff --git a/components/camel-ignite/src/main/resources/META-INF/services/org/apache/camel/component/ignite-queue b/components/camel-ignite/src/main/resources/META-INF/services/org/apache/camel/component/ignite-queue
new file mode 100644
index 0000000..ec3a5e8
--- /dev/null
+++ b/components/camel-ignite/src/main/resources/META-INF/services/org/apache/camel/component/ignite-queue
@@ -0,0 +1,18 @@
+#
+# 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.
+#
+
+class=org.apache.camel.component.ignite.queue.IgniteQueueComponent

http://git-wip-us.apache.org/repos/asf/camel/blob/df656782/components/camel-ignite/src/main/resources/META-INF/services/org/apache/camel/component/ignite-set
----------------------------------------------------------------------
diff --git a/components/camel-ignite/src/main/resources/META-INF/services/org/apache/camel/component/ignite-set b/components/camel-ignite/src/main/resources/META-INF/services/org/apache/camel/component/ignite-set
new file mode 100644
index 0000000..4cef5c3
--- /dev/null
+++ b/components/camel-ignite/src/main/resources/META-INF/services/org/apache/camel/component/ignite-set
@@ -0,0 +1,18 @@
+#
+# 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.
+#
+
+class=org.apache.camel.component.ignite.set.IgniteSetComponent

http://git-wip-us.apache.org/repos/asf/camel/blob/df656782/components/camel-ignite/src/test/java/org/apache/camel/component/ignite/AbstractIgniteTest.java
----------------------------------------------------------------------
diff --git a/components/camel-ignite/src/test/java/org/apache/camel/component/ignite/AbstractIgniteTest.java b/components/camel-ignite/src/test/java/org/apache/camel/component/ignite/AbstractIgniteTest.java
index d46cd1b..64a77e5 100644
--- a/components/camel-ignite/src/test/java/org/apache/camel/component/ignite/AbstractIgniteTest.java
+++ b/components/camel-ignite/src/test/java/org/apache/camel/component/ignite/AbstractIgniteTest.java
@@ -28,7 +28,7 @@ import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
 
-public class AbstractIgniteTest extends CamelTestSupport {
+public abstract class AbstractIgniteTest extends CamelTestSupport {
     
     /** Ip finder for TCP discovery. */
     private static final TcpDiscoveryIpFinder LOCAL_IP_FINDER = new TcpDiscoveryVmIpFinder(false) { {
@@ -40,22 +40,25 @@ public class AbstractIgniteTest extends CamelTestSupport {
     @Override
     protected CamelContext createCamelContext() throws Exception {
         CamelContext context = super.createCamelContext();
-        context.addComponent("ignite", buildComponent());
+        context.addComponent(getScheme(), createComponent());
         return context;
     }
 
-    protected IgniteComponent buildComponent() {
+    protected IgniteConfiguration createConfiguration() {
         IgniteConfiguration config = new IgniteConfiguration();
         config.setGridName(UUID.randomUUID().toString());
         config.setIncludeEventTypes(EventType.EVT_JOB_FINISHED, EventType.EVT_JOB_RESULTED);
         config.setDiscoverySpi(new TcpDiscoverySpi().setIpFinder(LOCAL_IP_FINDER));
-        
-        return IgniteComponent.fromConfiguration(config);
+        return config;
     }
 
+    protected abstract String getScheme();
+
+    protected abstract AbstractIgniteComponent createComponent();
+
     protected Ignite ignite() {
         if (ignite == null) {
-            ignite = context.getComponent("ignite", IgniteComponent.class).getIgnite();
+            ignite = context.getComponent(getScheme(), AbstractIgniteComponent.class).getIgnite();
         }
         return ignite;
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/df656782/components/camel-ignite/src/test/java/org/apache/camel/component/ignite/IgniteCacheContinuousQueryTest.java
----------------------------------------------------------------------
diff --git a/components/camel-ignite/src/test/java/org/apache/camel/component/ignite/IgniteCacheContinuousQueryTest.java b/components/camel-ignite/src/test/java/org/apache/camel/component/ignite/IgniteCacheContinuousQueryTest.java
index c44b7f0..0e69006 100644
--- a/components/camel-ignite/src/test/java/org/apache/camel/component/ignite/IgniteCacheContinuousQueryTest.java
+++ b/components/camel-ignite/src/test/java/org/apache/camel/component/ignite/IgniteCacheContinuousQueryTest.java
@@ -32,6 +32,7 @@ import org.apache.camel.Exchange;
 import org.apache.camel.Route;
 import org.apache.camel.ServiceStatus;
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.ignite.cache.IgniteCacheComponent;
 import org.apache.camel.impl.JndiRegistry;
 import org.apache.ignite.IgniteCache;
 import org.apache.ignite.cache.CacheEntryEventSerializableFilter;
@@ -46,6 +47,16 @@ public class IgniteCacheContinuousQueryTest extends AbstractIgniteTest implement
 
     private static final long serialVersionUID = 1L;
 
+    @Override
+    protected String getScheme() {
+        return "ignite-cache";
+    }
+
+    @Override
+    protected AbstractIgniteComponent createComponent() {
+        return IgniteCacheComponent.fromConfiguration(createConfiguration());
+    }
+
     @Test
     public void testContinuousQueryDoNotFireExistingEntries() throws Exception {
         context.startRoute("continuousQuery");
@@ -136,13 +147,13 @@ public class IgniteCacheContinuousQueryTest extends AbstractIgniteTest implement
         return new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                from("ignite:cache:testcontinuous1?query=#query1").routeId("continuousQuery").noAutoStartup().to("mock:test1");
+                from("ignite-cache:testcontinuous1?query=#query1").routeId("continuousQuery").noAutoStartup().to("mock:test1");
 
-                from("ignite:cache:testcontinuous1?query=#query1&fireExistingQueryResults=true").routeId("continuousQuery.fireExistingEntries").noAutoStartup().to("mock:test2");
+                from("ignite-cache:testcontinuous1?query=#query1&fireExistingQueryResults=true").routeId("continuousQuery.fireExistingEntries").noAutoStartup().to("mock:test2");
 
-                from("ignite:cache:testcontinuous1?query=#query1&remoteFilter=#remoteFilter1&fireExistingQueryResults=true").routeId("remoteFilter").noAutoStartup().to("mock:test3");
+                from("ignite-cache:testcontinuous1?query=#query1&remoteFilter=#remoteFilter1&fireExistingQueryResults=true").routeId("remoteFilter").noAutoStartup().to("mock:test3");
 
-                from("ignite:cache:testcontinuous1?pageSize=10&oneExchangePerUpdate=false").routeId("groupedUpdate").noAutoStartup().to("mock:test4");
+                from("ignite-cache:testcontinuous1?pageSize=10&oneExchangePerUpdate=false").routeId("groupedUpdate").noAutoStartup().to("mock:test4");
 
             }
         };

http://git-wip-us.apache.org/repos/asf/camel/blob/df656782/components/camel-ignite/src/test/java/org/apache/camel/component/ignite/IgniteCacheTest.java
----------------------------------------------------------------------
diff --git a/components/camel-ignite/src/test/java/org/apache/camel/component/ignite/IgniteCacheTest.java b/components/camel-ignite/src/test/java/org/apache/camel/component/ignite/IgniteCacheTest.java
index 07771bd..159a2e9 100644
--- a/components/camel-ignite/src/test/java/org/apache/camel/component/ignite/IgniteCacheTest.java
+++ b/components/camel-ignite/src/test/java/org/apache/camel/component/ignite/IgniteCacheTest.java
@@ -27,6 +27,7 @@ import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableSet;
 
 import org.apache.camel.CamelException;
+import org.apache.camel.component.ignite.cache.IgniteCacheComponent;
 import org.apache.camel.component.ignite.cache.IgniteCacheOperation;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.ignite.IgniteCache;
@@ -41,9 +42,19 @@ import static com.google.common.truth.Truth.assert_;
 
 public class IgniteCacheTest extends AbstractIgniteTest {
 
+    @Override
+    protected String getScheme() {
+        return "ignite-cache";
+    }
+
+    @Override
+    protected AbstractIgniteComponent createComponent() {
+        return IgniteCacheComponent.fromConfiguration(createConfiguration());
+    }
+
     @Test
     public void testAddEntry() {
-        template.requestBodyAndHeader("ignite:cache:testcache1?operation=PUT", "1234", IgniteConstants.IGNITE_CACHE_KEY, "abcd");
+        template.requestBodyAndHeader("ignite-cache:testcache1?operation=PUT", "1234", IgniteConstants.IGNITE_CACHE_KEY, "abcd");
 
         assert_().that(ignite().cache("testcache1").size(CachePeekMode.ALL)).isEqualTo(1);
         assert_().that(ignite().cache("testcache1").get("abcd")).isEqualTo("1234");
@@ -51,7 +62,7 @@ public class IgniteCacheTest extends AbstractIgniteTest {
 
     @Test
     public void testAddEntrySet() {
-        template.requestBody("ignite:cache:testcache1?operation=PUT", ImmutableMap.of("abcd", "1234", "efgh", "5678"));
+        template.requestBody("ignite-cache:testcache1?operation=PUT", ImmutableMap.of("abcd", "1234", "efgh", "5678"));
 
         assert_().that(ignite().cache("testcache1").size(CachePeekMode.ALL)).isEqualTo(2);
         assert_().that(ignite().cache("testcache1").get("abcd")).isEqualTo("1234");
@@ -62,10 +73,10 @@ public class IgniteCacheTest extends AbstractIgniteTest {
     public void testGetOne() {
         testAddEntry();
 
-        String result = template.requestBody("ignite:cache:testcache1?operation=GET", "abcd", String.class);
+        String result = template.requestBody("ignite-cache:testcache1?operation=GET", "abcd", String.class);
         assert_().that(result).isEqualTo("1234");
 
-        result = template.requestBodyAndHeader("ignite:cache:testcache1?operation=GET", "this value won't be used", IgniteConstants.IGNITE_CACHE_KEY, "abcd", String.class);
+        result = template.requestBodyAndHeader("ignite-cache:testcache1?operation=GET", "this value won't be used", IgniteConstants.IGNITE_CACHE_KEY, "abcd", String.class);
         assert_().that(result).isEqualTo("1234");
     }
 
@@ -80,7 +91,7 @@ public class IgniteCacheTest extends AbstractIgniteTest {
             keys.add("k" + i);
         }
 
-        Map<String, String> result = template.requestBody("ignite:cache:testcache1?operation=GET", keys, Map.class);
+        Map<String, String> result = template.requestBody("ignite-cache:testcache1?operation=GET", keys, Map.class);
         for (String k : keys) {
             assert_().that(result.get(k)).isEqualTo(k.replace("k", "v"));
         }
@@ -96,7 +107,7 @@ public class IgniteCacheTest extends AbstractIgniteTest {
             keys.add("k" + i);
         }
 
-        Integer result = template.requestBody("ignite:cache:testcache1?operation=SIZE", keys, Integer.class);
+        Integer result = template.requestBody("ignite-cache:testcache1?operation=SIZE", keys, Integer.class);
         assert_().that(result).isEqualTo(100);
     }
 
@@ -119,7 +130,7 @@ public class IgniteCacheTest extends AbstractIgniteTest {
             }
         });
 
-        List results = template.requestBodyAndHeader("ignite:cache:testcache1?operation=QUERY", keys, IgniteConstants.IGNITE_CACHE_QUERY, query, List.class);
+        List results = template.requestBodyAndHeader("ignite-cache:testcache1?operation=QUERY", keys, IgniteConstants.IGNITE_CACHE_QUERY, query, List.class);
         assert_().that(results.size()).isEqualTo(50);
     }
 
@@ -136,7 +147,7 @@ public class IgniteCacheTest extends AbstractIgniteTest {
         // Also add a cache entry with the entire Set as a key.
         cache.put(keys, "---");
 
-        String result = template.requestBody("ignite:cache:testcache1?operation=GET&treatCollectionsAsCacheObjects=true", keys, String.class);
+        String result = template.requestBody("ignite-cache:testcache1?operation=GET&treatCollectionsAsCacheObjects=true", keys, String.class);
         assert_().that(result).isEqualTo("---");
     }
 
@@ -149,12 +160,12 @@ public class IgniteCacheTest extends AbstractIgniteTest {
 
         assert_().that(cache.size(CachePeekMode.ALL)).isEqualTo(2);
 
-        template.requestBody("ignite:cache:testcache1?operation=REMOVE", "abcd");
+        template.requestBody("ignite-cache:testcache1?operation=REMOVE", "abcd");
 
         assert_().that(cache.size(CachePeekMode.ALL)).isEqualTo(1);
         assert_().that(cache.get("abcd")).isNull();
 
-        template.requestBodyAndHeader("ignite:cache:testcache1?operation=REMOVE", "this value won't be used", IgniteConstants.IGNITE_CACHE_KEY, "efgh");
+        template.requestBodyAndHeader("ignite-cache:testcache1?operation=REMOVE", "this value won't be used", IgniteConstants.IGNITE_CACHE_KEY, "efgh");
 
         assert_().that(cache.size(CachePeekMode.ALL)).isEqualTo(0);
         assert_().that(cache.get("efgh")).isNull();
@@ -170,7 +181,7 @@ public class IgniteCacheTest extends AbstractIgniteTest {
 
         assert_().that(cache.size(CachePeekMode.ALL)).isEqualTo(100);
 
-        template.requestBody("ignite:cache:testcache1?operation=CLEAR", "this value won't be used");
+        template.requestBody("ignite-cache:testcache1?operation=CLEAR", "this value won't be used");
 
         assert_().that(cache.size(CachePeekMode.ALL)).isEqualTo(0);
     }
@@ -179,10 +190,10 @@ public class IgniteCacheTest extends AbstractIgniteTest {
     public void testHeaderSetRemoveEntry() {
         testAddEntry();
 
-        String result = template.requestBody("ignite:cache:testcache1?operation=GET", "abcd", String.class);
+        String result = template.requestBody("ignite-cache:testcache1?operation=GET", "abcd", String.class);
         assert_().that(result).isEqualTo("1234");
 
-        result = template.requestBodyAndHeader("ignite:cache:testcache1?operation=GET", "abcd", IgniteConstants.IGNITE_CACHE_OPERATION, IgniteCacheOperation.REMOVE, String.class);
+        result = template.requestBodyAndHeader("ignite-cache:testcache1?operation=GET", "abcd", IgniteConstants.IGNITE_CACHE_OPERATION, IgniteCacheOperation.REMOVE, String.class);
 
         // The body has not changed, but the cache entry is gone.
         assert_().that(result).isEqualTo("abcd");
@@ -192,7 +203,7 @@ public class IgniteCacheTest extends AbstractIgniteTest {
     @Test
     public void testAddEntryNoCacheCreation() {
         try {
-            template.requestBodyAndHeader("ignite:cache:testcache2?operation=PUT&failIfInexistentCache=true", "1234", IgniteConstants.IGNITE_CACHE_KEY, "abcd");
+            template.requestBodyAndHeader("ignite-cache:testcache2?operation=PUT&failIfInexistentCache=true", "1234", IgniteConstants.IGNITE_CACHE_KEY, "abcd");
         } catch (Exception e) {
             assert_().that(ObjectHelper.getException(CamelException.class, e).getMessage()).startsWith("Ignite cache testcache2 doesn't exist");
             return;
@@ -203,7 +214,7 @@ public class IgniteCacheTest extends AbstractIgniteTest {
 
     @Test
     public void testAddEntryDoNotPropagateIncomingBody() {
-        Object result = template.requestBodyAndHeader("ignite:cache:testcache1?operation=PUT&propagateIncomingBodyIfNoReturnValue=false", "1234", IgniteConstants.IGNITE_CACHE_KEY, "abcd",
+        Object result = template.requestBodyAndHeader("ignite-cache:testcache1?operation=PUT&propagateIncomingBodyIfNoReturnValue=false", "1234", IgniteConstants.IGNITE_CACHE_KEY, "abcd",
                 Object.class);
 
         assert_().that(ignite().cache("testcache1").size(CachePeekMode.ALL)).isEqualTo(1);