Estoy tratando de configurar Javers usando un repositorio MongoDB. Estoy usando la versión 2.9.1 tanto para javers-core como para javers-persistence-mongo .
Sin embargo, cuando intento confirmar una entidad con un campo booleano, se lanza la siguiente excepción:
java.lang.IllegalArgumentException: unsupported JsonElement type - JsonPrimitive at org.javers.repository.mongo.DocumentConverter.fromJsonElement(DocumentConverter.java:71) ~[javers-persistence-mongo-2.9.1.jar:?] at org.javers.repository.mongo.DocumentConverter.toDocument(DocumentConverter.java:20) ~[javers-persistence-mongo-2.9.1.jar:?] at org.javers.repository.mongo.DocumentConverter.fromJsonElement(DocumentConverter.java:39) ~[javers-persistence-mongo-2.9.1.jar:?] at org.javers.repository.mongo.DocumentConverter.toDocument(DocumentConverter.java:20) ~[javers-persistence-mongo-2.9.1.jar:?] at org.javers.repository.mongo.MongoRepository.writeToDBObject(MongoRepository.java:200) ~[javers-persistence-mongo-2.9.1.jar:?] at org.javers.repository.mongo.MongoRepository.persistSnapshots(MongoRepository.java:217) ~[javers-persistence-mongo-2.9.1.jar:?] at org.javers.repository.mongo.MongoRepository.persist(MongoRepository.java:74) ~[javers-persistence-mongo-2.9.1.jar:?] at org.javers.repository.api.JaversExtendedRepository.persist(JaversExtendedRepository.java:109) ~[javers-core-2.9.1.jar:?] at org.javers.core.JaversCore.commit(JaversCore.java:83) ~[javers-core-2.9.1.jar:?] at org.javers.core.JaversCore.commit(JaversCore.java:65) ~[javers-core-2.9.1.jar:?] Mirando el método private static Object fromJsonElement(JsonElement jsonElement) en javers-persistence-mongo-2.9.1/DocumentConverter , solo hay métodos de conversión para JsonPrimitives String y Number (no Boolean).
¿Me estoy perdiendo alguna configuración aquí?
MWE:
public static void main(final String[] args) { final TestEntity testEntity = new TestEntity(); testEntity.id = 12345L; testEntity.testBoolean = true; final MongoClient mongoClient = new MongoClient(...); final Javers javers = JaversBuilder.javers() .registerJaversRepository(new MongoRepository(mongoClient.getDatabase(...))).build(); javers.commit("testAuthor", testEntity); // Throws IllegalArgumentException } @Entity static class TestEntity { @Id Long id; Boolean testBoolean; }Este es un error introducido en 2.9.1. Vea el progreso de la corrección de errores en este número https://github.com/javers/javers/issues/494
(editado) Corregido en 2.9.2