commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Niall Pemberton" <niall.pember...@gmail.com>
Subject Re: [io] 2.0 Moving to minimum of JDK 1.5
Date Sat, 09 Feb 2008 14:50:45 GMT
On Feb 9, 2008 8:01 AM, Gary Gregory <GGregory@seagullsoftware.com> wrote:
>
> > -----Original Message-----
> > From: Niall Pemberton [mailto:niall.pemberton@gmail.com]
> > Sent: Friday, February 08, 2008 5:40 PM
> > To: Jakarta Commons Developers List
> > Subject: Re: [io] 2.0 Moving to minimum of JDK 1.5
> >
> > On Feb 8, 2008 4:32 PM, Gary Gregory <GGregory@seagullsoftware.com> wrote:
> > > > 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.
> >
> > But why does changing to use generics make it incompatible - since
> > java erases generics?
> >
> > So far I believe all the JDK 1.5 changes I've done (including
> > generics) are backward compatible - clirr thinks so except when I
> > changed the LineIterator next() method to return a String rather than
> > Object - but I think thats an error on clirrs part.
>
> Since it looks like we are keeping [] parameters instead of replacing them with List<T>
that might work out.
>
> I say we complete the conversion to generics and see where that leaves us. I have some
generics pending commits that I'll push out in that dept.

OK sounds good.

Niall

> Gary
>
> >
> > Niall
> >
> > > 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


Mime
View raw message