Feature Wiki

Information about planned and released features

Tabs

Using Maven to manage dependencies

1 Initial Problem

The ILIAS java server is provided as "all in one jar file" which currently has a file size of around 42 MB. Additionally the source files - including all external libraries - of the java server are stored in the "src" directory below "Services/WebServices/RPC".

The github documentation sets limits regarding the maximum file size of single files in the repository:

  • Softlimit 50 MB
  • Hardlimit 100MB

This feature request suggests to exclude external libraries from the ILIAS project by using the build automation tool Apache Maven

2 Conceptual Summary

  • The directory structure is adapted to the standard Maven directory structure
  • Sources will be compiled with target version java 11
  • All external libraries will be defined as dependencies in the main pom.xml.

3 User Interface Modifications

3.1 List of Affected Views

  • None 

3.2 User Interface Details

no user interface 

3.3 New User Interface Concepts

None

3.4 Accessibility Implications

None

4 Technical Information

Precompiled binaries are no longer shipped with the source code.

The build / compile process is executed on the client installation. Clients with firewall restrictions filtering outgoing traffic have to choose one of the following ways to build the ilServer binary:

  • Prebuild the ilServer binary on a different server with access to external library installation URLs
  • Start maven build process with proxy parameters / settings
  • Install external libraries from a local directory

Installation instructions will be provided.

5 Privacy

No personal data is stored.

6 Security

All dependencies to external libraries are defined centrally in the pom.xml file. Ideally -  in the case of non-breaking changes - these libraries can be updated by upgrading the version.

7 Contact

8 Funding

If you are interest in funding this feature, please add your name and institution to this list.

9 Discussion

JourFixe, ILIAS [jourfixe], 19 SEP 2022 : We highly appreciate this suggestion to refactor the build process for the .jar file and accept it for ILIAS 9. Stefan will implement this also as a security bug fix for ILIAS 8.

10 Implementation

 The Java server was developed and tested with openjdk-17. The LTS versions 8 and 11 should also be supported.

Test Cases

Test cases checked at 2023-07-21 by Meyer, Stefan [smeyer]

  • No changes in community test cases 

Approval

Approved at 2023-10-13 by Brauns, Johanna [jbrauns].

Last edited: 18. Oct 2023, 13:07, Meyer, Stefan [smeyer]