Andreas Veithen created AXIOM-418:
-------------------------------------

             Summary: Remove the dependency on JavaMail
                 Key: AXIOM-418
                 URL: https://issues.apache.org/jira/browse/AXIOM-418
             Project: Axiom
          Issue Type: Task
          Components: API
    Affects Versions: 1.2.13
            Reporter: Andreas Veithen
            Priority: Minor


In earlier versions of Axiom, MIME processing was implemented using JavaMail. 
In Axiom 1.2.13 we use MIME4J to parse MIME messages and we have our own code 
to write MIME messages (see org.apache.axiom.mime.MultipartWriter). This means 
that we should be able to get rid of the JavaMail dependency. Currently, 
JavaMail is still used in the following places:

1. There are several places where javax.mail.internet.ContentType is used to 
parse MIME types. That needs to be replaced by something equivalent, maybe 
javax.activation.MimeType. Note that javax.mail.internet.ContentType is not 
used in any public API.

2. org.apache.axiom.attachments.lifecycle.impl.FileAccessor has several methods 
that declare javax.mail.MessagingException, although that exception is never 
thrown. Removing that exception would not break binary compatibility, but may 
break source code compatibility. However, it is very unlikely that any existing 
application code is using or extending the FileAccessor class (it is an SPI 
that is used by the Attachments class).

3. The classes in org.apache.axiom.mime.impl.javamail use JavaMail. They 
provide an implementation of the MultipartWriter API. However, it is not used 
by default (the default implementation is in org.apache.axiom.mime.impl.axiom). 
It only exists to allow users to switch back to JavaMail based MIME 
serialization in case issues are discovered in the 
org.apache.axiom.mime.impl.axiom implementation. Since no issues have ever been 
reported, we could move that implementation to axiom-compat so that it remains 
available but is no longer included in axiom-api.

4. org.apache.axiom.om.util.TextHelper has several methods that declare 
javax.mail.MessagingException. Probably TextHelper can be deprecated and moved 
to axiom-compat.

5. DataSourceUtils#getSize(DataSource) recognizes 
javax.mail.util.ByteArrayDataSource. The code should be changed to use 
reflection so that it works if JavaMail is not present.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to