This is an automated email from the ASF dual-hosted git repository.
sunnianjun pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new af85f31f9ea Refactor AgentExtension to suite junit 5 (#24354)
af85f31f9ea is described below
commit af85f31f9ea77171edbbe4f73a762b5ee8d0751d
Author: Liang Zhang <[email protected]>
AuthorDate: Mon Feb 27 01:02:03 2023 +0800
Refactor AgentExtension to suite junit 5 (#24354)
* Refactor AgentExtension to suite junit 5
* Fix test case
* Fix test case
---
.../{AgentRunner.java => AgentExtension.java} | 60 +++++---------------
.../AbstractCommandExecutorTaskAdviceTest.java | 6 +-
.../AbstractJDBCExecutorCallbackAdviceTest.java | 6 +-
.../advice/AbstractSQLParserEngineAdviceTest.java | 6 +-
.../agent/plugin/tracing/rule/CollectorRule.java | 26 ---------
...TelemetryTracingPluginLifecycleServiceTest.java | 18 +++---
...OpenTelemetryCommandExecutorTaskAdviceTest.java | 31 ++++++++---
...penTelemetryJDBCExecutorCallbackAdviceTest.java | 32 ++++++-----
.../OpenTelemetrySQLParserEngineAdviceTest.java | 39 ++++++-------
.../collector/OpenTelemetryCollector.java | 65 ----------------------
.../OpenTracingPluginLifecycleServiceTest.java | 8 +--
.../OpenTracingCommandExecutorTaskAdviceTest.java | 14 ++---
.../OpenTracingJDBCExecutorCallbackAdviceTest.java | 12 ++--
.../OpenTracingSQLParserEngineAdviceTest.java | 12 ++--
14 files changed, 115 insertions(+), 220 deletions(-)
diff --git
a/agent/plugins/tracing/test/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/AgentRunner.java
b/agent/plugins/tracing/test/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/AgentExtension.java
similarity index 62%
rename from
agent/plugins/tracing/test/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/AgentRunner.java
rename to
agent/plugins/tracing/test/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/AgentExtension.java
index d0f31b235d3..28855939700 100644
---
a/agent/plugins/tracing/test/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/AgentRunner.java
+++
b/agent/plugins/tracing/test/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/AgentExtension.java
@@ -27,19 +27,16 @@ import net.bytebuddy.jar.asm.Opcodes;
import net.bytebuddy.matcher.ElementMatchers;
import org.apache.shardingsphere.agent.api.advice.TargetAdviceObject;
import org.apache.shardingsphere.agent.plugin.tracing.advice.AdviceTestBase;
-import org.apache.shardingsphere.agent.plugin.tracing.rule.CollectorRule;
-import org.junit.rules.TestRule;
-import org.junit.runners.BlockJUnit4ClassRunner;
-import org.junit.runners.model.FrameworkMethod;
-import org.junit.runners.model.InitializationError;
-import org.junit.runners.model.Statement;
+import org.junit.jupiter.api.extension.AfterAllCallback;
+import org.junit.jupiter.api.extension.BeforeAllCallback;
+import org.junit.jupiter.api.extension.BeforeEachCallback;
+import org.junit.jupiter.api.extension.ExtensionContext;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashSet;
-import java.util.List;
-public final class AgentRunner extends BlockJUnit4ClassRunner {
+public final class AgentExtension implements BeforeAllCallback,
AfterAllCallback, BeforeEachCallback {
private static final String EXTRA_DATA = "_$EXTRA_DATA$_";
@@ -51,14 +48,8 @@ public final class AgentRunner extends
BlockJUnit4ClassRunner {
"org.apache.shardingsphere.infra.parser.ShardingSphereSQLParserEngine",
};
- private CollectorRule collectorRule;
-
- public AgentRunner(final Class<?> testClass) throws InitializationError {
- super(testClass);
- }
-
@Override
- protected Statement withBeforeClasses(final Statement statement) {
+ public void beforeAll(final ExtensionContext context) {
ByteBuddyAgent.install();
Collection<String> classes = new
HashSet<>(Arrays.asList(ENHANCEMENT_CLASSES));
byteBuddyAgent = new AgentBuilder.Default()
@@ -75,47 +66,22 @@ public final class AgentRunner extends
BlockJUnit4ClassRunner {
// load them into current classloader
classes.forEach(each -> {
try {
- Class<?> klass = Class.forName(each);
+ Class.forName(each);
} catch (final ClassNotFoundException ignored) {
}
});
- return super.withBeforeClasses(statement);
}
@Override
- protected List<TestRule> classRules() {
- List<TestRule> result = super.classRules();
- collectorRule = result.stream().filter(each -> each instanceof
CollectorRule).findFirst().map(optional -> (CollectorRule) optional).orElse(()
-> {
- });
- return result;
+ public void afterAll(final ExtensionContext context) {
+ byteBuddyAgent.reset(ByteBuddyAgent.getInstrumentation(),
AgentBuilder.RedefinitionStrategy.RETRANSFORMATION);
}
@Override
- protected Statement withBefores(final FrameworkMethod method, final Object
target, final Statement statement) {
- if (target instanceof AdviceTestBase) {
- ((AdviceTestBase) target).prepare();
+ public void beforeEach(final ExtensionContext context) {
+ Object testInstance = context.getRequiredTestInstance();
+ if (testInstance instanceof AdviceTestBase) {
+ ((AdviceTestBase) testInstance).prepare();
}
- return super.withBefores(method, target, statement);
- }
-
- @Override
- protected Statement withAfters(final FrameworkMethod method, final Object
target, final Statement statement) {
- return super.withAfters(method, target, new Statement() {
-
- @Override
- public void evaluate() throws Throwable {
- try {
- statement.evaluate();
- } finally {
- collectorRule.cleanup();
- }
- }
- });
- }
-
- @Override
- protected Statement withAfterClasses(final Statement statement) {
- byteBuddyAgent.reset(ByteBuddyAgent.getInstrumentation(),
AgentBuilder.RedefinitionStrategy.RETRANSFORMATION);
- return super.withAfterClasses(statement);
}
}
diff --git
a/agent/plugins/tracing/test/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/advice/AbstractCommandExecutorTaskAdviceTest.java
b/agent/plugins/tracing/test/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/advice/AbstractCommandExecutorTaskAdviceTest.java
index 3f0731ede10..91ebf3fdc7b 100644
---
a/agent/plugins/tracing/test/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/advice/AbstractCommandExecutorTaskAdviceTest.java
+++
b/agent/plugins/tracing/test/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/advice/AbstractCommandExecutorTaskAdviceTest.java
@@ -20,21 +20,21 @@ package
org.apache.shardingsphere.agent.plugin.tracing.advice;
import io.netty.util.DefaultAttributeMap;
import lombok.Getter;
import org.apache.shardingsphere.agent.api.advice.TargetAdviceObject;
-import org.apache.shardingsphere.agent.plugin.tracing.AgentRunner;
+import org.apache.shardingsphere.agent.plugin.tracing.AgentExtension;
import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
import org.apache.shardingsphere.proxy.frontend.command.CommandExecutorTask;
import org.apache.shardingsphere.transaction.api.TransactionType;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.MockedStatic;
import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.mockStatic;
-@RunWith(AgentRunner.class)
+@ExtendWith(AgentExtension.class)
public abstract class AbstractCommandExecutorTaskAdviceTest implements
AdviceTestBase {
@Getter
diff --git
a/agent/plugins/tracing/test/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/advice/AbstractJDBCExecutorCallbackAdviceTest.java
b/agent/plugins/tracing/test/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/advice/AbstractJDBCExecutorCallbackAdviceTest.java
index 02c40843766..d474fc487fd 100644
---
a/agent/plugins/tracing/test/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/advice/AbstractJDBCExecutorCallbackAdviceTest.java
+++
b/agent/plugins/tracing/test/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/advice/AbstractJDBCExecutorCallbackAdviceTest.java
@@ -20,7 +20,7 @@ package org.apache.shardingsphere.agent.plugin.tracing.advice;
import lombok.Getter;
import lombok.SneakyThrows;
import org.apache.shardingsphere.agent.api.advice.TargetAdviceObject;
-import org.apache.shardingsphere.agent.plugin.tracing.AgentRunner;
+import org.apache.shardingsphere.agent.plugin.tracing.AgentExtension;
import org.apache.shardingsphere.agent.plugin.tracing.MockDataSourceMetaData;
import org.apache.shardingsphere.infra.database.metadata.DataSourceMetaData;
import org.apache.shardingsphere.infra.database.type.DatabaseType;
@@ -29,7 +29,7 @@ import
org.apache.shardingsphere.infra.executor.sql.context.ExecutionUnit;
import org.apache.shardingsphere.infra.executor.sql.context.SQLUnit;
import
org.apache.shardingsphere.infra.executor.sql.execute.engine.driver.jdbc.JDBCExecutionUnit;
import
org.apache.shardingsphere.infra.executor.sql.execute.engine.driver.jdbc.JDBCExecutorCallback;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.internal.configuration.plugins.Plugins;
import java.sql.Connection;
@@ -43,7 +43,7 @@ import java.util.Map;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
-@RunWith(AgentRunner.class)
+@ExtendWith(AgentExtension.class)
public abstract class AbstractJDBCExecutorCallbackAdviceTest implements
AdviceTestBase {
@Getter
diff --git
a/agent/plugins/tracing/test/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/advice/AbstractSQLParserEngineAdviceTest.java
b/agent/plugins/tracing/test/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/advice/AbstractSQLParserEngineAdviceTest.java
index 4b0df2a2f6d..b13b2faf694 100644
---
a/agent/plugins/tracing/test/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/advice/AbstractSQLParserEngineAdviceTest.java
+++
b/agent/plugins/tracing/test/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/advice/AbstractSQLParserEngineAdviceTest.java
@@ -19,13 +19,13 @@ package
org.apache.shardingsphere.agent.plugin.tracing.advice;
import lombok.Getter;
import org.apache.shardingsphere.agent.api.advice.TargetAdviceObject;
-import org.apache.shardingsphere.agent.plugin.tracing.AgentRunner;
+import org.apache.shardingsphere.agent.plugin.tracing.AgentExtension;
import org.apache.shardingsphere.infra.parser.ShardingSphereSQLParserEngine;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.extension.ExtendWith;
import static org.mockito.Mockito.mock;
-@RunWith(AgentRunner.class)
+@ExtendWith(AgentExtension.class)
public abstract class AbstractSQLParserEngineAdviceTest implements
AdviceTestBase {
@Getter
diff --git
a/agent/plugins/tracing/test/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/rule/CollectorRule.java
b/agent/plugins/tracing/test/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/rule/CollectorRule.java
deleted file mode 100644
index 370e08c16b9..00000000000
---
a/agent/plugins/tracing/test/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/rule/CollectorRule.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 org.apache.shardingsphere.agent.plugin.tracing.rule;
-
-public interface CollectorRule {
-
- /**
- * Clean up the collector.
- */
- void cleanup();
-}
diff --git
a/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/OpenTelemetryTracingPluginLifecycleServiceTest.java
b/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/OpenTelemetryTracingPluginLifecycleServiceTest.java
index a189728e654..b0f6fa7dba9 100644
---
a/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/OpenTelemetryTracingPluginLifecycleServiceTest.java
+++
b/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/OpenTelemetryTracingPluginLifecycleServiceTest.java
@@ -21,15 +21,21 @@ import io.opentelemetry.api.GlobalOpenTelemetry;
import org.apache.shardingsphere.agent.api.PluginConfiguration;
import org.apache.shardingsphere.test.util.PropertiesBuilder;
import org.apache.shardingsphere.test.util.PropertiesBuilder.Property;
-import org.junit.After;
-import org.junit.Test;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Test;
-import static org.junit.Assert.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
public final class OpenTelemetryTracingPluginLifecycleServiceTest {
private final OpenTelemetryTracingPluginLifecycleService
pluginLifecycleService = new OpenTelemetryTracingPluginLifecycleService();
+ @AfterEach
+ public void close() {
+ pluginLifecycleService.close();
+ GlobalOpenTelemetry.resetForTest();
+ }
+
@Test
public void assertStart() {
pluginLifecycleService.start(new PluginConfiguration(null, 0, null,
@@ -37,10 +43,4 @@ public final class
OpenTelemetryTracingPluginLifecycleServiceTest {
assertNotNull(GlobalOpenTelemetry.getTracerProvider());
assertNotNull(GlobalOpenTelemetry.getTracer("shardingsphere-agent"));
}
-
- @After
- public void close() {
- pluginLifecycleService.close();
- GlobalOpenTelemetry.resetForTest();
- }
}
diff --git
a/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetryCommandExecutorTaskAdviceTest.java
b/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetryCommandExecutorTaskAdviceTest.java
index 630b3dc5b67..979168b81a6 100644
---
a/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetryCommandExecutorTaskAdviceTest.java
+++
b/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetryCommandExecutorTaskAdviceTest.java
@@ -17,14 +17,20 @@
package org.apache.shardingsphere.agent.plugin.tracing.opentelemetry.advice;
+import io.opentelemetry.api.GlobalOpenTelemetry;
import io.opentelemetry.api.common.AttributeKey;
import io.opentelemetry.api.trace.StatusCode;
+import io.opentelemetry.sdk.OpenTelemetrySdk;
+import io.opentelemetry.sdk.testing.exporter.InMemorySpanExporter;
+import io.opentelemetry.sdk.trace.SdkTracerProvider;
import io.opentelemetry.sdk.trace.data.SpanData;
+import io.opentelemetry.sdk.trace.export.SimpleSpanProcessor;
import
org.apache.shardingsphere.agent.plugin.tracing.advice.AbstractCommandExecutorTaskAdviceTest;
import
org.apache.shardingsphere.agent.plugin.tracing.core.constant.AttributeConstants;
-import
org.apache.shardingsphere.agent.plugin.tracing.opentelemetry.collector.OpenTelemetryCollector;
-import org.junit.ClassRule;
-import org.junit.Test;
+import
org.apache.shardingsphere.agent.plugin.tracing.opentelemetry.constant.OpenTelemetryConstants;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import java.io.IOException;
import java.util.List;
@@ -34,15 +40,26 @@ import static org.hamcrest.MatcherAssert.assertThat;
public final class OpenTelemetryCommandExecutorTaskAdviceTest extends
AbstractCommandExecutorTaskAdviceTest {
- @ClassRule
- public static final OpenTelemetryCollector COLLECTOR = new
OpenTelemetryCollector();
+ private final InMemorySpanExporter testExporter =
InMemorySpanExporter.create();
+
+ @BeforeEach
+ public void setup() {
+ SdkTracerProvider tracerProvider =
SdkTracerProvider.builder().addSpanProcessor(SimpleSpanProcessor.create(testExporter)).build();
+
OpenTelemetrySdk.builder().setTracerProvider(tracerProvider).buildAndRegisterGlobal().getTracer(OpenTelemetryConstants.TRACER_NAME);
+ }
+
+ @AfterEach
+ public void clean() {
+ GlobalOpenTelemetry.resetForTest();
+ testExporter.reset();
+ }
@Test
public void assertMethod() {
OpenTelemetryCommandExecutorTaskAdvice advice = new
OpenTelemetryCommandExecutorTaskAdvice();
advice.beforeMethod(getTargetObject(), null, new Object[]{},
"OpenTelemetry");
advice.afterMethod(getTargetObject(), null, new Object[]{}, null,
"OpenTelemetry");
- List<SpanData> spanItems = COLLECTOR.getSpanItems();
+ List<SpanData> spanItems = testExporter.getFinishedSpanItems();
assertThat(spanItems.size(), is(1));
SpanData spanData = spanItems.get(0);
assertThat(spanData.getName(), is("/ShardingSphere/rootInvoke/"));
@@ -55,7 +72,7 @@ public final class OpenTelemetryCommandExecutorTaskAdviceTest
extends AbstractCo
OpenTelemetryCommandExecutorTaskAdvice advice = new
OpenTelemetryCommandExecutorTaskAdvice();
advice.beforeMethod(getTargetObject(), null, new Object[]{},
"OpenTelemetry");
advice.onThrowing(getTargetObject(), null, new Object[]{}, new
IOException(), "OpenTelemetry");
- List<SpanData> spanItems = COLLECTOR.getSpanItems();
+ List<SpanData> spanItems = testExporter.getFinishedSpanItems();
assertThat(spanItems.size(), is(1));
SpanData spanData = spanItems.get(0);
assertThat(spanData.getName(), is("/ShardingSphere/rootInvoke/"));
diff --git
a/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetryJDBCExecutorCallbackAdviceTest.java
b/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetryJDBCExecutorCallbackAdviceTest.java
index c2761b5bbee..2e601450f20 100644
---
a/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetryJDBCExecutorCallbackAdviceTest.java
+++
b/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetryJDBCExecutorCallbackAdviceTest.java
@@ -22,17 +22,19 @@ import io.opentelemetry.api.common.AttributeKey;
import io.opentelemetry.api.common.Attributes;
import io.opentelemetry.api.trace.Span;
import io.opentelemetry.api.trace.StatusCode;
+import io.opentelemetry.sdk.OpenTelemetrySdk;
+import io.opentelemetry.sdk.testing.exporter.InMemorySpanExporter;
+import io.opentelemetry.sdk.trace.SdkTracerProvider;
import io.opentelemetry.sdk.trace.data.SpanData;
+import io.opentelemetry.sdk.trace.export.SimpleSpanProcessor;
import lombok.extern.slf4j.Slf4j;
import
org.apache.shardingsphere.agent.plugin.tracing.advice.AbstractJDBCExecutorCallbackAdviceTest;
import org.apache.shardingsphere.agent.plugin.tracing.core.RootSpanContext;
import
org.apache.shardingsphere.agent.plugin.tracing.core.constant.AttributeConstants;
-import
org.apache.shardingsphere.agent.plugin.tracing.opentelemetry.collector.OpenTelemetryCollector;
import
org.apache.shardingsphere.agent.plugin.tracing.opentelemetry.constant.OpenTelemetryConstants;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.ClassRule;
-import org.junit.Test;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import java.io.IOException;
import java.util.List;
@@ -43,23 +45,23 @@ import static org.hamcrest.MatcherAssert.assertThat;
@Slf4j
public final class OpenTelemetryJDBCExecutorCallbackAdviceTest extends
AbstractJDBCExecutorCallbackAdviceTest {
- @ClassRule
- public static final OpenTelemetryCollector COLLECTOR = new
OpenTelemetryCollector();
+ private final InMemorySpanExporter testExporter =
InMemorySpanExporter.create();
private Span parentSpan;
- @Before
+ @BeforeEach
public void setup() {
- parentSpan =
GlobalOpenTelemetry.getTracer(OpenTelemetryConstants.TRACER_NAME)
- .spanBuilder("parent")
- .startSpan();
+ SdkTracerProvider tracerProvider =
SdkTracerProvider.builder().addSpanProcessor(SimpleSpanProcessor.create(testExporter)).build();
+
OpenTelemetrySdk.builder().setTracerProvider(tracerProvider).buildAndRegisterGlobal().getTracer(OpenTelemetryConstants.TRACER_NAME);
+ parentSpan =
GlobalOpenTelemetry.getTracer(OpenTelemetryConstants.TRACER_NAME).spanBuilder("parent").startSpan();
RootSpanContext.set(parentSpan);
}
- @After
+ @AfterEach
public void clean() {
parentSpan.end();
- COLLECTOR.cleanup();
+ GlobalOpenTelemetry.resetForTest();
+ testExporter.reset();
}
@Test
@@ -67,7 +69,7 @@ public final class
OpenTelemetryJDBCExecutorCallbackAdviceTest extends AbstractJ
OpenTelemetryJDBCExecutorCallbackAdvice advice = new
OpenTelemetryJDBCExecutorCallbackAdvice();
advice.beforeMethod(getTargetObject(), null, new
Object[]{getExecutionUnit(), false, getExtraMap()}, "OpenTelemetry");
advice.afterMethod(getTargetObject(), null, new
Object[]{getExecutionUnit(), false, getExtraMap()}, null, "OpenTelemetry");
- List<SpanData> spanItems = COLLECTOR.getSpanItems();
+ List<SpanData> spanItems = testExporter.getFinishedSpanItems();
assertThat(spanItems.size(), is(1));
SpanData spanData = spanItems.get(0);
assertThat(spanData.getName(), is("/ShardingSphere/executeSQL/"));
@@ -83,7 +85,7 @@ public final class
OpenTelemetryJDBCExecutorCallbackAdviceTest extends AbstractJ
OpenTelemetryJDBCExecutorCallbackAdvice advice = new
OpenTelemetryJDBCExecutorCallbackAdvice();
advice.beforeMethod(getTargetObject(), null, new
Object[]{getExecutionUnit(), false, getExtraMap()}, "OpenTelemetry");
advice.onThrowing(getTargetObject(), null, new
Object[]{getExecutionUnit(), false, getExtraMap()}, new IOException(),
"OpenTelemetry");
- List<SpanData> spanItems = COLLECTOR.getSpanItems();
+ List<SpanData> spanItems = testExporter.getFinishedSpanItems();
assertThat(spanItems.size(), is(1));
SpanData spanData = spanItems.get(0);
assertThat(spanData.getName(), is("/ShardingSphere/executeSQL/"));
diff --git
a/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetrySQLParserEngineAdviceTest.java
b/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetrySQLParserEngineAdviceTest.java
index d9ae59af058..a69b811286c 100644
---
a/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetrySQLParserEngineAdviceTest.java
+++
b/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetrySQLParserEngineAdviceTest.java
@@ -22,45 +22,46 @@ import io.opentelemetry.api.common.AttributeKey;
import io.opentelemetry.api.common.Attributes;
import io.opentelemetry.api.trace.Span;
import io.opentelemetry.api.trace.StatusCode;
+import io.opentelemetry.sdk.OpenTelemetrySdk;
+import io.opentelemetry.sdk.testing.exporter.InMemorySpanExporter;
+import io.opentelemetry.sdk.trace.SdkTracerProvider;
import io.opentelemetry.sdk.trace.data.SpanData;
+import io.opentelemetry.sdk.trace.export.SimpleSpanProcessor;
import
org.apache.shardingsphere.agent.plugin.tracing.advice.AbstractSQLParserEngineAdviceTest;
import org.apache.shardingsphere.agent.plugin.tracing.core.RootSpanContext;
import
org.apache.shardingsphere.agent.plugin.tracing.core.constant.AttributeConstants;
-import
org.apache.shardingsphere.agent.plugin.tracing.opentelemetry.collector.OpenTelemetryCollector;
import
org.apache.shardingsphere.agent.plugin.tracing.opentelemetry.constant.OpenTelemetryConstants;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.ClassRule;
-import org.junit.Test;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import java.io.IOException;
import java.util.List;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
-import static org.junit.Assert.assertNotNull;
public final class OpenTelemetrySQLParserEngineAdviceTest extends
AbstractSQLParserEngineAdviceTest {
- @ClassRule
- public static final OpenTelemetryCollector COLLECTOR = new
OpenTelemetryCollector();
-
private static final String SQL_STATEMENT = "select 1";
+ private final InMemorySpanExporter testExporter =
InMemorySpanExporter.create();
+
private Span parentSpan;
- @Before
+ @BeforeEach
public void setup() {
- parentSpan =
GlobalOpenTelemetry.getTracer(OpenTelemetryConstants.TRACER_NAME)
- .spanBuilder("parent")
- .startSpan();
+ SdkTracerProvider tracerProvider =
SdkTracerProvider.builder().addSpanProcessor(SimpleSpanProcessor.create(testExporter)).build();
+
OpenTelemetrySdk.builder().setTracerProvider(tracerProvider).buildAndRegisterGlobal().getTracer(OpenTelemetryConstants.TRACER_NAME);
+ parentSpan =
GlobalOpenTelemetry.getTracer(OpenTelemetryConstants.TRACER_NAME).spanBuilder("parent").startSpan();
RootSpanContext.set(parentSpan);
}
- @After
+ @AfterEach
public void clean() {
parentSpan.end();
- COLLECTOR.cleanup();
+ GlobalOpenTelemetry.resetForTest();
+ testExporter.reset();
}
@Test
@@ -68,10 +69,10 @@ public final class OpenTelemetrySQLParserEngineAdviceTest
extends AbstractSQLPar
OpenTelemetrySQLParserEngineAdvice advice = new
OpenTelemetrySQLParserEngineAdvice();
advice.beforeMethod(getTargetObject(), null, new
Object[]{SQL_STATEMENT, true}, "OpenTelemetry");
advice.afterMethod(getTargetObject(), null, new
Object[]{SQL_STATEMENT, true}, null, "OpenTelemetry");
- List<SpanData> spanItems = COLLECTOR.getSpanItems();
+ List<SpanData> spanItems = testExporter.getFinishedSpanItems();
assertThat(spanItems.size(), is(1));
assertThat(spanItems.get(0).getName(),
is("/ShardingSphere/parseSQL/"));
- assertNotNull(spanItems.get(0).getParentSpanId(),
is(parentSpan.getSpanContext().getSpanId()));
+ assertThat(spanItems.get(0).getParentSpanId(),
is(parentSpan.getSpanContext().getSpanId()));
Attributes attributes = spanItems.get(0).getAttributes();
assertThat(attributes.get(AttributeKey.stringKey(AttributeConstants.COMPONENT)),
is(AttributeConstants.COMPONENT_NAME));
assertThat(attributes.get(AttributeKey.stringKey(AttributeConstants.DB_STATEMENT)),
is(SQL_STATEMENT));
@@ -82,11 +83,11 @@ public final class OpenTelemetrySQLParserEngineAdviceTest
extends AbstractSQLPar
OpenTelemetrySQLParserEngineAdvice advice = new
OpenTelemetrySQLParserEngineAdvice();
advice.beforeMethod(getTargetObject(), null, new
Object[]{SQL_STATEMENT, true}, "OpenTelemetry");
advice.onThrowing(getTargetObject(), null, new Object[]{SQL_STATEMENT,
true}, new IOException(), "OpenTelemetry");
- List<SpanData> spanItems = COLLECTOR.getSpanItems();
+ List<SpanData> spanItems = testExporter.getFinishedSpanItems();
assertThat(spanItems.size(), is(1));
assertThat(spanItems.get(0).getName(),
is("/ShardingSphere/parseSQL/"));
assertThat(spanItems.get(0).getStatus().getStatusCode(),
is(StatusCode.ERROR));
- assertNotNull(spanItems.get(0).getParentSpanId(),
is(parentSpan.getSpanContext().getSpanId()));
+ assertThat(spanItems.get(0).getParentSpanId(),
is(parentSpan.getSpanContext().getSpanId()));
Attributes attributes = spanItems.get(0).getAttributes();
assertThat(attributes.get(AttributeKey.stringKey(AttributeConstants.COMPONENT)),
is(AttributeConstants.COMPONENT_NAME));
assertThat(attributes.get(AttributeKey.stringKey(AttributeConstants.DB_STATEMENT)),
is(SQL_STATEMENT));
diff --git
a/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/collector/OpenTelemetryCollector.java
b/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/collector/OpenTelemetryCollector.java
deleted file mode 100644
index 92ce536c2b6..00000000000
---
a/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/collector/OpenTelemetryCollector.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 org.apache.shardingsphere.agent.plugin.tracing.opentelemetry.collector;
-
-import io.opentelemetry.api.GlobalOpenTelemetry;
-import io.opentelemetry.sdk.OpenTelemetrySdk;
-import io.opentelemetry.sdk.testing.exporter.InMemorySpanExporter;
-import io.opentelemetry.sdk.trace.SdkTracerProvider;
-import io.opentelemetry.sdk.trace.data.SpanData;
-import io.opentelemetry.sdk.trace.export.SimpleSpanProcessor;
-import
org.apache.shardingsphere.agent.plugin.tracing.opentelemetry.constant.OpenTelemetryConstants;
-import org.apache.shardingsphere.agent.plugin.tracing.rule.CollectorRule;
-import org.junit.rules.ExternalResource;
-
-import java.util.List;
-
-public final class OpenTelemetryCollector extends ExternalResource implements
CollectorRule {
-
- private final InMemorySpanExporter testExporter =
InMemorySpanExporter.create();
-
- @Override
- protected void before() {
- SdkTracerProvider sdkTracerProvider = SdkTracerProvider.builder()
- .addSpanProcessor(SimpleSpanProcessor.create(testExporter))
- .build();
- OpenTelemetrySdk.builder()
- .setTracerProvider(sdkTracerProvider)
- .buildAndRegisterGlobal()
- .getTracer(OpenTelemetryConstants.TRACER_NAME);
- }
-
- /**
- * Get a List of the finished Spans, represented by SpanData.
- *
- * @return a List of the finished Spans.
- */
- public List<SpanData> getSpanItems() {
- return testExporter.getFinishedSpanItems();
- }
-
- @Override
- public void cleanup() {
- testExporter.reset();
- }
-
- @Override
- protected void after() {
- GlobalOpenTelemetry.resetForTest();
- }
-}
diff --git
a/agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/OpenTracingPluginLifecycleServiceTest.java
b/agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/OpenTracingPluginLifecycleServiceTest.java
index 05cda4a398b..a649e583212 100644
---
a/agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/OpenTracingPluginLifecycleServiceTest.java
+++
b/agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/OpenTracingPluginLifecycleServiceTest.java
@@ -21,16 +21,16 @@ import io.opentracing.util.GlobalTracer;
import org.apache.shardingsphere.agent.api.PluginConfiguration;
import org.apache.shardingsphere.test.util.PropertiesBuilder;
import org.apache.shardingsphere.test.util.PropertiesBuilder.Property;
-import org.junit.After;
-import org.junit.Test;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Test;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertTrue;
public final class OpenTracingPluginLifecycleServiceTest {
private final OpenTracingPluginLifecycleService pluginLifecycleService =
new OpenTracingPluginLifecycleService();
- @After
+ @AfterEach
public void close() {
pluginLifecycleService.close();
}
diff --git
a/agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingCommandExecutorTaskAdviceTest.java
b/agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingCommandExecutorTaskAdviceTest.java
index bed03ae745d..dc905b92387 100644
---
a/agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingCommandExecutorTaskAdviceTest.java
+++
b/agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingCommandExecutorTaskAdviceTest.java
@@ -27,9 +27,9 @@ import
org.apache.shardingsphere.agent.plugin.tracing.advice.AbstractCommandExec
import
org.apache.shardingsphere.agent.plugin.tracing.core.constant.AttributeConstants;
import org.apache.shardingsphere.db.protocol.payload.PacketPayload;
import org.apache.shardingsphere.proxy.frontend.command.CommandExecutorTask;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import org.mockito.internal.configuration.plugins.Plugins;
import java.io.IOException;
@@ -39,8 +39,8 @@ import java.util.Map;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
public final class OpenTracingCommandExecutorTaskAdviceTest extends
AbstractCommandExecutorTaskAdviceTest {
@@ -50,7 +50,7 @@ public final class OpenTracingCommandExecutorTaskAdviceTest
extends AbstractComm
private static Method executeCommandMethod;
- @BeforeClass
+ @BeforeAll
public static void setup() throws ReflectiveOperationException {
if (!GlobalTracer.isRegistered()) {
GlobalTracer.register(new MockTracer());
@@ -59,7 +59,7 @@ public final class OpenTracingCommandExecutorTaskAdviceTest
extends AbstractComm
executeCommandMethod =
CommandExecutorTask.class.getDeclaredMethod("executeCommand",
ChannelHandlerContext.class, PacketPayload.class);
}
- @Before
+ @BeforeEach
public void reset() {
tracer.reset();
}
diff --git
a/agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingJDBCExecutorCallbackAdviceTest.java
b/agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingJDBCExecutorCallbackAdviceTest.java
index e54b5796d94..15f80875f10 100644
---
a/agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingJDBCExecutorCallbackAdviceTest.java
+++
b/agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingJDBCExecutorCallbackAdviceTest.java
@@ -25,9 +25,9 @@ import
org.apache.shardingsphere.agent.plugin.tracing.core.constant.AttributeCon
import
org.apache.shardingsphere.agent.plugin.tracing.opentracing.constant.ErrorLogTagKeys;
import
org.apache.shardingsphere.infra.executor.sql.execute.engine.driver.jdbc.JDBCExecutionUnit;
import
org.apache.shardingsphere.infra.executor.sql.execute.engine.driver.jdbc.JDBCExecutorCallback;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import org.mockito.internal.configuration.plugins.Plugins;
import java.io.IOException;
@@ -38,7 +38,7 @@ import java.util.Map;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertTrue;
public final class OpenTracingJDBCExecutorCallbackAdviceTest extends
AbstractJDBCExecutorCallbackAdviceTest {
@@ -46,7 +46,7 @@ public final class OpenTracingJDBCExecutorCallbackAdviceTest
extends AbstractJDB
private static Method executeMethod;
- @BeforeClass
+ @BeforeAll
public static void setup() throws ReflectiveOperationException {
if (!GlobalTracer.isRegistered()) {
GlobalTracer.register(new MockTracer());
@@ -55,7 +55,7 @@ public final class OpenTracingJDBCExecutorCallbackAdviceTest
extends AbstractJDB
executeMethod =
JDBCExecutorCallback.class.getDeclaredMethod("execute",
JDBCExecutionUnit.class, boolean.class);
}
- @Before
+ @BeforeEach
public void reset() {
tracer.reset();
}
diff --git
a/agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingSQLParserEngineAdviceTest.java
b/agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingSQLParserEngineAdviceTest.java
index 62552009824..3b788e51acd 100644
---
a/agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingSQLParserEngineAdviceTest.java
+++
b/agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingSQLParserEngineAdviceTest.java
@@ -24,9 +24,9 @@ import
org.apache.shardingsphere.agent.plugin.tracing.advice.AbstractJDBCExecuto
import
org.apache.shardingsphere.agent.plugin.tracing.core.constant.AttributeConstants;
import
org.apache.shardingsphere.agent.plugin.tracing.opentracing.constant.ErrorLogTagKeys;
import org.apache.shardingsphere.infra.parser.ShardingSphereSQLParserEngine;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import org.mockito.internal.configuration.plugins.Plugins;
import java.io.IOException;
@@ -36,7 +36,7 @@ import java.util.Map;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertTrue;
public final class OpenTracingSQLParserEngineAdviceTest extends
AbstractJDBCExecutorCallbackAdviceTest {
@@ -46,7 +46,7 @@ public final class OpenTracingSQLParserEngineAdviceTest
extends AbstractJDBCExec
private static Method parserMethod;
- @BeforeClass
+ @BeforeAll
public static void setup() throws ReflectiveOperationException {
if (!GlobalTracer.isRegistered()) {
GlobalTracer.register(new MockTracer());
@@ -55,7 +55,7 @@ public final class OpenTracingSQLParserEngineAdviceTest
extends AbstractJDBCExec
parserMethod =
ShardingSphereSQLParserEngine.class.getDeclaredMethod("parse", String.class,
boolean.class);
}
- @Before
+ @BeforeEach
public void reset() {
tracer.reset();
}