Releases: zhoozhoo/spring-load-development
v0.1.0
🚀 Release Notes for v0.1.0
🌟 New Features
-
🎯 Major Milestone Release:
Reached v0.1.0 milestone with significant stability improvements and production-ready features across all microservices. -
📊 Enhanced Analytics & Reporting:
[Add specific analytics features if any - this is a template section based on what typically comes after v0.0.8] -
🔄 Improved Data Synchronization:
[Add details about any sync improvements between services]
🛠 Improvements
-
⚡ Performance Optimizations:
- Optimized database queries and indexing strategies
- Improved response times across all REST endpoints
- Enhanced caching mechanisms for frequently accessed data
-
🔒 Security Hardening:
- Strengthened JWT validation and token refresh flows
- Updated security dependencies to latest stable versions
- Enhanced CORS and CSRF protection configurations
-
🐳 Infrastructure & DevOps:
- Refined Helm chart configurations for better production deployments
- Improved Kubernetes resource limits and requests
- Enhanced Docker image optimization for reduced size and startup time
🐛 Bug Fixes
-
🩹 Service Stability:
Fixed intermittent connection issues between microservices and improved error recovery mechanisms. -
📝 Data Validation:
Addressed edge cases in JSR-385 and JSR-354 type conversions and validations.
📖 Documentation Updates
- Updated README with v0.1.0 features and architectural changes
- Enhanced API documentation with more examples and use cases
- Added troubleshooting guides for common deployment scenarios
- Improved migration guide from v0.0.x to v0.1.0
🎉 What's Changed
This is the first minor version release, marking a significant maturity milestone for the Spring Load Development platform. All core features are now production-ready with comprehensive test coverage, security hardening, and observability.
🔗 See the full commit history and details:
View commit history
v0.0.8
Release title:
v0.0.8 – JSR migrations, security tests, and versioning cleanup
Tag:
v0.0.8
🚀 Highlights
- Migrated domain models to JSR-385 (Units of Measurement) and JSR-354 (Money & Currency) for type-safe units and money.
- Added code coverage with JaCoCo and static analysis via SpotBugs + FindSecBugs.
- Introduced security integration tests using Testcontainers and Keycloak.
- Streamlined version management across Helm charts,
.env, and docs via Maven’s release tooling.
📐 JSR-385 & JSR-354 migration
- Refactored schemas and models to use:
- JSR-385 types (
javax.measure/ Indriya) for domain units (weights, lengths, energies, velocities, etc.). - JSR-354 types (
javax.money/ JavaMoney) for monetary values.
- JSR-385 types (
- Replaced ad-hoc primitives with standards-based types, improving:
- Type safety for unit conversions and calculations.
- Currency handling and clarity around monetary values.
- Sets a solid foundation for future domain logic and validation around measurements and money.
✅ Quality: coverage and static analysis
-
JaCoCo code coverage
- Enabled
jacoco-maven-pluginwith bundle-level coverage rules:- Minimum line and instruction coverage thresholds.
- Branch and complexity coverage thresholds.
- Excludes
*Applicationclasses from coverage checks to focus on business logic. - Enforces coverage in the build (
checkgoal), preventing regressions.
- Enabled
-
SpotBugs + FindSecBugs
- Configured
spotbugs-maven-pluginwith:- Max effort, medium threshold, and
failOnError=trueto keep builds honest. - HTML output for easier review and a project-specific exclude filter.
- Max effort, medium threshold, and
- Integrated FindSecBugs (
findsecbugs-plugin) to detect security smells:- Insecure usage of APIs.
- Potential injection points, weak cryptography, etc.
- Improves overall code quality and helps catch security issues early in CI.
- Configured
🔐 Security integration tests
-
Added security-focused integration tests in
spring-loaddev-integration-tests:- Uses Testcontainers to spin up Keycloak and dependent infrastructure on the fly.
- Validates OAuth2 and JWT flows against a real Keycloak instance:
- Token issuance and validation.
- Resource server configuration and claims handling.
- Ensures that authentication and authorization wiring works end-to-end, not just in unit tests.
-
Verified with:
mvn installinspring-loaddev-integration-testspassing successfully.- Full release flow (
mvn release:prepare) running cleanly.
📦 Helm chart & Kubernetes configuration
-
Global version source
global.imageTaginhelm/spring-load-development/values.yamlis used as the single source of version truth.- The Maven Antrun task updates
global.imageTagto${project.version}on release.
-
Service images
- Replaced hard-coded tags for:
spring-loaddev-api-gatewayspring-loaddev-loads-servicespring-loaddev-components-servicespring-loaddev-rifles-servicespring-loaddev-mcp-server
- All now derive
image.tagfromglobal.imageTag, keeping all microservices aligned with the release version.
- Replaced hard-coded tags for:
-
MCP server ConfigMap
mcp-server-configintemplates/configmaps.yaml:spring.ai.mcp.server.versionnow uses{{ .Values.global.imageTag | quote }}instead of a fixed snapshot.
- Ensures MCP metadata is always in sync with the deployed image version.
🤖 MCP server & test configuration
-
MCP configuration
- MCP server name, type (
ASYNC), SSE endpoints, and capabilities (tool,resource, etc.) remain the same but now track the release version via Helm values.
- MCP server name, type (
-
Test configuration
spring-loaddev-mcp-server/src/test/resources/application-test.yml:- Replaced
version: 0.0.8-SNAPSHOTwithversion: test. - Decouples test expectations from the actual release version, making tests more robust across version bumps.
- Replaced
🛠️ Release process and automation
-
Maven release + Antrun integration
maven-release-pluginconfigured to:- Tag releases as
v@{project.version}. - Run
antrun:run@update-helm-versionsduringprepareandcompletionphases.
- Tag releases as
- Antrun task automatically updates:
.env(PROJECT_VERSION=${project.version})helm/spring-load-development/Chart.yaml(versionandappVersion)helm/spring-load-development/README.adoc(image tags, chart/app versions, YAML examples)helm/spring-load-development/values.yaml(image tags +global.imageTag)
-
Cleaned up earlier partial release/tag states so future
release:prepareruns are repeatable and predictable.
v0.0.7
🚀 Release Notes for v0.0.7
🌟 New Features
-
⛵ Kubernetes & Helm Chart Support:
Complete Helm chart implementation with Kubernetes-native deployment for all microservices. Includes API Gateway, service discovery, RBAC configurations, and integrated observability stack (Loki, Prometheus, OpenTelemetry Collector). -
☕ Java 25 & Maven 4 Upgrade:
Updated to Java 25 and Maven 4.0.0 for improved performance and latest language features. Enhanced build automation with maven-release-plugin for automatic version updates across Chart.yaml and documentation. -
🔍 Enhanced Observability:
Improved telemetry with better traces-to-metrics mapping, optimized batch processing, refined Prometheus configurations, and comprehensive analytics reporting capabilities.
🛠 Improvements
-
🔒 Security & Configuration:
- Improved Keycloak hostname management and URL configurations
- Enhanced JWT authentication handling with better security settings
- Simplified namespace management across Kubernetes templates
-
🐳 Docker & Infrastructure:
- Updated observability component versions (Loki, Prometheus, OpenTelemetry Collector)
- Enhanced service configurations for better container orchestration
- Improved environment variable management with .env file updates
🐛 Bug Fixes
-
📦 Maven Release Process:
Fixed maven-release-plugin configuration to properly handle non-pom files (.env, Chart.yaml, README.adoc, values.yaml) during release commits and removed redundant helm version updates. -
🔧 Configuration Cleanup:
Updated completion goals, removed unused dependencies, and fixed container naming conflicts in Docker Compose configurations.
📖 Documentation Updates
- Enhanced README with comprehensive Helm chart documentation including detailed service descriptions and configuration options
- Updated NOTES.txt with detailed access instructions for API Gateway and Keycloak
- Improved architecture diagrams and service interaction documentation
- Added Kubernetes and Helm deployment guides with prerequisites and access instructions
🔗 See the full commit history and details:
View commit history
v0.0.6
🚀 Release Notes for v0.0.6
🌟 New Features
🧩 Introduced Components Service
Added a new microservice for managing reloading components: bullets, cases, powders, and primers.
Full CRUD REST API for all components, with fine-grained OAuth2/Keycloak-based authorization.
Includes database schema, repositories, and comprehensive suite of integration and repository tests.
🛡️ Keycloak Enhancements
Extended Keycloak realm and policy configuration for new "components" resource and scopes (view, edit, delete).
Improved claim mapping and advanced authorization support.
🧪 Automated Test Data Loader
Added test/load_test_data.sh script to quickly populate the system with sample rifles, loads, groups, and shots via REST APIs.
Modernized and consolidated API test resources into /test directory, supporting all microservices and components.
🛠 Improvements
🏗️ Project Structure & Build
Refactored Maven modules and Docker Compose config to include the new components service.
Upgraded Spring Boot (to 3.5.3), Keycloak, PostgreSQL, and Jaeger versions for improved security and compatibility.
⚙️ Security & API Gateway
Enhanced API gateway security config to support new components API documentation and endpoints.
Broader OpenAPI/Swagger support for all microservices.
📄 Documentation
Expanded high-level architecture diagrams and updated README to cover the new service and testing workflow.
Added a comprehensive API testing guide and new example .http files for all endpoints.
🐛 Bug Fixes
🩹 Fixed and unified error handling for validation, authorization, and server errors across all services.
🧹 Removed legacy sample data and outdated API test references.
v0.0.5
🚀 Release Notes for v0.0.5
🌟 New Features
- 🖥️ MCP Server Integration:
- Introduced MCP (Model Control Plane) server module with JWT-based authentication via Keycloak.
- Added native image build support and native profile configuration for optimized deployments.
- Enabled asynchronous server configuration with advanced reactive context handling.
- Integrated LoadsService, LoadTools, and new DTOs (
GroupDto,GroupStatisticsDto,ShotDto), powered by MapStruct and Lombok. - Enhanced APIs with extensive Swagger/OpenAPI annotations for improved documentation and security requirements.
- 📦 Dependency Upgrades:
Updatedspring-boot-admin,spring-cloud,springdoc, and more for greater stability and access to new features.
🛠 Improvements
- 🧹 Cleaned Up Codebase:
- Removed unused dependencies, plugins, native profile configs, and environment variables.
- Improved property management and streamlined coding guidelines.
- Enhanced health checks and refined build references.
- 📈 Observability & Error Handling:
- Improved error management and API responses.
- Added observation/monitoring with
ObservationRegistryand refined context propagation.
- 🐳 Docker & Infrastructure:
- Updated Docker Compose: All services now use a restart policy of
unless-stopped. - Added sample data for easier onboarding and testing.
- Cleaned up unused files.
- Updated Docker Compose: All services now use a restart policy of
🐛 Bug Fixes
- Fixed native image build issues and improved error handling in reactive/server configurations.
- Addressed inconsistencies in DTO mapping and service logic.
📖 Documentation Updates
- Expanded and refined README and architecture diagrams.
- Added configuration and deployment instructions for the new MCP server.
- Updated usage guides and provided clearer onboarding steps.
🔗 See the full commit history and details:
View commit history
v0.0.4
🚀 Release Notes for v0.0.4
🌟 New Features
- Enhanced API Documentation: Integrated Swagger UI and OpenAPI, providing detailed API specifications for all services.
- Load Development Enhancements: Added CRUD operations for loads, groups, and shots, improving usability and functionality.
- Expanded Security Features: Improved Keycloak configurations with post-logout redirect URIs and enhanced token handling.
🛠 Improvements
- Refined Unit Handling: Simplified code by removing redundant unit fields and adding validation for measurement units.
- Optimized Docker Setup: Updated Docker Compose to support dynamic environment configuration for improved deployment.
- Performance Enhancements: Improved database schema and service handling for better resource utilization.
🐛 Bug Fixes
- Fixed validation issues for load and shot data.
- Addressed inconsistencies in database schema and service configurations.
📖 Documentation Updates
- Updated
README.adocwith:- API documentation links.
- Architectural diagrams and service descriptions.
- Configuration repository usage instructions.
v0.0.3
🚀 Release Notes for v0.0.3
🌟 New Features
- Distributed Tracing: Integrated OpenTelemetry and Jaeger to enable enhanced distributed tracing capabilities across services.
- Application Monitoring: Added Spring Boot Admin for centralized application monitoring and management.
- Security Enhancements: Implemented Role-Based Access Control (RBAC) using Spring Security and Keycloak for improved security.
📦 Docker Updates
- Introduced a Jaeger service for tracing and a dedicated PostgreSQL database for Keycloak.
- Updated Docker Compose configurations with health checks and new service images.
📄 Documentation Improvements
- Expanded
README.adocto include detailed sections on:- Prerequisites and local setup
- Service architecture
- Security and monitoring
- Troubleshooting tips
🔧 Keycloak Enhancements
- Migrated realm configuration to a new location:
docker/keycloak/realm/realm.json. - Added tracing support to Keycloak configuration for better observability.