Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions dynamic-control/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,22 @@ java {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}

dependencies {
annotationProcessor("com.google.auto.service:auto-service")
compileOnly("com.google.auto.service:auto-service-annotations")

compileOnly("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure")
compileOnly("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi")

testCompileOnly("com.google.auto.service:auto-service-annotations")
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine")
testImplementation("org.junit.jupiter:junit-jupiter-api")
testCompileOnly("org.junit.jupiter:junit-jupiter-params")

testImplementation("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure")
testImplementation("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi")
testImplementation("org.assertj:assertj-core")
testImplementation("org.mockito:mockito-inline")
testImplementation("org.mockito:mockito-junit-jupiter")
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
/*
* Copyright The OpenTelemetry Authors
* SPDX-License-Identifier: Apache-2.0
*/

package io.opentelemetry.contrib.dynamic;

import com.google.auto.service.AutoService;
import io.opentelemetry.sdk.autoconfigure.spi.AutoConfigurationCustomizer;
import io.opentelemetry.sdk.autoconfigure.spi.AutoConfigurationCustomizerProvider;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
* AutoConfigurationCustomizerProvider for dynamic control extension.
*
* <p>This extension provides a skeleton for dynamic control of agent features. Currently, it only
* logs when loaded by the agent.
*/
@AutoService(AutoConfigurationCustomizerProvider.class)
public class DynamicControlAutoConfiguration implements AutoConfigurationCustomizerProvider {

private static final Logger logger =
Logger.getLogger(DynamicControlAutoConfiguration.class.getName());

@Override
public void customize(AutoConfigurationCustomizer autoConfiguration) {
logger.log(Level.INFO, "Dynamic control extension has been loaded by the agent");
}

@Override
public int order() {
return 0;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
/*
* Copyright The OpenTelemetry Authors
* SPDX-License-Identifier: Apache-2.0
*/

package io.opentelemetry.contrib.dynamic;

import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.mock;

import io.opentelemetry.sdk.autoconfigure.spi.AutoConfigurationCustomizer;
import org.junit.jupiter.api.Test;

class DynamicControlAutoConfigurationTest {

@Test
void testCustomize() {
DynamicControlAutoConfiguration config = new DynamicControlAutoConfiguration();
AutoConfigurationCustomizer customizer = mock(AutoConfigurationCustomizer.class);

config.customize(customizer);

// The customize method should not throw and should be callable
// Logging is tested manually or via integration tests
}

@Test
void testOrder() {
// This is a placeholder test, just to have something
DynamicControlAutoConfiguration config = new DynamicControlAutoConfiguration();
// Default order should be 0
assertThat(config.order()).isEqualTo(0);
}
}