Repository: camel
Updated Branches:
  refs/heads/master 2b1da7b86 -> 2b0513dfb


CAMEL-7225 camel-smpp - should check Exchange.CHARSET_NAME header with thanks 
to Radsaggi


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/2b0513df
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/2b0513df
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/2b0513df

Branch: refs/heads/master
Commit: 2b0513dfb1cc3e0768f198762f4faae0a2c2d480
Parents: 2b1da7b
Author: Willem Jiang <willem.ji...@gmail.com>
Authored: Mon May 5 11:33:31 2014 +0800
Committer: Willem Jiang <willem.ji...@gmail.com>
Committed: Mon May 5 11:33:31 2014 +0800

----------------------------------------------------------------------
 .../camel/component/smpp/SmppConfiguration.java |  8 +++++++
 .../camel/component/smpp/SmppMessage.java       | 24 ++++++++++++++------
 2 files changed, 25 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/2b0513df/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppConfiguration.java
----------------------------------------------------------------------
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 141283e..ec77a04 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
@@ -17,6 +17,7 @@
 package org.apache.camel.component.smpp;
 
 import java.net.URI;
+import java.nio.charset.Charset;
 
 import org.apache.camel.RuntimeCamelException;
 import org.jsmpp.bean.Alphabet;
@@ -25,6 +26,8 @@ import org.jsmpp.bean.ReplaceIfPresentFlag;
 import org.jsmpp.bean.SMSCDeliveryReceipt;
 import org.jsmpp.bean.TypeOfNumber;
 import org.jsmpp.session.SessionStateListener;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Contains the SMPP component configuration properties</a>
@@ -32,6 +35,7 @@ import org.jsmpp.session.SessionStateListener;
  * @version 
  */
 public class SmppConfiguration implements Cloneable {
+    private static final Logger LOG = 
LoggerFactory.getLogger(SmppConfiguration.class);
 
     private String host = "localhost";
     private Integer port = Integer.valueOf(2775);
@@ -67,6 +71,7 @@ public class SmppConfiguration implements Cloneable {
     private String httpProxyPassword;
     private SessionStateListener sessionStateListener;
 
+    
     /**
      * A POJO which contains all necessary configuration parameters for the 
SMPP connection
      * 
@@ -138,6 +143,9 @@ public class SmppConfiguration implements Cloneable {
     }
 
     public void setEncoding(String encoding) {
+        if (!Charset.isSupported(encoding)) {
+            LOG.warn("Unsupported encoding \"{}\" is being set.", encoding);
+        }
         this.encoding = encoding;
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/2b0513df/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppMessage.java
----------------------------------------------------------------------
diff --git 
a/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppMessage.java
 
b/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppMessage.java
index 92c5c8d..3ffd445 100644
--- 
a/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppMessage.java
+++ 
b/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppMessage.java
@@ -20,21 +20,27 @@ import java.io.UnsupportedEncodingException;
 import java.nio.charset.Charset;
 
 import org.apache.camel.impl.DefaultMessage;
+import org.apache.camel.util.IOHelper;
+import org.apache.camel.util.ObjectHelper;
 import org.jsmpp.bean.AlertNotification;
 import org.jsmpp.bean.Alphabet;
 import org.jsmpp.bean.Command;
 import org.jsmpp.bean.DataSm;
 import org.jsmpp.bean.DeliverSm;
 import org.jsmpp.bean.MessageRequest;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Represents a {@link org.apache.camel.Message} for working with SMPP
  */
 public class SmppMessage extends DefaultMessage {
-
+    private static final Logger LOG = 
LoggerFactory.getLogger(SmppMessage.class);
     private Command command;
     private SmppConfiguration configuration;
     
+    
+    
     public SmppMessage(SmppConfiguration configuration) {
         this.configuration = configuration;
     }
@@ -85,12 +91,16 @@ public class SmppMessage extends DefaultMessage {
             }
             if 
(SmppUtils.parseAlphabetFromDataCoding(msgRequest.getDataCoding()) == 
Alphabet.ALPHA_8_BIT) {
                 return shortMessage;
-            } else if (Charset.isSupported(configuration.getEncoding())) {
-                try {
-                    return new String(shortMessage, 
configuration.getEncoding());
-                } catch (UnsupportedEncodingException e) {
-                    // ignore
-                }
+            }
+            
+            String encoding = IOHelper.getCharsetName(getExchange(), false);
+            if (ObjectHelper.isEmpty(encoding) || 
!Charset.isSupported(encoding)) {
+                encoding = configuration.getEncoding();
+            }
+            try {
+                return new String(shortMessage, encoding);
+            } catch (UnsupportedEncodingException e) {
+                LOG.info("Unsupported encoding \"{}\". Using system default 
encoding.", encoding);
             }
             return new String(shortMessage);
         }

Reply via email to