You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2015/03/25 15:04:49 UTC

[1/3] camel git commit: * component creates its own instance only if it's not provided * ability to reference the instance by its name

Repository: camel
Updated Branches:
  refs/heads/master 5142e8ce0 -> 33b96b0b5


* component creates its own instance only if it's not provided
* ability to reference the instance by its name


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/c44f797b
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/c44f797b
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/c44f797b

Branch: refs/heads/master
Commit: c44f797bf92b06de0314bacf33c43289d8b64481
Parents: 5142e8c
Author: Ayache Khettar <ay...@zotix-consulting.co.uk>
Authored: Tue Mar 24 11:12:20 2015 +0000
Committer: Claus Ibsen <da...@apache.org>
Committed: Wed Mar 25 15:03:00 2015 +0100

----------------------------------------------------------------------
 .../component/hazelcast/HazelcastComponent.java | 42 ++++++++++-----
 .../component/hazelcast/HazelcastConstants.java |  3 ++
 ...omponentInstanceReferenceNameSpringTest.java | 49 ++++++++++++++++++
 ...ontext-hazelcast-instance-name-reference.xml | 54 ++++++++++++++++++++
 4 files changed, 135 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/c44f797b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastComponent.java b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastComponent.java
index 053ae8a..eb752dd 100644
--- a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastComponent.java
+++ b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastComponent.java
@@ -36,6 +36,7 @@ import org.apache.camel.component.hazelcast.topic.HazelcastTopicEndpoint;
 import org.apache.camel.impl.UriEndpointComponent;
 
 import static org.apache.camel.util.ObjectHelper.removeStartingCharacters;
+import static org.apache.camel.component.hazelcast.HazelcastConstants.*;
 
 public class HazelcastComponent extends UriEndpointComponent {
 
@@ -54,15 +55,9 @@ public class HazelcastComponent extends UriEndpointComponent {
 
     @Override
     protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception {
-        
-        // Query param named 'hazelcastInstance' (if exists) overrides the instance that was set
-        // programmatically and cancels local instance creation as well.
-        HazelcastInstance hzInstance = resolveAndRemoveReferenceParameter(parameters, "hazelcastInstance",
-                HazelcastInstance.class);
-        // Now we use the hazelcastInstance from component
-        if (hzInstance == null) {
-            hzInstance = hazelcastInstance;
-        }
+
+        // use the given hazelcast Instance or create one if not given
+        HazelcastInstance hzInstance = getOrCreateHzInstance(parameters);
 
         int defaultOperation = -1;
         Object operation = getAndRemoveOrResolveReferenceParameter(parameters, HazelcastConstants.OPERATION_PARAM, Object.class);
@@ -150,10 +145,6 @@ public class HazelcastComponent extends UriEndpointComponent {
     @Override
     public void doStart() throws Exception {
         super.doStart();
-        if (hazelcastInstance == null) {
-            createOwnInstance = true;
-            hazelcastInstance = createOwnInstance();
-        }
     }
 
     @Override
@@ -178,4 +169,29 @@ public class HazelcastComponent extends UriEndpointComponent {
         config.getProperties().setProperty("hazelcast.version.check.enabled", "false");
         return Hazelcast.newHazelcastInstance(config);
     }
+
+    private HazelcastInstance getOrCreateHzInstance(Map<String, Object> parameters) {
+
+        // Query param named 'hazelcastInstance' (if exists) overrides the instance that was set
+        HazelcastInstance hzInstance = resolveAndRemoveReferenceParameter(parameters, HAZELCAST_INSTANCE_PARAM,
+                HazelcastInstance.class);
+
+        // check if an already created instance is given then just get instance by its name.
+        if (hzInstance == null)
+        {
+            hzInstance = Hazelcast.getHazelcastInstanceByName((String) parameters.get(HAZELCAST_INSTANCE_NAME_PARAM));
+            parameters.remove(HAZELCAST_INSTANCE_NAME_PARAM);
+        }
+
+        // Now create onw instance component
+        if (hzInstance == null) {
+
+            if (hazelcastInstance == null) {
+                createOwnInstance = true;
+                hazelcastInstance = createOwnInstance();
+            }
+            hzInstance = hazelcastInstance;
+        }
+        return hzInstance;
+    }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/c44f797b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastConstants.java
----------------------------------------------------------------------
diff --git a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastConstants.java b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastConstants.java
index e1a6304..a16013e 100644
--- a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastConstants.java
+++ b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastConstants.java
@@ -100,6 +100,9 @@ public final class HazelcastConstants {
 
     // parameter names
     public static final String OPERATION_PARAM = "operation";
+    public static final String HAZELCAST_INSTANCE_NAME_PARAM = "hazelcastInstanceName";
+    public static final String HAZELCAST_INSTANCE_PARAM = "hazelcastInstance";
+
 
     private HazelcastConstants() {
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/c44f797b/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastComponentInstanceReferenceNameSpringTest.java
----------------------------------------------------------------------
diff --git a/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastComponentInstanceReferenceNameSpringTest.java b/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastComponentInstanceReferenceNameSpringTest.java
new file mode 100644
index 0000000..3f0b753
--- /dev/null
+++ b/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastComponentInstanceReferenceNameSpringTest.java
@@ -0,0 +1,49 @@
+/**
+ * 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.hazelcast;
+
+import org.junit.Test;
+import org.springframework.context.support.AbstractApplicationContext;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+
+public class HazelcastComponentInstanceReferenceNameSpringTest extends HazelcastCamelSpringTestSupport {
+
+    private static final String TEST_VALUE = "TestValue";
+    private static final String TEST_KEY = "TestKey";
+
+
+    @Test
+    public void testComparePutAndGet() {
+        template.sendBodyAndHeader("direct:testHazelcastInstanceBeanRefPut", TEST_VALUE,
+                HazelcastConstants.OBJECT_ID, TEST_KEY);
+
+        template.sendBodyAndHeader("direct:testHazelcastInstanceBeanRefGet", null,
+                HazelcastConstants.OBJECT_ID, TEST_KEY);
+        final Object testValueReturn = consumer.receiveBody("seda:out");
+
+        assertEquals(TEST_VALUE, testValueReturn);
+    }
+
+    @Override
+    protected AbstractApplicationContext createApplicationContext() {
+        return new ClassPathXmlApplicationContext(
+                "/META-INF/spring/test-camel-context-hazelcast-instance-name-reference.xml"
+        );
+    }
+}
+

http://git-wip-us.apache.org/repos/asf/camel/blob/c44f797b/components/camel-hazelcast/src/test/resources/META-INF/spring/test-camel-context-hazelcast-instance-name-reference.xml
----------------------------------------------------------------------
diff --git a/components/camel-hazelcast/src/test/resources/META-INF/spring/test-camel-context-hazelcast-instance-name-reference.xml b/components/camel-hazelcast/src/test/resources/META-INF/spring/test-camel-context-hazelcast-instance-name-reference.xml
new file mode 100644
index 0000000..ecef9a0
--- /dev/null
+++ b/components/camel-hazelcast/src/test/resources/META-INF/spring/test-camel-context-hazelcast-instance-name-reference.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  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.
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:camel="http://camel.apache.org/schema/spring"
+       xsi:schemaLocation="
+	   http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+       http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
+
+    <bean id="hazelcastLifecycle" class="com.hazelcast.core.LifecycleService"
+          factory-bean="hazelcastInstance" factory-method="getLifecycleService"
+          destroy-method="shutdown" />
+
+    <bean id="config" class="com.hazelcast.config.Config">
+        <constructor-arg type="java.lang.String" value="HZ.INSTANCE" />
+    </bean>
+
+    <bean id="hazelcastInstance" class="com.hazelcast.core.Hazelcast" factory-method="newHazelcastInstance">
+        <constructor-arg type="com.hazelcast.config.Config" ref="config"/>
+    </bean>
+    <camelContext xmlns="http://camel.apache.org/schema/spring">
+        <route id="testHazelcastInstanceBeanRefPut">
+            <from uri="direct:testHazelcastInstanceBeanRefPut"/>
+            <setHeader headerName="CamelHazelcastOperationType">
+                <constant>put</constant>
+            </setHeader>
+            <to uri="hazelcast:map:testmap?hazelcastInstanceName=HZ.INSTANCE"/>
+        </route>
+
+        <route id="testHazelcastInstanceBeanRefGet">
+            <from uri="direct:testHazelcastInstanceBeanRefGet" />
+            <setHeader headerName="CamelHazelcastOperationType">
+                <constant>get</constant>
+            </setHeader>
+            <to uri="hazelcast:map:testmap?hazelcastInstanceName=HZ.INSTANCE"/>
+            <to uri="seda:out" />
+        </route>
+    </camelContext>
+
+</beans>


[2/3] camel git commit: Adding a check if the hazelcastInstanceName parameter is present or not before querying the cluster.

Posted by da...@apache.org.
Adding a check if the hazelcastInstanceName parameter is present or not before querying the cluster.


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/ee5c0f86
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/ee5c0f86
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/ee5c0f86

Branch: refs/heads/master
Commit: ee5c0f86b30abe88a8f783f6db7751a9cc99bec0
Parents: c44f797
Author: Ayache Khettar <ay...@zotix-consulting.co.uk>
Authored: Wed Mar 25 11:27:39 2015 +0000
Committer: Claus Ibsen <da...@apache.org>
Committed: Wed Mar 25 15:03:01 2015 +0100

----------------------------------------------------------------------
 .../org/apache/camel/component/hazelcast/HazelcastComponent.java   | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/ee5c0f86/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastComponent.java b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastComponent.java
index eb752dd..d7153f7 100644
--- a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastComponent.java
+++ b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastComponent.java
@@ -177,7 +177,7 @@ public class HazelcastComponent extends UriEndpointComponent {
                 HazelcastInstance.class);
 
         // check if an already created instance is given then just get instance by its name.
-        if (hzInstance == null)
+        if (hzInstance == null && parameters.get(HAZELCAST_INSTANCE_NAME_PARAM) != null)
         {
             hzInstance = Hazelcast.getHazelcastInstanceByName((String) parameters.get(HAZELCAST_INSTANCE_NAME_PARAM));
             parameters.remove(HAZELCAST_INSTANCE_NAME_PARAM);


[3/3] camel git commit: Fixed CS

Posted by da...@apache.org.
Fixed CS


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/33b96b0b
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/33b96b0b
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/33b96b0b

Branch: refs/heads/master
Commit: 33b96b0b52262d87ff7393b0d8da265cd5faae93
Parents: ee5c0f8
Author: Claus Ibsen <da...@apache.org>
Authored: Wed Mar 25 15:06:56 2015 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Wed Mar 25 15:06:56 2015 +0100

----------------------------------------------------------------------
 .../org/apache/camel/component/hazelcast/HazelcastComponent.java  | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/33b96b0b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastComponent.java b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastComponent.java
index d7153f7..4890738 100644
--- a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastComponent.java
+++ b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastComponent.java
@@ -35,8 +35,9 @@ import org.apache.camel.component.hazelcast.seda.HazelcastSedaEndpoint;
 import org.apache.camel.component.hazelcast.topic.HazelcastTopicEndpoint;
 import org.apache.camel.impl.UriEndpointComponent;
 
+import static org.apache.camel.component.hazelcast.HazelcastConstants.HAZELCAST_INSTANCE_NAME_PARAM;
+import static org.apache.camel.component.hazelcast.HazelcastConstants.HAZELCAST_INSTANCE_PARAM;
 import static org.apache.camel.util.ObjectHelper.removeStartingCharacters;
-import static org.apache.camel.component.hazelcast.HazelcastConstants.*;
 
 public class HazelcastComponent extends UriEndpointComponent {