Repository navigation
Rainbow Gum Support - #4032
Open
agentgt wants to merge 11 commits into
Open
Rainbow Gum Support#4032agentgt wants to merge 11 commits into
agentgt wants to merge 11 commits into
Conversation
Add the optional jooby-rainbowgum module with native Typesafe Config properties, queued bootstrap logging, configured global replacement, and temporary server logger muting. A default no-op LoggingService initialization hook receives the actual lazy or programmatically supplied environment. Read the current environment config on level-change publications and document Jooby Run restarts, explicit rereading, startup behavior and configuration examples. Include the module in dependency management and the generated BOM. Draft pending a Rainbow Gum release with dynamic OFF and global router rebinding fixes. Validated on JDK 21 against the patched 1.0.0-SNAPSHOT: 1,311 Jooby core tests, 10 integration tests, clean verify, Javadoc, and a JPMS service-loading/bootstrap smoke test. Refs jooby-project#4021. Co-authored-by: Codex <noreply@openai.com>
Use a programmatic level override so muting a logger literally named root does not change the root default. Treat null HOCON map entries as absent and document caller/decorator bootstrap capabilities. Validation: JDK 21 core and integration tests pass against the patched Rainbow Gum snapshot (1,311 core tests and 11 integration tests). Co-authored-by: Codex <noreply@openai.com>
Remove the release-blocker comment now that the OFF and global router rebinding fixes are published. Validate against Maven Central artifacts without a snapshot version override. Validation: JDK 21 clean verify (1,311 core and 11 integration tests) and JPMS service-loading/bootstrap smoke test. Co-authored-by: Codex <noreply@openai.com>
The ownership marker was added by a PropertiesProvider, which runs for every service loaded LogConfig. A Rainbow Gum the application installed from such a config, or supplied by its own RainbowGumProvider, was therefore treated as Jooby's and closed and replaced when the environment loaded. The bootstrap provider now builds its own config with the marker, as the Spring Boot pre-boot provider does, and has the lowest priority so application providers win. Found in review of the branch, requested by Adam Gent. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #4032 +/- ##
===========================================
+ Coverage 0 94.20% +94.20%
- Complexity 0 6680 +6680
===========================================
Files 0 432 +432
Lines 0 20957 +20957
Branches 0 2106 +2106
===========================================
+ Hits 0 19742 +19742
- Misses 0 759 +759
- Partials 0 456 +456 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
…loggers Loggers with a fixed level stay bound to the Rainbow Gum that created them. Rebuilding logging for a later environment closed that instance, so their events were lost; making every logger changeable hid this at a cost on every logger. Logging is now configured from the first environment only, replacing the queued bootstrap instance, as with Logback and Log4j. Level changes are allowed by default only for the loggers Jetty and Undertow mute during start and stop. Rereading levels with the change publisher is opt in through logging.change.logger. The docs describe both and Jooby Run keeping the first configuration. Requested by Adam Gent. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Working notes to remove before merging. Requested by Adam Gent. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The module needs no native image metadata. Jooby needs a resource entry for application*.conf. Requested by Adam Gent. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The pattern's %n writes the platform line separator, so comparing against "\n" failed on Windows. Requested by Adam Gent. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The test's invalid configuration named a missing encoder. Rainbow Gum 0.16.2 opens the appender's output before resolving the encoder and does not close it when that fails, so application.log stayed open and Windows could not delete the temp directory. An unknown output scheme fails before anything is opened, and the test now checks no log file was created. Requested by Adam Gent.
Requested by Adam Gent.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Rainbow Gum normally works out of the box for anything that uses SLF4J but this module provides a better Jooby experience and allows you to configure all of logging with
application.conf.