Robert Burrell Donkin ha scritto:
On Sat, Jun 21, 2008 at 2:29 PM, Stefano Bagnara <[EMAIL PROTECTED]> wrote:
The issue is that we use activation/javamail to connect to an smtp url.
javamail give us a Transport (an interface defined in the specification).
In order to better catch errors and to support 8bitmime correctly we have to
deal with implementation details.

ok

In the case of Sun's implementation we check for "instance of
com.sun.mail.smtp.SMTPTransport" while using geronimo we would need to check
for "org.apache.geronimo.javamail.transport.smtp.SMTPTransport".

The same applies to the 3 specific exceptions we receive: they all are
extensions of javax.mail.SendFailedException, but casting them to their real
class we get more accurate error reporting.

How can we factor this in a separate library?
To do that we would need to specify our own protocol provider
(javamail.default.providers) wrapping to the right implementation, but this
does not make sense to me.

Furthermore I don't think we can create extensions for the 2 implementation
to implement a new interface, because the classes are created by javamail
and not by us.

yes: this is a JavaMail bug
i see now that the API has been badly designed and users are forced to
cast to sun specific class to obtain information that should be
available through the public interface

This is always because javamail has been internded for MUA. The track detailed delivery errors via callback interfaces and they don't need the 8BITMIME stuff (this is mainly an MTA feature).

but does remote delivery really need to use javamail as it's SMTP client?

no. 1 year ago I wrote a MINA based deliverer, but I never had the time to complete and test it. A similar change instead would require deep testing, so in the mean time I think it would be good to fix the hardcoded sun javamail dependency with something supporting both sun's and geronimo implementations.

Stefano


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to