diff --git a/agent-bridge/src/main/java/com/newrelic/agent/bridge/NoOpAgent.java b/agent-bridge/src/main/java/com/newrelic/agent/bridge/NoOpAgent.java index 3eb81761d1..1858087c60 100644 --- a/agent-bridge/src/main/java/com/newrelic/agent/bridge/NoOpAgent.java +++ b/agent-bridge/src/main/java/com/newrelic/agent/bridge/NoOpAgent.java @@ -27,12 +27,12 @@ private NoOpAgent() { @Override public Logger getLogger() { - return NoOpLogger.INSTANCE; + return com.newrelic.api.agent.Agent.noop().getLogger(); } @Override public Config getConfig() { - return NoOpConfig.Instance; + return com.newrelic.api.agent.Agent.noop().getConfig(); } @Override @@ -57,17 +57,17 @@ public Transaction getWeakRefTransaction(boolean createIfNotExists) { @Override public MetricAggregator getMetricAggregator() { - return NoOpMetricAggregator.INSTANCE; + return com.newrelic.api.agent.Agent.noop().getMetricAggregator(); } @Override public Insights getInsights() { - return NoOpInsights.INSTANCE; + return com.newrelic.api.agent.Agent.noop().getInsights(); } @Override public ErrorApi getErrorApi() { - return NoOpErrorApi.INSTANCE; + return com.newrelic.api.agent.Agent.noop().getErrorApi(); } @Override diff --git a/agent-bridge/src/main/java/com/newrelic/agent/bridge/NoOpConfig.java b/agent-bridge/src/main/java/com/newrelic/agent/bridge/NoOpConfig.java deleted file mode 100644 index 1af78462b9..0000000000 --- a/agent-bridge/src/main/java/com/newrelic/agent/bridge/NoOpConfig.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * - * * Copyright 2020 New Relic Corporation. All rights reserved. - * * SPDX-License-Identifier: Apache-2.0 - * - */ - -package com.newrelic.agent.bridge; - -import com.newrelic.api.agent.Config; - -public class NoOpConfig implements Config { - - public static final Config Instance = new NoOpConfig(); - - @Override - public T getValue(String prop) { - return null; - } - - @Override - public T getValue(String key, T defaultVal) { - return defaultVal; - } - -} diff --git a/agent-bridge/src/main/java/com/newrelic/agent/bridge/NoOpErrorApi.java b/agent-bridge/src/main/java/com/newrelic/agent/bridge/NoOpErrorApi.java deleted file mode 100644 index 35c799ab7b..0000000000 --- a/agent-bridge/src/main/java/com/newrelic/agent/bridge/NoOpErrorApi.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.newrelic.agent.bridge; - -import com.newrelic.api.agent.ErrorApi; -import com.newrelic.api.agent.ErrorGroupCallback; - -import java.util.Map; - -class NoOpErrorApi implements ErrorApi { - static final ErrorApi INSTANCE = new NoOpErrorApi(); - - @Override - public void noticeError(Throwable throwable, Map params, boolean expected) { - } - - @Override - public void noticeError(String message, Map params, boolean expected) { - } - - @Override - public void setErrorGroupCallback(ErrorGroupCallback errorGroupCallback) { - } -} diff --git a/agent-bridge/src/main/java/com/newrelic/agent/bridge/NoOpInsights.java b/agent-bridge/src/main/java/com/newrelic/agent/bridge/NoOpInsights.java deleted file mode 100644 index fb0d1886fc..0000000000 --- a/agent-bridge/src/main/java/com/newrelic/agent/bridge/NoOpInsights.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * - * * Copyright 2020 New Relic Corporation. All rights reserved. - * * SPDX-License-Identifier: Apache-2.0 - * - */ - -package com.newrelic.agent.bridge; - -import java.util.Map; - -import com.newrelic.api.agent.Insights; - -class NoOpInsights implements Insights { - static final Insights INSTANCE = new NoOpInsights(); - - private NoOpInsights() { - } - - @Override - public void recordCustomEvent(String eventType, Map attributes) { - } - -} diff --git a/agent-bridge/src/main/java/com/newrelic/agent/bridge/NoOpLogger.java b/agent-bridge/src/main/java/com/newrelic/agent/bridge/NoOpLogger.java deleted file mode 100644 index b2a692a5bd..0000000000 --- a/agent-bridge/src/main/java/com/newrelic/agent/bridge/NoOpLogger.java +++ /dev/null @@ -1,117 +0,0 @@ -/* - * - * * Copyright 2020 New Relic Corporation. All rights reserved. - * * SPDX-License-Identifier: Apache-2.0 - * - */ - -package com.newrelic.agent.bridge; - -import com.newrelic.api.agent.Logger; - -import java.util.logging.Level; - -class NoOpLogger implements Logger { - - static final Logger INSTANCE = new NoOpLogger(); - - private NoOpLogger() { - } - - @Override - public boolean isLoggable(Level level) { - return false; - } - - @Override - public void log(Level level, String pattern, Object[] msg) { - } - - @Override - public void log(Level level, String pattern) { - } - - @Override - public void log(Level level, Throwable t, String pattern) { - } - - @Override - public void log(Level level, String pattern, Object part1) { - } - - @Override - public void log(Level level, String pattern, Object part1, Object part2) { - } - - @Override - public void log(Level level, String pattern, Object part1, Object part2, Object part3) { - } - - @Override - public void log(Level level, String pattern, Object part1, Object part2, Object part3, Object part4) { - } - - @Override - public void log(Level level, String pattern, Object part1, Object part2, Object part3, Object part4, Object part5) { - } - - @Override - public void log(Level level, String pattern, Object part1, Object part2, Object part3, Object part4, Object part5, - Object part6) { - } - - @Override - public void log(Level level, String pattern, Object part1, Object part2, Object part3, Object part4, Object part5, - Object part6, Object part7) { - } - - @Override - public void log(Level level, String pattern, Object part1, Object part2, Object part3, Object part4, Object part5, - Object part6, Object part7, Object... otherParts) { - } - - @Override - public void log(Level level, Throwable t, String pattern, Object[] msg) { - } - - @Override - public void log(Level level, Throwable t, String pattern, Object part1) { - } - - @Override - public void log(Level level, Throwable t, String pattern, Object part1, Object part2) { - } - - @Override - public void log(Level level, Throwable t, String pattern, Object part1, Object part2, Object part3) { - } - - @Override - public void log(Level level, Throwable t, String pattern, Object part1, Object part2, Object part3, Object part4) { - } - - @Override - public void log(Level level, Throwable t, String pattern, Object part1, Object part2, Object part3, Object part4, - Object part5) { - } - - @Override - public void log(Level level, Throwable t, String pattern, Object part1, Object part2, Object part3, Object part4, - Object part5, Object part6) { - } - - @Override - public void log(Level level, Throwable t, String pattern, Object part1, Object part2, Object part3, Object part4, - Object part5, Object part6, Object part7) { - } - - @Override - public void log(Level level, Throwable t, String pattern, Object part1, Object part2, Object part3, Object part4, - Object part5, Object part6, Object part7, Object... otherParts) { - } - - @Override - public void logToChild(String childName, Level level, String pattern, Object part1, Object part2, Object part3, - Object part4) { - } -} diff --git a/agent-bridge/src/main/java/com/newrelic/agent/bridge/NoOpMetricAggregator.java b/agent-bridge/src/main/java/com/newrelic/agent/bridge/NoOpMetricAggregator.java deleted file mode 100644 index 44a255f87d..0000000000 --- a/agent-bridge/src/main/java/com/newrelic/agent/bridge/NoOpMetricAggregator.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * - * * Copyright 2020 New Relic Corporation. All rights reserved. - * * SPDX-License-Identifier: Apache-2.0 - * - */ - -package com.newrelic.agent.bridge; - -import java.util.concurrent.TimeUnit; - -import com.newrelic.api.agent.MetricAggregator; - -public class NoOpMetricAggregator implements MetricAggregator { - public static final MetricAggregator INSTANCE = new NoOpMetricAggregator(); - - private NoOpMetricAggregator() { - } - - @Override - public void recordResponseTimeMetric(String name, long totalTime, long exclusiveTime, TimeUnit timeUnit) { - } - - @Override - public void recordMetric(String name, float value) { - } - - @Override - public void recordResponseTimeMetric(String name, long millis) { - } - - @Override - public void incrementCounter(String name) { - } - - @Override - public void incrementCounter(String name, int count) { - } - -} diff --git a/newrelic-agent/src/main/java/com/newrelic/agent/AgentImpl.java b/newrelic-agent/src/main/java/com/newrelic/agent/AgentImpl.java index d2bcccbd04..952e0aa212 100644 --- a/newrelic-agent/src/main/java/com/newrelic/agent/AgentImpl.java +++ b/newrelic-agent/src/main/java/com/newrelic/agent/AgentImpl.java @@ -8,7 +8,6 @@ package com.newrelic.agent; import com.newrelic.agent.bridge.AgentBridge; -import com.newrelic.agent.bridge.NoOpMetricAggregator; import com.newrelic.agent.bridge.NoOpTracedMethod; import com.newrelic.agent.bridge.NoOpTransaction; import com.newrelic.agent.bridge.TracedMethod; @@ -127,7 +126,7 @@ public MetricAggregator getMetricAggregator() { } catch (Throwable t) { Agent.LOG.log(Level.FINE, "getMetricAggregator() call failed : {0}", t.getMessage()); Agent.LOG.log(Level.FINEST, t, "getMetricAggregator() call failed"); - return NoOpMetricAggregator.INSTANCE; + return com.newrelic.api.agent.Agent.noop().getMetricAggregator(); } } diff --git a/newrelic-api/src/main/java/com/newrelic/api/agent/Agent.java b/newrelic-api/src/main/java/com/newrelic/api/agent/Agent.java index ef289ca4ad..697d86a323 100644 --- a/newrelic-api/src/main/java/com/newrelic/api/agent/Agent.java +++ b/newrelic-api/src/main/java/com/newrelic/api/agent/Agent.java @@ -13,6 +13,13 @@ * The New Relic Java Agent's API. */ public interface Agent { + /** + * Returns a no-op instance of the Agent api. + * @since 8.7.1 + */ + static Agent noop() { + return NoOpAgent.INSTANCE; + } /** * Returns the current traced method. This can only be invoked within methods that are traced. diff --git a/newrelic-api/src/main/java/com/newrelic/api/agent/NewRelic.java b/newrelic-api/src/main/java/com/newrelic/api/agent/NewRelic.java index b4df7065a7..5065e22c12 100644 --- a/newrelic-api/src/main/java/com/newrelic/api/agent/NewRelic.java +++ b/newrelic-api/src/main/java/com/newrelic/api/agent/NewRelic.java @@ -23,7 +23,7 @@ public final class NewRelic { * @since 3.9.0 */ public static Agent getAgent() { - return NoOpAgent.INSTANCE; + return Agent.noop(); } // ************************** Metric API ****************************************//