Skip to content

fix(micrometer): add MicrometerOutboxListener to ConditionalOnClass for Okapi Spring auto configuration class - #85

Merged
rawo merged 2 commits into
mainfrom
bugfix/micrometer-depedency
Jul 29, 2026
Merged

fix(micrometer): add MicrometerOutboxListener to ConditionalOnClass for Okapi Spring auto configuration class#85
rawo merged 2 commits into
mainfrom
bugfix/micrometer-depedency

Conversation

@rawo

@rawo rawo commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

#84

Fix: add MicrometerOutboxListener to the class-level @ConditionalOnClass, so the whole autoconfiguration is skipped (not just attempted and failed) when okapi-micrometer isn't on the classpath.

Copilot AI review requested due to automatic review settings July 28, 2026 15:39

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR fixes a Spring Boot autoconfiguration edge case where OkapiMicrometerAutoConfiguration could be loaded when Micrometer is present (e.g., via Actuator) but okapi-micrometer is not, leading to NoClassDefFoundError at startup (Issue #84). It tightens the classpath guard and adds a regression test to ensure the autoconfiguration is fully skipped when okapi-micrometer classes are absent.

Changes:

  • Extend the class-level @ConditionalOnClass guard in OkapiMicrometerAutoConfiguration to also require an okapi-micrometer type (via class name string).
  • Add a Spring Boot FilteredClassLoader-based test covering the “MeterRegistry present, okapi-micrometer missing” scenario and a sanity check for the positive path.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
okapi-spring-boot/src/main/kotlin/com/softwaremill/okapi/springboot/OkapiMicrometerAutoConfiguration.kt Strengthens classpath-based conditional loading to avoid NoClassDefFoundError when okapi-micrometer is not on the classpath.
okapi-spring-boot/src/test/kotlin/com/softwaremill/okapi/springboot/OkapiMicrometerAutoConfigurationTest.kt Adds regression coverage verifying autoconfiguration is skipped when MicrometerOutboxListener is hidden from the context classloader.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@endrju19 endrju19 self-assigned this Jul 28, 2026
…tional okapi specific classes

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Rafał Wokacz <rafal.wokacz@gmail.com>
Copilot AI review requested due to automatic review settings July 29, 2026 07:27

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated no new comments.

@rawo
rawo merged commit 4036f65 into main Jul 29, 2026
9 checks passed
@rawo
rawo deleted the bugfix/micrometer-depedency branch July 29, 2026 07:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants