You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commons-dev@ws.apache.org by "Tim Mitchell (JIRA)" <ji...@apache.org> on 2009/03/10 10:54:50 UTC

[jira] Created: (WSCOMMONS-448) Add access to the Content Transfer Encoding value from DataHandler

Add access to the Content Transfer Encoding value from DataHandler
------------------------------------------------------------------

                 Key: WSCOMMONS-448
                 URL: https://issues.apache.org/jira/browse/WSCOMMONS-448
             Project: WS-Commons
          Issue Type: Improvement
          Components: AXIOM
    Affects Versions: Axiom 1.2.8
            Reporter: Tim Mitchell
             Fix For: Axiom 1.2.8


We have a need to be able to identify how an SWA attachment was encoded in the message, by accessing the Content Transfer Encoding. Currently the DataHandler does contain this info, but there is no method you can use to get to the data.
I have created a fix and an accompanying testcase. Please could you review the changes and if you're happy please could you integrate the fix. 
I intend to post on the Axiom mailing list to broadcast my suggestion.

The diff of the fixes are as follows. Please let me know if you would prefer me to post a zip of the changes:

Index: modules/axiom-api/src/main/java/org/apache/axiom/attachments/impl/PartOnMemoryEnhanced.java
===================================================================
--- modules/axiom-api/src/main/java/org/apache/axiom/attachments/impl/PartOnMemoryEnhanced.java	(revision 749312)
+++ modules/axiom-api/src/main/java/org/apache/axiom/attachments/impl/PartOnMemoryEnhanced.java	(working copy)
@@ -19,21 +19,22 @@
 
 package org.apache.axiom.attachments.impl;
 
-import org.apache.axiom.attachments.utils.BAAInputStream;
-import org.apache.axiom.om.OMException;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.ArrayList;
+import java.util.Hashtable;
 
 import javax.activation.DataHandler;
 import javax.activation.DataSource;
 import javax.mail.MessagingException;
 import javax.mail.internet.MimeUtility;
 
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.ArrayList;
-import java.util.Hashtable;
+import org.apache.axiom.attachments.utils.BAAInputStream;
+import org.apache.axiom.om.OMDataHandler;
+import org.apache.axiom.om.OMException;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 
 /**
  * PartOnMemoryEnhanced stores the attachment in memory (in non-contigous byte arrays)
@@ -83,7 +84,7 @@
     }
     
     
-    class MyDataHandler extends DataHandler {
+    class MyDataHandler extends DataHandler implements OMDataHandler {
 
         DataSource ds;
         public MyDataHandler(DataSource ds) {
@@ -99,6 +100,10 @@
                 BufferUtils.inputStream2OutputStream(is, os);
             }
         }
+        
+        public String getContentTransferEncoding() throws MessagingException {
+        	return PartOnMemoryEnhanced.this.getContentTransferEncoding();
+        }
     }
     
     /**
Index: modules/axiom-api/src/main/java/org/apache/axiom/om/OMDataHandler.java
===================================================================
--- modules/axiom-api/src/main/java/org/apache/axiom/om/OMDataHandler.java	(revision 0)
+++ modules/axiom-api/src/main/java/org/apache/axiom/om/OMDataHandler.java	(revision 0)
@@ -0,0 +1,17 @@
+package org.apache.axiom.om;
+
+import javax.mail.MessagingException;
+
+
+/**
+ * Interface to allow the access the value of the content transfer encoding that the 
+ * javax.activation.DataHandler doesn't allow you to do. 
+ */
+public interface OMDataHandler {
+	
+	/**
+     * @return A String containing the value of the content transfer encoding header.
+     */
+    public String getContentTransferEncoding() throws MessagingException;
+
+}
Index: modules/axiom-tests/src/test/java/org/apache/axiom/attachments/AttachmentsTest.java
===================================================================
--- modules/axiom-tests/src/test/java/org/apache/axiom/attachments/AttachmentsTest.java	(revision 749312)
+++ modules/axiom-tests/src/test/java/org/apache/axiom/attachments/AttachmentsTest.java	(working copy)
@@ -19,23 +19,24 @@
 
 package org.apache.axiom.attachments;
 
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Arrays;
+import java.util.Set;
+
+import javax.activation.DataHandler;
+
 import org.apache.axiom.attachments.utils.IOUtils;
 import org.apache.axiom.om.AbstractTestCase;
+import org.apache.axiom.om.OMDataHandler;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMOutputFormat;
 import org.apache.axiom.om.impl.MTOMXMLStreamWriter;
 import org.apache.axiom.om.impl.builder.XOPAwareStAXOMBuilder;
 import org.apache.axiom.om.util.CommonUtils;
 
-import javax.activation.DataHandler;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Arrays;
-import java.util.Set;
-
 public class AttachmentsTest extends AbstractTestCase {
 
     public AttachmentsTest(String testName) {
@@ -43,6 +44,7 @@
     }
 
     String inMimeFileName = "mtom/MTOMAttachmentStream.bin";
+    String inMimeFileName2 = "swa/SWAAttachmentBase64Stream.bin";
     String img1FileName = "mtom/img/test.jpg";
     String img2FileName = "mtom/img/test2.jpg";
 
@@ -56,6 +58,14 @@
                         "start-info=\"application/soap+xml\"; " +
                         "charset=UTF-8;" +
                         "action=\"mtomSample\"";
+    
+    String contentTypeString2 =
+				        "multipart/related; " +
+				        "boundary=\"" + boundary + "\"; " +
+				        "type=\"text/xml\"; " +
+				        "start=\"<" + start +">\"; " +
+				        "start-info=\"text/xml\"; " +
+				        "charset=UTF-8;";
 
     public void testMIMEHelper() {
     }
@@ -283,7 +293,29 @@
         // Compare data across streams
         compareStreams(dataIs, expectedDataIs);
     }
+    
+    public void testGetContentTransferEncoding() throws Exception {
 
+        InputStream inStream = getTestResource(inMimeFileName);
+        Attachments attachments = new Attachments(inStream, contentTypeString);
+        DataHandler dh = attachments
+                .getDataHandler("2.urn:uuid:A3ADBAEE51A1A87B2A11443668160994@apache.org");
+        
+        assertNotNull("DataHandler is null", dh);
+        assertTrue("DataHandler is not an instance of OMDataHandler", dh instanceof OMDataHandler);
+        String encodingType = ((OMDataHandler)dh).getContentTransferEncoding();
+        assertTrue("Encoding Type not binary: " + encodingType, "binary".equals(encodingType));
+        	
+        InputStream inStream2 = getTestResource(inMimeFileName2);
+        Attachments attachments2 = new Attachments(inStream2, contentTypeString2);
+        dh = attachments2.getDataHandler("urn:uuid:F8FB8F9F7B7B7B678A1236015197849");
+        
+        assertNotNull("DataHandler is null", dh);
+        assertTrue("DataHandler is not an instance of OMDataHandler", dh instanceof OMDataHandler);
+        encodingType = ((OMDataHandler)dh).getContentTransferEncoding();
+        assertTrue("Encoding Type not base64: " + encodingType, "base64".equals(encodingType));
+    }
+
     public void testNonExistingMIMEPart() throws Exception {
 
         InputStream inStream = getTestResource(inMimeFileName);
Index: modules/axiom-tests/test-resources/swa/SWAAttachmentBase64Stream.bin
===================================================================
--- modules/axiom-tests/test-resources/swa/SWAAttachmentBase64Stream.bin	(revision 0)
+++ modules/axiom-tests/test-resources/swa/SWAAttachmentBase64Stream.bin	(revision 0)
@@ -0,0 +1,256 @@
+--MIMEBoundaryurn:uuid:A3ADBAEE51A1A87B2A11443668160701
+Content-Type: text/xml; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+Content-ID: <0....@apache.org>
+
+<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header xmlns:wsa="http://www.w3.org/2005/08/addressing"><wsa:To>http://localhost:7081/axis2/services/SWAService</wsa:To><wsa:MessageID>urn:uuid:F8FB8F9F7B7B7B678A1236015197880</wsa:MessageID><wsa:Action>sendString</wsa:Action></soapenv:Header><soapenv:Body><SWAService:sendString xmlns:SWAService="http://test"><SWAService:clientString>Client Test</SWAService:clientString></SWAService:sendString><soapenv:SWAAttachment soapenv:href="cid:urn:uuid:F8FB8F9F7B7B7B678A1236015197849"></soapenv:SWAAttachment></soapenv:Body></soapenv:Envelope>
+--MIMEBoundaryurn:uuid:A3ADBAEE51A1A87B2A11443668160701
+Content-Type: application/octet-stream
+Content-Transfer-Encoding: base64
+Content-ID: <urn:uuid:F8FB8F9F7B7B7B678A1236015197849>
+
+/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB
+AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEB
+AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCABgAKcDASIA
+AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA
+AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3
+ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm
+p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA
+AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx
+BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK
+U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3
+uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD++iii
+igAooooAKKKKACiiigAopGYKCTwFBLMSAAB1PPpgk+36/EP7Rv8AwUV/ZL/Zdguo/iX8TIrvX00D
+/hItO8K+DNMvvFWqaxav4g0nwrDbQavZxxeCdHu28Qa/oVhdt4t8WeHNP0SHV7DWPEV/o+gTf2su
+dSrSox5qtSFONm7zkor3Vd6tq9lrZa2OrB4LGZhiKWEwGExONxVacKdLD4WjUxFapUqTUKcIU6UZ
+TlKc5RjFJNuTSWrPt+j19uvtX8o/xt/4OKtVuNQtLX4F+Ffh3pOivP4zs7zVdWs/EHxSuNTs/Dum
+td2uueHPFem618PvC2kSXpntr60t4/DHxU086HE2sTTSXWpaB4f1f89/iL/wXo/a08SIlla+MPG1
+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
+--MIMEBoundaryurn:uuid:A3ADBAEE51A1A87B2A11443668160701--
\ No newline at end of file
Index: modules/axiom-tests/pom.xml
===================================================================
--- modules/axiom-tests/pom.xml	(revision 749312)
+++ modules/axiom-tests/pom.xml	(working copy)
@@ -134,8 +134,8 @@
                 <artifactId>maven-surefire-plugin</artifactId>
                 <configuration>
                     <includes>
-                        <include>**/*Test.java</include>
-                        <include>**/*TestCase.java</include>
+                        <include>**/AttachmentsTest.java</include>
+                        <!--include>**/*TestCase.java</include-->
                     </includes>
                     <excludes>
                         <exclude>**/*AbstractOMSerializationTest.java</exclude>



-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (WSCOMMONS-448) Add access to the Content Transfer Encoding value from DataHandler

Posted by "Andreas Veithen (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/WSCOMMONS-448?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Andreas Veithen updated WSCOMMONS-448:
--------------------------------------

    Fix Version/s: Axiom 1.2.10
                       (was: Axiom 1.2.9)

> Add access to the Content Transfer Encoding value from DataHandler
> ------------------------------------------------------------------
>
>                 Key: WSCOMMONS-448
>                 URL: https://issues.apache.org/jira/browse/WSCOMMONS-448
>             Project: WS-Commons
>          Issue Type: Improvement
>          Components: AXIOM
>    Affects Versions: Axiom 1.2.8
>            Reporter: Tim Mitchell
>             Fix For: Axiom 1.2.10
>
>         Attachments: ContentTransferEncodingDiff.txt
>
>
> We have a need to be able to identify how an SWA attachment was encoded in the message, by accessing the Content Transfer Encoding. Currently the DataHandler does contain this info, but there is no method you can use to get to the data.
> I have created a fix and an accompanying testcase. Please could you review the changes and if you're happy please could you integrate the fix. 
> I intend to post on the Axiom mailing list to broadcast my suggestion.
> I've attached the diff details as an attachment.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (WSCOMMONS-448) Add access to the Content Transfer Encoding value from DataHandler

Posted by "Andreas Veithen (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/WSCOMMONS-448?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Andreas Veithen updated WSCOMMONS-448:
--------------------------------------

    Fix Version/s:     (was: Axiom 1.2.8)
                   Axiom 1.2.9

> Add access to the Content Transfer Encoding value from DataHandler
> ------------------------------------------------------------------
>
>                 Key: WSCOMMONS-448
>                 URL: https://issues.apache.org/jira/browse/WSCOMMONS-448
>             Project: WS-Commons
>          Issue Type: Improvement
>          Components: AXIOM
>    Affects Versions: Axiom 1.2.8
>            Reporter: Tim Mitchell
>             Fix For: Axiom 1.2.9
>
>         Attachments: ContentTransferEncodingDiff.txt
>
>
> We have a need to be able to identify how an SWA attachment was encoded in the message, by accessing the Content Transfer Encoding. Currently the DataHandler does contain this info, but there is no method you can use to get to the data.
> I have created a fix and an accompanying testcase. Please could you review the changes and if you're happy please could you integrate the fix. 
> I intend to post on the Axiom mailing list to broadcast my suggestion.
> I've attached the diff details as an attachment.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (WSCOMMONS-448) Add access to the Content Transfer Encoding value from DataHandler

Posted by "Tim Mitchell (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/WSCOMMONS-448?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tim Mitchell updated WSCOMMONS-448:
-----------------------------------

    Attachment: ContentTransferEncodingDiff.txt

> Add access to the Content Transfer Encoding value from DataHandler
> ------------------------------------------------------------------
>
>                 Key: WSCOMMONS-448
>                 URL: https://issues.apache.org/jira/browse/WSCOMMONS-448
>             Project: WS-Commons
>          Issue Type: Improvement
>          Components: AXIOM
>    Affects Versions: Axiom 1.2.8
>            Reporter: Tim Mitchell
>             Fix For: Axiom 1.2.8
>
>         Attachments: ContentTransferEncodingDiff.txt
>
>
> We have a need to be able to identify how an SWA attachment was encoded in the message, by accessing the Content Transfer Encoding. Currently the DataHandler does contain this info, but there is no method you can use to get to the data.
> I have created a fix and an accompanying testcase. Please could you review the changes and if you're happy please could you integrate the fix. 
> I intend to post on the Axiom mailing list to broadcast my suggestion.
> I've attached the diff details as an attachment.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (WSCOMMONS-448) Add access to the Content Transfer Encoding value from DataHandler

Posted by "Tim Mitchell (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/WSCOMMONS-448?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tim Mitchell updated WSCOMMONS-448:
-----------------------------------

    Description: 
We have a need to be able to identify how an SWA attachment was encoded in the message, by accessing the Content Transfer Encoding. Currently the DataHandler does contain this info, but there is no method you can use to get to the data.
I have created a fix and an accompanying testcase. Please could you review the changes and if you're happy please could you integrate the fix. 
I intend to post on the Axiom mailing list to broadcast my suggestion.
I've attached the diff details as an attachment.


  was:
We have a need to be able to identify how an SWA attachment was encoded in the message, by accessing the Content Transfer Encoding. Currently the DataHandler does contain this info, but there is no method you can use to get to the data.
I have created a fix and an accompanying testcase. Please could you review the changes and if you're happy please could you integrate the fix. 
I intend to post on the Axiom mailing list to broadcast my suggestion.

The diff of the fixes are as follows. Please let me know if you would prefer me to post a zip of the changes:

Index: modules/axiom-api/src/main/java/org/apache/axiom/attachments/impl/PartOnMemoryEnhanced.java
===================================================================
--- modules/axiom-api/src/main/java/org/apache/axiom/attachments/impl/PartOnMemoryEnhanced.java	(revision 749312)
+++ modules/axiom-api/src/main/java/org/apache/axiom/attachments/impl/PartOnMemoryEnhanced.java	(working copy)
@@ -19,21 +19,22 @@
 
 package org.apache.axiom.attachments.impl;
 
-import org.apache.axiom.attachments.utils.BAAInputStream;
-import org.apache.axiom.om.OMException;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.ArrayList;
+import java.util.Hashtable;
 
 import javax.activation.DataHandler;
 import javax.activation.DataSource;
 import javax.mail.MessagingException;
 import javax.mail.internet.MimeUtility;
 
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.ArrayList;
-import java.util.Hashtable;
+import org.apache.axiom.attachments.utils.BAAInputStream;
+import org.apache.axiom.om.OMDataHandler;
+import org.apache.axiom.om.OMException;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 
 /**
  * PartOnMemoryEnhanced stores the attachment in memory (in non-contigous byte arrays)
@@ -83,7 +84,7 @@
     }
     
     
-    class MyDataHandler extends DataHandler {
+    class MyDataHandler extends DataHandler implements OMDataHandler {
 
         DataSource ds;
         public MyDataHandler(DataSource ds) {
@@ -99,6 +100,10 @@
                 BufferUtils.inputStream2OutputStream(is, os);
             }
         }
+        
+        public String getContentTransferEncoding() throws MessagingException {
+        	return PartOnMemoryEnhanced.this.getContentTransferEncoding();
+        }
     }
     
     /**
Index: modules/axiom-api/src/main/java/org/apache/axiom/om/OMDataHandler.java
===================================================================
--- modules/axiom-api/src/main/java/org/apache/axiom/om/OMDataHandler.java	(revision 0)
+++ modules/axiom-api/src/main/java/org/apache/axiom/om/OMDataHandler.java	(revision 0)
@@ -0,0 +1,17 @@
+package org.apache.axiom.om;
+
+import javax.mail.MessagingException;
+
+
+/**
+ * Interface to allow the access the value of the content transfer encoding that the 
+ * javax.activation.DataHandler doesn't allow you to do. 
+ */
+public interface OMDataHandler {
+	
+	/**
+     * @return A String containing the value of the content transfer encoding header.
+     */
+    public String getContentTransferEncoding() throws MessagingException;
+
+}
Index: modules/axiom-tests/src/test/java/org/apache/axiom/attachments/AttachmentsTest.java
===================================================================
--- modules/axiom-tests/src/test/java/org/apache/axiom/attachments/AttachmentsTest.java	(revision 749312)
+++ modules/axiom-tests/src/test/java/org/apache/axiom/attachments/AttachmentsTest.java	(working copy)
@@ -19,23 +19,24 @@
 
 package org.apache.axiom.attachments;
 
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Arrays;
+import java.util.Set;
+
+import javax.activation.DataHandler;
+
 import org.apache.axiom.attachments.utils.IOUtils;
 import org.apache.axiom.om.AbstractTestCase;
+import org.apache.axiom.om.OMDataHandler;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMOutputFormat;
 import org.apache.axiom.om.impl.MTOMXMLStreamWriter;
 import org.apache.axiom.om.impl.builder.XOPAwareStAXOMBuilder;
 import org.apache.axiom.om.util.CommonUtils;
 
-import javax.activation.DataHandler;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Arrays;
-import java.util.Set;
-
 public class AttachmentsTest extends AbstractTestCase {
 
     public AttachmentsTest(String testName) {
@@ -43,6 +44,7 @@
     }
 
     String inMimeFileName = "mtom/MTOMAttachmentStream.bin";
+    String inMimeFileName2 = "swa/SWAAttachmentBase64Stream.bin";
     String img1FileName = "mtom/img/test.jpg";
     String img2FileName = "mtom/img/test2.jpg";
 
@@ -56,6 +58,14 @@
                         "start-info=\"application/soap+xml\"; " +
                         "charset=UTF-8;" +
                         "action=\"mtomSample\"";
+    
+    String contentTypeString2 =
+				        "multipart/related; " +
+				        "boundary=\"" + boundary + "\"; " +
+				        "type=\"text/xml\"; " +
+				        "start=\"<" + start +">\"; " +
+				        "start-info=\"text/xml\"; " +
+				        "charset=UTF-8;";
 
     public void testMIMEHelper() {
     }
@@ -283,7 +293,29 @@
         // Compare data across streams
         compareStreams(dataIs, expectedDataIs);
     }
+    
+    public void testGetContentTransferEncoding() throws Exception {
 
+        InputStream inStream = getTestResource(inMimeFileName);
+        Attachments attachments = new Attachments(inStream, contentTypeString);
+        DataHandler dh = attachments
+                .getDataHandler("2.urn:uuid:A3ADBAEE51A1A87B2A11443668160994@apache.org");
+        
+        assertNotNull("DataHandler is null", dh);
+        assertTrue("DataHandler is not an instance of OMDataHandler", dh instanceof OMDataHandler);
+        String encodingType = ((OMDataHandler)dh).getContentTransferEncoding();
+        assertTrue("Encoding Type not binary: " + encodingType, "binary".equals(encodingType));
+        	
+        InputStream inStream2 = getTestResource(inMimeFileName2);
+        Attachments attachments2 = new Attachments(inStream2, contentTypeString2);
+        dh = attachments2.getDataHandler("urn:uuid:F8FB8F9F7B7B7B678A1236015197849");
+        
+        assertNotNull("DataHandler is null", dh);
+        assertTrue("DataHandler is not an instance of OMDataHandler", dh instanceof OMDataHandler);
+        encodingType = ((OMDataHandler)dh).getContentTransferEncoding();
+        assertTrue("Encoding Type not base64: " + encodingType, "base64".equals(encodingType));
+    }
+
     public void testNonExistingMIMEPart() throws Exception {
 
         InputStream inStream = getTestResource(inMimeFileName);
Index: modules/axiom-tests/test-resources/swa/SWAAttachmentBase64Stream.bin
===================================================================
--- modules/axiom-tests/test-resources/swa/SWAAttachmentBase64Stream.bin	(revision 0)
+++ modules/axiom-tests/test-resources/swa/SWAAttachmentBase64Stream.bin	(revision 0)
@@ -0,0 +1,256 @@
+--MIMEBoundaryurn:uuid:A3ADBAEE51A1A87B2A11443668160701
+Content-Type: text/xml; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+Content-ID: <0....@apache.org>
+
+<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header xmlns:wsa="http://www.w3.org/2005/08/addressing"><wsa:To>http://localhost:7081/axis2/services/SWAService</wsa:To><wsa:MessageID>urn:uuid:F8FB8F9F7B7B7B678A1236015197880</wsa:MessageID><wsa:Action>sendString</wsa:Action></soapenv:Header><soapenv:Body><SWAService:sendString xmlns:SWAService="http://test"><SWAService:clientString>Client Test</SWAService:clientString></SWAService:sendString><soapenv:SWAAttachment soapenv:href="cid:urn:uuid:F8FB8F9F7B7B7B678A1236015197849"></soapenv:SWAAttachment></soapenv:Body></soapenv:Envelope>
+--MIMEBoundaryurn:uuid:A3ADBAEE51A1A87B2A11443668160701
+Content-Type: application/octet-stream
+Content-Transfer-Encoding: base64
+Content-ID: <urn:uuid:F8FB8F9F7B7B7B678A1236015197849>
+
+/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB
+AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEB
+AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCABgAKcDASIA
+AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA
+AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3
+ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm
+p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA
+AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx
+BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK
+U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3
+uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD++iii
+igAooooAKKKKACiiigAopGYKCTwFBLMSAAB1PPpgk+36/EP7Rv8AwUV/ZL/Zdguo/iX8TIrvX00D
+/hItO8K+DNMvvFWqaxav4g0nwrDbQavZxxeCdHu28Qa/oVhdt4t8WeHNP0SHV7DWPEV/o+gTf2su
+dSrSox5qtSFONm7zkor3Vd6tq9lrZa2OrB4LGZhiKWEwGExONxVacKdLD4WjUxFapUqTUKcIU6UZ
+TlKc5RjFJNuTSWrPt+j19uvtX8o/xt/4OKtVuNQtLX4F+Ffh3pOivP4zs7zVdWs/EHxSuNTs/Dum
+td2uueHPFem618PvC2kSXpntr60t4/DHxU086HE2sTTSXWpaB4f1f89/iL/wXo/a08SIlla+MPG1
+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
+--MIMEBoundaryurn:uuid:A3ADBAEE51A1A87B2A11443668160701--
\ No newline at end of file
Index: modules/axiom-tests/pom.xml
===================================================================
--- modules/axiom-tests/pom.xml	(revision 749312)
+++ modules/axiom-tests/pom.xml	(working copy)
@@ -134,8 +134,8 @@
                 <artifactId>maven-surefire-plugin</artifactId>
                 <configuration>
                     <includes>
-                        <include>**/*Test.java</include>
-                        <include>**/*TestCase.java</include>
+                        <include>**/AttachmentsTest.java</include>
+                        <!--include>**/*TestCase.java</include-->
                     </includes>
                     <excludes>
                         <exclude>**/*AbstractOMSerializationTest.java</exclude>




> Add access to the Content Transfer Encoding value from DataHandler
> ------------------------------------------------------------------
>
>                 Key: WSCOMMONS-448
>                 URL: https://issues.apache.org/jira/browse/WSCOMMONS-448
>             Project: WS-Commons
>          Issue Type: Improvement
>          Components: AXIOM
>    Affects Versions: Axiom 1.2.8
>            Reporter: Tim Mitchell
>             Fix For: Axiom 1.2.8
>
>
> We have a need to be able to identify how an SWA attachment was encoded in the message, by accessing the Content Transfer Encoding. Currently the DataHandler does contain this info, but there is no method you can use to get to the data.
> I have created a fix and an accompanying testcase. Please could you review the changes and if you're happy please could you integrate the fix. 
> I intend to post on the Axiom mailing list to broadcast my suggestion.
> I've attached the diff details as an attachment.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (WSCOMMONS-448) Add access to the Content Transfer Encoding value from DataHandler

Posted by "Andreas Veithen (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/WSCOMMONS-448?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12680434#action_12680434 ] 

Andreas Veithen commented on WSCOMMONS-448:
-------------------------------------------

There is a discussion in WSCOMMONS-418 about this issue. Note that there the suggestion was to expose the "Part" interface in order to get to that information. Indeed, I'm not sure that exposing the MIME headers through an enhanced DataSource interface is the right way of doing things.

PS: Can you please remove the patch from the description field and attach it properly to the JIRA issue?

> Add access to the Content Transfer Encoding value from DataHandler
> ------------------------------------------------------------------
>
>                 Key: WSCOMMONS-448
>                 URL: https://issues.apache.org/jira/browse/WSCOMMONS-448
>             Project: WS-Commons
>          Issue Type: Improvement
>          Components: AXIOM
>    Affects Versions: Axiom 1.2.8
>            Reporter: Tim Mitchell
>             Fix For: Axiom 1.2.8
>
>
> We have a need to be able to identify how an SWA attachment was encoded in the message, by accessing the Content Transfer Encoding. Currently the DataHandler does contain this info, but there is no method you can use to get to the data.
> I have created a fix and an accompanying testcase. Please could you review the changes and if you're happy please could you integrate the fix. 
> I intend to post on the Axiom mailing list to broadcast my suggestion.
> The diff of the fixes are as follows. Please let me know if you would prefer me to post a zip of the changes:
> Index: modules/axiom-api/src/main/java/org/apache/axiom/attachments/impl/PartOnMemoryEnhanced.java
> ===================================================================
> --- modules/axiom-api/src/main/java/org/apache/axiom/attachments/impl/PartOnMemoryEnhanced.java	(revision 749312)
> +++ modules/axiom-api/src/main/java/org/apache/axiom/attachments/impl/PartOnMemoryEnhanced.java	(working copy)
> @@ -19,21 +19,22 @@
>  
>  package org.apache.axiom.attachments.impl;
>  
> -import org.apache.axiom.attachments.utils.BAAInputStream;
> -import org.apache.axiom.om.OMException;
> -import org.apache.commons.logging.Log;
> -import org.apache.commons.logging.LogFactory;
> +import java.io.IOException;
> +import java.io.InputStream;
> +import java.io.OutputStream;
> +import java.util.ArrayList;
> +import java.util.Hashtable;
>  
>  import javax.activation.DataHandler;
>  import javax.activation.DataSource;
>  import javax.mail.MessagingException;
>  import javax.mail.internet.MimeUtility;
>  
> -import java.io.IOException;
> -import java.io.InputStream;
> -import java.io.OutputStream;
> -import java.util.ArrayList;
> -import java.util.Hashtable;
> +import org.apache.axiom.attachments.utils.BAAInputStream;
> +import org.apache.axiom.om.OMDataHandler;
> +import org.apache.axiom.om.OMException;
> +import org.apache.commons.logging.Log;
> +import org.apache.commons.logging.LogFactory;
>  
>  /**
>   * PartOnMemoryEnhanced stores the attachment in memory (in non-contigous byte arrays)
> @@ -83,7 +84,7 @@
>      }
>      
>      
> -    class MyDataHandler extends DataHandler {
> +    class MyDataHandler extends DataHandler implements OMDataHandler {
>  
>          DataSource ds;
>          public MyDataHandler(DataSource ds) {
> @@ -99,6 +100,10 @@
>                  BufferUtils.inputStream2OutputStream(is, os);
>              }
>          }
> +        
> +        public String getContentTransferEncoding() throws MessagingException {
> +        	return PartOnMemoryEnhanced.this.getContentTransferEncoding();
> +        }
>      }
>      
>      /**
> Index: modules/axiom-api/src/main/java/org/apache/axiom/om/OMDataHandler.java
> ===================================================================
> --- modules/axiom-api/src/main/java/org/apache/axiom/om/OMDataHandler.java	(revision 0)
> +++ modules/axiom-api/src/main/java/org/apache/axiom/om/OMDataHandler.java	(revision 0)
> @@ -0,0 +1,17 @@
> +package org.apache.axiom.om;
> +
> +import javax.mail.MessagingException;
> +
> +
> +/**
> + * Interface to allow the access the value of the content transfer encoding that the 
> + * javax.activation.DataHandler doesn't allow you to do. 
> + */
> +public interface OMDataHandler {
> +	
> +	/**
> +     * @return A String containing the value of the content transfer encoding header.
> +     */
> +    public String getContentTransferEncoding() throws MessagingException;
> +
> +}
> Index: modules/axiom-tests/src/test/java/org/apache/axiom/attachments/AttachmentsTest.java
> ===================================================================
> --- modules/axiom-tests/src/test/java/org/apache/axiom/attachments/AttachmentsTest.java	(revision 749312)
> +++ modules/axiom-tests/src/test/java/org/apache/axiom/attachments/AttachmentsTest.java	(working copy)
> @@ -19,23 +19,24 @@
>  
>  package org.apache.axiom.attachments;
>  
> +import java.io.ByteArrayInputStream;
> +import java.io.ByteArrayOutputStream;
> +import java.io.IOException;
> +import java.io.InputStream;
> +import java.util.Arrays;
> +import java.util.Set;
> +
> +import javax.activation.DataHandler;
> +
>  import org.apache.axiom.attachments.utils.IOUtils;
>  import org.apache.axiom.om.AbstractTestCase;
> +import org.apache.axiom.om.OMDataHandler;
>  import org.apache.axiom.om.OMElement;
>  import org.apache.axiom.om.OMOutputFormat;
>  import org.apache.axiom.om.impl.MTOMXMLStreamWriter;
>  import org.apache.axiom.om.impl.builder.XOPAwareStAXOMBuilder;
>  import org.apache.axiom.om.util.CommonUtils;
>  
> -import javax.activation.DataHandler;
> -
> -import java.io.ByteArrayInputStream;
> -import java.io.ByteArrayOutputStream;
> -import java.io.IOException;
> -import java.io.InputStream;
> -import java.util.Arrays;
> -import java.util.Set;
> -
>  public class AttachmentsTest extends AbstractTestCase {
>  
>      public AttachmentsTest(String testName) {
> @@ -43,6 +44,7 @@
>      }
>  
>      String inMimeFileName = "mtom/MTOMAttachmentStream.bin";
> +    String inMimeFileName2 = "swa/SWAAttachmentBase64Stream.bin";
>      String img1FileName = "mtom/img/test.jpg";
>      String img2FileName = "mtom/img/test2.jpg";
>  
> @@ -56,6 +58,14 @@
>                          "start-info=\"application/soap+xml\"; " +
>                          "charset=UTF-8;" +
>                          "action=\"mtomSample\"";
> +    
> +    String contentTypeString2 =
> +				        "multipart/related; " +
> +				        "boundary=\"" + boundary + "\"; " +
> +				        "type=\"text/xml\"; " +
> +				        "start=\"<" + start +">\"; " +
> +				        "start-info=\"text/xml\"; " +
> +				        "charset=UTF-8;";
>  
>      public void testMIMEHelper() {
>      }
> @@ -283,7 +293,29 @@
>          // Compare data across streams
>          compareStreams(dataIs, expectedDataIs);
>      }
> +    
> +    public void testGetContentTransferEncoding() throws Exception {
>  
> +        InputStream inStream = getTestResource(inMimeFileName);
> +        Attachments attachments = new Attachments(inStream, contentTypeString);
> +        DataHandler dh = attachments
> +                .getDataHandler("2.urn:uuid:A3ADBAEE51A1A87B2A11443668160994@apache.org");
> +        
> +        assertNotNull("DataHandler is null", dh);
> +        assertTrue("DataHandler is not an instance of OMDataHandler", dh instanceof OMDataHandler);
> +        String encodingType = ((OMDataHandler)dh).getContentTransferEncoding();
> +        assertTrue("Encoding Type not binary: " + encodingType, "binary".equals(encodingType));
> +        	
> +        InputStream inStream2 = getTestResource(inMimeFileName2);
> +        Attachments attachments2 = new Attachments(inStream2, contentTypeString2);
> +        dh = attachments2.getDataHandler("urn:uuid:F8FB8F9F7B7B7B678A1236015197849");
> +        
> +        assertNotNull("DataHandler is null", dh);
> +        assertTrue("DataHandler is not an instance of OMDataHandler", dh instanceof OMDataHandler);
> +        encodingType = ((OMDataHandler)dh).getContentTransferEncoding();
> +        assertTrue("Encoding Type not base64: " + encodingType, "base64".equals(encodingType));
> +    }
> +
>      public void testNonExistingMIMEPart() throws Exception {
>  
>          InputStream inStream = getTestResource(inMimeFileName);
> Index: modules/axiom-tests/test-resources/swa/SWAAttachmentBase64Stream.bin
> ===================================================================
> --- modules/axiom-tests/test-resources/swa/SWAAttachmentBase64Stream.bin	(revision 0)
> +++ modules/axiom-tests/test-resources/swa/SWAAttachmentBase64Stream.bin	(revision 0)
> @@ -0,0 +1,256 @@
> +--MIMEBoundaryurn:uuid:A3ADBAEE51A1A87B2A11443668160701
> +Content-Type: text/xml; charset=UTF-8
> +Content-Transfer-Encoding: 8bit
> +Content-ID: <0....@apache.org>
> +
> +<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header xmlns:wsa="http://www.w3.org/2005/08/addressing"><wsa:To>http://localhost:7081/axis2/services/SWAService</wsa:To><wsa:MessageID>urn:uuid:F8FB8F9F7B7B7B678A1236015197880</wsa:MessageID><wsa:Action>sendString</wsa:Action></soapenv:Header><soapenv:Body><SWAService:sendString xmlns:SWAService="http://test"><SWAService:clientString>Client Test</SWAService:clientString></SWAService:sendString><soapenv:SWAAttachment soapenv:href="cid:urn:uuid:F8FB8F9F7B7B7B678A1236015197849"></soapenv:SWAAttachment></soapenv:Body></soapenv:Envelope>
> +--MIMEBoundaryurn:uuid:A3ADBAEE51A1A87B2A11443668160701
> +Content-Type: application/octet-stream
> +Content-Transfer-Encoding: base64
> +Content-ID: <urn:uuid:F8FB8F9F7B7B7B678A1236015197849>
> +
> +/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB
> +AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEB
> +AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCABgAKcDASIA
> +AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA
> +AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3
> +ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm
> +p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA
> +AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx
> +BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK
> +U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3
> +uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD++iii
> +igAooooAKKKKACiiigAopGYKCTwFBLMSAAB1PPpgk+36/EP7Rv8AwUV/ZL/Zdguo/iX8TIrvX00D
> +/hItO8K+DNMvvFWqaxav4g0nwrDbQavZxxeCdHu28Qa/oVhdt4t8WeHNP0SHV7DWPEV/o+gTf2su
> +dSrSox5qtSFONm7zkor3Vd6tq9lrZa2OrB4LGZhiKWEwGExONxVacKdLD4WjUxFapUqTUKcIU6UZ
> +TlKc5RjFJNuTSWrPt+j19uvtX8o/xt/4OKtVuNQtLX4F+Ffh3pOivP4zs7zVdWs/EHxSuNTs/Dum
> +td2uueHPFem618PvC2kSXpntr60t4/DHxU086HE2sTTSXWpaB4f1f89/iL/wXo/a08SIlla+MPG1
> +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
> +--MIMEBoundaryurn:uuid:A3ADBAEE51A1A87B2A11443668160701--
> \ No newline at end of file
> Index: modules/axiom-tests/pom.xml
> ===================================================================
> --- modules/axiom-tests/pom.xml	(revision 749312)
> +++ modules/axiom-tests/pom.xml	(working copy)
> @@ -134,8 +134,8 @@
>                  <artifactId>maven-surefire-plugin</artifactId>
>                  <configuration>
>                      <includes>
> -                        <include>**/*Test.java</include>
> -                        <include>**/*TestCase.java</include>
> +                        <include>**/AttachmentsTest.java</include>
> +                        <!--include>**/*TestCase.java</include-->
>                      </includes>
>                      <excludes>
>                          <exclude>**/*AbstractOMSerializationTest.java</exclude>

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (WSCOMMONS-448) Add access to the Content Transfer Encoding value from DataHandler

Posted by "Tim Mitchell (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/WSCOMMONS-448?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tim Mitchell updated WSCOMMONS-448:
-----------------------------------

    Attachment:     (was: ContentTransferEncodingDiff.txt)

> Add access to the Content Transfer Encoding value from DataHandler
> ------------------------------------------------------------------
>
>                 Key: WSCOMMONS-448
>                 URL: https://issues.apache.org/jira/browse/WSCOMMONS-448
>             Project: WS-Commons
>          Issue Type: Improvement
>          Components: AXIOM
>    Affects Versions: Axiom 1.2.8
>            Reporter: Tim Mitchell
>             Fix For: Axiom 1.2.8
>
>         Attachments: ContentTransferEncodingDiff.txt
>
>
> We have a need to be able to identify how an SWA attachment was encoded in the message, by accessing the Content Transfer Encoding. Currently the DataHandler does contain this info, but there is no method you can use to get to the data.
> I have created a fix and an accompanying testcase. Please could you review the changes and if you're happy please could you integrate the fix. 
> I intend to post on the Axiom mailing list to broadcast my suggestion.
> I've attached the diff details as an attachment.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (WSCOMMONS-448) Add access to the Content Transfer Encoding value from DataHandler

Posted by "Tim Mitchell (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/WSCOMMONS-448?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tim Mitchell updated WSCOMMONS-448:
-----------------------------------

    Attachment: ContentTransferEncodingDiff.txt

> Add access to the Content Transfer Encoding value from DataHandler
> ------------------------------------------------------------------
>
>                 Key: WSCOMMONS-448
>                 URL: https://issues.apache.org/jira/browse/WSCOMMONS-448
>             Project: WS-Commons
>          Issue Type: Improvement
>          Components: AXIOM
>    Affects Versions: Axiom 1.2.8
>            Reporter: Tim Mitchell
>             Fix For: Axiom 1.2.8
>
>         Attachments: ContentTransferEncodingDiff.txt
>
>
> We have a need to be able to identify how an SWA attachment was encoded in the message, by accessing the Content Transfer Encoding. Currently the DataHandler does contain this info, but there is no method you can use to get to the data.
> I have created a fix and an accompanying testcase. Please could you review the changes and if you're happy please could you integrate the fix. 
> I intend to post on the Axiom mailing list to broadcast my suggestion.
> I've attached the diff details as an attachment.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.