Author: dkulp
Date: Fri Jul  8 20:28:02 2011
New Revision: 1144493

URL: http://svn.apache.org/viewvc?rev=1144493&view=rev
Log:
Merged revisions 1142500,1142721,1143332 via svnmerge from 
https://svn.apache.org/repos/asf/camel/trunk

........
  r1142500 | cmueller | 2011-07-03 17:06:25 -0400 (Sun, 03 Jul 2011) | 1 line
  
  CAMEL-4170: camel-smpp component doesn't support sms messages longer than 254 
symbols.
........
  r1142721 | cmueller | 2011-07-04 12:07:46 -0400 (Mon, 04 Jul 2011) | 1 line
  
  CAMEL-4170: camel-smpp component doesn't support sms messages longer than 254 
symbols.
........
  r1143332 | davsclaus | 2011-07-06 06:40:33 -0400 (Wed, 06 Jul 2011) | 1 line
  
  CAMEL-4170: Fixed broken unit tests.
........

Modified:
    camel/branches/camel-2.7.x/   (props changed)
    
camel/branches/camel-2.7.x/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppBinding.java
    
camel/branches/camel-2.7.x/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppProducer.java
    
camel/branches/camel-2.7.x/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppBindingTest.java
    
camel/branches/camel-2.7.x/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppProducerTest.java
    
camel/branches/camel-2.7.x/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/integration/SmppComponentIntegrationTest.java
    
camel/branches/camel-2.7.x/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/integration/SmppComponentSpringIntegrationTest.java

Propchange: camel/branches/camel-2.7.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Jul  8 20:28:02 2011
@@ -1 +1 @@
-/camel/trunk:1083696,1083723-1083724,1084150,1085277,1085543,1085549,1085905,1085909,1086165,1086231,1087005,1087276,1087612,1087620,1087856,1088583,1088916-1088917,1089275,1089348,1090166,1090204,1090564,1090960-1090969,1091082,1091518,1091771,1091799,1092034,1092068,1092577,1092667,1093978,1093980,1093999,1094123,1094147,1094156,1095405,1095469,1095471,1095475-1095476,1096346,1096736,1097761,1097909,1097912,1097978,1098032,1098628,1098630,1099228,1099417,1100711,1100975,1102162,1102177,1102181,1104076,1124497,1127744,1127988,1128315,1128970,1131411,1132961,1134252,1134260,1134404,1134501,1134626,1134681,1134714-1134911,1135223,1135364,1136065,1136290,1138285,1139163,1139749,1140096-1140102,1141783,1142654,1143925,1144248,1144324
+/camel/trunk:1083696,1083723-1083724,1084150,1085277,1085543,1085549,1085905,1085909,1086165,1086231,1087005,1087276,1087612,1087620,1087856,1088583,1088916-1088917,1089275,1089348,1090166,1090204,1090564,1090960-1090969,1091082,1091518,1091771,1091799,1092034,1092068,1092577,1092667,1093978,1093980,1093999,1094123,1094147,1094156,1095405,1095469,1095471,1095475-1095476,1096346,1096736,1097761,1097909,1097912,1097978,1098032,1098628,1098630,1099228,1099417,1100711,1100975,1102162,1102177,1102181,1104076,1124497,1127744,1127988,1128315,1128970,1131411,1132961,1134252,1134260,1134404,1134501,1134626,1134681,1134714-1134911,1135223,1135364,1136065,1136290,1138285,1139163,1139749,1140096-1140102,1141783,1142500,1142654,1142721,1143332,1143925,1144248,1144324

Propchange: camel/branches/camel-2.7.x/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: 
camel/branches/camel-2.7.x/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppBinding.java
URL: 
http://svn.apache.org/viewvc/camel/branches/camel-2.7.x/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppBinding.java?rev=1144493&r1=1144492&r2=1144493&view=diff
==============================================================================
--- 
camel/branches/camel-2.7.x/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppBinding.java
 (original)
+++ 
camel/branches/camel-2.7.x/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppBinding.java
 Fri Jul  8 20:28:02 2011
@@ -30,6 +30,7 @@ import org.jsmpp.bean.DeliverSm;
 import org.jsmpp.bean.DeliveryReceipt;
 import org.jsmpp.bean.OptionalParameter;
 import org.jsmpp.bean.OptionalParameter.OctetString;
+import org.jsmpp.bean.OptionalParameters;
 import org.jsmpp.bean.SubmitSm;
 import org.jsmpp.util.AbsoluteTimeFormatter;
 import org.jsmpp.util.TimeFormatter;
@@ -90,9 +91,22 @@ public class SmppBinding {
      */
     public SubmitSm createSubmitSm(Exchange exchange) throws 
UnsupportedEncodingException {
         Message in = exchange.getIn();
-
+        String body = exchange.getIn().getBody(String.class);
+        
         SubmitSm submitSm = new SubmitSm();
-        
submitSm.setShortMessage(exchange.getIn().getBody(String.class).getBytes(configuration.getEncoding()));
+        
+        if (body != null) {
+            byte[] shortMessage = body.getBytes(configuration.getEncoding());
+            
+            if (shortMessage.length < 255) {
+                submitSm.setShortMessage(shortMessage);
+            } else {
+                submitSm.setShortMessage(new byte[0]);
+                OptionalParameter messagePayloadTLV = 
OptionalParameters.deserialize(OptionalParameter.Tag.MESSAGE_PAYLOAD.code(), 
shortMessage);
+
+                submitSm.setOptionalParametes(messagePayloadTLV);
+            }
+        }
 
         if (in.getHeaders().containsKey(DEST_ADDR)) {
             submitSm.setDestAddress(in.getHeader(DEST_ADDR, String.class));

Modified: 
camel/branches/camel-2.7.x/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppProducer.java
URL: 
http://svn.apache.org/viewvc/camel/branches/camel-2.7.x/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppProducer.java?rev=1144493&r1=1144492&r2=1144493&view=diff
==============================================================================
--- 
camel/branches/camel-2.7.x/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppProducer.java
 (original)
+++ 
camel/branches/camel-2.7.x/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppProducer.java
 Fri Jul  8 20:28:02 2011
@@ -146,7 +146,8 @@ public class SmppProducer extends Defaul
                         MessageClass.CLASS1,
                         Alphabet.valueOf(submitSm.getDataCoding())),
                 (byte) 0,
-                submitSm.getShortMessage());
+                submitSm.getShortMessage(),
+                submitSm.getOptionalParametes());
 
         if (LOG.isDebugEnabled()) {
             LOG.debug("Sent a short message for exchange id '"

Modified: 
camel/branches/camel-2.7.x/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppBindingTest.java
URL: 
http://svn.apache.org/viewvc/camel/branches/camel-2.7.x/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppBindingTest.java?rev=1144493&r1=1144492&r2=1144493&view=diff
==============================================================================
--- 
camel/branches/camel-2.7.x/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppBindingTest.java
 (original)
+++ 
camel/branches/camel-2.7.x/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppBindingTest.java
 Fri Jul  8 20:28:02 2011
@@ -148,6 +148,31 @@ public class SmppBindingTest {
         //assertEquals(0, submitSm.getCommandStatus());
         //assertEquals(0, submitSm.getSequenceNumber());
     }
+    
+    @Test
+    public void createSubmitSmWithLongMessageBody() throws 
UnsupportedEncodingException {
+        String payload = "Hello SMPP World! Hello SMPP World! Hello SMPP 
World! Hello SMPP World! Hello SMPP World! "
+            + "Hello SMPP World! Hello SMPP World! Hello SMPP World! Hello 
SMPP World! Hello SMPP World! "
+            + "Hello SMPP World! Hello SMPP World! Hello SMPP World! Hello 
SMPP World! Hello SMPP World! "; // 270 chars
+        Exchange exchange = new DefaultExchange(new DefaultCamelContext());
+        exchange.getIn().setBody(payload);
+        SubmitSm submitSm = binding.createSubmitSm(exchange);
+
+        assertArrayEquals(new byte[0], submitSm.getShortMessage());
+        
+        OptionalParameter[] optionalParametes = 
submitSm.getOptionalParametes();
+        assertEquals(1, optionalParametes.length);
+        
+        OptionalParameter messagePayloadTLV = optionalParametes[0];
+        assertEquals(OptionalParameter.Tag.MESSAGE_PAYLOAD.code(), 
messagePayloadTLV.tag);
+        byte[] expectedTLV = new byte[274];
+        expectedTLV[0] = 4;
+        expectedTLV[1] = 36;
+        expectedTLV[2] = 1;
+        expectedTLV[3] = 14;
+        System.arraycopy(payload.getBytes(), 0, expectedTLV, 4, 270);
+        assertArrayEquals(expectedTLV, messagePayloadTLV.serialize());
+    }
 
     @Test
     public void 
createSmppMessageFromAlertNotificationShouldReturnASmppMessage() {

Modified: 
camel/branches/camel-2.7.x/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppProducerTest.java
URL: 
http://svn.apache.org/viewvc/camel/branches/camel-2.7.x/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppProducerTest.java?rev=1144493&r1=1144492&r2=1144493&view=diff
==============================================================================
--- 
camel/branches/camel-2.7.x/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppProducerTest.java
 (original)
+++ 
camel/branches/camel-2.7.x/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppProducerTest.java
 Fri Jul  8 20:28:02 2011
@@ -27,6 +27,7 @@ import org.jsmpp.bean.ESMClass;
 import org.jsmpp.bean.GeneralDataCoding;
 import org.jsmpp.bean.MessageClass;
 import org.jsmpp.bean.NumberingPlanIndicator;
+import org.jsmpp.bean.OptionalParameter;
 import org.jsmpp.bean.RegisteredDelivery;
 import org.jsmpp.bean.SMSCDeliveryReceipt;
 import org.jsmpp.bean.SubmitSm;
@@ -110,6 +111,7 @@ public class SmppProducerTest {
         expect(submitSm.getReplaceIfPresent()).andReturn((byte) 0);
         expect(submitSm.getDataCoding()).andReturn((byte) 0);
         expect(submitSm.getShortMessage()).andReturn("Hello SMPP 
world!".getBytes("ISO-8859-1"));
+        expect(submitSm.getOptionalParametes()).andReturn(new 
OptionalParameter[]{});
     }
     
     @Test
@@ -277,6 +279,7 @@ public class SmppProducerTest {
         expect(submitSm.getReplaceIfPresent()).andReturn((byte) 0);
         expect(submitSm.getDataCoding()).andReturn((byte) 4);
         expect(submitSm.getShortMessage()).andReturn("Hello SMPP 
world!".getBytes("ISO-8859-1"));
+        expect(submitSm.getOptionalParametes()).andReturn(new 
OptionalParameter[]{});
         expect(session.submitShortMessage(
                 eq("CMT"),
                 eq(TypeOfNumber.UNKNOWN),

Modified: 
camel/branches/camel-2.7.x/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/integration/SmppComponentIntegrationTest.java
URL: 
http://svn.apache.org/viewvc/camel/branches/camel-2.7.x/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/integration/SmppComponentIntegrationTest.java?rev=1144493&r1=1144492&r2=1144493&view=diff
==============================================================================
--- 
camel/branches/camel-2.7.x/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/integration/SmppComponentIntegrationTest.java
 (original)
+++ 
camel/branches/camel-2.7.x/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/integration/SmppComponentIntegrationTest.java
 Fri Jul  8 20:28:02 2011
@@ -91,6 +91,27 @@ public class SmppComponentIntegrationTes
         
         assertNotNull(exchange.getIn().getHeader(SmppBinding.ID));
     }
+    
+    @Test
+    public void sendLongMessage() throws Exception {
+        MockEndpoint result = getMockEndpoint("mock:result");
+        result.expectedMessageCount(1);
+        
+        Endpoint start = getMandatoryEndpoint("direct:start");
+        Exchange exchange = start.createExchange();
+        exchange.setPattern(ExchangePattern.InOnly);
+        exchange.getIn().setBody("Hello SMPP World! Hello SMPP World! Hello 
SMPP World! Hello SMPP World! Hello SMPP World! "
+                + "Hello SMPP World! Hello SMPP World! Hello SMPP World! Hello 
SMPP World! Hello SMPP World! "
+                + "Hello SMPP World! Hello SMPP World! Hello SMPP World! Hello 
SMPP World! Hello SMPP World! "); // 270 chars
+
+        template.send(start, exchange);
+        
+        assertMockEndpointsSatisfied();
+        Exchange resultExchange = result.getExchanges().get(0);
+        assertEquals(SmppMessageType.DeliveryReceipt.toString(), 
resultExchange.getIn().getHeader(SmppBinding.MESSAGE_TYPE));
+        
+        assertNotNull(exchange.getIn().getHeader(SmppBinding.ID));
+    }
 
     protected RouteBuilder createRouteBuilder() throws Exception {
         return new RouteBuilder() {

Modified: 
camel/branches/camel-2.7.x/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/integration/SmppComponentSpringIntegrationTest.java
URL: 
http://svn.apache.org/viewvc/camel/branches/camel-2.7.x/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/integration/SmppComponentSpringIntegrationTest.java?rev=1144493&r1=1144492&r2=1144493&view=diff
==============================================================================
--- 
camel/branches/camel-2.7.x/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/integration/SmppComponentSpringIntegrationTest.java
 (original)
+++ 
camel/branches/camel-2.7.x/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/integration/SmppComponentSpringIntegrationTest.java
 Fri Jul  8 20:28:02 2011
@@ -91,6 +91,27 @@ public class SmppComponentSpringIntegrat
         
         assertNotNull(exchange.getIn().getHeader(SmppBinding.ID));
     }
+    
+    @Test
+    public void sendLongMessage() throws Exception {
+        MockEndpoint result = getMockEndpoint("mock:result");
+        result.expectedMessageCount(1);
+        
+        Endpoint start = getMandatoryEndpoint("direct:start");
+        Exchange exchange = start.createExchange();
+        exchange.setPattern(ExchangePattern.InOnly);
+        exchange.getIn().setBody("Hello SMPP World! Hello SMPP World! Hello 
SMPP World! Hello SMPP World! Hello SMPP World! "
+                + "Hello SMPP World! Hello SMPP World! Hello SMPP World! Hello 
SMPP World! Hello SMPP World! "
+                + "Hello SMPP World! Hello SMPP World! Hello SMPP World! Hello 
SMPP World! Hello SMPP World! "); // 270 chars
+
+        template.send(start, exchange);
+        
+        assertMockEndpointsSatisfied();
+        Exchange resultExchange = result.getExchanges().get(0);
+        assertEquals(SmppMessageType.DeliveryReceipt.toString(), 
resultExchange.getIn().getHeader(SmppBinding.MESSAGE_TYPE));
+        
+        assertNotNull(exchange.getIn().getHeader(SmppBinding.ID));
+    }
 
     @Override
     protected ClassPathXmlApplicationContext createApplicationContext() {


Reply via email to