igorrosenberg / grails-plugin-uml-class-diagram

Generate UML diagrams from your Grails app source code.
Apache License 2.0
7 stars 4 forks source link

grails-plugin-uml-class-diagram

Generate UML diagrams through introspection: Domain classes, Controller/Service classes, Database schemas.

Documentation:

Screenshots

Wizard example

Domain example

Layers example

Features

  1. :white_check_mark: Global Class diagrams for Domain (see screenshot section above)
  2. :white_check_mark: Global Class diagrams (layered) for Controllers & Services & other beans (see screenshot section above)
  3. :white_check_mark: Global Class diagrams from DB2 database dump
  4. :white_check_mark: Diagrams exposed as specific UmlController (http interface) (see screenshot section above)
  5. :white_check_mark: Diagram generation via plantUML.jar from PlantUML project
  6. :white_check_mark: Configuration of the output (html wizard or directly through http GET parameters)
  7. :white_check_mark: Image output types: SVG, PNG
  8. :clock9: Diagrams exposed as a grails script: "grails to-uml" (cli interface)
  9. :clock9: Inclusion in standard gdoc process
  10. :clock9: Output compatible with diagram manipulation software
  11. :no_entry: (Out of the scope of this plugin, see instead swagger) Document specifically webapp interfaces (public methods of Controllers, with javadoc, input/output spec?)
  12. :no_entry: (No longer considered useful) Diagram generation using online PlantUML server
  13. :no_entry: (No longer considered useful) Diagram generation using online yUML
  14. :white_check_mark: Works with Grails 2.x, see version 0.4.4 or 64aa962
  15. :clock9: Works with Grails 3.x, see version 0.7 which applied http://docs.grails.org/3.2.x/guide/upgrading.html

Usage

See the User Guide

Installation

Add runtime ":uml-class-diagram:0.4.0" to BuildConfig.groovy in the plugins section (requires grails 2.0 > *).

The plugin depends on GraphViz. You may install it through your favorite package manager or via http://www.graphviz.org/Download.php.

Development

The steps described below are available in a dedicated test app

Apart from the last line, we're basically turning off grails 2.3 forking process, which hampers auto-reload.

You may also need to add grails.reload.enabled = true to ../grails-plugin-uml-class-diagram/.../BuildConfig.groovy

From then on, you can modify code in the plugin, and your "web" application reflects the changes immediately (extra step: maybe you need to run it with grails -reloading run-app).

Inspiration from