Skip to main content

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

PackageNamespace KeyRole
entityentityJPA entity classes
dtodtoData transfer objects, SearchDTOs
enumsenumerationEnumeration classes
repositoryrepositoryJPA repository interfaces
serviceserviceBusiness logic services
controlcontrolREST API controllers
portportExternal system communication ports
qqSpecification Q classes
protoprotoProtocol 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