JGen Chenile code generator

Chenile code generator

Generate Chenile projects.
Then write your own blueprints.

JGen is a pure-Java, blueprint-driven code generator. A shared engine copies a blueprint's template tree, renders it, and runs the blueprint's hooks — turning a short JSON input into a ready-to-build Chenile project. Fourteen blueprints ship in the box, and the same conventions let you author your own.

Targets Chenile 2.1.35 · Apache-licensed · rajakolluru/chenile-gen

What you get

One engine, one CLI, a library of blueprints — and an authoring model that is almost entirely data.

jgen -g · -f

A predictable CLI

Emit a sample input file for any blueprint, edit it, and generate. Interactive and non-interactive flows share the same validation and pipeline.

14 blueprints

Services to full deployments

Services, headless services, workflow services, mini-monoliths, ecosystems, query modules, process server/worker deployments, interceptors, integration tests — and a blueprint that scaffolds blueprints.

templates

Author by convention

Mustache files, __name__ path placeholders, %%key=value%% conditional folders and .filelist multi-file outputs. Most behaviour lives in templates, not Java.

validation

Declarative input rules

Fields declare rules like JAVA_IDENTIFIER or KAFKA_TOPIC, enforced across CLI, portal and composed inputs before any file is written.

super_pom

Composable

Every blueprint accepts an optional parent POM and extra dependencies, so generated projects slot under a shared Maven reactor without template edits.

%

Aggregated

A blueprint can invoke other blueprints through marker folders — once, conditionally, or once per element of a list — to compose whole multi-module applications.

Thirty seconds to a service

Build the CLI, emit an input contract, edit it, generate.

git clone https://github.com/rajakolluru/chenile-gen.git && cd chenile-gen
make clean all && source setpath.sh        # puts jgen on PATH

jgen -g chenile-service -o orders.json       # emit a sample input
# edit orders.json: set service=orders, jpa=y ...
jgen -f orders.json                          # generate ./output/orders

How it works →