ok, I think you have a valid case for using this for testing. We just have to be careful about wording and such, because i think right now we encourage users to use this constant. I created a patch to make it scary and deprecated under LUCENE-2080, we don't have to remove the constant just keep it forever deprecated as it breaks backwards compatibility to use it.
as far as implicit contract of no-arg/Version ctor for analyzers i do not think this is the case. someone can make an analyzer with a required argument if they want to, and I think some analyzers have this already (PerFieldAnalyzerWrapper at least) On Sun, Feb 7, 2010 at 2:17 PM, Sanne Grinovero <sanne.grinov...@gmail.com>wrote: > Thanks for all the quick answers; > > finding the ctor having only a Version parameter is fine for me, I had > noticed this "frequent pattern" but didn't understand that was a > general rule. > So can I assume this is an implicit contract for all Analyzers, to > have either an empty ctor or a single-parameter of type Version? > > I know about the dangers of using LUCENE_CURRENT, but rebuilding the > index is not always something you need to avoid. > Having LUCENE_CURRENT is for example useful for me to test Hibernate > Search towards the current Lucene on classpath, without having to > rebuild the code. > > thanks for all help, > Sanne > > > 2010/2/7 Robert Muir <rcm...@gmail.com>: > > I propose we remove LUCENE_CURRENT completely, as soon as TEST_VERSION is > > done. > > > > On Sun, Feb 7, 2010 at 12:53 PM, Uwe Schindler <u...@thetaphi.de> wrote: > >> > >> Hi Sanne, > >> > >> Exactly that usage we want to prevent. Using Version.LUCENE_CURRENT is > the > >> badest thing you can do if you want to later update your Lucene version > and > >> do not want to reindex all your indexes (see javadocs). > >> > >> It is easy to modify your application to create analyzers even from > config > >> files using the reflection way. Just find a constructor taking Version > and > >> call newInstance() on it, not directly on the Class. It's just one line > of > >> code more. > >> > >> Uwe > >> > >> ----- > >> Uwe Schindler > >> H.-H.-Meier-Allee 63, D-28213 Bremen > >> http://www.thetaphi.de > >> eMail: u...@thetaphi.de > >> > >> > -----Original Message----- > >> > From: Sanne Grinovero [mailto:sanne.grinov...@gmail.com] > >> > Sent: Sunday, February 07, 2010 6:33 PM > >> > To: java-dev@lucene.apache.org > >> > Subject: Having a default constructor in Analyzers > >> > > >> > Hello, > >> > I've seen that some core Analyzers are now missing a default > >> > constructor; this is preventing many applications to configure/load > >> > Analyzers by reflection, which is a common use case to have Analyzers > >> > chosen in configuration files. > >> > > >> > Would it be possible to add, for example, a constructor like > >> > > >> > public StandardAnalyzer() { > >> > this(Version.LUCENE_CURRENT); > >> > } > >> > > >> > ? > >> > > >> > Of course more advanced use cases would need to pass parameters but > >> > please make the advanced usage optional; I have now seen more than a > >> > single project break because of this (and revert to older Lucene). > >> > > >> > Regards, > >> > Sanne > >> > > >> > --------------------------------------------------------------------- > >> > To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org > >> > For additional commands, e-mail: java-dev-h...@lucene.apache.org > >> > >> > >> > >> --------------------------------------------------------------------- > >> To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org > >> For additional commands, e-mail: java-dev-h...@lucene.apache.org > >> > > > > > > > > -- > > Robert Muir > > rcm...@gmail.com > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org > For additional commands, e-mail: java-dev-h...@lucene.apache.org > > -- Robert Muir rcm...@gmail.com