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>