>It seems the first version of Jakarta-Oro to break JDK 1.1
>compatibility is 2.2.... exchanging out Vector with ArrayList.
In 2.0.1 the split method in Util was changed to accept a List,
and in 2.0.2 it was changed again to accept a Collection. Also,
the recently added POSIX stuff uses a HashMap. Although there are
no guarantees it will remain implemented that way as you can do it
as efficiently without the additional memory overhead. As with
all part time projects, it's all about implement and refine.
>Seems like such a small thing to change for breaking JDK 1.1 support.
>
>Is there a compelling reason why Jakarta-Oro cannot accomplish the
>task of Regex and not be JDK 1.1 compatible?
I can't say that there's a compelling reason other than the majority
of users appeared to be using the Java 2 Platform and it no longer
seemed necessary to restrict the package to only using 1.1 constructs.
Various future enhancements will likely be either easier to implement,
more efficient, or simply more compatible with the Java core by
using Java 2 stuff. This is the same situation as when the move from
OROMatcher 1.0.7 to OROMatcher 1.1 broke JDK 1.0.2 compatibility. It
would be nice if Java had real conditional compilation support so that
versions for multiple Java platforms could be supported. For example, to
compile the OROMatcher stuff for J2ME required a few changes (replace
Character.isWhitespace() and elimnate java.io.Serializable), but it was
impossible to keep them rolled into the same source tree without doing
custom preprocessing. On that note ...
I've stayed away from the various attempts at Java preprocessors because
they are non-standard, but given that we're using ant as the build
engine if a preprocessor can be rolled in as a standard ant task,
I think it's got a chance of become relatively standard. Is there
already such a thing. Does anyone currently use a Java-based open
source Java preprocessor that might be adapted to the role? It would be
relatively simple to implement a preprocessor solely for the purpose of
conditional compilation (just ifdef, else, elif, endif, with the conditions
picked up from properties).
In any case, to answer the question, if possible, I think we should strive
to support Java 2, J2ME, and JDK 1.1 through a conditional compilation
mechanism rather than a least common denominator approach.
daniel