Preconditions
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.
-
anaptecs GitHub Repository
Clone latest version directly from our GitHub repository
Structure of the example project
As you can see in our Modeling Guide 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 |
---|---|---|
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 (sub directory xmi ) and a HTML export (sub directory html ) of the model. Sub modules 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 Framework 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 JEAF Components |
accounting-services-impl |
accounting-services-impl-runtime |
Project contains the generated runtime classes for JEAF Components Generating Code for JEAF Components |
accounting-services-impl-runtime |
accounting-persistent-objects |
Project contains the generated persistent classes. Generating Code for JEAF 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 JEAF Activities |
accounting-activities-api |
accounting-activities-impl |
Project contains the generated stubs for activities. Generating Code for JEAF Activities |
accounting-activities-impl |
accounting-service-providers-api |
Project contains the generated interface for service providers. Generating Code for JEAF Service Providers |
accounting-service-providers-api |
accounting-service-providers-impl |
Project contains the generated stubs for service provider implementations. Generating Code for JEAF Service Providers |
accounting-service-providers-impl |
accounting-junit-testcases |
Project contains the generated stubs to test services. Generating Code for JEAF Service |
accounting-junit-testcases |
Note:
-
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 modeling 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.
POJOs
Examples
Account.java
AccountBase.java
Booking.java
Service Interface
Examples
AccountingService.java
Company.java
BankType.java
CustomerQuery.java
CustomerLoadStrategy.java
Components
Activities
Examples
CreateCustomerActivity.java
CreateCustomerActivityImpl.java
Object Mappings
Examples