You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by cm...@apache.org on 2013/08/24 23:24:04 UTC
git commit: CAMEL-6655: SMPP - add support of Vendor Specific
Optional Parameter
Updated Branches:
refs/heads/master b5784ca0a -> 6ff502f63
CAMEL-6655: SMPP - add support of Vendor Specific Optional Parameter
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/6ff502f6
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/6ff502f6
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/6ff502f6
Branch: refs/heads/master
Commit: 6ff502f63c5dc60378de6998aae147d92e39b323
Parents: b5784ca
Author: cmueller <cm...@apache.org>
Authored: Sat Aug 24 23:23:52 2013 +0200
Committer: cmueller <cm...@apache.org>
Committed: Sat Aug 24 23:23:52 2013 +0200
----------------------------------------------------------------------
.../component/smpp/AbstractSmppCommand.java | 52 ++++++++++++++-
.../component/smpp/SmppDataSmCommandTest.java | 66 ++++++++++++++++++++
.../smpp/SmppSubmitMultiCommandTest.java | 64 +++++++++++++++++++
.../component/smpp/SmppSubmitSmCommandTest.java | 63 +++++++++++++++++++
4 files changed, 244 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/6ff502f6/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/AbstractSmppCommand.java
----------------------------------------------------------------------
diff --git a/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/AbstractSmppCommand.java b/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/AbstractSmppCommand.java
index 54d93da..145ce46 100644
--- a/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/AbstractSmppCommand.java
+++ b/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/AbstractSmppCommand.java
@@ -55,8 +55,58 @@ public abstract class AbstractSmppCommand implements SmppCommand {
return message;
}
+ @SuppressWarnings({ "unchecked", "rawtypes" })
+ protected List<OptionalParameter> createOptionalParameters(Map optinalParamaters) {
+ if (optinalParamaters == null || optinalParamaters.isEmpty()) {
+ return new ArrayList<OptionalParameter>();
+ }
+
+ Object firstKey = optinalParamaters.keySet().iterator().next();
+ if (firstKey instanceof String) {
+ return createOptionalParametersByName(optinalParamaters);
+ } else {
+ return createOptionalParametersByCode(optinalParamaters);
+ }
+ }
+
+ protected List<OptionalParameter> createOptionalParametersByCode(Map<Short, Object> optinalParamaters) {
+ List<OptionalParameter> optParams = new ArrayList<OptionalParameter>();
+
+ for (Entry<Short, Object> entry : optinalParamaters.entrySet()) {
+ OptionalParameter optParam = null;
+ Short key = entry.getKey();
+ Object value = entry.getValue();
+
+ try {
+ if (value == null) {
+ optParam = new OptionalParameter.Null(key);
+ } else if (value instanceof byte[]) {
+ optParam = new OptionalParameter.OctetString(key, (byte[]) value);
+ } else if (value instanceof String) {
+ optParam = new OptionalParameter.COctetString(key, (String) value);
+ } else if (value instanceof Byte) {
+ optParam = new OptionalParameter.Byte(key, (Byte) value);
+ } else if (value instanceof Integer) {
+ optParam = new OptionalParameter.Int(key, (Integer) value);
+ } else if (value instanceof Short) {
+ optParam = new OptionalParameter.Short(key, (Short) value);
+ } else {
+ log.info("Couldn't determine optional parameter for value {} (type: {}). Skip this one.", value, value.getClass());
+ continue;
+ }
+
+ optParams.add(optParam);
+ } catch (Exception e) {
+ log.info("Couldn't determine optional parameter for key {} and value {}. Skip this one.", key, value);
+ }
+ }
+
+ return optParams;
+ }
+
@SuppressWarnings("rawtypes")
- protected List<OptionalParameter> createOptionalParameters(Map<String, String> optinalParamaters) {
+ @Deprecated
+ protected List<OptionalParameter> createOptionalParametersByName(Map<String, String> optinalParamaters) {
List<OptionalParameter> optParams = new ArrayList<OptionalParameter>();
for (Entry<String, String> entry : optinalParamaters.entrySet()) {
http://git-wip-us.apache.org/repos/asf/camel/blob/6ff502f6/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppDataSmCommandTest.java
----------------------------------------------------------------------
diff --git a/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppDataSmCommandTest.java b/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppDataSmCommandTest.java
index 28714ec..5374753 100644
--- a/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppDataSmCommandTest.java
+++ b/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppDataSmCommandTest.java
@@ -136,6 +136,13 @@ public class SmppDataSmCommandTest {
optionalParameters.put("DEST_TELEMATICS_ID", "2");
optionalParameters.put("QOS_TIME_TO_LIVE", "3600000");
optionalParameters.put("ALERT_ON_MESSAGE_DELIVERY", null);
+ // fall back test for vendor specific optional parameter
+ optionalParameters.put("0x2150", "0815");
+ optionalParameters.put("0x2151", "0816");
+ optionalParameters.put("0x2152", "6");
+ optionalParameters.put("0x2153", "9");
+ optionalParameters.put("0x2154", "7400000");
+ optionalParameters.put("0x2155", null);
exchange.getIn().setHeader(SmppConstants.OPTIONAL_PARAMETERS, optionalParameters);
expect(session.dataShortMessage(eq("CMT"), eq(TypeOfNumber.UNKNOWN), eq(NumberingPlanIndicator.UNKNOWN), eq("1616"),
eq(TypeOfNumber.UNKNOWN), eq(NumberingPlanIndicator.UNKNOWN), eq("1717"), eq(new ESMClass()),
@@ -168,4 +175,63 @@ public class SmppDataSmCommandTest {
assertEquals("3600000", optParamMap.get("QOS_TIME_TO_LIVE"));
assertNull(optParamMap.get("ALERT_ON_MESSAGE_DELIVERY"));
}
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void executeWithOptionalParameterNewStyle() throws Exception {
+ Exchange exchange = new DefaultExchange(new DefaultCamelContext(), ExchangePattern.InOut);
+ exchange.getIn().setHeader(SmppConstants.COMMAND, "DataSm");
+ Map<Short, Object> optionalParameters = new LinkedHashMap<Short, Object>();
+ // standard optional parameter
+ optionalParameters.put(Short.valueOf((short) 0x0202), "1292".getBytes("UTF-8"));
+ optionalParameters.put(Short.valueOf((short) 0x001D), "urgent");
+ optionalParameters.put(Short.valueOf((short) 0x0005), Byte.valueOf("4"));
+ optionalParameters.put(Short.valueOf((short) 0x0008), Short.valueOf((short) 2));
+ optionalParameters.put(Short.valueOf((short) 0x0017), Integer.valueOf(3600000));
+ optionalParameters.put(Short.valueOf((short) 0x130C), null);
+ // vendor specific optional parameter
+ optionalParameters.put(Short.valueOf((short) 0x2150), "0815".getBytes("UTF-8"));
+ optionalParameters.put(Short.valueOf((short) 0x2151), "0816");
+ optionalParameters.put(Short.valueOf((short) 0x2152), Byte.valueOf("6"));
+ optionalParameters.put(Short.valueOf((short) 0x2153), Short.valueOf((short) 9));
+ optionalParameters.put(Short.valueOf((short) 0x2154), Integer.valueOf(7400000));
+ optionalParameters.put(Short.valueOf((short) 0x2155), null);
+ exchange.getIn().setHeader(SmppConstants.OPTIONAL_PARAMETERS, optionalParameters);
+ expect(session.dataShortMessage(eq("CMT"), eq(TypeOfNumber.UNKNOWN), eq(NumberingPlanIndicator.UNKNOWN), eq("1616"),
+ eq(TypeOfNumber.UNKNOWN), eq(NumberingPlanIndicator.UNKNOWN), eq("1717"), eq(new ESMClass()),
+ eq(new RegisteredDelivery((byte) 1)), eq(DataCoding.newInstance((byte) 0)),
+ eq(new OptionalParameter.OctetString(Tag.SOURCE_SUBADDRESS, "1292")),
+ eq(new OptionalParameter.COctetString(Tag.ADDITIONAL_STATUS_INFO_TEXT.code(), "urgent")),
+ eq(new OptionalParameter.Byte(Tag.DEST_ADDR_SUBUNIT, (byte) 4)),
+ eq(new OptionalParameter.Short(Tag.DEST_TELEMATICS_ID.code(), (short) 2)),
+ eq(new OptionalParameter.Int(Tag.QOS_TIME_TO_LIVE, 3600000)),
+ eq(new OptionalParameter.Null(Tag.ALERT_ON_MESSAGE_DELIVERY)),
+ eq(new OptionalParameter.OctetString((short) 0x2150, "1292", "UTF-8")),
+ eq(new OptionalParameter.COctetString((short) 0x2151, "0816")),
+ eq(new OptionalParameter.Byte((short) 0x2152, (byte) 6)),
+ eq(new OptionalParameter.Short((short) 0x2153, (short) 9)),
+ eq(new OptionalParameter.Int((short) 0x2154, 7400000)),
+ eq(new OptionalParameter.Null((short) 0x2155))))
+ .andReturn(new DataSmResult(new MessageId("1"), new OptionalParameter[]{
+ new OptionalParameter.OctetString(Tag.SOURCE_SUBADDRESS, "1292"), new OptionalParameter.COctetString(Tag.ADDITIONAL_STATUS_INFO_TEXT.code(), "urgent"),
+ new OptionalParameter.Byte(Tag.DEST_ADDR_SUBUNIT, (byte) 4), new OptionalParameter.Short(Tag.DEST_TELEMATICS_ID.code(), (short) 2),
+ new OptionalParameter.Int(Tag.QOS_TIME_TO_LIVE, 3600000), new OptionalParameter.Null(Tag.ALERT_ON_MESSAGE_DELIVERY)}));
+
+ replay(session);
+
+ command.execute(exchange);
+
+ verify(session);
+
+ assertEquals("1", exchange.getOut().getHeader(SmppConstants.ID));
+ Map<String, String> optParamMap = exchange.getOut().getHeader(SmppConstants.OPTIONAL_PARAMETERS, Map.class);
+ assertEquals(6, optParamMap.size());
+ assertEquals("1292", optParamMap.get("SOURCE_SUBADDRESS"));
+ // FIXME: fix required in JSMPP. See http://code.google.com/p/jsmpp/issues/detail?id=140
+ //assertEquals("urgent", optParamMap.get("ADDITIONAL_STATUS_INFO_TEXT"));
+ assertEquals("4", optParamMap.get("DEST_ADDR_SUBUNIT"));
+ assertEquals("2", optParamMap.get("DEST_TELEMATICS_ID"));
+ assertEquals("3600000", optParamMap.get("QOS_TIME_TO_LIVE"));
+ assertNull(optParamMap.get("ALERT_ON_MESSAGE_DELIVERY"));
+ }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/camel/blob/6ff502f6/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppSubmitMultiCommandTest.java
----------------------------------------------------------------------
diff --git a/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppSubmitMultiCommandTest.java b/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppSubmitMultiCommandTest.java
index 01e24de..3434d40 100644
--- a/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppSubmitMultiCommandTest.java
+++ b/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppSubmitMultiCommandTest.java
@@ -473,4 +473,68 @@ public class SmppSubmitMultiCommandTest {
assertEquals(1, exchange.getOut().getHeader(SmppConstants.SENT_MESSAGE_COUNT));
assertNull(exchange.getOut().getHeader(SmppConstants.ERROR));
}
+
+ @Test
+ public void executeWithOptionalParameterNewStyle() throws Exception {
+ Exchange exchange = new DefaultExchange(new DefaultCamelContext(), ExchangePattern.InOut);
+ exchange.getIn().setHeader(SmppConstants.COMMAND, "SubmitMulti");
+ exchange.getIn().setHeader(SmppConstants.ID, "1");
+ exchange.getIn().setHeader(SmppConstants.SOURCE_ADDR_TON, TypeOfNumber.NATIONAL.value());
+ exchange.getIn().setHeader(SmppConstants.SOURCE_ADDR_NPI, NumberingPlanIndicator.NATIONAL.value());
+ exchange.getIn().setHeader(SmppConstants.SOURCE_ADDR, "1818");
+ exchange.getIn().setHeader(SmppConstants.DEST_ADDR_TON, TypeOfNumber.INTERNATIONAL.value());
+ exchange.getIn().setHeader(SmppConstants.DEST_ADDR_NPI, NumberingPlanIndicator.INTERNET.value());
+ exchange.getIn().setHeader(SmppConstants.DEST_ADDR, Arrays.asList("1919"));
+ exchange.getIn().setHeader(SmppConstants.SCHEDULE_DELIVERY_TIME, new Date(1111111));
+ exchange.getIn().setHeader(SmppConstants.VALIDITY_PERIOD, new Date(2222222));
+ exchange.getIn().setHeader(SmppConstants.PROTOCOL_ID, (byte) 1);
+ exchange.getIn().setHeader(SmppConstants.PRIORITY_FLAG, (byte) 2);
+ exchange.getIn().setHeader(SmppConstants.REGISTERED_DELIVERY, new RegisteredDelivery(SMSCDeliveryReceipt.SUCCESS).value());
+ exchange.getIn().setHeader(SmppConstants.REPLACE_IF_PRESENT_FLAG, ReplaceIfPresentFlag.REPLACE.value());
+ Map<Short, Object> optionalParameters = new LinkedHashMap<Short, Object>();
+ // standard optional parameter
+ optionalParameters.put(Short.valueOf((short) 0x0202), "1292".getBytes("UTF-8"));
+ optionalParameters.put(Short.valueOf((short) 0x001D), "urgent");
+ optionalParameters.put(Short.valueOf((short) 0x0005), Byte.valueOf("4"));
+ optionalParameters.put(Short.valueOf((short) 0x0008), Short.valueOf((short) 2));
+ optionalParameters.put(Short.valueOf((short) 0x0017), Integer.valueOf(3600000));
+ optionalParameters.put(Short.valueOf((short) 0x130C), null);
+ // vendor specific optional parameter
+ optionalParameters.put(Short.valueOf((short) 0x2150), "0815".getBytes("UTF-8"));
+ optionalParameters.put(Short.valueOf((short) 0x2151), "0816");
+ optionalParameters.put(Short.valueOf((short) 0x2152), Byte.valueOf("6"));
+ optionalParameters.put(Short.valueOf((short) 0x2153), Short.valueOf((short) 9));
+ optionalParameters.put(Short.valueOf((short) 0x2154), Integer.valueOf(7400000));
+ optionalParameters.put(Short.valueOf((short) 0x2155), null);
+ exchange.getIn().setHeader(SmppConstants.OPTIONAL_PARAMETERS, optionalParameters);
+ exchange.getIn().setBody("short message body");
+ expect(session.submitMultiple(eq("CMT"), eq(TypeOfNumber.NATIONAL), eq(NumberingPlanIndicator.NATIONAL), eq("1818"),
+ aryEq(new Address[]{new Address(TypeOfNumber.INTERNATIONAL, NumberingPlanIndicator.INTERNET, "1919")}),
+ eq(new ESMClass()), eq((byte) 1), eq((byte) 2), eq("-300101001831100-"), eq("-300101003702200-"), eq(new RegisteredDelivery(SMSCDeliveryReceipt.SUCCESS)),
+ eq(ReplaceIfPresentFlag.REPLACE), eq(DataCoding.newInstance((byte) 0)), eq((byte) 0), aryEq("short message body".getBytes()),
+ aryEq(new OptionalParameter[]{
+ new OptionalParameter.OctetString(Tag.SOURCE_SUBADDRESS, "1292"),
+ new OptionalParameter.COctetString(Tag.ADDITIONAL_STATUS_INFO_TEXT.code(), "urgent"),
+ new OptionalParameter.Byte(Tag.DEST_ADDR_SUBUNIT, (byte) 4),
+ new OptionalParameter.Short(Tag.DEST_TELEMATICS_ID.code(), (short) 2),
+ new OptionalParameter.Int(Tag.QOS_TIME_TO_LIVE, 3600000),
+ new OptionalParameter.Null(Tag.ALERT_ON_MESSAGE_DELIVERY),
+ new OptionalParameter.OctetString((short) 0x2150, "1292", "UTF-8"),
+ new OptionalParameter.COctetString((short) 0x2151, "0816"),
+ new OptionalParameter.Byte((short) 0x2152, (byte) 6),
+ new OptionalParameter.Short((short) 0x2153, (short) 9),
+ new OptionalParameter.Int((short) 0x2154, 7400000),
+ new OptionalParameter.Null((short) 0x2155)})))
+ .andReturn(new SubmitMultiResult("1"));
+
+ replay(session);
+
+ command.execute(exchange);
+
+ verify(session);
+
+ assertEquals(Arrays.asList("1"), exchange.getOut().getHeader(SmppConstants.ID));
+ assertEquals(1, exchange.getOut().getHeader(SmppConstants.SENT_MESSAGE_COUNT));
+ assertNull(exchange.getOut().getHeader(SmppConstants.ERROR));
+ }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/camel/blob/6ff502f6/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppSubmitSmCommandTest.java
----------------------------------------------------------------------
diff --git a/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppSubmitSmCommandTest.java b/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppSubmitSmCommandTest.java
index e13d0c04..9f32a95 100644
--- a/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppSubmitSmCommandTest.java
+++ b/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppSubmitSmCommandTest.java
@@ -221,6 +221,69 @@ public class SmppSubmitSmCommandTest {
}
@Test
+ public void executeWithOptionalParameterNewStyle() throws Exception {
+ Exchange exchange = new DefaultExchange(new DefaultCamelContext(), ExchangePattern.InOut);
+ exchange.getIn().setHeader(SmppConstants.COMMAND, "SubmitSm");
+ exchange.getIn().setHeader(SmppConstants.ID, "1");
+ exchange.getIn().setHeader(SmppConstants.SOURCE_ADDR_TON, TypeOfNumber.NATIONAL.value());
+ exchange.getIn().setHeader(SmppConstants.SOURCE_ADDR_NPI, NumberingPlanIndicator.NATIONAL.value());
+ exchange.getIn().setHeader(SmppConstants.SOURCE_ADDR, "1818");
+ exchange.getIn().setHeader(SmppConstants.DEST_ADDR_TON, TypeOfNumber.INTERNATIONAL.value());
+ exchange.getIn().setHeader(SmppConstants.DEST_ADDR_NPI, NumberingPlanIndicator.INTERNET.value());
+ exchange.getIn().setHeader(SmppConstants.DEST_ADDR, "1919");
+ exchange.getIn().setHeader(SmppConstants.SCHEDULE_DELIVERY_TIME, new Date(1111111));
+ exchange.getIn().setHeader(SmppConstants.VALIDITY_PERIOD, new Date(2222222));
+ exchange.getIn().setHeader(SmppConstants.PROTOCOL_ID, (byte) 1);
+ exchange.getIn().setHeader(SmppConstants.PRIORITY_FLAG, (byte) 2);
+ exchange.getIn().setHeader(SmppConstants.REGISTERED_DELIVERY, new RegisteredDelivery(SMSCDeliveryReceipt.SUCCESS).value());
+ exchange.getIn().setHeader(SmppConstants.REPLACE_IF_PRESENT_FLAG, ReplaceIfPresentFlag.REPLACE.value());
+ exchange.getIn().setBody("short message body");
+ Map<Short, Object> optionalParameters = new LinkedHashMap<Short, Object>();
+ // standard optional parameter
+ optionalParameters.put(Short.valueOf((short) 0x0202), "1292".getBytes("UTF-8"));
+ optionalParameters.put(Short.valueOf((short) 0x001D), "urgent");
+ optionalParameters.put(Short.valueOf((short) 0x0005), Byte.valueOf("4"));
+ optionalParameters.put(Short.valueOf((short) 0x0008), Short.valueOf((short) 2));
+ optionalParameters.put(Short.valueOf((short) 0x0017), Integer.valueOf(3600000));
+ optionalParameters.put(Short.valueOf((short) 0x130C), null);
+ // vendor specific optional parameter
+ optionalParameters.put(Short.valueOf((short) 0x2150), "0815".getBytes("UTF-8"));
+ optionalParameters.put(Short.valueOf((short) 0x2151), "0816");
+ optionalParameters.put(Short.valueOf((short) 0x2152), Byte.valueOf("6"));
+ optionalParameters.put(Short.valueOf((short) 0x2153), Short.valueOf((short) 9));
+ optionalParameters.put(Short.valueOf((short) 0x2154), Integer.valueOf(7400000));
+ optionalParameters.put(Short.valueOf((short) 0x2155), null);
+ exchange.getIn().setHeader(SmppConstants.OPTIONAL_PARAMETERS, optionalParameters);
+ expect(session.submitShortMessage(eq("CMT"), eq(TypeOfNumber.NATIONAL), eq(NumberingPlanIndicator.NATIONAL), eq("1818"),
+ eq(TypeOfNumber.INTERNATIONAL), eq(NumberingPlanIndicator.INTERNET), eq("1919"),
+ eq(new ESMClass()), eq((byte) 1), eq((byte) 2), eq("-300101001831100-"), eq("-300101003702200-"), eq(new RegisteredDelivery(SMSCDeliveryReceipt.SUCCESS)),
+ eq(ReplaceIfPresentFlag.REPLACE.value()), eq(DataCoding.newInstance((byte) 0)), eq((byte) 0),
+ aryEq("short message body".getBytes()),
+ eq(new OptionalParameter.OctetString(Tag.SOURCE_SUBADDRESS, "1292")),
+ eq(new OptionalParameter.COctetString(Tag.ADDITIONAL_STATUS_INFO_TEXT.code(), "urgent")),
+ eq(new OptionalParameter.Byte(Tag.DEST_ADDR_SUBUNIT, (byte) 4)),
+ eq(new OptionalParameter.Short(Tag.DEST_TELEMATICS_ID.code(), (short) 2)),
+ eq(new OptionalParameter.Int(Tag.QOS_TIME_TO_LIVE, 3600000)),
+ eq(new OptionalParameter.Null(Tag.ALERT_ON_MESSAGE_DELIVERY)),
+ eq(new OptionalParameter.OctetString((short) 0x2150, "1292", "UTF-8")),
+ eq(new OptionalParameter.COctetString((short) 0x2151, "0816")),
+ eq(new OptionalParameter.Byte((short) 0x2152, (byte) 6)),
+ eq(new OptionalParameter.Short((short) 0x2153, (short) 9)),
+ eq(new OptionalParameter.Int((short) 0x2154, 7400000)),
+ eq(new OptionalParameter.Null((short) 0x2155))))
+ .andReturn("1");
+
+ replay(session);
+
+ command.execute(exchange);
+
+ verify(session);
+
+ assertEquals(Arrays.asList("1"), exchange.getOut().getHeader(SmppConstants.ID));
+ assertEquals(1, exchange.getOut().getHeader(SmppConstants.SENT_MESSAGE_COUNT));
+ }
+
+ @Test
public void executeWithValidityPeriodAsString() throws Exception {
Exchange exchange = new DefaultExchange(new DefaultCamelContext(), ExchangePattern.InOut);
exchange.getIn().setHeader(SmppConstants.COMMAND, "SubmitSm");