Releases: Toparvion/jmint
v1.5-beta - Logging Unification
This release is primarily aimed to improve jMint integration with target application's logging system, particularly with Spring Boot apps packaged in "fat" JARs. That is why from this version on, jMint uses plain old JUL (Java Util Logging) façade instead of SLF4J for its own logging (while loading, parsing and injecting droplets).
This makes the agent emit messages to standard/error output rather than to SLF4J destination. However, the same change allows the agent not to prevent correct SLF4J binding beforehand. At the same time, the use of SLF4J logging infrastructure is still possible with the help of jul-to-slf4j-bridge which is applied by default in most Spring Boot applications.
Other notable changes:
- Updated Gradle build tool to v6.3
- Updated Javassist library to v.3.27.0-GA
- Integrated tool building with Travis CI
- Provided code coverage metrics with CodeCov
- Fixed build script failure due to publish task dependency
See README.md for usage and installation instructions.
With this release of jMint it should become easier to start using the tool or participate in its development.
Please feel free to send the feedback about your experience with jMint.
Contributions are also very welcome!
The Central Repository integration
With this release on jMint becomes integrated with OSS Sonatype Repository (more widely known thanks to it syncing with Maven Central Repository). This introduces some changes in build script as well as appends beta
suffix to the version name indicating that the current version is still in beta testing stage (i.e. available to end users but 100% functionality is not guaranteed and any feedback is highly appreciated).
Composite droplets support
This release introduces quite handy feature for tasks which make you attach multiple droplets at the same time to achieve single side effect. For example a set of droplets for preventing an application from communicating with outer world through various channels.
Usually you have to attach each droplet separately but from this version on you can put them all into single ZIP (or JAR) archive and attach it to jMint just like ordinary droplet. Such archive is called composite droplet. jMint recognizes composite droplets by their extensions (.zip
or .jar
) and opens them for processing. It then traverses archive fully and ignores everything except files with .java
extension (droplet itself). Such behavior allows you not to bother about directory structure inside the archive as well as let you put some additional files into archive, for example readme.txt
.
All the droplets extracted from composite droplet are included into targets map in the same way as ordinary (separate) droplets.
v1.2 - Parametrized AFTER cutpoint support
The main purpose of this release is introducing support of parametrized AFTER
cutpoint which from this version on can behave like Java finally
block, i.e. can be executed regardless of method exit way (normal or by exception). The release also includes some internal refactoring and bug fixes.
jMint v1.1
This release brings the tool to a new level by introducing several major features like:
- support of fully Java compatible source code of droplets - no code adaptation is required anymore;
- precise targets methods selecting by signature analyzing;
- support of multiple target methods in one droplet;
- support of multiple class loaders in target application (especially useful for web applications);
- support of various types (classes, enums, interfaces) and methods (including Java 8+ static methods in interfaces).
There are also some less significant enhancements and changes.
Please leave your feedback in the comments or though the issues.