Skip to content

Fluxzero 1.166.0

Choose a tag to compare

@github-actions github-actions released this 15 May 15:19

1.166.0 (2026-05-15)

Features

  • feat(configuration): support additional property locations (0241383)

    Load extra Fluxzero configuration from FLUXZERO_CONFIG_LOCATIONS, with a lowercase JVM alias of fluxzero.config.locations. This lets deployments mount secrets or environment-specific config outside the application artifact without having to overload application.properties.

    The source supports comma-separated file:, plain path, and classpath: locations. optional: locations are ignored when missing, later configured locations override earlier ones, and the source sits below environment/JVM system properties but above application-<env>.properties and application.properties.

    Tests: ./mvnw -pl common -Dtest=DefaultPropertySourceTest test
    Tests: ./mvnw -pl sdk -am -DskipTests compile

  • feat(configuration): load fluxzero property resources (858c98f)

    Add a Fluxzero-specific default configuration source for classpath-root fluxzero.properties and fluxzero.json resources. This gives SDK settings an explicit home without forcing customers to mix Fluxzero defaults into application.properties.

    The new source is intentionally lower priority than application.properties and application-<env>.properties, so applications can override SDK defaults through their existing config files. JSON files are flattened to dot-separated property names, and fluxzero.properties overrides fluxzero.json within this source.

    Tests: ./mvnw -pl common -Dtest=DefaultPropertySourceTest test
    Tests: ./mvnw -pl sdk -am -DskipTests compile

  • feat(validation): validate request handler return values (68e5c5f)

    Validate constrained return values for non-passive request handler methods, covering command, query, custom, and web request handlers. This catches invalid handler responses before they are published as result or web response messages.

    The behavior is limited to annotated handler methods that declare return-value validation. Passive handlers and event handlers keep their previous behavior, and web request handlers are wired only for return-value validation so request payload handling is not broadened accidentally.

    Tests: ./mvnw -pl sdk -Dtest=DefaultValidatorTest,ValidatingInterceptorTest,GivenWhenThenWebTest test

  • feat(validation): allow bean getter compatibility mode (15ef30a)

    Keep Fluxzero validation annotation-led by default while adding a compatibility switch for projects that relied on Hibernate Validator only treating JavaBean-style getters as constrained bean properties.

    Setting fluxzero.validation.beanPropertyMethodNamesOnly=true limits method-property validation to getX(), isX(), and hasX() methods. Fields, Kotlin constructor parameter support, groups, cascaded validation, and executable validation remain unchanged.

    Tests: ./mvnw -pl sdk -Dtest=DefaultValidatorTest test

  • feat(validation): add built-in Jakarta validator (6cd8580)

    Replace the Hibernate Validator-backed JSR380 adapter with Fluxzero's own reflection-based validation implementation. The new default validator supports Jakarta constraints, custom validators, groups, group sequences and conversions, cascaded and type-use validation, executable validation, provider bootstrap, metadata lookup, value extractors, Fluxzero clocks, and SDK-owned constraint violations.

    Add Fluxzero convenience constraints, OpenAPI rendering for those constraints, Kotlin annotation coverage, provider/TCK-inspired tests, and a runnable validation benchmark. Document the supported Jakarta Validation profile and the intentionally unsupported XML/CDI/full-EL/TCK edge cases.

    Verification: ./mvnw -B install; ./mvnw -B site -Pjavadoc; targeted validation/OpenAPI suite; validation benchmark smoke run.