Skip to content

Notes on technologies

Přemek Brada edited this page Jan 14, 2020 · 1 revision

Java 11

Tested on OpenJDK 11.0.4

Some bundles (mostly those from the third parties) either require a particular version of OSGi runtime environment or require the capability osgi.ee to be set to a specific value. This may or may not work with newer versions of Java and to avoid runtime problems, these requirements need to be removed.

To remove them, it is necessary to edit manifest (META-INF/MANIFEST.MF) of such bundle and remove lines containing: Require-Capability: osgi.ee; or Bundle-RequiredExecutionEnvironment: J2SE-. This is done in the deploy/prepare-bundles.sh script.

An ideal solution would be to either found newer version of such bundles or replace them with different bundles with the same functionality. This however may introduce compatibility issues (as some other bundles may depend on the current versions) or may not even be possible (replacement bundle does not exist).

PAX plugin - abandoned

When running CRCE compiled on Java 11 by PAX plugin, java.lang.UnsupportedClassVersionError exception may occur during startup. The runtime (Apache Felix) used by PAX (the most current plugin version is 1.6.0 at the time of writing) only supports classfile versions up to 52.0 (Java 8). Because of this PAX is not used anymore and CRCE can be run in Docker or manually (user can copy bundles to his own Felix instance).

Clone this wiki locally