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 2012/01/18 12:25:27 UTC
svn commit: r1232837 - in /camel/branches/camel-2.9.x: ./
components/camel-blueprint/src/main/java/org/apache/camel/blueprint/handler/CamelNamespaceHandler.java
components/camel-http/
Author: davsclaus
Date: Wed Jan 18 11:25:27 2012
New Revision: 1232837
URL: http://svn.apache.org/viewvc?rev=1232837&view=rev
Log:
CAMEL-4913: camel-blueprint now supports using custom namespaces in the xml file.
Modified:
camel/branches/camel-2.9.x/ (props changed)
camel/branches/camel-2.9.x/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/handler/CamelNamespaceHandler.java
camel/branches/camel-2.9.x/components/camel-http/ (props changed)
Propchange: camel/branches/camel-2.9.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Jan 18 11:25:27 2012
@@ -1 +1 @@
-/camel/trunk:1227209,1227212,1227540,1228015,1228027,1228223,1228879,1229565,1231135,1231704,1232309,1232312,1232429,1232763,1232782
+/camel/trunk:1227209,1227212,1227540,1228015,1228027,1228223,1228879,1229565,1231135,1231704,1232309,1232312,1232429,1232763,1232782,1232834
Propchange: camel/branches/camel-2.9.x/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Wed Jan 18 11:25:27 2012
@@ -1 +1 @@
-/camel/trunk:1-1227196,1227209,1227212,1227540,1228015,1228027,1228223,1228879,1229565,1231135,1231704,1232309,1232312,1232429,1232763,1232782
+/camel/trunk:1-1227196,1227209,1227212,1227540,1228015,1228027,1228223,1228879,1229565,1231135,1231704,1232309,1232312,1232429,1232763,1232782,1232834
Modified: camel/branches/camel-2.9.x/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/handler/CamelNamespaceHandler.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/handler/CamelNamespaceHandler.java?rev=1232837&r1=1232836&r2=1232837&view=diff
==============================================================================
--- camel/branches/camel-2.9.x/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/handler/CamelNamespaceHandler.java (original)
+++ camel/branches/camel-2.9.x/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/handler/CamelNamespaceHandler.java Wed Jan 18 11:25:27 2012
@@ -51,6 +51,7 @@ import org.apache.camel.Produce;
import org.apache.camel.blueprint.BlueprintCamelContext;
import org.apache.camel.blueprint.CamelContextFactoryBean;
import org.apache.camel.blueprint.CamelRouteContextFactoryBean;
+import org.apache.camel.builder.xml.Namespaces;
import org.apache.camel.core.xml.AbstractCamelContextFactoryBean;
import org.apache.camel.core.xml.AbstractCamelFactoryBean;
import org.apache.camel.impl.CamelPostProcessorHelper;
@@ -75,6 +76,7 @@ import org.apache.camel.spi.CamelContext
import org.apache.camel.spi.ComponentResolver;
import org.apache.camel.spi.DataFormatResolver;
import org.apache.camel.spi.LanguageResolver;
+import org.apache.camel.spi.NamespaceAware;
import org.apache.camel.util.ObjectHelper;
import org.apache.camel.util.blueprint.KeyStoreParametersFactoryBean;
import org.apache.camel.util.blueprint.SSLContextParametersFactoryBean;
@@ -233,9 +235,34 @@ public class CamelNamespaceHandler imple
regProcessor.addDependsOn(".camelBlueprint.processor.bean." + contextId);
regProcessor.addProperty("blueprintContainer", createRef(context, "blueprintContainer"));
context.getComponentDefinitionRegistry().registerComponentDefinition(regProcessor);
+
+ // lets inject the namespaces into any namespace aware POJOs
+ injectNamespaces(element, binder);
+
return ctx;
}
+ protected void injectNamespaces(Element element, Binder<Node> binder) {
+ NodeList list = element.getChildNodes();
+ Namespaces namespaces = null;
+ int size = list.getLength();
+ for (int i = 0; i < size; i++) {
+ Node child = list.item(i);
+ if (child instanceof Element) {
+ Element childElement = (Element) child;
+ Object object = binder.getJAXBNode(child);
+ if (object instanceof NamespaceAware) {
+ NamespaceAware namespaceAware = (NamespaceAware) object;
+ if (namespaces == null) {
+ namespaces = new Namespaces(element);
+ }
+ namespaces.configure(namespaceAware);
+ }
+ injectNamespaces(childElement, binder);
+ }
+ }
+ }
+
private Metadata parseRouteContextNode(Element element, ParserContext context) {
// now parse the routes with JAXB
Binder<Node> binder;
Propchange: camel/branches/camel-2.9.x/components/camel-http/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Jan 18 11:25:27 2012
@@ -1 +1 @@
-/camel/trunk/components/camel-http:917526,1227209,1227212,1228015,1228027,1228223,1228879,1232782
+/camel/trunk/components/camel-http:917526,1227209,1227212,1228015,1228027,1228223,1228879,1232782,1232834