You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by pa...@apache.org on 2019/02/17 20:57:43 UTC

[camel] branch master updated: CAMEL-13211 - SMPP: Host, port and systemid component configuration is always overridden by URI configuration

This is an automated email from the ASF dual-hosted git repository.

pascalschumacher pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/master by this push:
     new 329f3ee  CAMEL-13211 - SMPP: Host, port and systemid component configuration is always overridden by URI configuration
329f3ee is described below

commit 329f3eefdd00bae37c023492ed87ab67e63a930e
Author: Pascal Schumacher <pa...@gmx.net>
AuthorDate: Sun Feb 17 10:46:14 2019 +0100

    CAMEL-13211 - SMPP: Host, port and systemid component configuration is always overridden by URI configuration
---
 .../apache/camel/component/smpp/SmppConfiguration.java | 18 +++++++++++++++---
 .../camel/component/smpp/SmppConfigurationTest.java    | 15 ++++++++++++++-
 2 files changed, 29 insertions(+), 4 deletions(-)

diff --git a/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppConfiguration.java b/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppConfiguration.java
index f35097f..4c0dfe0 100644
--- a/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppConfiguration.java
+++ b/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppConfiguration.java
@@ -119,9 +119,21 @@ public class SmppConfiguration implements Cloneable {
      * @param uri the full URI of the endpoint
      */
     public void configureFromURI(URI uri) {
-        setSystemId(uri.getUserInfo());
-        setHost(uri.getHost());
-        setPort(uri.getPort());
+        String userInfo = uri.getUserInfo();
+        if (userInfo != null) {
+            setSystemId(uri.getUserInfo());
+        }
+
+        String host = uri.getHost();
+        if (host != null) {
+            setHost(host);
+        }
+
+        int port = uri.getPort();
+        if (port > 0) {
+            setPort(port);
+        }
+
         if (uri.getScheme().startsWith("smpps")) {
             setUsingSSL(true);
         }
diff --git a/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppConfigurationTest.java b/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppConfigurationTest.java
index 8e011b3..43496ab 100644
--- a/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppConfigurationTest.java
+++ b/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppConfigurationTest.java
@@ -124,7 +124,20 @@ public class SmppConfigurationTest {
         assertEquals(new Integer(2776), configuration.getPort());
         assertEquals("client", configuration.getSystemId());
     }
-    
+
+    @Test
+    public void hostPortAndSystemIdFromComponentConfigurationShouldBeUsedIfAbsentFromUri() throws URISyntaxException {
+        configuration.setHost("host");
+        configuration.setPort(123);
+        configuration.setSystemId("systemId");
+
+        configuration.configureFromURI(new URI("smpp://?password=pw"));
+
+        assertEquals("host", configuration.getHost());
+        assertEquals(new Integer(123), configuration.getPort());
+        assertEquals("systemId", configuration.getSystemId());
+    }
+
     @Test
     public void cloneShouldReturnAnEqualInstance() {
         setNoneDefaultValues(configuration);