commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gary Gregory <GGreg...@seagullsoftware.com>
Subject RE: [io] 2.0 Moving to minimum of JDK 1.5
Date Fri, 08 Feb 2008 16:32:40 GMT
> From: Jukka Zitting [mailto:jukka.zitting@gmail.com]
> Sent: Friday, February 08, 2008 8:24 AM
> To: Jakarta Commons Developers List
> Subject: Re: [io] 2.0 Moving to minimum of JDK 1.5
>
> Hi,
>
> On Feb 8, 2008 5:24 PM, James Carman <james@carmanconsulting.com> wrote:
> > On 2/8/08, Jukka Zitting <jukka.zitting@gmail.com> wrote:
> > > If there's a class or interface, say o.a.c.io.SomeClass, that needs to
> > > be changed extensively to match "Java 5 style", then I'd name the
> > > modified version o.a.c.io.SomeClass2 (or something better if
> > > possible).
> >
> > I don't know about that.  Then, we could potentially have classes like
> > SomeClass, SomeClass2, SomeClass3, etc. running around. Also, it
> > wouldn't be as easy to upgrade to a new version.  If it were done the
> > other way, folks could just do a find/replace on the package name in
> > their code and be done.
>
> Why I should need the find/replace in the first place? A find/replace
> won't help with any fundamental API incompatibilities that would
> trigger the creation of SomeClass2.
>
> You'd only need to upgrade to SomeClass2 if you actually need the new
> functionality, otherwise you could just keep using the old API when
> upgrading from 1.x to 2.x. With the o.a.c.io2 proposal everybody would
> need to update their code when upgrading even if no part of the API
> they touch has changed.

I do not think this last paragraph is correct. The io2 package is not only free to introduce
generics in the API, it is also free to use Java 5 features in its internal implementation.
This gives us the freedom to use all Java 5 features in io2 while keeping the API or most
of it the same. So if you are using io2, you must use Java 5. If you have a 3rd party library
that depends on io (v1.x), then you need the io package around too.

So, in short, you need all of io v2 in io2 and all of io v1 in io. This allows for an application
to depend on both and allows io2 to use all of Java 5 internally and in presenting its external
API.

Gary

>
> BR,
>
> Jukka Zitting
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
> For additional commands, e-mail: dev-help@commons.apache.org


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


Mime
View raw message