UMLG is a UML to java code generator. From class diagrams, persistent java entities are generated. The entities persist via an embedded Blueprints graph database. The semantics of a Property Graph Model is a natural fit for implementing the rich semantics of UML class diagrams in java.


UMLG endeavours to implement the UML2 spec as faithfully as possible. UMLG supports most class diagram features. Inheritance, interfaces, abstract classes, associations, composition, complex data types, multiplicity, collection types (Set, OrderedSet, Sequence, Bag), qualifiers, constraints and more are supported.


UMLG supports OCL (object constraint language). Constraints, derived properties and query operations can be fully specified in OCL. For each OCL expression in the model corresponding java is generated directly into the owning entity.

Rest Interface and UI

UMLG can optionally generate a rest interface to the application for performing remote crud and query operations. Utilizing the rest interface a web based ui is provided. From the gui crud and query operations can be performed. This makes it easy to visualize, use and maintain the application.


  • All interactions are fully transactional.
  • Java entities contain no interceptors or annotations.
  • Unit tests are easy to write.
  • Fast start up times regardless of the number of entities.
  • Short stack, no endless framework code.
  • Persistent entities that are a joy to work with.


Queries can be executed in OCL, Gremlin or the underlying blueprint graph's native query language.


UMLG is based on the pure Blueprints api. As such any Blueprints enabled graph database will work. The Travis CI test suite currently executes successfully on Bitsy, Neo4j and Titan.