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 + ")"
+        );
+    }
 }