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 d6fcd50d chore(java): move ClassDef to meta package (#1515)
d6fcd50d is described below

commit d6fcd50d18b1881f08892b534ddce3c040213931
Author: Shawn Yang <[email protected]>
AuthorDate: Mon Apr 15 19:33:24 2024 +0800

    chore(java): move ClassDef to meta package (#1515)
    
    ## What does this PR do?
    
    This PR moved ClassDef from `type` to `meta` package for bettern manage
    meta related classes
    
    ## 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.
    -->
---
 .../src/main/java/org/apache/fury/builder/CodecUtils.java  |  2 +-
 .../src/main/java/org/apache/fury/builder/Generated.java   |  3 ++-
 .../org/apache/fury/builder/MetaSharedCodecBuilder.java    |  2 +-
 .../main/java/org/apache/fury/{type => meta}/ClassDef.java | 14 +++++++++-----
 .../main/java/org/apache/fury/resolver/ClassResolver.java  |  2 +-
 .../main/java/org/apache/fury/resolver/MetaContext.java    |  2 +-
 .../org/apache/fury/serializer/MetaSharedSerializer.java   |  2 +-
 .../apache/fury/serializer/UnexistedClassSerializers.java  |  2 +-
 .../src/main/java/org/apache/fury/type/GenericType.java    |  7 +++++--
 .../src/test/java/org/apache/fury/type/ClassDefTest.java   |  1 +
 10 files changed, 23 insertions(+), 14 deletions(-)

diff --git 
a/java/fury-core/src/main/java/org/apache/fury/builder/CodecUtils.java 
b/java/fury-core/src/main/java/org/apache/fury/builder/CodecUtils.java
index d13be51e..b40e7029 100644
--- a/java/fury-core/src/main/java/org/apache/fury/builder/CodecUtils.java
+++ b/java/fury-core/src/main/java/org/apache/fury/builder/CodecUtils.java
@@ -24,10 +24,10 @@ import java.util.Collections;
 import org.apache.fury.Fury;
 import org.apache.fury.codegen.CodeGenerator;
 import org.apache.fury.codegen.CompileUnit;
+import org.apache.fury.meta.ClassDef;
 import org.apache.fury.resolver.ClassResolver;
 import org.apache.fury.resolver.FieldResolver;
 import org.apache.fury.serializer.Serializer;
-import org.apache.fury.type.ClassDef;
 import org.apache.fury.util.Preconditions;
 
 /** Codec util to create and load jit serializer class. */
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 4e868a30..16822fba 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
@@ -25,6 +25,7 @@ import java.util.Map;
 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.serializer.CompatibleSerializerBase;
 import org.apache.fury.serializer.Serializer;
 import org.apache.fury.util.Preconditions;
@@ -99,7 +100,7 @@ public interface Generated {
     }
   }
 
-  /** Base class for all serializers with meta shared by {@link 
org.apache.fury.type.ClassDef}. */
+  /** Base class for all serializers with meta shared by {@link ClassDef}. */
   abstract class GeneratedMetaSharedSerializer extends GeneratedSerializer 
implements Generated {
     public static final String SERIALIZER_FIELD_NAME = "serializer";
 
diff --git 
a/java/fury-core/src/main/java/org/apache/fury/builder/MetaSharedCodecBuilder.java
 
b/java/fury-core/src/main/java/org/apache/fury/builder/MetaSharedCodecBuilder.java
index 1c72aeae..c16df6d0 100644
--- 
a/java/fury-core/src/main/java/org/apache/fury/builder/MetaSharedCodecBuilder.java
+++ 
b/java/fury-core/src/main/java/org/apache/fury/builder/MetaSharedCodecBuilder.java
@@ -32,12 +32,12 @@ import org.apache.fury.codegen.Expression.Literal;
 import org.apache.fury.config.CompatibleMode;
 import org.apache.fury.config.FuryBuilder;
 import org.apache.fury.memory.MemoryBuffer;
+import org.apache.fury.meta.ClassDef;
 import org.apache.fury.serializer.CodegenSerializer;
 import org.apache.fury.serializer.MetaSharedSerializer;
 import org.apache.fury.serializer.ObjectSerializer;
 import org.apache.fury.serializer.Serializer;
 import org.apache.fury.serializer.Serializers;
-import org.apache.fury.type.ClassDef;
 import org.apache.fury.type.Descriptor;
 import org.apache.fury.type.DescriptorGrouper;
 import org.apache.fury.util.Preconditions;
diff --git a/java/fury-core/src/main/java/org/apache/fury/type/ClassDef.java 
b/java/fury-core/src/main/java/org/apache/fury/meta/ClassDef.java
similarity index 98%
rename from java/fury-core/src/main/java/org/apache/fury/type/ClassDef.java
rename to java/fury-core/src/main/java/org/apache/fury/meta/ClassDef.java
index aee7ab1c..cb34a5bf 100644
--- a/java/fury-core/src/main/java/org/apache/fury/type/ClassDef.java
+++ b/java/fury-core/src/main/java/org/apache/fury/meta/ClassDef.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.fury.type;
+package org.apache.fury.meta;
 
 import static org.apache.fury.type.TypeUtils.COLLECTION_TYPE;
 import static org.apache.fury.type.TypeUtils.MAP_TYPE;
@@ -48,6 +48,10 @@ import org.apache.fury.memory.MemoryBuffer;
 import org.apache.fury.memory.MemoryUtils;
 import org.apache.fury.resolver.ClassResolver;
 import org.apache.fury.serializer.CompatibleSerializer;
+import org.apache.fury.type.Descriptor;
+import org.apache.fury.type.DescriptorGrouper;
+import org.apache.fury.type.FinalObjectTypeStub;
+import org.apache.fury.type.GenericType;
 import org.apache.fury.util.MurmurHash3;
 import org.apache.fury.util.Platform;
 import org.apache.fury.util.Preconditions;
@@ -634,7 +638,7 @@ public class ClassDef implements Serializable {
   static FieldType buildFieldType(ClassResolver classResolver, Field field) {
     Preconditions.checkNotNull(field);
     Class<?> rawType = field.getType();
-    boolean isFinal = GenericType.defaultFinalPredicate.test(rawType);
+    boolean isFinal = GenericType.isFinalByDefault(rawType);
     if (Collection.class.isAssignableFrom(rawType)) {
       GenericType genericType = GenericType.build(field.getGenericType());
       return new CollectionFieldType(
@@ -672,7 +676,7 @@ public class ClassDef implements Serializable {
   private static FieldType buildFieldType(ClassResolver classResolver, 
GenericType genericType) {
     Preconditions.checkNotNull(genericType);
     boolean isFinal = genericType.isMonomorphic();
-    if (COLLECTION_TYPE.isSupertypeOf(genericType.typeToken)) {
+    if (COLLECTION_TYPE.isSupertypeOf(genericType.getTypeToken())) {
       return new CollectionFieldType(
           isFinal,
           buildFieldType(
@@ -680,7 +684,7 @@ public class ClassDef implements Serializable {
               genericType.getTypeParameter0() == null
                   ? GenericType.build(Object.class)
                   : genericType.getTypeParameter0()));
-    } else if (MAP_TYPE.isSupertypeOf(genericType.typeToken)) {
+    } else if (MAP_TYPE.isSupertypeOf(genericType.getTypeToken())) {
       return new MapFieldType(
           isFinal,
           buildFieldType(
@@ -694,7 +698,7 @@ public class ClassDef implements Serializable {
                   ? GenericType.build(Object.class)
                   : genericType.getTypeParameter1()));
     } else {
-      Short classId = classResolver.getRegisteredClassId(genericType.cls);
+      Short classId = classResolver.getRegisteredClassId(genericType.getCls());
       if (classId != null && classId != ClassResolver.NO_CLASS_ID) {
         return new RegisteredFieldType(isFinal, classId);
       } else {
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 ad60e9af..6d2d0743 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
@@ -97,6 +97,7 @@ import org.apache.fury.exception.InsecureException;
 import org.apache.fury.logging.Logger;
 import org.apache.fury.logging.LoggerFactory;
 import org.apache.fury.memory.MemoryBuffer;
+import org.apache.fury.meta.ClassDef;
 import org.apache.fury.serializer.ArraySerializers;
 import org.apache.fury.serializer.BufferSerializers;
 import org.apache.fury.serializer.CodegenSerializer.LazyInitBeanSerializer;
@@ -133,7 +134,6 @@ import 
org.apache.fury.serializer.scala.SingletonCollectionSerializer;
 import org.apache.fury.serializer.scala.SingletonMapSerializer;
 import org.apache.fury.serializer.scala.SingletonObjectSerializer;
 import org.apache.fury.serializer.shim.ShimDispatcher;
-import org.apache.fury.type.ClassDef;
 import org.apache.fury.type.Descriptor;
 import org.apache.fury.type.GenericType;
 import org.apache.fury.type.ScalaTypes;
diff --git 
a/java/fury-core/src/main/java/org/apache/fury/resolver/MetaContext.java 
b/java/fury-core/src/main/java/org/apache/fury/resolver/MetaContext.java
index 75d29bd8..13ae1853 100644
--- a/java/fury-core/src/main/java/org/apache/fury/resolver/MetaContext.java
+++ b/java/fury-core/src/main/java/org/apache/fury/resolver/MetaContext.java
@@ -23,7 +23,7 @@ import java.util.ArrayList;
 import java.util.List;
 import org.apache.fury.collection.IdentityObjectIntMap;
 import org.apache.fury.memory.MemoryBuffer;
-import org.apache.fury.type.ClassDef;
+import org.apache.fury.meta.ClassDef;
 
 /**
  * Context for sharing class meta across multiple serialization. Class name, 
field name and field
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 a0d407bc..bc2644f6 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
@@ -36,10 +36,10 @@ import org.apache.fury.collection.Tuple3;
 import org.apache.fury.config.CompatibleMode;
 import org.apache.fury.config.FuryBuilder;
 import org.apache.fury.memory.MemoryBuffer;
+import org.apache.fury.meta.ClassDef;
 import org.apache.fury.resolver.ClassInfoHolder;
 import org.apache.fury.resolver.ClassResolver;
 import org.apache.fury.resolver.RefResolver;
-import org.apache.fury.type.ClassDef;
 import org.apache.fury.type.Descriptor;
 import org.apache.fury.type.DescriptorGrouper;
 import org.apache.fury.type.Generics;
diff --git 
a/java/fury-core/src/main/java/org/apache/fury/serializer/UnexistedClassSerializers.java
 
b/java/fury-core/src/main/java/org/apache/fury/serializer/UnexistedClassSerializers.java
index 3a92838c..09d22f78 100644
--- 
a/java/fury-core/src/main/java/org/apache/fury/serializer/UnexistedClassSerializers.java
+++ 
b/java/fury-core/src/main/java/org/apache/fury/serializer/UnexistedClassSerializers.java
@@ -32,12 +32,12 @@ import org.apache.fury.collection.Tuple3;
 import org.apache.fury.config.CompatibleMode;
 import org.apache.fury.config.Config;
 import org.apache.fury.memory.MemoryBuffer;
+import org.apache.fury.meta.ClassDef;
 import org.apache.fury.resolver.ClassInfo;
 import org.apache.fury.resolver.ClassInfoHolder;
 import org.apache.fury.resolver.ClassResolver;
 import org.apache.fury.resolver.MetaContext;
 import org.apache.fury.resolver.RefResolver;
-import org.apache.fury.type.ClassDef;
 import org.apache.fury.type.Descriptor;
 import org.apache.fury.type.DescriptorGrouper;
 import org.apache.fury.type.Generics;
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 84f2802a..bc1b3ac8 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
@@ -36,9 +36,8 @@ 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.
-@SuppressWarnings("UnstableApiUsage")
 public class GenericType {
-  static final Predicate<Type> defaultFinalPredicate =
+  private static final Predicate<Type> defaultFinalPredicate =
       type -> {
         if (type.getClass() == Class.class) {
           return ReflectionUtils.isMonomorphic(((Class<?>) type));
@@ -215,4 +214,8 @@ public class GenericType {
   public String toString() {
     return "GenericType{" + typeToken.toString() + '}';
   }
+
+  public static boolean isFinalByDefault(Class<?> cls) {
+    return defaultFinalPredicate.test(cls);
+  }
 }
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 07891ff4..87be80a2 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
@@ -32,6 +32,7 @@ import java.util.TreeSet;
 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.testng.annotations.Test;
 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to