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 2014/12/04 09:54:42 UTC

[1/2] camel git commit: Add new header CamelSmppEncoding to set encoding config on a per-message basis

Repository: camel
Updated Branches:
  refs/heads/master bb72c560b -> 3114a7b06


Add new header CamelSmppEncoding to set encoding config on a per-message basis


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

Branch: refs/heads/master
Commit: 86784325a78cd8e71b23cd4b56696f34051ead3d
Parents: bb72c56
Author: Daniel Pocock <da...@pocock.pro>
Authored: Fri Nov 7 12:47:37 2014 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Thu Dec 4 09:51:26 2014 +0100

----------------------------------------------------------------------
 .../camel/component/smpp/SmppConstants.java     |  1 +
 .../camel/component/smpp/SmppSmCommand.java     | 28 ++++++++++++++++++--
 2 files changed, 27 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/86784325/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppConstants.java
----------------------------------------------------------------------
diff --git a/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppConstants.java b/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppConstants.java
index e2551f1..80c47d6 100644
--- a/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppConstants.java
+++ b/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppConstants.java
@@ -32,6 +32,7 @@ public interface SmppConstants {
     String DEST_ADDR_NPI = "CamelSmppDestAddrNpi";
     String DEST_ADDR_TON = "CamelSmppDestAddrTon";
     String DONE_DATE = "CamelSmppDoneDate";
+    String ENCODING = "CamelSmppEncoding";
     String ERROR = "CamelSmppError";
     String ESME_ADDR = "CamelSmppEsmeAddr";
     String ESME_ADDR_NPI = "CamelSmppEsmeAddrNpi";

http://git-wip-us.apache.org/repos/asf/camel/blob/86784325/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppSmCommand.java
----------------------------------------------------------------------
diff --git a/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppSmCommand.java b/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppSmCommand.java
index e5e53ff..2f0c641 100644
--- a/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppSmCommand.java
+++ b/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppSmCommand.java
@@ -22,8 +22,11 @@ import org.apache.camel.Message;
 import org.jsmpp.bean.Alphabet;
 import org.jsmpp.extra.NegativeResponseException;
 import org.jsmpp.session.SMPPSession;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public abstract class SmppSmCommand extends AbstractSmppCommand {
+    private static final Logger LOG = LoggerFactory.getLogger(SmppSmCommand.class);
 
     public static final int SMPP_NEG_RESPONSE_MSG_TOO_LONG = 1;
 
@@ -98,7 +101,7 @@ public abstract class SmppSmCommand extends AbstractSmppCommand {
         } else {
             byte providedAlphabet = getProvidedAlphabet(message);
             Alphabet determinedAlphabet = determineAlphabet(message);
-            Charset charset = determineCharset(providedAlphabet, determinedAlphabet.value());
+            Charset charset = determineCharset(message, providedAlphabet, determinedAlphabet.value());
             String body = message.getBody(String.class);
             return body.getBytes(charset);
         }
@@ -123,7 +126,24 @@ public abstract class SmppSmCommand extends AbstractSmppCommand {
         return alphabet;
     }
 
-    private Charset determineCharset(byte providedAlphabet, byte determinedAlphabet) {
+    private Charset getCharsetForMessage(Message message) {
+        if (message.getHeaders().containsKey(SmppConstants.ENCODING)) {
+            String encoding = message.getHeader(SmppConstants.ENCODING, String.class);
+            if (Charset.isSupported(encoding)) {
+                return Charset.forName(encoding);
+            } else {
+                LOG.warn("Unsupported encoding \"{}\" requested in header.", encoding);
+            }
+        }
+        return null;
+    }
+
+    private Charset determineCharset(Message message, byte providedAlphabet, byte determinedAlphabet) {
+        Charset result = getCharsetForMessage(message);
+        if (result != null) {
+            return result;
+        }
+
         if (providedAlphabet == Alphabet.ALPHA_UCS2.value() 
             || (providedAlphabet == SmppConstants.UNKNOWN_ALPHABET && determinedAlphabet == Alphabet.ALPHA_UCS2.value())) {
             // change charset to use multilang messages
@@ -136,6 +156,10 @@ public abstract class SmppSmCommand extends AbstractSmppCommand {
     private Alphabet determineAlphabet(Message message) {
         String body = message.getBody(String.class);
         byte alphabet = getProvidedAlphabet(message);
+        Charset _charset = getCharsetForMessage(message);
+        if (_charset == null) {
+            _charset = charset;
+        }
 
         Alphabet alphabetObj;
         if (alphabet == SmppConstants.UNKNOWN_ALPHABET) {


[2/2] camel git commit: CAMEL-8117: cleanup checkstyle issues

Posted by da...@apache.org.
CAMEL-8117: cleanup checkstyle issues


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

Branch: refs/heads/master
Commit: 3114a7b065741f61993552c5d79c856cde7f0399
Parents: 8678432
Author: Daniel Pocock <da...@pocock.pro>
Authored: Thu Dec 4 09:41:05 2014 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Thu Dec 4 09:51:27 2014 +0100

----------------------------------------------------------------------
 .../camel/component/smpp/SmppSmCommand.java       | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/3114a7b0/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppSmCommand.java
----------------------------------------------------------------------
diff --git a/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppSmCommand.java b/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppSmCommand.java
index 2f0c641..ae1342d 100644
--- a/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppSmCommand.java
+++ b/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppSmCommand.java
@@ -26,17 +26,19 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 public abstract class SmppSmCommand extends AbstractSmppCommand {
-    private static final Logger LOG = LoggerFactory.getLogger(SmppSmCommand.class);
 
+    // FIXME: these constants should be defined somewhere in jSMPP:
     public static final int SMPP_NEG_RESPONSE_MSG_TOO_LONG = 1;
 
     protected Charset ascii = Charset.forName("US-ASCII");
     protected Charset latin1 = Charset.forName("ISO-8859-1");
-    protected Charset charset;
+    protected Charset defaultCharset;
+
+    private final Logger logger = LoggerFactory.getLogger(SmppSmCommand.class);
 
     public SmppSmCommand(SMPPSession session, SmppConfiguration config) {
         super(session, config);
-        this.charset = Charset.forName(config.getEncoding());
+        defaultCharset = Charset.forName(config.getEncoding());
     }
 
     protected byte[][] splitBody(Message message) throws SmppException {
@@ -132,7 +134,7 @@ public abstract class SmppSmCommand extends AbstractSmppCommand {
             if (Charset.isSupported(encoding)) {
                 return Charset.forName(encoding);
             } else {
-                LOG.warn("Unsupported encoding \"{}\" requested in header.", encoding);
+                logger.warn("Unsupported encoding \"{}\" requested in header.", encoding);
             }
         }
         return null;
@@ -150,15 +152,15 @@ public abstract class SmppSmCommand extends AbstractSmppCommand {
             return Charset.forName(SmppConstants.UCS2_ENCODING); 
         }
         
-        return charset;
+        return defaultCharset;
     }
 
     private Alphabet determineAlphabet(Message message) {
         String body = message.getBody(String.class);
         byte alphabet = getProvidedAlphabet(message);
-        Charset _charset = getCharsetForMessage(message);
-        if (_charset == null) {
-            _charset = charset;
+        Charset charset = getCharsetForMessage(message);
+        if (charset == null) {
+            charset = defaultCharset;
         }
 
         Alphabet alphabetObj;