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 21:07:57 UTC

[camel] branch camel-2.23.x 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 camel-2.23.x
in repository https://gitbox.apache.org/repos/asf/camel.git


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

commit aad3d17c95aefab1a78771fc8a96ada52c19c42d
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 4cd2ff2..a596011 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
@@ -121,9 +121,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 777b4d9..b2fbf5f 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
@@ -125,7 +125,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);