You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by Markus Wiederkehr <ma...@gmail.com> on 2009/01/06 12:56:59 UTC
[mime4j] Drop JDK1.4 support entirely?
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.
Markus
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
Re: [mime4j] Drop JDK1.4 support entirely?
Posted by Robert Burrell Donkin <ro...@gmail.com>.
On Tue, Jan 6, 2009 at 1:19 PM, Stefano Bagnara <ap...@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.
+1
- robert
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
Re: [mime4j] Drop JDK1.4 support entirely?
Posted by Markus Wiederkehr <ma...@gmail.com>.
Done..
Markus
On Tue, Jan 6, 2009 at 7:46 PM, Norman Maurer <no...@apache.org> wrote:
> +1
> Norman
>
> 2009/1/6 Oleg Kalnichevski <ol...@apache.org>:
>> Markus Wiederkehr wrote:
>>>
>>> On Tue, Jan 6, 2009 at 2:19 PM, Stefano Bagnara <ap...@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
Re: [mime4j] Drop JDK1.4 support entirely?
Posted by Norman Maurer <no...@apache.org>.
+1
Norman
2009/1/6 Oleg Kalnichevski <ol...@apache.org>:
> Markus Wiederkehr wrote:
>>
>> On Tue, Jan 6, 2009 at 2:19 PM, Stefano Bagnara <ap...@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
Re: [mime4j] Drop JDK1.4 support entirely?
Posted by Oleg Kalnichevski <ol...@apache.org>.
Markus Wiederkehr wrote:
> On Tue, Jan 6, 2009 at 2:19 PM, Stefano Bagnara <ap...@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
Re: [mime4j] Drop JDK1.4 support entirely?
Posted by Markus Wiederkehr <ma...@gmail.com>.
On Tue, Jan 6, 2009 at 2:19 PM, Stefano Bagnara <ap...@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-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
Re: [mime4j] Drop JDK1.4 support entirely?
Posted by Stefano Bagnara <ap...@bago.org>.
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.
Stefano
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org