Skip to content

Remove dead logback.configurationFile reference and silence noisy pax-web INFO logs#177

Merged
vharseko merged 6 commits into
OpenIdentityPlatform:masterfrom
vharseko:win-error
May 14, 2026
Merged

Remove dead logback.configurationFile reference and silence noisy pax-web INFO logs#177
vharseko merged 6 commits into
OpenIdentityPlatform:masterfrom
vharseko:win-error

Conversation

@vharseko
Copy link
Copy Markdown
Member

Summary

The OPENIDM_OPTS set in shell/batch launchers, Dockerfiles and the GitHub Actions
workflow contained -Dlogback.configurationFile=conf/logging-config.groovy, but
that file does not exist in the project (it was removed years ago — see commit
0bc8f2ac1 "Removed usage of logback, reverted to original logging in trunk").

Because the configured file is missing, Logback silently falls back to its default
BasicConfigurator, which dumps DEBUG-level output to System.err. On Windows
startup.bat launches Java via start "OpenIDM" java … in a separate console,
whose output is captured verbatim by the GitHub Actions runner — that is why the
Windows job log looked dramatically more verbose than the Linux/macOS one.

In addition, several org.ops4j.pax.web.* loggers emit INFO records during
servlet/error-page registration (e.g. HttpServiceEnabled, JettyServerWrapper)
that bloat openidm0.log.0 without adding diagnostic value.

Changes

  • Drop the dead -Dlogback.configurationFile=conf/logging-config.groovy
    (and conf\logging-config.xml in the Windows service installer) from:
    • openidm-zip/pom.xml (experimental-build profile)
    • openidm-zip/src/main/resources/startup.sh
    • openidm-zip/src/main/resources/bin/install-service.bat
    • Dockerfile, Dockerfile-alpine
    • .github/workflows/build.yml (UI smoke-tests step)
  • Suppress noisy pax-web INFO records by adding
    org.ops4j.pax.web.level=WARNING to
    openidm-zip/src/main/resources/conf/logging.properties.
  • Bump copyright year in openidm-zip/pom.xml to 2026.

Note: startup.bat and bin/create-openidm-rc.sh keep the
${openidm.options} Maven placeholder; after this change it expands to an
empty string for the default (experimental-build) profile, which is the
intended behaviour.

Why the slash was not the cause

-D…=conf/logging-config.groovy works the same on Windows as on Unix — the JVM
accepts forward slashes in file paths and Logback's ContextInitializer
resolves the value as a classpath resource / URL / file regardless of OS. The
difference between platforms came from the missing file plus how start routes
stdout/stderr on Windows, not from the path separator.

Verification

  • Unix smoke-test step (startup.sh) starts cleanly; openidm0.log.0 no
    longer contains org.ops4j.pax.web.* INFO records for servlet/error-page
    registration.
  • Windows smoke-test step (startup.bat) produces output of the same volume
    as the Unix one; no Logback BasicConfigurator DEBUG dump.
  • Docker images build and pass health-check.

Risk

Low. The removed system property pointed at a non-existent file and therefore
had no functional effect; logging behaviour is unchanged where the file was
absent (i.e. everywhere). The new JUL filter only raises the threshold for the
already-noisy org.ops4j.pax.web package to WARNING.

vharseko added 4 commits May 13, 2026 12:06
Add org.apache.felix.prefs bundle to provide org.osgi.service.prefs
package (including BackingStoreException class) at runtime, fixing:
  INFO: org.apache.felix.webconsole.internal.compendium.PreferencesConfigurationPrinter
  not enabled. Reason: Class org/osgi/service/prefs/BackingStoreException missing
@vharseko vharseko requested a review from maximthomas May 13, 2026 14:04
Select-String in PowerShell is case-insensitive by default, so the
Windows smoke-test step was matching benign INFO records such as
"ErrorServletComponent activate" / "Registered servlet at /error"
against the ERROR|SEVERE|Exception|Throwable pattern and failing
the build. The equivalent Unix step uses `grep -E`, which is
case-sensitive, so the same lines pass on Linux/macOS.

Add the -CaseSensitive flag to both Select-String invocations in the
"Test on Windows" step of .github/workflows/build.yml so the check
behaves identically across OSes.
@vharseko vharseko merged commit 29f133a into OpenIdentityPlatform:master May 14, 2026
0 of 14 checks passed
@vharseko vharseko deleted the win-error branch May 14, 2026 16:08
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.

2 participants