Search papers, labs, and topics across Lattice.
This paper details the practical experience of automatically converting a large (800k LOC) C++ monolith to Java EE for deployment on WildFly. It addresses common C++-to-Java conversion challenges like multiple inheritance and enum handling, and describes the development of a clang-tool-based system for continuous Java regeneration alongside ongoing C++ development. The report highlights the techniques used and the steps taken to successfully run the converted Java code on the application server.
Converting a massive C++ monolith to Java EE isn't just possible, it's achievable with automated tooling and careful handling of C++-specific constructs.
Converting a large C++ code base (800k lines of code) into Java alone is challenging. Changing the architecture from a monolith into an application adhering to the Java application server standard and to run it on WildFly is a different number. This report describes the experience made during the C++ to Java conversion, the techniques used as well as the way to success of running the Java code on the application server for the first time. The approaches to solve the usual C++ to Java culprits, like multiple inheritance, enum-handling and scoped objects are described. A clang-tool-based software is developed to continuously regenerate the Java, because development on the C++ code base continued.