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/23 11:54:15 UTC

[3/5] camel git commit: CAMEL-8527: Processor in routes should be IdAware

CAMEL-8527: Processor in routes should be IdAware


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

Branch: refs/heads/master
Commit: 7973ac5f1baba82c4a8b5340d441bf6881a772c6
Parents: 0c7b6d2
Author: Claus Ibsen <da...@apache.org>
Authored: Mon Mar 23 08:23:09 2015 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Mon Mar 23 11:56:00 2015 +0100

----------------------------------------------------------------------
 .../java/org/apache/camel/CamelContext.java     | 20 ++++++++++++++++++++
 .../apache/camel/impl/DefaultCamelContext.java  | 16 ++++++++++++++++
 2 files changed, 36 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/7973ac5f/camel-core/src/main/java/org/apache/camel/CamelContext.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/CamelContext.java b/camel-core/src/main/java/org/apache/camel/CamelContext.java
index b92349e..0b7d8b6 100644
--- a/camel-core/src/main/java/org/apache/camel/CamelContext.java
+++ b/camel-core/src/main/java/org/apache/camel/CamelContext.java
@@ -522,6 +522,16 @@ public interface CamelContext extends SuspendableService, RuntimeConfiguration {
     Processor getProcessor(String id);
 
     /**
+     * Gets the processor from any of the routes which with the given id
+     *
+     * @param id id of the processor
+     * @param type the processor type
+     * @return the processor or <tt>null</tt> if not found
+     * @throws java.lang.ClassCastException is thrown if the type is not correct type
+     */
+    <T extends Processor> T getProcessor(String id, Class<T> type);
+
+    /**
      * Gets the processor definition from any of the routes which with the given id
      *
      * @param id id of the processor definition
@@ -530,6 +540,16 @@ public interface CamelContext extends SuspendableService, RuntimeConfiguration {
     ProcessorDefinition getProcessorDefinition(String id);
 
     /**
+     * Gets the processor definition from any of the routes which with the given id
+     *
+     * @param id id of the processor definition
+     * @param type the processor definition type
+     * @return the processor definition or <tt>null</tt> if not found
+     * @throws java.lang.ClassCastException is thrown if the type is not correct type
+     */
+    <T extends ProcessorDefinition> T getProcessorDefinition(String id, Class<T> type);
+
+    /**
      * Adds a collection of routes to this context using the given builder
      * to build them.
      * <p/>

http://git-wip-us.apache.org/repos/asf/camel/blob/7973ac5f/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
index 9ac8692..b0874a5 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
@@ -719,6 +719,14 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon
         return null;
     }
 
+    public <T extends Processor> T getProcessor(String id, Class<T> type) {
+        Processor answer = getProcessor(id);
+        if (answer != null) {
+            return type.cast(answer);
+        }
+        return null;
+    }
+
     public ProcessorDefinition getProcessorDefinition(String id) {
         for (RouteDefinition route : getRouteDefinitions()) {
             Iterator<ProcessorDefinition> it = ProcessorDefinitionHelper.filterTypeInOutputs(route.getOutputs(), ProcessorDefinition.class);
@@ -732,6 +740,14 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon
         return null;
     }
 
+    public <T extends ProcessorDefinition> T getProcessorDefinition(String id, Class<T> type) {
+        ProcessorDefinition answer = getProcessorDefinition(id);
+        if (answer != null) {
+            return type.cast(answer);
+        }
+        return null;
+    }
+
     @Deprecated
     public void setRoutes(List<Route> routes) {
         throw new UnsupportedOperationException("Overriding existing routes is not supported yet, use addRouteCollection instead");