You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commons-dev@ws.apache.org by am...@apache.org on 2009/06/25 11:53:09 UTC
svn commit: r788308 - in
/webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms:
./ smpp/
Author: amilas
Date: Thu Jun 25 09:53:08 2009
New Revision: 788308
URL: http://svn.apache.org/viewvc?rev=788308&view=rev
Log:
applied the patch 25-06-2009-sms-transport.patch
Added:
webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/DefaultSMSMessageFormatterImpl.java
webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSMessage.java
webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSMessageFormatter.java
webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSSender.java
Modified:
webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/DefaultSMSMessageBuilderImpl.java
webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/InvalidMessageFormatException.java
webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSImplManager.java
webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSManager.java
webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSMessageBuilder.java
webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSMessageReciever.java
webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSTransportConstents.java
webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSTransportUtils.java
webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/smpp/SMPPDispatcher.java
webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/smpp/SMPPImplManager.java
webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/smpp/SMPPListener.java
webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/smpp/SMPPTransportInDetails.java
webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/smpp/SMPPTransportOutDetails.java
Modified: webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/DefaultSMSMessageBuilderImpl.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/DefaultSMSMessageBuilderImpl.java?rev=788308&r1=788307&r2=788308&view=diff
==============================================================================
--- webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/DefaultSMSMessageBuilderImpl.java (original)
+++ webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/DefaultSMSMessageBuilderImpl.java Thu Jun 25 09:53:08 2009
@@ -21,11 +21,10 @@
import org.apache.axis2.context.MessageContext;
import org.apache.axis2.context.ConfigurationContext;
import org.apache.axis2.engine.AxisConfiguration;
-import org.apache.axis2.description.AxisService;
-import org.apache.axis2.description.AxisOperation;
-import org.apache.axis2.description.AxisMessage;
+import org.apache.axis2.description.*;
import org.apache.axis2.AxisFault;
import org.apache.axis2.Constants;
+import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.util.MultipleEntryHashMap;
import org.apache.axis2.wsdl.WSDLConstants;
import org.apache.axiom.soap.SOAPEnvelope;
@@ -56,12 +55,12 @@
/**
*
* @param message the content of the SMS
- * @param sener senders phone number
+ * @param sender senders phone number
* @param configurationContext axis2 configuration Context
* @return Returns the MessageContext built from the SMS
* @throws InvalidMessageFormatException
*/
- public MessageContext buildMessaage(String message, String sener, ConfigurationContext configurationContext)
+ public MessageContext buildMessaage(String message, String sender,String receiver ,ConfigurationContext configurationContext)
throws InvalidMessageFormatException {
String[] parts = message.split(":");
@@ -101,7 +100,17 @@
SOAPEnvelope soapEnvelope = createSoapEnvelope(messageContext , params);
messageContext.setServerSide(true);
messageContext.setEnvelope(soapEnvelope);
-
+ Parameter sendBack = new Parameter();
+ sendBack.setName(SMSTransportConstents.SEND_TO);
+ sendBack.setValue(sender);
+ Parameter axis2Phone = new Parameter();
+ axis2Phone.setName(SMSTransportConstents.DESTINATION);
+ axis2Phone.setValue(receiver);
+ TransportInDescription in = configurationContext.getAxisConfiguration().getTransportIn("sms");
+ TransportOutDescription out = configurationContext.getAxisConfiguration().getTransportOut("sms");
+ out.addParameter(sendBack);
+ messageContext.setTransportIn(in);
+ messageContext.setTransportOut(out);
return messageContext;
}
Added: webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/DefaultSMSMessageFormatterImpl.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/DefaultSMSMessageFormatterImpl.java?rev=788308&view=auto
==============================================================================
--- webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/DefaultSMSMessageFormatterImpl.java (added)
+++ webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/DefaultSMSMessageFormatterImpl.java Thu Jun 25 09:53:08 2009
@@ -0,0 +1,71 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axis2.transport.sms;
+
+import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.transport.sms.smpp.SMPPTransportOutDetails;
+import org.apache.axis2.description.Parameter;
+import org.apache.axiom.om.OMElement;
+
+public class DefaultSMSMessageFormatterImpl implements SMSMessageFormatter{
+
+
+ public SMSMessage formatSMS(MessageContext messageContext) throws Exception {
+ String sendTo;
+ //phone number set at the Transport configuration get the precidence
+ String axis2PhoneNumber = SMPPTransportOutDetails.getInstence().getPhoneNumber() ;
+ Parameter param = messageContext.getTransportOut().getParameter(SMSTransportConstents.SEND_TO);
+ if (param != null) {
+ sendTo = (String)param.getValue();
+
+ } else {
+ sendTo = SMSTransportUtils.getPhoneNumber(messageContext.getTo());
+ }
+ OMElement elem = messageContext.getEnvelope().getBody();
+ String content = "Empty responce";
+ boolean cont = true;
+ while(cont) {
+
+ content = elem.getFirstElement().getText();
+ if("".equals(content) || content == null) {
+ elem = elem.getFirstElement();
+ if(elem == null) {
+ cont = false;
+ content = "Empty responce";
+ }
+ } else {
+ cont = false;
+ }
+ }
+
+ //if not configured in the Transport configuration
+ if("0000".equals(axis2PhoneNumber)) {
+ Parameter axisPhone = messageContext.getTransportOut().getParameter(SMSTransportConstents.DESTINATION);
+ if(axisPhone != null) {
+ axis2PhoneNumber = (String)axisPhone.getValue();
+ }
+ }
+
+ return new SMSMessage( axis2PhoneNumber, sendTo , content ,SMSMessage.OUT_MESSAGE);
+
+ }
+
+
+}
Modified: webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/InvalidMessageFormatException.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/InvalidMessageFormatException.java?rev=788308&r1=788307&r2=788308&view=diff
==============================================================================
--- webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/InvalidMessageFormatException.java (original)
+++ webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/InvalidMessageFormatException.java Thu Jun 25 09:53:08 2009
@@ -19,7 +19,10 @@
package org.apache.axis2.transport.sms;
public class InvalidMessageFormatException extends Exception{
-
+ /**
+ *
+ * @param message that need to be send back to the sender reporing his error
+ */
public InvalidMessageFormatException(String message) {
this.messageToSendBack = message;
}
Modified: webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSImplManager.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSImplManager.java?rev=788308&r1=788307&r2=788308&view=diff
==============================================================================
--- webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSImplManager.java (original)
+++ webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSImplManager.java Thu Jun 25 09:53:08 2009
@@ -19,6 +19,8 @@
package org.apache.axis2.transport.sms;
import org.apache.axis2.description.Parameter;
+import org.apache.axis2.description.TransportInDescription;
+import org.apache.axis2.description.TransportOutDescription;
import org.apache.axis2.AxisFault;
import java.util.ArrayList;
@@ -39,11 +41,23 @@
public void stop();
/**
- * set the Paramaters needed
- * for the implementation
- * @param params ArrayList of Paramters
+ * set the Transport out details that is needed for the implementation manager
+ * @param transportOutDetails
+ * @throws AxisFault
*/
- public void setTransportParamters(ArrayList<Parameter> params) throws AxisFault;
+ public void setTransportOutDetails(TransportOutDescription transportOutDetails) throws AxisFault;
+ /**
+ * set the Transport in details that is needed for the implementation manager
+ * @param transportInDetails
+ * @throws AxisFault
+ */
+ public void setTransportInDetails(TransportInDescription transportInDetails) throws AxisFault;
+ /**
+ * send the SMS that is passed as a parameter using the current implimentation (To know the Content of the SMSMessage Look in to the documantaion of
+ * the SMSMessage )
+ * @param sm SMSMessage to be send
+ */
+ public void sendSMS(SMSMessage sm);
}
Modified: webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSManager.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSManager.java?rev=788308&r1=788307&r2=788308&view=diff
==============================================================================
--- webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSManager.java (original)
+++ webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSManager.java Thu Jun 25 09:53:08 2009
@@ -19,6 +19,9 @@
package org.apache.axis2.transport.sms;
import org.apache.axis2.description.Parameter;
+import org.apache.axis2.description.TransportInDescription;
+import org.apache.axis2.description.TransportOutDescription;
+import org.apache.axis2.description.ParameterInclude;
import org.apache.axis2.context.ConfigurationContext;
import org.apache.axis2.context.MessageContext;
import org.apache.axis2.transport.sms.smpp.SMPPImplManager;
@@ -40,6 +43,7 @@
private boolean inited;
private ConfigurationContext configurationContext;
private SMSMessageBuilder messageBuilder;
+ private SMSMessageFormatter messageFormatter;
/** the reference to the actual commons logger to be used for log messages */
protected Log log = LogFactory.getLog(this.getClass());
@@ -53,70 +57,136 @@
}
+ /**
+ * @return singleton Object of the SMSManager
+ */
public static SMSManager getSMSManager() {
if(ourInstence == null) {
ourInstence = new SMSManager();
}
-
return ourInstence;
}
+ /**
+ * initialize the SMS manager with TransportinDiscription
+ * if Manager is already inited it will only set the TransportInDiscription
+ * in the current Implimentation manager
+ * @param transportInDescription
+ * @param configurationContext
+ * @throws AxisFault
+ */
+ public void init(TransportInDescription transportInDescription ,ConfigurationContext configurationContext) throws
+ AxisFault {
+ if (!inited) {
+ basicInit(transportInDescription , configurationContext);
+ }
- public void init(ArrayList<Parameter> paramters , ConfigurationContext configurationContext) throws AxisFault {
- this.configurationContext = configurationContext;
- String implClass = (String)SMSTransportUtils.getParameterValue(paramters ,
- SMSTransportConstents.IMPLIMENTAION_CLASS );
- if(implClass == null ) {
- currentImplimentation = new SMPPImplManager();
+ Parameter builderClass = transportInDescription.getParameter(SMSTransportConstents.BUILDER_CLASS);
+
+ if(builderClass == null) {
+ messageBuilder = new DefaultSMSMessageBuilderImpl();
} else {
try {
- currentImplimentation = (SMSImplManager)Class.forName(implClass).newInstance();
+ messageBuilder = (SMSMessageBuilder)Class.forName((String)builderClass.getValue()).newInstance();
+
} catch (Exception e) {
- throw new AxisFault("Error while instentiating class " + implClass , e );
+ throw new AxisFault("Error while instentiating class " + builderClass.getValue() , e );
}
}
+ currentImplimentation.setTransportInDetails(transportInDescription);
+ inited = true;
+ }
- currentImplimentation.setTransportParamters(paramters);
+ /**
+ * Initialize the SMS Maneger with TransportOutDiscription
+ * if the Maneger is already inited it will set the Transport Outdetails
+ * in the Current Implimentation Manage
+ * @param transportOutDescription
+ * @param configurationContext
+ */
+ public void init(TransportOutDescription transportOutDescription , ConfigurationContext configurationContext) throws
+ AxisFault {
+ if(!inited) {
+ basicInit(transportOutDescription , configurationContext);
+ }
+ Parameter formatterClass = transportOutDescription.getParameter(SMSTransportConstents.FORMATTER_CLASS);
- String builderClass = (String)SMSTransportUtils.getParameterValue(paramters ,
- SMSTransportConstents.BUILDER_CLASS);
+ if(formatterClass == null) {
+ messageFormatter = new DefaultSMSMessageFormatterImpl();
+ }else {
+ try {
+ messageFormatter = (SMSMessageFormatter)Class.forName((String)formatterClass.getValue()).newInstance();
+ } catch (Exception e) {
+ throw new AxisFault("Error while instentiating the Class: " +formatterClass.getValue() ,e);
+ }
+ }
+ currentImplimentation.setTransportOutDetails(transportOutDescription);
+ inited = true;
+ }
- if(builderClass == null) {
- messageBuilder = new DefaultSMSMessageBuilderImpl();
+ private void basicInit(ParameterInclude transportDescription, ConfigurationContext configurationContext) throws
+ AxisFault {
+ this.configurationContext = configurationContext;
+ Parameter p = transportDescription.getParameter(SMSTransportConstents.IMPLIMENTAION_CLASS);
+
+ if (p == null) {
+ currentImplimentation = new SMPPImplManager();
} else {
+ String implClass = (String) p.getValue();
+
try {
- messageBuilder = (SMSMessageBuilder)Class.forName(builderClass).newInstance();
+ currentImplimentation = (SMSImplManager) Class.forName(implClass).newInstance();
} catch (Exception e) {
- throw new AxisFault("Error while instentiating class " + builderClass , e );
+ throw new AxisFault("Error while instentiating class " + implClass, e);
}
}
- inited = true;
- }
+ }
/**
* Dispatch the SMS message to Axis2 Engine
* @param message
* @param sender
*/
- public void dispatchToAxis2(String message , String sender) {
+ public void dispatchToAxis2(SMSMessage sms) {
try {
- MessageContext msgctx = messageBuilder.buildMessaage(message , sender , configurationContext);
+ MessageContext msgctx = messageBuilder.buildMessaage(sms.getContent() , sms.getSender() ,sms.getReceiver(),
+ configurationContext);
AxisEngine.receive(msgctx);
} catch (InvalidMessageFormatException e) {
log.debug("Invalid message format " + e);
- //do some thing like send a errror message
+
} catch (AxisFault axisFault) {
- System.out.println("Axis fault " + axisFault);
+ log.debug(axisFault);
} catch (Throwable e) {
- System.out.println("Unknown Exception " + e);
+ log.debug("Unknown Exception " , e);
}
}
-
+ /**
+ * send a SMS form the message comming form the Axis2 Engine
+ * @param messageContext that is comming form the Axis2
+ */
+ public void sendSMS(MessageContext messageContext) {
+ try {
+ SMSMessage sms = messageFormatter.formatSMS(messageContext);
+ currentImplimentation.sendSMS(sms);
+ } catch (Exception e) {
+ log.error("Error while sending the SMS " , e);
+ }
+
+ }
+
+ /**
+ * send the information SMS messages other than messages comming form the Axis2 Engine
+ * @param sms
+ */
+ public void sentInfo(SMSMessage sms) {
+ currentImplimentation.sendSMS(sms);
+ }
public ArrayList<Parameter> getTransportParameters() {
return transportParameters;
}
Added: webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSMessage.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSMessage.java?rev=788308&view=auto
==============================================================================
--- webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSMessage.java (added)
+++ webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSMessage.java Thu Jun 25 09:53:08 2009
@@ -0,0 +1,101 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axis2.transport.sms;
+
+import org.apache.axis2.AxisFault;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/**
+ * SMS message is a atomic object wich carries a SMS
+ * SMS has can be either a IN message or a OUT message
+ * which will have the details sender , receiver and Content
+ * sender , receiver has a implied meaning with the Message direction
+ * eg:
+ * in a IN_MESSAGE sender : the phone number of the phone that sms has been sent to axis2
+ * receiver : the phone number given from the SMSC to the Axis2
+ * in a OUT_MESSAGE sender : the phone number given from the SMSC to the Axis2
+ * receiver : the phone number of the phone that sms created from Axis2 must deliver to
+ */
+public class SMSMessage {
+
+
+ private String sender;
+ private String receiver;
+ private String content;
+ private int direction;
+
+ public static int IN_MESSAGE =1;
+ public static int OUT_MESSAGE =2;
+
+ /**
+ *
+ * @param sender
+ * @param reciever
+ * @param content
+ * @param direction
+ * @throws AxisFault
+ */
+ public SMSMessage(String sender ,String reciever, String content , int direction) throws AxisFault {
+ this.sender = sender;
+ this.content = content;
+ this.receiver = reciever;
+ if (direction == IN_MESSAGE || direction == OUT_MESSAGE ) {
+ this.direction = direction;
+
+ } else {
+ throw new AxisFault("Message must be in or out");
+ }
+
+ }
+
+ /**
+ * Retuen the Phone Number of the Sender
+ * @return String that contain the senders phone Number
+ */
+ public String getSender() {
+ return sender;
+ }
+
+ /**
+ * Return the phone Number that SMS must be received to
+ * @return String that Contain the receivers phone Number
+ */
+ public String getReceiver() {
+ return receiver;
+ }
+
+ /**
+ * Return The Contect that will be send with the SMS
+ * @return String that contain the content
+ */
+ public String getContent() {
+ return content;
+ }
+
+ /**
+ * return the Message Direction of the SMSMessage
+ * That should be either SMS_IN_MESSAGE :1
+ * Or SMS_OUT_MESSAGE : 2
+ * @return int that will infer the message direction
+ */
+ public int getDirection() {
+ return direction;
+ }
+}
Modified: webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSMessageBuilder.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSMessageBuilder.java?rev=788308&r1=788307&r2=788308&view=diff
==============================================================================
--- webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSMessageBuilder.java (original)
+++ webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSMessageBuilder.java Thu Jun 25 09:53:08 2009
@@ -34,10 +34,11 @@
* @param message the content of the SMS
* @param configurationContext axis2 configuration Context
* @param sener senders phone number
+ * @param receiver receivers phone number
* @return the Axis2 Message Context build
* @throws InvalidMessageFormatException if Message is not in correct format
*/
- public MessageContext buildMessaage(String message ,String sener, ConfigurationContext configurationContext)
+ public MessageContext buildMessaage(String message ,String sener,String receiver, ConfigurationContext configurationContext)
throws InvalidMessageFormatException;
}
Added: webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSMessageFormatter.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSMessageFormatter.java?rev=788308&view=auto
==============================================================================
--- webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSMessageFormatter.java (added)
+++ webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSMessageFormatter.java Thu Jun 25 09:53:08 2009
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axis2.transport.sms;
+
+import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.AxisFault;
+
+/**
+ * Interface for the Message formatters that build the out going SMSMessage from th Axis2 Message Context
+ */
+public interface SMSMessageFormatter {
+
+ /**
+ * format the out going SMS message from the MessageContext
+ * @param messageContext
+ * @return SMSMessage thats going to submited to the SMSC
+ */
+ public SMSMessage formatSMS(MessageContext messageContext) throws Exception;
+
+}
Modified: webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSMessageReciever.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSMessageReciever.java?rev=788308&r1=788307&r2=788308&view=diff
==============================================================================
--- webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSMessageReciever.java (original)
+++ webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSMessageReciever.java Thu Jun 25 09:53:08 2009
@@ -29,13 +29,11 @@
public class SMSMessageReciever implements TransportListener {
-
-
private SMSManager smsManeger;
public void init(ConfigurationContext configurationContext, TransportInDescription transportInDescription) throws AxisFault {
smsManeger = SMSManager.getSMSManager();
- smsManeger.init(transportInDescription.getParameters() , configurationContext);
+ smsManeger.init(transportInDescription , configurationContext);
}
Added: webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSSender.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSSender.java?rev=788308&view=auto
==============================================================================
--- webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSSender.java (added)
+++ webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSSender.java Thu Jun 25 09:53:08 2009
@@ -0,0 +1,56 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axis2.transport.sms;
+
+import org.apache.axis2.handlers.AbstractHandler;
+import org.apache.axis2.transport.TransportSender;
+import org.apache.axis2.transport.OutTransportInfo;
+import org.apache.axis2.transport.base.AbstractTransportSender;
+import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.context.ConfigurationContext;
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.description.TransportOutDescription;
+
+/**
+ * Transport sender that sends the SMS messages form the Axis2 Engine
+ */
+public class SMSSender extends AbstractTransportSender {
+ private SMSManager smsManager;
+
+
+
+ public void cleanup(MessageContext msgContext) throws AxisFault {
+
+ }
+
+ public void sendMessage(MessageContext msgCtx, String targetEPR, OutTransportInfo outTransportInfo) throws AxisFault {
+
+ smsManager.sendSMS(msgCtx);
+
+ }
+
+ public void init(ConfigurationContext confContext, TransportOutDescription transportOut) throws AxisFault {
+ smsManager = SMSManager.getSMSManager();
+ smsManager.init(transportOut, confContext);
+ }
+
+ public void stop() {
+ smsManager.stop();
+ }
+}
Modified: webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSTransportConstents.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSTransportConstents.java?rev=788308&r1=788307&r2=788308&view=diff
==============================================================================
--- webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSTransportConstents.java (original)
+++ webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSTransportConstents.java Thu Jun 25 09:53:08 2009
@@ -18,11 +18,29 @@
*/
package org.apache.axis2.transport.sms;
+/**
+ * Keeps the constets that are need for SMS Transport.Currently The code of the Class is divided in to three sections
+ * for the keep the clarity
+ * 1) SMS Transport Constents : add the constents to this section if you need to add new constents to the gneric
+ * SMSTransport level.
+ * 2) SMPP Constents : SMPP is one implimentation of SMSTransport.Add Constents to this section if you need to add
+ * constents related to SMPP section
+ * 3) GSM Constets : This a another implimentation. Add Constents to this section if you need to add constents related
+ * to GSM section
+ *
+ * if you are going to add a another SMS implimentation add a another section to this class eg:"XXX Transport Constents"
+ */
public class SMSTransportConstents {
-
+ /**
+ * SMS Transport Constents
+ */
public static String IMPLIMENTAION_CLASS = "smsImplClass";
public static String BUILDER_CLASS = "builderClass";
-
+ public static String FORMATTER_CLASS ="formatterClass";
+ public static String SEND_TO="sms_sender";
+ public static String DESTINATION = "sms_destination";
+ public static String PHONE_NUMBER = "phoneNumber";
+
/**
* SMPP constents
*/
@@ -32,6 +50,8 @@
public static String HOST = "host";
public static String PORT = "port";
-
+ /**
+ * GSM Constents
+ */
}
Modified: webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSTransportUtils.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSTransportUtils.java?rev=788308&r1=788307&r2=788308&view=diff
==============================================================================
--- webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSTransportUtils.java (original)
+++ webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSTransportUtils.java Thu Jun 25 09:53:08 2009
@@ -19,21 +19,54 @@
package org.apache.axis2.transport.sms;
import org.apache.axis2.description.Parameter;
+import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.addressing.EndpointReference;
import java.util.ArrayList;
public class SMSTransportUtils {
+ /**
+ * Given the array list of parameters and a name of the parameter
+ * it will return the Value of that Parameter
+ *
+ * @param list
+ * @param name
+ * @return Object that stores the value of that Parameter
+ */
public static Object getParameterValue(ArrayList<Parameter> list, String name) {
- if(name ==null)
- {
+ if (name == null) {
return null;
}
- for (Parameter p : list) {
- if(name.equals(p.getName())) {
+ for (Parameter p : list) {
+ if (name.equals(p.getName())) {
return p.getValue();
}
}
return null;
}
+
+ /**
+ * given the EPR it will return the phone number that the EPR represents
+ * this assumes a EPR of format
+ * sms://<phone_number>/
+ *
+ * @param epr
+ * @return
+ */
+ public static String getPhoneNumber(EndpointReference epr) throws Exception {
+
+ String eprAddress = epr.getAddress();
+ String protocal = eprAddress.substring(0, 3);
+ if (protocal != null && protocal.equals("sms")) {
+ String parts[] = eprAddress.split("/");
+ String phoneNumber = parts[2];
+ return phoneNumber;
+ } else {
+ throw new Exception("Invalid Epr for the SMS Transport : Epr must be of format sms://<phone_number>/");
+ }
+ }
+
+
}
+
Modified: webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/smpp/SMPPDispatcher.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/smpp/SMPPDispatcher.java?rev=788308&r1=788307&r2=788308&view=diff
==============================================================================
--- webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/smpp/SMPPDispatcher.java (original)
+++ webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/smpp/SMPPDispatcher.java Thu Jun 25 09:53:08 2009
@@ -20,25 +20,22 @@
import org.apache.axis2.AxisFault;
import org.apache.axis2.transport.sms.SMSManager;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.apache.axis2.transport.sms.SMSMessage;
-public class SMPPDispatcher implements Runnable{
-
- SMPPMessage smppMessage;
+/**
+ * Dispatch the SMS message taken frpm the SMPP PDU to the Axis2
+ */
+public class SMPPDispatcher{
- void dispatch(String source , String message) throws AxisFault {
+ SMSMessage smsMessage;
+
+ void dispatch(String source , String receiver,String message) throws AxisFault {
synchronized (this){
- smppMessage = new SMPPMessage(source , null, message , SMPPMessage.IN_MESSAGE);
+ smsMessage = new SMSMessage(source ,receiver, message , SMSMessage.IN_MESSAGE);
- }
- new Thread(this).start();
+ }
+ SMSManager.getSMSManager().dispatchToAxis2(smsMessage);
}
- public void run() {
-
- SMSManager.getSMSManager().dispatchToAxis2(smppMessage.getContent() , smppMessage.getSender());
-
- }
}
Modified: webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/smpp/SMPPImplManager.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/smpp/SMPPImplManager.java?rev=788308&r1=788307&r2=788308&view=diff
==============================================================================
--- webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/smpp/SMPPImplManager.java (original)
+++ webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/smpp/SMPPImplManager.java Thu Jun 25 09:53:08 2009
@@ -19,47 +19,52 @@
package org.apache.axis2.transport.sms.smpp;
import org.apache.axis2.transport.sms.SMSImplManager;
-import org.apache.axis2.transport.sms.SMSTransportUtils;
import org.apache.axis2.transport.sms.SMSTransportConstents;
-import org.apache.axis2.description.Parameter;
+import org.apache.axis2.transport.sms.SMSMessage;
+import org.apache.axis2.description.TransportInDescription;
+import org.apache.axis2.description.TransportOutDescription;
import org.apache.axis2.AxisFault;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jsmpp.session.SMPPSession;
import org.jsmpp.session.BindParameter;
-import org.jsmpp.bean.BindType;
-import org.jsmpp.bean.TypeOfNumber;
-import org.jsmpp.bean.NumberingPlanIndicator;
+import org.jsmpp.bean.*;
+import org.jsmpp.util.TimeFormatter;
+import org.jsmpp.util.AbsoluteTimeFormatter;
+import org.jsmpp.InvalidResponseException;
+import org.jsmpp.PDUException;
+import org.jsmpp.extra.NegativeResponseException;
+import org.jsmpp.extra.ResponseTimeoutException;
-import java.util.ArrayList;
import java.io.IOException;
+import java.util.Date;
public class SMPPImplManager implements SMSImplManager {
/** the reference to the actual commons logger to be used for log messages */
protected Log log = LogFactory.getLog(this.getClass());
- private String systemType ="cp";
- private String systemId;
- private String password;
- private String host="127.0.0.1";
- private int port = 2775;
- private volatile boolean stop=true;
+ private SMPPTransportInDetails smppTransportInDetails = SMPPTransportInDetails.getInstence();
+ private SMPPTransportOutDetails smppTransportOutDetails = SMPPTransportOutDetails.getInstence();
+ private volatile boolean stop=true;
- private SMPPSession session;
+ private SMPPSession inSession;
+ private SMPPSession outSession;
+ private static TimeFormatter timeFormatter = new AbsoluteTimeFormatter();
public void start() {
- session = new SMPPSession();
+ inSession = new SMPPSession();
try {
- session.connectAndBind(host, port, new BindParameter(BindType.BIND_RX, systemId,
- password, systemType , TypeOfNumber.UNKNOWN, NumberingPlanIndicator.UNKNOWN, null));
+ inSession.connectAndBind(smppTransportInDetails.getHost(), smppTransportInDetails.getPort(), new BindParameter(BindType.BIND_RX, smppTransportInDetails.getSystemId(),
+ smppTransportInDetails.getPassword(), smppTransportInDetails.getSystemType() , TypeOfNumber.UNKNOWN, NumberingPlanIndicator.UNKNOWN, null));
SMPPListener listener = new SMPPListener();
- session.setMessageReceiverListener(listener);
+ inSession.setMessageReceiverListener(listener);
stop = false;
- System.out.println("[Axis2] bind and connect to " + port + "on SMPP Transport");
-
+ System.out.println(" [Axis2] bind and connect to " + smppTransportInDetails.getHost()+" : " +
+ smppTransportInDetails.getPort() + " on SMPP Transport");
+
} catch (IOException e) {
log.error("Unable to conncet" + e);
}
@@ -67,46 +72,146 @@
}
public void stop() {
- log.info("Stopping SMPP Transport...");
+ log.info("Stopping SMPP Transport ...");
stop = true;
- session.unbindAndClose();
- }
+ if(inSession != null) {
+ inSession.unbindAndClose();
+ }
- public void setTransportParamters(ArrayList<Parameter> params) throws AxisFault {
+ if(outSession !=null) {
+ outSession.unbindAndClose();
+ }
+ }
- String tmp = (String) SMSTransportUtils.getParameterValue(params , SMSTransportConstents.SYSTEM_TYPE);
- if (tmp != null) {
- systemType = tmp;
+ public void setTransportInDetails(TransportInDescription transportInDetails) throws AxisFault {
+ if(transportInDetails == null) {
+ throw new AxisFault("No transport in details");
}
- tmp = (String) SMSTransportUtils.getParameterValue(params , SMSTransportConstents.SYSTEM_ID);
+ if(transportInDetails.getParameter(SMSTransportConstents.SYSTEM_TYPE) != null){
+ smppTransportInDetails.setSystemType((String)transportInDetails.getParameter(
+ SMSTransportConstents.SYSTEM_TYPE).getValue());
+ }
- if (tmp != null) {
- systemId = tmp;
+ if (transportInDetails.getParameter(SMSTransportConstents.SYSTEM_ID) != null) {
+ smppTransportInDetails.setSystemId((String)transportInDetails.getParameter(SMSTransportConstents.SYSTEM_ID).
+ getValue());
} else {
throw new AxisFault("System Id not set");
}
- tmp = (String) SMSTransportUtils.getParameterValue(params , SMSTransportConstents.PASSWORD);
+ if (transportInDetails.getParameter(SMSTransportConstents.PASSWORD) != null) {
+ smppTransportInDetails.setPassword((String)transportInDetails.getParameter(SMSTransportConstents.PASSWORD).
+ getValue());
+ } else {
+ throw new AxisFault("password not set");
+ }
+
+ if(transportInDetails.getParameter(SMSTransportConstents.HOST) != null) {
+ smppTransportInDetails.setHost((String)transportInDetails.getParameter(SMSTransportConstents.HOST).
+ getValue());
+ }
- if (tmp != null) {
- password = tmp;
+ if(transportInDetails.getParameter(SMSTransportConstents.PORT) != null) {
+ smppTransportInDetails.setPort(Integer.parseInt((String)transportInDetails.getParameter(
+ SMSTransportConstents.PORT).getValue()));
+ }
+
+ if(transportInDetails.getParameter(SMSTransportConstents.PHONE_NUMBER) != null) {
+ smppTransportInDetails.setPhoneNumber((String)transportInDetails.getParameter(
+ SMSTransportConstents.PHONE_NUMBER).getValue());
+ }
+ }
+
+ public void setTransportOutDetails(TransportOutDescription transportOutDetails) throws AxisFault{
+ if(transportOutDetails == null) {
+ throw new AxisFault("No transport in details");
+ }
+
+ if(transportOutDetails.getParameter(SMSTransportConstents.SYSTEM_TYPE) != null){
+ smppTransportOutDetails.setSystemType((String)transportOutDetails.getParameter(
+ SMSTransportConstents.SYSTEM_TYPE).getValue());
+ }
+
+ if (transportOutDetails.getParameter(SMSTransportConstents.SYSTEM_ID) != null) {
+ smppTransportOutDetails.setSystemId((String)transportOutDetails.getParameter(SMSTransportConstents.SYSTEM_ID).
+ getValue());
+ } else {
+ throw new AxisFault("System Id not set");
+ }
+
+ if (transportOutDetails.getParameter(SMSTransportConstents.PASSWORD) != null) {
+ smppTransportOutDetails.setPassword((String)transportOutDetails.getParameter(SMSTransportConstents.PASSWORD).
+ getValue());
} else {
throw new AxisFault("password not set");
}
- tmp = (String) SMSTransportUtils.getParameterValue(params , SMSTransportConstents.HOST);
+ if(transportOutDetails.getParameter(SMSTransportConstents.HOST) != null) {
+ smppTransportOutDetails.setHost((String)transportOutDetails.getParameter(SMSTransportConstents.HOST).
+ getValue());
+ }
+
+ if(transportOutDetails.getParameter(SMSTransportConstents.PORT) != null) {
+ smppTransportOutDetails.setPort(Integer.parseInt((String)transportOutDetails.getParameter(
+ SMSTransportConstents.PORT).getValue()));
+ }
- if (tmp != null) {
- host = tmp;
+ if(transportOutDetails.getParameter(SMSTransportConstents.PHONE_NUMBER) != null) {
+ smppTransportOutDetails.setPhoneNumber((String)transportOutDetails.getParameter(
+ SMSTransportConstents.PHONE_NUMBER).getValue());
}
+ }
- tmp = (String) SMSTransportUtils.getParameterValue(params , SMSTransportConstents.PORT);
+ public void sendSMS(SMSMessage sm) {
+ try {
+ if (outSession == null) {
+ outSession = new SMPPSession();
+ outSession.setEnquireLinkTimer(smppTransportOutDetails.getEnquireLinkTimer());
+ outSession.setTransactionTimer(smppTransportOutDetails.getTransactionTimer());
+ outSession.connectAndBind(smppTransportOutDetails.getHost(), smppTransportOutDetails.getPort(),
+ new BindParameter(BindType.BIND_TX, smppTransportOutDetails.getSystemId(),
+ smppTransportOutDetails.getPassword(), smppTransportOutDetails.getSystemType(),
+ TypeOfNumber.UNKNOWN, NumberingPlanIndicator.UNKNOWN, null));
+
+
+ }
+ log.debug("Conected and bind to " + smppTransportOutDetails.getHost());
+
+ String messageId = outSession.submitShortMessage(
+ "CMT",
+ TypeOfNumber.UNKNOWN,
+ NumberingPlanIndicator.UNKNOWN,
+ sm.getSender(),
+ TypeOfNumber.UNKNOWN,
+ NumberingPlanIndicator.UNKNOWN,
+ sm.getReceiver(),
+ new ESMClass(),
+ (byte) 0,
+ (byte) 1,
+ timeFormatter.format(new Date()),
+ null,
+ new RegisteredDelivery(SMSCDeliveryReceipt.DEFAULT),
+ (byte) 0,
+ new GeneralDataCoding(false, false, MessageClass.CLASS1,Alphabet.ALPHA_DEFAULT),
+ (byte) 0,
+ sm.getContent().getBytes()
+ );
- if (tmp != null) {
- port = Integer.parseInt(tmp);
+ log.debug("Message Submited with id" + messageId);
+ } catch (IOException e) {
+ log.error("Unable to Connect ", e);
+ } catch (InvalidResponseException e) {
+ log.debug("Invalid responce Exception", e);
+ } catch (PDUException e) {
+ log.debug("PDU Exception", e);
+ } catch (NegativeResponseException e) {
+ log.debug(e);
+ } catch (ResponseTimeoutException e) {
+ log.debug(e);
}
+
}
}
Modified: webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/smpp/SMPPListener.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/smpp/SMPPListener.java?rev=788308&r1=788307&r2=788308&view=diff
==============================================================================
--- webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/smpp/SMPPListener.java (original)
+++ webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/smpp/SMPPListener.java Thu Jun 25 09:53:08 2009
@@ -28,10 +28,13 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+/**
+ * Listen for the incomming SMPP messages and Start processing them
+ */
public class SMPPListener implements MessageReceiverListener{
/** the reference to the actual commons logger to be used for log messages */
protected Log log = LogFactory.getLog(this.getClass());
-
+
public void onAcceptDeliverSm(DeliverSm deliverSm) throws ProcessRequestException {
@@ -59,7 +62,7 @@
} else {
try {
- new SMPPDispatcher().dispatch(deliverSm.getSourceAddr() , new String(deliverSm.getShortMessage()));
+ new SMPPDispatcher().dispatch(deliverSm.getSourceAddr() ,deliverSm.getDestAddress() ,new String(deliverSm.getShortMessage()));
} catch (AxisFault axisFault) {
log.debug("Error while dispatching SMPP message" , axisFault);
Modified: webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/smpp/SMPPTransportInDetails.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/smpp/SMPPTransportInDetails.java?rev=788308&r1=788307&r2=788308&view=diff
==============================================================================
--- webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/smpp/SMPPTransportInDetails.java (original)
+++ webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/smpp/SMPPTransportInDetails.java Thu Jun 25 09:53:08 2009
@@ -18,5 +18,93 @@
*/
package org.apache.axis2.transport.sms.smpp;
+/**
+ * holds the SMPP imlimantations Transport in details
+ */
public class SMPPTransportInDetails {
+ private String systemType ="cp";
+ private String systemId;
+ private String password;
+ private String host="127.0.0.1";
+ private String phoneNumber = "0000";
+ private int port = 2775;
+ private int enquireLinkTimer = 50000;
+ private int transactionTimer = 100000;
+ private static SMPPTransportInDetails smppTransportInDetails;
+
+ private SMPPTransportInDetails(){
+
+ }
+
+ public static SMPPTransportInDetails getInstence() {
+ if(smppTransportInDetails == null) {
+ smppTransportInDetails = new SMPPTransportInDetails();
+ }
+
+ return smppTransportInDetails;
+ }
+
+ public String getSystemType() {
+ return systemType;
+ }
+
+ public void setSystemType(String systemType) {
+ this.systemType = systemType;
+ }
+
+ public String getSystemId() {
+ return systemId;
+ }
+
+ public void setSystemId(String systemId) {
+ this.systemId = systemId;
+ }
+
+ public String getPassword() {
+ return password;
+ }
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+ public String getHost() {
+ return host;
+ }
+
+ public void setHost(String host) {
+ this.host = host;
+ }
+
+ public int getPort() {
+ return port;
+ }
+
+ public void setPort(int port) {
+ this.port = port;
+ }
+
+ public int getEnquireLinkTimer() {
+ return enquireLinkTimer;
+ }
+
+ public void setEnquireLinkTimer(int enquireLinkTimer) {
+ this.enquireLinkTimer = enquireLinkTimer;
+ }
+
+ public int getTransactionTimer() {
+ return transactionTimer;
+ }
+
+ public void setTransactionTimer(int transactionTimer) {
+ this.transactionTimer = transactionTimer;
+ }
+
+ public String getPhoneNumber() {
+ return phoneNumber;
+ }
+
+ public void setPhoneNumber(String phoneNumber) {
+ this.phoneNumber = phoneNumber;
+ }
}
Modified: webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/smpp/SMPPTransportOutDetails.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/smpp/SMPPTransportOutDetails.java?rev=788308&r1=788307&r2=788308&view=diff
==============================================================================
--- webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/smpp/SMPPTransportOutDetails.java (original)
+++ webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/smpp/SMPPTransportOutDetails.java Thu Jun 25 09:53:08 2009
@@ -18,5 +18,106 @@
*/
package org.apache.axis2.transport.sms.smpp;
+/**
+ * Holds the SMPP implimantations transport out details
+ */
public class SMPPTransportOutDetails {
+ //smpp system type
+ private String systemType ="cp";
+ private String systemId;
+ private String password;
+ private String host="127.0.0.1";
+ private String phoneNumber="0000";
+ private int port = 2775;
+ private int enquireLinkTimer = 50000;
+ private int transactionTimer = 100000;
+
+ private static SMPPTransportOutDetails smppTransportOutDetails;
+
+ private SMPPTransportOutDetails(){
+
+ }
+
+ /**
+ * Get the referrence to the Singleton instence of the SMPP Transport Out details
+ * at the first request it will create a empty object
+ * @return SMPPTransportOutDetails instence
+ */
+ public static SMPPTransportOutDetails getInstence() {
+ if(smppTransportOutDetails ==null) {
+ smppTransportOutDetails = new SMPPTransportOutDetails();
+ }
+ return smppTransportOutDetails;
+ }
+
+ public int getTransactionTimer() {
+ return transactionTimer;
+ }
+
+ public void setTransactionTimer(int transactionTimer) {
+ this.transactionTimer = transactionTimer;
+ }
+
+ public int getEnquireLinkTimer() {
+ return enquireLinkTimer;
+ }
+
+ public void setEnquireLinkTimer(int enquireLinkTimer) {
+ this.enquireLinkTimer = enquireLinkTimer;
+ }
+
+ public int getPort() {
+ return port;
+ }
+
+ public void setPort(int port) {
+ this.port = port;
+ }
+
+ public String getHost() {
+ return host;
+ }
+
+ public void setHost(String host) {
+ this.host = host;
+ }
+
+ public String getPassword() {
+ return password;
+ }
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+ public String getSystemId() {
+ return systemId;
+ }
+
+ public void setSystemId(String systemId) {
+ this.systemId = systemId;
+ }
+
+ public String getSystemType() {
+ return systemType;
+ }
+
+ public void setSystemType(String systemType) {
+ this.systemType = systemType;
+ }
+
+ public String getPhoneNumber() {
+ return phoneNumber;
+ }
+
+ public void setPhoneNumber(String phoneNumber) {
+ this.phoneNumber = phoneNumber;
+ }
+
+
+ @Override
+ public String toString() {
+ return "TransportOutDetails:: SystemId: " +systemId +" systemType: "+ systemType + " password: "
+ +password+" host: "+host+" port: " +port+" phone NUmber" + phoneNumber;
+ }
}