“If you’re not contributing to open source, if your GitHub profile is not full of projects and commits, your “value” as a software developer is low, simply because this lack of open source activity tells everybody that you’re not passionate about software development and are simply working for money.” – Yegor Bugayenko
I develop robust software prototypes to support my research. I also contribute to open-source projects. Unless otherwise specified on the project page, all of my software projects are released under an MIT license. Below is a listing of those projects:
DepHeaven is a tool to solve the dependency hell in Java projects. DepHeaven fixes dependency conflicts in Maven projects dynamically, during the build execution.
JDBL is a tool for automatically specialize Java applications through dynamic and static debloat at build time. JDBL removes unused classes and methods from Maven projects (including its dependencies), as well as the Java Runtime Environment (JRE). To do so, JDBL collects execution traces by instrumenting and transforming the bytecode on-the-fly during the distinct Maven building phases. JDBL can be used as a Maven plugin or executed out-of-the-box as a standalone Java application.
DepClean is a tool to automatically remove dependencies that are included in your Java dependency tree but are not actually used in the project’s code. DepClean detects and removes all the unused dependencies declared in the
pom.xml file of a project or imported from its parent. For that, it relies on bytecode static analysis and extends the
maven-dependency-analyze plugin (more details on this plugin). DepClean does not modify the original source code of the application nor its original
pom.xml. It can be executed as a Maven goal through the command line or integrated directly into the Maven build lifecycle.
DepAnalyzer allows to get a report of the dependencies used by a Java application. Given a
jar file, DepAnalyzer instruments the bytecode to give a report about the name of the classes and methods of dependency that are used, as computed via static analysis.
- Spoon: A metaprogramming library to analyze and transform Java source code (incl Java 9, 10, 11, 12). It parses source files to build a well-designed AST with powerful analysis and transformation API.