lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Uwe Schindler" <>
Subject RE: Finishing Lucene 2.9
Date Fri, 21 Aug 2009 05:42:36 GMT
I know this docs. We also had the same discussion on java-dev half a year


Generics are not visible in the compiled java code, they are "erasured" and
replaced by their upper type (at least Object, like for Collection API). "E
Extends Attribute" in my example would be replaced by Attribute. Because of
that you can run old Java 1.1 programs still with Java 1.5 using the whole
collection API, which is the best example for Generics. If you be careful,
there is no backwards break beyond using a new class format and because of
that the requirement to upgrade to Java 1.5. The class format was updated,
to allow compilers, to get the generics information to check source code and
apply the correct tasks (this information is added to the class metadata).
The JVM itself is not using it, and because of that 1.4 programms just run
unmodified, even without recompiling.


Just read the tons of discussions/howtos on the web about the whole type


Uwe Schindler
H.-H.-Meier-Allee 63, D-28213 Bremen


From: Grant Ingersoll [] 
Sent: Friday, August 21, 2009 3:51 AM
Subject: Re: Finishing Lucene 2.9


Please read the archives on the 1.5 move.  We have discussed it many times.
There is also a Wiki page on it under the committers section.  While
technically it breaks back compatibility, we are going forward with it and
we decided to allow generics, etc. right from the start.  We also didn't
feel like we had to convert everything in one fell swoop, either, as that
will break many existing patches.  



On Aug 20, 2009, at 4:29 PM, Uwe Schindler wrote:

It would *not* break apps without generics, if the "upper" type is the same
(which is easily fulfilled by my example with the AttributeSource). The
whole 1.5 Java Collection API uses generics and 1.4 programs still run.


Uwe Schindler
H.-H.-Meier-Allee 63, D-28213 Bremen


From: Shai Erera [] 
Sent: Thursday, August 20, 2009 3:05 PM
Subject: Re: Finishing Lucene 2.9


What will be w/ generics? Won't they break cack-compat as soon as we add
them (e.g., if we move to accepting parameters as generics - it may break an
application which does not use generics yet). I think that the move to 1.5
needs to include the generics as well, unless we're willing to break
back-compat later on.


On Thu, Aug 20, 2009 at 3:58 PM, Mark Miller <> wrote:

Michael McCandless wrote:
> On Wed, Aug 19, 2009 at 6:21 PM, Mark Miller<> wrote:
>> I forgot about this oddity. Its so weird. Its like we are doing two
>> releases on top of each other - it just seems confusing.
> I'm also not wed to the "fast turnaround" (remove deprecations, switch
> to generics) 3.0 release.
> We could, instead, take out time doing the 3.0 release, ie let it
> include new features too.
> I thought I had read a motivation for the 1.9 -> 2.0 fast turnaround,
> but I can't remember it nor find it now...
> Mike
> ---------------------------------------------------------------------
> To unsubscribe, e-mail:
> For additional commands, e-mail:
I thought the motivation was to provide a clean upgrade path with the
deprecations - you move to 2.9 and move from all the deprecated methods
- then you move to 3.0 and your good with no deprecations. I'd guess the
worry is that new features in 3.0 would add new deprecations and its not
quite so clean?

Personally, I think thats fine though. New deprecations will come in 3.1
anyway. You can still move everything in 2.9, and then move to 3.0 - so
what if something else is now deprecated? You can move again or wait for
3.9 to move ...

- Mark

To unsubscribe, e-mail:
For additional commands, e-mail:




Grant Ingersoll


Search the Lucene ecosystem (Lucene/Solr/Nutch/Mahout/Tika/Droids) using


View raw message