Package cloud.opencode.base.config.jdk25


package cloud.opencode.base.config.jdk25
JDK 25 Enhanced Features Package JDK 25增强特性包

This package provides advanced configuration features leveraging JDK 25 language and API enhancements.

此包提供利用JDK 25语言和API增强的高级配置特性。

Features | 主要功能:

  • Record configuration binding - Record配置绑定
  • Sealed configuration source types - 密封配置源类型
  • Virtual thread hot reload - 虚拟线程热更新
  • ScopedValue configuration context - ScopedValue配置上下文
  • Reactive configuration values - 响应式配置值
  • Pattern matching for configuration - 配置的模式匹配

Components | 组件:

Record Binding Example | Record绑定示例:

record DatabaseConfig(
    @Required String url,
    @Required String username,
    @Required String password,
    @DefaultValue("10") int maxPoolSize,
    @DefaultValue("30s") Duration connectionTimeout,
    PoolConfig pool
) {}

DatabaseConfig config = OpenConfig.bind("database", DatabaseConfig.class);

ScopedValue Context Example | ScopedValue上下文示例:

ConfigContext.withTenant("tenant-1", () -> {
    // Configuration reads prioritize tenant-specific values
    String apiKey = OpenConfig.getString("api.key");
    return processRequest(request, apiKey);
});

ConfigContext.withOverrides(Map.of("database.url", "jdbc:h2:mem:test"), () -> {
    // Temporary configuration override for testing
    runTests();
    return null;
});

Reactive Configuration Example | 响应式配置示例:

ReactiveConfigValue<String> logLevel = ReactiveConfigValue
    .ofString(config, "log.level")
    .subscribe(level -> updateLogLevel(level));

// When config changes, subscriber is notified automatically
String current = logLevel.get();
Since:
JDK 25, opencode-base-config V1.0.0
Author:
Leon Soo www.LeonSoo.com
See Also: