Foundation Tiles
Foundation tiles provide core functionality and base configurations that other tiles depend upon. These tiles establish fundamental properties, version handling, and integration with Spring Boot applications.
base-service-tile
Provides foundational properties and configurations for Java services in the NGSS ecosystem.
- Purpose
-
Establishes core service properties, Docker repository configuration, and build conventions that are inherited by container and deployment tiles.
- Features
-
-
Docker repository URL configuration (
docker.repo.url) -
Service base path and main class configuration
-
Build timestamp and numbering system
-
Service naming conventions
-
Integration with NGSS container standards
-
- Key Properties
-
-
docker.repo.url: Registry URL for container images (default:dtr.mapsandbox.net) -
service.basepath: HTTP context path for the service -
service.main.class: Main Java class for service startup -
buildnumber: Build timestamp for image tagging
-
- Usage
-
-
Used as a dependency by container build tiles (
jib-maven-plugin-tile) -
Provides consistent service configuration across NGSS projects
-
Foundation for Docker and Kubernetes deployment workflows
-
- Dependencies
-
None (base tile)
parse-version-tile
Handles Maven project version parsing and semantic version component extraction.
- Purpose
-
Parses the Maven project version into semantic components that can be used by other tiles for tagging, naming, and versioning strategies.
- Features
-
-
Semantic version parsing using
build-helper-maven-plugin -
Version component extraction (major, minor, patch)
-
Integration with container image tagging
-
Support for complex version schemes
-
- Key Properties Generated
-
-
parsedVersion.majorVersion: Major version component -
parsedVersion.minorVersion: Minor version component -
parsedVersion.incrementalVersion: Patch version component -
Additional semantic version properties
-
- Usage
-
-
Used by container tiles for image tagging (
v${parsedVersion.majorVersion}) -
Referenced in service environment variables
-
Supports deployment versioning strategies
-
- Dependencies
-
None (base tile)
- Benefits
-
-
Consistent version handling across all tiles
-
Enables semantic version-based deployment strategies
-
Simplifies container image tagging
-
spring-properties-tile
Integrates Spring Boot application properties with the Maven build process.
- Purpose
-
Reads Spring Boot
application.propertiesfiles and makes key configuration values available as Maven properties for use by other tiles. - Features
-
-
Properties file parsing and integration
-
Spring Boot configuration bridge
-
Build-time property resolution
-
Service base path extraction
-
- Key Properties Extracted
-
-
service.basepath: Extracted fromserver.servlet.context-pathin application.properties -
Additional Spring configuration properties as needed
-
- Usage
-
-
Used by container tiles to configure service paths
-
Enables consistent configuration between Spring Boot and Maven
-
Supports environment-specific property resolution
-
- Dependencies
-
None (base tile)
- Integration
-
-
Works seamlessly with Spring Boot applications
-
Provides build-time access to runtime configuration
-
Ensures consistency between application and deployment configuration
-
Tile Relationships
These foundation tiles work together to provide a consistent base for all other NGSS tiles:
Dependency Chain:
- parse-version-tile → Used by container tiles for versioning
- spring-properties-tile → Used by container tiles for service configuration
- base-service-tile → Used by jib-maven-plugin-tile and deployment tiles
Common Usage Pattern:
Most NGSS services will indirectly use these tiles through higher-level tiles like jib-maven-plugin-tile or docker-maven-plugin-tile, which include them as dependencies.