Hi,
as discussed in the last PMC/PSC meeting I'm looking into using -Xlint to
find and remove deprecated API usage.
With the compiler options "-Xlint:deprecation -Werror" the compile fails if
any deprecated API is used.
I've setup to use the compiler flag along with errorProne, so that a normal
compile won't be immediately broken by deprecated API usage.

And then... I've started building it, and oh boy what I've found with just
a handful of modules:

   - API deprecated because "in the future we might move it somewhere
   else", but with no replacement
   - API pointing at a replacement that is not functionally equivalent and
   cannot actually replace
   - API pointing at replacement stuff that's actually deprecated itself,
   and with no replacements
   - and so on...

The moment I hit gt-main more than 100 warnings popped up and decided to
stop for a bit, to send this mail, and possibly
resume tomorrow. In the meantime, you can have a look here:
https://github.com/geotools/geotools/pull/2309

So, in order to handle this "mess" I believe:

   - Some deprecated classes actually need to be undeprecated, e.g.
   FactoryUsingAnsiSQL, because the replacement is actually not finished or
   CollectionEvent because the suggested replacement cannot actually work with
   collections, requires a FeatureSource instead.
   - Some deprecated usage need to be ignored because they are testing the
   deprecated classes (which are not removed)
   - Other long deprecated classes/methods can actually be finally removed

In terms of effect of a deprecation ban via QA build, there are positive
effects:

   - The IDEs won't light up as much like christmas tree anymore
   - More critical thinking will be involved in deprecating APIs, and
   consideration for replacement mechanic, because one will have to either
   migrate away or suppress deprecation warnings

And of course there will be downsides top, like upgrading a dependency will
be harder, as it will come with association deprecation cleanup.

So before I try to move forward, any objections?

Cheers
Andrea



-- 

Regards, Andrea Aime == GeoServer Professional Services from the experts!
Visit http://goo.gl/it488V for more information. == Ing. Andrea Aime
@geowolf Technical Lead GeoSolutions S.A.S. Via di Montramito 3/A 55054
Massarosa (LU) phone: +39 0584 962313 fax: +39 0584 1660272 mob: +39 339
8844549 http://www.geo-solutions.it http://twitter.com/geosolutions_it
------------------------------------------------------- *Con riferimento
alla normativa sul trattamento dei dati personali (Reg. UE 2016/679 -
Regolamento generale sulla protezione dei dati “GDPR”), si precisa che ogni
circostanza inerente alla presente email (il suo contenuto, gli eventuali
allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i
destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per
errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le
sarei comunque grato se potesse darmene notizia. This email is intended
only for the person or entity to which it is addressed and may contain
information that is privileged, confidential or otherwise protected from
disclosure. We remind that - as provided by European Regulation 2016/679
“GDPR” - copying, dissemination or use of this e-mail or the information
herein by anyone other than the intended recipient is prohibited. If you
have received this email by mistake, please notify us immediately by
telephone or e-mail.*
_______________________________________________
GeoTools-Devel mailing list
GeoTools-Devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-devel

Reply via email to