external agents needs bootdelegation update in Jahia 8
Question
When trying to use external agents like appDynamics to check the health of the environment. The compatibility must be checked.
Answer
It is possible that you run in NoClassDefFound errors because the OSGI classpath doesn't load the right classes.
The correct solution is to update the OSGI bootdelegation. Since Jahia 8 the bootdelegation can be found in \digital-factory-data\karaf\etc\custom.properties
E.g. For the AppDynamics agent. You will run in startup in follow NoClassDefFound:
Caused by: java.lang.NoClassDefFoundError: com/singularity/ee/agent/appagent/entrypoint/bciengine/FastMethodInterceptorDelegatorBoot
But it would help to add "com.singularity.*" to the bootdelegation, so the change would look like:
org.osgi.framework.bootdelegation=\ com.sun.*, \ javax.annotation, \ javax.transaction, \ javax.transaction.*, \ javax.xml.crypto, \ javax.xml.crypto.*, \ jdk.nashorn.*, \ sun.*, \ com.singularity.*, \ jdk.internal.reflect, \ jdk.internal.reflect.*, \ org.apache.karaf.jaas.boot, \ org.apache.karaf.jaas.boot.principal,\ __redirected, \ org.apache.tomcat, \ org.apache.tomcat.util.scan, \ org.apache.tomcat.util.compat, \ javax.net.ssl, \ com.yourkit.*, \ eu.plumbr.*, \ eu.plumbr.agent.instrumentation.*, \ eu.plumbr.agent.*, \ org.jahia.services.modulemanager, \ org.jahia.services.modulemanager.spi.impl, \ org.jahia.osgi, \ org.jahia.data.templates, \ org.bouncycastle.crypto, \ org.bouncycastle.crypto.prng, \ ${org.osgi.framework.bootdelegation.extra}
On the next restart the issue should be solved.
For other agents, other packages must be added to the bootdelegation, it depends on the agent. If you need help, contact the jahia support.