talsma-ict / umldoclet

Automatically generate PlantUML diagrams in javadoc
Apache License 2.0
235 stars 32 forks source link

Documentation of additionalOptions #453

Open ualjjcanada opened 1 year ago

ualjjcanada commented 1 year ago

Is your feature request related to a problem? Please describe.
It would be desirable documentation of all additional options available, and how write them on the pom.xml. If not all of them, at least some help to write custom additional options.

Describe the solution you'd like
A table with a list of additional options. For example, I am trying to write an option to generate methods with parameter names in the UML diagram. Maybe the solution is related to the API Enum MethodConfig.ParamNames , but no instructions of how write such additional option are provided.

Other desirable additional option would be to include (or not) in the diagram all overridden methods, such as toString() o equals(). Such overridden methods are included on the javadoc files, but not in the UML diagram.

Other desirable additional option would be to include (or not) in the diagram attributes generated by class relations (aggregations, compositions, ...) which do not appear in the classes.

Describe alternatives you've considered
Some available options are:

<additionalOption>-umlImageDirectory images</additionalOption> 
<additionalOption>-umlImageFormat svg_img,png</additionalOption>
<additionalOption>-private</additionalOption>
<additionalOption>-createPumlFiles</additionalOption>
<additionalOption>-umlCustomDirective "skinparam classBackgroundColor LightYellow"</additionalOption>

Some desirable options would be, as example:

<additionalOption>-showMethodsParamNames BEFORE_TYPE</additionalOption> 
<additionalOption>-showOverridenMethods true</additionalOption> 
...

Additional context
Those additional options provided with -umlCustomDirective rely on PlantUML, where others should rely on the doclet.

sjoerdtalsma commented 1 year ago

Not all options that were available in the UmlDoclet v1 are available in the 2.x version since the full rewrite.

This is intentional. There is a wish for more fine-grained configuration options while reducing the forrest of additional options to pass to the javadoc tool. This is explained briefly in the following issue: https://github.com/talsma-ict/umldoclet/issues/125

ualjjcanada commented 1 year ago

Hi, just to save a quick reply to the issue, additional options currently implemented are here: UMLOptions.java

Current implemented options are:

    // Options from Standard doclet that we also support
            "-quiet"
            "-verbose"
            "-docencoding"
            "-encoding"
            "-link";
            "-linkoffline"
            "-private"
            "-package"
            "-protected"
            "-public"
            "--show-members"
            "-d"   // config.destDirName = args.get(0))

       // Our own options
            "--plantuml-server-url -plantumlServerUrl"
            "--delegate-doclet -delegateDoclet"
            "--create-puml-files -createPumlFiles"
            "--uml-image-directory -umlImageDirectory"
            "--uml-image-format -umlImageFormat"
            "--uml-encoding -umlEncoding"
            "--uml-excluded-type-references -umlExcludedTypeReferences"         // adds overriden methods toString() and equals() 
            "--uml-excluded-package-dependencies -umlExcludedPackageDependencies"
            "--uml-custom-directive -umlCustomDirective"
            "--fail-on-cyclic-package-dependencies -failOnCyclicPackageDependencies"
            "--uml-java-bean-properties-as-fields -umlJavaBeanPropertiesAsFields"
            "--uml-timeout -umlTimeout"
ualjjcanada commented 1 year ago

Hi, I understand the necessity of providing fine-grained configuration options through more powerful mechanisms such as annotations or tags. However, in some use cases, providing general options in a configuration file (as pom.xml) does avoid the necessity of refactoring source code, package by package, class by class, to add such annotations or tags. Moreover, a common configuration file can be reused in different projects without any source code modifications. From an academic point of view, as is my case, that is the easier way to do. Thanks a lot. Joaquín

kasderooi commented 1 year ago

Hi, I would like an option to ignore the cyclic package dependencies warning if that is possible. Thanks a lot. Kas

erickjx commented 1 year ago

Hi, can enable "-link" option multiple times to include different sites? it only accept 1

sjoerdtalsma commented 1 year ago

Hi, can enable "-link" option multiple times to include different sites? it only accept 1

@erickjx Could you create a separate issue for this request? Thanks in advance!

sjoerdtalsma commented 1 year ago

Hi, I would like an option to ignore the cyclic package dependencies warning if that is possible. Thanks a lot. Kas

@kasderooi Could you create a separate issue for this request? Thanks in advance!