james-server-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Markus Wiederkehr" <markus.wiederk...@gmail.com>
Subject Re: [mime4j] Drop JDK1.4 support entirely?
Date Tue, 06 Jan 2009 18:51:31 GMT
Done..

Markus

On Tue, Jan 6, 2009 at 7:46 PM, Norman Maurer <norman@apache.org> wrote:
> +1
> Norman
>
> 2009/1/6 Oleg Kalnichevski <olegk@apache.org>:
>> Markus Wiederkehr wrote:
>>>
>>> On Tue, Jan 6, 2009 at 2:19 PM, Stefano Bagnara <apache@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.
>>>
>>
>> +1 to dropping support for java 1.4 altogether. It is just not worth the
>> trouble.
>>
>> Oleg
>>
>>
>>> Markus
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
>>> For additional commands, e-mail: server-dev-help@james.apache.org
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
>> For additional commands, e-mail: server-dev-help@james.apache.org
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
> For additional commands, e-mail: server-dev-help@james.apache.org
>
>



-- 
Always remember you're unique. Just like everyone else.

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


Mime
View raw message