Author: davsclaus
Date: Tue Aug 31 13:44:48 2010
New Revision: 991189
URL: http://svn.apache.org/viewvc?rev=991189&view=rev
Log:
CAMEL-3091: Fixed uri parameter mapping bug when value had question mark, such
as cron expression from quartz.
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/util/URISupport.java
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/SplitParallelTimeoutTest.java
camel/trunk/camel-core/src/test/java/org/apache/camel/util/URISupportTest.java
camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzEndpointConfigureTest.java
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/util/URISupport.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/util/URISupport.java?rev=991189&r1=991188&r2=991189&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/util/URISupport.java
(original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/util/URISupport.java
Tue Aug 31 13:44:48 2010
@@ -75,7 +75,7 @@ public final class URISupport {
String query = uri.getQuery();
if (query == null) {
String schemeSpecificPart = uri.getSchemeSpecificPart();
- int idx = schemeSpecificPart.lastIndexOf('?');
+ int idx = schemeSpecificPart.indexOf('?');
if (idx < 0) {
// return an empty map
return new LinkedHashMap<String, Object>(0);
Modified:
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/SplitParallelTimeoutTest.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/SplitParallelTimeoutTest.java?rev=991189&r1=991188&r2=991189&view=diff
==============================================================================
---
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/SplitParallelTimeoutTest.java
(original)
+++
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/SplitParallelTimeoutTest.java
Tue Aug 31 13:44:48 2010
@@ -29,8 +29,8 @@ public class SplitParallelTimeoutTest ex
public void testSplitParallelTimeout() throws Exception {
MockEndpoint mock = getMockEndpoint("mock:result");
- // A will timeout so we only get B and C
- mock.expectedBodiesReceived("BC");
+ // A will timeout so we only get B and/or C
+ mock.message(0).body().not(body().contains("A"));
template.sendBody("direct:start", "A,B,C");
@@ -44,7 +44,7 @@ public class SplitParallelTimeoutTest ex
public void configure() throws Exception {
from("direct:start")
.split(body().tokenize(","), new MyAggregationStrategy())
- .parallelProcessing().timeout(2000)
+ .parallelProcessing().timeout(1000)
.choice()
.when(body().isEqualTo("A")).to("direct:a")
.when(body().isEqualTo("B")).to("direct:b")
@@ -53,7 +53,7 @@ public class SplitParallelTimeoutTest ex
.end() // end split
.to("mock:result");
- from("direct:a").delay(3000).setBody(constant("A"));
+ from("direct:a").delay(5000).setBody(constant("A"));
from("direct:b").setBody(constant("B"));
@@ -65,7 +65,7 @@ public class SplitParallelTimeoutTest ex
private class MyAggregationStrategy implements
TimeoutAwareAggregationStrategy {
public void timeout(Exchange oldExchange, int index, int total, long
timeout) {
- assertEquals(2000, timeout);
+ assertEquals(1000, timeout);
assertEquals(3, total);
assertEquals(0, index);
assertNotNull(oldExchange);
Modified:
camel/trunk/camel-core/src/test/java/org/apache/camel/util/URISupportTest.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/util/URISupportTest.java?rev=991189&r1=991188&r2=991189&view=diff
==============================================================================
---
camel/trunk/camel-core/src/test/java/org/apache/camel/util/URISupportTest.java
(original)
+++
camel/trunk/camel-core/src/test/java/org/apache/camel/util/URISupportTest.java
Tue Aug 31 13:44:48 2010
@@ -112,4 +112,17 @@ public class URISupportTest extends Cont
assertEquals("jms://queue:foo?foo=bar&selector=somekey%3D%27somevalue%27", out);
}
+ public void testParseParameters() throws Exception {
+ URI u = new URI("quartz:myGroup/myTimerName?cron=0+0+*+*+*+?");
+ Map<String, Object> params = URISupport.parseParameters(u);
+ assertEquals(1, params.size());
+ assertEquals("0 0 * * * ?", params.get("cron"));
+
+ u = new URI("quartz:myGroup/myTimerName?cron=0+0+*+*+*+?&bar=123");
+ params = URISupport.parseParameters(u);
+ assertEquals(2, params.size());
+ assertEquals("0 0 * * * ?", params.get("cron"));
+ assertEquals("123", params.get("bar"));
+ }
+
}
Modified:
camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzEndpointConfigureTest.java
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzEndpointConfigureTest.java?rev=991189&r1=991188&r2=991189&view=diff
==============================================================================
---
camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzEndpointConfigureTest.java
(original)
+++
camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzEndpointConfigureTest.java
Tue Aug 31 13:44:48 2010
@@ -18,7 +18,6 @@ package org.apache.camel.component.quart
import org.apache.camel.Endpoint;
import org.apache.camel.test.junit4.CamelTestSupport;
-
import org.junit.Test;
import org.quartz.CronTrigger;
import org.quartz.SimpleTrigger;
@@ -88,7 +87,7 @@ public class QuartzEndpointConfigureTest
assertEquals("getGroup()", "myGroup", trigger.getGroup());
}
- // FIXME (CAMEL-3091): @Test
+ @Test
public void testConfigureNoDoubleSlashQuestionCron() throws Exception {
QuartzEndpoint endpoint =
resolveMandatoryEndpoint("quartz:myGroup/myTimerName?cron=0+0+*+*+*+?");
CronTrigger trigger = assertIsInstanceOf(CronTrigger.class,
endpoint.getTrigger());