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 2014/06/26 16:08:13 UTC
[3/4] git commit: CAMEL-7544: Fixed XML DSL with customId attribute
set cannot be read by Camel
CAMEL-7544: Fixed XML DSL with customId attribute set cannot be read by Camel
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/83c66f4c
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/83c66f4c
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/83c66f4c
Branch: refs/heads/master
Commit: 83c66f4c8ae87dfc8e354abfa97d21a314e1147c
Parents: a76f818
Author: Claus Ibsen <da...@apache.org>
Authored: Thu Jun 26 15:47:01 2014 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Thu Jun 26 16:08:00 2014 +0200
----------------------------------------------------------------------
.../core/xml/AbstractCamelFactoryBean.java | 10 ++++
.../camel/spring/issues/CustomIdIssuesTest.java | 59 ++++++++++++++++++++
.../camel/spring/issues/CustomIdIssueTest.xml | 47 ++++++++++++++++
3 files changed, 116 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/83c66f4c/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelFactoryBean.java
----------------------------------------------------------------------
diff --git a/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelFactoryBean.java b/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelFactoryBean.java
index d24d7a1..cae7a71 100644
--- a/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelFactoryBean.java
+++ b/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelFactoryBean.java
@@ -33,6 +33,8 @@ public abstract class AbstractCamelFactoryBean<T> extends IdentifiedType impleme
private String camelContextId;
@XmlTransient
private CamelContext camelContext;
+ @XmlTransient
+ private Boolean customId;
public abstract T getObject() throws Exception;
@@ -82,6 +84,14 @@ public abstract class AbstractCamelFactoryBean<T> extends IdentifiedType impleme
this.camelContextId = camelContextId;
}
+ public Boolean getCustomId() {
+ return customId;
+ }
+
+ public void setCustomId(Boolean customId) {
+ this.customId = customId;
+ }
+
public boolean isSingleton() {
return true;
}
http://git-wip-us.apache.org/repos/asf/camel/blob/83c66f4c/components/camel-spring/src/test/java/org/apache/camel/spring/issues/CustomIdIssuesTest.java
----------------------------------------------------------------------
diff --git a/components/camel-spring/src/test/java/org/apache/camel/spring/issues/CustomIdIssuesTest.java b/components/camel-spring/src/test/java/org/apache/camel/spring/issues/CustomIdIssuesTest.java
new file mode 100644
index 0000000..43b6f02
--- /dev/null
+++ b/components/camel-spring/src/test/java/org/apache/camel/spring/issues/CustomIdIssuesTest.java
@@ -0,0 +1,59 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.spring.issues;
+
+import org.apache.camel.model.ChoiceDefinition;
+import org.apache.camel.model.FromDefinition;
+import org.apache.camel.model.LogDefinition;
+import org.apache.camel.model.RouteDefinition;
+import org.apache.camel.model.WhenDefinition;
+import org.apache.camel.spring.SpringTestSupport;
+import org.springframework.context.support.AbstractXmlApplicationContext;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+/**
+ * @version
+ */
+public class CustomIdIssuesTest extends SpringTestSupport {
+
+ @Override
+ protected AbstractXmlApplicationContext createApplicationContext() {
+ return new ClassPathXmlApplicationContext("org/apache/camel/spring/issues/CustomIdIssueTest.xml");
+ }
+
+ public void testCustomId() {
+ RouteDefinition route = context.getRouteDefinition("myRoute");
+ assertNotNull(route);
+ assertTrue(route.hasCustomIdAssigned());
+
+ FromDefinition from = route.getInputs().get(0);
+ assertEquals("fromFile", from.getId());
+ assertTrue(from.hasCustomIdAssigned());
+
+ ChoiceDefinition choice = (ChoiceDefinition) route.getOutputs().get(0);
+ assertEquals("myChoice", choice.getId());
+ assertTrue(choice.hasCustomIdAssigned());
+
+ WhenDefinition when = choice.getWhenClauses().get(0);
+ assertTrue(when.hasCustomIdAssigned());
+ assertEquals("UK", when.getId());
+
+ LogDefinition log = (LogDefinition) choice.getOtherwise().getOutputs().get(0);
+ assertFalse(log.hasCustomIdAssigned());
+ }
+}
+
http://git-wip-us.apache.org/repos/asf/camel/blob/83c66f4c/components/camel-spring/src/test/resources/org/apache/camel/spring/issues/CustomIdIssueTest.xml
----------------------------------------------------------------------
diff --git a/components/camel-spring/src/test/resources/org/apache/camel/spring/issues/CustomIdIssueTest.xml b/components/camel-spring/src/test/resources/org/apache/camel/spring/issues/CustomIdIssueTest.xml
new file mode 100644
index 0000000..9c7b4fa
--- /dev/null
+++ b/components/camel-spring/src/test/resources/org/apache/camel/spring/issues/CustomIdIssueTest.xml
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:camel="http://camel.apache.org/schema/spring"
+ xsi:schemaLocation="
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+ http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
+
+ <camelContext xmlns="http://camel.apache.org/schema/spring">
+ <route customId="true" id="myRoute">
+ <description>here is a sample which processes the input files
+ (leaving them in place - see the 'noop' flag)
+ then performs content based routing on the message using XPath</description>
+ <from uri="file:src/data?noop=true" customId="true" id="fromFile">
+ <description/>
+ </from>
+ <choice customId="true" id="myChoice">
+ <when customId="true" id="UK">
+ <xpath>/person/city = 'London'</xpath>
+ <log message="UK message" customId="true" id="ukLog"/>
+ <to uri="file:target/messages/uk" customId="true" id="ukOutput"/>
+ </when>
+ <otherwise>
+ <log message="Other message"/>
+ <to uri="file:target/messages/others"/>
+ </otherwise>
+ </choice>
+ </route>
+ </camelContext>
+
+</beans>
\ No newline at end of file