JEAF Generator Sample

Preparation

Please ensure, before you jump into the sample code, that you are familiar with the model driven development process in general. You will find further information about that on the following sides:

Download JEAF Generator Sample Project

If you want to work with JEAF Generator we strongly recommend to checkout our sample project. Jumping through the code is a very meaningful thing to do besides reading all the documentation.

Structure of the example project

As you can see in our Modelling Guidelines JEAF Generator is able to generate lots of different types of code based on the UML model. To ensure a better overview in the example project we created an independent Maven sub module for every content type that will be generated.

Maven Project

Description

Git Repository Link

Maven Project

Description

Git Repository Link

jeaf-generator-sample-project

Top level project of sample.

 

accounting-model

Project contains the UML model of the sample project as well as the appropriate XMI export and an HTML export of the model.

Sub module that make use of JEAF Generator reference the packaged UML model via Maven dependency.

Define XMI as Input for JEAF Generator

accounting-model

accounting-service-objects

Project contains the service objects that are generated from the UML model

Generating Code for Services

accounting-service-objects

accounting-services-api

Project contains the service interfaces of the generated services of the sample project.

Generating Code for Services

accounting-services-api

accounting-services-api-runtime

Project contains the generated runtime classes for services that are required by JEAF

Generating Code for Services

accounting-services-api-runtime

accounting-rest

Project contains the generated REST facade for services

Generating Code for Services

accounting-rest

accounting-services-impl

Project contains the generated stubs for service implementations.

Generating Code for Components

accounting-services-impl

accounting-services-impl-runtime

Project contains the generated runtime classes for components.

Generating Code for Components

accounting-services-impl-runtime

accounting-persistent-objects

Project contains the generated persistent classes.

Generating Code for Persistence

accounting-persistent-objects

accounting-domain-objects

Project contains the generated domain objects.

Generating Code for Domain Objects

accounting-domain-objects

accounting-pojos

Project contains the generated POJOs.

Generating Code for POJOs

accounting-pojos

accounting-object-mappers

Project contains generated Object Mappers.

Generating Code for Object Mappings

accounting-object-mappers

accounting-activities-api

Project contains the generated interfaces for activities.

Generating Code for Activities

accounting-activities-api

accounting-activities-impl

Project contains the generated stubs for activities.

Generating Code for Activities

accounting-activities-impl

accounting-service-providers-api

Project contains the generated interface for service providers.

Generating Code for Service Providers

accounting-service-providers-api

accounting-service-providers-impl

Project contains the generated stubs for service provider implementations.

Generating Code for Service Providers

accounting-service-providers-impl

accounting-junit-testcases

Project contains the generated stubs to test services.

Generating Code for Services

accounting-junit-testcases

 

In general the configuration of the sample project is a very good baseline to setup your projects.

However in case of the sample project all output will be written to src-gen / res-gen. This will ensure that also code / resources that actually are only generated once are always up-to-date. However in real life this is not a good setup as manual code will be overwritten every time JEAF Generator will be executed

UML Model

As mentioned several times before JEAF Generator needs an UML model as input for code generation. This sample project here uses a very simple UML model that was created to demonstrate modelling and code generation. Thus the model concentrates mostly on how to model but not on correct representation of a special business.

Most important parts of the model will be shown here. In addition the sample project also contains the MagicDraw UML project files as well as an HTML export of the model.

Service Interface

 

Components

 

Persistent Classes

Activities

 

POJOs

 

Object Mappings

Role Definitions

 

Service Providers