You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by he...@apache.org on 2005/06/28 08:38:09 UTC
svn commit: r202139 - in /webservices/axis/trunk/java/modules:
core/src/org/apache/axis/context/ core/src/org/apache/axis/deployment/
core/src/org/apache/axis/transport/mail/server/ samples/
samples/test/org/apache/axis/mail/
Author: hemapani
Date: Mon Jun 27 23:38:07 2005
New Revision: 202139
URL: http://svn.apache.org/viewcvs?rev=202139&view=rev
Log:
checking in the Mail server and the refatoring fault handling in deployment
Added:
webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/server/
webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/server/MailAddress.java
webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/server/MailConstants.java
webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/server/MailServer.java
webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/server/MailSorter.java
webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/server/POP3Server.java
webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/server/POP3Worker.java
webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/server/SMTPServer.java
webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/server/SMTPWorker.java
webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/server/Storage.java
webservices/axis/trunk/java/modules/samples/test/org/apache/axis/mail/mail-enabled-axis2.xml
Removed:
webservices/axis/trunk/java/modules/samples/test/org/apache/axis/mail/mail-enabled-client.xml
webservices/axis/trunk/java/modules/samples/test/org/apache/axis/mail/mail-enabled-server.xml
Modified:
webservices/axis/trunk/java/modules/core/src/org/apache/axis/context/ConfigurationContextFactory.java
webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/DeploymentEngine.java
webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/DeploymentParser.java
webservices/axis/trunk/java/modules/samples/maven.xml
webservices/axis/trunk/java/modules/samples/test/org/apache/axis/mail/MailOneWayRawXMLTest.java
Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/context/ConfigurationContextFactory.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/context/ConfigurationContextFactory.java?rev=202139&r1=202138&r2=202139&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/context/ConfigurationContextFactory.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/context/ConfigurationContextFactory.java Mon Jun 27 23:38:07 2005
@@ -42,7 +42,7 @@
phaseResolver.buildTranspotsChains();
initModules(configurationContext);
} catch (AxisFault axisFault) {
- throw new DeploymentException(axisFault.getMessage());
+ throw new DeploymentException(axisFault);
}
return configurationContext;
}
@@ -59,7 +59,7 @@
initModules(engineContext);
initTransports(engineContext);
} catch (AxisFault axisFault) {
- throw new DeploymentException(axisFault.getMessage());
+ throw new DeploymentException(axisFault);
}
return engineContext;
}
@@ -88,7 +88,7 @@
}
}
} catch (AxisFault e) {
- throw new DeploymentException(e.getMessage());
+ throw new DeploymentException(e);
}
}
@@ -110,7 +110,7 @@
} catch (PhaseException e) {
throw new PhaseException(e.getMessage());
} catch (AxisFault axisFault) {
- throw new PhaseException(axisFault.getMessage());
+ throw new PhaseException(axisFault);
}
}
Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/DeploymentEngine.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/DeploymentEngine.java?rev=202139&r1=202138&r2=202139&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/DeploymentEngine.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/DeploymentEngine.java Mon Jun 27 23:38:07 2005
@@ -149,7 +149,7 @@
in.close();
out.close();
} catch (IOException e) {
- throw new DeploymentException(e.getMessage());
+ throw new DeploymentException(e);
}
@@ -209,7 +209,7 @@
} catch (FileNotFoundException e) {
throw new DeploymentException("Exception at deployment", e);
} catch (XMLStreamException e) {
- throw new DeploymentException(e.getMessage());
+ throw new DeploymentException(e);
}
setDeploymentFeatures();
if (hotDeployment) {
@@ -222,7 +222,7 @@
validateSystemPredefinedPhases();
} catch (AxisFault axisFault) {
log.info("Module validation failed" + axisFault.getMessage());
- throw new DeploymentException(axisFault.getMessage());
+ throw new DeploymentException(axisFault);
}
return axisConfig;
}
@@ -250,7 +250,7 @@
DeploymentParser parser = new DeploymentParser(in, this);
parser.processGlobalConfig(((AxisConfigurationImpl) axisConfig), AXIS2CONFIG);
} catch (XMLStreamException e) {
- throw new DeploymentException(e.getMessage());
+ throw new DeploymentException(e);
}
if (isRepositoryExist) {
hotDeployment = false;
@@ -260,7 +260,7 @@
engagdeModules();
} catch (AxisFault axisFault) {
log.info("Module validation failed" + axisFault.getMessage());
- throw new DeploymentException(axisFault.getMessage());
+ throw new DeploymentException(axisFault);
}
}
return axisConfig;
@@ -295,7 +295,7 @@
in.close();
out.close();
} catch (IOException e) {
- throw new DeploymentException(e.getMessage());
+ throw new DeploymentException(e);
}
@@ -331,7 +331,6 @@
DeploymentData tempdata = DeploymentData.getInstance();
ArrayList inPhases = tempdata.getINPhases();
//TODO condition checking should be otherway since null value can occur
- try {
if (!(((String) inPhases.get(0)).equals(PhaseMetadata.PHASE_TRANSPORTIN) &&
((String) inPhases.get(1)).equals(PhaseMetadata.PHASE_PRE_DISPATCH) &&
((String) inPhases.get(2)).equals(PhaseMetadata.PHASE_DISPATCH) &&
@@ -339,10 +338,6 @@
throw new DeploymentException("Invalid System predefined inphases , phase order dose not" +
" support\n recheck axis2.xml");
}
- } catch (DeploymentException e) {
- throw new DeploymentException("Invalid System predefined inphases , phase order dose not" +
- " support\n recheck axis2.xml");
- }
// ArrayList outPhaes = tempdata.getOUTPhases();
//TODO do the validation code here
//ArrayList systemDefaultPhases =((AxisConfigurationImpl)axisConfig).getInPhasesUptoAndIncludingPostDispatch();
@@ -685,11 +680,9 @@
loadServiceProperties(axisService);
axisConfig.addService(axisService);
} catch (XMLStreamException e) {
- throw new DeploymentException("XMLStreamException" + e.getMessage());
- } catch (DeploymentException e) {
- throw new DeploymentException(e.getMessage());
+ throw new DeploymentException(e);
} catch (AxisFault axisFault) {
- throw new DeploymentException(axisFault.getMessage());
+ throw new DeploymentException(axisFault);
}
return axisService;
}
Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/DeploymentParser.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/DeploymentParser.java?rev=202139&r1=202138&r2=202139&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/DeploymentParser.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/DeploymentParser.java Mon Jun 27 23:38:07 2005
@@ -144,13 +144,13 @@
}
} catch (ClassNotFoundException e) {
throw new DeploymentException(
- "Error in loading messageRecivers " + e.getMessage());
+ "Error in loading messageRecivers " , e);
} catch (IllegalAccessException e) {
throw new DeploymentException(
- "Error in loading messageRecivers " + e.getMessage());
+ "Error in loading messageRecivers " , e);
} catch (InstantiationException e) {
throw new DeploymentException(
- "Error in loading messageRecivers " + e.getMessage());
+ "Error in loading messageRecivers " , e);
}
} else
throw new UnsupportedOperationException(
@@ -283,7 +283,7 @@
} catch (XMLStreamException e) {
throw new DeploymentException("parser Exception", e);
} catch (Exception e) {
- throw new DeploymentException(e.getMessage());
+ throw new DeploymentException(e);
}
return transportin;
}
@@ -351,7 +351,7 @@
} catch (XMLStreamException e) {
throw new DeploymentException("parser Exception", e);
} catch (Exception e) {
- throw new DeploymentException(e.getMessage());
+ throw new DeploymentException(e);
}
return transportout;
}
@@ -504,7 +504,7 @@
} catch (XMLStreamException e) {
throw new DeploymentException("parser Exception", e);
} catch (Exception e) {
- throw new DeploymentException(e.getMessage());
+ throw new DeploymentException(e);
}
return desc;
}
@@ -554,7 +554,7 @@
} catch (XMLStreamException e) {
throw new DeploymentException("parser Exception", e);
} catch (Exception e) {
- throw new DeploymentException(e.getMessage());
+ throw new DeploymentException(e);
}
// adding element to the parameter
parameter.setValue(element);
@@ -656,7 +656,7 @@
} catch (XMLStreamException e) {
throw new DeploymentException("parser Exception", e);
} catch (Exception e) {
- throw new DeploymentException(e.getMessage());
+ throw new DeploymentException(e);
}
// adding element to the parameter
return handler;
@@ -689,7 +689,7 @@
} catch (XMLStreamException e) {
throw new DeploymentException("parser Exception", e);
} catch (Exception e) {
- throw new DeploymentException(e.getMessage());
+ throw new DeploymentException(e);
}
}
@@ -769,13 +769,13 @@
}
} catch (ClassNotFoundException e) {
throw new DeploymentException(
- "Error in loading messageRecivers " + e);
+ "Error in loading messageRecivers " , e);
} catch (IllegalAccessException e) {
throw new DeploymentException(
- "Error in loading messageRecivers " + e);
+ "Error in loading messageRecivers " , e);
} catch (InstantiationException e) {
throw new DeploymentException(
- "Error in loading messageRecivers " + e);
+ "Error in loading messageRecivers " , e);
}
} else {
throw new UnsupportedOperationException(
@@ -908,13 +908,13 @@
(MessageReceiver) messageReceiver.newInstance());
} catch (ClassNotFoundException e) {
throw new DeploymentException(
- "Error in loading messageRecivers " + e.getMessage());
+ "Error in loading messageRecivers " , e);
} catch (IllegalAccessException e) {
throw new DeploymentException(
- "Error in loading messageRecivers " + e.getMessage());
+ "Error in loading messageRecivers " , e);
} catch (InstantiationException e) {
throw new DeploymentException(
- "Error in loading messageRecivers " + e.getMessage());
+ "Error in loading messageRecivers " , e);
}
}
module.addOperation(operation);
@@ -934,7 +934,7 @@
} catch (XMLStreamException e) {
throw new DeploymentException("parser Exception", e);
} catch (Exception e) {
- throw new DeploymentException(e.getMessage());
+ throw new DeploymentException(e);
}
}
@@ -970,7 +970,7 @@
} catch (XMLStreamException e) {
throw new DeploymentException("parser Exception", e);
} catch (Exception e) {
- throw new DeploymentException(e.getMessage());
+ throw new DeploymentException(e);
}
return inFlow;
}
@@ -1005,7 +1005,7 @@
} catch (XMLStreamException e) {
throw new DeploymentException("parser Exception", e);
} catch (Exception e) {
- throw new DeploymentException(e.getMessage());
+ throw new DeploymentException(e);
}
return outFlow;
@@ -1041,7 +1041,7 @@
} catch (XMLStreamException e) {
throw new DeploymentException("parser Exception", e);
} catch (Exception e) {
- throw new DeploymentException(e.getMessage());
+ throw new DeploymentException(e);
}
return faultFlow;
}
@@ -1076,7 +1076,7 @@
} catch (XMLStreamException e) {
throw new DeploymentException("parser Exception", e);
} catch (Exception e) {
- throw new DeploymentException(e.getMessage());
+ throw new DeploymentException(e);
}
return faultFlow;
}
@@ -1112,7 +1112,7 @@
} catch (XMLStreamException e) {
throw new DeploymentException("parser Exception", e);
} catch (Exception e) {
- throw new DeploymentException(e.getMessage());
+ throw new DeploymentException(e);
}
return pahseList;
}
Added: webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/server/MailAddress.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/server/MailAddress.java?rev=202139&view=auto
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/server/MailAddress.java (added)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/server/MailAddress.java Mon Jun 27 23:38:07 2005
@@ -0,0 +1,24 @@
+package org.apache.axis.transport.mail.server;
+
+import javax.mail.Address;
+
+/**
+ * This is a simple implementation to simplify the usage
+ * of the Addresses.
+ * @author Chamil Thanthrimudalige
+ */
+public class MailAddress extends Address{
+ String mailAddy = null;
+ public MailAddress(String mAddy){
+ this.mailAddy = mAddy;
+ }
+ public boolean equals(Object addr) {
+ return this.mailAddy.equals(addr);
+ }
+ public String getType() {
+ return "text/plain";
+ }
+ public String toString() {
+ return this.mailAddy;
+ }
+}
\ No newline at end of file
Added: webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/server/MailConstants.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/server/MailConstants.java?rev=202139&view=auto
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/server/MailConstants.java (added)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/server/MailConstants.java Mon Jun 27 23:38:07 2005
@@ -0,0 +1,34 @@
+package org.apache.axis.transport.mail.server;
+
+/**
+ * @author Chamil Thanthrimudalige
+ * @author Chamikara Jayalath
+ */
+
+public interface MailConstants {
+ public final int SMTP_SERVER_PORT = (1024 + 25);
+ public final String SERVER_DOMAIN = "localhost";
+ public final int POP_SERVER_PORT = (1024 + 110);
+
+ public final String COMMAND_UNKNOWN = "550 Unknown command";
+ public final String COMMAND_EXIT = "EXIT";
+ public final String MAIL_OK = "250 OK performed command MAIL";
+ public final String MAIL_ERROR = "550 Error processign MAIL command";
+ public final String RCPT_OK = "250 OK performed command RCPT";
+ public final String RCPT_ERROR = "550 Unknown recipient";
+ public final String DATA_START_SUCCESS = "354 OK Ready for data";
+ public final String DATA_END_SUCCESS = "250 OK finished adding data";
+ public final String COMMAND_TRANSMISSION_END = "221 Closing SMTP service.";
+ public final String HELO_REPLY = "250 OK";
+ public final String OK = "+OK ";
+ public final String ERR = "-ERR ";
+ public final String USER = "USER";
+ public final String PASS = "PASS";
+ public final String STAT = "STAT";
+ public final String LIST = "LIST";
+ public final String RETR = "RETR";
+ public final String DELE = "DELE";
+ public final String NOOP = "NOOP";
+ public final String RSET = "RSET";
+ public final String QUIT = "QUIT";
+}
Added: webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/server/MailServer.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/server/MailServer.java?rev=202139&view=auto
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/server/MailServer.java (added)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/server/MailServer.java Mon Jun 27 23:38:07 2005
@@ -0,0 +1,54 @@
+package org.apache.axis.transport.mail.server;
+
+import org.apache.axis.context.ConfigurationContext;
+import org.apache.axis.context.ConfigurationContextFactory;
+import org.apache.axis.transport.mail.SimpleMailListener;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/**
+ * @author Chamil Thanthrimudalige
+ */
+public class MailServer {
+ Storage st = null;
+ public ConfigurationContext configurationContext = null;
+ protected static Log log = LogFactory.getLog(SimpleMailListener.class.getName());
+
+ public MailServer(String dir, int popPort,int smtpPort) {
+ try {
+ ConfigurationContextFactory builder = new ConfigurationContextFactory();
+ configurationContext = builder.buildConfigurationContext(dir);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ try {
+ System.out.println("Sleeping for a bit to let the engine start up.");
+ Thread.sleep(2000);
+ } catch (InterruptedException e1) {
+ log.debug(e1.getMessage(), e1);
+ }
+ st = new Storage();
+ // Start up the two servers and lets have some fun. - CT
+ SMTPServer smtpServer = new SMTPServer(st,configurationContext,smtpPort);
+ smtpServer.start();
+ POP3Server pop3Server = new POP3Server(st,popPort);
+ pop3Server.start();
+
+ }
+ public MailServer(ConfigurationContext configurationContext,int popPort,int smtpPort){
+ this.configurationContext = configurationContext;
+ try {
+ System.out.println("Sleeping for a bit to let the engine start up.");
+ Thread.sleep(2000);
+ } catch (InterruptedException e1) {
+ log.debug(e1.getMessage(), e1);
+ }
+
+ st = new Storage();
+ // Start up the two servers and lets have some fun. - CT
+ SMTPServer smtpServer = new SMTPServer(st,configurationContext,smtpPort);
+ smtpServer.start();
+ POP3Server pop3Server = new POP3Server(st,popPort);
+ pop3Server.start();
+ }
+}
Added: webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/server/MailSorter.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/server/MailSorter.java?rev=202139&view=auto
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/server/MailSorter.java (added)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/server/MailSorter.java Mon Jun 27 23:38:07 2005
@@ -0,0 +1,122 @@
+package org.apache.axis.transport.mail.server;
+
+import java.io.ByteArrayInputStream;
+import java.util.ArrayList;
+import javax.mail.MessagingException;
+import javax.mail.internet.InternetAddress;
+import javax.mail.internet.MimeMessage;
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamReader;
+import org.apache.axis.Constants;
+import org.apache.axis.addressing.AddressingConstants;
+import org.apache.axis.addressing.EndpointReference;
+import org.apache.axis.context.ConfigurationContext;
+import org.apache.axis.context.MessageContext;
+import org.apache.axis.engine.AxisEngine;
+import org.apache.axis.engine.AxisFault;
+import org.apache.axis.om.impl.llom.builder.StAXBuilder;
+import org.apache.axis.soap.SOAPEnvelope;
+import org.apache.axis.soap.impl.llom.builder.StAXSOAPModelBuilder;
+import org.apache.axis.transport.mail.MailConstants;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/**
+ * This class will be used to sort the messages into normal messages and mails
+ * being sent to the Axis engine. If a mail is to be sent to the engine then a
+ * new Axis engine is created using the configuration in the MailServer class
+ * and the receive method is called.
+ * @author Chamil Thanthrimudalige
+ */
+public class MailSorter {
+ Storage st = null;
+ private ArrayList sUsers = new ArrayList(); // Special users. They are hard coded for the time being to axis2-server@localhost and axis2-server@127.0.0.1
+ private ConfigurationContext configurationContext = null;
+ protected static Log log = LogFactory.getLog(MailSorter.class.getName());
+
+ public MailSorter(Storage st,ConfigurationContext configurationContext){
+ this.st = st;
+ sUsers.add("axis2-server@localhost");
+ sUsers.add("axis2-server@127.0.0.1");
+ this.configurationContext = configurationContext;
+ }
+
+ public void sort(String user, MimeMessage msg){
+ if (sUsers.contains(user)){
+ processMail(configurationContext, msg);
+ } else {
+ st.addMail(user, msg);
+ }
+ }
+
+ public void processMail(ConfigurationContext confContext, MimeMessage mimeMessage) {
+ // create an Axis server
+ AxisEngine engine = new AxisEngine(confContext);
+ MessageContext msgContext = null;
+ // create and initialize a message context
+ try {
+ msgContext =
+ new MessageContext(confContext,
+ confContext.getAxisConfiguration().getTransportIn(new QName(Constants.TRANSPORT_MAIL)),
+ confContext.getAxisConfiguration().getTransportOut(new QName(Constants.TRANSPORT_MAIL)));
+ msgContext.setServerSide(true);
+
+ msgContext.setProperty(MailConstants.CONTENT_TYPE, mimeMessage.getContentType());
+ msgContext.setWSAAction(getMailHeader(MailConstants.HEADER_SOAP_ACTION, mimeMessage));
+
+ String serviceURL = mimeMessage.getSubject();
+ if (serviceURL == null) {
+ serviceURL = "";
+ }
+
+ String replyTo = ((InternetAddress) mimeMessage.getReplyTo()[0]).getAddress();
+ if (replyTo != null) {
+ msgContext.setReplyTo(
+ new EndpointReference(AddressingConstants.WSA_REPLY_TO, replyTo));
+ }
+
+ String recepainets = ((InternetAddress) mimeMessage.getAllRecipients()[0]).getAddress();
+
+
+ if (recepainets != null) {
+ msgContext.setTo(new EndpointReference(AddressingConstants.WSA_FROM, recepainets+ "/"+serviceURL));
+ }
+
+ // add the SOAPEnvelope
+ String message = mimeMessage.getContent().toString();
+ System.out.println("message["+message+"]");
+ ByteArrayInputStream bais =
+ new ByteArrayInputStream(message.getBytes());
+ XMLStreamReader reader = XMLInputFactory.newInstance().createXMLStreamReader(bais);
+ StAXBuilder builder = new StAXSOAPModelBuilder(reader);
+ msgContext.setEnvelope((SOAPEnvelope) builder.getDocumentElement());
+ // invoke the Axis engine
+ engine.receive(msgContext);
+ } catch (Exception e) {
+ e.printStackTrace();
+ AxisFault af;
+ if (e instanceof AxisFault) {
+ af = (AxisFault) e;
+ log.debug("Error occured while trying to process the mail.", af);
+ } else {
+ af = AxisFault.makeFault(e);
+ }
+ }
+ }
+
+
+ private String getMailHeader(String headerName, MimeMessage mimeMessage) throws AxisFault {
+ try {
+ String values[] = mimeMessage.getHeader(headerName);
+ if (values != null) {
+ return values[0];
+ } else {
+ return null;
+ }
+ } catch (MessagingException e) {
+ throw new AxisFault(e);
+ }
+
+ }
+}
\ No newline at end of file
Added: webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/server/POP3Server.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/server/POP3Server.java?rev=202139&view=auto
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/server/POP3Server.java (added)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/server/POP3Server.java Mon Jun 27 23:38:07 2005
@@ -0,0 +1,36 @@
+package org.apache.axis.transport.mail.server;
+
+import java.io.IOException;
+import java.net.ServerSocket;
+import java.net.Socket;
+/**
+ * @author Chamil Thanthrimudalige
+ */
+
+public class POP3Server extends Thread {
+ private ServerSocket serverSocket;
+ private Storage st = null;
+
+
+ public POP3Server(Storage st,int port) {
+ this.st = st;
+ try {
+ serverSocket = new ServerSocket(port);
+ System.out.println("Server started on port " + port);
+ } catch(IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ public void run() {
+ while(true) {
+ try {
+ Socket socket = serverSocket.accept();
+ POP3Worker thread = new POP3Worker(socket, st);
+ thread.start();
+ } catch(Exception e) {
+ e.printStackTrace();
+ }
+ }
+ }
+}
\ No newline at end of file
Added: webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/server/POP3Worker.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/server/POP3Worker.java?rev=202139&view=auto
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/server/POP3Worker.java (added)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/server/POP3Worker.java Mon Jun 27 23:38:07 2005
@@ -0,0 +1,131 @@
+/**
+ * @author Chamil Thanthrimudalige
+ */
+package org.apache.axis.transport.mail.server;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.PrintWriter;
+import java.net.Socket;
+import java.util.ArrayList;
+import java.util.StringTokenizer;
+
+import javax.mail.MessagingException;
+import javax.mail.internet.MimeMessage;
+
+public class POP3Worker extends Thread{
+ private Socket socket;
+ private Storage st;
+ boolean doneProcess = false;
+ int numDeleted = 0 ; //This is a small hack to get the deleting working with the ArrayList. To keep it simple.
+ public POP3Worker(Socket socket, Storage st) {
+ this.socket = socket;
+ this.st = st;
+ }
+
+ public void run() {
+ try {
+ InputStream inputStream = socket.getInputStream();
+ BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
+
+ PrintWriter printWriter = new PrintWriter(socket.getOutputStream(), true);
+
+ printWriter.println(MailConstants.OK+" POP3 server ready");
+ String s;
+ String ps; //ProcessedString
+ while(!doneProcess) {
+ s = bufferedReader.readLine();
+ processInput(s, printWriter);
+ }
+ socket.close();
+ } catch(Exception e) {
+ e.printStackTrace();
+ }
+
+ }
+ ArrayList messages = new ArrayList();
+ private void processInput(String input, PrintWriter printWriter){
+ int listLen = (MailConstants.LIST+" ").length();
+ String user = "";
+ if(input==null) {
+ this.doneProcess = true; // This should not be happening
+ } else {
+ ArrayList tokens = new ArrayList();
+ StringTokenizer stk = new StringTokenizer(input);
+ while (stk.hasMoreTokens()) {
+ tokens.add(stk.nextToken());
+ }
+ if(((String)tokens.get(0)).equals(MailConstants.USER)) {
+ user = (String)tokens.get(1);
+ messages = st.popUserMails(user);
+ printWriter.println(MailConstants.OK);
+ } else if(((String)tokens.get(0)).equals(MailConstants.PASS)) {
+ printWriter.println(MailConstants.OK); // Passwords are not checked.
+ } else if(input.equals(MailConstants.QUIT)) {
+ printWriter.println(MailConstants.OK + "POP3 server signing off");
+ doneProcess=true;
+ } else if(input.equals(MailConstants.STAT)) {
+ printWriter.println(MailConstants.OK + messages.size() + " 1"); // We take the maildrop size as one.
+ } else if(((String)tokens.get(0)).equals(MailConstants.LIST)) { // scan listing
+ if(tokens.size() > 1) {
+ try {
+ int optArg = Integer.parseInt((String)tokens.get(1));
+ int messageArrayIndex = optArg - 1;
+ if((messageArrayIndex < messages.size()) && (messageArrayIndex >= 0)) { // that is OK careful with numbering
+ printWriter.println(MailConstants.OK + messageArrayIndex + 1 + " 120"); // Mail size of 120 is just some number.
+ } else {
+ printWriter.println(MailConstants.ERR + "no such message, only " + (messages.size() + 1) + " messages in maildrop");
+ }
+ } catch(NumberFormatException e) {
+ e.printStackTrace();
+ printWriter.println(MailConstants.ERR + "problem passing the index. Index submited was " + (String)tokens.get(1));
+ }
+ } else {
+ printWriter.println(MailConstants.OK+messages.size());
+ for(int i=0; i<messages.size(); i++) {
+ int messageIndex = i+1;
+ printWriter.println(messageIndex + " 120"); // List out all the messages with a message size octet of 120
+ }
+ printWriter.println(".");
+ }
+ } else if(((String)tokens.get(0)).equals(MailConstants.RETR)) {
+ String i = (String)tokens.get(1);
+ try {
+ int index = Integer.parseInt(i);
+ printWriter.println(MailConstants.OK);
+ MimeMessage m = (MimeMessage)messages.get(index-1);
+ m.writeTo(socket.getOutputStream());
+ byte[] CR_LF_DOT_CR_LF = new byte[] { 0x0D, 0x0A, '.', 0x0D, 0x0A };
+ socket.getOutputStream().write(CR_LF_DOT_CR_LF);// This is a bit of a hack to get it working. Have to find a bette way to handle this.
+ socket.getOutputStream().flush();
+ } catch(NumberFormatException e) {
+ printWriter.println(MailConstants.ERR);
+ } catch (IOException e1) {
+ printWriter.println(MailConstants.ERR);
+ } catch (MessagingException e2) {
+ printWriter.println(MailConstants.ERR);
+ }
+ } else if(((String)tokens.get(0)).equals(MailConstants.DELE)) {
+ String smIndex = (String)tokens.get(1);
+ try {
+ int mIndex = Integer.parseInt(smIndex)-1 - numDeleted; // When one mail is deleted the index of the other mails will reduce. Asumed that the delete will occure from bottom up.
+ if((mIndex >= 0) && (mIndex < messages.size())) {
+ messages.remove(mIndex);
+ numDeleted++;
+ printWriter.println(MailConstants.OK);
+ } else {
+ printWriter.println(MailConstants.ERR);
+ }
+ } catch(NumberFormatException e) {
+ printWriter.println(MailConstants.ERR);
+ }
+ } else if(((String)tokens.get(0)).equals(MailConstants.NOOP) || ((String)tokens.get(0)).equals(MailConstants.RSET)) {
+ printWriter.println(MailConstants.OK);
+ } else {
+ printWriter.println(MailConstants.ERR);
+ }
+ }
+ }
+}
Added: webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/server/SMTPServer.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/server/SMTPServer.java?rev=202139&view=auto
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/server/SMTPServer.java (added)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/server/SMTPServer.java Mon Jun 27 23:38:07 2005
@@ -0,0 +1,51 @@
+package org.apache.axis.transport.mail.server;
+
+import java.io.IOException;
+import java.net.ServerSocket;
+import java.net.Socket;
+
+import org.apache.axis.context.ConfigurationContext;
+
+
+/**
+ * @author Chamil Thanthrimudalige
+ * @author Chamikara Jayalath
+ */
+
+public class SMTPServer extends Thread{
+ private Storage st;
+ private ConfigurationContext configurationContext;
+ private int port;
+ public SMTPServer(Storage st,ConfigurationContext configurationContext,int port){
+ this.st = st;
+ this.configurationContext =configurationContext;
+ this.port = port;
+ }
+ public void run(){
+ runServer();
+ }
+
+ public void runServer() {
+ ServerSocket ss = null;
+ try {
+ ss = new ServerSocket(port);
+ System.out.println("SMTP Server started on port " + port);
+ } catch (IOException ex) {
+ ex.printStackTrace();
+ }
+
+ while (true) {
+ try {
+ //wait for a client
+ Socket socket = ss.accept();
+
+ SMTPWorker thread = new SMTPWorker(socket, st,configurationContext);
+ thread.start();
+
+ } catch (IOException ex) {
+ ex.printStackTrace();
+ }
+ }
+ }
+
+}
\ No newline at end of file
Added: webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/server/SMTPWorker.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/server/SMTPWorker.java?rev=202139&view=auto
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/server/SMTPWorker.java (added)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/server/SMTPWorker.java Mon Jun 27 23:38:07 2005
@@ -0,0 +1,235 @@
+package org.apache.axis.transport.mail.server;
+
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.OutputStreamWriter;
+import java.net.Socket;
+import java.util.ArrayList;
+import java.util.Properties;
+
+import javax.mail.Authenticator;
+import javax.mail.Message;
+import javax.mail.MessagingException;
+import javax.mail.PasswordAuthentication;
+import javax.mail.Session;
+import javax.mail.internet.MimeMessage;
+
+import org.apache.axis.context.ConfigurationContext;
+
+
+/**
+ * @author Chamil Thanthrimudalige
+ * @author Chamikara Jayalath
+ */
+
+public class SMTPWorker extends Thread {
+
+ BufferedReader reader = null;
+
+ BufferedWriter writer = null;
+
+ ArrayList recivers = new ArrayList();
+
+ Storage st = null;
+ boolean runThread = true;
+
+ private MimeMessage mail = null;
+ private ConfigurationContext configurationContext = null;
+
+ String temp = "";
+ boolean dataWriting = false;
+ boolean transmitionEnd = false;
+
+ boolean bodyData = false;
+
+ public SMTPWorker(Socket socket, Storage st,ConfigurationContext configurationContext) {
+ try {
+ this.st = st;
+ this.configurationContext = configurationContext;
+ //get the streams from the socket and save in instance variables.
+ reader = new BufferedReader(new InputStreamReader(socket
+ .getInputStream()));
+ writer = new BufferedWriter(new OutputStreamWriter(socket
+ .getOutputStream()));
+ } catch (IOException ex) {
+ ex.printStackTrace();
+ }
+ }
+
+ //running the thread
+ public void run() {
+ try {
+ //do initial transmission.
+ initializeClient();
+
+ //analyze all the inputs from client and work accordingly.
+ while (runThread) {
+ String input = null;
+
+ //get client input
+ input = reader.readLine();
+
+ String retString = processInput(input);
+
+ if (MailConstants.COMMAND_EXIT.equals(retString)){
+ exitWorker();
+ } else {
+ if (retString != null) {
+ send(retString); //Send the reply
+ }
+ if(mail!=null && transmitionEnd) {
+ exitWorker();
+ }
+ }
+ }
+ for (int idx = 0; idx < recivers.size();idx++){
+ try {
+ MailSorter mSort = new MailSorter(this.st,this.configurationContext);
+ mSort.sort((String)recivers.get(idx), new MimeMessage(mail));
+ } catch (MessagingException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+ }
+ //
+
+ } catch (IOException e) {
+ System.out.println("ERROR: CLIENT CLOSED THE SOCKET");
+ }
+ }
+
+ private void send(String s) throws IOException{
+ writer.write(s);
+ writer.newLine();
+ writer.flush();
+ }
+
+ private String processInput(String input) {
+
+ if(input==null) return MailConstants.COMMAND_UNKNOWN;
+ if(mail!=null && transmitionEnd) return MailConstants.COMMAND_TRANSMISSION_END;
+
+ if (input.startsWith("MAIL")) {
+ temp += input + "\n";
+
+ mail = new MimeMessage(Session.getInstance(new Properties(), new Authenticator() {
+ protected PasswordAuthentication getPasswordAuthentication() {
+ return null;
+ }
+ }));
+
+ int start = input.indexOf("<") + 1;
+ int end;
+
+ if(start<=0){
+ start = input.indexOf("FROM:") + 5;
+ end = input.length();
+ }else{
+ end = input.indexOf(">");
+ }
+
+ String from = input.substring(start,end);
+
+ if(from!=null && !from.trim().equals("")){
+ //TODO this is an ugly hack to get the from address in. There should be a better way to do this.
+ MailAddress mailFrom[] = new MailAddress[1];
+ mailFrom[0] = new MailAddress(from);
+ try {
+ mail.addFrom(mailFrom);
+ } catch (MessagingException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+
+ return MailConstants.MAIL_OK;
+
+ } if (input.startsWith("HELO")) {
+ return MailConstants.HELO_REPLY;
+
+ } else if (input.startsWith("RCPT")) {
+
+ String domain = MailConstants.SERVER_DOMAIN;
+ //System.out.println("RCPT:" + input);
+ temp += input + "\n";
+ int start = input.indexOf("<") + 1;
+ int end;
+
+ if(start<=0){
+ start = input.indexOf("TO:") + 3;
+/* if(!input.endsWith(domain)){
+ System.out.println("ERROR: wrong donmain name");
+ return MailConstants.RCPT_ERROR;
+ }*/
+ }else{
+/* if(!input.endsWith(domain + ">")){
+ System.out.println("ERROR: wrong donmain name");
+ return MailConstants.RCPT_ERROR;
+ }*/
+ }
+
+ end = input.indexOf(">");
+ String toStr = input.substring(start,end);
+
+ try {
+ mail.addRecipient(Message.RecipientType.TO, new MailAddress(toStr));
+ recivers.add(toStr);
+ } catch (MessagingException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ return MailConstants.RCPT_OK;
+
+ } else if (input.equalsIgnoreCase("DATA")) {
+
+ //session.setDataWriting(true);
+ dataWriting = true;
+ return MailConstants.DATA_START_SUCCESS;
+
+ } else if (input.equalsIgnoreCase("QUIT")) {
+ dataWriting = true;
+ transmitionEnd = true;
+ return MailConstants.COMMAND_TRANSMISSION_END;
+
+ } else if (input.equals(".")) {
+ dataWriting = false;
+ return MailConstants.DATA_END_SUCCESS;
+ } else if (input.equals("") && !bodyData) {
+ bodyData = true;
+ return null;
+ } else if(mail!=null && dataWriting){
+ temp += input + "\n";
+ try {
+ if (bodyData) {
+ mail.setContent(input, "text/plain");
+ } else {
+ mail.addHeaderLine(input);
+ }
+ } catch (MessagingException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ return null;
+
+ }else {
+ return MailConstants.COMMAND_UNKNOWN;
+ }
+
+ }
+
+ //transmission is over. setting to exit
+ private void exitWorker() throws IOException {
+ reader.close();
+ writer.close();
+ runThread = false;
+ }
+
+ //initializing the client by sending the initial message.
+ private void initializeClient() throws IOException {
+ if(writer!=null){
+ send("220 SMTP Server IS UP");
+ }
+ }
+}
\ No newline at end of file
Added: webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/server/Storage.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/server/Storage.java?rev=202139&view=auto
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/server/Storage.java (added)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/server/Storage.java Mon Jun 27 23:38:07 2005
@@ -0,0 +1,40 @@
+package org.apache.axis.transport.mail.server;
+
+/**
+ * Inmemory storage to used to store the mails.
+ * @author Chamil Thanthrimudalige.
+ */
+
+import java.util.ArrayList;
+import java.util.Hashtable;
+
+import javax.mail.internet.MimeMessage;
+
+public class Storage {
+ private ArrayList mails = new ArrayList();
+
+ private Hashtable users = new Hashtable();
+
+
+ public Storage(){
+ }
+
+ public void addMail(String user, MimeMessage mail){
+ ArrayList curMailBox = null;
+ if (users.containsKey(user)){
+ curMailBox = (ArrayList)users.get(user);
+ } else {
+ curMailBox = new ArrayList();
+ users.put(user, curMailBox);
+ }
+ curMailBox.add(mail);
+ }
+
+ public ArrayList popUserMails(String user){
+ ArrayList usrMailBox = new ArrayList(); // This will return a emty list when the user has no mails or no mail box.
+ if (users.containsKey(user)){
+ usrMailBox = (ArrayList)users.get(user);
+ }
+ return usrMailBox;
+ }
+}
\ No newline at end of file
Modified: webservices/axis/trunk/java/modules/samples/maven.xml
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/maven.xml?rev=202139&r1=202138&r2=202139&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/samples/maven.xml (original)
+++ webservices/axis/trunk/java/modules/samples/maven.xml Mon Jun 27 23:38:07 2005
@@ -21,6 +21,16 @@
<mkdir dir="target/test-resources/chuncked-enabledRepository"/>
<copy file="test/org/apache/axis/engine/chuncking-enabled-axis2.xml"
tofile="target/test-resources/chuncked-enabledRepository/axis2.xml"/>
+
+ <!-- Create Mail transport enabled Repository -->
+ <mkdir dir="target/test-resources/mail-transport-enabledRepository"/>
+ <mkdir dir="target/test-resources/mail-transport-enabledRepository/modules"/>
+ <copy file="test/org/apache/axis/mail/mail-enabled-axis2.xml"
+ tofile="target/test-resources/mail-transport-enabledRepository/axis2.xml"/>
+ <copy file="../addressing/target/addressing.mar"
+ tofile="target/test-resources/mail-transport-enabledRepository/modules/addressing.mar"/>
+
+
</postGoal>
<postGoal name="test:test">
Modified: webservices/axis/trunk/java/modules/samples/test/org/apache/axis/mail/MailOneWayRawXMLTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/test/org/apache/axis/mail/MailOneWayRawXMLTest.java?rev=202139&r1=202138&r2=202139&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/samples/test/org/apache/axis/mail/MailOneWayRawXMLTest.java (original)
+++ webservices/axis/trunk/java/modules/samples/test/org/apache/axis/mail/MailOneWayRawXMLTest.java Mon Jun 27 23:38:07 2005
@@ -18,6 +18,8 @@
//todo
+import java.io.File;
+
import javax.xml.namespace.QName;
import junit.framework.TestCase;
@@ -31,10 +33,7 @@
import org.apache.axis.context.MessageContext;
import org.apache.axis.context.ServiceContext;
import org.apache.axis.description.OperationDescription;
-import org.apache.axis.description.ParameterImpl;
import org.apache.axis.description.ServiceDescription;
-import org.apache.axis.description.TransportInDescription;
-import org.apache.axis.description.TransportOutDescription;
import org.apache.axis.engine.AxisConfiguration;
import org.apache.axis.engine.AxisFault;
import org.apache.axis.engine.MessageReceiver;
@@ -44,13 +43,17 @@
import org.apache.axis.om.OMNamespace;
import org.apache.axis.soap.SOAPEnvelope;
import org.apache.axis.soap.SOAPFactory;
-import org.apache.axis.transport.mail.MailTransportSender;
import org.apache.axis.transport.mail.SimpleMailListener;
+import org.apache.axis.transport.mail.server.MailConstants;
+import org.apache.axis.transport.mail.server.MailServer;
import org.apache.axis.util.Utils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class MailOneWayRawXMLTest extends TestCase {
+ private static final String MAIL_TRANSPORT_ENABLED_REPO_PATH = Constants.TESTING_PATH+ "mail-transport-enabledRepository";
+
+
private EndpointReference targetEPR =
new EndpointReference(
AddressingConstants.WSA_TO,
@@ -77,9 +80,11 @@
}
protected void setUp() throws Exception {
+ ConfigurationContext configContext = createNewConfigurationContext();
+ //start the mail server
+ MailServer server = new MailServer(configContext,MailConstants.POP_SERVER_PORT,MailConstants.SMTP_SERVER_PORT);
+
SimpleMailListener ml = new SimpleMailListener();
-
- ConfigurationContext configContext = createConfigurationContext();
ml.init(
configContext,
configContext.getAxisConfiguration().getTransportIn(
@@ -114,7 +119,7 @@
}
public void testOneWay() throws Exception {
- ConfigurationContext configContext = createConfigurationContext();
+ ConfigurationContext configContext = createNewConfigurationContext();
ServiceDescription service = new ServiceDescription(serviceName);
OperationDescription operation = new OperationDescription(operationName);
operation.setMessageReciever(new MessageReceiver() {
@@ -183,33 +188,76 @@
// }
//
// }
- public ConfigurationContext createConfigurationContext() throws Exception {
+ public ConfigurationContext createNewConfigurationContext() throws Exception {
+ File file = new File(MAIL_TRANSPORT_ENABLED_REPO_PATH);
+ assertTrue("Mail repository directory "+ file.getAbsolutePath() + " does not exsist",file.exists());
ConfigurationContextFactory builder = new ConfigurationContextFactory();
ConfigurationContext configContext =
- builder.buildConfigurationContext(org.apache.axis.Constants.TESTING_REPOSITORY);
-
- TransportInDescription transportIn =
- new TransportInDescription(new QName(Constants.TRANSPORT_MAIL));
- transportIn.addParameter(new ParameterImpl("transport.mail.pop3.host", "127.0.0.1"));
- transportIn.addParameter(new ParameterImpl("transport.mail.pop3.user", "axis2"));
- transportIn.addParameter(new ParameterImpl("transport.mail.pop3.password", "axis2"));
- transportIn.addParameter(new ParameterImpl("transport.mail.pop3.port", "110"));
- transportIn.addParameter(
- new ParameterImpl("transport.mail.replyToAddress", "axis2@127.0.0.1"));
- transportIn.setReciver(new SimpleMailListener());
-
- TransportOutDescription transportOut =
- new TransportOutDescription(new QName(Constants.TRANSPORT_MAIL));
-
- transportOut.addParameter(new ParameterImpl("transport.mail.smtp.host", "127.0.0.1"));
- transportOut.addParameter(new ParameterImpl("transport.mail.smtp.user", "axis2"));
- transportOut.addParameter(new ParameterImpl("transport.mail.smtp.password", "axis2"));
- transportOut.addParameter(new ParameterImpl("transport.mail.smtp.port", "25"));
- transportOut.setSender(new MailTransportSender());
-
- configContext.getAxisConfiguration().addTransportIn(transportIn);
- configContext.getAxisConfiguration().addTransportOut(transportOut);
+ builder.buildConfigurationContext(file.getAbsolutePath());
return configContext;
}
+
+
+// // <code for axis configuration setup and service setup>
+// private EndpointReference targetEPR =
+// new EndpointReference(
+// AddressingConstants.WSA_TO,
+// "axis2-server@127.0.0.1" + "/axis/services/EchoXMLService/echoOMElement");
+// private QName serviceName = new QName("EchoXMLService");
+// private QName operationName = new QName("echoOMElement");
+// private QName transportName = new QName("http://localhost/my", "NullTransport");
+//
+// protected void setUpServer() {
+// try {
+// ConfigurationContext configContext = createServerConfigurationContext();
+// configContext.getAxisConfiguration().engageModule(new QName(Constants.MODULE_ADDRESSING));
+// ServiceDescription service =
+// Utils.createSimpleService(serviceName, Echo.class.getName(), operationName);
+// configContext.getAxisConfiguration().addService(service);
+// Utils.resolvePhases(configContext.getAxisConfiguration(), service);
+// ServiceContext serviceContext = configContext.createServiceContext(serviceName);
+// MailServer.configurationContext = configContext;
+// } catch (PhaseException e) {
+// // TODO Auto-generated catch block
+// e.printStackTrace();
+// } catch (AxisFault e) {
+// // TODO Auto-generated catch block
+// e.printStackTrace();
+// } catch (Exception e) {
+// // TODO Auto-generated catch block
+// e.printStackTrace();
+// }
+// }
+//
+// public ConfigurationContext createServerConfigurationContext() throws Exception {
+// ConfigurationContextFactory builder = new ConfigurationContextFactory();
+// ConfigurationContext configContext =
+// builder.buildConfigurationContext(org.apache.axis.Constants.TESTING_REPOSITORY);
+//
+// TransportInDescription transportIn =
+// new TransportInDescription(new QName(Constants.TRANSPORT_MAIL));
+// transportIn.addParameter(new ParameterImpl("transport.mail.pop3.host", "127.0.0.1"));
+// transportIn.addParameter(new ParameterImpl("transport.mail.pop3.user", "axis2-server"));
+// transportIn.addParameter(new ParameterImpl("transport.mail.pop3.password", "axis2"));
+// transportIn.addParameter(new ParameterImpl("transport.mail.pop3.port", "1134"));
+// transportIn.addParameter(
+// new ParameterImpl("transport.mail.replyToAddress", "axis2-server@127.0.0.1"));
+// transportIn.setReciver(new SimpleMailListener());
+//
+// TransportOutDescription transportOut =
+// new TransportOutDescription(new QName(Constants.TRANSPORT_MAIL));
+//
+// transportOut.addParameter(new ParameterImpl("transport.mail.smtp.host", "127.0.0.1"));
+// transportOut.addParameter(new ParameterImpl("transport.mail.smtp.user", "axis2-server"));
+// transportOut.addParameter(new ParameterImpl("transport.mail.smtp.password", "axis2"));
+// transportOut.addParameter(new ParameterImpl("transport.mail.smtp.port", "1049"));
+// transportOut.setSender(new MailTransportSender());
+//
+// configContext.getAxisConfiguration().addTransportIn(transportIn);
+// configContext.getAxisConfiguration().addTransportOut(transportOut);
+// return configContext;
+// }
+// // </code for axis engine setup and service setup>
+
}
Added: webservices/axis/trunk/java/modules/samples/test/org/apache/axis/mail/mail-enabled-axis2.xml
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/test/org/apache/axis/mail/mail-enabled-axis2.xml?rev=202139&view=auto
==============================================================================
--- webservices/axis/trunk/java/modules/samples/test/org/apache/axis/mail/mail-enabled-axis2.xml (added)
+++ webservices/axis/trunk/java/modules/samples/test/org/apache/axis/mail/mail-enabled-axis2.xml Mon Jun 27 23:38:07 2005
@@ -0,0 +1,89 @@
+<axisconfig name="AxisJava2.0">
+ <!-- ================================================= -->
+ <!-- Parameters -->
+ <!-- ================================================= -->
+ <parameter name="hotdeployment" locked="xsd:false">true</parameter>
+ <parameter name="hotupdate" locked="xsd:false">false</parameter>
+ <!-- Uncomment this to enable REST support -->
+<!-- <parameter name="eanbleREST" locked="xsd:false">true</parameter>-->
+
+
+
+ <parameter name="userName" locked="xsd:false">admin</parameter>
+ <parameter name="password" locked="xsd:false">axis2</parameter>
+
+
+
+ <!-- ================================================= -->
+ <!-- Message Receivers -->
+ <!-- ================================================= -->
+ <!-- This is the Deafult Message Receiver for the Request Response style Operations -->
+ <messageReceiver mep="INOUT" class="org.apache.axis.receivers.RawXMLINOutMessageReceiver"/>
+
+ <!-- ================================================= -->
+ <!-- Transport Ins -->
+ <!-- ================================================= -->
+ <transportReceiver name="http" class="org.apache.axis.transport.http.SimpleHTTPServer">
+ <parameter name="port" locked="xsd:false">6060</parameter>
+ </transportReceiver>
+
+ <transportReceiver name="mail" class="org.apache.axis.transport.mail.SimpleMailListener">
+ <parameter name="transport.mail.pop3.host" locked="xsd:false">127.0.0.1</parameter>
+ <parameter name="transport.mail.pop3.user" locked="xsd:false">axis2</parameter>
+ <parameter name="transport.mail.pop3.password" locked="xsd:false">axis2</parameter>
+ <parameter name="transport.mail.pop3.port" locked="xsd:false">1134</parameter>
+ <parameter name="transport.mail.replyToAddress" locked="xsd:false">axis2@127.0.0.1</parameter>
+ </transportReceiver>
+
+ <transportReceiver name="tcp" class="org.apache.axis.transport.tcp.TCPServer">
+ <parameter name="port" locked="xsd:false">6060</parameter>
+ </transportReceiver>
+
+ <!-- ================================================= -->
+ <!-- Transport Outs -->
+ <!-- ================================================= -->
+
+ <transportSender name="http" class="org.apache.axis.transport.http.HTTPTransportSender"/>
+ <transportSender name="tcp" class="org.apache.axis.transport.tcp.TCPTransportSender"/>
+ <transportSender name="local" class="org.apache.axis.transport.local.LocalTransportSender"/>
+
+
+ <transportSender name="mail" class="org.apache.axis.transport.mail.MailTransportSender">
+ <parameter name="transport.mail.smtp.host" locked="xsd:false">127.0.0.1</parameter>
+ <parameter name="transport.mail.smtp.user" locked="xsd:false">axis2</parameter>
+ <parameter name="transport.mail.smtp.password" locked="xsd:false">axis2</parameter>
+ <parameter name="transport.mail.smtp.port" locked="xsd:false">1049</parameter>
+ </transportSender>
+
+ <!-- ================================================= -->
+ <!-- Global Modules -->
+ <!-- ================================================= -->
+ <!-- Uncomment this to enable Addressing -->
+ <module ref="addressing"/>
+
+ <!-- ================================================= -->
+ <!-- Phases -->
+ <!-- ================================================= -->
+ <phaseOrder type="inflow">
+ <!-- System pre defined phases -->
+ <phase name="TransportIn"/>
+ <phase name="PreDispatch"/>
+ <phase name="Dispatch"/>
+ <phase name="PostDispatch"/>
+ <!-- System pre defined phases -->
+ <!-- After Postdispatch phase module author or or service author can add any phase he want -->
+ <phase name="userphase1"/>
+ </phaseOrder>
+ <phaseOrder type="outflow">
+ <!-- user can add his own phases to this area -->
+ <phase name="userphase1"/>
+ </phaseOrder>
+ <phaseOrder type="INfaultflow">
+ <!-- user can add his own phases to this area -->
+ <phase name="userphase1"/>
+ </phaseOrder>
+ <phaseOrder type="Outfaultflow">
+ <!-- user can add his own phases to this area -->
+ <phase name="userphase1"/>
+ </phaseOrder>
+</axisconfig>