Generators for Business Capabilities

In this section you find documentation about the generator Capability, which subsumes a bunch of generators that are capable of generating Java code for data-driven web applications and webservices. You can use this generator to build software systems that follow one of the following architectures:

  • microservices
  • monolith
  • distributed monolith

The generator doesn’t force you into any of these architectures. It even serves you well, when you only need a persistence layer or a simple webservice. In the end it is kind of a swiss army knife.

The main modeling concept to create models to serve as input for the Capability generator is capability. A modeled capability provides references to other model elements, for which code is going to be generated. Here you can find more information about the modeling of capabilities. The following picture shows a sample capability MyCapability:

Capability Sample Model

The benefits to use the Capability generator instead of several individual generators are:

  • You don’t need to think about the mapping between model files and generators. You simply use all of your model files as input for a single generator.
  • The generator automatically finds out, in which software component a generated file has to be included
  • You only need to set up and maintain one single generation project.
  • You don’t have to keep generation options in sync accross multiple generation projects.
  • You decide within the model itself, which parts of the model are being used for which parts of the generated software system.

The following table points you to the individual generators whose functionality is contained in the Capability generator.

Generator Purpose
JSF Application JSF web application
JSF Web-Fragment JSF web pages, in a modular form, reusable in many different web applications
EJB components that implement business logic and data conversion logic
JPA persistence layer to store data in a relational database
JAX-RS webservice implementations
JAXB POJOs for the de/serialization of data for the JSON and XML formats
Retrofit webservice client code

Note

You need to set up your build configuration, e.g. maven pom files or Eclipse .project files, yourself. We plan to provide additional code generators that are capable of providing this automatically.