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/11/24 20:01:29 UTC

svn commit: r1413244 - in /camel/trunk: camel-core/src/main/java/org/apache/camel/model/ components/camel-blueprint/src/main/java/org/apache/camel/blueprint/ components/camel-core-xml/src/main/java/org/apache/camel/core/xml/ components/camel-spring/ co...

Author: davsclaus
Date: Sat Nov 24 19:01:24 2012
New Revision: 1413244

URL: http://svn.apache.org/viewvc?rev=1413244&view=rev
Log:
CAMEL-5801: Make it easy to configure thread name pattern in XML DSL

Added:
    camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringThreadNamePatternTest.java   (with props)
    camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/SpringThreadNamePatternTest.xml
      - copied, changed from r1413226, camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/enricher.xml
    camel/trunk/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/ThreadNamePatternTest.java
      - copied, changed from r1413243, camel/trunk/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/FilterTest.java
    camel/trunk/components/camel-test-blueprint/src/test/resources/org/apache/camel/test/blueprint/threadNamePatternTest.xml
      - copied, changed from r1413243, camel/trunk/components/camel-test-blueprint/src/test/resources/org/apache/camel/test/blueprint/filterTest.xml
Modified:
    camel/trunk/camel-core/src/main/java/org/apache/camel/model/OptionalIdentifiedDefinition.java
    camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelContextFactoryBean.java
    camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java
    camel/trunk/components/camel-spring/   (props changed)
    camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/CamelContextFactoryBean.java

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/OptionalIdentifiedDefinition.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/OptionalIdentifiedDefinition.java?rev=1413244&r1=1413243&r2=1413244&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/model/OptionalIdentifiedDefinition.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/OptionalIdentifiedDefinition.java Sat Nov 24 19:01:24 2012
@@ -20,11 +20,8 @@ import javax.xml.bind.annotation.XmlAcce
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlID;
 import javax.xml.bind.annotation.XmlTransient;
 import javax.xml.bind.annotation.XmlType;
-import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
 import org.apache.camel.NamedNode;
 import org.apache.camel.spi.NodeIdFactory;
@@ -54,8 +51,6 @@ public abstract class OptionalIdentified
      * Sets the value of the id property.
      */
     @XmlAttribute
-    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
-    @XmlID
     public void setId(String value) {
         this.id = value;
         customId = true;

Modified: camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelContextFactoryBean.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelContextFactoryBean.java?rev=1413244&r1=1413243&r2=1413244&view=diff
==============================================================================
--- camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelContextFactoryBean.java (original)
+++ camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelContextFactoryBean.java Sat Nov 24 19:01:24 2012
@@ -96,6 +96,8 @@ public class CamelContextFactoryBean ext
     @XmlAttribute(required = false)
     private String managementNamePattern;
     @XmlAttribute(required = false)
+    private String threadNamePattern;
+    @XmlAttribute(required = false)
     private Boolean useBlueprintPropertyResolver;
     @XmlAttribute(required = false)
     private ShutdownRoute shutdownRoute;
@@ -331,6 +333,14 @@ public class CamelContextFactoryBean ext
         this.managementNamePattern = managementNamePattern;
     }
 
+    public String getThreadNamePattern() {
+        return threadNamePattern;
+    }
+
+    public void setThreadNamePattern(String threadNamePattern) {
+        this.threadNamePattern = threadNamePattern;
+    }
+
     @Deprecated
     public Boolean getLazyLoadTypeConverters() {
         // use false by default

Modified: camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java?rev=1413244&r1=1413243&r2=1413244&view=diff
==============================================================================
--- camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java (original)
+++ camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java Sat Nov 24 19:01:24 2012
@@ -476,6 +476,8 @@ public abstract class AbstractCamelConte
 
     public abstract String getManagementNamePattern();
 
+    public abstract String getThreadNamePattern();
+
     /**
      * @deprecated this option is no longer supported, will be removed in a future Camel release.
      */
@@ -541,6 +543,9 @@ public abstract class AbstractCamelConte
         if (getManagementNamePattern() != null) {
             ctx.getManagementNameStrategy().setNamePattern(getManagementNamePattern());
         }
+        if (getThreadNamePattern() != null) {
+            ctx.getExecutorServiceManager().setThreadNamePattern(getThreadNamePattern());
+        }
         if (getShutdownRoute() != null) {
             ctx.setShutdownRoute(getShutdownRoute());
         }

Propchange: camel/trunk/components/camel-spring/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Sat Nov 24 19:01:24 2012
@@ -14,3 +14,4 @@ eclipse-classes
 *.ipr
 *.iml
 *.iws
+*.idea

Modified: camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/CamelContextFactoryBean.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/CamelContextFactoryBean.java?rev=1413244&r1=1413243&r2=1413244&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/CamelContextFactoryBean.java (original)
+++ camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/CamelContextFactoryBean.java Sat Nov 24 19:01:24 2012
@@ -104,6 +104,8 @@ public class CamelContextFactoryBean ext
     @XmlAttribute(required = false)
     private String managementNamePattern;
     @XmlAttribute(required = false)
+    private String threadNamePattern;
+    @XmlAttribute(required = false)
     private ShutdownRoute shutdownRoute;
     @XmlAttribute(required = false)
     private ShutdownRunningTask shutdownRunningTask;
@@ -516,6 +518,14 @@ public class CamelContextFactoryBean ext
         this.managementNamePattern = managementNamePattern;
     }
 
+    public String getThreadNamePattern() {
+        return threadNamePattern;
+    }
+
+    public void setThreadNamePattern(String threadNamePattern) {
+        this.threadNamePattern = threadNamePattern;
+    }
+
     @Deprecated
     public Boolean getLazyLoadTypeConverters() {
         return lazyLoadTypeConverters;

Added: camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringThreadNamePatternTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringThreadNamePatternTest.java?rev=1413244&view=auto
==============================================================================
--- camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringThreadNamePatternTest.java (added)
+++ camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringThreadNamePatternTest.java Sat Nov 24 19:01:24 2012
@@ -0,0 +1,42 @@
+/**
+ * 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.processor;
+
+import org.apache.camel.spring.SpringTestSupport;
+import org.springframework.context.support.AbstractXmlApplicationContext;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+/**
+ *
+ */
+public class SpringThreadNamePatternTest extends SpringTestSupport {
+
+    @Override
+    protected AbstractXmlApplicationContext createApplicationContext() {
+        return new ClassPathXmlApplicationContext("org/apache/camel/spring/processor/SpringThreadNamePatternTest.xml");
+    }
+
+    public void testThreadNamePattern() throws Exception {
+        assertEquals("Riding the thread #counter#", context.getExecutorServiceManager().getThreadNamePattern());
+
+        getMockEndpoint("mock:result").expectedMessageCount(1);
+
+        template.sendBody("seda:start", "Hello World");
+
+        assertMockEndpointsSatisfied();
+    }
+}

Propchange: camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringThreadNamePatternTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringThreadNamePatternTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Copied: camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/SpringThreadNamePatternTest.xml (from r1413226, camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/enricher.xml)
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/SpringThreadNamePatternTest.xml?p2=camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/SpringThreadNamePatternTest.xml&p1=camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/enricher.xml&r1=1413226&r2=1413244&rev=1413244&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/enricher.xml (original)
+++ camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/SpringThreadNamePatternTest.xml Sat Nov 24 19:01:24 2012
@@ -23,21 +23,14 @@
     ">
 
   <!-- START SNIPPET: example -->
-  <camelContext xmlns="http://camel.apache.org/schema/spring">
+  <!-- we can use the threadNamePattern to easily configure the default thread name pattern used by Camel -->
+  <camelContext xmlns="http://camel.apache.org/schema/spring" threadNamePattern="Riding the thread #counter#">
     <route>
-      <from uri="direct:start"/>
-      <enrich uri="direct:resource" strategyRef="sampleAggregator"/>
+      <from uri="seda:start"/>
+      <to uri="log:result"/>
       <to uri="mock:result"/>
     </route>
-    <route>
-      <from uri="direct:resource"/>
-      <transform>
-        <constant>blah</constant>
-      </transform>
-    </route>
   </camelContext>
-
-  <bean id="sampleAggregator" class="org.apache.camel.processor.enricher.SampleAggregator" />
   <!-- END SNIPPET: example -->
 
 </beans>

Copied: camel/trunk/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/ThreadNamePatternTest.java (from r1413243, camel/trunk/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/FilterTest.java)
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/ThreadNamePatternTest.java?p2=camel/trunk/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/ThreadNamePatternTest.java&p1=camel/trunk/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/FilterTest.java&r1=1413243&r2=1413244&rev=1413244&view=diff
==============================================================================
--- camel/trunk/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/FilterTest.java (original)
+++ camel/trunk/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/ThreadNamePatternTest.java Sat Nov 24 19:01:24 2012
@@ -16,48 +16,23 @@
  */
 package org.apache.camel.test.blueprint;
 
-import org.apache.camel.EndpointInject;
-import org.apache.camel.Produce;
-import org.apache.camel.ProducerTemplate;
-import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.Test;
 
-/**
- * Tests filtering using Camel Blueprint Test
- *
- */
-// START SNIPPET: example
-public class FilterTest extends CamelBlueprintTestSupport {
-
-    @EndpointInject(uri = "mock:result")
-    protected MockEndpoint resultEndpoint;
-
-    @Produce(uri = "direct:start")
-    protected ProducerTemplate template;
+public class ThreadNamePatternTest extends CamelBlueprintTestSupport {
 
     @Override
     protected String getBlueprintDescriptor() {
-        return "org/apache/camel/test/blueprint/filterTest.xml";
+        return "org/apache/camel/test/blueprint/threadNamePatternTest.xml";
     }
 
     @Test
-    public void testSendMatchingMessage() throws Exception {
-        String expectedBody = "<matched/>";
-
-        resultEndpoint.expectedBodiesReceived(expectedBody);
+    public void testThreadNamePattern() throws Exception {
+        assertEquals("Riding the thread #counter#", context.getExecutorServiceManager().getThreadNamePattern());
 
-        template.sendBodyAndHeader(expectedBody, "foo", "bar");
-
-        resultEndpoint.assertIsSatisfied();
-    }
-
-    @Test
-    public void testSendNotMatchingMessage() throws Exception {
-        resultEndpoint.expectedMessageCount(0);
+        getMockEndpoint("mock:result").expectedMessageCount(1);
 
-        template.sendBodyAndHeader("<notMatched/>", "foo", "notMatchedHeaderValue");
+        template.sendBody("seda:start", "Hello World");
 
-        resultEndpoint.assertIsSatisfied();
+        assertMockEndpointsSatisfied();
     }
 }
-// END SNIPPET: example

Copied: camel/trunk/components/camel-test-blueprint/src/test/resources/org/apache/camel/test/blueprint/threadNamePatternTest.xml (from r1413243, camel/trunk/components/camel-test-blueprint/src/test/resources/org/apache/camel/test/blueprint/filterTest.xml)
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-test-blueprint/src/test/resources/org/apache/camel/test/blueprint/threadNamePatternTest.xml?p2=camel/trunk/components/camel-test-blueprint/src/test/resources/org/apache/camel/test/blueprint/threadNamePatternTest.xml&p1=camel/trunk/components/camel-test-blueprint/src/test/resources/org/apache/camel/test/blueprint/filterTest.xml&r1=1413243&r2=1413244&rev=1413244&view=diff
==============================================================================
--- camel/trunk/components/camel-test-blueprint/src/test/resources/org/apache/camel/test/blueprint/filterTest.xml (original)
+++ camel/trunk/components/camel-test-blueprint/src/test/resources/org/apache/camel/test/blueprint/threadNamePatternTest.xml Sat Nov 24 19:01:24 2012
@@ -15,23 +15,17 @@
     See the License for the specific language governing permissions and
     limitations under the License.
 -->
-<!-- START SNIPPET: example -->
 <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="
              http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd">
 
-  <camelContext id="filterCamel" xmlns="http://camel.apache.org/schema/blueprint">
-
+  <camelContext xmlns="http://camel.apache.org/schema/blueprint" threadNamePattern="Riding the thread #counter#">
     <route>
-      <from uri="direct:start"/>
-      <filter>
-        <simple>${header.foo} == 'bar'</simple>
-        <to uri="mock:result"/>
-      </filter>
+      <from uri="seda:start"/>
+      <to uri="log:result"/>
+      <to uri="mock:result"/>
     </route>
-
   </camelContext>
 
 </blueprint>
-<!-- END SNIPPET: example -->