On Tue, Jan 6, 2009 at 2:19 PM, Stefano Bagnara <apa...@bago.org> wrote:
> Markus Wiederkehr ha scritto:
>> Mime4j uses the retrotranslator maven plugin to build a JDK1.4
>> compatible jar file. Now I've noticed a few problems with that.
>>
>> For example CipherStorageProvider contains this innocent looking lines of 
>> code:
>>
>>     catch (NoSuchAlgorithmException e) {
>>             throw new IllegalArgumentException(e);
>>     }
>>
>> The problem is that constructor IllegalArgumentException(Throwable)
>> was introduced in Java 5 and retrotranslator wants to embed its own
>> version of IllegalArgumentException because of that.
>>
>> Another problem is the @Deprecated annotation used in a few classes.
>> Retrotranslator seems to retain that annotation. Annotations require
>> enums, enums require classes from java.util.concurrent, and so on.
>> Resulting in over 130 classes that would need to be embedded, adding
>> 200 kb to the retrotranslated jar file.
>>
>> I also think Iterable would be nice to have in a few places. Enums, too.
>>
>> All these features can be used of course, but not without embedding a
>> lot of classes or adding a dependency on retrotranslator-runtime.jar.
>>
>> We already had this discussion and I was in favor of keeping JDK1.4
>> support because it comes cheaply. I'm not so sure anymore if it's
>> worth it.
>
> +1 If someone will need java 1.4 support they will help reintroducing
> the retrotranslator stuff. AFAIK no mime4j user expressed the need to
> have a java 1.4 version yet.

Another solution would be to declare a dependency on
retrotranslator-runtime in the POM using the scope "provided".

This way retrotranslator translates java.lang.Enum in
net.sf.retrotranslator.runtime.java.lang.Enum_, for example. The
translated Enum_ does not have to be embedded, instead the 1.4 version
of Mime4j would have a dependency on retrotranslator-runtime.

"Provided" would ensure that the regular Java 5 version of Mime4j
would not be affected because the dependency is not transitive.

This is the solution I would like to go for if nobody objects.

Markus

---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to