You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by lb...@apache.org on 2017/08/24 14:08:33 UTC
[1/2] camel git commit: MetaDataExtension : allow to retrieve
attributes directly
Repository: camel
Updated Branches:
refs/heads/master 60d0ed8b4 -> 2e2df2cb7
MetaDataExtension : allow to retrieve attributes directly
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/2e2df2cb
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/2e2df2cb
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/2e2df2cb
Branch: refs/heads/master
Commit: 2e2df2cb798c6ce4abd5ba2d1b34accae2cbe16f
Parents: 4da9afd
Author: lburgazzoli <lb...@gmail.com>
Authored: Thu Aug 24 16:07:37 2017 +0200
Committer: lburgazzoli <lb...@gmail.com>
Committed: Thu Aug 24 16:08:23 2017 +0200
----------------------------------------------------------------------
.../apache/camel/component/extension/MetaDataExtension.java | 6 +++++-
.../camel/component/extension/metadata/DefaultMetaData.java | 6 ++++++
2 files changed, 11 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/2e2df2cb/camel-core/src/main/java/org/apache/camel/component/extension/MetaDataExtension.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/extension/MetaDataExtension.java b/camel-core/src/main/java/org/apache/camel/component/extension/MetaDataExtension.java
index 9361e66..efbf612 100644
--- a/camel-core/src/main/java/org/apache/camel/component/extension/MetaDataExtension.java
+++ b/camel-core/src/main/java/org/apache/camel/component/extension/MetaDataExtension.java
@@ -35,7 +35,6 @@ public interface MetaDataExtension extends ComponentExtension {
String JAVA_TYPE = "Java-Type";
/**
- *
* Returns an attribute associated with this meta data by name.
*
* @param name the attribute name
@@ -44,6 +43,11 @@ public interface MetaDataExtension extends ComponentExtension {
Object getAttribute(String name);
/**
+ * @return a red-only list of attributes.
+ */
+ Map<String, Object> getAttributes();
+
+ /**
*
* Returns an attribute associated with this meta data by name and
* specifying the type required.
http://git-wip-us.apache.org/repos/asf/camel/blob/2e2df2cb/camel-core/src/main/java/org/apache/camel/component/extension/metadata/DefaultMetaData.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/extension/metadata/DefaultMetaData.java b/camel-core/src/main/java/org/apache/camel/component/extension/metadata/DefaultMetaData.java
index b1e2df4..47e8375 100644
--- a/camel-core/src/main/java/org/apache/camel/component/extension/metadata/DefaultMetaData.java
+++ b/camel-core/src/main/java/org/apache/camel/component/extension/metadata/DefaultMetaData.java
@@ -16,6 +16,7 @@
*/
package org.apache.camel.component.extension.metadata;
+import java.util.Collections;
import java.util.Map;
import org.apache.camel.CamelContext;
@@ -38,6 +39,11 @@ public class DefaultMetaData implements MetaDataExtension.MetaData {
}
@Override
+ public Map<String, Object> getAttributes() {
+ return Collections.unmodifiableMap(attributes);
+ }
+
+ @Override
public <T> T getAttribute(String name, Class<T> type) {
Object value = attributes.get(name);
if (camelContext != null) {
[2/2] camel git commit: ComponentExtension : allow to unwrap to
concrete extension.
Posted by lb...@apache.org.
ComponentExtension : allow to unwrap to concrete extension.
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/4da9afdb
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/4da9afdb
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/4da9afdb
Branch: refs/heads/master
Commit: 4da9afdb8adb7163131c0aba3d8d2d2f8e9342e0
Parents: 60d0ed8
Author: lburgazzoli <lb...@gmail.com>
Authored: Thu Aug 24 16:06:00 2017 +0200
Committer: lburgazzoli <lb...@gmail.com>
Committed: Thu Aug 24 16:08:23 2017 +0200
----------------------------------------------------------------------
.../component/extension/ComponentExtension.java | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/4da9afdb/camel-core/src/main/java/org/apache/camel/component/extension/ComponentExtension.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/extension/ComponentExtension.java b/camel-core/src/main/java/org/apache/camel/component/extension/ComponentExtension.java
index 8d90d31..fca2371 100644
--- a/camel-core/src/main/java/org/apache/camel/component/extension/ComponentExtension.java
+++ b/camel-core/src/main/java/org/apache/camel/component/extension/ComponentExtension.java
@@ -23,4 +23,20 @@ package org.apache.camel.component.extension;
* ServiceMetaData.
*/
public interface ComponentExtension {
+ /**
+ * Access the underlying concrete ComponentExtension implementation to
+ * provide access to further features.
+ *
+ * @param clazz the proprietary class or interface of the underlying concrete ComponentExtension.
+ * @return an instance of the underlying concrete ComponentExtension as the required type.
+ */
+ default <T extends ComponentExtension> T unwrap(Class<T> clazz) {
+ if (ComponentExtension.class.isAssignableFrom(clazz)) {
+ return clazz.cast(this);
+ }
+
+ throw new IllegalArgumentException(
+ "Unable to unwrap this ComponentExtension type (" + getClass() + ") to the required type (" + clazz + ")"
+ );
+ }
}