Skip to content

Keep org.glassfish.jaxb and org.apache.cxf:cxf-xjc-plugin off major/minor dependabot bumps - #425

Merged
hugohills-regnosys merged 2 commits into
mainfrom
hugo/dependabot-ignore-jaxb-major-minor
Sep 17, 2026
Merged

hugohills-regnosys merged 2 commits into
mainfrom
hugo/dependabot-ignore-jaxb-major-minor

Conversation

@hugohills-regnosys

@hugohills-regnosys hugohills-regnosys commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

Proposed Enhancement to Rune Testing

Pull Request Summary

Adds org.glassfish.jaxb* and org.apache.cxf:cxf-xjc-plugin to the major/minor dependabot ignore list, following the existing pattern for xtext-dev-bom and guava.

Supporting Documentation

jaxb-runtime 3.x/4.x only registers a jakarta.xml.bind.JAXBContextFactory provider (META-INF/services/jakarta.xml.bind.JAXBContextFactory -> org.glassfish.jaxb.runtime.v2.JAXBContextFactory), not javax.xml.bind's. This pom still pins javax.xml.bind:jaxb-api:2.3.1 directly, and FpMLSchemeEnumReader/IsoCurrencySchemeEnumReader call javax.xml.bind.JAXBContext.newInstance() on that API.

Bumping just jaxb-runtime's dependencyManagement entry to 4.0.9 (leaving jaxb-api at 2.3.1) still compiles fine, and mvn test passes - but that's because FpMLSchemeEnumReaderTest only exercises string-formatting helper methods, not the actual JAXBContext.newInstance() call, and IsoCurrencySchemeEnumReader has no test at all. Calling javax.xml.bind.JAXBContext.newInstance() directly against that dependency set throws at runtime:

javax.xml.bind.JAXBException: Implementation of JAXB-API has not been found on module path or classpath.
 - with linked exception:
[java.lang.ClassNotFoundException: com.sun.xml.internal.bind.v2.ContextFactory]

So a bot-driven jaxb-runtime major/minor bump would pass CI here and break silently at runtime for any consumer that hits the FpML/ISO4217 scheme import path.

cxf-xjc-plugin is coupled to the same jaxb-api/jaxb-runtime pin, but the risk here is more direct: unlike digital-regulatory-reporting's equivalent plugin (gated behind a generate-mic profile that isn't run by default), this pom's cxf-xjc-plugin execution runs unconditionally at generate-sources, regenerating src/generated/java on every build. cxf-xjc-plugin 4.x emits jakarta.xml.bind-annotated classes, so a standalone bump breaks mvn compile outright with package jakarta.xml.bind.annotation does not exist.

Test plan

  • Bumped org.glassfish.jaxb:jaxb-runtime alone to 4.0.9 in a scratch checkout: mvn compile and mvn test -Dtest=FpMLSchemeEnumReaderTest both pass (confirming existing coverage wouldn't catch this).
  • Isolated repro: called javax.xml.bind.JAXBContext.newInstance() directly against the same javax.xml.bind:jaxb-api:2.3.1 + org.glassfish.jaxb:jaxb-runtime:4.0.9 classpath - throws JAXBException/ClassNotFoundException as shown above.
  • Bumped cxf-xjc-plugin alone to 4.2.0 in a scratch checkout: mvn compile fails immediately regenerating src/generated/java/org/genericode/xml/_2004/ns/codelist/_0/*.java with package jakarta.xml.bind.annotation does not exist.

🤖 Generated with Claude Code

jaxb-runtime 3.x/4.x only registers a jakarta.xml.bind.JAXBContextFactory
provider, not javax.xml.bind's. FpMLSchemeEnumReader and
IsoCurrencySchemeEnumReader call javax.xml.bind.JAXBContext.newInstance()
directly, so a bot bump still compiles against the untouched
javax.xml.bind:jaxb-api pin but throws JAXBException at runtime - and
neither reader has a test exercising that path, so it would pass CI and
break silently.
JayasriR
JayasriR previously approved these changes Sep 17, 2026
cxf-xjc-plugin runs unconditionally at generate-sources here (not behind
a profile like DRR's), regenerating src/generated/java on every build.
4.x emits jakarta.xml.bind-annotated classes, which fail to compile
against the still-javax jaxb-api/jaxb-runtime pinned above - confirmed
by bumping cxf-xjc-plugin alone and running mvn compile.
@hugohills-regnosys hugohills-regnosys changed the title Keep org.glassfish.jaxb off major/minor dependabot bumps Keep org.glassfish.jaxb and org.apache.cxf:cxf-xjc-plugin off major/minor dependabot bumps Sep 17, 2026
@hugohills-regnosys
hugohills-regnosys enabled auto-merge (squash) September 17, 2026 12:40
@hugohills-regnosys
hugohills-regnosys merged commit 19e41f5 into main Sep 17, 2026
5 checks passed
@hugohills-regnosys
hugohills-regnosys deleted the hugo/dependabot-ignore-jaxb-major-minor branch September 17, 2026 13:58
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