Package de.kruis.padoclet

You probably know the difference between the public API and the published API.

See: Description

Package de.kruis.padoclet Description

You probably know the difference between the public API and the published API. The former is the set of classes, interfaces, methods, fields etc., that can be used from a technical point of view. The later is the set of classes, interfaces, methods, fields etc., that is intended to be used by a third party. While you can change the public API using the refactorings provided by your IDE, you can't change the published API without breaking third party code. Therefore the published API will be a (somethimes rather small) subset of the public API. There is an elaborate paper about all that from Martin Fowler: "Public versus Published Interfaces" (IEEE Software, March/April 2002, p.18f, online available at http://martinfowler.com/ieeeSoftware/published.pdf)

Unfortunately javadoc doesn't support the concept of a published API. The PublishedApiDoclet tries to leverage this deficiency. It acts as a filtering proxy or decorator for another doclet, that formats the output. The PublishedApiDoclet hides anything, that doesn't belong to the published API from the formating doclet.

Usage:

The PublishedApiDoclet follows the javadoc doclet conventions. That is, you need to add the parameters -doclet de.kruis.padoclet.PublishedApiDoclet and -docletpath /path/to/PublishedApiDoclet.jar to your javadoc command line. Then you have to set the system property PublishedApiDoclet.delegate to the name of the formating doclet, unless you use the javadoc standard doclet. (A system property is used, because the PublishedApiDoclet needs the name of the formating doclet to parse the command line.) Several command line options controll the behaviour of the PublishedApiDoclet. Use the option -padHelp to get an overview over the options.

Unfortunately, I didn't write a more complete documentation yet. But have a look at the example subpackage.