This is an automated email from the ASF dual-hosted git repository.

critas pushed a commit to branch wx_remove_reflections
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit f6ec503dfc86d249f6adb7223cdde466fcbac6bd
Author: CritasWang <[email protected]>
AuthorDate: Mon Sep 22 17:21:51 2025 +0800

    remove org.reflections:reflections, only test use it
---
 .../pipe/annotation/PipePluginAnnotationTest.java  | 11 +++++++++-
 iotdb-core/datanode/pom.xml                        |  7 ++++++
 .../schemaregion/SchemaRegionLoader.java           | 18 ++++++----------
 .../mtree/loader/MNodeFactoryLoader.java           | 25 ++++++++++------------
 .../annotation/PipePluginAnnotationTest.java       | 11 +++++++++-
 iotdb-core/node-commons/pom.xml                    |  1 +
 .../visibility/VisibilityTestUtils.java            | 10 ++-------
 .../annotation/PipePluginAnnotationTest.java       | 11 +++++++++-
 pom.xml                                            |  1 +
 9 files changed, 58 insertions(+), 37 deletions(-)

diff --git 
a/iotdb-core/confignode/src/test/java/org/apache/iotdb/confignode/pipe/annotation/PipePluginAnnotationTest.java
 
b/iotdb-core/confignode/src/test/java/org/apache/iotdb/confignode/pipe/annotation/PipePluginAnnotationTest.java
index 1cd3adb8f0e..b9936dbff25 100644
--- 
a/iotdb-core/confignode/src/test/java/org/apache/iotdb/confignode/pipe/annotation/PipePluginAnnotationTest.java
+++ 
b/iotdb-core/confignode/src/test/java/org/apache/iotdb/confignode/pipe/annotation/PipePluginAnnotationTest.java
@@ -21,8 +21,13 @@ package org.apache.iotdb.confignode.pipe.annotation;
 
 import org.apache.iotdb.commons.pipe.datastructure.result.Result;
 import 
org.apache.iotdb.commons.pipe.datastructure.visibility.VisibilityTestUtils;
+import org.apache.iotdb.pipe.api.PipePlugin;
 
 import org.junit.Test;
+import org.reflections.Reflections;
+import org.reflections.scanners.SubTypesScanner;
+
+import java.util.Set;
 
 import static org.junit.Assert.fail;
 
@@ -30,8 +35,12 @@ public class PipePluginAnnotationTest {
 
   @Test
   public void testPipePluginVisibility() {
+    // Use the Reflections library to scan the classpath
+    final Reflections reflections =
+        new Reflections("org.apache.iotdb.confignode", new 
SubTypesScanner(false));
+    final Set<Class<? extends PipePlugin>> subTypes = 
reflections.getSubTypesOf(PipePlugin.class);
     final Result<Void, String> result =
-        
VisibilityTestUtils.testVisibilityCompatibilityEntry("org.apache.iotdb.confignode");
+        VisibilityTestUtils.testVisibilityCompatibilityEntry(subTypes);
     if (result.isErr()) {
       fail(result.getErr());
     }
diff --git a/iotdb-core/datanode/pom.xml b/iotdb-core/datanode/pom.xml
index ebb1b2807f1..490780a87a7 100644
--- a/iotdb-core/datanode/pom.xml
+++ b/iotdb-core/datanode/pom.xml
@@ -262,6 +262,13 @@
         <dependency>
             <groupId>org.reflections</groupId>
             <artifactId>reflections</artifactId>
+            <scope>test</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.javassist</groupId>
+                    <artifactId>javassist</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
         <dependency>
             <groupId>org.glassfish.jersey.containers</groupId>
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/SchemaRegionLoader.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/SchemaRegionLoader.java
index 5d47acfda5c..e702b1e18c7 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/SchemaRegionLoader.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/SchemaRegionLoader.java
@@ -21,16 +21,17 @@ package org.apache.iotdb.db.schemaengine.schemaregion;
 
 import org.apache.iotdb.commons.exception.MetadataException;
 import org.apache.iotdb.commons.schema.SchemaConstant;
+import 
org.apache.iotdb.db.schemaengine.schemaregion.impl.SchemaRegionMemoryImpl;
+import 
org.apache.iotdb.db.schemaengine.schemaregion.impl.SchemaRegionPBTreeImpl;
 import 
org.apache.iotdb.db.schemaengine.schemaregion.mtree.loader.MNodeFactoryLoader;
 
-import org.reflections.Reflections;
-import org.reflections.util.ConfigurationBuilder;
-import org.reflections.util.FilterBuilder;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.lang.reflect.Constructor;
 import java.lang.reflect.InvocationTargetException;
+import java.util.Arrays;
+import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
@@ -38,8 +39,6 @@ import java.util.concurrent.ConcurrentHashMap;
 public class SchemaRegionLoader {
   private static final Logger logger = 
LoggerFactory.getLogger(SchemaRegionLoader.class);
 
-  private static final String PACKAGE_NAME = 
"org.apache.iotdb.db.schemaengine";
-
   private final Map<String, Constructor<ISchemaRegion>> constructorMap = new 
ConcurrentHashMap<>();
 
   private String currentMode;
@@ -48,13 +47,8 @@ public class SchemaRegionLoader {
 
   @SuppressWarnings("unchecked")
   public SchemaRegionLoader() {
-    Reflections reflections =
-        new Reflections(
-            new ConfigurationBuilder()
-                .forPackages(PACKAGE_NAME)
-                .filterInputsBy(new 
FilterBuilder().includePackage(PACKAGE_NAME)));
-
-    Set<Class<?>> annotatedSchemaRegionSet = 
reflections.getTypesAnnotatedWith(SchemaRegion.class);
+    Set<Class<?>> annotatedSchemaRegionSet =
+        new HashSet<>(Arrays.asList(SchemaRegionMemoryImpl.class, 
SchemaRegionPBTreeImpl.class));
 
     for (Class<?> annotatedSchemaRegion : annotatedSchemaRegionSet) {
       boolean isSchemaRegion = false;
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/mtree/loader/MNodeFactoryLoader.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/mtree/loader/MNodeFactoryLoader.java
index 9e0fe8c2b7d..47c44d6ee6e 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/mtree/loader/MNodeFactoryLoader.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/mtree/loader/MNodeFactoryLoader.java
@@ -24,21 +24,18 @@ import org.apache.iotdb.commons.schema.SchemaConstant;
 import org.apache.iotdb.commons.schema.node.utils.IMNodeFactory;
 import org.apache.iotdb.commons.schema.node.utils.MNodeFactory;
 import 
org.apache.iotdb.db.schemaengine.schemaregion.mtree.impl.mem.mnode.IMemMNode;
+import 
org.apache.iotdb.db.schemaengine.schemaregion.mtree.impl.mem.mnode.factory.MemMNodeFactory;
 import 
org.apache.iotdb.db.schemaengine.schemaregion.mtree.impl.pbtree.mnode.ICachedMNode;
-
-import org.reflections.Reflections;
-import org.reflections.util.ConfigurationBuilder;
+import 
org.apache.iotdb.db.schemaengine.schemaregion.mtree.impl.pbtree.mnode.factory.CacheMNodeFactory;
 
 import java.lang.reflect.ParameterizedType;
 import java.lang.reflect.Type;
-import java.util.ArrayList;
-import java.util.List;
+import java.util.HashSet;
 import java.util.Set;
 
 @SuppressWarnings({"squid:S6548", "squid:3077"})
 public class MNodeFactoryLoader {
 
-  private final List<String> scanPackages = new ArrayList<>();
   private String env;
 
   @SuppressWarnings("java:S3077")
@@ -47,14 +44,17 @@ public class MNodeFactoryLoader {
   @SuppressWarnings("java:S3077")
   private volatile IMNodeFactory<IMemMNode> memMNodeIMNodeFactory;
 
+  private Set<Class<?>> nodeFactorySet;
+
   private MNodeFactoryLoader() {
-    
addScanPackage("org.apache.iotdb.db.schemaengine.schemaregion.mtree.impl.pbtree.mnode.factory");
-    
addScanPackage("org.apache.iotdb.db.schemaengine.schemaregion.mtree.impl.mem.mnode.factory");
+    nodeFactorySet = new HashSet<>();
+    addNodeFactory(MemMNodeFactory.class);
+    addNodeFactory(CacheMNodeFactory.class);
     setEnv(SchemaConstant.DEFAULT_MNODE_FACTORY_ENV);
   }
 
-  public void addScanPackage(String scanPackage) {
-    scanPackages.add(scanPackage);
+  public void addNodeFactory(Class<?> clazz) {
+    nodeFactorySet.add(clazz);
   }
 
   public void setEnv(String env) {
@@ -87,10 +87,7 @@ public class MNodeFactoryLoader {
 
   @SuppressWarnings("squid:S3740")
   private IMNodeFactory loadMNodeFactory(Class<?> nodeType) {
-    Reflections reflections =
-        new Reflections(
-            new ConfigurationBuilder().forPackages(scanPackages.toArray(new 
String[0])));
-    Set<Class<?>> nodeFactorySet = 
reflections.getTypesAnnotatedWith(MNodeFactory.class);
+
     for (Class<?> nodeFactory : nodeFactorySet) {
       if (isGenericMatch(nodeFactory, nodeType) && isEnvMatch(nodeFactory, 
env)) {
         try {
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/plugin/annotation/PipePluginAnnotationTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/plugin/annotation/PipePluginAnnotationTest.java
index a1c78e499d6..5f936b7dd2d 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/plugin/annotation/PipePluginAnnotationTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/plugin/annotation/PipePluginAnnotationTest.java
@@ -21,8 +21,13 @@ package org.apache.iotdb.db.pipe.plugin.annotation;
 
 import org.apache.iotdb.commons.pipe.datastructure.result.Result;
 import 
org.apache.iotdb.commons.pipe.datastructure.visibility.VisibilityTestUtils;
+import org.apache.iotdb.pipe.api.PipePlugin;
 
 import org.junit.Test;
+import org.reflections.Reflections;
+import org.reflections.scanners.SubTypesScanner;
+
+import java.util.Set;
 
 import static org.junit.Assert.fail;
 
@@ -30,8 +35,12 @@ public class PipePluginAnnotationTest {
 
   @Test
   public void testPipePluginVisibility() {
+    // Use the Reflections library to scan the classpath
+    final Reflections reflections =
+        new Reflections("org.apache.iotdb.db", new SubTypesScanner(false));
+    final Set<Class<? extends PipePlugin>> subTypes = 
reflections.getSubTypesOf(PipePlugin.class);
     final Result<Void, String> result =
-        
VisibilityTestUtils.testVisibilityCompatibilityEntry("org.apache.iotdb.db");
+        VisibilityTestUtils.testVisibilityCompatibilityEntry(subTypes);
     if (result.isErr()) {
       fail(result.getErr());
     }
diff --git a/iotdb-core/node-commons/pom.xml b/iotdb-core/node-commons/pom.xml
index 91ea3e6e079..5c5cf963a9c 100644
--- a/iotdb-core/node-commons/pom.xml
+++ b/iotdb-core/node-commons/pom.xml
@@ -170,6 +170,7 @@
         <dependency>
             <groupId>org.reflections</groupId>
             <artifactId>reflections</artifactId>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.checkerframework</groupId>
diff --git 
a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/pipe/datastructure/visibility/VisibilityTestUtils.java
 
b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/pipe/datastructure/visibility/VisibilityTestUtils.java
index 14e268152e6..1fc25d4c048 100644
--- 
a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/pipe/datastructure/visibility/VisibilityTestUtils.java
+++ 
b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/pipe/datastructure/visibility/VisibilityTestUtils.java
@@ -22,20 +22,14 @@ package 
org.apache.iotdb.commons.pipe.datastructure.visibility;
 import org.apache.iotdb.commons.pipe.datastructure.result.Result;
 import org.apache.iotdb.pipe.api.PipePlugin;
 
-import org.reflections.Reflections;
-import org.reflections.scanners.SubTypesScanner;
-
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Set;
 
 public class VisibilityTestUtils {
 
-  public static Result<Void, String> testVisibilityCompatibilityEntry(final 
String prefix) {
-    // Use the Reflections library to scan the classpath
-    final Reflections reflections = new Reflections(prefix, new 
SubTypesScanner(false));
-    final Set<Class<? extends PipePlugin>> subTypes = 
reflections.getSubTypesOf(PipePlugin.class);
-
+  public static Result<Void, String> testVisibilityCompatibilityEntry(
+      final Set<Class<? extends PipePlugin>> subTypes) {
     // Create root node
     final TreeNode root = new TreeNode(PipePlugin.class);
 
diff --git 
a/iotdb-core/node-commons/src/test/java/org/apache/iotdb/commons/pipe/plugin/annotation/PipePluginAnnotationTest.java
 
b/iotdb-core/node-commons/src/test/java/org/apache/iotdb/commons/pipe/plugin/annotation/PipePluginAnnotationTest.java
index da693b1d4ab..69da43ad4b0 100644
--- 
a/iotdb-core/node-commons/src/test/java/org/apache/iotdb/commons/pipe/plugin/annotation/PipePluginAnnotationTest.java
+++ 
b/iotdb-core/node-commons/src/test/java/org/apache/iotdb/commons/pipe/plugin/annotation/PipePluginAnnotationTest.java
@@ -21,8 +21,13 @@ package org.apache.iotdb.commons.pipe.plugin.annotation;
 
 import org.apache.iotdb.commons.pipe.datastructure.result.Result;
 import 
org.apache.iotdb.commons.pipe.datastructure.visibility.VisibilityTestUtils;
+import org.apache.iotdb.pipe.api.PipePlugin;
 
 import org.junit.Test;
+import org.reflections.Reflections;
+import org.reflections.scanners.SubTypesScanner;
+
+import java.util.Set;
 
 import static org.junit.Assert.fail;
 
@@ -30,8 +35,12 @@ public class PipePluginAnnotationTest {
 
   @Test
   public void testPipePluginVisibility() {
+    // Use the Reflections library to scan the classpath
+    final Reflections reflections =
+        new Reflections("org.apache.iotdb.commons", new 
SubTypesScanner(false));
+    final Set<Class<? extends PipePlugin>> subTypes = 
reflections.getSubTypesOf(PipePlugin.class);
     final Result<Void, String> result =
-        
VisibilityTestUtils.testVisibilityCompatibilityEntry("org.apache.iotdb.commons");
+        VisibilityTestUtils.testVisibilityCompatibilityEntry(subTypes);
     if (result.isErr()) {
       fail(result.getErr());
     }
diff --git a/pom.xml b/pom.xml
index 17d634cf07f..dd35c7987f0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -443,6 +443,7 @@
                 <groupId>org.reflections</groupId>
                 <artifactId>reflections</artifactId>
                 <version>${reflections.version}</version>
+                <scope>test</scope>
             </dependency>
             <dependency>
                 <groupId>com.github.moquette-io.moquette</groupId>

Reply via email to