All Versions
Latest Version
Avg Release Cycle
8 days
Latest Release
1 day ago

Changelog History
Page 1

  • v4.8.80

    May 31, 2020

    🛠 Fixed #430, which covers limitations of the with ResourceList item consumer API, when the consumer needs to be able to throw IOException. (Thanks to @mike-neck for reporting the issue.)

    • ➕ Added three new classes:
      • ResourceList#ByteArrayConsumerThrowsIOException
      • ResourceList#InputStreamConsumerThrowsIOException
      • ResourceList#ByteBufferConsumerThrowsIOException
    • 🗄 Deprecated:
      • ResourceList#forEachByteArray(ByteArrayConsumer consumer, boolean ignoreIOExceptions)
      • ResourceList#forEachByteArray(final ByteArrayConsumer consumer)
      • ResourceList#forEachInputStream(InputStreamConsumer consumer, boolean ignoreIOExceptions)
      • ResourceList#forEachInputStream(InputStreamConsumer consumer)
      • ResourceList#forEachByteBuffer(ByteBufferConsumer consumer, boolean ignoreIOExceptions)
      • ResourceList#forEachByteBuffer(ByteBufferConsumer consumer)
    • ➕ Added:
      • ResourceList#forEachByteArrayIgnoringIOException(ByteArrayConsumer byteArrayConsumer)
      • ResourceList#forEachByteArrayThrowingIOException(ByteArrayConsumerThrowsIOException consumer) throws IOException
      • ResourceList#forEachInputStreamIgnoringIOException(InputStreamConsumer byteArrayConsumer)
      • ResourceList#forEachInputStreamThrowingIOException(InputStreamConsumerThrowsIOException consumer) throws IOException
      • ResourceList#forEachByteBufferIgnoringIOException(ByteBufferConsumer byteArrayConsumer)
      • ResourceList#forEachByteBufferThrowingIOException(ByteBufferConsumerThrowsIOException consumer) throws IOException
  • v4.8.78

    May 02, 2020
    • Disable java.class.path scanning if parent classloaders are disabled (since you would only disable parent classloaders if you are sure that the context classloader contains the only source of classpath elements you're interested in scanning). (#421, thanks to @nsoft for requesting)
    • ➕ Add support for Uno-Jar and One-Jar classloaders (#423, thanks to @nsoft for requesting).
    • ✂ Remove trailing slashes in whitelisted paths (#425, thanks to @richard-melvin for reporting).
    • 🛠 A few other small bugs fixed.
  • v4.8.77

    April 27, 2020

    🏁 Windows compatibility fixes.

  • v4.8.76

    April 27, 2020

    👍 Allow the use of non-root (i.e. non-/) package roots (e.g. classes/) in custom filesystems like Jimfs (#420).

    🏁 If you use Windows, use 4.8.77 instead, since some further Windows compatibility fixes were needed.

  • v4.8.75

    April 23, 2020

    ➕ Added support for scanning Path objects in custom filesystems, whether they are directories or files. Therefore you can now specify the URL path of a directory, even for custom URL schemes like jimfs:, and the recursive scanner will use the Path API rather than the File API. If you specify the URL path of a jarfile, it will be opened using FileChannel. If a custom URI scheme is not backed by an underlying FileSystem implementation, then URL.openConnection() is used instead. (#420, thanks to @oliviercailloux for the feature request.)

  • v4.8.74

    April 23, 2020

    ➕ Added an optimization for custom filesystems, which checks classpath URLs to see if the URL is backed by a filesystem. If so, ClassGraph uses the FileChannel API to access the URL, rather than opening a connection to the URL, avoiding an extra copy. (#400, #420)

  • v4.8.73

    April 23, 2020

    🛠 Fixes a bug where ClassGraph assumed that custom URLs would only ever be followed by a single slash. Jimfs requires a double slash. (#420, thanks to @oliviercailloux for reporting.)

  • v4.8.72

    April 21, 2020

    🛠 Fix a memory leak issue, where static instances of BaseTypeSignature for the primitive types would inadvertently hold a reference to the ScanResult of the most recent scan, even after the ScanResult was closed, preventing garbage collection from collecting the ScanResult and its linked objects. (#419, thanks to @protogene for reporting.)

  • v4.8.71

    April 17, 2020
    • 🔦 Exposes the class file major and minor version number in ClassInfo (#418, thanks to @adelel1 for requesting). Adds the methods:
      • ClassInfo#getClassfileMinorVersion()
      • ClassInfo#getClassfileMajorVersion()
    • 📦 Ignores any classfile other than module-info.class in the default (empty) package, if a classpath element is a modular jar, when running under JDK 9+. (This is because JPMS doesn't allow classes to be in the default package in modules -- #417.)
  • v4.8.70

    April 17, 2020

    🛠 Fixes #417, a regression introduced in 4.8.66, in which the manifest file was not being added as the first or second entry in the jar, which is required by JDK jar processing logic. This stops the jar from being able to be read as a (non-automatic) module. Thanks to @blackdrag for reporting.