Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Manage modules as libraries #5979

Open
matthias-ronge opened this issue Mar 4, 2024 · 1 comment
Open

Manage modules as libraries #5979

matthias-ronge opened this issue Mar 4, 2024 · 1 comment
Labels
development fund 2024 A candidate for the Kitodo e.V. development fund.

Comments

@matthias-ronge
Copy link
Collaborator

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

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.

Estimated Costs and Complexity

medium ~ less than 10 working days

@matthias-ronge matthias-ronge added the development fund 2024 A candidate for the Kitodo e.V. development fund. label Mar 4, 2024
@solth
Copy link
Member

solth commented Mar 18, 2024

Votes: 4

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
development fund 2024 A candidate for the Kitodo e.V. development fund.
Projects
None yet
Development

No branches or pull requests

2 participants