diff --git a/agent-tooling/agent-tooling.gradle b/agent-tooling/agent-tooling.gradle index 9e1700f242..41c3c916e4 100644 --- a/agent-tooling/agent-tooling.gradle +++ b/agent-tooling/agent-tooling.gradle @@ -21,9 +21,8 @@ dependencies { compile deps.opentelemetryApi compile deps.opentelemetrySdk + compile deps.opentelemetrySdkAutoConfig - // TODO: This might have to live in opentelemetry-java - compile project(':exporter-support') compile group: 'com.blogspot.mydailyjava', name: 'weak-lock-free', version: '0.15' compile deps.bytebuddy diff --git a/agent-tooling/src/main/java/io/opentelemetry/auto/tooling/DefaultConfigProvider.java b/agent-tooling/src/main/java/io/opentelemetry/auto/tooling/DefaultExporterConfig.java similarity index 92% rename from agent-tooling/src/main/java/io/opentelemetry/auto/tooling/DefaultConfigProvider.java rename to agent-tooling/src/main/java/io/opentelemetry/auto/tooling/DefaultExporterConfig.java index 6704817aae..17ae5954e2 100644 --- a/agent-tooling/src/main/java/io/opentelemetry/auto/tooling/DefaultConfigProvider.java +++ b/agent-tooling/src/main/java/io/opentelemetry/auto/tooling/DefaultExporterConfig.java @@ -16,12 +16,11 @@ package io.opentelemetry.auto.tooling; import io.opentelemetry.auto.config.Config; -import io.opentelemetry.auto.exportersupport.ConfigProvider; -public class DefaultConfigProvider implements ConfigProvider { +public class DefaultExporterConfig implements io.opentelemetry.sdk.contrib.auto.config.Config { private final String prefix; - public DefaultConfigProvider(final String prefix) { + public DefaultExporterConfig(final String prefix) { this.prefix = prefix; } diff --git a/agent-tooling/src/main/java/io/opentelemetry/auto/tooling/ExporterClassLoader.java b/agent-tooling/src/main/java/io/opentelemetry/auto/tooling/ExporterClassLoader.java index 319ca661b4..800d5cc8bd 100644 --- a/agent-tooling/src/main/java/io/opentelemetry/auto/tooling/ExporterClassLoader.java +++ b/agent-tooling/src/main/java/io/opentelemetry/auto/tooling/ExporterClassLoader.java @@ -62,7 +62,7 @@ public class ExporterClassLoader extends URLClassLoader { // A small hack to prevent other exporters from being loaded by this classloader if they // should happen to appear on the classpath. if (name.equals( - "META-INF/services/io.opentelemetry.auto.exportersupport.SpanExporterFactory")) { + "META-INF/services/io.opentelemetry.sdk.contrib.auto.config.SpanExporterFactory")) { return findResources(name); } return super.getResources(name); diff --git a/agent-tooling/src/main/java/io/opentelemetry/auto/tooling/TracerInstaller.java b/agent-tooling/src/main/java/io/opentelemetry/auto/tooling/TracerInstaller.java index 0dbb3f40fd..8e4f1f0aa5 100644 --- a/agent-tooling/src/main/java/io/opentelemetry/auto/tooling/TracerInstaller.java +++ b/agent-tooling/src/main/java/io/opentelemetry/auto/tooling/TracerInstaller.java @@ -17,8 +17,8 @@ package io.opentelemetry.auto.tooling; import com.google.common.annotations.VisibleForTesting; import io.opentelemetry.auto.config.Config; -import io.opentelemetry.auto.exportersupport.SpanExporterFactory; import io.opentelemetry.sdk.OpenTelemetrySdk; +import io.opentelemetry.sdk.contrib.auto.config.SpanExporterFactory; import io.opentelemetry.sdk.trace.export.SimpleSpansProcessor; import io.opentelemetry.sdk.trace.export.SpanExporter; import java.io.File; @@ -74,7 +74,7 @@ public class TracerInstaller { log.warn( "Exporter JAR defines more than one factory. Only the first one found will be used"); } - return f.fromConfig(new DefaultConfigProvider("exporter")); + return f.fromConfig(new DefaultExporterConfig("exporter")); } log.warn("No matching providers in jar " + exporterJar); return null; diff --git a/exporter-adapters/jaeger-adapter/jaeger-adapter.gradle b/exporter-adapters/jaeger-adapter/jaeger-adapter.gradle index a44ead8fce..d639dac28a 100644 --- a/exporter-adapters/jaeger-adapter/jaeger-adapter.gradle +++ b/exporter-adapters/jaeger-adapter/jaeger-adapter.gradle @@ -6,6 +6,6 @@ apply from: "${rootDir}/gradle/java.gradle" dependencies { compile deps.opentelemetryJaeger - compile project(':exporter-support') + compileOnly deps.opentelemetrySdkAutoConfig compile group: 'io.grpc', name: 'grpc-api', version: '1.24.0' } diff --git a/exporter-adapters/jaeger-adapter/src/main/java/io/opentelemetry/auto/exporters/jaeger/JaegerExporterFactory.java b/exporter-adapters/jaeger-adapter/src/main/java/io/opentelemetry/auto/exporters/jaeger/JaegerExporterFactory.java index 0cb64beca4..3bfbf4aae4 100644 --- a/exporter-adapters/jaeger-adapter/src/main/java/io/opentelemetry/auto/exporters/jaeger/JaegerExporterFactory.java +++ b/exporter-adapters/jaeger-adapter/src/main/java/io/opentelemetry/auto/exporters/jaeger/JaegerExporterFactory.java @@ -17,9 +17,9 @@ package io.opentelemetry.auto.exporters.jaeger; import io.grpc.ManagedChannel; import io.grpc.ManagedChannelBuilder; -import io.opentelemetry.auto.exportersupport.ConfigProvider; -import io.opentelemetry.auto.exportersupport.SpanExporterFactory; import io.opentelemetry.exporters.jaeger.JaegerGrpcSpanExporter; +import io.opentelemetry.sdk.contrib.auto.config.Config; +import io.opentelemetry.sdk.contrib.auto.config.SpanExporterFactory; import io.opentelemetry.sdk.trace.export.SpanExporter; public class JaegerExporterFactory implements SpanExporterFactory { @@ -34,7 +34,7 @@ public class JaegerExporterFactory implements SpanExporterFactory { private static final String DEFAULT_SERVICE = "(unknown service)"; @Override - public SpanExporter fromConfig(final ConfigProvider config) { + public SpanExporter fromConfig(final Config config) { final String host = config.getString(HOST_CONFIG, null); if (host == null) { throw new IllegalArgumentException(HOST_CONFIG + " must be specified"); diff --git a/exporter-adapters/jaeger-adapter/src/main/resources/META-INF/services/io.opentelemetry.auto.exportersupport.SpanExporterFactory b/exporter-adapters/jaeger-adapter/src/main/resources/META-INF/services/io.opentelemetry.sdk.contrib.auto.config.SpanExporterFactory similarity index 100% rename from exporter-adapters/jaeger-adapter/src/main/resources/META-INF/services/io.opentelemetry.auto.exportersupport.SpanExporterFactory rename to exporter-adapters/jaeger-adapter/src/main/resources/META-INF/services/io.opentelemetry.sdk.contrib.auto.config.SpanExporterFactory diff --git a/exporter-adapters/logging-exporter-adapter/logging-exporter-adapter.gradle b/exporter-adapters/logging-exporter-adapter/logging-exporter-adapter.gradle index c6a4e631a3..49c6f17026 100644 --- a/exporter-adapters/logging-exporter-adapter/logging-exporter-adapter.gradle +++ b/exporter-adapters/logging-exporter-adapter/logging-exporter-adapter.gradle @@ -7,6 +7,6 @@ apply from: "${rootDir}/gradle/java.gradle" dependencies { compileOnly deps.opentelemetrySdk compileOnly deps.opentelemetryApi - compile project(":exporter-support") + compileOnly deps.opentelemetrySdkAutoConfig } diff --git a/exporter-adapters/logging-exporter-adapter/src/main/java/io/opentelemetry/auto/exporters/loggingexporter/LoggingExporterFactory.java b/exporter-adapters/logging-exporter-adapter/src/main/java/io/opentelemetry/auto/exporters/loggingexporter/LoggingExporterFactory.java index fc86c93800..ed946ea83b 100644 --- a/exporter-adapters/logging-exporter-adapter/src/main/java/io/opentelemetry/auto/exporters/loggingexporter/LoggingExporterFactory.java +++ b/exporter-adapters/logging-exporter-adapter/src/main/java/io/opentelemetry/auto/exporters/loggingexporter/LoggingExporterFactory.java @@ -15,13 +15,13 @@ */ package io.opentelemetry.auto.exporters.loggingexporter; -import io.opentelemetry.auto.exportersupport.ConfigProvider; -import io.opentelemetry.auto.exportersupport.SpanExporterFactory; +import io.opentelemetry.sdk.contrib.auto.config.Config; +import io.opentelemetry.sdk.contrib.auto.config.SpanExporterFactory; import io.opentelemetry.sdk.trace.export.SpanExporter; public class LoggingExporterFactory implements SpanExporterFactory { @Override - public SpanExporter fromConfig(final ConfigProvider config) { + public SpanExporter fromConfig(final Config config) { return new LoggingExporter(config.getString("logging.prefix", "no-prefix")); } } diff --git a/exporter-adapters/logging-exporter-adapter/src/main/resources/META-INF/services/io.opentelemetry.auto.exportersupport.SpanExporterFactory b/exporter-adapters/logging-exporter-adapter/src/main/resources/META-INF/services/io.opentelemetry.sdk.contrib.auto.config.SpanExporterFactory similarity index 100% rename from exporter-adapters/logging-exporter-adapter/src/main/resources/META-INF/services/io.opentelemetry.auto.exportersupport.SpanExporterFactory rename to exporter-adapters/logging-exporter-adapter/src/main/resources/META-INF/services/io.opentelemetry.sdk.contrib.auto.config.SpanExporterFactory diff --git a/exporter-adapters/src/test/groovy/io/opentelemetry/auto/exporteradapters/ExporterAdaptersTest.groovy b/exporter-adapters/src/test/groovy/io/opentelemetry/auto/exporteradapters/ExporterAdaptersTest.groovy index d1a0e39389..56b0ce0cf5 100644 --- a/exporter-adapters/src/test/groovy/io/opentelemetry/auto/exporteradapters/ExporterAdaptersTest.groovy +++ b/exporter-adapters/src/test/groovy/io/opentelemetry/auto/exporteradapters/ExporterAdaptersTest.groovy @@ -13,8 +13,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import io.opentelemetry.auto.exportersupport.SpanExporterFactory import io.opentelemetry.auto.tooling.ExporterClassLoader +import io.opentelemetry.sdk.contrib.auto.config.SpanExporterFactory import spock.lang.Shared import spock.lang.Specification diff --git a/exporter-support/exporter-support.gradle b/exporter-support/exporter-support.gradle deleted file mode 100644 index d5ecfabb2f..0000000000 --- a/exporter-support/exporter-support.gradle +++ /dev/null @@ -1,5 +0,0 @@ -apply from: "${rootDir}/gradle/java.gradle" - -dependencies { - compileOnly deps.opentelemetrySdk -} diff --git a/exporter-support/src/main/java/io/opentelemetry/auto/exportersupport/ConfigProvider.java b/exporter-support/src/main/java/io/opentelemetry/auto/exportersupport/ConfigProvider.java deleted file mode 100644 index 72d66268a0..0000000000 --- a/exporter-support/src/main/java/io/opentelemetry/auto/exportersupport/ConfigProvider.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright 2020, OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.opentelemetry.auto.exportersupport; - -public interface ConfigProvider { - String getString(String key, String defaultValue); - - int getInt(String key, int defaultValue); - - long getLong(String key, long defaultValue); - - boolean getBoolean(String key, boolean defaultValue); - - double getDouble(String key, double defaultValue); -} diff --git a/exporter-support/src/main/java/io/opentelemetry/auto/exportersupport/SpanExporterFactory.java b/exporter-support/src/main/java/io/opentelemetry/auto/exportersupport/SpanExporterFactory.java deleted file mode 100644 index b11360030a..0000000000 --- a/exporter-support/src/main/java/io/opentelemetry/auto/exportersupport/SpanExporterFactory.java +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright 2020, OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.opentelemetry.auto.exportersupport; - -import io.opentelemetry.sdk.trace.export.SpanExporter; - -public interface SpanExporterFactory { - SpanExporter fromConfig(ConfigProvider config); -} diff --git a/gradle/dependencies.gradle b/gradle/dependencies.gradle index b823ebadab..58f682cbc4 100644 --- a/gradle/dependencies.gradle +++ b/gradle/dependencies.gradle @@ -20,16 +20,17 @@ ext { deps = [ // OpenTelemetry - opentelemetryApi : dependencies.create(group: 'io.opentelemetry', name: 'opentelemetry-api', version: versions.opentelemetry), - opentelemetrySdk : dependencies.create(group: 'io.opentelemetry', name: 'opentelemetry-sdk', version: versions.opentelemetry), - opentelemetryJaeger: dependencies.create(group: 'io.opentelemetry', name: 'opentelemetry-exporters-jaeger', version: versions.opentelemetry), + opentelemetryApi : dependencies.create(group: 'io.opentelemetry', name: 'opentelemetry-api', version: versions.opentelemetry), + opentelemetrySdk : dependencies.create(group: 'io.opentelemetry', name: 'opentelemetry-sdk', version: versions.opentelemetry), + opentelemetrySdkAutoConfig: dependencies.create(group: 'io.opentelemetry', name: 'opentelemetry-sdk-contrib-auto-config', version: versions.opentelemetry), + opentelemetryJaeger : dependencies.create(group: 'io.opentelemetry', name: 'opentelemetry-exporters-jaeger', version: versions.opentelemetry), // General - slf4j : "org.slf4j:slf4j-api:${versions.slf4j}", - guava : "com.google.guava:guava:$versions.guava", - bytebuddy : dependencies.create(group: 'net.bytebuddy', name: 'byte-buddy', version: "${versions.bytebuddy}"), - bytebuddyagent : dependencies.create(group: 'net.bytebuddy', name: 'byte-buddy-agent', version: "${versions.bytebuddy}"), - autoservice : [ + slf4j : "org.slf4j:slf4j-api:${versions.slf4j}", + guava : "com.google.guava:guava:$versions.guava", + bytebuddy : dependencies.create(group: 'net.bytebuddy', name: 'byte-buddy', version: "${versions.bytebuddy}"), + bytebuddyagent : dependencies.create(group: 'net.bytebuddy', name: 'byte-buddy-agent', version: "${versions.bytebuddy}"), + autoservice : [ dependencies.create(group: 'com.google.auto.service', name: 'auto-service', version: '1.0-rc3'), dependencies.create(group: 'com.google.auto', name: 'auto-common', version: '0.8'), // These are the last versions that support guava 20.0. Upgrading has odd interactions with shadow. @@ -38,23 +39,23 @@ ext { // Testing - spock : [ + spock : [ dependencies.create("org.spockframework:spock-core:${versions.spock}", { exclude group: 'org.codehaus.groovy', module: 'groovy-all' }), // Used by Spock for mocking: dependencies.create(group: 'org.objenesis', name: 'objenesis', version: '2.6') // Last version to support Java7 ], - groovy : "org.codehaus.groovy:groovy-all:${versions.groovy}", - testcontainers : "org.testcontainers:testcontainers:1.12.2", - testLogging : [ + groovy : "org.codehaus.groovy:groovy-all:${versions.groovy}", + testcontainers : "org.testcontainers:testcontainers:1.12.2", + testLogging : [ dependencies.create(group: 'ch.qos.logback', name: 'logback-classic', version: versions.logback), dependencies.create(group: 'org.slf4j', name: 'log4j-over-slf4j', version: versions.slf4j), dependencies.create(group: 'org.slf4j', name: 'jcl-over-slf4j', version: versions.slf4j), dependencies.create(group: 'org.slf4j', name: 'jul-to-slf4j', version: versions.slf4j), ], - scala : dependencies.create(group: 'org.scala-lang', name: 'scala-library', version: "${versions.scala}"), - kotlin : dependencies.create(group: 'org.jetbrains.kotlin', name: 'kotlin-stdlib', version: "${versions.kotlin}"), - coroutines : dependencies.create(group: 'org.jetbrains.kotlinx', name: 'kotlinx-coroutines-core', version: "${versions.coroutines}"), + scala : dependencies.create(group: 'org.scala-lang', name: 'scala-library', version: "${versions.scala}"), + kotlin : dependencies.create(group: 'org.jetbrains.kotlin', name: 'kotlin-stdlib', version: "${versions.kotlin}"), + coroutines : dependencies.create(group: 'org.jetbrains.kotlinx', name: 'kotlinx-coroutines-core', version: "${versions.coroutines}"), ] } diff --git a/settings.gradle b/settings.gradle index 9df49f3b39..8427eeef4c 100644 --- a/settings.gradle +++ b/settings.gradle @@ -27,9 +27,6 @@ include ':agent-bootstrap' include ':agent-tooling' include ':load-generator' -// exporter support -include ':exporter-support' - // misc include ':testing' include ':utils:test-utils'