Hi all,

I refactored the DeprecationLogger class, which is now in o.a.c.util.Deprecation.

Rather than a single log() method, all levels of the static Deprecation.logger can be used to indicate various levels of deprecation.

The javadocs give some hints on how to use each level:
- debug: no more current or best practice, but no plans to remove the feature
- info: no more current or best practice, may be removed in the future
- warn: will be removed in the next major release (e.g. 2.1.x --> 2.2.0)
- error: will be removed in the next minor release (e.g. 2.1.6 --> 2.1.7)
- fatal error: has been removed, but some code is still there to detect attempts to use the feature.


In addition to this, a "forbidden deprecation level" has been added, leading the logging at this level and above to throw a DeprecationException. It can be set in web.xml and defauts to ERROR (meaning up to WARN is allowed).

Setting this forbidden level to DEBUG runs the application in strict mode (even non-current features are forbidden), and setting it to FATAL runs in tolerant mode, i.e. allow everything except, of course, features that have been removed.

This should allow us to give a clear indication to our users of what they should give attention to if they want their apps to be maintainable for a long time.

Sylvain

--
Sylvain Wallez                                  Anyware Technologies
http://www.apache.org/~sylvain           http://www.anyware-tech.com
{ XML, Java, Cocoon, OpenSource }*{ Training, Consulting, Projects }



Reply via email to