Skip to content

Commit e3a0573

Browse files
committed
Document Spring Boot Integration: Added detailed guides for setup, auto-configuration, MigrationService, Actuator and Metrics integration, multi-domain support, and updated changelogs.
1 parent 6205a94 commit e3a0573

2 files changed

Lines changed: 102 additions & 0 deletions

File tree

CHANGELOG.md

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,78 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
66

77
---
88

9+
## [0.4.0] - 2026-01-09
10+
11+
### Added
12+
13+
#### Spring Boot Starter Module (`aether-datafixers-spring-boot-starter`)
14+
15+
New module providing seamless Spring Boot integration with auto-configuration, fluent migration API, and observability features.
16+
17+
**Auto-Configuration (`spring.autoconfigure`):**
18+
- `AetherDataFixersAutoConfiguration` — Main entry point coordinating all sub-configurations
19+
- `DynamicOpsAutoConfiguration` — Auto-configures `GsonOps` and `JacksonOps` beans based on classpath
20+
- `DataFixerAutoConfiguration` — Creates `AetherDataFixer` beans from `DataFixerBootstrap` definitions
21+
- `MigrationServiceAutoConfiguration` — Configures the `MigrationService` with metrics integration
22+
- `ActuatorAutoConfiguration` — Configures health indicators, info contributors, and custom endpoints
23+
- Conditional activation via `aether.datafixers.enabled` property (default: `true`)
24+
- Version resolution from properties, bootstrap `CURRENT_VERSION` constant, or global default
25+
26+
**Configuration Properties (`spring.config`):**
27+
- `AetherDataFixersProperties` — Root configuration with `aether.datafixers.*` prefix
28+
- `DataFixerDomainProperties` — Per-domain configuration (version, primary, description)
29+
- `DynamicOpsFormat` — Enum for selecting default serialization format (GSON, JACKSON)
30+
- `ActuatorProperties` — Control schema/fix detail exposure in actuator responses
31+
- `MetricsProperties` — Configure timing, counting, and domain tag name
32+
33+
**Migration Service (`spring.service`):**
34+
- `MigrationService` — High-level interface with fluent builder API
35+
- `MigrationService.MigrationRequestBuilder` — Builder for configuring migrations
36+
- `DefaultMigrationService` — Thread-safe implementation with metrics integration
37+
- `MigrationResult` — Immutable result object with success/failure, data, versions, duration, error
38+
- Fluent API: `.migrate(data).from(version).to(version).execute()`
39+
- Domain selection: `.usingDomain("game")` for multi-domain setups
40+
- Latest version resolution: `.toLatest()` resolves at execution time
41+
- Async execution: `.executeAsync()` returns `CompletableFuture<MigrationResult>`
42+
- Custom DynamicOps: `.withOps(ops)` for custom serialization
43+
44+
**Multi-Domain Support (`spring.autoconfigure`):**
45+
- `DataFixerRegistry` — Thread-safe registry for managing multiple DataFixer instances
46+
- Support for `@Qualifier` annotated bootstrap beans
47+
- `createQualifiedFixer()` factory method for domain-specific DataFixer creation
48+
- Domain availability checking via `hasDomain()` and `getAvailableDomains()`
49+
- Default domain ("default") for single-bootstrap setups
50+
51+
**Actuator Integration (`spring.actuator`):**
52+
- `DataFixerHealthIndicator` — Reports UP/DOWN/UNKNOWN based on DataFixer operational status
53+
- `DataFixerInfoContributor` — Adds `aether-datafixers` section to `/actuator/info`
54+
- `DataFixerEndpoint` — Custom endpoint at `/actuator/datafixers` with domain details
55+
- Per-domain health status and version information
56+
- Domain-specific endpoint: `/actuator/datafixers/{domain}`
57+
- Fail-fast on first domain error with detailed error message
58+
59+
**Micrometer Metrics (`spring.metrics`):**
60+
- `MigrationMetrics` — Records migration metrics using Micrometer
61+
- `aether.datafixers.migrations.success` — Counter for successful migrations (tagged by domain)
62+
- `aether.datafixers.migrations.failure` — Counter for failed migrations (tagged by domain, error_type)
63+
- `aether.datafixers.migrations.duration` — Timer for migration execution time
64+
- `aether.datafixers.migrations.version.span` — Distribution summary of version spans
65+
- Automatic metric recording in `DefaultMigrationService`
66+
- Thread-safe meter caching per domain
67+
68+
### Documentation
69+
70+
- Added comprehensive Spring Boot Integration documentation
71+
- Quick Start Guide with complete code examples
72+
- Configuration Reference for all `aether.datafixers.*` properties
73+
- MigrationService API documentation with sync/async patterns
74+
- Multi-Domain Setup guide with `@Qualifier` examples
75+
- Actuator Integration guide with security recommendations
76+
- Metrics Integration guide with PromQL queries, Grafana dashboard, and alerting rules
77+
- Updated main documentation with Spring Boot module links
78+
79+
---
80+
981
## [0.3.0] - 2026-01-08
1082

1183
### Added

docs/appendix/changelog.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,36 @@ History of documentation updates. For code changes, see the main [CHANGELOG.md](
44

55
---
66

7+
## Version 0.4.0
8+
9+
### New Section: Spring Boot Integration
10+
11+
Added comprehensive documentation for the Spring Boot Starter module:
12+
13+
- [Spring Boot Overview](../spring-boot/index.md) — Introduction, architecture diagram, auto-configuration classes
14+
- [Quick Start Guide](../spring-boot/getting-started.md) — Step-by-step tutorial with complete code examples
15+
- [Configuration Reference](../spring-boot/configuration.md) — Complete property reference (YAML and properties format)
16+
- [MigrationService API](../spring-boot/migration-service.md) — Fluent API documentation, sync/async patterns, error handling
17+
- [Multi-Domain Setup](../spring-boot/multi-domain.md) — Managing multiple DataFixer instances with `@Qualifier`
18+
- [Actuator Integration](../spring-boot/actuator.md) — Health indicators, info contributors, custom endpoints, security
19+
- [Metrics Integration](../spring-boot/metrics.md) — Micrometer metrics, PromQL queries, Grafana dashboard, alerting rules
20+
21+
### Key Features Documented
22+
23+
- **Auto-Configuration**: Automatic DataFixer bean creation from `DataFixerBootstrap` beans
24+
- **Fluent Migration API**: `MigrationService` with builder pattern for migrations
25+
- **Multi-Domain Support**: `DataFixerRegistry` for managing independent DataFixer instances
26+
- **Actuator Endpoints**: `/actuator/health`, `/actuator/info`, `/actuator/datafixers`
27+
- **Micrometer Metrics**: Success/failure counters, duration timers, version span tracking
28+
- **Async Execution**: `CompletableFuture` support with configurable executors
29+
30+
### Updated Pages
31+
32+
- [Main README](../README.md) — Added Spring Boot Integration section and module to table
33+
- [Installation Guide](../getting-started/installation.md) — Added Spring Boot module to overview and installation section
34+
35+
---
36+
737
## Version 0.3.0
838

939
### New Section: Schema Tools Module

0 commit comments

Comments
 (0)