dependabot[bot] opened a new pull request, #23519: URL: https://github.com/apache/camel/pull/23519
Bumps [com.cedarsoftware:java-util](https://github.com/jdereg/java-util) from 4.102.0 to 4.103.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/jdereg/java-util/blob/master/changelog.md">com.cedarsoftware:java-util's changelog</a>.</em></p> <blockquote> <h4>4.103.0 - 2026-05-25</h4> <ul> <li><strong>BUILD</strong>: Test-scope dependency bumps — <code>junit-jupiter</code> 5.14.3 → 5.14.4; <code>agrona</code> 1.22.0 → 1.23.1 (still JDK 8 compatible; agrona 2.x dropped Java 8).</li> <li><strong>BUILD</strong>: Registered the JDK 9+ standard <code>@apiNote</code> / <code>@implSpec</code> / <code>@implNote</code> tags with <code>maven-javadoc-plugin</code> so the javadoc tool no longer emits "unknown tag" warnings for these.</li> <li><strong>FEATURE</strong>: New <code>com.cedarsoftware.util.internal.VectorizedArrays</code> — exposes <code>equalsRange</code> / <code>mismatchRange</code> / <code>compareRange</code> for both <code>char[]</code> and <code>byte[]</code>. Dispatches at runtime to JDK 9+ SIMD-vectorized <code>Arrays.*</code> intrinsics, with hand-rolled loop fallbacks for JDK 8. Resolution happens once at class load via <code>MethodHandle</code>s, so per-call cost is a static-field read + <code>invokeExact</code>. Internal package for now; promoted to public API once the contract stabilizes. 21 new tests.</li> <li><strong>FEATURE</strong>: <code>Converter.convert(String, byte[].class)</code> (and transitively <code>String → ByteBuffer</code>) performs multi-format detection — tries stringified JSON number arrays, spaced hex, unspaced hex (length ≥ 8 — catches <code>CAFEBABE</code>/<code>DEADBEEF</code> magic numbers, compact UUIDs, SHA hashes), URL-safe Base64, then standard Base64. Tightness rules (length, padding, alphabet symbols) prevent short tokens like <code>"DATA"</code>/<code>"ABCD"</code> from being mis-classified and let them fall through to the historical charset path.</li> <li><strong>FEATURE</strong>: New <code>MapConversions.toByteArray</code> (and refactored <code>toByteBuffer</code>) handles the wrapped-form contract <code>{"@type":"<type>","value":"<base64>"}</code>. Attempts strict Base64 decode first to preserve round-trip for short blobs; falls through to general <code>Converter</code> dispatch on failure. Enables clean round-trip of the wrapped form that <code>JsonGenerator.writeBinary</code> emits in json-io 4.103.0.</li> <li><strong>PERFORMANCE</strong>: Cycle-tracking <code>IdentityHashMap</code> allocation deferred to first-need across <code>ArrayConversions.arrayToArray</code> / <code>collectionToArray</code> and <code>CollectionConversions.arrayToCollection</code> / <code>collectionToCollection</code> — and skipped entirely for primitive-target conversions (primitive arrays can't form cycles). Profiling showed ~560 ms of accumulated allocation+put cost in <code>arrayToArray</code> alone.</li> <li><strong>PERFORMANCE</strong>: <code>ClassUtilities.newInstance()</code> cached constructor plans now fast-invoke non-varargs constructors when supplied arguments are already in constructor-parameter order and directly assignable, bypassing matcher allocations on repeated positional construction.</li> <li><strong>PERFORMANCE</strong>: <code>ClassUtilities.newInstance()</code> no-arg cached construction reuses the empty argument-shape key, skips argument-matching on cached zero-parameter plans, and allocates the circular-reference <code>IdentitySet</code> only for inner-class recursion.</li> <li><strong>PERFORMANCE</strong>: <code>ClassUtilities.newInstance()</code> constructor-plan cache entries retain constructor parameter metadata, avoiding repeated <code>Constructor.getParameters()</code> calls on cached construction paths.</li> <li><strong>TESTING</strong>: 80 new <code>ConverterEverythingTest</code> fixtures cover the format-detection ladder across <code>String → byte[]</code> / <code>String → ByteBuffer</code> / <code>Map → byte[]</code> / <code>Map → ByteBuffer</code>, including the documented charset-fallback cases to pin the tight-rule boundary.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/jdereg/java-util/commit/c7c7818c00c4818425ee5dde4a11b8640aad6312"><code>c7c7818</code></a> Doc: tighten 4.103.0 changelog to prior-release brevity + alphabetize</li> <li><a href="https://github.com/jdereg/java-util/commit/f8783734a417b7e576a9649e8145a8f5c8a94761"><code>f878373</code></a> Build: register <a href="https://github.com/apiNote"><code>@apiNote</code></a> / <a href="https://github.com/implSpec"><code>@implSpec</code></a> / <a href="https://github.com/implNote"><code>@implNote</code></a> with maven-javadoc-plugin</li> <li><a href="https://github.com/jdereg/java-util/commit/d7e4f765da74dadafa2d64722d1dc2988f620dd0"><code>d7e4f76</code></a> Build: bump junit-jupiter to 5.14.4 and agrona to 1.23.1</li> <li><a href="https://github.com/jdereg/java-util/commit/43cd20298957d08f2c6238bb15b331d8402929d9"><code>43cd202</code></a> Doc: fix 4 broken Javadoc <a href="https://github.com/link"><code>@link</code></a> references in JavaBigIntegerParser</li> <li><a href="https://github.com/jdereg/java-util/commit/6ba6e492482d347ff44f7cc0d5c70cc656853f10"><code>6ba6e49</code></a> Feature: VectorizedArrays — JDK-version-dispatching range-based array ops</li> <li><a href="https://github.com/jdereg/java-util/commit/35284d0a833bbbffeef5a1932489db169bf94d49"><code>35284d0</code></a> Performance: lazy IdentityHashMap in CollectionConversions cycle tracking</li> <li><a href="https://github.com/jdereg/java-util/commit/90e883cd2d6c1d45bcf97cfa0a093750dc5a3f0e"><code>90e883c</code></a> Performance: lazy IdentityHashMap + skip-for-primitive in ArrayConversions cy...</li> <li><a href="https://github.com/jdereg/java-util/commit/e95a444727e52d37621d2ab6cd549d1287cf4e73"><code>e95a444</code></a> Doc: changelog entries for 4.103.0 byte[]/ByteBuffer format detection</li> <li><a href="https://github.com/jdereg/java-util/commit/e0958402000809ebeb07b2229feb5607dc279ae0"><code>e095840</code></a> Test: comprehensive ConverterEverythingTest fixtures for new byte[] / ByteBuf...</li> <li><a href="https://github.com/jdereg/java-util/commit/1951c8302e912128817573dad188e546bdc834f9"><code>1951c83</code></a> Feature: Map → byte[] / ByteBuffer with try-base64-then-smart-dispatch</li> <li>Additional commits viewable in <a href="https://github.com/jdereg/java-util/compare/4.102.0...4.103.0">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
