| Build Status | |
|---|---|
| Coverage | |
| Source Info |
Tailoringexport platform is realized using Spring. Following rules shall be followed:
- Dependency Injection(DI) has to be performed via Java configuration
- autoconfiguration is forbidden except for Spring-Data-Repositories
- all configurations shall be implemented in tailoringexpert-bootapp-module
- any package shall have a dedicated configuration class
- Code first approach, no manual created webservice descriptor.
- Webservices are to be implemented as
RestControllerintailoringexpert-restmodule - Webservices are to be documented using OpenApi annotations
To avoid manual implementing of
- getter
- setter
- equals
- hashCode
- toString
Lombok shall be used.
To reduce manual effort for converting different data types, Mapstruct shall be used. Each service which needs datatype conversation shall define a mapper class named
ServiceNameMapper
in same package as service.
In case no data will be returned due unknown paths (project, tailoring, ...) Optional shall be returned. RestController shall return 404 in case of Optional.empty.
Business core must not have external dependencies except
- lombok
- mapstruct
- log4j2
Data/Domain objects of all layers shall be created in package domain.
Persistence objects and database access shall be implemented in tailoringexpert-data-jpa. Dataobjects shall be created in package domain, spring data acces in repository OR-Mapping is to be implemented via annotations.
Architecture documentation can be found here as arc42 document.
| Modulname | Beschreibung |
|---|---|
| tailoringexpert-core | Business core of platform. |
| tailoringexpert-data-jpa | Implementation of data access needed by core component |
| tailoringexpert-rest | Component providing REST services of platform |
| tailoringexpert-poi | Module for importing requirements and generating Excel files using POI. |
| tailoringexpert-openhtmltopdf | Module for generating PDF documents using Openhtmltop. |
| tailoringexpert-security | Security configuration using spring-security without using an external identity manager |
| tailoringexpert-tenant | Proxies for tenant implementations of type TenantInterface. |
| tailoringexpert-bootapp | Runnable app of platform |
| tailoringexpert-distribution | Module to create archive to be used for creating a platform docker image |
- Java 17 JDK
- Maven
To build the platform it is recommended to create a profile containing liquibase properties for intgegration test
database connection.
Platform can be build using
mvn -P tailoringexpert-platform.local clean install
For testing purpose there is a demo platform in github. See instructions for setting up and running the (demo) system in README.md
There is a commandline client eu.tailoringexpert.JasyptClient in tailoringxpert-bootapp module.
Usage:
eu.tailoringexpert.JasyptClient --algorithm PBEWithMD5AndTripleDES --password ThisIsUsedToEncryptParameters --parameter param1 --parameter paramX
If no algorithm was provided, PBEWithMD5AndTripleDES is used as default algorithm, which is also used by the bootapp.