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 
&quot;unknown tag&quot; 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>&quot;DATA&quot;</code>/<code>&quot;ABCD&quot;</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>{&quot;@type&quot;:&quot;&lt;type&gt;&quot;,&quot;value&quot;:&quot;&lt;base64&gt;&quot;}</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 />
   
   
   [![Dependabot compatibility 
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=com.cedarsoftware:java-util&package-manager=maven&previous-version=4.102.0&new-version=4.103.0)](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]

Reply via email to