Skip to content

Commit

Permalink
Make most plugins depend on only the SDK and tracer dependencies. (#3231
Browse files Browse the repository at this point in the history
)
  • Loading branch information
raphw committed Jul 26, 2023
1 parent 4976576 commit d75d9e7
Show file tree
Hide file tree
Showing 31 changed files with 123 additions and 34 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
import co.elastic.apm.agent.tracer.configuration.RoundedDoubleConverter;
import co.elastic.apm.agent.tracer.configuration.TimeDuration;
import co.elastic.apm.agent.tracer.configuration.TimeDurationValueConverter;
import co.elastic.apm.agent.configuration.validation.RegexValidator;
import co.elastic.apm.agent.tracer.configuration.RegexValidator;
import co.elastic.apm.agent.impl.transaction.Span;
import co.elastic.apm.agent.matcher.MethodMatcher;
import co.elastic.apm.agent.matcher.MethodMatcherValueConverter;
Expand Down Expand Up @@ -56,7 +56,7 @@
import java.util.Set;
import java.util.concurrent.TimeUnit;

import static co.elastic.apm.agent.configuration.validation.RangeValidator.isInRange;
import static co.elastic.apm.agent.tracer.configuration.RangeValidator.isInRange;
import static co.elastic.apm.agent.logging.LoggingConfiguration.AGENT_HOME_PLACEHOLDER;

public class CoreConfiguration extends ConfigurationOptionProvider implements co.elastic.apm.agent.tracer.configuration.CoreConfiguration {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,7 @@ protected ActiveStack initialValue() {
configs.put(co.elastic.apm.agent.tracer.configuration.MetricsConfiguration.class, MetricsConfiguration.class);
configs.put(co.elastic.apm.agent.tracer.configuration.ReporterConfiguration.class, ReporterConfiguration.class);
configs.put(co.elastic.apm.agent.tracer.configuration.ServerlessConfiguration.class, ServerlessConfiguration.class);
configs.put(co.elastic.apm.agent.tracer.configuration.StacktraceConfiguration.class, StacktraceConfiguration.class);
}

private static void checkClassloader() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@
import org.stagemonitor.configuration.ConfigurationOption;
import org.stagemonitor.configuration.ConfigurationOptionProvider;

import static co.elastic.apm.agent.configuration.validation.RangeValidator.isInRange;
import static co.elastic.apm.agent.configuration.validation.RangeValidator.isNotInRange;
import static co.elastic.apm.agent.tracer.configuration.RangeValidator.isInRange;
import static co.elastic.apm.agent.tracer.configuration.RangeValidator.isNotInRange;

public class CircuitBreakerConfiguration extends ConfigurationOptionProvider {
public static final String CIRCUIT_BREAKER_CATEGORY = "Circuit-Breaker";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
import java.util.Collection;
import java.util.Collections;

public class StacktraceConfiguration extends ConfigurationOptionProvider {
public class StacktraceConfiguration extends ConfigurationOptionProvider implements co.elastic.apm.agent.tracer.configuration.StacktraceConfiguration {

private static final String STACKTRACE_CATEGORY = "Stacktrace";
public static final String APPLICATION_PACKAGES = "application_packages";
Expand Down Expand Up @@ -98,6 +98,7 @@ public class StacktraceConfiguration extends ConfigurationOptionProvider {
.dynamic(true)
.buildWithDefault(TimeDuration.of("5ms"));

@Override
public Collection<String> getApplicationPackages() {
return applicationPackages.get();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
import java.util.Collections;
import java.util.List;

import static co.elastic.apm.agent.configuration.validation.RangeValidator.isNotInRange;
import static co.elastic.apm.agent.tracer.configuration.RangeValidator.isNotInRange;

public class ReporterConfiguration extends ConfigurationOptionProvider implements co.elastic.apm.agent.tracer.configuration.ReporterConfiguration {

Expand Down
6 changes: 6 additions & 0 deletions apm-agent-plugins/apm-api-plugin/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,12 @@
<name>${project.groupId}:${project.artifactId}</name>

<dependencies>
<!-- This plugin requires further refactoring to avoid agent dependencies. -->
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>apm-agent-core</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>apm-agent-api</artifactId>
Expand Down
6 changes: 6 additions & 0 deletions apm-agent-plugins/apm-awslambda-plugin/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,12 @@
</properties>

<dependencies>
<!-- This plugin requires further refactoring to avoid agent dependencies. -->
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>apm-agent-core</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-lambda-java-core</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
package co.elastic.apm.agent.cassandra3;

import co.elastic.apm.agent.cassandra.CassandraHelper;
import co.elastic.apm.agent.impl.context.Destination;
import co.elastic.apm.agent.sdk.ElasticApmInstrumentation;
import co.elastic.apm.agent.sdk.bytebuddy.CustomElementMatchers;
import co.elastic.apm.agent.tracer.GlobalTracer;
Expand Down Expand Up @@ -204,7 +203,7 @@ static DestinationAddressSetter get() {
}

/**
* References the method {@link Destination#withSocketAddress(java.net.SocketAddress)} that has been introduced in 2.0.2
* References the method {@link co.elastic.apm.agent.tracer.metadata.Destination#withSocketAddress(java.net.SocketAddress)} that has been introduced in 2.0.2
* We must not reference this class directly to avoid it being loaded which may cause a linkage error.
*/
enum WithSocketAddress implements DestinationAddressSetter {
Expand Down
6 changes: 6 additions & 0 deletions apm-agent-plugins/apm-ecs-logging-plugin/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,12 @@
</properties>

<dependencies>
<!-- This plugin requires further refactoring to avoid agent dependencies. -->
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>apm-agent-core</artifactId>
<version>${project.version}</version>
</dependency>

<!-- log4j 1.x -->
<dependency>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,12 @@
*/
package co.elastic.apm.agent.websocket;

import co.elastic.apm.agent.impl.stacktrace.StacktraceConfiguration;
import co.elastic.apm.agent.sdk.ElasticApmInstrumentation;
import co.elastic.apm.agent.tracer.GlobalTracer;
import co.elastic.apm.agent.tracer.Outcome;
import co.elastic.apm.agent.tracer.Tracer;
import co.elastic.apm.agent.tracer.Transaction;
import co.elastic.apm.agent.tracer.configuration.StacktraceConfiguration;
import net.bytebuddy.asm.Advice;
import net.bytebuddy.description.NamedElement;
import net.bytebuddy.description.method.MethodDescription;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@

import co.elastic.apm.agent.sdk.ElasticApmInstrumentation;
import co.elastic.apm.agent.tracer.GlobalTracer;
import co.elastic.apm.agent.impl.stacktrace.StacktraceConfiguration;
import co.elastic.apm.agent.tracer.Tracer;
import co.elastic.apm.agent.tracer.Transaction;
import co.elastic.apm.agent.tracer.configuration.StacktraceConfiguration;
import net.bytebuddy.asm.Advice;
import net.bytebuddy.description.NamedElement;
import net.bytebuddy.description.method.MethodDescription;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,11 @@
package co.elastic.apm.agent.jaxws;

import co.elastic.apm.agent.sdk.bytebuddy.SimpleMethodSignatureOffsetMappingFactory.SimpleMethodSignature;
import co.elastic.apm.agent.impl.stacktrace.StacktraceConfiguration;
import co.elastic.apm.agent.sdk.ElasticApmInstrumentation;
import co.elastic.apm.agent.tracer.GlobalTracer;
import co.elastic.apm.agent.tracer.Tracer;
import co.elastic.apm.agent.tracer.Transaction;
import co.elastic.apm.agent.tracer.configuration.StacktraceConfiguration;
import net.bytebuddy.asm.Advice;
import net.bytebuddy.description.NamedElement;
import net.bytebuddy.description.method.MethodDescription;
Expand Down
9 changes: 9 additions & 0 deletions apm-agent-plugins/apm-jmx-plugin/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,13 @@
<apm-agent-parent.base.dir>${project.basedir}/../..</apm-agent-parent.base.dir>
</properties>

<dependencies>
<!-- This plugin requires further refactoring to avoid agent dependencies. -->
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>apm-agent-core</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>

</project>
9 changes: 9 additions & 0 deletions apm-agent-plugins/apm-logging-plugin/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -27,4 +27,13 @@
<module>apm-jul-plugin</module>
</modules>

<dependencies>
<!-- This plugin requires further refactoring to avoid agent dependencies. -->
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>apm-agent-core</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>

</project>
6 changes: 6 additions & 0 deletions apm-agent-plugins/apm-micrometer-plugin/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,12 @@
</properties>

<dependencies>
<!-- This plugin requires further refactoring to avoid agent dependencies. -->
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>apm-agent-core</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-core</artifactId>
Expand Down
9 changes: 9 additions & 0 deletions apm-agent-plugins/apm-opentelemetry/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -34,4 +34,13 @@
<module>apm-opentelemetry-metrics-bridge-parent</module>
</modules>

<dependencies>
<!-- This plugin requires further refactoring to avoid agent dependencies. -->
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>apm-agent-core</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>

</project>
9 changes: 9 additions & 0 deletions apm-agent-plugins/apm-opentracing-plugin/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,13 @@
<apm-agent-parent.base.dir>${project.basedir}/../..</apm-agent-parent.base.dir>
</properties>

<dependencies>
<!-- This plugin requires further refactoring to avoid agent dependencies. -->
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>apm-agent-core</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>

</project>
6 changes: 6 additions & 0 deletions apm-agent-plugins/apm-profiling-plugin/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,12 @@
</properties>

<dependencies>
<!-- This plugin requires further refactoring to avoid agent dependencies. -->
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>apm-agent-core</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.kohsuke</groupId>
<artifactId>github-api</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,8 @@
import java.util.Arrays;
import java.util.List;

import static co.elastic.apm.agent.configuration.validation.RangeValidator.isInRange;
import static co.elastic.apm.agent.configuration.validation.RangeValidator.min;
import static co.elastic.apm.agent.tracer.configuration.RangeValidator.isInRange;
import static co.elastic.apm.agent.tracer.configuration.RangeValidator.min;

public class ProfilingConfiguration extends ConfigurationOptionProvider {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
*/
package co.elastic.apm.agent.quartzjob;

import co.elastic.apm.agent.impl.stacktrace.StacktraceConfiguration;
import co.elastic.apm.agent.sdk.ElasticApmInstrumentation;
import co.elastic.apm.agent.sdk.logging.Logger;
import co.elastic.apm.agent.sdk.logging.LoggerFactory;
Expand All @@ -29,6 +28,7 @@
import co.elastic.apm.agent.tracer.Outcome;
import co.elastic.apm.agent.tracer.Tracer;
import co.elastic.apm.agent.tracer.Transaction;
import co.elastic.apm.agent.tracer.configuration.StacktraceConfiguration;
import net.bytebuddy.description.NamedElement;
import net.bytebuddy.description.type.TypeDescription;
import net.bytebuddy.matcher.ElementMatcher;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
package co.elastic.apm.agent.scheduled;

import co.elastic.apm.agent.sdk.bytebuddy.SimpleMethodSignatureOffsetMappingFactory.SimpleMethodSignature;
import co.elastic.apm.agent.impl.stacktrace.StacktraceConfiguration;
import co.elastic.apm.agent.sdk.ElasticApmInstrumentation;
import co.elastic.apm.agent.sdk.logging.Logger;
import co.elastic.apm.agent.sdk.logging.LoggerFactory;
Expand All @@ -29,6 +28,7 @@
import co.elastic.apm.agent.tracer.Outcome;
import co.elastic.apm.agent.tracer.Tracer;
import co.elastic.apm.agent.tracer.Transaction;
import co.elastic.apm.agent.tracer.configuration.StacktraceConfiguration;
import net.bytebuddy.asm.Advice;
import net.bytebuddy.description.NamedElement;
import net.bytebuddy.description.method.MethodDescription;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
package co.elastic.apm.agent.scheduled;

import co.elastic.apm.agent.sdk.bytebuddy.SimpleMethodSignatureOffsetMappingFactory;
import co.elastic.apm.agent.impl.stacktrace.StacktraceConfiguration;
import co.elastic.apm.agent.sdk.ElasticApmInstrumentation;
import co.elastic.apm.agent.sdk.logging.Logger;
import co.elastic.apm.agent.sdk.logging.LoggerFactory;
Expand All @@ -28,6 +27,7 @@
import co.elastic.apm.agent.tracer.GlobalTracer;
import co.elastic.apm.agent.tracer.Tracer;
import co.elastic.apm.agent.tracer.Transaction;
import co.elastic.apm.agent.tracer.configuration.StacktraceConfiguration;
import net.bytebuddy.asm.Advice;
import net.bytebuddy.description.NamedElement;
import net.bytebuddy.description.method.MethodDescription;
Expand Down
6 changes: 6 additions & 0 deletions apm-agent-plugins/apm-servlet-plugin/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,12 @@
</properties>

<dependencies>
<!-- This plugin requires further refactoring to avoid agent dependencies. -->
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>apm-agent-core</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>apm-java-concurrent-plugin</artifactId>
Expand Down
5 changes: 5 additions & 0 deletions apm-agent-plugins/apm-spring-webflux/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,11 @@
</modules>

<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>apm-agent-core</artifactId>
<version>${project.version}</version>
</dependency>

<!-- required to test integration with servlet instrumentation -->
<dependency>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,12 @@


<dependencies>
<!-- This plugin requires further refactoring to avoid agent dependencies. -->
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>apm-agent-core</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
Expand Down
22 changes: 11 additions & 11 deletions apm-agent-plugins/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -76,21 +76,21 @@
</modules>

<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>apm-agent-plugin-sdk</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>apm-agent-tracer</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>apm-agent-core</artifactId>
<version>${project.version}</version>
<exclusions>
<!--
Plugins shouldn't be aware of the logging implementation
In fact, plugins are disallowed to load log4j classes from the agent CL
so that they can instrument the log4j that comes with the application
-->
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
<scope>test</scope>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
package co.elastic.apm.agent.configuration.validation;
package co.elastic.apm.agent.tracer.configuration;

import org.stagemonitor.configuration.ConfigurationOption;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
package co.elastic.apm.agent.configuration.validation;
package co.elastic.apm.agent.tracer.configuration;

import org.stagemonitor.configuration.ConfigurationOption;

Expand Down

0 comments on commit d75d9e7

Please sign in to comment.