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-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to