## New Doclet A new enhanced doclet (written by Gerald Boersma) is now available. It has much more option than the legacy previous one. You will find [detailed instructions here.](https://github.com/gboersma/uml-java-doclet) ## UMLDoclet An open source doclet is [now available on github.](https://github.com/talsma-ict/umldoclet). It's also available in [Maven central for easy inclusion](http://repo.maven.apache.org/maven2/nl/talsmasoftware/umldoclet) in any java projects. Usage: * Declare the nl.talsmasoftware.umldoclet.UMLDoclet class to be used by javadoc (will by default also delegate to Standard doclet, so all-in-one). * All customizable options will become documented on the github page before the 1.0.0 release. ## Old legacy doclet You can generate a PlantUML description for UML-class diagram out of Java-source. Only public fields and methods will be exported. The jar for the doclet is available here: [plantUmlDoclet.jar](http://sourceforge.net/projects/plantuml/files/plantUmlDoclet.jar/download) The association are based only on field declaration and Javadoc-Tags in methods. There are following Javadoc-Tags to describe associations, according to [UMLGraph](http://www.umlgraph.org): * **@note**: can be used to add a note to a class * **@assoc**: Pattern: - (no spaces) * **@navassoc**: Pattern: - (no spaces) * **@depend**: Pattern: - (no spaces) * **@overrideAssoc**: can be used to mark a field-declaration not to export its association. For configuration following system.properties can be used: * **createPackages**: Default value is ``false`` * **showPublicMethods**: Default value is ``true`` * **showPublicConstructors**: Default value is ``true`` * **showPublicFields**: Default value is ``true`` ## Ant-Script example ``` ``` ## Image example ![](doclet.png) ## Source example ``` package demo; class Controller {} class EmbeddedAgent {} class PowerManager {} /** * @extends Controller * @extends EmbeddedAgent * @navassoc - - 1..* PowerManager * @note this is a note */ class SetTopController implements URLStreamHandler { public String name; int authorizationLevel; void startUp() {} void shutDown() {} void connect() {} } /** @depend - friend - SetTopController */ class ChannelIterator {} interface URLStreamHandler { void OpenConnection(); void parseURL(); void setURL(); void toExternalForm(); } ```