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;