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 2015/07/29 11:07:01 UTC
[2/3] camel git commit: CAMEL-9027: camel-sjms - Should allow
destination name with colon in the name, such as when using jndi.
CAMEL-9027: camel-sjms - Should allow destination name with colon in the name, such as when using jndi.
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/54617495
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/54617495
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/54617495
Branch: refs/heads/master
Commit: 54617495eea11af40dcbb244003d2c59efc360ce
Parents: f187999
Author: Claus Ibsen <da...@apache.org>
Authored: Wed Jul 29 10:34:11 2015 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Wed Jul 29 10:34:11 2015 +0200
----------------------------------------------------------------------
.../camel/component/sjms/SjmsComponent.java | 35 --------------------
.../camel/component/sjms/SjmsEndpoint.java | 2 +-
.../sjms/jms/DestinationNameParser.java | 8 ++++-
.../sjms/SjmsEndpointNameOverrideTest.java | 7 +---
.../camel/component/sjms/SjmsEndpointTest.java | 16 +++++----
5 files changed, 18 insertions(+), 50 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/54617495/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsComponent.java b/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsComponent.java
index 2503162..3433ec9 100644
--- a/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsComponent.java
+++ b/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsComponent.java
@@ -18,7 +18,6 @@ package org.apache.camel.component.sjms;
import java.util.Map;
import java.util.concurrent.ExecutorService;
-
import javax.jms.ConnectionFactory;
import org.apache.camel.CamelException;
@@ -33,7 +32,6 @@ import org.apache.camel.component.sjms.taskmanager.TimedTaskManager;
import org.apache.camel.impl.UriEndpointComponent;
import org.apache.camel.spi.HeaderFilterStrategy;
import org.apache.camel.spi.HeaderFilterStrategyAware;
-import org.apache.camel.util.ObjectHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -60,7 +58,6 @@ public class SjmsComponent extends UriEndpointComponent implements HeaderFilterS
@Override
protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception {
validateMepAndReplyTo(parameters);
- uri = normalizeUri(uri);
SjmsEndpoint endpoint = new SjmsEndpoint(uri, this, remaining);
setProperties(endpoint, parameters);
if (endpoint.isTransacted()) {
@@ -76,38 +73,6 @@ public class SjmsComponent extends UriEndpointComponent implements HeaderFilterS
}
/**
- * Helper method used to detect the type of endpoint and add the "queue"
- * protocol if it is a default endpoint URI.
- *
- * @param uri The value passed into our call to create an endpoint
- * @return String
- * @throws Exception
- */
- private static String normalizeUri(String uri) throws Exception {
- String tempUri = uri;
- String endpointName = tempUri.substring(0, tempUri.indexOf(":"));
- tempUri = tempUri.substring(endpointName.length());
- if (tempUri.startsWith("://")) {
- tempUri = tempUri.substring(3);
- }
- String protocol = null;
- if (tempUri.indexOf(":") > 0) {
- protocol = tempUri.substring(0, tempUri.indexOf(":"));
- }
- if (ObjectHelper.isEmpty(protocol)) {
- protocol = "queue";
- } else if (protocol != null && (protocol.equals("queue") || protocol.equals("topic"))) {
- tempUri = tempUri.substring(protocol.length() + 1);
- } else {
- throw new Exception("Unsupported Protocol: " + protocol);
- }
-
- String path = tempUri;
- uri = endpointName + "://" + protocol + ":" + path;
- return uri;
- }
-
- /**
* Helper method used to verify that when there is a namedReplyTo value we
* are using the InOut MEP. If namedReplyTo is defined and the MEP is InOnly
* the endpoint won't be expecting a reply so throw an error to alert the
http://git-wip-us.apache.org/repos/asf/camel/blob/54617495/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsEndpoint.java b/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsEndpoint.java
index 6ffa513..c7ed9ac 100644
--- a/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsEndpoint.java
+++ b/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsEndpoint.java
@@ -99,7 +99,7 @@ public class SjmsEndpoint extends DefaultEndpoint implements MultipleConsumersSu
public SjmsEndpoint(String uri, Component component, String remaining) {
super(uri, component);
DestinationNameParser parser = new DestinationNameParser();
- topic = parser.isTopic(remaining);
+ this.topic = parser.isTopic(remaining);
this.destinationName = parser.getShortName(remaining);
}
http://git-wip-us.apache.org/repos/asf/camel/blob/54617495/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/jms/DestinationNameParser.java
----------------------------------------------------------------------
diff --git a/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/jms/DestinationNameParser.java b/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/jms/DestinationNameParser.java
index ddc213d..41eab2d 100644
--- a/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/jms/DestinationNameParser.java
+++ b/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/jms/DestinationNameParser.java
@@ -32,6 +32,12 @@ public class DestinationNameParser {
if (destinationName == null) {
throw new IllegalArgumentException("destinationName is null");
}
- return destinationName.substring(destinationName.lastIndexOf(":") + 1);
+ if (destinationName.startsWith("queue:")) {
+ return destinationName.substring(6);
+ } else if (destinationName.startsWith("topic:")) {
+ return destinationName.substring(6);
+ } else {
+ return destinationName;
+ }
}
}
http://git-wip-us.apache.org/repos/asf/camel/blob/54617495/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/SjmsEndpointNameOverrideTest.java
----------------------------------------------------------------------
diff --git a/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/SjmsEndpointNameOverrideTest.java b/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/SjmsEndpointNameOverrideTest.java
index d0c777c..17d67cb 100644
--- a/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/SjmsEndpointNameOverrideTest.java
+++ b/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/SjmsEndpointNameOverrideTest.java
@@ -40,15 +40,10 @@ public class SjmsEndpointNameOverrideTest extends CamelTestSupport {
assertNotNull(endpoint);
assertTrue(endpoint instanceof SjmsEndpoint);
SjmsEndpoint sjms = (SjmsEndpoint)endpoint;
- assertEquals(sjms.getEndpointUri(), BEAN_NAME + "://queue:test");
+ assertEquals(sjms.getEndpointUri(), BEAN_NAME + "://test");
assertEquals(sjms.createExchange().getPattern(), ExchangePattern.InOnly);
}
- @Test(expected = ResolveEndpointFailedException.class)
- public void testUnsupportedProtocol() throws Exception {
- context.getEndpoint("sjms:bad-queue:test");
- }
-
@Test
public void testQueueEndpoint() throws Exception {
Endpoint sjms = context.getEndpoint(BEAN_NAME + ":queue:test");
http://git-wip-us.apache.org/repos/asf/camel/blob/54617495/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/SjmsEndpointTest.java
----------------------------------------------------------------------
diff --git a/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/SjmsEndpointTest.java b/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/SjmsEndpointTest.java
index a406da3..3281c83 100644
--- a/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/SjmsEndpointTest.java
+++ b/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/SjmsEndpointTest.java
@@ -22,7 +22,6 @@ import org.apache.camel.Endpoint;
import org.apache.camel.ExchangePattern;
import org.apache.camel.ResolveEndpointFailedException;
import org.apache.camel.test.junit4.CamelTestSupport;
-
import org.junit.Test;
public class SjmsEndpointTest extends CamelTestSupport {
@@ -38,15 +37,10 @@ public class SjmsEndpointTest extends CamelTestSupport {
assertNotNull(endpoint);
assertTrue(endpoint instanceof SjmsEndpoint);
SjmsEndpoint sjms = (SjmsEndpoint)endpoint;
- assertEquals(sjms.getEndpointUri(), "sjms://queue:test");
+ assertEquals(sjms.getEndpointUri(), "sjms://test");
assertEquals(sjms.createExchange().getPattern(), ExchangePattern.InOnly);
}
- @Test(expected = ResolveEndpointFailedException.class)
- public void testUnsupportedProtocol() throws Exception {
- context.getEndpoint("sjms:bad-queue:test");
- }
-
@Test
public void testQueueEndpoint() throws Exception {
Endpoint sjms = context.getEndpoint("sjms:queue:test");
@@ -56,6 +50,14 @@ public class SjmsEndpointTest extends CamelTestSupport {
}
@Test
+ public void testJndiStyleEndpointName() throws Exception {
+ SjmsEndpoint sjms = context.getEndpoint("sjms:/jms/test/hov.t1.dev:topic", SjmsEndpoint.class);
+ assertNotNull(sjms);
+ assertFalse(sjms.isTopic());
+ assertEquals("/jms/test/hov.t1.dev:topic", sjms.getDestinationName());
+ }
+
+ @Test
public void testSetTransacted() throws Exception {
Endpoint endpoint = context.getEndpoint("sjms:queue:test?transacted=true");
assertNotNull(endpoint);