The GlassFish application server versions 3.x and later uses OSGi architecture. By default, OSGi containers follow a specific model for bootstrap class delegation. Classes that are not specified in the container's CLASSPATH are not delegated to the bootstrap classloader; therefore you must configure the OSGi containers for the Java Agentclasses.

See GlassFish Startup Settings and GlassFish OSGi Configuration per Domain.

To ensure that the OSGi container identifies the Java Agent, specify this package prefix:

org.osgi.framework.bootdelegation=com.singularity.*
CODE

This prefix follows the regular boot delegation model so that the Java Agent classes are visible.

If you already have existing boot delegations, add "com.singularity.*" to the existing path separated by a comma. For example:

org.osgi.framework.bootdelegation=com.sun.btrace., com.singularity.

Configure Eclipse Equinox

If running Eclipse Equinox under Glassfish:

  1. Open the config.ini file located at <glassfish install directory>/glassfish/osgi/equinox/configuration.
  2. Add this package prefix to the config.ini file:

    org.osgi.framework.bootdelegation=com.singularity.*
    CODE

If running Eclipse Equinox under the WebSphere Application Server Liberty profile:

  1. Open the bootstrap.properties file in the JVM directory <WLP_home>/usr/servers/<server_name> for editing.
  2. Add this code line:

    org.osgi.framework.bootdelegation=com.singularity.*
    CODE

See Getting Started with Equinox.

Configure Apache Sling

  1. Open the sling.properties file. The location of the sling.properties varies depending on the Java platform.
    In the Sun/Oracle implementation, the sling.properties file is located at <java.home>/lib
  2. Add this package prefix to the sling.properties file:

    org.osgi.framework.bootdelegation=com.singularity.*
    CODE

Configure JIRA or Confluence

For JIRA >= 5.1.8, and Confluence >= 5.3:

  1. Open the startup script (that is, catalina.sh) for editing.  

  2. Look for the start command block (look for "elif [ "$1" = "start" ] ; then") 

  3. Add the following Java system property alongside the existing properties in both else blocks:

    -Datlassian.org.osgi.framework.bootdelegation.extra=com.singularity.*
    CODE
  4. Add the property to the run command block as well to instrument the application started in run mode. For example: 

    Run Command Block 

  5. Before the comment line 'Execute The Requested Command', add the –javaagent argument to the file as a new Java option:

    JAVA_OPTS="$JAVA_OPTS -javaagent:<agent_home>/javaagent.jar"
    CODE
    set JAVA_OPTS=%JAVA_OPTS% -javaagent:"Drive:<agent_home>\javaagent.jar"
    CODE
  6. Restart the application.

Configure Other OSGi-based Containers

For other OSGI-based runtime containers, add this package prefix to the appropriate OSGi configuration.

file.org.osgi.framework.bootdelegation=com.singularity.*
CODE