The tangled structure of legacy Production CE was split up into modules, that load separately on application start. This requires a complicated module loader. Apart from that, the modules behave like function libraries. There is no additional gain from using the module loader, it may bring in unknown security risk factors, in any case it brings programmatic overhead and additional maintenance effort, since the modules always have to be replaced manually by the admin during an update.
To abolish this, the source code structure should be changed. The modules shall be retained, and their separate compilation into JAR files shall also be retained. However, the modules shall be bundled together with the external JAR libraries in the web application WAR file during its creation.
The code for Module Loader shall be removed, the core classes shall use the “main class” from the modules directly. The core still cannot be accessed backwards from the modules, as it is unknown at module build time.
Related Issues
4548
4849
Expected Benefits of this Development
Security is improved because incomprehensible code is unsafe code. The risk of injecting illegal code (albeit very abstract) is eliminated.
Application speed will improve if the program structures for accessing module functions are eliminated.
Administration is simplified, because when the application WAR file is exchanged, the modules are automatically updated to the current version. Errors due to incorrect (or too many) modules in the directory, or a lack of read permission on the modules directory, no longer occur.
Development is simplified because there is less code to maintain, and a more common project structure can be better supported by IDEs and tools.
Description
The tangled structure of legacy Production CE was split up into modules, that load separately on application start. This requires a complicated module loader. Apart from that, the modules behave like function libraries. There is no additional gain from using the module loader, it may bring in unknown security risk factors, in any case it brings programmatic overhead and additional maintenance effort, since the modules always have to be replaced manually by the admin during an update.
To abolish this, the source code structure should be changed. The modules shall be retained, and their separate compilation into JAR files shall also be retained. However, the modules shall be bundled together with the external JAR libraries in the web application WAR file during its creation. The code for Module Loader shall be removed, the core classes shall use the “main class” from the modules directly. The core still cannot be accessed backwards from the modules, as it is unknown at module build time.
Related Issues
4548
4849
Expected Benefits of this Development
Estimated Costs and Complexity
medium ~ less than 10 working days