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/01/12 14:18:49 UTC
svn commit: r1432420 - in /camel/branches/camel-2.10.x/components:
camel-jpa/src/main/java/org/apache/camel/component/jpa/
camel-smpp/src/main/java/org/apache/camel/component/smpp/
camel-smpp/src/test/java/org/apache/camel/component/smpp/
Author: cmueller
Date: Sat Jan 12 13:18:48 2013
New Revision: 1432420
URL: http://svn.apache.org/viewvc?rev=1432420&view=rev
Log:
CAMEL-5708: Make camel-smpp component get username from parameters instead of address
Modified:
camel/branches/camel-2.10.x/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaEndpoint.java
camel/branches/camel-2.10.x/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppConstants.java
camel/branches/camel-2.10.x/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppEndpoint.java
camel/branches/camel-2.10.x/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppProducer.java
camel/branches/camel-2.10.x/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppEndpointTest.java
camel/branches/camel-2.10.x/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppProducerLazySessionCreationTest.java
Modified: camel/branches/camel-2.10.x/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaEndpoint.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.10.x/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaEndpoint.java?rev=1432420&r1=1432419&r2=1432420&view=diff
==============================================================================
--- camel/branches/camel-2.10.x/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaEndpoint.java (original)
+++ camel/branches/camel-2.10.x/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaEndpoint.java Sat Jan 12 13:18:48 2013
@@ -37,10 +37,8 @@ import org.springframework.orm.jpa.JpaTe
import org.springframework.orm.jpa.JpaTransactionManager;
import org.springframework.transaction.PlatformTransactionManager;
-/**
- * @version
- */
public class JpaEndpoint extends ScheduledPollEndpoint {
+
private EntityManagerFactory entityManagerFactory;
private PlatformTransactionManager transactionManager;
private String persistenceUnit = "camel";
Modified: camel/branches/camel-2.10.x/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppConstants.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.10.x/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppConstants.java?rev=1432420&r1=1432419&r2=1432420&view=diff
==============================================================================
--- camel/branches/camel-2.10.x/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppConstants.java (original)
+++ camel/branches/camel-2.10.x/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppConstants.java Sat Jan 12 13:18:48 2013
@@ -54,6 +54,8 @@ public interface SmppConstants {
String SOURCE_ADDR_TON = "CamelSmppSourceAddrTon";
String SUBMITTED = "CamelSmppSubmitted";
String SUBMIT_DATE = "CamelSmppSubmitDate";
+ String SYSTEM_ID = "CamelSmppSystemId";
+ String PASSWORD = "CamelSmppSystemId";
String VALIDITY_PERIOD = "CamelSmppValidityPeriod";
String UCS2_ENCODING = "UTF-16BE";
Modified: camel/branches/camel-2.10.x/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppEndpoint.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.10.x/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppEndpoint.java?rev=1432420&r1=1432419&r2=1432420&view=diff
==============================================================================
--- camel/branches/camel-2.10.x/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppEndpoint.java (original)
+++ camel/branches/camel-2.10.x/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppEndpoint.java Sat Jan 12 13:18:48 2013
@@ -154,7 +154,7 @@ public class SmppEndpoint extends Defaul
*/
public String getConnectionString() {
return (configuration.getUsingSSL() ? "smpps://" : "smpp://")
- + getConfiguration().getSystemId() + "@"
+ + (getConfiguration().getSystemId() != null ? getConfiguration().getSystemId() + "@" : "")
+ getConfiguration().getHost() + ":"
+ getConfiguration().getPort();
}
Modified: camel/branches/camel-2.10.x/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppProducer.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.10.x/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppProducer.java?rev=1432420&r1=1432419&r2=1432420&view=diff
==============================================================================
--- camel/branches/camel-2.10.x/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppProducer.java (original)
+++ camel/branches/camel-2.10.x/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppProducer.java Sat Jan 12 13:18:48 2013
@@ -20,6 +20,7 @@ import java.io.IOException;
import java.util.concurrent.locks.ReentrantLock;
import org.apache.camel.Exchange;
+import org.apache.camel.Message;
import org.apache.camel.impl.DefaultProducer;
import org.jsmpp.DefaultPDUReader;
import org.jsmpp.DefaultPDUSender;
@@ -79,7 +80,7 @@ public class SmppProducer extends Defaul
}
}
}
-
+
private SMPPSession createSession() throws IOException {
LOG.debug("Connecting to: " + getEndpoint().getConnectionString() + "...");
@@ -103,7 +104,7 @@ public class SmppProducer extends Defaul
return session;
}
-
+
/**
* Factory method to easily instantiate a mock SMPPSession
*
@@ -117,10 +118,19 @@ public class SmppProducer extends Defaul
public void process(Exchange exchange) throws Exception {
if (session == null) {
- if (getConfiguration().isLazySessionCreation()) {
+ if (this.configuration.isLazySessionCreation()) {
if (connectLock.tryLock()) {
try {
if (session == null) {
+ // set the system id and password with which we will try to connect to the SMSC
+ Message in = exchange.getIn();
+ String systemId = in.getHeader(SmppConstants.SYSTEM_ID, String.class);
+ String password = in.getHeader(SmppConstants.PASSWORD, String.class);
+ if (systemId != null && password != null) {
+ log.info("using the system id '{}' to connect to the SMSC...", systemId);
+ this.configuration.setSystemId(systemId);
+ this.configuration.setPassword(password);
+ }
session = createSession();
}
} finally {
Modified: camel/branches/camel-2.10.x/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppEndpointTest.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.10.x/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppEndpointTest.java?rev=1432420&r1=1432419&r2=1432420&view=diff
==============================================================================
--- camel/branches/camel-2.10.x/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppEndpointTest.java (original)
+++ camel/branches/camel-2.10.x/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppEndpointTest.java Sat Jan 12 13:18:48 2013
@@ -78,7 +78,7 @@ public class SmppEndpointTest {
@Test
public void createEndpointUriShouldReturnTheEndpointUri() {
expect(configuration.getUsingSSL()).andReturn(false);
- expect(configuration.getSystemId()).andReturn("smppclient");
+ expect(configuration.getSystemId()).andReturn("smppclient").times(2);
expect(configuration.getHost()).andReturn("localhost");
expect(configuration.getPort()).andReturn(new Integer(2775));
@@ -90,6 +90,20 @@ public class SmppEndpointTest {
}
@Test
+ public void createEndpointUriWithoutUserShouldReturnTheEndpointUri() {
+ expect(configuration.getUsingSSL()).andReturn(false);
+ expect(configuration.getSystemId()).andReturn(null);
+ expect(configuration.getHost()).andReturn("localhost");
+ expect(configuration.getPort()).andReturn(new Integer(2775));
+
+ replay(configuration);
+
+ assertEquals("smpp://localhost:2775", endpoint.createEndpointUri());
+
+ verify(configuration);
+ }
+
+ @Test
public void createConsumerShouldReturnASmppConsumer() throws Exception {
Processor processor = createMock(Processor.class);
@@ -220,7 +234,7 @@ public class SmppEndpointTest {
@Test
public void getConnectionStringShouldReturnTheConnectionString() {
expect(configuration.getUsingSSL()).andReturn(false);
- expect(configuration.getSystemId()).andReturn("smppclient");
+ expect(configuration.getSystemId()).andReturn("smppclient").times(2);
expect(configuration.getHost()).andReturn("localhost");
expect(configuration.getPort()).andReturn(new Integer(2775));
@@ -232,6 +246,20 @@ public class SmppEndpointTest {
}
@Test
+ public void getConnectionStringWithoutUserShouldReturnTheConnectionString() {
+ expect(configuration.getUsingSSL()).andReturn(false);
+ expect(configuration.getSystemId()).andReturn(null);
+ expect(configuration.getHost()).andReturn("localhost");
+ expect(configuration.getPort()).andReturn(new Integer(2775));
+
+ replay(configuration);
+
+ assertEquals("smpp://localhost:2775", endpoint.getConnectionString());
+
+ verify(configuration);
+ }
+
+ @Test
public void getConfigurationShouldReturnTheSetValue() {
assertSame(configuration, endpoint.getConfiguration());
}
Modified: camel/branches/camel-2.10.x/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppProducerLazySessionCreationTest.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.10.x/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppProducerLazySessionCreationTest.java?rev=1432420&r1=1432419&r2=1432420&view=diff
==============================================================================
--- camel/branches/camel-2.10.x/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppProducerLazySessionCreationTest.java (original)
+++ camel/branches/camel-2.10.x/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppProducerLazySessionCreationTest.java Sat Jan 12 13:18:48 2013
@@ -17,6 +17,7 @@
package org.apache.camel.component.smpp;
import org.apache.camel.Exchange;
+import org.apache.camel.Message;
import org.jsmpp.bean.BindType;
import org.jsmpp.bean.NumberingPlanIndicator;
import org.jsmpp.bean.TypeOfNumber;
@@ -61,14 +62,14 @@ public class SmppProducerLazySessionCrea
@Test
public void doStartShouldNotCreateTheSmppSession() throws Exception {
expect(endpoint.getConnectionString()).andReturn("smpp://smppclient@localhost:2775");
-
+
replay(endpoint, session);
-
+
producer.doStart();
-
+
verify(endpoint, session);
}
-
+
@Test
public void processShouldCreateTheSmppSession() throws Exception {
expect(endpoint.getConnectionString())
@@ -91,16 +92,59 @@ public class SmppProducerLazySessionCrea
expect(endpoint.getConnectionString()).andReturn("smpp://smppclient@localhost:2775");
SmppBinding binding = createMock(SmppBinding.class);
Exchange exchange = createMock(Exchange.class);
+ Message in = createMock(Message.class);
+ SmppCommand command = createMock(SmppCommand.class);
+ expect(endpoint.getBinding()).andReturn(binding);
+ expect(binding.createSmppCommand(session, exchange)).andReturn(command);
+ expect(exchange.getIn()).andReturn(in);
+ expect(in.getHeader("CamelSmppSystemId", String.class)).andReturn(null);
+ expect(in.getHeader("CamelSmppSystemId", String.class)).andReturn(null);
+ command.execute(exchange);
+
+ replay(session, endpoint, binding, exchange, in, command);
+
+ producer.doStart();
+ producer.process(exchange);
+
+ verify(session, endpoint, binding, exchange, in, command);
+ }
+
+ @Test
+ public void processShouldCreateTheSmppSessionWithTheSystemIdAndPasswordFromTheExchange() throws Exception {
+ expect(endpoint.getConnectionString())
+ .andReturn("smpp://localhost:2775")
+ .times(2);
+ session.setEnquireLinkTimer(5000); //expectation
+ session.setTransactionTimer(10000); //expectation
+ session.addSessionStateListener(isA(SessionStateListener.class));
+ expect(session.connectAndBind(
+ "localhost",
+ new Integer(2775),
+ new BindParameter(
+ BindType.BIND_TX,
+ "smppclient2",
+ "password2",
+ "cp",
+ TypeOfNumber.UNKNOWN,
+ NumberingPlanIndicator.UNKNOWN,
+ ""))).andReturn("1");
+ expect(endpoint.getConnectionString()).andReturn("smpp://localhost:2775");
+ SmppBinding binding = createMock(SmppBinding.class);
+ Exchange exchange = createMock(Exchange.class);
+ Message in = createMock(Message.class);
SmppCommand command = createMock(SmppCommand.class);
expect(endpoint.getBinding()).andReturn(binding);
expect(binding.createSmppCommand(session, exchange)).andReturn(command);
+ expect(exchange.getIn()).andReturn(in);
+ expect(in.getHeader("CamelSmppSystemId", String.class)).andReturn("smppclient2");
+ expect(in.getHeader("CamelSmppSystemId", String.class)).andReturn("password2");
command.execute(exchange);
- replay(session, endpoint, binding, exchange, command);
+ replay(session, endpoint, binding, exchange, in, command);
producer.doStart();
producer.process(exchange);
- verify(session, endpoint, binding, exchange, command);
+ verify(session, endpoint, binding, exchange, in, command);
}
}
\ No newline at end of file