You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@synapse.apache.org by as...@apache.org on 2008/09/15 13:24:15 UTC
svn commit: r695434 - in /synapse/trunk/java/modules:
core/src/main/java/org/apache/synapse/util/
transports/src/main/java/org/apache/synapse/transport/mail/
Author: asankha
Date: Mon Sep 15 04:24:14 2008
New Revision: 695434
URL: http://svn.apache.org/viewvc?rev=695434&view=rev
Log:
rever my changes of 694732
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/MessageHelper.java
synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/mail/MailTransportListener.java
synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/mail/MailUtils.java
synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/mail/PollTableEntry.java
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/MessageHelper.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/MessageHelper.java?rev=695434&r1=695433&r2=695434&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/MessageHelper.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/MessageHelper.java Mon Sep 15 04:24:14 2008
@@ -174,10 +174,7 @@
Attachments attachments = ori.getAttachmentMap();
if (attachments != null && attachments.getAllContentIDs().length > 0) {
String[] cIDs = attachments.getAllContentIDs();
- String soapPart = null;
- try {
- soapPart = attachments.getSOAPPartContentID();
- } catch (Exception ignore) {}
+ String soapPart = attachments.getSOAPPartContentID();
for (String cID : cIDs) {
if (!cID.equals(soapPart)) {
newMC.addAttachment(cID, attachments.getDataHandler(cID));
Modified: synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/mail/MailTransportListener.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/mail/MailTransportListener.java?rev=695434&r1=695433&r2=695434&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/mail/MailTransportListener.java (original)
+++ synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/mail/MailTransportListener.java Mon Sep 15 04:24:14 2008
@@ -57,7 +57,6 @@
public static final String DELETE = "DELETE";
public static final String MOVE = "MOVE";
- public static final String LEAVE = "LEAVE";
/**
* Initializes the Mail transport
@@ -197,7 +196,7 @@
} catch (MessagingException me) {
processFailure("Error checking mail for account : " +
emailAddress + " :: " + me.getMessage(), me, entry);
-
+
} finally {
try {
@@ -395,16 +394,12 @@
case PollTableEntry.SUCCSESSFUL:
if (entry.getActionAfterProcess() == PollTableEntry.MOVE) {
moveToFolder = entry.getMoveAfterProcess();
- } else if (entry.getActionAfterProcess() == PollTableEntry.LEAVE) {
- return;
}
break;
case PollTableEntry.FAILED:
if (entry.getActionAfterFailure() == PollTableEntry.MOVE) {
moveToFolder = entry.getMoveAfterFailure();
- } else if (entry.getActionAfterFailure() == PollTableEntry.LEAVE) {
- return;
}
break;
case PollTableEntry.NONE:
@@ -474,13 +469,11 @@
String option = ParamUtils.getOptionalParam(
service, MailConstants.TRANSPORT_MAIL_ACTION_AFTER_PROCESS);
entry.setActionAfterProcess(
- MOVE.equals(option) ? PollTableEntry.MOVE :
- LEAVE.equals(option) ? PollTableEntry.LEAVE : PollTableEntry.DELETE);
+ MOVE.equals(option) ? PollTableEntry.MOVE : PollTableEntry.DELETE);
option = ParamUtils.getOptionalParam(
service, MailConstants.TRANSPORT_MAIL_ACTION_AFTER_FAILURE);
entry.setActionAfterFailure(
- MOVE.equals(option) ? PollTableEntry.MOVE :
- LEAVE.equals(option) ? PollTableEntry.LEAVE : PollTableEntry.DELETE);
+ MOVE.equals(option) ? PollTableEntry.MOVE : PollTableEntry.DELETE);
String moveFolderAfterProcess = ParamUtils.getOptionalParam(
service, MailConstants.TRANSPORT_MAIL_MOVE_AFTER_PROCESS);
Modified: synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/mail/MailUtils.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/mail/MailUtils.java?rev=695434&r1=695433&r2=695434&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/mail/MailUtils.java (original)
+++ synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/mail/MailUtils.java Mon Sep 15 04:24:14 2008
@@ -20,39 +20,20 @@
package org.apache.synapse.transport.mail;
import org.apache.synapse.transport.base.BaseUtils;
-import org.apache.synapse.transport.base.BaseConstants;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.commons.lang.StringUtils;
import org.apache.axiom.soap.SOAP12Constants;
import org.apache.axiom.soap.SOAP11Constants;
-import org.apache.axiom.soap.SOAPFactory;
-import org.apache.axiom.soap.SOAPEnvelope;
-import org.apache.axiom.soap.impl.llom.soap11.SOAP11Factory;
-import org.apache.axiom.om.impl.builder.StAXBuilder;
-import org.apache.axiom.om.impl.llom.OMTextImpl;
-import org.apache.axiom.om.OMElement;
-import org.apache.axis2.context.MessageContext;
-import org.apache.axis2.AxisFault;
-import org.apache.axis2.Constants;
-import org.apache.axis2.description.Parameter;
-import org.apache.axis2.builder.BuilderUtil;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
-import javax.mail.Part;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeBodyPart;
-import javax.mail.internet.ContentType;
-import javax.mail.internet.ParseException;
-import javax.xml.namespace.QName;
-import javax.xml.stream.XMLStreamException;
-import javax.activation.DataHandler;
-
-import java.io.*;
-import java.util.List;
-import java.util.ArrayList;
+
+import java.io.ByteArrayOutputStream;
+import java.io.InputStream;
+import java.io.IOException;
public class MailUtils extends BaseUtils {
@@ -119,7 +100,7 @@
handleException("Error creating an input stream to : " +
((Message) message).getMessageNumber(), e);
}
-
+
return null;
}
@@ -164,161 +145,4 @@
}
}
- @Override
- public void setSOAPEnvelope(Object message, MessageContext msgContext, String contentType) throws AxisFault {
-
- if (message instanceof MimeMessage &&
- (contentType.toLowerCase().contains("multipart/alternative") ||
- contentType.toLowerCase().contains("multipart/mixed"))) {
-
- MultipartParser mp = new MultipartParser((MimeMessage) message);
- try {
- mp.parse();
- } catch (Exception e) {
- throw new AxisFault("Error parsing multipart message", e);
- }
-
- SOAPFactory soapFactory = new SOAP11Factory();
- SOAPEnvelope envelope = null;
- StAXBuilder builder = null;
- String charSetEnc = null;
-
- try {
- if (mp.getMainTextContentType() != null) {
- charSetEnc = new ContentType(mp.getMainTextContentType()).getParameter("charset");
- }
- } catch (ParseException ignore) {
- charSetEnc = MessageContext.DEFAULT_CHAR_SET_ENCODING;
- }
-
- try {
- // select primary message - in the following order of priority
- // SOAP 1.2, SOAP 1.1 / POX, text/plain, text/html
- if (mp.getMainTextContentType().contains(SOAP12Constants.SOAP_12_CONTENT_TYPE) ||
- mp.getMainTextContentType().contains((SOAP11Constants.SOAP_11_CONTENT_TYPE))) {
- builder = BuilderUtil.getSOAPBuilder(
- new ByteArrayInputStream(mp.getMainText().getBytes(charSetEnc)), charSetEnc);
- envelope = (SOAPEnvelope) builder.getDocumentElement();
-
- } else if (mp.getMainTextContentType().toLowerCase().contains(("text/plain"))) {
-
- // pick the name of the element that will act as the wrapper element for the
- // non-xml payload. If service doesn't define one, default
- Parameter wrapperParam = msgContext.getAxisService().
- getParameter(BaseConstants.WRAPPER_PARAM);
-
- QName wrapperQName = null;
- OMElement wrapper = null;
- if (wrapperParam != null) {
- wrapperQName = BaseUtils.getQNameFromString(wrapperParam.getValue());
- }
-
- OMTextImpl textData = (OMTextImpl) soapFactory.createOMText(mp.getMainText());
-
- if (wrapperQName == null) {
- wrapperQName = BaseConstants.DEFAULT_TEXT_WRAPPER;
- }
- wrapper = soapFactory.createOMElement(wrapperQName, null);
- wrapper.addChild(textData);
-
- envelope = soapFactory.getDefaultEnvelope();
- envelope.getBody().addChild(wrapper);
- }
- } catch (XMLStreamException e) {
- handleException("Error building SOAP or POX payload", e);
- } catch (UnsupportedEncodingException e) {
- handleException("Encoding error building SOAP or POX payload", e);
- }
-
- // Set the encoding scheme in the message context
- msgContext.setProperty(Constants.Configuration.CHARACTER_SET_ENCODING, charSetEnc);
-
- String charEncOfMessage =
- builder == null ? null :
- builder.getDocument() == null ? null : builder.getDocument().getCharsetEncoding();
-
- if (StringUtils.isNotBlank(charEncOfMessage) &&
- StringUtils.isNotBlank(charSetEnc) &&
- !charSetEnc.equalsIgnoreCase(charEncOfMessage)) {
- handleException("Charset encodings differs from whats used in the payload");
- }
-
- msgContext.setEnvelope(envelope);
-
- int cid = 1;
- for (DataHandler dh : mp.getAttachments()) {
- msgContext.addAttachment(Integer.toString(cid++), dh);
- }
-
- } else {
- super.setSOAPEnvelope(message, msgContext, contentType);
- }
- }
-
- private class MultipartParser {
-
- final MimeMessage msg;
- private String mainText = null;
- private String mainTextContentType = null;
- private List<DataHandler> attachments = new ArrayList<DataHandler>();
-
- MultipartParser(MimeMessage msg) {
- this.msg = msg;
- }
-
- public void parse() throws MessagingException, IOException {
- Multipart mp = (Multipart) msg.getContent();
- for (int i=0; i<mp.getCount(); i++) {
- buildContentMap(mp.getBodyPart(i));
- }
- }
-
- private void buildContentMap(Part p) throws MessagingException, IOException {
-
- if (p.isMimeType("multipart/alternative")) {
-
- Multipart mp = (Multipart) p.getContent();
- for (int i = 0; i < mp.getCount(); i++) {
-
- Part bp = mp.getBodyPart(i);
- processBodyPart(bp);
- }
-
- } else if (p.isMimeType("multipart/*")) {
- Multipart mp = (Multipart) p.getContent();
- for (int i = 0; i < mp.getCount(); i++) {
- buildContentMap(mp.getBodyPart(i));
- }
-
- } else {
- processBodyPart(p);
- }
- }
-
- private void processBodyPart(Part bp) throws MessagingException, IOException {
- if (bp.isMimeType(SOAP12Constants.SOAP_12_CONTENT_TYPE) ||
- bp.isMimeType(SOAP11Constants.SOAP_11_CONTENT_TYPE) ||
- bp.isMimeType("text/plain")) {
-
- if (mainText == null) {
- mainText = (String) bp.getContent();
- mainTextContentType = bp.getContentType();
- }
- } else {
- attachments.add(bp.getDataHandler());
- }
- }
-
- public String getMainText() {
- return mainText;
- }
-
- public String getMainTextContentType() {
- return mainTextContentType;
- }
-
- public List<DataHandler> getAttachments() {
- return attachments;
- }
- }
}
Modified: synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/mail/PollTableEntry.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/mail/PollTableEntry.java?rev=695434&r1=695433&r2=695434&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/mail/PollTableEntry.java (original)
+++ synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/mail/PollTableEntry.java Mon Sep 15 04:24:14 2008
@@ -40,7 +40,6 @@
// operation after mail check
public static final int DELETE = 0;
public static final int MOVE = 1;
- public static final int LEAVE = 2;
/** The email address mapped to the service */
private InternetAddress emailAddress = null;