Release notes
*Sourced from [classgraph's releases](https://github.com/classgraph/classgraph/releases).*
> ## classgraph-4.6.12
> More fixes for `DirectByteBuffer` / `MappedByteBuffer` unmapping, with compatibility for both JDK 7/8 and JDK 9+. The full solution is posted here:
>
> https://stackoverflow.com/a/54046774/3950982
>
> ## classgraph-4.6.11
> **Bugfixes:**
>
> * Fixes several mmap bugs (e.g. files not being able to be deleted until `System.gc()` on Windows), by using the "cleaner hack" to directly unmap mmap'd files as soon as they are no longer needed (on `Resource::close` or `ScanResult::close`) ([#290](https://github-redirect.dependabot.com/classgraph/classgraph/issues/290)). This also makes it much less likely that you will hit the limit of 64k concurrent mmap'd files per process on Linux.
> * Removed `System.gc()` calls (these were previously used to close mmap'd files) in all cases except for when an `OutOfMemoryError` is thrown while trying to mmap a file ([#290](https://github-redirect.dependabot.com/classgraph/classgraph/issues/290)).
> * Re-enabled mmap for directory-based classpath entries on Windows (this gives a 10-20% speedup while scanning classfiles in directory-based classpath entries) ([#290](https://github-redirect.dependabot.com/classgraph/classgraph/issues/290)).
> * Fixes for Spring-Boot, when classes were in `WEB-INF/classes` rather than `BOOT-INF/classes`, and/or when the classpath URL ended with `!/` ([#296](https://github-redirect.dependabot.com/classgraph/classgraph/issues/296)).
>
> **Other changes:**
>
> * ClassGraph was changed to write to `java.util.logging.Logger` rather than stderr (thanks to [**gimotte**](https://github.com/gimotte) for the PR).
> * `module-info.class` was moved to `META-INF/versions/9` for maximum backwards compatibility with JDK 7/8 ([#291](https://github-redirect.dependabot.com/classgraph/classgraph/issues/291), [#218](https://github-redirect.dependabot.com/classgraph/classgraph/issues/218)).
>
> **New API calls:**
>
> * The following new API calls were added for finding inter-class dependencies ([#122](https://github-redirect.dependabot.com/classgraph/classgraph/issues/122)):
> * `ClassGraph ClassGraph#enableInterClassDependencies()` (need to call this before `#scan()`; can also call `ClassGraph#enableExternalClasses()` if you want non-whitelisted classes in the results returned by the methods below)
> * `ClassInfoList ClassInfo#getClassDependencies()` to find the dependencies for a single class.
> * `Map ScanResult#getClassDependencyMap()` to find the dependencies for all classes.
> * `Map ScanResult#getReverseClassDependencyMap()` to find the dependent classes for all classes.
> * `String ClassInfoList#generateGraphVizDotFileFromClassDependencies()` to produce the dependency graph for all classes (e.g. call this on the result of `ScanResult#getAllClasses()`) in GraphViz .dot file format.
Commits
- See full diff in [compare view](https://github.com/classgraph/classgraph/commits)
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 commands and options
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 merge` will merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot ignore this [patch|minor|major] version` will close this PR and stop Dependabot creating any more for this minor/major 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)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language
- `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme
Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):
- Update frequency (including time of day and day of week)
- Automerge options (never/patch/minor, and dev/runtime dependencies)
- Pull request limits (per update run and/or open at any time)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)
Finally, you can contact us by mentioning @dependabot.
Bumps classgraph from 4.6.10 to 4.6.12.
Release notes
*Sourced from [classgraph's releases](https://github.com/classgraph/classgraph/releases).* > ## classgraph-4.6.12 > More fixes for `DirectByteBuffer` / `MappedByteBuffer` unmapping, with compatibility for both JDK 7/8 and JDK 9+. The full solution is posted here: > > https://stackoverflow.com/a/54046774/3950982 > > ## classgraph-4.6.11 > **Bugfixes:** > > * Fixes several mmap bugs (e.g. files not being able to be deleted until `System.gc()` on Windows), by using the "cleaner hack" to directly unmap mmap'd files as soon as they are no longer needed (on `Resource::close` or `ScanResult::close`) ([#290](https://github-redirect.dependabot.com/classgraph/classgraph/issues/290)). This also makes it much less likely that you will hit the limit of 64k concurrent mmap'd files per process on Linux. > * Removed `System.gc()` calls (these were previously used to close mmap'd files) in all cases except for when an `OutOfMemoryError` is thrown while trying to mmap a file ([#290](https://github-redirect.dependabot.com/classgraph/classgraph/issues/290)). > * Re-enabled mmap for directory-based classpath entries on Windows (this gives a 10-20% speedup while scanning classfiles in directory-based classpath entries) ([#290](https://github-redirect.dependabot.com/classgraph/classgraph/issues/290)). > * Fixes for Spring-Boot, when classes were in `WEB-INF/classes` rather than `BOOT-INF/classes`, and/or when the classpath URL ended with `!/` ([#296](https://github-redirect.dependabot.com/classgraph/classgraph/issues/296)). > > **Other changes:** > > * ClassGraph was changed to write to `java.util.logging.Logger` rather than stderr (thanks to [**gimotte**](https://github.com/gimotte) for the PR). > * `module-info.class` was moved to `META-INF/versions/9` for maximum backwards compatibility with JDK 7/8 ([#291](https://github-redirect.dependabot.com/classgraph/classgraph/issues/291), [#218](https://github-redirect.dependabot.com/classgraph/classgraph/issues/218)). > > **New API calls:** > > * The following new API calls were added for finding inter-class dependencies ([#122](https://github-redirect.dependabot.com/classgraph/classgraph/issues/122)): > * `ClassGraph ClassGraph#enableInterClassDependencies()` (need to call this before `#scan()`; can also call `ClassGraph#enableExternalClasses()` if you want non-whitelisted classes in the results returned by the methods below) > * `ClassInfoList ClassInfo#getClassDependencies()` to find the dependencies for a single class. > * `MapCommits
- See full diff in [compare view](https://github.com/classgraph/classgraph/commits)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 commands and options
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 merge` will merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot ignore this [patch|minor|major] version` will close this PR and stop Dependabot creating any more for this minor/major 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) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Automerge options (never/patch/minor, and dev/runtime dependencies) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired) Finally, you can contact us by mentioning @dependabot.