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 2016/01/06 17:46:12 UTC
[06/10] camel git commit: Component docs
Component docs
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/cd7c5924
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/cd7c5924
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/cd7c5924
Branch: refs/heads/camel-2.16.x
Commit: cd7c592408ab5860abe480c193604ff7cf59a12f
Parents: a9cee89
Author: Claus Ibsen <da...@apache.org>
Authored: Wed Jan 6 13:48:37 2016 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Wed Jan 6 17:43:22 2016 +0100
----------------------------------------------------------------------
.../camel/component/jmx/JMXComponent.java | 21 ++++----------------
.../apache/camel/component/jmx/JMXEndpoint.java | 14 ++++++++-----
.../camel/component/jmx/JMXComponentTest.java | 6 +++---
3 files changed, 16 insertions(+), 25 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/cd7c5924/components/camel-jmx/src/main/java/org/apache/camel/component/jmx/JMXComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-jmx/src/main/java/org/apache/camel/component/jmx/JMXComponent.java b/components/camel-jmx/src/main/java/org/apache/camel/component/jmx/JMXComponent.java
index 8822ed9..b5da6cb 100644
--- a/components/camel-jmx/src/main/java/org/apache/camel/component/jmx/JMXComponent.java
+++ b/components/camel-jmx/src/main/java/org/apache/camel/component/jmx/JMXComponent.java
@@ -16,14 +16,12 @@
*/
package org.apache.camel.component.jmx;
-import java.util.Hashtable;
-import java.util.Iterator;
import java.util.Map;
-import java.util.Map.Entry;
import org.apache.camel.Endpoint;
import org.apache.camel.impl.UriEndpointComponent;
import org.apache.camel.util.EndpointHelper;
+import org.apache.camel.util.IntrospectionSupport;
/**
* Component for connecting JMX Notification events to a camel route.
@@ -38,6 +36,7 @@ public class JMXComponent extends UriEndpointComponent {
}
@Override
+ @SuppressWarnings("unchecked")
protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception {
JMXEndpoint endpoint = new JMXEndpoint(uri, this);
// use the helper class to set all of the properties
@@ -46,20 +45,8 @@ public class JMXComponent extends UriEndpointComponent {
endpoint.setServerURL(remaining);
- // we may have some extra params left over for the object properties hashtable
- // these properties need to be consumed or the framework will throw an exception
- // for unused params
- if (!parameters.isEmpty()) {
- Hashtable<String, String> objectProperties = new Hashtable<String, String>();
-
- for (Iterator<Entry<String, Object>> it = parameters.entrySet().iterator(); it.hasNext();) {
- Entry<String, Object> entry = it.next();
- if (entry.getKey().startsWith("key.")) {
- objectProperties.put(entry.getKey().substring("key.".length()), entry.getValue().toString());
- it.remove();
- }
- }
-
+ Map objectProperties = IntrospectionSupport.extractProperties(parameters, "key.");
+ if (objectProperties != null && !objectProperties.isEmpty()) {
endpoint.setObjectProperties(objectProperties);
}
http://git-wip-us.apache.org/repos/asf/camel/blob/cd7c5924/components/camel-jmx/src/main/java/org/apache/camel/component/jmx/JMXEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-jmx/src/main/java/org/apache/camel/component/jmx/JMXEndpoint.java b/components/camel-jmx/src/main/java/org/apache/camel/component/jmx/JMXEndpoint.java
index 4522bc6..d3fcdaf 100644
--- a/components/camel-jmx/src/main/java/org/apache/camel/component/jmx/JMXEndpoint.java
+++ b/components/camel-jmx/src/main/java/org/apache/camel/component/jmx/JMXEndpoint.java
@@ -17,6 +17,7 @@
package org.apache.camel.component.jmx;
import java.util.Hashtable;
+import java.util.Map;
import javax.management.MalformedObjectNameException;
import javax.management.NotificationFilter;
import javax.management.ObjectName;
@@ -212,7 +213,8 @@ public class JMXEndpoint extends DefaultEndpoint {
/**
* URI Property: properties for the object name. These values will be used if the objectName param is not set
*/
- private Hashtable<String, String> objectProperties;
+ @UriParam(label = "advanced", prefix = "key.", multiValue = true)
+ private Map<String, String> objectProperties;
/**
* cached object name that was built from the objectName param or the hashtable
@@ -346,7 +348,7 @@ public class JMXEndpoint extends DefaultEndpoint {
handback = aHandback;
}
- public Hashtable<String, String> getObjectProperties() {
+ public Map<String, String> getObjectProperties() {
return objectProperties;
}
@@ -360,11 +362,11 @@ public class JMXEndpoint extends DefaultEndpoint {
* If there are extra properties that begin with "key." then the component will
* create a Hashtable with these values after removing the "key." prefix.
*/
- public void setObjectProperties(Hashtable<String, String> aObjectProperties) {
+ public void setObjectProperties(Map<String, String> objectProperties) {
if (getObjectName() != null) {
throw new IllegalArgumentException("Cannot set both objectName and objectProperties");
}
- objectProperties = aObjectProperties;
+ this.objectProperties = objectProperties;
}
protected ObjectName getJMXObjectName() throws MalformedObjectNameException {
@@ -521,7 +523,9 @@ public class JMXEndpoint extends DefaultEndpoint {
StringBuilder sb = new StringBuilder(getObjectDomain()).append(':').append("name=").append(getObjectName());
objectName = new ObjectName(sb.toString());
} else {
- objectName = new ObjectName(getObjectDomain(), getObjectProperties());
+ Hashtable<String, String> ht = new Hashtable<String, String>();
+ ht.putAll(getObjectProperties());
+ objectName = new ObjectName(getObjectDomain(), ht);
}
return objectName;
}
http://git-wip-us.apache.org/repos/asf/camel/blob/cd7c5924/components/camel-jmx/src/test/java/org/apache/camel/component/jmx/JMXComponentTest.java
----------------------------------------------------------------------
diff --git a/components/camel-jmx/src/test/java/org/apache/camel/component/jmx/JMXComponentTest.java b/components/camel-jmx/src/test/java/org/apache/camel/component/jmx/JMXComponentTest.java
index c37174a..b9d63e4 100644
--- a/components/camel-jmx/src/test/java/org/apache/camel/component/jmx/JMXComponentTest.java
+++ b/components/camel-jmx/src/test/java/org/apache/camel/component/jmx/JMXComponentTest.java
@@ -16,7 +16,7 @@
*/
package org.apache.camel.component.jmx;
-import java.util.Hashtable;
+import java.util.Map;
import org.apache.camel.ResolveEndpointFailedException;
import org.apache.camel.impl.DefaultCamelContext;
@@ -41,7 +41,7 @@ public class JMXComponentTest {
JMXEndpoint ep = context.getEndpoint("jmx:platform?objectDomain=FooDomain&key.propOne=prop1&key.propTwo=prop2", JMXEndpoint.class);
assertNotNull(ep);
- Hashtable<String, String> props = ep.getObjectProperties();
+ Map<String, String> props = ep.getObjectProperties();
assertEquals(2, props.size());
assertEquals("prop1", props.get("propOne"));
assertEquals("prop2", props.get("propTwo"));
@@ -56,7 +56,7 @@ public class JMXComponentTest {
assertEquals("theObjectName", ep.getObjectName());
- Hashtable<String, String> props = ep.getObjectProperties();
+ Map<String, String> props = ep.getObjectProperties();
assertNull(props);
}