diff --git a/newrelic-agent/src/main/java/com/newrelic/bootstrap/BootstrapAgent.java b/newrelic-agent/src/main/java/com/newrelic/bootstrap/BootstrapAgent.java index 3eef73f874..4304eb0174 100644 --- a/newrelic-agent/src/main/java/com/newrelic/bootstrap/BootstrapAgent.java +++ b/newrelic-agent/src/main/java/com/newrelic/bootstrap/BootstrapAgent.java @@ -26,7 +26,6 @@ import java.net.URL; import java.net.URLClassLoader; import java.text.MessageFormat; -import java.util.Arrays; import java.util.Base64; import java.util.Collection; import java.util.Optional; @@ -42,7 +41,8 @@ public class BootstrapAgent { private static final String WS_LOG_MANAGER = "com.ibm.ws.kernel.boot.logging.WsLogManager"; private static final String AGENT_ENABLED_ENV_VAR = "NEW_RELIC_AGENT_ENABLED"; private static final String AGENT_ENABLED_SYS_PROP = "newrelic.config.agent_enabled"; - private static final String STARTUP_JAVA_ARTIFACT_SKIPS = "NEW_RELIC_STARTUP_JAVA_ARTIFACT_SKIPS"; + private static final String STARTUP_JAVA_ARTIFACT_SKIPS_ENV_VAR = "NEW_RELIC_STARTUP_JAVA_ARTIFACT_SKIPS"; + private static final String STARTUP_JAVA_ARTIFACT_SKIPS_SYS_PROP = "newrelic.config.startup_java_artifact_skips"; private static final String SQL_ON_PLATFORM_LOADER_SYS_PROP = "newrelic.config.sql.platformClassloader"; public static URL getAgentJarUrl() { @@ -342,7 +342,8 @@ private static String getStartupJavaArtifact(String javaSpecVersion) { /** * Extract the defined jars/classes to skip.
- * The skip list is configured via the `NEW_RELIC_STARTUP_JAVA_ARTIFACT_SKIPS` environment variable. + * The skip list is configured via the `NEW_RELIC_STARTUP_JAVA_ARTIFACT_SKIPS_ENV_VAR` environment variable + * or the newrelic.config.startup_java_artifact_skips system property. * This is a comma separated list of main classes, executable jar files or Java based tools/apps * that the agent should NOT instrument. For example:
* export NEW_RELIC_STARTUP_JAVA_ARTIFACT_SKIPS=keytool,myapp.jar,IgnoreThisClass @@ -350,10 +351,13 @@ private static String getStartupJavaArtifact(String javaSpecVersion) { * @return a String [] of defined skip tokens */ private static String [] parseStartupJavaArtifactSkips() { - String skipString = System.getenv(STARTUP_JAVA_ARTIFACT_SKIPS); + String envVal = System.getenv(STARTUP_JAVA_ARTIFACT_SKIPS_ENV_VAR); + String sysVal = System.getProperty(STARTUP_JAVA_ARTIFACT_SKIPS_SYS_PROP); - if (skipString != null && !skipString.isEmpty()) { - return skipString.split(","); + if ((envVal != null && !envVal.isEmpty())) { + return envVal.split(","); + } else if ((sysVal != null && !sysVal.isEmpty())) { + return sysVal.split(","); } return null;