-
Notifications
You must be signed in to change notification settings - Fork 3
Notes on technologies
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).
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).
[ CRCE wiki ]