Skip to content
Rubén Díaz edited this page Jun 18, 2017 · 41 revisions

CobiGen - Code-based incremental Generator

Overview

CobiGen is a generic incremental generator for end to end code generation tasks, mostly used in Java projects. Due to a template-based approach, CobiGen generates any set of text-based documents and document fragments.

Input:

  • Java classes

  • Possibly more inputs like wsdl, which is currently not implemented.

Output:

  • any text-based document or document fragments specified by templates

Features and Characteristics

  • Generate fresh files across all the layers of a application - ready to run.

  • Add on to existing files merging code into it. E.g. generate new methods into existing java classes or adding nodes to an XML file. Merging of contents into existing files will be done using structural merge mechanisms.

  • Structural merge mechanisms are currently implemented for Java, XML, Java Property Syntax.

  • Conflicts can be resolved individually but automatically by former configuration for each template.

  • CobiGen provides an Eclipse integration as well as a Maven Integration.

  • CobiGen comes with an extensive documentation for users and developers.

  • templates can be fully tailored to project needs - this is considered as a simple task.

Selection of current and past CobiGen applications

General applications:

  • Generation of a Java CRUD application based on OASP architecture including all software-layers on the server plus code for js-clients (AngularJs + SenchaJs). You can find details here.

  • Generation of a Java CRUD application according to the Register Factory architecture. Persistence entities are the input for generation.

  • Generation of builder classes for generating testdata for JUnit-Tests. Input are the persistence entities.

  • Generation of a EXT JS 6 client with full CRUD operations connected a OASP4J server.

  • Generation of a Angular4 client with full CRUD operations connected a OASP4J server.

Project-specific applications in the past:

  • Generation of an additional Java type hierarchy on top of existing Java classes in combination with additional methods to be integrated in the modified classes. Hibernate entites were considered as input as well as output of the generation. The rational in this case, was to generate an additional business object hierarchy on top of an existing data model for efficient business processing.

  • Generation of hash- and equals-methods as well as copy constructors dependending on the field types of the input Java class. Furthermore, CobiGen is able to re-generate these methods/constructors triggered by the user, i.e, when fields have been changed.

  • Extraction of JavaDoc of test classes and their methods for generating a csv test documentation. This test documentation has been further processed manually in Excel to provide an good overview about the currently available tests in the software system, which enables further human analysis.

Clone this wiki locally