Examples
This section collects example projects and records their verification status alongside the documentation.
The focus is on small, focused examples that demonstrate specific JoinedWorkz concepts:
- how to structure CMN and profile models
- how to wire the Maven plugin and facilities
- how generation and outlet overrides work in real projects
More examples will be added over time.
Status baseline — checked 2026-07-26
The self-contained documentation quickstart targets JoinedWorkz 1.3.80, Java 21 and Maven 3.9+. The public quickstart repository has a different, older status described below. The canonical Spring Boot example is the
example-spring-bootmodule fromrelease/1.3.80.
1. JoinedWorkz quickstart
The standalone example project was inspected at immutable commit 58af7168b7fa:
That inspected revision uses JoinedWorkz 1.3.77 and has not yet passed the release 1.3.80 documentation gate. Do not use its POM as the version baseline for this documentation. Until the example is refreshed, follow the self-contained Quickstart, which uses JoinedWorkz 1.3.80, Java 21 and Maven 3.9 or newer.
After the planned refresh and verification, it can again serve as a reference, experiment starting point and project template.
2. How the quickstart maps to the documentation
After its planned release refresh, the quickstart repository will mirror the structure of this documentation:
Get Started / Quickstart
shows how to set up the Maven build and run the generator once.Reference sections
(CMN reference, profile reference, Maven plugin reference) explain the syntax and configuration that you can see in the example project.
Whenever a guide mentions a CMN fragment or a Maven snippet, you should be able to compare it with the relevant canonical example. The customer CRUD model used by the REST and Spring Boot guides belongs to the separate Spring Boot example described below, not to the quickstart repository.
3. Planned example categories
Over time, more example projects are planned, for example:
REST backend with persistence
combining API modelling with entities mapped to a database.Multi-module setup with outlet overrides
model in one module, generate OpenAPI, DTOs and backend code into separate sibling modules.Custom generator and platform extensions
small facility that adds a profile, cartridges and strategies on top of the existing platforms.Integration into an existing Java project
use JoinedWorkz models to generate only selected artefacts (e.g. OpenAPI or DTOs) and wire them into an existing codebase.
These categories are a roadmap rather than a fixed list. The exact projects may evolve over time as JoinedWorkz and its usage patterns develop.
If you have a concrete scenario that would be useful as an example, you can use the contact information on the JoinedWorkz website to propose it.
4. Spring Boot CRUD example
In addition to the Base-only quickstart there is a Spring Boot example that demonstrates how the SpringBoot facility and its entity CRUD generators work together:
The source used for the verification was commit df7cabf7f21b.
The example contains:
- a customer entity model,
- an API model that uses the
createEntity,readEntity,updateEntity,queryEntitiesanddeleteEntitymethod types, - a component model that provides the customer resource and names its controller,
- generated Spring Boot controllers,
- generated
DataAccessServiceclasses for persistence, - generated mapper interfaces between DTOs and entities.
- a manually maintained Spring Boot application shell.
The API model for the customer CRUD endpoints looks roughly like this:
api package org.joinedworkz.examples.customer.api
import org.joinedworkz.examples.customer
import org.joinedworkz.facilities.profiles.springboot
import org.joinedworkz.facilities.springboot.api
platform SpringBoot
resource /customers as Customer[] by id {
queryEntities()
createEntity()
readEntity()
updateEntity()
deleteEntity()
}
abstract resource /address as Address { }The component model binds that resource to the generated HTTP boundary:
package org.joinedworkz.examples.backend
import org.joinedworkz.examples.customer.api
import org.joinedworkz.facilities.profiles.springboot
platform SpringBoot
component CustomerBackend
basePackage='org.joinedworkz.examples.customer.webapp' {
provide /customers
subPackage='customers.v1'
controller="CustomerV1Controller" {
}
}Together, the domain, API and component models generate under src/generated/**:
CustomerV1Controllerand its API interface from the component'sprovide /customersboundary,CustomerDataAccessServicewith CRUD operations,- a mapper interface between API DTOs and the entity type,
- wiring between controller and data access service, including mapping.
The Base cartridge also writes the model-scoped customer API document and an additional CustomerBackend OpenAPI document aggregating all endpoints provided by that component.
Release 1.3.80 generation, main-source compilation and packaging were verified offline with Java 21.0.8 and Maven 3.9.16 on 2026-07-26. The generated CustomersResourceIT is not registered as a Maven test source and was therefore neither compiled nor executed. Runtime startup and CRUD endpoint smoke tests are still pending, so this module is not yet presented as a verified runnable reference.
