This is an automated email from the ASF dual-hosted git repository.
chaokunyang pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-fury.git
The following commit(s) were added to refs/heads/main by this push:
new 91170b5b refactor(java): move reflect utils into reflect package
(#1583)
91170b5b is described below
commit 91170b5bea055b98f303b3b19a588681a6793448
Author: Shawn Yang <[email protected]>
AuthorDate: Sat Apr 27 12:00:35 2024 +0800
refactor(java): move reflect utils into reflect package (#1583)
## What does this PR do?
This RP move reflect utils into reflect package.
## Related issues
<!--
Is there any related issue? Please attach here.
- #xxxx0
- #xxxx1
- #xxxx2
-->
## Does this PR introduce any user-facing change?
<!--
If any user-facing interface changes, please [open an
issue](https://github.com/apache/incubator-fury/issues/new/choose)
describing the need to do so and update the document if necessary.
-->
- [ ] Does this PR introduce any public API change?
- [ ] Does this PR introduce any binary protocol compatibility change?
## Benchmark
<!--
When the PR has an impact on performance (if you don't know whether the
PR will have an impact on performance, you can submit the PR first, and
if it will have impact on performance, the code reviewer will explain
it), be sure to attach a benchmark data here.
-->
---
.../main/java/org/apache/fury/benchmark/NewJava11StringSuite.java | 2 +-
.../src/main/java/org/apache/fury/benchmark/NewStringSuite.java | 2 +-
.../src/main/java/org/apache/fury/builder/AccessorHelper.java | 5 +++--
.../main/java/org/apache/fury/builder/BaseObjectCodecBuilder.java | 2 +-
.../src/main/java/org/apache/fury/builder/CodecBuilder.java | 2 +-
.../main/java/org/apache/fury/builder/CompatibleCodecBuilder.java | 2 +-
java/fury-core/src/main/java/org/apache/fury/builder/Generated.java | 2 +-
.../src/main/java/org/apache/fury/codegen/CodeGenerator.java | 2 +-
.../src/main/java/org/apache/fury/codegen/CodegenContext.java | 2 +-
java/fury-core/src/main/java/org/apache/fury/codegen/Expression.java | 2 +-
.../src/main/java/org/apache/fury/codegen/ExpressionVisitor.java | 2 +-
.../fury-core/src/main/java/org/apache/fury/codegen/JaninoUtils.java | 2 +-
java/fury-core/src/main/java/org/apache/fury/meta/ClassDef.java | 2 +-
.../main/java/org/apache/fury/{util => reflect}/FieldAccessor.java | 3 ++-
.../main/java/org/apache/fury/{util => reflect}/ReflectionUtils.java | 5 +++--
.../java/org/apache/fury/{util => reflect}/UnsafeFieldAccessor.java | 3 ++-
java/fury-core/src/main/java/org/apache/fury/resolver/ClassInfo.java | 2 +-
.../src/main/java/org/apache/fury/resolver/ClassResolver.java | 2 +-
.../src/main/java/org/apache/fury/resolver/FieldResolver.java | 4 ++--
.../src/main/java/org/apache/fury/serializer/ArraySerializers.java | 2 +-
.../main/java/org/apache/fury/serializer/CompatibleSerializer.java | 4 ++--
.../java/org/apache/fury/serializer/ExternalizableSerializer.java | 2 +-
.../src/main/java/org/apache/fury/serializer/JdkProxySerializer.java | 2 +-
.../src/main/java/org/apache/fury/serializer/LambdaSerializer.java | 2 +-
.../main/java/org/apache/fury/serializer/MetaSharedSerializer.java | 4 ++--
.../src/main/java/org/apache/fury/serializer/ObjectSerializer.java | 4 ++--
.../main/java/org/apache/fury/serializer/ObjectStreamSerializer.java | 2 +-
.../java/org/apache/fury/serializer/ReplaceResolveSerializer.java | 2 +-
.../src/main/java/org/apache/fury/serializer/Serializers.java | 2 +-
.../src/main/java/org/apache/fury/serializer/StringSerializer.java | 2 +-
.../src/main/java/org/apache/fury/serializer/StructSerializer.java | 2 +-
.../fury/serializer/collection/AbstractCollectionSerializer.java | 2 +-
.../org/apache/fury/serializer/collection/AbstractMapSerializer.java | 2 +-
.../apache/fury/serializer/collection/ChildContainerSerializers.java | 2 +-
.../org/apache/fury/serializer/collection/CollectionSerializers.java | 2 +-
.../java/org/apache/fury/serializer/collection/MapSerializers.java | 2 +-
.../src/main/java/org/apache/fury/type/DescriptorGrouper.java | 2 +-
java/fury-core/src/main/java/org/apache/fury/type/GenericType.java | 2 +-
java/fury-core/src/main/java/org/apache/fury/type/ScalaTypes.java | 2 +-
java/fury-core/src/main/java/org/apache/fury/type/TypeUtils.java | 2 +-
.../fury-core/src/main/java/org/apache/fury/util/ExceptionUtils.java | 1 +
.../src/main/java/org/apache/fury/util/function/Functions.java | 2 +-
.../native-image/org.apache.fury/fury-core/native-image.properties | 4 ++--
java/fury-core/src/test/java/org/apache/fury/FuryTestBase.java | 2 +-
java/fury-core/src/test/java/org/apache/fury/StreamTest.java | 2 +-
java/fury-core/src/test/java/org/apache/fury/TestUtils.java | 4 ++--
.../src/test/java/org/apache/fury/codegen/ExpressionVisitorTest.java | 2 +-
.../src/test/java/org/apache/fury/codegen/JaninoUtilsTest.java | 2 +-
.../test/java/org/apache/fury/serializer/ArraySerializersTest.java | 2 +-
.../src/test/java/org/apache/fury/serializer/ClassUtils.java | 2 +-
.../org/apache/fury/serializer/CodegenCompatibleSerializerTest.java | 2 +-
.../java/org/apache/fury/serializer/CompatibleSerializerTest.java | 2 +-
.../java/org/apache/fury/serializer/MetaSharedCompatibleTest.java | 2 +-
.../test/java/org/apache/fury/serializer/StringSerializerTest.java | 2 +-
.../org/apache/fury/serializer/UnexistedClassSerializersTest.java | 2 +-
.../fury/serializer/collection/SynchronizedSerializersTest.java | 2 +-
.../fury/serializer/collection/UnmodifiableSerializersTest.java | 2 +-
java/fury-core/src/test/java/org/apache/fury/type/ClassDefTest.java | 2 +-
.../src/test/java/org/apache/fury/util/ReflectionUtilsTest.java | 1 +
.../src/test/java/org/apache/fury/util/UnsafeFieldAccessorTest.java | 1 +
.../org/apache/fury/format/encoder/BaseBinaryEncoderBuilder.java | 2 +-
61 files changed, 73 insertions(+), 66 deletions(-)
diff --git
a/java/benchmark/src/main/java/org/apache/fury/benchmark/NewJava11StringSuite.java
b/java/benchmark/src/main/java/org/apache/fury/benchmark/NewJava11StringSuite.java
index 7c466159..b6773541 100644
---
a/java/benchmark/src/main/java/org/apache/fury/benchmark/NewJava11StringSuite.java
+++
b/java/benchmark/src/main/java/org/apache/fury/benchmark/NewJava11StringSuite.java
@@ -22,9 +22,9 @@ package org.apache.fury.benchmark;
import org.apache.fury.Fury;
import org.apache.fury.memory.MemoryBuffer;
import org.apache.fury.memory.Platform;
+import org.apache.fury.reflect.ReflectionUtils;
import org.apache.fury.serializer.StringSerializer;
import org.apache.fury.util.Preconditions;
-import org.apache.fury.util.ReflectionUtils;
import org.apache.fury.util.StringUtils;
import org.openjdk.jmh.Main;
diff --git
a/java/benchmark/src/main/java/org/apache/fury/benchmark/NewStringSuite.java
b/java/benchmark/src/main/java/org/apache/fury/benchmark/NewStringSuite.java
index 36d4f12a..f0baeeae 100644
--- a/java/benchmark/src/main/java/org/apache/fury/benchmark/NewStringSuite.java
+++ b/java/benchmark/src/main/java/org/apache/fury/benchmark/NewStringSuite.java
@@ -20,8 +20,8 @@
package org.apache.fury.benchmark;
import org.apache.fury.memory.Platform;
+import org.apache.fury.reflect.ReflectionUtils;
import org.apache.fury.serializer.StringSerializer;
-import org.apache.fury.util.ReflectionUtils;
import org.apache.fury.util.StringUtils;
import org.openjdk.jmh.Main;
diff --git
a/java/fury-core/src/main/java/org/apache/fury/builder/AccessorHelper.java
b/java/fury-core/src/main/java/org/apache/fury/builder/AccessorHelper.java
index 7cc2c862..f0ff7e2a 100644
--- a/java/fury-core/src/main/java/org/apache/fury/builder/AccessorHelper.java
+++ b/java/fury-core/src/main/java/org/apache/fury/builder/AccessorHelper.java
@@ -33,10 +33,11 @@ import org.apache.fury.codegen.CompileUnit;
import org.apache.fury.codegen.JaninoUtils;
import org.apache.fury.logging.Logger;
import org.apache.fury.logging.LoggerFactory;
+import org.apache.fury.reflect.ReflectionUtils;
+import org.apache.fury.reflect.UnsafeFieldAccessor;
import org.apache.fury.type.Descriptor;
import org.apache.fury.util.ClassLoaderUtils;
import org.apache.fury.util.Preconditions;
-import org.apache.fury.util.ReflectionUtils;
import org.apache.fury.util.StringUtils;
import org.apache.fury.util.record.RecordUtils;
@@ -44,7 +45,7 @@ import org.apache.fury.util.record.RecordUtils;
* Define accessor helper methods in beanClass's classloader and same package
to avoid reflective
* call overhead. {@link sun.misc.Unsafe} is another method to avoid
reflection cost.
*
- * @see org.apache.fury.util.UnsafeFieldAccessor
+ * @see UnsafeFieldAccessor
*/
public class AccessorHelper {
private static final Logger LOG =
LoggerFactory.getLogger(AccessorHelper.class);
diff --git
a/java/fury-core/src/main/java/org/apache/fury/builder/BaseObjectCodecBuilder.java
b/java/fury-core/src/main/java/org/apache/fury/builder/BaseObjectCodecBuilder.java
index f09b7635..d0112d0c 100644
---
a/java/fury-core/src/main/java/org/apache/fury/builder/BaseObjectCodecBuilder.java
+++
b/java/fury-core/src/main/java/org/apache/fury/builder/BaseObjectCodecBuilder.java
@@ -80,6 +80,7 @@ import org.apache.fury.codegen.ExpressionVisitor.ExprHolder;
import org.apache.fury.collection.Tuple2;
import org.apache.fury.memory.MemoryBuffer;
import org.apache.fury.memory.Platform;
+import org.apache.fury.reflect.ReflectionUtils;
import org.apache.fury.reflect.TypeRef;
import org.apache.fury.resolver.ClassInfo;
import org.apache.fury.resolver.ClassInfoHolder;
@@ -97,7 +98,6 @@ import org.apache.fury.serializer.collection.CollectionFlags;
import org.apache.fury.type.TypeUtils;
import org.apache.fury.util.GraalvmSupport;
import org.apache.fury.util.Preconditions;
-import org.apache.fury.util.ReflectionUtils;
import org.apache.fury.util.StringUtils;
/**
diff --git
a/java/fury-core/src/main/java/org/apache/fury/builder/CodecBuilder.java
b/java/fury-core/src/main/java/org/apache/fury/builder/CodecBuilder.java
index 2fef8e3a..b9c54218 100644
--- a/java/fury-core/src/main/java/org/apache/fury/builder/CodecBuilder.java
+++ b/java/fury-core/src/main/java/org/apache/fury/builder/CodecBuilder.java
@@ -55,6 +55,7 @@ import org.apache.fury.codegen.Expression.StaticInvoke;
import org.apache.fury.collection.Tuple2;
import org.apache.fury.memory.MemoryBuffer;
import org.apache.fury.memory.Platform;
+import org.apache.fury.reflect.ReflectionUtils;
import org.apache.fury.reflect.TypeRef;
import org.apache.fury.resolver.ClassInfo;
import org.apache.fury.resolver.ClassInfoHolder;
@@ -62,7 +63,6 @@ import org.apache.fury.type.Descriptor;
import org.apache.fury.type.FinalObjectTypeStub;
import org.apache.fury.util.GraalvmSupport;
import org.apache.fury.util.Preconditions;
-import org.apache.fury.util.ReflectionUtils;
import org.apache.fury.util.StringUtils;
import org.apache.fury.util.function.Functions;
import org.apache.fury.util.record.RecordComponent;
diff --git
a/java/fury-core/src/main/java/org/apache/fury/builder/CompatibleCodecBuilder.java
b/java/fury-core/src/main/java/org/apache/fury/builder/CompatibleCodecBuilder.java
index 71c897d0..445a425e 100644
---
a/java/fury-core/src/main/java/org/apache/fury/builder/CompatibleCodecBuilder.java
+++
b/java/fury-core/src/main/java/org/apache/fury/builder/CompatibleCodecBuilder.java
@@ -65,6 +65,7 @@ import org.apache.fury.codegen.ExpressionOptimizer;
import org.apache.fury.codegen.ExpressionUtils;
import org.apache.fury.collection.Tuple2;
import org.apache.fury.memory.Platform;
+import org.apache.fury.reflect.ReflectionUtils;
import org.apache.fury.reflect.TypeRef;
import org.apache.fury.resolver.ClassInfo;
import org.apache.fury.resolver.ClassResolver;
@@ -77,7 +78,6 @@ import org.apache.fury.serializer.CompatibleSerializer;
import org.apache.fury.type.Descriptor;
import org.apache.fury.type.TypeUtils;
import org.apache.fury.util.Preconditions;
-import org.apache.fury.util.ReflectionUtils;
import org.apache.fury.util.function.SerializableSupplier;
import org.apache.fury.util.record.RecordUtils;
diff --git
a/java/fury-core/src/main/java/org/apache/fury/builder/Generated.java
b/java/fury-core/src/main/java/org/apache/fury/builder/Generated.java
index 16822fba..fde60cdb 100644
--- a/java/fury-core/src/main/java/org/apache/fury/builder/Generated.java
+++ b/java/fury-core/src/main/java/org/apache/fury/builder/Generated.java
@@ -26,10 +26,10 @@ import java.util.Objects;
import org.apache.fury.Fury;
import org.apache.fury.memory.MemoryBuffer;
import org.apache.fury.meta.ClassDef;
+import org.apache.fury.reflect.ReflectionUtils;
import org.apache.fury.serializer.CompatibleSerializerBase;
import org.apache.fury.serializer.Serializer;
import org.apache.fury.util.Preconditions;
-import org.apache.fury.util.ReflectionUtils;
/**
* Since janino doesn't support generics, we use {@link Object} to represent
object type rather
diff --git
a/java/fury-core/src/main/java/org/apache/fury/codegen/CodeGenerator.java
b/java/fury-core/src/main/java/org/apache/fury/codegen/CodeGenerator.java
index d91cb870..2d03b5d7 100644
--- a/java/fury-core/src/main/java/org/apache/fury/codegen/CodeGenerator.java
+++ b/java/fury-core/src/main/java/org/apache/fury/codegen/CodeGenerator.java
@@ -40,12 +40,12 @@ import org.apache.fury.collection.Collections;
import org.apache.fury.collection.MultiKeyWeakMap;
import org.apache.fury.logging.Logger;
import org.apache.fury.logging.LoggerFactory;
+import org.apache.fury.reflect.ReflectionUtils;
import org.apache.fury.util.ClassLoaderUtils;
import org.apache.fury.util.ClassLoaderUtils.ByteArrayClassLoader;
import org.apache.fury.util.DelayedRef;
import org.apache.fury.util.GraalvmSupport;
import org.apache.fury.util.Preconditions;
-import org.apache.fury.util.ReflectionUtils;
import org.apache.fury.util.StringUtils;
/**
diff --git
a/java/fury-core/src/main/java/org/apache/fury/codegen/CodegenContext.java
b/java/fury-core/src/main/java/org/apache/fury/codegen/CodegenContext.java
index e79ea7ed..d60fb6a7 100644
--- a/java/fury-core/src/main/java/org/apache/fury/codegen/CodegenContext.java
+++ b/java/fury-core/src/main/java/org/apache/fury/codegen/CodegenContext.java
@@ -42,9 +42,9 @@ import org.apache.fury.codegen.Expression.BaseInvoke;
import org.apache.fury.codegen.Expression.Reference;
import org.apache.fury.collection.Collections;
import org.apache.fury.collection.Tuple2;
+import org.apache.fury.reflect.ReflectionUtils;
import org.apache.fury.reflect.TypeRef;
import org.apache.fury.util.Preconditions;
-import org.apache.fury.util.ReflectionUtils;
import org.apache.fury.util.StringUtils;
/**
diff --git
a/java/fury-core/src/main/java/org/apache/fury/codegen/Expression.java
b/java/fury-core/src/main/java/org/apache/fury/codegen/Expression.java
index 11797164..71c0f29f 100644
--- a/java/fury-core/src/main/java/org/apache/fury/codegen/Expression.java
+++ b/java/fury-core/src/main/java/org/apache/fury/codegen/Expression.java
@@ -56,10 +56,10 @@ import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import org.apache.fury.memory.Platform;
+import org.apache.fury.reflect.ReflectionUtils;
import org.apache.fury.reflect.TypeRef;
import org.apache.fury.type.TypeUtils;
import org.apache.fury.util.Preconditions;
-import org.apache.fury.util.ReflectionUtils;
import org.apache.fury.util.StringUtils;
import org.apache.fury.util.function.Functions;
import org.apache.fury.util.function.SerializableBiFunction;
diff --git
a/java/fury-core/src/main/java/org/apache/fury/codegen/ExpressionVisitor.java
b/java/fury-core/src/main/java/org/apache/fury/codegen/ExpressionVisitor.java
index 44fe1032..1ec1a5e4 100644
---
a/java/fury-core/src/main/java/org/apache/fury/codegen/ExpressionVisitor.java
+++
b/java/fury-core/src/main/java/org/apache/fury/codegen/ExpressionVisitor.java
@@ -34,10 +34,10 @@ import java.util.function.Function;
import org.apache.fury.codegen.Expression.ListExpression;
import org.apache.fury.codegen.Expression.Reference;
import org.apache.fury.memory.Platform;
+import org.apache.fury.reflect.ReflectionUtils;
import org.apache.fury.reflect.TypeRef;
import org.apache.fury.type.TypeUtils;
import org.apache.fury.util.Preconditions;
-import org.apache.fury.util.ReflectionUtils;
/**
* Traverse expression tree with actions. The provided action will be executed
at every expression
diff --git
a/java/fury-core/src/main/java/org/apache/fury/codegen/JaninoUtils.java
b/java/fury-core/src/main/java/org/apache/fury/codegen/JaninoUtils.java
index bddd900a..ced6e3cc 100644
--- a/java/fury-core/src/main/java/org/apache/fury/codegen/JaninoUtils.java
+++ b/java/fury-core/src/main/java/org/apache/fury/codegen/JaninoUtils.java
@@ -37,7 +37,7 @@ import java.util.stream.Collectors;
import org.apache.fury.collection.Tuple2;
import org.apache.fury.logging.Logger;
import org.apache.fury.logging.LoggerFactory;
-import org.apache.fury.util.ReflectionUtils;
+import org.apache.fury.reflect.ReflectionUtils;
import org.apache.fury.util.StringUtils;
import org.codehaus.commons.compiler.util.reflect.ByteArrayClassLoader;
import org.codehaus.commons.compiler.util.resource.MapResourceCreator;
diff --git a/java/fury-core/src/main/java/org/apache/fury/meta/ClassDef.java
b/java/fury-core/src/main/java/org/apache/fury/meta/ClassDef.java
index 8714e3e3..319a0972 100644
--- a/java/fury-core/src/main/java/org/apache/fury/meta/ClassDef.java
+++ b/java/fury-core/src/main/java/org/apache/fury/meta/ClassDef.java
@@ -46,6 +46,7 @@ import org.apache.fury.logging.LoggerFactory;
import org.apache.fury.memory.MemoryBuffer;
import org.apache.fury.memory.MemoryUtils;
import org.apache.fury.memory.Platform;
+import org.apache.fury.reflect.ReflectionUtils;
import org.apache.fury.reflect.TypeRef;
import org.apache.fury.resolver.ClassResolver;
import org.apache.fury.serializer.CompatibleSerializer;
@@ -55,7 +56,6 @@ import org.apache.fury.type.FinalObjectTypeStub;
import org.apache.fury.type.GenericType;
import org.apache.fury.util.MurmurHash3;
import org.apache.fury.util.Preconditions;
-import org.apache.fury.util.ReflectionUtils;
/**
* Serializable class definition to be sent to other process. So if sender
peer and receiver peer
diff --git
a/java/fury-core/src/main/java/org/apache/fury/util/FieldAccessor.java
b/java/fury-core/src/main/java/org/apache/fury/reflect/FieldAccessor.java
similarity index 99%
rename from java/fury-core/src/main/java/org/apache/fury/util/FieldAccessor.java
rename to
java/fury-core/src/main/java/org/apache/fury/reflect/FieldAccessor.java
index 23cb96f8..296cab81 100644
--- a/java/fury-core/src/main/java/org/apache/fury/util/FieldAccessor.java
+++ b/java/fury-core/src/main/java/org/apache/fury/reflect/FieldAccessor.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.fury.util;
+package org.apache.fury.reflect;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
@@ -28,6 +28,7 @@ import java.util.function.ToIntFunction;
import java.util.function.ToLongFunction;
import org.apache.fury.memory.Platform;
import org.apache.fury.type.TypeUtils;
+import org.apache.fury.util.Preconditions;
import org.apache.fury.util.function.Functions;
import org.apache.fury.util.function.ToByteFunction;
import org.apache.fury.util.function.ToCharFunction;
diff --git
a/java/fury-core/src/main/java/org/apache/fury/util/ReflectionUtils.java
b/java/fury-core/src/main/java/org/apache/fury/reflect/ReflectionUtils.java
similarity index 99%
rename from
java/fury-core/src/main/java/org/apache/fury/util/ReflectionUtils.java
rename to
java/fury-core/src/main/java/org/apache/fury/reflect/ReflectionUtils.java
index b78393fc..aa1ae5cb 100644
--- a/java/fury-core/src/main/java/org/apache/fury/util/ReflectionUtils.java
+++ b/java/fury-core/src/main/java/org/apache/fury/reflect/ReflectionUtils.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.fury.util;
+package org.apache.fury.reflect;
import static org.apache.fury.type.TypeUtils.OBJECT_TYPE;
import static org.apache.fury.type.TypeUtils.getRawType;
@@ -48,7 +48,8 @@ import org.apache.fury.annotation.CodegenInvoke;
import org.apache.fury.annotation.Internal;
import org.apache.fury.collection.Tuple3;
import org.apache.fury.memory.Platform;
-import org.apache.fury.reflect.TypeRef;
+import org.apache.fury.util.GraalvmSupport;
+import org.apache.fury.util.Preconditions;
import org.apache.fury.util.function.Functions;
import org.apache.fury.util.unsafe._JDKAccess;
diff --git
a/java/fury-core/src/main/java/org/apache/fury/util/UnsafeFieldAccessor.java
b/java/fury-core/src/main/java/org/apache/fury/reflect/UnsafeFieldAccessor.java
similarity index 97%
rename from
java/fury-core/src/main/java/org/apache/fury/util/UnsafeFieldAccessor.java
rename to
java/fury-core/src/main/java/org/apache/fury/reflect/UnsafeFieldAccessor.java
index d9e7a05b..9c74b389 100644
--- a/java/fury-core/src/main/java/org/apache/fury/util/UnsafeFieldAccessor.java
+++
b/java/fury-core/src/main/java/org/apache/fury/reflect/UnsafeFieldAccessor.java
@@ -17,10 +17,11 @@
* under the License.
*/
-package org.apache.fury.util;
+package org.apache.fury.reflect;
import java.lang.reflect.Field;
import org.apache.fury.memory.Platform;
+import org.apache.fury.util.Preconditions;
import sun.misc.Unsafe;
/** An object field accessor based on {@link Unsafe}. */
diff --git
a/java/fury-core/src/main/java/org/apache/fury/resolver/ClassInfo.java
b/java/fury-core/src/main/java/org/apache/fury/resolver/ClassInfo.java
index bc45d355..1ca10cd4 100644
--- a/java/fury-core/src/main/java/org/apache/fury/resolver/ClassInfo.java
+++ b/java/fury-core/src/main/java/org/apache/fury/resolver/ClassInfo.java
@@ -25,10 +25,10 @@ import static
org.apache.fury.meta.MetaStringEncoder.TYPE_NAME_ENCODER;
import org.apache.fury.collection.Tuple2;
import org.apache.fury.config.Language;
import org.apache.fury.meta.MetaString.Encoding;
+import org.apache.fury.reflect.ReflectionUtils;
import org.apache.fury.serializer.Serializer;
import org.apache.fury.type.TypeUtils;
import org.apache.fury.util.Preconditions;
-import org.apache.fury.util.ReflectionUtils;
import org.apache.fury.util.StringUtils;
import org.apache.fury.util.function.Functions;
diff --git
a/java/fury-core/src/main/java/org/apache/fury/resolver/ClassResolver.java
b/java/fury-core/src/main/java/org/apache/fury/resolver/ClassResolver.java
index 42f38d77..0bf8787c 100644
--- a/java/fury-core/src/main/java/org/apache/fury/resolver/ClassResolver.java
+++ b/java/fury-core/src/main/java/org/apache/fury/resolver/ClassResolver.java
@@ -98,6 +98,7 @@ import org.apache.fury.memory.MemoryBuffer;
import org.apache.fury.memory.Platform;
import org.apache.fury.meta.ClassDef;
import org.apache.fury.meta.MetaString;
+import org.apache.fury.reflect.ReflectionUtils;
import org.apache.fury.reflect.TypeRef;
import org.apache.fury.serializer.ArraySerializers;
import
org.apache.fury.serializer.ArraySerializers.UnexistedArrayClassSerializer;
@@ -147,7 +148,6 @@ import org.apache.fury.type.ScalaTypes;
import org.apache.fury.type.TypeUtils;
import org.apache.fury.util.GraalvmSupport;
import org.apache.fury.util.Preconditions;
-import org.apache.fury.util.ReflectionUtils;
import org.apache.fury.util.StringUtils;
import org.apache.fury.util.function.Functions;
diff --git
a/java/fury-core/src/main/java/org/apache/fury/resolver/FieldResolver.java
b/java/fury-core/src/main/java/org/apache/fury/resolver/FieldResolver.java
index 53909cc0..b7651179 100644
--- a/java/fury-core/src/main/java/org/apache/fury/resolver/FieldResolver.java
+++ b/java/fury-core/src/main/java/org/apache/fury/resolver/FieldResolver.java
@@ -46,16 +46,16 @@ import org.apache.fury.Fury;
import org.apache.fury.collection.Tuple2;
import org.apache.fury.exception.ClassNotCompatibleException;
import org.apache.fury.memory.MemoryBuffer;
+import org.apache.fury.reflect.FieldAccessor;
+import org.apache.fury.reflect.ReflectionUtils;
import org.apache.fury.reflect.TypeRef;
import org.apache.fury.serializer.PrimitiveSerializers;
import org.apache.fury.serializer.collection.CollectionSerializer;
import org.apache.fury.serializer.collection.MapSerializer;
import org.apache.fury.type.Descriptor;
import org.apache.fury.type.TypeUtils;
-import org.apache.fury.util.FieldAccessor;
import org.apache.fury.util.MurmurHash3;
import org.apache.fury.util.Preconditions;
-import org.apache.fury.util.ReflectionUtils;
/**
* A class field resolver for class compatibility.
diff --git
a/java/fury-core/src/main/java/org/apache/fury/serializer/ArraySerializers.java
b/java/fury-core/src/main/java/org/apache/fury/serializer/ArraySerializers.java
index 4852c7bd..f91af71e 100644
---
a/java/fury-core/src/main/java/org/apache/fury/serializer/ArraySerializers.java
+++
b/java/fury-core/src/main/java/org/apache/fury/serializer/ArraySerializers.java
@@ -24,6 +24,7 @@ import java.util.IdentityHashMap;
import org.apache.fury.Fury;
import org.apache.fury.memory.MemoryBuffer;
import org.apache.fury.memory.Platform;
+import org.apache.fury.reflect.ReflectionUtils;
import org.apache.fury.resolver.ClassInfo;
import org.apache.fury.resolver.ClassInfoHolder;
import org.apache.fury.resolver.ClassResolver;
@@ -33,7 +34,6 @@ import
org.apache.fury.serializer.collection.FuryArrayAsListSerializer;
import org.apache.fury.type.Type;
import org.apache.fury.type.TypeUtils;
import org.apache.fury.util.Preconditions;
-import org.apache.fury.util.ReflectionUtils;
/** Serializers for array types. */
public class ArraySerializers {
diff --git
a/java/fury-core/src/main/java/org/apache/fury/serializer/CompatibleSerializer.java
b/java/fury-core/src/main/java/org/apache/fury/serializer/CompatibleSerializer.java
index 603f389f..c143ce2e 100644
---
a/java/fury-core/src/main/java/org/apache/fury/serializer/CompatibleSerializer.java
+++
b/java/fury-core/src/main/java/org/apache/fury/serializer/CompatibleSerializer.java
@@ -28,15 +28,15 @@ import java.util.stream.Collectors;
import org.apache.fury.Fury;
import org.apache.fury.memory.MemoryBuffer;
import org.apache.fury.memory.Platform;
+import org.apache.fury.reflect.FieldAccessor;
+import org.apache.fury.reflect.ReflectionUtils;
import org.apache.fury.resolver.ClassInfo;
import org.apache.fury.resolver.ClassResolver;
import org.apache.fury.resolver.FieldResolver;
import org.apache.fury.resolver.RefResolver;
import org.apache.fury.serializer.collection.CollectionSerializer;
import org.apache.fury.serializer.collection.MapSerializer;
-import org.apache.fury.util.FieldAccessor;
import org.apache.fury.util.Preconditions;
-import org.apache.fury.util.ReflectionUtils;
import org.apache.fury.util.record.RecordInfo;
import org.apache.fury.util.record.RecordUtils;
diff --git
a/java/fury-core/src/main/java/org/apache/fury/serializer/ExternalizableSerializer.java
b/java/fury-core/src/main/java/org/apache/fury/serializer/ExternalizableSerializer.java
index 56840217..c16778c5 100644
---
a/java/fury-core/src/main/java/org/apache/fury/serializer/ExternalizableSerializer.java
+++
b/java/fury-core/src/main/java/org/apache/fury/serializer/ExternalizableSerializer.java
@@ -27,7 +27,7 @@ import org.apache.fury.io.MemoryBufferObjectInput;
import org.apache.fury.io.MemoryBufferObjectOutput;
import org.apache.fury.memory.MemoryBuffer;
import org.apache.fury.memory.Platform;
-import org.apache.fury.util.ReflectionUtils;
+import org.apache.fury.reflect.ReflectionUtils;
/** Serializer for class implements {@link Externalizable}. */
public class ExternalizableSerializer<T extends Externalizable> extends
Serializer<T> {
diff --git
a/java/fury-core/src/main/java/org/apache/fury/serializer/JdkProxySerializer.java
b/java/fury-core/src/main/java/org/apache/fury/serializer/JdkProxySerializer.java
index 572ad298..2e52b2a3 100644
---
a/java/fury-core/src/main/java/org/apache/fury/serializer/JdkProxySerializer.java
+++
b/java/fury-core/src/main/java/org/apache/fury/serializer/JdkProxySerializer.java
@@ -25,9 +25,9 @@ import java.lang.reflect.Proxy;
import org.apache.fury.Fury;
import org.apache.fury.memory.MemoryBuffer;
import org.apache.fury.memory.Platform;
+import org.apache.fury.reflect.ReflectionUtils;
import org.apache.fury.resolver.RefResolver;
import org.apache.fury.util.Preconditions;
-import org.apache.fury.util.ReflectionUtils;
/** Serializer for jdk {@link Proxy}. */
@SuppressWarnings({"rawtypes", "unchecked"})
diff --git
a/java/fury-core/src/main/java/org/apache/fury/serializer/LambdaSerializer.java
b/java/fury-core/src/main/java/org/apache/fury/serializer/LambdaSerializer.java
index 3d60ac00..e8c82212 100644
---
a/java/fury-core/src/main/java/org/apache/fury/serializer/LambdaSerializer.java
+++
b/java/fury-core/src/main/java/org/apache/fury/serializer/LambdaSerializer.java
@@ -26,8 +26,8 @@ import java.lang.reflect.Method;
import java.util.Objects;
import org.apache.fury.Fury;
import org.apache.fury.memory.MemoryBuffer;
+import org.apache.fury.reflect.ReflectionUtils;
import org.apache.fury.util.Preconditions;
-import org.apache.fury.util.ReflectionUtils;
/**
* Serializer for java serializable lambda. Use fury to serialize java lambda
instead of JDK
diff --git
a/java/fury-core/src/main/java/org/apache/fury/serializer/MetaSharedSerializer.java
b/java/fury-core/src/main/java/org/apache/fury/serializer/MetaSharedSerializer.java
index 77e19231..e2430897 100644
---
a/java/fury-core/src/main/java/org/apache/fury/serializer/MetaSharedSerializer.java
+++
b/java/fury-core/src/main/java/org/apache/fury/serializer/MetaSharedSerializer.java
@@ -38,15 +38,15 @@ import org.apache.fury.config.FuryBuilder;
import org.apache.fury.memory.MemoryBuffer;
import org.apache.fury.memory.Platform;
import org.apache.fury.meta.ClassDef;
+import org.apache.fury.reflect.FieldAccessor;
+import org.apache.fury.reflect.ReflectionUtils;
import org.apache.fury.resolver.ClassInfoHolder;
import org.apache.fury.resolver.ClassResolver;
import org.apache.fury.resolver.RefResolver;
import org.apache.fury.type.Descriptor;
import org.apache.fury.type.DescriptorGrouper;
import org.apache.fury.type.Generics;
-import org.apache.fury.util.FieldAccessor;
import org.apache.fury.util.Preconditions;
-import org.apache.fury.util.ReflectionUtils;
import org.apache.fury.util.record.RecordInfo;
import org.apache.fury.util.record.RecordUtils;
diff --git
a/java/fury-core/src/main/java/org/apache/fury/serializer/ObjectSerializer.java
b/java/fury-core/src/main/java/org/apache/fury/serializer/ObjectSerializer.java
index 0a8d26b9..1f61d734 100644
---
a/java/fury-core/src/main/java/org/apache/fury/serializer/ObjectSerializer.java
+++
b/java/fury-core/src/main/java/org/apache/fury/serializer/ObjectSerializer.java
@@ -34,6 +34,8 @@ import org.apache.fury.collection.Tuple3;
import org.apache.fury.exception.FuryException;
import org.apache.fury.memory.MemoryBuffer;
import org.apache.fury.memory.Platform;
+import org.apache.fury.reflect.FieldAccessor;
+import org.apache.fury.reflect.ReflectionUtils;
import org.apache.fury.reflect.TypeRef;
import org.apache.fury.resolver.ClassInfo;
import org.apache.fury.resolver.ClassInfoHolder;
@@ -44,8 +46,6 @@ import org.apache.fury.type.DescriptorGrouper;
import org.apache.fury.type.FinalObjectTypeStub;
import org.apache.fury.type.GenericType;
import org.apache.fury.type.Generics;
-import org.apache.fury.util.FieldAccessor;
-import org.apache.fury.util.ReflectionUtils;
import org.apache.fury.util.record.RecordInfo;
import org.apache.fury.util.record.RecordUtils;
diff --git
a/java/fury-core/src/main/java/org/apache/fury/serializer/ObjectStreamSerializer.java
b/java/fury-core/src/main/java/org/apache/fury/serializer/ObjectStreamSerializer.java
index 4d943483..65a1c268 100644
---
a/java/fury-core/src/main/java/org/apache/fury/serializer/ObjectStreamSerializer.java
+++
b/java/fury-core/src/main/java/org/apache/fury/serializer/ObjectStreamSerializer.java
@@ -54,12 +54,12 @@ import org.apache.fury.logging.Logger;
import org.apache.fury.logging.LoggerFactory;
import org.apache.fury.memory.MemoryBuffer;
import org.apache.fury.memory.Platform;
+import org.apache.fury.reflect.ReflectionUtils;
import org.apache.fury.resolver.ClassInfo;
import org.apache.fury.resolver.ClassResolver;
import org.apache.fury.resolver.FieldResolver;
import org.apache.fury.resolver.FieldResolver.ClassField;
import org.apache.fury.util.Preconditions;
-import org.apache.fury.util.ReflectionUtils;
import org.apache.fury.util.Utils;
import org.apache.fury.util.unsafe._JDKAccess;
diff --git
a/java/fury-core/src/main/java/org/apache/fury/serializer/ReplaceResolveSerializer.java
b/java/fury-core/src/main/java/org/apache/fury/serializer/ReplaceResolveSerializer.java
index 08554715..e8e10ac7 100644
---
a/java/fury-core/src/main/java/org/apache/fury/serializer/ReplaceResolveSerializer.java
+++
b/java/fury-core/src/main/java/org/apache/fury/serializer/ReplaceResolveSerializer.java
@@ -32,11 +32,11 @@ import org.apache.fury.logging.Logger;
import org.apache.fury.logging.LoggerFactory;
import org.apache.fury.memory.MemoryBuffer;
import org.apache.fury.memory.Platform;
+import org.apache.fury.reflect.ReflectionUtils;
import org.apache.fury.resolver.ClassInfo;
import org.apache.fury.resolver.ClassResolver;
import org.apache.fury.resolver.RefResolver;
import org.apache.fury.util.Preconditions;
-import org.apache.fury.util.ReflectionUtils;
import org.apache.fury.util.unsafe._JDKAccess;
/**
diff --git
a/java/fury-core/src/main/java/org/apache/fury/serializer/Serializers.java
b/java/fury-core/src/main/java/org/apache/fury/serializer/Serializers.java
index 2e3062d3..e0b84f31 100644
--- a/java/fury-core/src/main/java/org/apache/fury/serializer/Serializers.java
+++ b/java/fury-core/src/main/java/org/apache/fury/serializer/Serializers.java
@@ -46,11 +46,11 @@ import org.apache.fury.Fury;
import org.apache.fury.collection.Tuple2;
import org.apache.fury.memory.MemoryBuffer;
import org.apache.fury.memory.Platform;
+import org.apache.fury.reflect.ReflectionUtils;
import org.apache.fury.resolver.ClassResolver;
import org.apache.fury.type.Type;
import org.apache.fury.util.GraalvmSupport;
import org.apache.fury.util.Preconditions;
-import org.apache.fury.util.ReflectionUtils;
import org.apache.fury.util.Utils;
import org.apache.fury.util.unsafe._JDKAccess;
diff --git
a/java/fury-core/src/main/java/org/apache/fury/serializer/StringSerializer.java
b/java/fury-core/src/main/java/org/apache/fury/serializer/StringSerializer.java
index 8e1e5bf9..ce5e1447 100644
---
a/java/fury-core/src/main/java/org/apache/fury/serializer/StringSerializer.java
+++
b/java/fury-core/src/main/java/org/apache/fury/serializer/StringSerializer.java
@@ -39,10 +39,10 @@ import org.apache.fury.codegen.Expression.StaticInvoke;
import org.apache.fury.memory.LittleEndian;
import org.apache.fury.memory.MemoryBuffer;
import org.apache.fury.memory.Platform;
+import org.apache.fury.reflect.ReflectionUtils;
import org.apache.fury.type.Type;
import org.apache.fury.util.MathUtils;
import org.apache.fury.util.Preconditions;
-import org.apache.fury.util.ReflectionUtils;
import org.apache.fury.util.unsafe._JDKAccess;
/**
diff --git
a/java/fury-core/src/main/java/org/apache/fury/serializer/StructSerializer.java
b/java/fury-core/src/main/java/org/apache/fury/serializer/StructSerializer.java
index 6d678ba2..c269dfa4 100644
---
a/java/fury-core/src/main/java/org/apache/fury/serializer/StructSerializer.java
+++
b/java/fury-core/src/main/java/org/apache/fury/serializer/StructSerializer.java
@@ -34,13 +34,13 @@ import org.apache.fury.logging.Logger;
import org.apache.fury.logging.LoggerFactory;
import org.apache.fury.memory.MemoryBuffer;
import org.apache.fury.memory.Platform;
+import org.apache.fury.reflect.FieldAccessor;
import org.apache.fury.reflect.TypeRef;
import org.apache.fury.type.Descriptor;
import org.apache.fury.type.GenericType;
import org.apache.fury.type.Generics;
import org.apache.fury.type.Type;
import org.apache.fury.type.TypeUtils;
-import org.apache.fury.util.FieldAccessor;
import org.apache.fury.util.Preconditions;
import org.apache.fury.util.Utils;
diff --git
a/java/fury-core/src/main/java/org/apache/fury/serializer/collection/AbstractCollectionSerializer.java
b/java/fury-core/src/main/java/org/apache/fury/serializer/collection/AbstractCollectionSerializer.java
index e8a54b18..1b0a9af3 100644
---
a/java/fury-core/src/main/java/org/apache/fury/serializer/collection/AbstractCollectionSerializer.java
+++
b/java/fury-core/src/main/java/org/apache/fury/serializer/collection/AbstractCollectionSerializer.java
@@ -24,6 +24,7 @@ import java.util.Collection;
import org.apache.fury.Fury;
import org.apache.fury.annotation.CodegenInvoke;
import org.apache.fury.memory.MemoryBuffer;
+import org.apache.fury.reflect.ReflectionUtils;
import org.apache.fury.resolver.ClassInfo;
import org.apache.fury.resolver.ClassInfoHolder;
import org.apache.fury.resolver.ClassResolver;
@@ -32,7 +33,6 @@ import org.apache.fury.serializer.CompatibleSerializer;
import org.apache.fury.serializer.Serializer;
import org.apache.fury.type.GenericType;
import org.apache.fury.util.Preconditions;
-import org.apache.fury.util.ReflectionUtils;
/**
* Serializer for all collection like object. All collection serializer should
extend this class.
diff --git
a/java/fury-core/src/main/java/org/apache/fury/serializer/collection/AbstractMapSerializer.java
b/java/fury-core/src/main/java/org/apache/fury/serializer/collection/AbstractMapSerializer.java
index ff839178..9e979442 100644
---
a/java/fury-core/src/main/java/org/apache/fury/serializer/collection/AbstractMapSerializer.java
+++
b/java/fury-core/src/main/java/org/apache/fury/serializer/collection/AbstractMapSerializer.java
@@ -27,6 +27,7 @@ import org.apache.fury.Fury;
import org.apache.fury.collection.IdentityMap;
import org.apache.fury.collection.Tuple2;
import org.apache.fury.memory.MemoryBuffer;
+import org.apache.fury.reflect.ReflectionUtils;
import org.apache.fury.reflect.TypeRef;
import org.apache.fury.resolver.ClassInfoHolder;
import org.apache.fury.resolver.ClassResolver;
@@ -35,7 +36,6 @@ import org.apache.fury.serializer.Serializer;
import org.apache.fury.type.GenericType;
import org.apache.fury.type.Generics;
import org.apache.fury.type.TypeUtils;
-import org.apache.fury.util.ReflectionUtils;
/** Serializer for all map-like objects. */
@SuppressWarnings({"unchecked", "rawtypes"})
diff --git
a/java/fury-core/src/main/java/org/apache/fury/serializer/collection/ChildContainerSerializers.java
b/java/fury-core/src/main/java/org/apache/fury/serializer/collection/ChildContainerSerializers.java
index 0678d2ee..23187e93 100644
---
a/java/fury-core/src/main/java/org/apache/fury/serializer/collection/ChildContainerSerializers.java
+++
b/java/fury-core/src/main/java/org/apache/fury/serializer/collection/ChildContainerSerializers.java
@@ -36,6 +36,7 @@ import java.util.concurrent.ConcurrentHashMap;
import org.apache.fury.Fury;
import org.apache.fury.config.CompatibleMode;
import org.apache.fury.memory.MemoryBuffer;
+import org.apache.fury.reflect.ReflectionUtils;
import org.apache.fury.resolver.ClassResolver;
import org.apache.fury.resolver.FieldResolver;
import org.apache.fury.serializer.CompatibleSerializer;
@@ -43,7 +44,6 @@ import org.apache.fury.serializer.JavaSerializer;
import org.apache.fury.serializer.ObjectSerializer;
import org.apache.fury.serializer.Serializer;
import org.apache.fury.util.Preconditions;
-import org.apache.fury.util.ReflectionUtils;
/**
* Serializers for subclasses of common JDK container types. Subclasses of
{@link ArrayList}/{@link
diff --git
a/java/fury-core/src/main/java/org/apache/fury/serializer/collection/CollectionSerializers.java
b/java/fury-core/src/main/java/org/apache/fury/serializer/collection/CollectionSerializers.java
index 0e84c953..744eddfa 100644
---
a/java/fury-core/src/main/java/org/apache/fury/serializer/collection/CollectionSerializers.java
+++
b/java/fury-core/src/main/java/org/apache/fury/serializer/collection/CollectionSerializers.java
@@ -44,13 +44,13 @@ import org.apache.fury.config.Language;
import org.apache.fury.exception.FuryException;
import org.apache.fury.memory.MemoryBuffer;
import org.apache.fury.memory.Platform;
+import org.apache.fury.reflect.ReflectionUtils;
import org.apache.fury.resolver.ClassResolver;
import org.apache.fury.serializer.ReplaceResolveSerializer;
import org.apache.fury.serializer.Serializer;
import org.apache.fury.serializer.Serializers;
import org.apache.fury.type.Type;
import org.apache.fury.util.Preconditions;
-import org.apache.fury.util.ReflectionUtils;
/**
* Serializers for classes implements {@link Collection}. All collection
serializers should extend
diff --git
a/java/fury-core/src/main/java/org/apache/fury/serializer/collection/MapSerializers.java
b/java/fury-core/src/main/java/org/apache/fury/serializer/collection/MapSerializers.java
index 2289f58c..94c142b3 100644
---
a/java/fury-core/src/main/java/org/apache/fury/serializer/collection/MapSerializers.java
+++
b/java/fury-core/src/main/java/org/apache/fury/serializer/collection/MapSerializers.java
@@ -35,6 +35,7 @@ import org.apache.fury.collection.LazyMap;
import org.apache.fury.config.Language;
import org.apache.fury.memory.MemoryBuffer;
import org.apache.fury.memory.Platform;
+import org.apache.fury.reflect.ReflectionUtils;
import org.apache.fury.resolver.ClassResolver;
import org.apache.fury.serializer.ReplaceResolveSerializer;
import org.apache.fury.serializer.Serializer;
@@ -42,7 +43,6 @@ import org.apache.fury.serializer.Serializers;
import org.apache.fury.serializer.StringSerializer;
import org.apache.fury.type.Type;
import org.apache.fury.util.Preconditions;
-import org.apache.fury.util.ReflectionUtils;
/**
* Serializers for classes implements {@link Collection}. All map serializers
must extends {@link
diff --git
a/java/fury-core/src/main/java/org/apache/fury/type/DescriptorGrouper.java
b/java/fury-core/src/main/java/org/apache/fury/type/DescriptorGrouper.java
index 6d6995a4..0308422c 100644
--- a/java/fury-core/src/main/java/org/apache/fury/type/DescriptorGrouper.java
+++ b/java/fury-core/src/main/java/org/apache/fury/type/DescriptorGrouper.java
@@ -28,7 +28,7 @@ import java.util.Comparator;
import java.util.List;
import java.util.TreeSet;
import java.util.function.Function;
-import org.apache.fury.util.ReflectionUtils;
+import org.apache.fury.reflect.ReflectionUtils;
import org.apache.fury.util.record.RecordUtils;
/**
diff --git a/java/fury-core/src/main/java/org/apache/fury/type/GenericType.java
b/java/fury-core/src/main/java/org/apache/fury/type/GenericType.java
index 8dc04022..81e2d3e8 100644
--- a/java/fury-core/src/main/java/org/apache/fury/type/GenericType.java
+++ b/java/fury-core/src/main/java/org/apache/fury/type/GenericType.java
@@ -29,10 +29,10 @@ import java.lang.reflect.WildcardType;
import java.util.ArrayList;
import java.util.List;
import java.util.function.Predicate;
+import org.apache.fury.reflect.ReflectionUtils;
import org.apache.fury.reflect.TypeRef;
import org.apache.fury.resolver.ClassResolver;
import org.apache.fury.serializer.Serializer;
-import org.apache.fury.util.ReflectionUtils;
/** GenericType for building java generics as a tree and binding with fury
serializers. */
// TODO(chaokunyang) refine generics which can be inspired by spring
ResolvableType.
diff --git a/java/fury-core/src/main/java/org/apache/fury/type/ScalaTypes.java
b/java/fury-core/src/main/java/org/apache/fury/type/ScalaTypes.java
index 97874893..485776a8 100644
--- a/java/fury-core/src/main/java/org/apache/fury/type/ScalaTypes.java
+++ b/java/fury-core/src/main/java/org/apache/fury/type/ScalaTypes.java
@@ -22,8 +22,8 @@ package org.apache.fury.type;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import org.apache.fury.collection.Tuple2;
+import org.apache.fury.reflect.ReflectionUtils;
import org.apache.fury.reflect.TypeRef;
-import org.apache.fury.util.ReflectionUtils;
/** Scala types utils using reflection without dependency on scala library. */
@SuppressWarnings({"unchecked", "rawtypes"})
diff --git a/java/fury-core/src/main/java/org/apache/fury/type/TypeUtils.java
b/java/fury-core/src/main/java/org/apache/fury/type/TypeUtils.java
index 7eb5bf5b..99ce7b4c 100644
--- a/java/fury-core/src/main/java/org/apache/fury/type/TypeUtils.java
+++ b/java/fury-core/src/main/java/org/apache/fury/type/TypeUtils.java
@@ -47,10 +47,10 @@ import java.util.Set;
import java.util.stream.Collectors;
import org.apache.fury.collection.IdentityMap;
import org.apache.fury.collection.Tuple2;
+import org.apache.fury.reflect.ReflectionUtils;
import org.apache.fury.reflect.TypeParameter;
import org.apache.fury.reflect.TypeRef;
import org.apache.fury.util.Preconditions;
-import org.apache.fury.util.ReflectionUtils;
/** Type utils for common type inference and extraction. */
@SuppressWarnings({"UnstableApiUsage", "unchecked"})
diff --git
a/java/fury-core/src/main/java/org/apache/fury/util/ExceptionUtils.java
b/java/fury-core/src/main/java/org/apache/fury/util/ExceptionUtils.java
index 1f8ff61a..d32d1e33 100644
--- a/java/fury-core/src/main/java/org/apache/fury/util/ExceptionUtils.java
+++ b/java/fury-core/src/main/java/org/apache/fury/util/ExceptionUtils.java
@@ -20,6 +20,7 @@
package org.apache.fury.util;
import java.lang.reflect.Field;
+import org.apache.fury.reflect.ReflectionUtils;
/** Util for java exceptions. */
public class ExceptionUtils {
diff --git
a/java/fury-core/src/main/java/org/apache/fury/util/function/Functions.java
b/java/fury-core/src/main/java/org/apache/fury/util/function/Functions.java
index e53e31d2..d5dbfd8d 100644
--- a/java/fury-core/src/main/java/org/apache/fury/util/function/Functions.java
+++ b/java/fury-core/src/main/java/org/apache/fury/util/function/Functions.java
@@ -28,8 +28,8 @@ import java.util.ArrayList;
import java.util.List;
import java.util.function.Predicate;
import org.apache.fury.collection.Tuple2;
+import org.apache.fury.reflect.ReflectionUtils;
import org.apache.fury.util.Preconditions;
-import org.apache.fury.util.ReflectionUtils;
import org.apache.fury.util.unsafe._JDKAccess;
/** Utility for lambda functions. */
diff --git
a/java/fury-core/src/main/resources/META-INF/native-image/org.apache.fury/fury-core/native-image.properties
b/java/fury-core/src/main/resources/META-INF/native-image/org.apache.fury/fury-core/native-image.properties
index 4f4ddd71..5b33e5d0 100644
---
a/java/fury-core/src/main/resources/META-INF/native-image/org.apache.fury/fury-core/native-image.properties
+++
b/java/fury-core/src/main/resources/META-INF/native-image/org.apache.fury/fury-core/native-image.properties
@@ -29,7 +29,7 @@
Args=--initialize-at-build-time=org.apache.fury.memory.MemoryBuffer,\
org.apache.fury.serializer.Serializers,\
org.apache.fury.serializer.shim.ShimDispatcher,\
org.apache.fury.memory.Platform,\
- org.apache.fury.util.ReflectionUtils,\
+ org.apache.fury.reflect.ReflectionUtils,\
org.apache.fury.util.unsafe._Lookup,\
org.apache.fury.util.unsafe._JDKAccess,\
org.apache.fury.type.Type,\
@@ -37,7 +37,7 @@
Args=--initialize-at-build-time=org.apache.fury.memory.MemoryBuffer,\
org.apache.fury.Fury,\
org.apache.fury.type.Type,\
org.apache.fury.serializer.JavaSerializer,\
- org.apache.fury.util.ReflectionUtils,\
+ org.apache.fury.reflect.ReflectionUtils,\
org.apache.fury.builder.ObjectCodecBuilder,\
com.google.common.reflect.Types$ClassOwnership$1,\
org.apache.fury.shaded.org.codehaus.janino.Java$ArrayType,\
diff --git a/java/fury-core/src/test/java/org/apache/fury/FuryTestBase.java
b/java/fury-core/src/test/java/org/apache/fury/FuryTestBase.java
index 7db156cb..9ab77e42 100644
--- a/java/fury-core/src/test/java/org/apache/fury/FuryTestBase.java
+++ b/java/fury-core/src/test/java/org/apache/fury/FuryTestBase.java
@@ -37,9 +37,9 @@ import org.apache.fury.config.Language;
import org.apache.fury.io.ClassLoaderObjectInputStream;
import org.apache.fury.memory.MemoryBuffer;
import org.apache.fury.memory.Platform;
+import org.apache.fury.reflect.ReflectionUtils;
import org.apache.fury.resolver.MetaContext;
import org.apache.fury.serializer.BufferObject;
-import org.apache.fury.util.ReflectionUtils;
import org.testng.Assert;
import org.testng.annotations.DataProvider;
diff --git a/java/fury-core/src/test/java/org/apache/fury/StreamTest.java
b/java/fury-core/src/test/java/org/apache/fury/StreamTest.java
index 95d783ac..918e7005 100644
--- a/java/fury-core/src/test/java/org/apache/fury/StreamTest.java
+++ b/java/fury-core/src/test/java/org/apache/fury/StreamTest.java
@@ -34,8 +34,8 @@ import org.apache.fury.io.FuryInputStream;
import org.apache.fury.io.FuryReadableChannel;
import org.apache.fury.io.FuryStreamReader;
import org.apache.fury.memory.MemoryBuffer;
+import org.apache.fury.reflect.ReflectionUtils;
import org.apache.fury.test.bean.BeanA;
-import org.apache.fury.util.ReflectionUtils;
import org.testng.annotations.Test;
public class StreamTest {
diff --git a/java/fury-core/src/test/java/org/apache/fury/TestUtils.java
b/java/fury-core/src/test/java/org/apache/fury/TestUtils.java
index 97050684..4ae3f16b 100644
--- a/java/fury-core/src/test/java/org/apache/fury/TestUtils.java
+++ b/java/fury-core/src/test/java/org/apache/fury/TestUtils.java
@@ -26,8 +26,8 @@ import java.io.IOException;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.function.Supplier;
-import org.apache.fury.util.FieldAccessor;
-import org.apache.fury.util.ReflectionUtils;
+import org.apache.fury.reflect.FieldAccessor;
+import org.apache.fury.reflect.ReflectionUtils;
import org.apache.fury.util.unsafe._JDKAccess;
import org.testng.SkipException;
diff --git
a/java/fury-core/src/test/java/org/apache/fury/codegen/ExpressionVisitorTest.java
b/java/fury-core/src/test/java/org/apache/fury/codegen/ExpressionVisitorTest.java
index 4532be94..5404aba3 100644
---
a/java/fury-core/src/test/java/org/apache/fury/codegen/ExpressionVisitorTest.java
+++
b/java/fury-core/src/test/java/org/apache/fury/codegen/ExpressionVisitorTest.java
@@ -28,9 +28,9 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.apache.fury.codegen.Expression.Literal;
+import org.apache.fury.reflect.ReflectionUtils;
import org.apache.fury.reflect.TypeRef;
import org.apache.fury.util.Preconditions;
-import org.apache.fury.util.ReflectionUtils;
import org.testng.annotations.Test;
public class ExpressionVisitorTest {
diff --git
a/java/fury-core/src/test/java/org/apache/fury/codegen/JaninoUtilsTest.java
b/java/fury-core/src/test/java/org/apache/fury/codegen/JaninoUtilsTest.java
index ad74ae57..2e8c3073 100644
--- a/java/fury-core/src/test/java/org/apache/fury/codegen/JaninoUtilsTest.java
+++ b/java/fury-core/src/test/java/org/apache/fury/codegen/JaninoUtilsTest.java
@@ -26,9 +26,9 @@ import java.util.List;
import java.util.Map;
import java.util.function.Function;
import org.apache.fury.memory.Platform;
+import org.apache.fury.reflect.ReflectionUtils;
import org.apache.fury.test.bean.Struct;
import org.apache.fury.util.ClassLoaderUtils;
-import org.apache.fury.util.ReflectionUtils;
import org.codehaus.commons.compiler.CompileException;
import org.codehaus.commons.compiler.util.reflect.ByteArrayClassLoader;
import org.codehaus.commons.compiler.util.resource.MapResourceCreator;
diff --git
a/java/fury-core/src/test/java/org/apache/fury/serializer/ArraySerializersTest.java
b/java/fury-core/src/test/java/org/apache/fury/serializer/ArraySerializersTest.java
index 7c226752..2f485f38 100644
---
a/java/fury-core/src/test/java/org/apache/fury/serializer/ArraySerializersTest.java
+++
b/java/fury-core/src/test/java/org/apache/fury/serializer/ArraySerializersTest.java
@@ -34,9 +34,9 @@ import org.apache.fury.Fury;
import org.apache.fury.FuryTestBase;
import org.apache.fury.config.FuryBuilder;
import org.apache.fury.config.Language;
+import org.apache.fury.reflect.ReflectionUtils;
import org.apache.fury.test.bean.ArraysData;
import org.apache.fury.type.Descriptor;
-import org.apache.fury.util.ReflectionUtils;
import org.testng.Assert;
import org.testng.annotations.Test;
diff --git
a/java/fury-core/src/test/java/org/apache/fury/serializer/ClassUtils.java
b/java/fury-core/src/test/java/org/apache/fury/serializer/ClassUtils.java
index 0844c8f1..aaeef58c 100644
--- a/java/fury-core/src/test/java/org/apache/fury/serializer/ClassUtils.java
+++ b/java/fury-core/src/test/java/org/apache/fury/serializer/ClassUtils.java
@@ -26,12 +26,12 @@ import java.nio.file.Path;
import java.nio.file.Paths;
import javax.tools.JavaCompiler;
import javax.tools.ToolProvider;
+import org.apache.fury.reflect.ReflectionUtils;
import org.apache.fury.test.bean.BeanA;
import org.apache.fury.test.bean.CollectionFields;
import org.apache.fury.test.bean.MapFields;
import org.apache.fury.test.bean.Struct;
import org.apache.fury.util.ClassLoaderUtils;
-import org.apache.fury.util.ReflectionUtils;
import org.testng.Assert;
public class ClassUtils {
diff --git
a/java/fury-core/src/test/java/org/apache/fury/serializer/CodegenCompatibleSerializerTest.java
b/java/fury-core/src/test/java/org/apache/fury/serializer/CodegenCompatibleSerializerTest.java
index 0a3f56ff..71872366 100644
---
a/java/fury-core/src/test/java/org/apache/fury/serializer/CodegenCompatibleSerializerTest.java
+++
b/java/fury-core/src/test/java/org/apache/fury/serializer/CodegenCompatibleSerializerTest.java
@@ -31,13 +31,13 @@ import org.apache.fury.Fury;
import org.apache.fury.FuryTestBase;
import org.apache.fury.config.CompatibleMode;
import org.apache.fury.config.Language;
+import org.apache.fury.reflect.ReflectionUtils;
import org.apache.fury.serializer.collection.UnmodifiableSerializersTest;
import org.apache.fury.test.bean.BeanA;
import org.apache.fury.test.bean.BeanB;
import org.apache.fury.test.bean.CollectionFields;
import org.apache.fury.test.bean.Foo;
import org.apache.fury.test.bean.MapFields;
-import org.apache.fury.util.ReflectionUtils;
import org.testng.Assert;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
diff --git
a/java/fury-core/src/test/java/org/apache/fury/serializer/CompatibleSerializerTest.java
b/java/fury-core/src/test/java/org/apache/fury/serializer/CompatibleSerializerTest.java
index 0b3f0af2..5b6818d7 100644
---
a/java/fury-core/src/test/java/org/apache/fury/serializer/CompatibleSerializerTest.java
+++
b/java/fury-core/src/test/java/org/apache/fury/serializer/CompatibleSerializerTest.java
@@ -33,6 +33,7 @@ import org.apache.fury.Fury;
import org.apache.fury.FuryTestBase;
import org.apache.fury.config.CompatibleMode;
import org.apache.fury.config.Language;
+import org.apache.fury.reflect.ReflectionUtils;
import org.apache.fury.serializer.collection.UnmodifiableSerializersTest;
import org.apache.fury.test.bean.BeanA;
import org.apache.fury.test.bean.BeanB;
@@ -40,7 +41,6 @@ import org.apache.fury.test.bean.CollectionFields;
import org.apache.fury.test.bean.Foo;
import org.apache.fury.test.bean.MapFields;
import org.apache.fury.test.bean.Struct;
-import org.apache.fury.util.ReflectionUtils;
import org.testng.Assert;
import org.testng.annotations.Test;
diff --git
a/java/fury-core/src/test/java/org/apache/fury/serializer/MetaSharedCompatibleTest.java
b/java/fury-core/src/test/java/org/apache/fury/serializer/MetaSharedCompatibleTest.java
index 9d2f87ef..3f5cf8ee 100644
---
a/java/fury-core/src/test/java/org/apache/fury/serializer/MetaSharedCompatibleTest.java
+++
b/java/fury-core/src/test/java/org/apache/fury/serializer/MetaSharedCompatibleTest.java
@@ -33,6 +33,7 @@ import org.apache.fury.FuryTestBase;
import org.apache.fury.builder.MetaSharedCodecBuilder;
import org.apache.fury.config.CompatibleMode;
import org.apache.fury.config.Language;
+import org.apache.fury.reflect.ReflectionUtils;
import org.apache.fury.resolver.MetaContext;
import org.apache.fury.serializer.collection.UnmodifiableSerializersTest;
import org.apache.fury.test.bean.BeanA;
@@ -40,7 +41,6 @@ import org.apache.fury.test.bean.BeanB;
import org.apache.fury.test.bean.CollectionFields;
import org.apache.fury.test.bean.Foo;
import org.apache.fury.test.bean.MapFields;
-import org.apache.fury.util.ReflectionUtils;
import org.testng.Assert;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
diff --git
a/java/fury-core/src/test/java/org/apache/fury/serializer/StringSerializerTest.java
b/java/fury-core/src/test/java/org/apache/fury/serializer/StringSerializerTest.java
index e0f70d19..51779c8c 100644
---
a/java/fury-core/src/test/java/org/apache/fury/serializer/StringSerializerTest.java
+++
b/java/fury-core/src/test/java/org/apache/fury/serializer/StringSerializerTest.java
@@ -38,8 +38,8 @@ import org.apache.fury.config.Language;
import org.apache.fury.memory.MemoryBuffer;
import org.apache.fury.memory.MemoryUtils;
import org.apache.fury.memory.Platform;
+import org.apache.fury.reflect.ReflectionUtils;
import org.apache.fury.util.MathUtils;
-import org.apache.fury.util.ReflectionUtils;
import org.apache.fury.util.StringUtils;
import org.testng.Assert;
import org.testng.SkipException;
diff --git
a/java/fury-core/src/test/java/org/apache/fury/serializer/UnexistedClassSerializersTest.java
b/java/fury-core/src/test/java/org/apache/fury/serializer/UnexistedClassSerializersTest.java
index f753a834..c2a1c62a 100644
---
a/java/fury-core/src/test/java/org/apache/fury/serializer/UnexistedClassSerializersTest.java
+++
b/java/fury-core/src/test/java/org/apache/fury/serializer/UnexistedClassSerializersTest.java
@@ -32,9 +32,9 @@ import org.apache.fury.codegen.JaninoUtils;
import org.apache.fury.config.CompatibleMode;
import org.apache.fury.config.FuryBuilder;
import org.apache.fury.config.Language;
+import org.apache.fury.reflect.ReflectionUtils;
import org.apache.fury.resolver.MetaContext;
import org.apache.fury.test.bean.Struct;
-import org.apache.fury.util.ReflectionUtils;
import org.codehaus.commons.compiler.util.reflect.ByteArrayClassLoader;
import org.testng.Assert;
import org.testng.annotations.DataProvider;
diff --git
a/java/fury-core/src/test/java/org/apache/fury/serializer/collection/SynchronizedSerializersTest.java
b/java/fury-core/src/test/java/org/apache/fury/serializer/collection/SynchronizedSerializersTest.java
index efbe8f3b..522ff969 100644
---
a/java/fury-core/src/test/java/org/apache/fury/serializer/collection/SynchronizedSerializersTest.java
+++
b/java/fury-core/src/test/java/org/apache/fury/serializer/collection/SynchronizedSerializersTest.java
@@ -41,9 +41,9 @@ import org.apache.fury.config.Language;
import org.apache.fury.memory.MemoryBuffer;
import org.apache.fury.memory.MemoryUtils;
import org.apache.fury.memory.Platform;
+import org.apache.fury.reflect.ReflectionUtils;
import org.apache.fury.serializer.Serializer;
import org.apache.fury.test.bean.CollectionFields;
-import org.apache.fury.util.ReflectionUtils;
import org.testng.annotations.Test;
public class SynchronizedSerializersTest extends FuryTestBase {
diff --git
a/java/fury-core/src/test/java/org/apache/fury/serializer/collection/UnmodifiableSerializersTest.java
b/java/fury-core/src/test/java/org/apache/fury/serializer/collection/UnmodifiableSerializersTest.java
index 1f3cc909..62172d3c 100644
---
a/java/fury-core/src/test/java/org/apache/fury/serializer/collection/UnmodifiableSerializersTest.java
+++
b/java/fury-core/src/test/java/org/apache/fury/serializer/collection/UnmodifiableSerializersTest.java
@@ -47,10 +47,10 @@ import org.apache.fury.config.Language;
import org.apache.fury.memory.MemoryBuffer;
import org.apache.fury.memory.MemoryUtils;
import org.apache.fury.memory.Platform;
+import org.apache.fury.reflect.ReflectionUtils;
import org.apache.fury.serializer.Serializer;
import org.apache.fury.test.bean.CollectionFields;
import org.apache.fury.test.bean.MapFields;
-import org.apache.fury.util.ReflectionUtils;
import org.testng.Assert;
import org.testng.annotations.Test;
diff --git
a/java/fury-core/src/test/java/org/apache/fury/type/ClassDefTest.java
b/java/fury-core/src/test/java/org/apache/fury/type/ClassDefTest.java
index 87be80a2..e4bb79f6 100644
--- a/java/fury-core/src/test/java/org/apache/fury/type/ClassDefTest.java
+++ b/java/fury-core/src/test/java/org/apache/fury/type/ClassDefTest.java
@@ -33,7 +33,7 @@ import org.apache.fury.Fury;
import org.apache.fury.FuryTestBase;
import org.apache.fury.memory.MemoryBuffer;
import org.apache.fury.meta.ClassDef;
-import org.apache.fury.util.ReflectionUtils;
+import org.apache.fury.reflect.ReflectionUtils;
import org.testng.annotations.Test;
public class ClassDefTest extends FuryTestBase {
diff --git
a/java/fury-core/src/test/java/org/apache/fury/util/ReflectionUtilsTest.java
b/java/fury-core/src/test/java/org/apache/fury/util/ReflectionUtilsTest.java
index 0bc089d3..5bed7b48 100644
--- a/java/fury-core/src/test/java/org/apache/fury/util/ReflectionUtilsTest.java
+++ b/java/fury-core/src/test/java/org/apache/fury/util/ReflectionUtilsTest.java
@@ -25,6 +25,7 @@ import static org.testng.Assert.assertTrue;
import com.google.common.collect.ImmutableList;
import java.util.List;
+import org.apache.fury.reflect.ReflectionUtils;
import org.apache.fury.test.bean.BeanA;
import org.apache.fury.type.Descriptor;
import org.testng.annotations.Test;
diff --git
a/java/fury-core/src/test/java/org/apache/fury/util/UnsafeFieldAccessorTest.java
b/java/fury-core/src/test/java/org/apache/fury/util/UnsafeFieldAccessorTest.java
index 93bde5de..2796f0ed 100644
---
a/java/fury-core/src/test/java/org/apache/fury/util/UnsafeFieldAccessorTest.java
+++
b/java/fury-core/src/test/java/org/apache/fury/util/UnsafeFieldAccessorTest.java
@@ -21,6 +21,7 @@ package org.apache.fury.util;
import static org.testng.Assert.assertEquals;
+import org.apache.fury.reflect.UnsafeFieldAccessor;
import org.testng.annotations.Test;
public class UnsafeFieldAccessorTest {
diff --git
a/java/fury-format/src/main/java/org/apache/fury/format/encoder/BaseBinaryEncoderBuilder.java
b/java/fury-format/src/main/java/org/apache/fury/format/encoder/BaseBinaryEncoderBuilder.java
index 0a5251f7..a9b6fc48 100644
---
a/java/fury-format/src/main/java/org/apache/fury/format/encoder/BaseBinaryEncoderBuilder.java
+++
b/java/fury-format/src/main/java/org/apache/fury/format/encoder/BaseBinaryEncoderBuilder.java
@@ -62,11 +62,11 @@ import
org.apache.fury.format.row.binary.writer.BinaryRowWriter;
import org.apache.fury.format.row.binary.writer.BinaryWriter;
import org.apache.fury.format.type.DataTypes;
import org.apache.fury.memory.MemoryBuffer;
+import org.apache.fury.reflect.ReflectionUtils;
import org.apache.fury.reflect.TypeRef;
import org.apache.fury.type.TypeUtils;
import org.apache.fury.util.DateTimeUtils;
import org.apache.fury.util.Preconditions;
-import org.apache.fury.util.ReflectionUtils;
import org.apache.fury.util.StringUtils;
/** Base encoder builder for {@link Row}, {@link ArrayData} and {@link
MapData}. */
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]