diff --git a/.gitignore b/.gitignore index 3f9fde51b..5575323a1 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,5 @@ out *~ # OS X generated file .DS_Store +# Claude Code +CLAUDE.md diff --git a/core/pom.xml b/core/pom.xml index ad8b24252..65053e5e8 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -91,6 +91,12 @@ true + + org.openjdk.jol + jol-core + test + + org.jboss.marshalling jboss-marshalling diff --git a/core/src/main/java/org/infinispan/protostream/annotations/impl/ProtoMessageTypeMetadata.java b/core/src/main/java/org/infinispan/protostream/annotations/impl/ProtoMessageTypeMetadata.java index 84644d890..6e3beaad9 100644 --- a/core/src/main/java/org/infinispan/protostream/annotations/impl/ProtoMessageTypeMetadata.java +++ b/core/src/main/java/org/infinispan/protostream/annotations/impl/ProtoMessageTypeMetadata.java @@ -10,7 +10,8 @@ import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; -import java.util.LinkedList; + + import java.util.List; import java.util.Map; import java.util.Optional; @@ -80,7 +81,7 @@ public class ProtoMessageTypeMetadata extends ProtoTypeMetadata { private XMethod unknownFieldSetSetter; - private final Map innerTypes = new HashMap<>(); + private final List innerTypes = new ArrayList<>(); protected ProtoMessageTypeMetadata(BaseProtoSchemaGenerator protoSchemaGenerator, XClass annotatedClass, XClass javaClass) { super(getProtoName(annotatedClass, javaClass), javaClass); @@ -159,7 +160,7 @@ public SortedMap getFields() { } protected void addInnerType(ProtoTypeMetadata typeMetadata) { - innerTypes.put(typeMetadata.getJavaClass(), typeMetadata); + innerTypes.add(typeMetadata); } @Override @@ -192,13 +193,13 @@ public void generateProto(IndentWriter iw, ProtoSyntax syntax) { reserved.generate(iw); - for (ProtoTypeMetadata t : innerTypes.values()) { + for (ProtoTypeMetadata t : innerTypes) { t.generateProto(iw, syntax); } - LinkedList unprocessedFields = new LinkedList<>(fieldsByNumber.values()); + List unprocessedFields = new ArrayList<>(fieldsByNumber.values()); while (!unprocessedFields.isEmpty()) { - ProtoFieldMetadata f = unprocessedFields.remove(); + ProtoFieldMetadata f = unprocessedFields.remove(0); if (f.getOneof() == null) { f.generateProto(iw, syntax); } else { diff --git a/core/src/main/java/org/infinispan/protostream/descriptors/AnnotatedDescriptor.java b/core/src/main/java/org/infinispan/protostream/descriptors/AnnotatedDescriptor.java index 8345fb370..cebe3fc2f 100644 --- a/core/src/main/java/org/infinispan/protostream/descriptors/AnnotatedDescriptor.java +++ b/core/src/main/java/org/infinispan/protostream/descriptors/AnnotatedDescriptor.java @@ -37,8 +37,11 @@ public interface AnnotatedDescriptor { /** * Return the documentation text associated with this descriptor. * - * @return the documentation text or {@code null} if not present + * @return always {@code null}, documentation is no longer retained after annotation parsing + * @deprecated Documentation is no longer retained. Use {@link #getAnnotations()} or + * {@link #getProcessedAnnotation(String)} to access parsed annotation data. */ + @Deprecated(forRemoval = true) String getDocumentation(); /** diff --git a/core/src/main/java/org/infinispan/protostream/descriptors/Descriptor.java b/core/src/main/java/org/infinispan/protostream/descriptors/Descriptor.java index 764d3a2ab..c37ff4004 100644 --- a/core/src/main/java/org/infinispan/protostream/descriptors/Descriptor.java +++ b/core/src/main/java/org/infinispan/protostream/descriptors/Descriptor.java @@ -118,6 +118,11 @@ void setFileDescriptor(FileDescriptor fileDescriptor) { for (FieldDescriptor fieldDescriptor : fields) { fieldDescriptor.setFileDescriptor(fileDescriptor); } + for (OneOfDescriptor oneOf : oneofs) { + for (FieldDescriptor fieldDescriptor : oneOf.getFields()) { + fieldDescriptor.setFileDescriptor(fileDescriptor); + } + } for (Descriptor nested : nestedMessageTypes) { nested.setFileDescriptor(fileDescriptor); } diff --git a/core/src/main/java/org/infinispan/protostream/descriptors/EnumValueDescriptor.java b/core/src/main/java/org/infinispan/protostream/descriptors/EnumValueDescriptor.java index 5c5d409c6..927009c40 100644 --- a/core/src/main/java/org/infinispan/protostream/descriptors/EnumValueDescriptor.java +++ b/core/src/main/java/org/infinispan/protostream/descriptors/EnumValueDescriptor.java @@ -18,7 +18,6 @@ public final class EnumValueDescriptor { private String fullName; private String scopedName; // the name of this enum value constant in its scope private final int number; - private final String documentation; private final List + + org.openjdk.jol + jol-core + ${version.jol} + test + + org.apache.maven maven-core