Repository: camel
Updated Branches:
  refs/heads/master 46ccfab4a -> dec2bbfcc


CAMEL-7354: Added to camel-blueprint so it can find camel componetns in 
embedded rest routes.


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

Branch: refs/heads/master
Commit: dec2bbfcc2cbecf44f3c85c099afa8ab8a0702a9
Parents: 46ccfab
Author: Claus Ibsen <davscl...@apache.org>
Authored: Tue Jul 29 17:59:39 2014 +0200
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Tue Jul 29 17:59:39 2014 +0200

----------------------------------------------------------------------
 .../handler/CamelNamespaceHandler.java          | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/dec2bbfc/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/handler/CamelNamespaceHandler.java
----------------------------------------------------------------------
diff --git 
a/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/handler/CamelNamespaceHandler.java
 
b/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/handler/CamelNamespaceHandler.java
index ab0005a..bd1eb67 100644
--- 
a/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/handler/CamelNamespaceHandler.java
+++ 
b/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/handler/CamelNamespaceHandler.java
@@ -32,6 +32,9 @@ import javax.xml.bind.Binder;
 import javax.xml.bind.JAXBContext;
 import javax.xml.bind.JAXBException;
 
+import org.apache.camel.model.ToDefinition;
+import org.apache.camel.model.rest.RestDefinition;
+import org.apache.camel.model.rest.VerbDefinition;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
@@ -870,10 +873,27 @@ public class CamelNamespaceHandler implements 
NamespaceHandler {
             Set<String> components = new HashSet<String>();
             Set<String> languages = new HashSet<String>();
             Set<String> dataformats = new HashSet<String>();
+
+            // regular camel routes
             for (RouteDefinition rd : camelContext.getRouteDefinitions()) {
                 findInputComponents(rd.getInputs(), components, languages, 
dataformats);
                 findOutputComponents(rd.getOutputs(), components, languages, 
dataformats);
             }
+
+            // rest services can have embedded routes or a singular to
+            for (RestDefinition rd : camelContext.getRestDefinitions()) {
+                for (VerbDefinition vd : rd.getVerbs()) {
+                    Object o = vd.getToOrRoute();
+                    if (o instanceof RouteDefinition) {
+                        RouteDefinition route = (RouteDefinition) o;
+                        findInputComponents(route.getInputs(), components, 
languages, dataformats);
+                        findOutputComponents(route.getOutputs(), components, 
languages, dataformats);
+                    } else if (o instanceof ToDefinition) {
+                        findUriComponent(((ToDefinition) o).getUri(), 
components);
+                    }
+                }
+            }
+
             // We can only add service references to resolvers, but we can't 
make the factory depends on those
             // because the factory has already been instantiated
             try {

Reply via email to