Just wanted to add that the Java reflection is able to fetch the enum like in the example I posted earlier:
Class<?> myClass = AvroTest.class; Class<?>[] declaredClasses = myClass.getDeclaredClasses(); Then loop through declaredClasses, check if its 'isEnum()', if yes - 'getName()' and 'getEnumConstants()' to get name and values. Regards, Bagi On Wed, 2 Apr 2025, 09:31 Bagi, <[email protected]> wrote: > Hi Martin, > > Many thanks for your reply. I am not saying it's behaving incorrectly, > just trying to find a way to have the enum shown in the schema. I have > class like that, where there is enum defined but not the field with its > type. I only just started with Avro and wanted to check if that is > possible. Right now, my schema is incomplete. > > Regards, Bagi > > On Wed, 2 Apr 2025, 07:22 Martin Grigorov, <[email protected]> wrote: > >> Hi, >> >> IMO it behaves correctly! >> >> AvroTest class is mapped to a Record schema and its class fields are >> mapped to record fields. >> >> What kind of schema do you expect to be generated without the fields? >> >> On Tue, 1 Apr 2025 at 13:07, Bagi <[email protected]> wrote: >> >>> Hi, >>> >>> Newb here. Having an issue with generating the schema when there is an >>> enum at the top of the tree. Using Avro 1.12.0, I am trying to generate >>> .avsc file from Java class file, using the following command: >>> ReflectData.get().getSchema(AvroTest.class); >>> >>> Here is the AvroTest.java: >>> public class AvroTest { >>> public enum MyEnum { >>> ENONE, ENTWO, ENTHREE; >>> } >>> } >>> >>> The ReflectData is ignoring this enum. Workaround is to add field with >>> that enum to the class, ie. >>> private MyEnum myEnum; >>> >>> Is there any other way to force the enum to be added to the generated >>> schema? Perhaps something similar to @AvroName annotation but for enums? >>> >>> Regards, Bagi >>> >>
