Releases: smarkwal/jarhc
Releases · smarkwal/jarhc
v2.2.2
v2.2.1
- Bugfix: Use "User-Agent" header of Firefox browser when sending requests to search.maven.org.
- Change: Dependencies: Upgrade to SLF4J 2.0.16, Guava 33.3.0-jre, Plexus Common Utilities 3.5.1, and Commons Codec 1.17.1.
- Change: Test dependencies: Upgrade to JUnit 5.11.0, Testcontainers 1.20.1, Mockito 5.13.0, AssertJ 3.26.3, Commons Lang 3.17.0, and Commons Compress 1.27.1.
- Change: Build: Use Gradle 8.10.1.
v2.2.0
- Feature: Add command line option
--sort-rows
to sort JAR files in reports by name. - Feature: Add a cache directory tag file 'CACHEDIR.TAG' to the data directory.
- Change: Dependencies: Upgrade to ASM 9.7, JSON In Java 20240303, SLF4J 2.0.13, Guava 33.1.0-jre, Plexus Common Utilities 3.5.1, and Commons Codec 1.16.1.
- Change: Test dependencies: Upgrade to 5.10.2, Testcontainers 1.19.7, Mockito 5.11.0, AssertJ 3.25.3, Commons Lang 3.14.0, Commons IO 2.16.1, Commons Compress 1.26.1, and JMH 1.37.
- Change: Build: Use Gradle 8.7 and Java 17.
- Change: Tests: Run release tests on Java 11, 17, and 21.
v2.1.0
- Feature: The command line option "--options " can be used to load additional options from a file.
- Change: The main
artifact jarhc-2.1.0.jar
has an automatic module nameorg.jarhc
. - Change: Dependencies: Upgrade to ASM 9.4, SLF4J 2.0.6, JSON In Java 20220924, Commons Codec 1.15, and Plexus Common Utilities 3.5.0.
- Change: Dependencies: Remove
slf4j-simple
as direct dependency andsimplelogger.properties
as resource. Both are still included injarhc-with-deps-2.1.0.jar
. - Change: Test dependencies: Upgrade to JUnit 5.9.1, Testcontainers 1.17.6, Mockito 4.10.0, and JMH 1.36.
v.2.0.0
JarHC 2.0.0 requires at least Java 11. It does not run on Java 8 anymore.
However, Java 8 projects can still be analyzed with the following options:
--release 8 --runtime <JAVA_HOME>/jre/lib
where <JAVA_HOME>
is the path to a Java 8 installation.
- Change: JarHC 2.0.0 requires at least Java 11.
- Feature: Binary Compatibility: Check if referenced class is in package which is exported to module of source class.
- Feature: The command line option "--output" can be used multiple times to generate multiple reports.
- Change: The command line option "--format" is no longer supported.
- Change: Performance improvements for better memory usage and faster analysis.
- Bugfix: Increase upper limit for number of files in a JAR archive from 10000 to 25000.
- Change: Dependencies: Upgrade to ASM 9.3, SLF4J 1.7.36, and JSON In Java 20220320.
- Change: Test dependencies: Upgrade to Mockito 4.6.1, AssertJ 3.23.1, Testcontainers 1.17.3, and JMH 1.35.
v1.7
- Feature: Support analysis of JMOD files.
- Feature: Duplicate Classes: Calculate API similarity.
- Feature: Duplicate Classes: New command line option '--ignore-exact-copy' to not report duplicate classes or resources which are exact copies.
- Bugfix: Binary Compatibility: Fix access control for members in outer and inner classes.
- Bugfix: Binary Compatibility: Support for MethodHandle and VarHandle implemented.
- Change: Dependencies: Upgrade to SLF4J 1.7.33.
v1.6
- Feature: Binary Compatibility: New command line option "--ignore-missing-annotations" can be used to suppress issues when no class definition is found for an annotation.
- Feature: Support for multi-release JAR files with new command line option "--release".
- Feature: Binary Compatibility: Report inconsistency between class file version and multi-release bundling. Example: "Compiled for Java 17, but bundled for Java 11."
- Feature: New section "Modules" added with information about JPMS modules.
- Feature: Support JAR manifest attribute "Automatic-Module-Name".
- Change: Reports: Remove column "Module" from section "JAR Files".
- Change: Reports: Move column "Multi-release" from section "JAR Files" to section "Class Versions".
- Feature: New command line option "--trace" to enable trace log output.
- Feature: The special value "--data TEMP" can be used to create a temporary data directory.
- Feature: Support environment variable
JARHC_DATA
to set path to local data directory. - Bugfix: Build: Add manifest attribute to mark jarhc-with-deps.jar as multi-release JAR.
- Change: Build: Migrate from Maven to Gradle/Kotlin.
- Change: Dependencies: Upgrade to ASM 9.2, JSON In Java 20211205, Aether 1.1.0, and SLF4J 1.7.32.
- Change: Test dependencies: Upgrade to JUnit 5.8.2, Mockito 4.1.0, and JMH 1.34.
v1.5
v1.4
- Feature: Dependencies analyzer: Report direct dependencies as declared in POM files, and analyze their availability on the class path.
- Feature: Support Apache Buildr artifact coordinates.
- Feature: New command line option "--strategy ParentFirst|ParentLast" to control the class loader strategy.
- Feature: New command line option "--debug" to enable debug log output.
- Dependencies: Add SLF4J 1.7.28.
- Bugfix: Binary Compatibility analyzer: Do not perform access check on return type of method call.
- Bugfix: Command line: Accept Maven coordinates without packaging information.
- Bugfix: ClassDefBuilder: Do not add reference to return type of method for method calls.
- Bugfix: Binary Compatibility analyzer: Do not report error "Interface is an annotation" if a class is implementing an annotation interface.
v1.3
- Feature: Binary Compatibility analyzer: Report unimplemented abstract methods.
- Feature: Duplicate Classes analyzer: Check if duplicate resources are exact copies or have different content.
- Bugfix: Classpath: When collecting JAR files from a directory, always sort files and directories by name (case-insensitive). This guarantees a stable order across different platforms (Windows, Linux, macOS, ...). Add first all JAR files in the current directory, and then search for JAR files in subdirectories.
- Bugfix: Classpath: When looking for a class by name, search through JAR files in the order they appear on the classpath.
- Performance: Binary Compatibility analyzer: Analyze class definitions with multiple threads in parallel.
- Dependencies: JSON in Java 20190722, JUnit 5.5.1, and Mockito 3.0.0.
- Build: Run automated tests with Travis CI on OpenJDK 8 - 12.