Project Structure
Overview
ElastiCORE generates code based on the namespace settings in env.yml. Each layer is placed in an independent package.
Generated Source Structure
The default generation paths are determined by the namespace configuration in env.yml:
src/main/java/
└── io/domain/
├── entity/ # JPA entities
├── dto/ # DTO classes
├── repository/ # Spring Data JPA repositories
├── service/ # Service layer
├── control/ # REST controllers
├── port/ # Port interfaces
└── q/ # Q classes (Specification)
Package Roles
| Package | Namespace Key | Role |
|---|---|---|
entity | entity | JPA entity classes |
dto | dto | Data transfer objects, SearchDTOs |
enums | enumeration | Enumeration classes |
repository | repository | JPA repository interfaces |
service | service | Business logic services |
control | control | REST API controllers |
port | port | External system communication ports |
q | q | Specification Q classes |
proto | proto | Protocol Buffer related |
env.yml Namespace Configuration
namespace:
entity: io.company.domain.entity
dto: io.company.domain.dto
enumeration: io.company.domain.enums
repository: io.company.domain.repository
service: io.company.domain.service
control: io.company.domain.controller
port: io.company.domain.port
proto: io.company.proto
Blueprint Directory Structure
Location of DSL definition files:
src/main/resources/
└── blueprint/
└── {domainName}/
├── env.yml # Environment configuration (required)
├── entity.yml # Entity definitions
├── dto.yml # DTO definitions
├── enumeration.yml # Enumeration definitions
├── repository.yml # Repository definitions
└── port/
├── http.yml # HTTP Port definitions
├── dbms.yml # DBMS Port definitions
└── grpc.yml # gRPC Port definitions
tip
File names can be chosen freely as long as they have a .yml extension — all such files will be processed. It is recommended to separate files by model type.
Next Steps
- env.yml Configuration - Detailed configuration guide
- Code Generation - Code generation process