Skip to content

chore(deps): upgrade grpc, jackson, logback, commons and drop joda-time - #146

Open
halibobo1205 wants to merge 5 commits into
developfrom
feature/upgrade_dependencies
Open

chore(deps): upgrade grpc, jackson, logback, commons and drop joda-time#146
halibobo1205 wants to merge 5 commits into
developfrom
feature/upgrade_dependencies

Conversation

@halibobo1205

@halibobo1205 halibobo1205 commented Aug 25, 2026

Copy link
Copy Markdown
Owner

What does this PR do?

  • Upgrade gRPC, Jackson, Logback/SLF4J, and Apache Commons dependencies.
  • Remove the temporary gRPC stream-limit shim now covered by grpc-java 1.83.1.
  • Remove unused commons-math.
  • Replace Joda-Time with java.time.
  • Update the bundled Logback configuration for 1.3.

Why are these changes required?

To pick up upstream fixes, remove obsolete compatibility code, and reduce unused or legacy dependencies.

This PR has been tested by:

  • Relevant gRPC security, logging, JSON, collections, and time-related tests.
  • Dependency verification and Logback configuration checks.

Compatibility notes

  • Tested Logback 1.2-style custom --log-config files continue to load and emit logs.
  • jmxConfigurator is ignored by Logback 1.3, so JMX-based logging management is no longer available.
  • The legacy shutdown hook is compatibility-mapped with a warning; custom configurations should migrate to DefaultShutdownHook.
  • SizeAndTimeBasedRollingPolicy checks maxFileSize less frequently, so log files may temporarily exceed the configured limit during heavy writes.
  • Invalid custom appender classes are reported to the console but may prevent other appender references from being attached.

Extra details

UTC timestamp output remains unchanged. Non-UTC output may use updated offsets from the JDK time-zone database while still representing the same instant.

1. bump grpcVersion to 1.83.1 to pick up the upstream fix for
   grpc/grpc-java#12930 (PR grpc/grpc-java#12942), which enforces
   connection.remote().maxActiveStreams(maxStreams) at handler startup
2. drop GrpcNettyMaxConcurrentStreamsLimiter, the local protocol-negotiator
   shim that applied the same limit while 1.83.0 left the remote endpoint
   unbounded until the client acknowledged SETTINGS
@codeant-ai

codeant-ai Bot commented Aug 25, 2026

Copy link
Copy Markdown

🤖 CodeAnt AI — Review Status

Status Commit Started (UTC) Finished (UTC)
✅ Incremental review completed 8be05b0 Aug 26, 2026 · 03:39 03:39
✅ Reviewed your PR 3801a50 Aug 25, 2026 · 08:27 08:30

@codeant-ai

codeant-ai Bot commented Aug 25, 2026

Copy link
Copy Markdown

Thanks for using CodeAnt! 🎉

We're free for open-source projects. if you're enjoying it, help us grow by sharing.

Share on X ·
Reddit ·
LinkedIn

@codeant-ai codeant-ai Bot added the size:L This PR changes 100-499 lines, ignoring generated files label Aug 25, 2026
bump jackson-databind from 2.18.6 to 2.18.10 to pick up cumulative fixes from the 2.18.x line
1. bump logback-classic from 1.2.13 to 1.3.16 and slf4j-api,
   jcl-over-slf4j, jul-to-slf4j from 1.7.36 to 2.0.17; logback 1.3
   requires the slf4j 2.0 provider model, and 1.3.16 is the last 1.3.x
   release and the ceiling for the x86_64 JDK 8 build, since 1.5.x
   requires JDK 11
2. rename DelayingShutdownHook to DefaultShutdownHook in the toolkit
   logback.xml; logback 1.3 removed the old class and only auto-maps
   the legacy name with a startup warning
3. drop the CONSOLE appender from the toolkit logback.xml; no logger
   ever referenced it, so it never emitted output on 1.2 either, and
   logback 1.3 now flags it with an unreferenced-appender warning
4. accept one known 1.3.x behavior change: SizeAndTimeBasedRollingPolicy
   now throttles its maxFileSize comparison to once per 60s
   (SimpleInvocationGate) instead of the adaptive ~100-800ms gate of
   1.2.13, so under sustained heavy logging a file can overshoot the
   500MB cap by up to 60s of writes before the %i rollover fires;
   time-based rollover and totalSizeCap/maxHistory cleanup are ungated
   and unaffected
5. note for operators running a custom --log-config file: well-formed
   1.2-era configs using standard elements keep working unchanged
   (jmxConfigurator degrades to an ignored-property warning, the legacy
   shutdown hook name is auto-mapped), and malformed XML still fails
   fast via TronError(LOG_LOAD) exactly as on 1.2; however, a config
   that references an uninstantiable class (e.g. a custom appender
   missing from the classpath) now aborts the whole appender-ref phase
   instead of losing just that one appender, so the node starts with no
   log output while the ERROR statuses are printed to stdout by
   LogService
@halibobo1205
halibobo1205 force-pushed the feature/upgrade_dependencies branch from 3801a50 to f6373f1 Compare August 25, 2026 09:32
1. bump commons-lang3 from 3.4 to 3.20.0; the runtime classpath already
   resolved 3.18.0 through libp2p 2.2.9's transitive requirement, so
   align the declaration with what actually ships and move past the
   CVE-2025-48924 range that the nominal 3.4 still sits in
2. bump commons-collections4 from 4.1 to 4.6.0
3. remove commons-math 2.2; no source file imports
   org.apache.commons.math and nothing else in the dependency graph
   requests it
@halibobo1205
halibobo1205 force-pushed the feature/upgrade_dependencies branch from f6373f1 to 8be05b0 Compare August 26, 2026 03:39
@codeant-ai

codeant-ai Bot commented Aug 26, 2026

Copy link
Copy Markdown

Thanks for using CodeAnt! 🎉

We're free for open-source projects. if you're enjoying it, help us grow by sharing.

Share on X ·
Reddit ·
LinkedIn

@codeant-ai codeant-ai Bot added size:L This PR changes 100-499 lines, ignoring generated files and removed size:L This PR changes 100-499 lines, ignoring generated files labels Aug 26, 2026
1. drop the joda-time 2.3 dependency.
2. replace the six new DateTime(millis) log-formatting call sites in
   DynamicPropertiesStore, DposTask and DposService with a new
   Time.getIsoTimeString helper backed by java.time; its formatter
   (yyyy-MM-dd'T'HH:mm:ss.SSSXXX in the system zone) reproduces joda's
   DateTime.toString() output byte for byte where the JDK and joda 2.3
   time-zone databases agree (UTC nodes are unaffected); zones whose
   rules changed after joda's 2013-era tzdb, e.g. Europe/Moscow, now
   render the corrected offset for the same instant.
3. replace DateTime.now() day arithmetic in four test classes with the
   java.time equivalent, ZonedDateTime.now().minusDays(n)/plusDays(n)
   .toInstant().toEpochMilli(), keeping joda's calendar semantics
   one-to-one, and map plain DateTime.now().getMillis() to
   System.currentTimeMillis()
@halibobo1205
halibobo1205 force-pushed the feature/upgrade_dependencies branch from 8be05b0 to 9147ec2 Compare August 26, 2026 06:36
@halibobo1205 halibobo1205 changed the title chore(deps): upgrade gRPC, Jackson, Logback, and SLF4J chore(deps): upgrade grpc, jackson, logback, commons and drop joda-time Aug 26, 2026
@halibobo1205

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Nice work!

Reviewed commit: 9147ec22e2

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L This PR changes 100-499 lines, ignoring generated files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant