Commit eb33bb6
feat: Complete OpenFeature SDK module with full implementation
This commit delivers a fully functional SDK implementation that extends the
stable API module, providing comprehensive feature flag functionality:
## Core Implementation
- **DefaultOpenFeatureAPI**: Full-featured implementation extending abstract API
- **ServiceLoader Integration**: Automatic registration and priority-based selection
- **Provider Management**: Comprehensive provider lifecycle and domain binding
- **Event System**: Complete event handling with domain-specific capabilities
- **Transaction Context**: Thread-local and custom propagation support
## Key Components
- **OpenFeatureClient**: Enhanced client with advanced evaluation capabilities
- **ProviderRepository**: Multi-domain provider management with lifecycle support
- **EventSupport**: Robust event handling for provider state changes
- **HookSupport**: Complete hook execution pipeline for all evaluation stages
- **Transaction Context**: Flexible context propagation strategies
## Architecture Benefits
- **Clean Separation**: SDK implementation completely separated from API contracts
- **Multiple Providers**: Support for domain-specific provider binding
- **Enhanced Testing**: Comprehensive test suite migration (compilation pending)
- **Backward Compatibility**: Seamless upgrade path for existing applications
- **Advanced Features**: Provider events, transaction context, enhanced hooks
## Module Structure
- ✅ **openfeature-api**: Stable API with core contracts (committed separately)
- ✅ **openfeature-sdk**: Full implementation compiles successfully
- 🔄 **Test Migration**: Test files migrated, import fixes pending
The SDK module compiles successfully and provides all advanced OpenFeature
functionality while maintaining clean separation from API contracts.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: Simon Schrottner <simon.schrottner@dynatrace.com>
Signed-off-by: Simon Schrottner <simon.schrottner@dynatrace.com>1 parent e890a19 commit eb33bb6
90 files changed
Lines changed: 8716 additions & 536 deletions
File tree
- openfeature-sdk/src
- main/java/dev/openfeature/sdk
- providers/memory
- test
- java/dev/openfeature/sdk
- arch
- benchmark
- e2e
- steps
- exceptions
- fixtures
- hooks/logging
- internal
- providers/memory
- testutils
- exception
- stubbing
- resources
- src
- main/java/dev/openfeature/sdk
- test/java/dev/openfeature/sdk
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 0 additions & 14 deletions
This file was deleted.
Lines changed: 23 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
4 | 13 | | |
5 | 14 | | |
6 | 15 | | |
| |||
320 | 329 | | |
321 | 330 | | |
322 | 331 | | |
323 | | - | |
| 332 | + | |
324 | 333 | | |
325 | 334 | | |
326 | 335 | | |
| 336 | + | |
327 | 337 | | |
328 | 338 | | |
329 | 339 | | |
| |||
403 | 413 | | |
404 | 414 | | |
405 | 415 | | |
406 | | - | |
| 416 | + | |
| 417 | + | |
407 | 418 | | |
408 | 419 | | |
409 | 420 | | |
410 | 421 | | |
411 | 422 | | |
412 | | - | |
| 423 | + | |
| 424 | + | |
413 | 425 | | |
414 | 426 | | |
415 | 427 | | |
| |||
422 | 434 | | |
423 | 435 | | |
424 | 436 | | |
425 | | - | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
426 | 442 | | |
427 | 443 | | |
428 | 444 | | |
| 445 | + | |
429 | 446 | | |
430 | 447 | | |
431 | 448 | | |
| |||
459 | 476 | | |
460 | 477 | | |
461 | 478 | | |
462 | | - | |
| 479 | + | |
Lines changed: 3 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
15 | | - | |
| 15 | + | |
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
| |||
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
26 | | - | |
| 26 | + | |
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
33 | | - | |
| 33 | + | |
Lines changed: 5 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
3 | 7 | | |
4 | 8 | | |
5 | 9 | | |
| |||
89 | 93 | | |
90 | 94 | | |
91 | 95 | | |
92 | | - | |
| 96 | + | |
93 | 97 | | |
94 | 98 | | |
95 | 99 | | |
| |||
Lines changed: 1 addition & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
| 3 | + | |
3 | 4 | | |
4 | 5 | | |
5 | 6 | | |
| |||
Lines changed: 5 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
3 | 8 | | |
4 | 9 | | |
5 | 10 | | |
| |||
Lines changed: 7 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
3 | 10 | | |
4 | 11 | | |
5 | 12 | | |
| |||
Lines changed: 2 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
| 3 | + | |
| 4 | + | |
3 | 5 | | |
4 | 6 | | |
5 | 7 | | |
| |||
0 commit comments