Skip to content

v0.4.0

Latest

Choose a tag to compare

@josedab josedab released this 20 Apr 17:26

Fixed

  • Fixed compilation error in OpenTelemetryMiddleware where lambda returned a value from void method
  • Fixed silent exception swallowing in OJSWorker heartbeat loop — errors are now logged
  • Fixed DRY violation in HttpTransport by extracting shared request logic into doRequest()
  • Fixed OJSTesting thread-safety: replaced volatile singleton with ThreadLocal for safe parallel test execution
  • Fixed silent exception swallowing in OJSWorker.nackJob() — errors are now logged at DEBUG level

Changed

  • Extracted HttpTransport.Json nested class to top-level org.openjobspec.ojs.transport.Json for better modularity
  • Decoupled OJSTesting from OJSClient — OJSClient no longer imports or references OJSTesting
  • OJSTesting.client() and OJSTesting.transport() provide a FakeTransport-backed client for tests

Added

  • OJSClient implements AutoCloseable — enables try-with-resources for proper async executor shutdown
  • module-info.java for JPMS support — exports org.openjobspec.ojs, org.openjobspec.ojs.transport, org.openjobspec.ojs.testing
  • Input validation using OJSError.ValidationError for blank job types in JobRequest and OJSWorker.register()
  • JaCoCo coverage badge in README and CI workflow
  • JSON parser safety limits: max depth (128) and max input length (10 MB) to prevent stack overflow and OOM
  • Unit tests for OpenTelemetryMiddleware (0% → 100% coverage)
  • Unit tests for OJSTesting assertions and utilities (53% → 100% coverage)
  • Unit tests for OJSClient.Builder retry and transport options (52% → 100% coverage)
  • OJSTesting fake mode integration with OJSClient — OJSTesting.fake() now intercepts enqueue calls
  • Platform logging (System.Logger) throughout OJSWorker for start/stop, job processing, and errors
  • CONTRIBUTING.md with build instructions and contribution guidelines
  • CODE_OF_CONDUCT.md (Contributor Covenant v2.1)
  • SECURITY.md with vulnerability reporting policy
  • CHANGELOG.md (this file)
  • GitHub issue templates (bug report, feature request)
  • GitHub pull request template
  • Dependabot configuration for Maven dependency updates