Do you need just a one-click solution? Then we provide a tool which is fed with the Java JAR files and it outputs a report with compatibility problems. All the complexity is hidden underneath, you just have to provide your application modules and let VerifaLabs work.
It does not matter whether you develop for desktop, mobile, or server, we may analyze any Java binaries.
We provide you data, which lets you easily comprehend wrong dependencies in analyzed application. This way, you can see which invoked API is not fulfilled, what is the detail of the problem, and in many situations, we help you find a solution.
Overall Internal Compatibility
- Verifies API calls in the whole application
- Covers 100% of calls
- Fast enough for Continuous integration
Calls Security Check
- Verifies application calls against given rules
- Explores malicious invocations
- Helps enforce library arrangements
- Compatibility verification of evolved libraries
- Suitable for both in-house and third party libraries
The report is a HTML page, which may be opened on any devices, works offline and provides flexibility together with user interactivity. We show you an overview of problematic modules and problems categorization, then you can dive into details and analyze particular problems.
- Can be directly generated by continuous integration
- Easy to understand output
- Easy accessibility and sharing on corporate network
Following example shows a method next(), from LineIterator, which is invoked with an incorrect return type. A solution, in this case, is to use another version of Commons-IO library.
While we analyze binary libraries, we provide functionality to decompile byte-code of classes to help developers overview the problem in their most familiar environment — source code.
- Speeds-up first configuration of tool
- Comfortable work with thousands of results
- Automatic severity classification
- Automated Blacklist creation
- Works on any (Java compatible) platform
- Logging-like usage
- Parsable by third-party integration
Tools and Integration
We provide the main verification engine as a standalone application, but we also integrate with popular developer tools. We have a Maven plugin, which may be invoked from your favorite IDE like Eclipse, IntelliJ IDEA, or integrated into continuous integration tools like Jenkins.
Do you need more than a standalone application? Do you need to integrate with your project life-cycle project? Then we provide you range of possible integrations. Our tool can be invoked from a lot of popular continuous integration tools like Jenkins. We are happy to provide you a custom integration.
How does it Work Underneath
Static safety used to be guaranteed by compilers of static languages. However, applications are no more compiled as a monolith, and libraries/modules are used instead. As a consequence, compatibility may be broken. As the amount of libraries increases, the number of their mutual dependencies increases as well, challenging traditional integration testings. A solution is VerifaLabs that do all the required checks. It checks what used to be checked by the compiler and many more as it distinguishes between compile-time and run-time dependencies.
The main error detected by VerifaLabs is a broken dependency resulting in runtime LinkageErrors such as ClassNotFoundError or NoSuchMethodError. We implement all possible incompatible changes in Java libraries that may, when undetected, produce such errors in production. In addition, we discover when problems are fixable by re-compilation or require redactor, or if a compatible replacement exits. A lot of supplementary features, such as detection of redundant libraries, decompilation of third-party libraries are provided.