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();
     }


Reply via email to