kitodo / kitodo-production

Kitodo.Production is a workflow management tool for mass digitization and is part of the Kitodo Digital Library Suite.
http://www.kitodo.org/software/kitodoproduction/
GNU General Public License v3.0
62 stars 63 forks source link

Manage modules as libraries #5979

Open matthias-ronge opened 6 months ago

matthias-ronge commented 6 months ago

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

Estimated Costs and Complexity

medium ~ less than 10 working days

solth commented 6 months ago

Votes: 4