I have a package "com.test"
It has 2 classes:
public class Employee { private String name; private String id; private Long age; private Currency salaryCurrency; private Double pay; private isActive; private Type type = Type.CONTRACT; //getter setters }
public enum Type { CONTRACT,PERMANENT; }
When I try to encode I get no codec found for Type.
PS i created custom CurrencyCodec
Employee emp = new Employee(); emp.setType(Type.PERMANENT); emp.setAge(30); emp.setName("TestUser"); PojoCodecProvider builder = PojoCodecProvider.builder().conventions(Conventions .DEFAULT_CONVENTIONS) .automatic(false).register("com.test").build(); CodecRegistry pojoCodecRegistry = CodecRegistries.fromRegistries(fromProviders(builder), fromCodecs(new LongCodec(),new CurrencyCodec(), new StringCodec(), new DateCodec(), new BooleanCodec(), new DoubleCodec())); emp.setId(UUID.randomUUID().toString()); Codec<Employee> st = builder.get(Employee.class,pojoCodecRegistry); BsonDocument doc = new BsonDocument(); st.encode(new BsonDocumentWriter(doc),emp, EncoderContext.builder().isEncodingCollectibleDocument(true).build ());