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​