dependabot[bot] opened a new pull request, #27940:
URL: https://github.com/apache/camel/pull/27940

   Bumps 
[io.github.classgraph:classgraph](https://github.com/classgraph/classgraph) 
from 4.8.198 to 6.0.0.
   <details>
   <summary>Release notes</summary>
   <p><em>Sourced from <a 
href="https://github.com/classgraph/classgraph/releases";>io.github.classgraph:classgraph's
 releases</a>.</em></p>
   <blockquote>
   <h2>ClassGraph 6.0.0</h2>
   <p><strong>ClassGraph 6 is the new mainline release of ClassGraph, for JDK 
25 and newer.</strong> All code that uses ClassGraph should be ported to it. 
Its API is new, and is not source- or binary-compatible with 4.x: the 
<strong><a 
href="https://github.com/classgraph/classgraph/wiki/Porting-ClassGraph-4.x-code-to-ClassGraph-6.x";>porting
 guide</a></strong> walks through the port step by step, and a coding agent can 
follow it for you.</p>
   <table>
   <thead>
   <tr>
   <th>Version</th>
   <th>JDK</th>
   <th>Status</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><strong>ClassGraph 6</strong></td>
   <td>25+</td>
   <td>The current release. Use this.</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/classgraph/classgraph/releases/tag/classgraph-5.0.0";>ClassGraph
 5</a></td>
   <td>17 to 24</td>
   <td>A stop-gap for projects that cannot yet run JDK 25. Same API and 
behavior as ClassGraph 6, kept in sync with it for the near future.</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/classgraph/classgraph/releases/tag/classgraph-4.8.199";>ClassGraph
 4</a></td>
   <td>8 to 16</td>
   <td>End of life, other than releases that backport fixes for serious 
bugs.</td>
   </tr>
   </tbody>
   </table>
   <h2>What is new</h2>
   <ul>
   <li><strong>ClassGraph is split into five reusable libraries</strong>, so a 
project depends only on the part it uses:
   <ul>
   <li><code>classgraph-base</code> -- shared internals, and the verbose 
log.</li>
   <li><code>classgraph-vfs</code> -- a read-only virtual filesystem over 
directories, jarfiles and modules, and the fastest, most flexible, most 
powerful and most parallelizable virtual filesystem for the JVM ecosystem. It 
opens a directory, jarfile or module however it is named, reads jarfiles nested 
to any depth in place without extracting them, and returns content as a stream, 
channel, <code>ByteBuffer</code>, byte array, string or 
<code>java.nio.file.Path</code>. Lookups and reads take no locks: looking up 
every entry of a 26,970-entry jarfile is 6× faster than 
<code>java.util.zip.ZipFile</code> on one thread and 141× faster on 32 threads. 
See the <a 
href="https://github.com/classgraph/classgraph/blob/main/classgraph-vfs/README.md#benchmarks";>benchmarks</a>.
 The scanner itself now reads through it.</li>
   <li><code>classgraph-classpath</code> -- finds the classpath and module path 
of a running JVM, in classloader order, including the classpath of Spring Boot, 
Tomcat, JBoss, WebLogic, WebSphere, OSGi, Quarkus and other container 
classloaders. You can now register your own <code>ClassLoaderHandler</code> for 
a classloader ClassGraph does not know.</li>
   <li><code>classgraph</code> -- scanning, and the class graph API. Depending 
on it brings in the three above.</li>
   <li><code>classgraph-viz</code> -- GraphViz <code>.dot</code> file 
generation.</li>
   </ul>
   </li>
   <li><strong>Nothing is scanned until you say what to scan</strong>: a scan 
enables the classpath, the module path, or specific classloaders, module layers 
or classpath entries.</li>
   <li><strong>Consistent naming</strong>: <code>getAll...</code> for a 
transitive closure and <code>getDirect...</code> for the direct answer, so the 
4.x mistake of using a transitive result as a direct one cannot happen 
silently. One glob syntax everywhere.</li>
   <li><strong>ClassGraph no longer loads classes</strong>, so it no longer 
runs static initializers as a side effect of a query or keeps classloaders 
alive after a scan. Load classes yourself with 
<code>Class.forName()</code>.</li>
   <li><strong>A stricter, more modern API</strong>: nullability declared 
throughout with <a href="https://jspecify.dev/";>JSpecify</a>; every returned 
collection is unmodifiable; lists instead of arrays and getters instead of 
public fields; fluent setters everywhere; callbacks are <code>Predicate</code> 
and <code>Consumer</code>. The JSON serializer has been removed.</li>
   </ul>
   <p>A large number of bugs were found and fixed during the transition from 
ClassGraph 4 to ClassGraph 5 and 6. The most important fixes were backported to 
ClassGraph 4.</p>
   <h2>What JDK 25 allows</h2>
   <p>ClassGraph 6 has the same API and behavior as ClassGraph 5. Requiring JDK 
25 let it drop the legacy code that ClassGraph 5 still needs:</p>
   <ul>
   <li>Files are mapped and unmapped through 
<code>java.lang.foreign.Arena</code>, called directly. The <code>Unsafe</code> 
cleaner path, the reflective calls and the <code>jdk.unsupported</code> 
dependency are gone.</li>
   <li>All <code>SecurityManager</code> handling is gone, since JDK 24 and 
newer cannot trigger it.</li>
   <li>Other workarounds for older JDKs were removed, such as the custom thread 
factory that avoided a <code>ThreadGroup</code> leak fixed in JDK 19.</li>
   <li>The code uses language features newer than JDK 17, such as 
pattern-matching <code>switch</code> and unnamed variables.</li>
   </ul>
   <h2>Getting it</h2>
   <pre lang="xml"><code>&lt;dependency&gt;
       &lt;groupId&gt;io.github.classgraph&lt;/groupId&gt;
       &lt;artifactId&gt;classgraph&lt;/artifactId&gt;
       &lt;version&gt;6.0.0&lt;/version&gt;
   &lt;/dependency&gt;
   </code></pre>
   <h2>ClassGraph 5.0.0</h2>
   <p><strong>ClassGraph 5 is an interim release, only intended to support the 
use of ClassGraph on JDK 17 to 24. Upgrade to <a 
href="https://github.com/classgraph/classgraph/releases/tag/classgraph-6.0.0";>ClassGraph
 6</a> as soon as you can run your code on JDK 25 or newer.</strong> ClassGraph 
6 is the new mainline release. It has the same API and behavior as ClassGraph 
5, so the move is a version bump; ClassGraph 6 is fully modernized and removes 
a lot of legacy code. ClassGraph 5 will be kept in sync with ClassGraph 6 for 
the near future, on the <a 
href="https://github.com/classgraph/classgraph/tree/v5";><code>v5</code> 
branch</a>.</p>
   <p>ClassGraph 5 is a rewrite of the ClassGraph API, and is not source- or 
binary-compatible with 4.x. The <strong><a 
href="https://github.com/classgraph/classgraph/wiki/Porting-ClassGraph-4.x-code-to-ClassGraph-6.x";>porting
 guide</a></strong> walks through the port step by step, and a coding agent can 
follow it for you. (The guide is written for ClassGraph 6, and applies 
unchanged to ClassGraph 5.)</p>
   <h2>What is new</h2>
   <!-- raw HTML omitted -->
   </blockquote>
   <p>... (truncated)</p>
   </details>
   <details>
   <summary>Commits</summary>
   <ul>
   <li><a 
href="https://github.com/classgraph/classgraph/commit/ebde6d3dfedd1e7e6633c66c611c06adf81376dc";><code>ebde6d3</code></a>
 [maven-release-plugin] prepare release classgraph-6.0.0</li>
   <li><a 
href="https://github.com/classgraph/classgraph/commit/47fa99a56b6be15e2516ec325aae3296d06f1bd7";><code>47fa99a</code></a>
 Announce ClassGraph 6 in the README</li>
   <li><a 
href="https://github.com/classgraph/classgraph/commit/14bfc1eccb09c50e6939cab86078858d95aace5e";><code>14bfc1e</code></a>
 Keep one stream open across consecutive transferTo calls</li>
   <li><a 
href="https://github.com/classgraph/classgraph/commit/540b8344b3b0bbef07c209082ea87116ce8f8d47";><code>540b834</code></a>
 Correct comments left out of date by the iterative walks</li>
   <li><a 
href="https://github.com/classgraph/classgraph/commit/14e6b9e13273bc22045db1dabef8bd1db46caf3b";><code>14e6b9e</code></a>
 Sort imports into one consistent grouping</li>
   <li><a 
href="https://github.com/classgraph/classgraph/commit/803d66bad20b8bdb7faba187007c09b437de0389";><code>803d66b</code></a>
 Remove CODEX-REVIEW.md</li>
   <li><a 
href="https://github.com/classgraph/classgraph/commit/25129a00cbc969e6e27ee31af88f0c7e1e4b7027";><code>25129a0</code></a>
 Sort the imports of VfsFileSystem and VfsFileSystemProvider</li>
   <li><a 
href="https://github.com/classgraph/classgraph/commit/4834a2158c6d833c8aafd2410bedf9d3377dfd9a";><code>4834a21</code></a>
 Return the storage URI from VfsPath.toUri() again (revert R07)</li>
   <li><a 
href="https://github.com/classgraph/classgraph/commit/cdf397bfcffc8abe535898daf1f2fd30217a1b15";><code>cdf397b</code></a>
 Restore 4.x interface order in getMethodInfo() (revert R15)</li>
   <li><a 
href="https://github.com/classgraph/classgraph/commit/fdf0b718537c4c34ac82d2a6a0ba95cc369807d3";><code>fdf0b71</code></a>
 Restore 4.x member-query results (revert R01 and R02)</li>
   <li>Additional commits viewable in <a 
href="https://github.com/classgraph/classgraph/compare/classgraph-4.8.198...classgraph-6.0.0";>compare
 view</a></li>
   </ul>
   </details>
   <br />
   
   
   [![Dependabot compatibility 
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=io.github.classgraph:classgraph&package-manager=maven&previous-version=4.8.198&new-version=6.0.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