INTEXT-30 - Cleanup

This commit is contained in:
Gunnar Hillert
2013-01-09 16:32:39 -05:00
parent f2a0cb7cba
commit e4f2f83909
26 changed files with 493 additions and 577 deletions

View File

@@ -1,8 +1,7 @@
Spring Integration Smpp Adapter
=================================================
The Spring Integration Smpp allows you to receive/send sms to SMSC using SMPP protocol. This Spring Integration
extension is migrated from Spring's sandbox spring-integration-smpp project.
The Spring Integration Smpp allows you to receive/send [Short Message Service][] (SMS) messages to a [Short message service center][] (SMSC) using the [SMPP][] protocol.
# Components
@@ -11,8 +10,19 @@ extension is migrated from Spring's sandbox spring-integration-smpp project.
* Inbound Channel Adapter
* Inbound Gateway
# Requirements
## More to come...
For running the tests you're going to need a good server to test with:
There are 2 options:
**SMPPSim** - http://www.seleniumsoftware.com/regform.php?itemdesc=SMPPSim.tar.gz
Simply download it, cd into the folder and execute `./startsmppsim.(sh|bat)`. Make sure the script is executable. The configuration for this simulator is in *conf/smppsim.props*
Another option is **smsssim** and smsctest from http://opensmpp.logica.com/CommonPart/Download/download2.html
Alternatively, the JSMPP project itself has an SMPP simulator as well. It is also possible to use a full-blow SMPP servers like *Kanell*.
# Building
@@ -61,3 +71,16 @@ To generate IDEA metadata (.iml and .ipr files), do the following:
For more information, please visit the Spring Integration website at:
[http://www.springsource.org/spring-integration](http://www.springsource.org/spring-integration)
# TODO
* figure out a clean way to furnish our own Executor implementation
# Resources
* http://www.techdive.in/java/send-sms-using-jsmpp
* http://www.linkedin.com/answers/technology/information-technology/telecommunications/TCH_ITS_TCI/461130-44316394
[SMPP]: http://en.wikipedia.org/wiki/Short_Message_Peer-to-Peer
[Short Message Service]: http://en.wikipedia.org/wiki/Short_Message_Service
[Short message service center]: http://en.wikipedia.org/wiki/Short_message_service_center

View File

@@ -18,69 +18,27 @@ group = 'org.springframework.integration'
repositories {
maven { url 'http://repo.springsource.org/libs-milestone' }
maven { url 'http://repo.springsource.org/plugins-release' } // for bundlor
maven { url 'http://repo.maven.apache.org/maven2'}
maven { url 'https://source.sakaiproject.org/maven2'}
maven { url 'http://repo.springsource.org/plugins-release' }
}
// ensure JDK 5 compatibility (GRADLE-18; INT-1578)
sourceCompatibility=1.6
targetCompatibility=1.6
ext {
jsmppVersion = '2.1.0'
slf4jVersion = '1.6.6'
commonsLangVersion = '2.6'
commonsBeanUtilsVersion= '1.8.3'
aspectjVersion = '1.6.8'
cglibVersion = '2.2'
commonsNetVersion = '3.0.1'
jsmppVersion = '2.1.0'
slf4jVersion = '1.6.6'
commonsLangVersion = '2.6'
commonsBeanUtilsVersion= '1.8.3'
easymockVersion = '2.3'
groovyVersion = '1.8.5'
jacksonVersion = '1.9.2'
javaxActivationVersion = '1.1.1'
junitVersion = '4.8.2'
junitVersion = '4.10'
log4jVersion = '1.2.12'
mockitoVersion = '1.9.0'
// When changing Spring Versions - don't forget to update bundlor ranges
springVersion = '3.2.0.RELEASE'
springVersion = '3.1.3.RELEASE'
springIntegrationVersion = '2.2.0.RELEASE'
springAmqpVersion = '1.1.0.RELEASE'
springDataMongoVersion = '1.1.0.M1'
springDataRedisVersion = '1.0.0.RELEASE'
springGemfireVersion = '1.1.1.RELEASE'
springSecurityVersion = '3.1.0.RELEASE'
springSocialTwitterVersion = '1.0.1.RELEASE'
springWsVersion = '2.0.3.RELEASE'
idPrefix = 'smpp'
}
dependencies {
compile "com.google.code:jsmpp:$jsmppVersion"
compile "org.slf4j:slf4j-log4j12:$slf4jVersion"
compile "commons-lang:commons-lang:$commonsLangVersion"
compile "commons-beanutils:commons-beanutils:$commonsBeanUtilsVersion"
compile "org.springframework.integration:spring-integration-core:$springIntegrationVersion"
compile "org.springframework.integration:spring-integration-ws:$springIntegrationVersion"
compile "org.springframework.integration:spring-integration-event:$springIntegrationVersion"
compile "org.springframework:spring-beans:$springVersion"
compile "org.springframework:spring-context:$springVersion"
compile "org.springframework:spring-context-support:$springVersion"
compile "org.springframework:spring-aop:$springVersion"
compile "org.springframework:spring-tx:$springVersion"
compile("org.codehaus.jackson:jackson-mapper-asl:$jacksonVersion", optional)
compile("org.springframework.amqp:spring-rabbit:$springAmqpVersion") {
exclude group: 'org.springframework', module: 'spring-aop'
exclude group: 'org.springframework', module: 'spring-beans'
exclude group: 'org.springframework', module: 'spring-context'
exclude group: 'org.springframework', module: 'spring-core'
exclude group: 'org.springframework', module: 'spring-oxm'
exclude group: 'org.springframework', module: 'spring-tx'
}
testCompile "org.springframework.integration:spring-integration-test:$springIntegrationVersion"
}
eclipse {
project {
natures += 'org.springframework.ide.eclipse.core.springnature'
@@ -101,16 +59,19 @@ configurations {
jacoco //Configuration Group used by Sonar to provide Code Coverage using JaCoCo
}
// dependencies that are common across all java projects
dependencies {
testCompile "cglib:cglib-nodep:$cglibVersion"
compile "com.googlecode.jsmpp:jsmpp:$jsmppVersion"
compile "org.slf4j:slf4j-log4j12:$slf4jVersion"
compile "commons-lang:commons-lang:$commonsLangVersion"
compile "commons-beanutils:commons-beanutils:$commonsBeanUtilsVersion"
compile "org.springframework.integration:spring-integration-core:$springIntegrationVersion"
compile "org.springframework.integration:spring-integration-core:$springIntegrationVersion"
testCompile "org.springframework.integration:spring-integration-test:$springIntegrationVersion"
testCompile "junit:junit-dep:$junitVersion"
testCompile "log4j:log4j:$log4jVersion"
testCompile "org.easymock:easymock:$easymockVersion"
testCompile "org.easymock:easymockclassextension:$easymockVersion"
testCompile "org.hamcrest:hamcrest-all:1.1"
testCompile "org.mockito:mockito-all:$mockitoVersion"
testCompile "org.springframework:spring-test:$springVersion"
testCompile "org.easymock:easymockclassextension:$easymockVersion"
jacoco group: "org.jacoco", name: "org.jacoco.agent", version: "0.5.6.201201232323", classifier: "runtime"
}
@@ -181,19 +142,16 @@ sonar {
task api(type: Javadoc) {
group = 'Documentation'
description = 'Generates aggregated Javadoc API documentation.'
description = 'Generates the Javadoc API documentation.'
title = "${rootProject.description} ${version} API"
options.memberLevel = org.gradle.external.javadoc.JavadocMemberLevel.PROTECTED
options.author = true
options.header = rootProject.description
options.overview = 'src/api/overview.html'
source subprojects.collect { project ->
project.sourceSets.main.allJava
}
source = sourceSets.main.allJava
classpath = project.sourceSets.main.compileClasspath
destinationDir = new File(buildDir, "api")
classpath = files(subprojects.collect { project ->
project.sourceSets.main.compileClasspath
})
}
task schemaZip(type: Zip) {
@@ -202,46 +160,41 @@ task schemaZip(type: Zip) {
description = "Builds -${classifier} archive containing all " +
"XSDs for deployment at static.springframework.org/schema."
subprojects.each { subproject ->
def Properties schemas = new Properties();
def shortName = subproject.name.replaceFirst("${rootProject.name}-", '')
if (subproject.name.endsWith("-core")) {
shortName = ''
def Properties schemas = new Properties();
def shortName = idPrefix.replaceFirst("${idPrefix}-", '')
project.sourceSets.main.resources.find {
it.path.endsWith('META-INF/spring.schemas')
}?.withInputStream { schemas.load(it) }
for (def key : schemas.keySet()) {
File xsdFile = project.sourceSets.main.resources.find {
it.path.endsWith(schemas.get(key))
}
subproject.sourceSets.main.resources.find {
it.path.endsWith('META-INF/spring.schemas')
}?.withInputStream { schemas.load(it) }
for (def key : schemas.keySet()) {
File xsdFile = subproject.sourceSets.main.resources.find {
it.path.endsWith(schemas.get(key))
}
assert xsdFile != null
into ("integration/${shortName}") {
from xsdFile.path
}
assert xsdFile != null
into ("integration/${shortName}") {
from xsdFile.path
}
}
}
task docsZip(type: Zip) {
group = 'Distribution'
classifier = 'docs'
description = "Builds -${classifier} archive containing api and reference " +
group = 'Distribution'
classifier = 'docs'
description = "Builds -${classifier} archive containing api and reference " +
"for deployment at static.springframework.org/spring-integration/docs."
from('src/dist') {
include 'changelog.txt'
}
from('src/dist') {
include 'changelog.txt'
}
from (api) {
into 'api'
}
from (api) {
into 'api'
}
from (reference) {
into 'reference'
}
from (reference) {
into 'reference'
}
}
task distZip(type: Zip, dependsOn: [docsZip, schemaZip]) {
@@ -267,12 +220,10 @@ task distZip(type: Zip, dependsOn: [docsZip, schemaZip]) {
into "${baseDir}/schema"
}
subprojects.each { subproject ->
into ("${baseDir}/libs") {
from subproject.jar
from subproject.sourcesJar
from subproject.javadocJar
}
into ("${baseDir}/libs") {
from project.jar
from project.sourcesJar
from project.javadocJar
}
}
@@ -288,14 +239,13 @@ task depsZip(type: Zip, dependsOn: distZip) { zipTask ->
gradle.taskGraph.whenReady { taskGraph ->
if (taskGraph.hasTask(":${zipTask.name}")) {
def projectNames = rootProject.subprojects*.name
def projectName = rootProject.name
def artifacts = new HashSet()
subprojects.each { subproject ->
subproject.configurations.runtime.resolvedConfiguration.resolvedArtifacts.each { artifact ->
def dependency = artifact.moduleVersion.id
if (!projectNames.contains(dependency.name)) {
artifacts << artifact.file
}
rootProject.configurations.runtime.resolvedConfiguration.resolvedArtifacts.each { artifact ->
def dependency = artifact.moduleVersion.id
if (!projectName.equals(dependency.name)) {
artifacts << artifact.file
}
}
@@ -319,5 +269,5 @@ task dist(dependsOn: assemble) {
task wrapper(type: Wrapper) {
description = 'Generates gradlew[.bat] scripts'
gradleVersion = '1.0-rc-3'
gradleVersion = '1.3'
}

View File

@@ -1,6 +1,6 @@
#Thu Jun 07 23:46:26 EDT 2012
#Tue Jan 08 17:13:07 EST 2013
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=http\://services.gradle.org/distributions/gradle-1.0-rc-3-bin.zip
distributionUrl=http\://services.gradle.org/distributions/gradle-1.3-bin.zip

View File

@@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash
##############################################################################
##
@@ -101,7 +101,7 @@ if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
warn "Could not set maximum file descriptor limit: $MAX_FD"
fi
else
warn "Could not query businessSystem maximum file descriptor limit: $MAX_FD_LIMIT"
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
fi
fi

View File

@@ -1,90 +1,90 @@
@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
@rem
@rem ##########################################################################
@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS=
set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto init
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto init
echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:init
@rem Get command-line arguments, handling Windowz variants
if not "%OS%" == "Windows_NT" goto win9xME_args
if "%@eval[2+2]" == "4" goto 4NT_args
:win9xME_args
@rem Slurp the command line arguments.
set CMD_LINE_ARGS=
set _SKIP=2
:win9xME_args_slurp
if "x%~1" == "x" goto execute
set CMD_LINE_ARGS=%*
goto execute
:4NT_args
@rem Get arguments from the 4NT Shell from JP Software
set CMD_LINE_ARGS=%$
:execute
@rem Setup the command line
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
:end
@rem End local scope for the variables with windows NT shell
if "%ERRORLEVEL%"=="0" goto mainEnd
:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
exit /b 1
:mainEnd
if "%OS%"=="Windows_NT" endlocal
:omega
@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
@rem
@rem ##########################################################################
@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS=
set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto init
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto init
echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:init
@rem Get command-line arguments, handling Windowz variants
if not "%OS%" == "Windows_NT" goto win9xME_args
if "%@eval[2+2]" == "4" goto 4NT_args
:win9xME_args
@rem Slurp the command line arguments.
set CMD_LINE_ARGS=
set _SKIP=2
:win9xME_args_slurp
if "x%~1" == "x" goto execute
set CMD_LINE_ARGS=%*
goto execute
:4NT_args
@rem Get arguments from the 4NT Shell from JP Software
set CMD_LINE_ARGS=%$
:execute
@rem Setup the command line
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
:end
@rem End local scope for the variables with windows NT shell
if "%ERRORLEVEL%"=="0" goto mainEnd
:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
exit /b 1
:mainEnd
if "%OS%"=="Windows_NT" endlocal
:omega

View File

@@ -62,7 +62,7 @@ public class SmesMessageSpecification {
mb.setHeader(SmppConstants.SMS, dsm);
mb.setHeader(SmppConstants.REPLACE_IF_PRESENT, dsm.getReplaceIfPresent());
mb.setHeader(SmppConstants.SHORT_MESSAGE, dsm.getShortMessage());
mb.setHeader(SmppConstants.OPTIONAL_PARAMETES, dsm.getOptionalParametes());
mb.setHeader(SmppConstants.OPTIONAL_PARAMETERS, dsm.getOptionalParameters());
mb.setHeader(SmppConstants.UDHI_AND_REPLY_PATH, dsm.isUdhiAndReplyPath());
mb.setHeader(SmppConstants.VALIDITY_PERIOD, dsm.getValidityPeriod());
mb.setHeader(SmppConstants.COMMAND_LENGTH, dsm.getCommandLength());
@@ -157,8 +157,7 @@ public class SmesMessageSpecification {
return (DataCoding)dc ;
}
if( dc instanceof Byte){
return DataCoding.newInstance((Byte)dc);
return DataCodings.newInstance((Byte)dc);
}
return null ;
@@ -198,8 +197,6 @@ public class SmesMessageSpecification {
* @param smppSession the SMPPSession instance against which we should work.
* @see SmesMessageSpecification#SmesMessageSpecification()
*/
@SuppressWarnings("unused")
SmesMessageSpecification(SMPPSession smppSession) {
this.smppSession = smppSession;
}
@@ -244,7 +241,6 @@ public class SmesMessageSpecification {
/**
* use the builder API, but we need this to cleanly proxy
*/
@SuppressWarnings("unused")
SmesMessageSpecification() {
this(null);
}
@@ -485,7 +481,6 @@ public class SmesMessageSpecification {
* @param maxLengthSmsMessages the length of sms messages
* @see #setShortTextMessage(String)
*/
@SuppressWarnings("unused")
public void setMaxLengthSmsMessages(int maxLengthSmsMessages) {
this.maxLengthSmsMessages = maxLengthSmsMessages;
}
@@ -517,7 +512,7 @@ public class SmesMessageSpecification {
validityPeriod = null;
registeredDelivery = new RegisteredDelivery(SMSCDeliveryReceipt.DEFAULT);
replaceIfPresentFlag = 0;
dataCoding = new GeneralDataCoding(false, true, MessageClass.CLASS1, Alphabet.ALPHA_DEFAULT);
dataCoding = new GeneralDataCoding(Alphabet.ALPHA_DEFAULT, MessageClass.CLASS1, false);
smDefaultMsgId = 0;
shortMessage = null; // the bytes to the 140 character text message
smppSession = null;

View File

@@ -1,7 +1,7 @@
package org.springframework.integration.smpp.core;
/**
*
*
*
* @author Josh Long
*/
@@ -48,5 +48,5 @@ public abstract class SmppConstants {
public static final String SM_DEFAULT_MSG_ID = "SM_DEFAULT_MSG_ID";
public static final String REPLY_PATH = "REPLY_PATH";
public static final String DEST_ADDRESS = DST_ADDR;
public static final String OPTIONAL_PARAMETES = "OPTIONAL_PARAMETES";
public static final String OPTIONAL_PARAMETERS = "OPTIONAL_PARAMETERS";
}

View File

@@ -1,9 +0,0 @@
log4j.rootCategory=DEBUG, S
log4j.logger.org.w3c.tidy=FATAL
log4j.logger.org.springframework.integration.smpp=DEBUG
log4j.logger.org.jsmpp=DEBUG
log4j.appender.S = org.apache.log4j.ConsoleAppender
log4j.appender.S.layout = org.apache.log4j.PatternLayout
log4j.appender.S.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} %c{1} [%p] %m%n

View File

@@ -1,11 +0,0 @@
<configuration scan="true">
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss,SSS} %-5level [%logger] %msg%n</pattern>
</encoder>
</appender>
<root level="DEBUG">
<appender-ref ref="console" />
</root>
</configuration>

View File

@@ -1 +0,0 @@
- figure out a clean way to furnish our own Executor implementation

View File

@@ -69,7 +69,7 @@ public class TestSmppConnection {
outboundChannel.send(messageOut);
Thread.sleep(60000);
Thread.sleep(5000);
}

View File

@@ -77,8 +77,6 @@ public class TestSmppInboundGateway {
// launch the whole thing
Thread.sleep(1000 * 10);
Assert.assertEquals(this.count.intValue(),1);

View File

@@ -1,46 +1,45 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:integration="http://www.springframework.org/schema/integration"
xmlns:smpp="http://www.springframework.org/schema/integration/smpp"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:integration="http://www.springframework.org/schema/integration"
xmlns:smpp="http://www.springframework.org/schema/integration/smpp"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration.xsd
http://www.springframework.org/schema/integration/smpp http://www.springframework.org/schema/integration/smpp/spring-integration-smpp.xsd">
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration-2.0.xsd http://www.springframework.org/schema/integration/smpp http://www.springframework.org/schema/integration/smpp/spring-integration-smpp.xsd">
<context:property-placeholder location="smpp.properties" />
<integration:channel id="inboundChannel" />
<integration:channel id="outboundChannel" />
<integration:channel id="receiptChannel" />
<context:property-placeholder location="smpp.properties"/>
<bean id="session"
class="org.springframework.integration.smpp.session.SmppSessionFactoryBean">
<property name="host" value="${smpp.host}" />
<property name="port" value="${smpp.port}" />
<property name="password" value="${smpp.password}" />
<property name="systemId" value="${smpp.systemId}" />
<property name="bindType" value="BIND_RX" />
<property name="autoStartup" value="true" />
<property name="addressRange" value="${smpp.systemId}" />
</bean>
<bean id="session2"
class="org.springframework.integration.smpp.session.SmppSessionFactoryBean">
<property name="host" value="${smpp.host}" />
<property name="port" value="${smpp.port}" />
<property name="password" value="${smpp.password}" />
<property name="systemId" value="${smpp.systemId}" />
<property name="bindType" value="BIND_TX" />
<property name="autoStartup" value="true" />
</bean>
<smpp:inbound-channel-adapter channel="inboundChannel"
smpp-session-ref="session" />
<integration:channel id="inboundChannel"/>
<integration:channel id="outboundChannel"/>
<integration:channel id="receiptChannel"/>
<bean id="session" class="org.springframework.integration.smpp.session.SmppSessionFactoryBean">
<property name="host" value="${smpp.host}"/>
<property name="port" value="${smpp.port}"/>
<property name="password" value="${smpp.password}"/>
<property name="systemId" value="${smpp.systemId}"/>
<property name="bindType" value="BIND_RX"/>
<property name="autoStartup" value="true"/>
<property name="addressRange" value="${smpp.systemId}"/>
</bean>
<bean id="session2" class="org.springframework.integration.smpp.session.SmppSessionFactoryBean">
<property name="host" value="${smpp.host}"/>
<property name="port" value="${smpp.port}"/>
<property name="password" value="${smpp.password}"/>
<property name="systemId" value="${smpp.systemId}"/>
<property name="bindType" value="BIND_TX"/>
<property name="autoStartup" value="true"/>
</bean>
<smpp:inbound-channel-adapter channel="inboundChannel" smpp-session-ref="session" />
<smpp:outbound-gateway request-channel="outboundChannel" reply-channel="receiptChannel"
smpp-session-ref="session2"/>
<smpp:outbound-gateway request-channel="outboundChannel"
reply-channel="receiptChannel" smpp-session-ref="session2" />
</beans>

View File

@@ -1,60 +1,59 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:int="http://www.springframework.org/schema/integration"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
">
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:int="http://www.springframework.org/schema/integration"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<context:property-placeholder location="smpp.properties" />
<context:annotation-config />
<context:property-placeholder location="smpp.properties"/>
<context:annotation-config/>
<!-- SENDS SMSs to a specific number -->
<bean
class="org.springframework.integration.smpp.session.SmppSessionFactoryBean"
id="outboundSession">
<property name="host" value="${smpp.host}" />
<property name="port" value="${smpp.port}" />
<property name="bindType" value="BIND_TX" />
<property name="password" value="${smpp.password}" />
<property name="addressRange" value="${test.dst.number}" />
<property name="systemId" value="${smpp.systemId}" />
</bean>
<!-- SENDS SMSs to a specific number -->
<bean class="org.springframework.integration.smpp.session.SmppSessionFactoryBean" id="outboundSession">
<property name="host" value="${smpp.host}"/>
<property name="port" value="${smpp.port}"/>
<property name="bindType" value="BIND_TX"/>
<property name="password" value="${smpp.password}"/>
<property name="addressRange" value="${test.dst.number}"/>
<property name="systemId" value="${smpp.systemId}" />
</bean>
<!-- RECEIVES SMSs from a specific number -->
<bean
class="org.springframework.integration.smpp.session.SmppSessionFactoryBean"
id="inboundSession">
<property name="host" value="${smpp.host}" />
<property name="port" value="${smpp.port}" />
<property name="bindType" value="BIND_RX" />
<property name="password" value="${smpp.password}" />
<property name="addressRange" value="${test.dst.number}" />
<!-- this says: 'i only want to receive SMS at this addy, though i can
also specify a range. It is, however, optional. This is particularly useful
as a consumer, however. -->
<property name="systemId" value="${smpp.systemId}" />
</bean>
<!-- RECEIVES SMSs from a specific number-->
<bean class="org.springframework.integration.smpp.session.SmppSessionFactoryBean" id="inboundSession">
<property name="host" value="${smpp.host}"/>
<property name="port" value="${smpp.port}"/>
<property name="bindType" value="BIND_RX"/>
<property name="password" value="${smpp.password}"/>
<property name="addressRange" value="${test.dst.number}"/>
<!--
this says: 'i only want to receive SMS at this addy, though i can also specify a range. It is, however, optional.
This is particularly useful as a consumer, however.
<bean class="org.springframework.integration.smpp.inbound.SmppInboundChannelAdapter"
id="smppInboundChannelAdapter">
<property name="smppSession" ref="inboundSession" />
<property name="channel" ref="inbound" />
</bean>
-->
<property name="systemId" value="${smpp.systemId}" />
</bean>
<bean class="org.springframework.integration.smpp.inbound.SmppInboundChannelAdapter" id="smppInboundChannelAdapter">
<property name="smppSession" ref="inboundSession"/>
<property name="channel" ref="inbound"/>
</bean>
<bean class="org.springframework.integration.smpp.outbound.SmppOutboundChannelAdapter" id="smppOutboundChannelAdapter">
<property name="smppSession" ref="outboundSession"/>
</bean>
<int:outbound-channel-adapter ref="smppOutboundChannelAdapter" channel="outbound"/>
<int:channel id="outbound"/>
<int:channel id="inbound"/>
<bean
class="org.springframework.integration.smpp.outbound.SmppOutboundChannelAdapter"
id="smppOutboundChannelAdapter">
<property name="smppSession" ref="outboundSession" />
</bean>
<int:outbound-channel-adapter ref="smppOutboundChannelAdapter"
channel="outbound" />
<int:channel id="outbound" />
<int:channel id="inbound" />
</beans>

View File

@@ -1,64 +1,56 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:int="http://www.springframework.org/schema/integration"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
">
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:int="http://www.springframework.org/schema/integration"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<context:property-placeholder location="smpp.properties" />
<context:annotation-config />
<context:property-placeholder location="smpp.properties"/>
<context:annotation-config/>
<!-- SENDS SMSs to a specific number -->
<bean
class="org.springframework.integration.smpp.session.SmppSessionFactoryBean"
id="outboundSession">
<property name="host" value="${smpp.host}" />
<property name="port" value="${smpp.port}" />
<property name="password" value="${smpp.password}" />
<property name="addressRange" value="${test.dst.number}" />
<property name="systemId" value="${smpp.systemId}" />
</bean>
<!-- SENDS SMSs to a specific number -->
<bean class="org.springframework.integration.smpp.session.SmppSessionFactoryBean" id="outboundSession">
<property name="host" value="${smpp.host}"/>
<property name="port" value="${smpp.port}"/>
<property name="password" value="${smpp.password}"/>
<property name="addressRange" value="${test.dst.number}"/>
<property name="systemId" value="${smpp.systemId}" />
</bean>
<!-- RECEIVES SMSs from a specific number -->
<bean
class="org.springframework.integration.smpp.session.SmppSessionFactoryBean"
id="inboundSession">
<property name="host" value="${smpp.host}" />
<property name="port" value="${smpp.port}" />
<property name="password" value="${smpp.password}" />
<property name="addressRange" value="33333" />
<property name="systemId" value="${smpp.systemId}" />
</bean>
<!-- RECEIVES SMSs from a specific number-->
<bean class="org.springframework.integration.smpp.session.SmppSessionFactoryBean" id="inboundSession">
<property name="host" value="${smpp.host}"/>
<property name="port" value="${smpp.port}"/>
<property name="password" value="${smpp.password}"/>
<property name="addressRange" value="33333"/>
<property name="systemId" value="${smpp.systemId}" />
</bean>
<bean class="org.springframework.integration.smpp.inbound.SmppInboundGateway" id="inboundGateway">
<property name="smppSession" ref="inboundSession"/>
<property name="requestChannel" ref="in1"/>
<property name="replyChannel" ref="out1"/>
</bean>
<!--
<bean class="org.springframework.integration.smpp.inbound.SmppInboundChannelAdapter" id="smppInboundChannelAdapter">
<property name="smppSession" ref="inboundSession"/>
<property name="channel" ref="inbound"/>
</bean>
<bean class="org.springframework.integration.smpp.outbound.SmppOutboundChannelAdapter" id="smppOutboundChannelAdapter">
<property name="smppSession" ref="outboundSession"/>
</bean>-->
<!--<int:outbound-channel-adapter ref="smppOutboundChannelAdapter" channel="outbound"/>-->
<int:channel id="out1"/>
<int:channel id="in1"/>
<int:channel id="out2"/>
<int:channel id="in2"/>
<bean class="org.springframework.integration.smpp.inbound.SmppInboundGateway"
id="inboundGateway">
<property name="smppSession" ref="inboundSession" />
<property name="requestChannel" ref="in1" />
<property name="replyChannel" ref="out1" />
</bean>
<!-- <bean class="org.springframework.integration.smpp.inbound.SmppInboundChannelAdapter"
id="smppInboundChannelAdapter"> <property name="smppSession" ref="inboundSession"/>
<property name="channel" ref="inbound"/> </bean> <bean class="org.springframework.integration.smpp.outbound.SmppOutboundChannelAdapter"
id="smppOutboundChannelAdapter"> <property name="smppSession" ref="outboundSession"/>
</bean> -->
<!--<int:outbound-channel-adapter ref="smppOutboundChannelAdapter" channel="outbound"/> -->
<int:channel id="out1" />
<int:channel id="in1" />
<int:channel id="out2" />
<int:channel id="in2" />
</beans>

View File

@@ -1,31 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:int="http://www.springframework.org/schema/integration"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
">
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:int="http://www.springframework.org/schema/integration"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<context:property-placeholder location="smpp.properties" />
<context:annotation-config />
<context:property-placeholder location="smpp.properties"/>
<context:annotation-config/>
<bean
class="org.springframework.integration.smpp.session.SmppSessionFactoryBean"
id="session">
<property name="host" value="${smpp.host}" />
<property name="port" value="${smpp.port}" />
<property name="bindType" value="BIND_TX" />
<property name="password" value="${smpp.password}" />
<property name="systemId" value="${smpp.systemId}" />
</bean>
<bean class="org.springframework.integration.smpp.session.SmppSessionFactoryBean" id="session">
<property name="host" value="${smpp.host}"/>
<property name="port" value="${smpp.port}"/>
<property name="bindType" value="BIND_TX"/>
<property name="password" value="${smpp.password}"/>
<property name="systemId" value="${smpp.systemId}" />
</bean>
<bean
class="org.springframework.integration.smpp.outbound.SmppOutboundChannelAdapter"
id="adapter">
<property name="smppSession" ref="session" />
</bean>
<bean class="org.springframework.integration.smpp.outbound.SmppOutboundChannelAdapter" id="adapter">
<property name="smppSession" ref="session"/>
</bean>
<int:channel id="outboundSms" />
<int:channel id="outboundSms"/>
<int:outbound-channel-adapter channel="outboundSms" ref="adapter"/>
<int:outbound-channel-adapter channel="outboundSms"
ref="adapter" />
</beans>

View File

@@ -1,31 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:int="http://www.springframework.org/schema/integration"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
">
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:int="http://www.springframework.org/schema/integration"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<context:property-placeholder location="smpp.properties" />
<context:annotation-config />
<context:property-placeholder location="smpp.properties"/>
<context:annotation-config/>
<bean
class="org.springframework.integration.smpp.session.SmppSessionFactoryBean"
id="session">
<property name="host" value="${smpp.host}" />
<property name="port" value="${smpp.port}" />
<property name="password" value="${smpp.password}" />
<property name="systemId" value="${smpp.systemId}" />
<property name="bindType" value="BIND_TX" />
</bean>
<bean class="org.springframework.integration.smpp.session.SmppSessionFactoryBean" id="session">
<property name="host" value="${smpp.host}"/>
<property name="port" value="${smpp.port}"/>
<property name="password" value="${smpp.password}"/>
<property name="systemId" value="${smpp.systemId}"/>
<property name="bindType" value="BIND_TX"/>
</bean>
<bean
class="org.springframework.integration.smpp.outbound.SmppOutboundGateway"
id="adapter">
<property name="smppSession" ref="session" />
</bean>
<bean class="org.springframework.integration.smpp.outbound.SmppOutboundGateway" id="adapter">
<property name="smppSession" ref="session"/>
</bean>
<int:channel id="outboundSms" />
<int:channel id="outboundSms"/>
<int:outbound-channel-adapter channel="outboundSms" ref="adapter"/>
<int:outbound-channel-adapter channel="outboundSms"
ref="adapter" />
</beans>

View File

@@ -1,25 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:int="http://www.springframework.org/schema/integration"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
">
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:int="http://www.springframework.org/schema/integration"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<context:property-placeholder location="smpp.properties" />
<context:property-placeholder location="smpp.properties"/>
<bean class="org.springframework.integration.smpp.session.SmppSessionFactoryBean" id="session">
<property name="host" value="${smpp.host}"/>
<property name="port" value="${smpp.port}"/>
<property name="password" value="${smpp.password}"/>
<property name="systemId" value="${smpp.systemId}"/>
<property name="bindType" value="BIND_TX"/>
<property name="autoStartup" value="true"/>
</bean>
<bean
class="org.springframework.integration.smpp.session.SmppSessionFactoryBean"
id="session">
<property name="host" value="${smpp.host}" />
<property name="port" value="${smpp.port}" />
<property name="password" value="${smpp.password}" />
<property name="systemId" value="${smpp.systemId}" />
<property name="bindType" value="BIND_TX" />
<property name="autoStartup" value="true" />
</bean>
</beans>

View File

@@ -5,4 +5,4 @@ log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{HH:mm:ss.SSS} %-5p [%t][%c] %m%n
log4j.category.org.springframework.integration=WARN
log4j.category.org.springframework.integration.jpa=INFO
log4j.category.org.springframework.integration.smpp=INFO

View File

@@ -1,27 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:int="http://www.springframework.org/schema/integration"
xmlns:int-smpp="http://www.springframework.org/schema/integration/smpp"
xsi:schemaLocation="http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration.xsd
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:int="http://www.springframework.org/schema/integration"
xmlns:int-smpp="http://www.springframework.org/schema/integration/smpp"
xsi:schemaLocation="
http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/integration/smpp http://www.springframework.org/schema/integration/smpp/spring-integration-smpp.xsd
">
http://www.springframework.org/schema/integration/smpp http://www.springframework.org/schema/integration/smpp/spring-integration-smpp.xsd">
<int:channel id="out">
<int:queue capacity="1000"/>
</int:channel>
<bean id="session"
class="org.springframework.integration.smpp.config.xml.MockSmppSessionFactory"
factory-method="getInSmppSession">
</bean>
<int:queue capacity="1000" />
</int:channel>
<bean id="session"
class="org.springframework.integration.smpp.config.xml.MockSmppSessionFactory"
factory-method="getInSmppSession">
</bean>
<int-smpp:inbound-channel-adapter id="smppInboundChannelAdapter"
auto-startup="true"
channel="out">
<int-smpp:session ref="session"/>
auto-startup="true" channel="out">
<int-smpp:session ref="session" />
</int-smpp:inbound-channel-adapter>
</beans>

View File

@@ -1,55 +1,52 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:int="http://www.springframework.org/schema/integration"
xmlns:int-smpp="http://www.springframework.org/schema/integration/smpp"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration.xsd
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:int="http://www.springframework.org/schema/integration"
xmlns:int-smpp="http://www.springframework.org/schema/integration/smpp"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/integration/smpp http://www.springframework.org/schema/integration/smpp/spring-integration-smpp.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd">
http://www.springframework.org/schema/integration/smpp http://www.springframework.org/schema/integration/smpp/spring-integration-smpp.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<!-- smpp configuration properties to test the gateway against real smpp connection -->
<context:property-placeholder location="smpp.properties"/>
<!-- smpp configuration properties to test the gateway against real smpp
connection -->
<context:property-placeholder location="smpp.properties" />
<int:channel id="requestChannel"/>
<int:channel id="replyChannel"/>
<int:channel id="errorChannel"/>
<int:channel id="requestChannel" />
<int:channel id="replyChannel" />
<int:channel id="errorChannel" />
<bean id="inboundMapper" class="org.easymock.EasyMock"
factory-method="createNiceMock">
<constructor-arg
value="org.springframework.integration.mapping.InboundMessageMapper" />
</bean>
<bean id="outboundMapper" class="org.easymock.EasyMock"
factory-method="createNiceMock">
<constructor-arg
value="org.springframework.integration.mapping.OutboundMessageMapper" />
</bean>
<bean id="inboundMapper" class="org.easymock.EasyMock" factory-method="createNiceMock">
<constructor-arg value="org.springframework.integration.mapping.InboundMessageMapper"/>
</bean>
<bean id="outboundMapper" class="org.easymock.EasyMock" factory-method="createNiceMock">
<constructor-arg value="org.springframework.integration.mapping.OutboundMessageMapper"/>
</bean>
<int-smpp:inbound-gateway request-channel="requestChannel"
reply-channel="replyChannel"
error-channel="errorChannel"
source-address="123456789"
source-ton="INTERNATIONAL"
reply-mapper="outboundMapper"
request-mapper="inboundMapper"
reply-timeout="5000"
request-timeout="10000"
id="smppInboundGateway">
<int-smpp:session>
<!-- uncomment below to test with real connection -->
<!--<bean class="org.springframework.integration.smpp.session.SmppSessionFactoryBean" id="session">
<property name="host" value="${smpp.host}"/>
<property name="port" value="${smpp.port}"/>
<property name="bindType" value="BIND_RX"/>
<property name="password" value="${smpp.password}"/>
<property name="systemId" value="${smpp.systemId}" />
</bean>-->
<!-- comment below to test with real connection -->
<bean class="org.springframework.integration.smpp.config.xml.MockSmppSessionFactory"
factory-method="getInSmppSession">
</bean>
</int-smpp:session>
</int-smpp:inbound-gateway>
<int-smpp:inbound-gateway request-channel="requestChannel"
reply-channel="replyChannel" error-channel="errorChannel"
source-address="123456789" source-ton="INTERNATIONAL" reply-mapper="outboundMapper"
request-mapper="inboundMapper" reply-timeout="5000" request-timeout="10000"
id="smppInboundGateway">
<int-smpp:session>
<!-- uncomment below to test with real connection -->
<!--<bean class="org.springframework.integration.smpp.session.SmppSessionFactoryBean"
id="session"> <property name="host" value="${smpp.host}"/> <property name="port"
value="${smpp.port}"/> <property name="bindType" value="BIND_RX"/> <property
name="password" value="${smpp.password}"/> <property name="systemId" value="${smpp.systemId}"
/> </bean> -->
<!-- comment below to test with real connection -->
<bean
class="org.springframework.integration.smpp.config.xml.MockSmppSessionFactory"
factory-method="getInSmppSession">
</bean>
</int-smpp:session>
</int-smpp:inbound-gateway>
</beans>

View File

@@ -1,40 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:int="http://www.springframework.org/schema/integration"
xmlns:int-smpp="http://www.springframework.org/schema/integration/smpp"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration.xsd
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:int="http://www.springframework.org/schema/integration"
xmlns:int-smpp="http://www.springframework.org/schema/integration/smpp"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/integration/smpp http://www.springframework.org/schema/integration/smpp/spring-integration-smpp.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd">
http://www.springframework.org/schema/integration/smpp http://www.springframework.org/schema/integration/smpp/spring-integration-smpp.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<!-- smpp configuration properties to test the gateway against real smpp connection -->
<context:property-placeholder location="smpp.properties"/>
<!-- uncomment below to test with real connection -->
<!--<bean class="org.springframework.integration.smpp.session.SmppSessionFactoryBean" id="session">
<property name="host" value="${smpp.host}"/>
<property name="port" value="${smpp.port}"/>
<property name="bindType" value="BIND_TRX"/>
<property name="password" value="${smpp.password}"/>
<property name="systemId" value="${smpp.systemId}" />
</bean>-->
<!-- smpp configuration properties to test the gateway against real smpp
connection -->
<context:property-placeholder location="smpp.properties" />
<!-- uncomment below to test with real connection -->
<!--<bean class="org.springframework.integration.smpp.session.SmppSessionFactoryBean"
id="session"> <property name="host" value="${smpp.host}"/> <property name="port"
value="${smpp.port}"/> <property name="bindType" value="BIND_TRX"/> <property
name="password" value="${smpp.password}"/> <property name="systemId" value="${smpp.systemId}"
/> </bean> -->
<bean id="messagingTemplate" class="org.springframework.integration.core.MessagingTemplate">
<property name="receiveTimeout" value="5000"/>
</bean>
<bean id="messagingTemplate" class="org.springframework.integration.core.MessagingTemplate">
<property name="receiveTimeout" value="5000" />
</bean>
<int:channel id="target"/>
<int:channel id="target" />
<bean id="session"
class="org.springframework.integration.smpp.config.xml.MockSmppSessionFactory"
factory-method="getOutSmppSession">
</bean>
<bean id="session"
class="org.springframework.integration.smpp.config.xml.MockSmppSessionFactory"
factory-method="getOutSmppSession">
</bean>
<int-smpp:outbound-channel-adapter id="smppOutboundChannelAdapter"
smpp-session-ref="session"
source-address="12345"
source-ton="SUBSCRIBER_NUMBER"
channel="target">
<int-smpp:outbound-channel-adapter
id="smppOutboundChannelAdapter" smpp-session-ref="session"
source-address="12345" source-ton="SUBSCRIBER_NUMBER" channel="target">
</int-smpp:outbound-channel-adapter>
</beans>

View File

@@ -1,45 +1,42 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:int="http://www.springframework.org/schema/integration"
xmlns:int-smpp="http://www.springframework.org/schema/integration/smpp"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration.xsd
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:int="http://www.springframework.org/schema/integration"
xmlns:int-smpp="http://www.springframework.org/schema/integration/smpp"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/integration/smpp http://www.springframework.org/schema/integration/smpp/spring-integration-smpp.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd">
http://www.springframework.org/schema/integration/smpp http://www.springframework.org/schema/integration/smpp/spring-integration-smpp.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<!-- smpp configuration properties to test the gateway against real smpp connection -->
<context:property-placeholder location="smpp.properties"/>
<!-- smpp configuration properties to test the gateway against real smpp
connection -->
<context:property-placeholder location="smpp.properties" />
<int:channel id="in"/>
<int:channel id="out"/>
<int:channel id="in" />
<int:channel id="out" />
<bean id="timeFormatter" class="org.easymock.EasyMock" factory-method="createNiceMock">
<constructor-arg value="org.jsmpp.util.TimeFormatter"/>
</bean>
<bean id="timeFormatter" class="org.easymock.EasyMock"
factory-method="createNiceMock">
<constructor-arg value="org.jsmpp.util.TimeFormatter" />
</bean>
<int-smpp:outbound-gateway id="smppOutboundGateway"
source-address="123456789"
source-ton="NETWORK_SPECIFIC"
order="17"
request-channel="in"
reply-channel="out"
reply-timeout="100"
time-formatter="timeFormatter">
<int-smpp:session>
<!-- uncomment below to test with real connection -->
<!--<bean class="org.springframework.integration.smpp.session.SmppSessionFactoryBean" id="session">
<property name="host" value="${smpp.host}"/>
<property name="port" value="${smpp.port}"/>
<property name="bindType" value="BIND_TX"/>
<property name="password" value="${smpp.password}"/>
<property name="systemId" value="${smpp.systemId}" />
</bean>-->
<!-- comment below to test with real connection -->
<bean class="org.springframework.integration.smpp.config.xml.MockSmppSessionFactory"
factory-method="getOutSmppSession"/>
</int-smpp:session>
</int-smpp:outbound-gateway>
source-address="123456789" source-ton="NETWORK_SPECIFIC" order="17"
request-channel="in" reply-channel="out" reply-timeout="100"
time-formatter="timeFormatter">
<int-smpp:session>
<!-- uncomment below to test with real connection -->
<!--<bean class="org.springframework.integration.smpp.session.SmppSessionFactoryBean"
id="session"> <property name="host" value="${smpp.host}"/> <property name="port"
value="${smpp.port}"/> <property name="bindType" value="BIND_TX"/> <property
name="password" value="${smpp.password}"/> <property name="systemId" value="${smpp.systemId}"
/> </bean> -->
<!-- comment below to test with real connection -->
<bean
class="org.springframework.integration.smpp.config.xml.MockSmppSessionFactory"
factory-method="getOutSmppSession" />
</int-smpp:session>
</int-smpp:outbound-gateway>
</beans>

View File

@@ -1,10 +0,0 @@
README
you're going to need a good server to test with. I've found http://www.seleniumsoftware.com/regform.php?itemdesc=SMPPSim.tar.gz to work well. Simply download it,
cd into the folder and execute ./startsmppsim.(sh|bat). Make sure the script is executable. The coniguration for this simulator is in conf/smppsim.props
Alternatively, the JSMPP project itself has an SMPP simulator as well.
If you want to go the full nine yards, it's pretty easy to find full-blow SMPP servers like Kanell out there.
http://www.techdive.in/java/send-sms-using-jsmpp

View File

@@ -4,4 +4,4 @@ smpp.password=wpsd
smpp.port=2775
test.dst.number=123456
test.dst.number=123456