1208 Fixed WriteConflict when using transactional MongoRepository. Writing to the
public interface CustomValueComparator<T> {
...
/**
- This flag is used to indicate to Javers whether
- a comparator implementation wants to handle nulls.
*
- By default, the flag is false and Javers
- checks if both values are non-null before calling a comparator.
- If any of given values is null — Javers compares them using the
- standard Java logic:
- * null == null
- null != non-null
- If the flag is true — Javers skips that logic and
- allows a comparator to handle nulls on its own.
- In that case, a comparator holds responsibility for null-safety.
*
- @see NullAsBlankStringComparator
*/
default boolean handlesNulls() {
return false;
}
}
2 collection is now skipped when RANDOM commitId generator is selected. The fix requires enabling the RANDOM CommitId generator. RANDOM CommitId generator should always be used when multiple instances of Javers write to the same database.
javers:
commitIdGenerator: random
7.2.0released on 2023-07-16 - 1306 Added posibility to configure properties as shallow references via
`
public interface CustomValueComparator<T> {
...
/
7.1.0released on 2023-07-12 - 1300 Fixed issue with connecting to Mongo on Spring Boot 3.1.0.
- Dependencies aligned with Spring Boot 3.1.0:
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
7.0.3released on 2023-07-11 - 1287 Fixed bug in interpreting the
`
public interface CustomValueComparator<T> {
...
/
7.0.2released on 2023-07-09 - 1213 Performance optimization in SQL repository. The number of calls to
`
public interface CustomValueComparator<T> {
...
/
7.0.1released on 2023-06-18 - 1298 Guava version bump as Guava < 32.0 is marked as vulnerable to CVE-2023-2976.
7.0.0released on 2023-04-24 1238 Added compatibility with Spring Boot 3.0. Time to say goodbye to our beloved Java 8. Spring Boot 3.0 has moved forward and is no longer compatible with Java 8. Now, Spring Boot 3.0 requires Java 17 — so we all need to catch up. Since Javers 7.0, all Javers Spring integration modules require Java 17: `
public interface CustomValueComparator<T> {
...
/
`
public interface CustomValueComparator<T> {
...
/
`
public interface CustomValueComparator<T> {
...
/
@Bean
JaversBuilderPlugin javersBuilderPlugin() { return builder -> builder
.registerValue(BigDecimal.class, new CustomBigDecimalComparator(2));
}
6 springVersion =5.3.10
springBootVersion =2.5.5
springDataCommonsVersion=2.5.5
springDataMongoVersion =3.2.5
springSecurityVersion =5.5.2
mongoDbDriverVersion =4.2.3
hibernateVersion =5.4.32.Final
guavaVersion =31.0-jre
gsonVersion =2.8.8
classgraphVersion =4.8.128
0
Javers core and Javers persistence modules require Java 11: springVersion =5.3.10
springBootVersion =2.5.5
springDataCommonsVersion=2.5.5
springDataMongoVersion =3.2.5
springSecurityVersion =5.5.2
mongoDbDriverVersion =4.2.3
hibernateVersion =5.4.32.Final
guavaVersion =31.0-jre
gsonVersion =2.8.8
classgraphVersion =4.8.128
1 springVersion =5.3.10
springBootVersion =2.5.5
springDataCommonsVersion=2.5.5
springDataMongoVersion =3.2.5
springSecurityVersion =5.5.2
mongoDbDriverVersion =4.2.3
hibernateVersion =5.4.32.Final
guavaVersion =31.0-jre
gsonVersion =2.8.8
classgraphVersion =4.8.128
2 springVersion =5.3.10
springBootVersion =2.5.5
springDataCommonsVersion=2.5.5
springDataMongoVersion =3.2.5
springSecurityVersion =5.5.2
mongoDbDriverVersion =4.2.3
hibernateVersion =5.4.32.Final
guavaVersion =31.0-jre
gsonVersion =2.8.8
classgraphVersion =4.8.128
3:
The last version of Javers that is compatible with Java 8 and Spring Boot 2 is 6.14.0.
We strongly recommend to upgrade to Javers 7.x. You can still use Javers 6.14.0, but the 6.x line is frozen and no longer supported. Migration from Javers 6.x to Javers 7.x
6.14.0released on 2023-03-31 - 1230 Fixed bug in JaversBuilder. Scanned classes were ignoring custom value comparators for their properties.
6.13.0released on 2023-03-22 - 1252 The internal GSON config is tuned to better map numeric values with Object type.
6.12.0released on 2023-03-17 - 1257 Added option for implementing application-Layer encryption of Snapshot State in SQL repository. See usage in Case1257ApplicationLayerEncryption.groovy
6.10.0released on 2023-02-17
7.0.0-RC3released on 2023-02-03
6.9.1released on 2023-02-01 - 1254 Added possibility to customize the HEAD collection name in MongoRepository.
Usage: MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSnapshotCollectionName("jv_custom_snapshots")
.withHeadCollectionName("jv_custom_head_id")
.build())
See also MongoE2EWithCustomHeadCollectionNameTest.groovy
6.8.2released on 2023-01-02 - Dependencies aligned with Spring Boot 2.7.7:
springVersion =5.3.24
springBootVersion =2.7.7
springDataCommonsVersion=2.7.6
springDataMongoVersion =3.4.6
springSecurityVersion =5.7.6
mongoDbDriverVersion =4.6.1
hibernateVersion =5.6.14.Final
guavaVersion =31.0-jre
gsonVersion =2.9.0
classgraphVersion =4.8.128
6.8.1released on 2022-12-24 - 1168 Fixed bug related to H2 version 2.0.204.
6.8.0released on 2022-10-26 - 1223 Implemented partial and case-insensitive search for Author and Commit Properties.
6.7.1released on 2022-10-02 - 1222 Fixed validation in
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
02.
6.7.0released on 2022-09-11
6.6.5released on 2022-04-18 - 1200 Fixed
springVersion =5.3.24
springBootVersion =2.7.7
springDataCommonsVersion=2.7.6
springDataMongoVersion =3.4.6
springSecurityVersion =5.7.6
mongoDbDriverVersion =4.6.1
hibernateVersion =5.6.14.Final
guavaVersion =31.0-jre
gsonVersion =2.9.0
classgraphVersion =4.8.128 7 on Java 16 for
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
06,
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
07, and
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
08.
6.6.4released on 2022-04-10 - 1192 Fixed important performance issue for MongoDB. Indexes on the Snapshots collection were not created by the for MongoDB.
This bug was introduced in 6.5.1. It’s enough to upgrade to the latest version and the indexes will be automatically created.
6.6.3released on 2022-03-06 - 1188 Fixed exception
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
09
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
10
when Javers was used with Gson 2.9.0.
6.6.2released on 2022-01-30 - 1180 Fixed NPE in
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
11.
6.6.1released on 2022-01-26
6.6.0released on 2022-01-23 - 1169 Added possibility to configure the name of the Snapshot collection in MongoDB. See MongoE2EWithCustomCollectionNameTest.groovy.
6.5.3released on 2021-12-04 - 1157 Fixed bug when comparing nested sets of Value Objects.
6.5.2released on 2021-11-23 - 1160 Fixed
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
14 when calling
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
15 created by
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
16. - 1075 Added a new feature which allows
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
17 to handle nulls:
public interface CustomValueComparator<T> {
...
/**
- This flag is used to indicate to Javers whether
- a comparator implementation wants to handle nulls.
*
- By default, the flag is false and Javers
- checks if both values are non-null before calling a comparator.
- If any of given values is null — Javers compares them using the
- standard Java logic:
- * null == null
- null != non-null
- If the flag is true — Javers skips that logic and
- allows a comparator to handle nulls on its own.
- In that case, a comparator holds responsibility for null-safety.
*
- @see NullAsBlankStringComparator
*/
default boolean handlesNulls() {
return false;
}
}
6.5.1released on 2021-11-14 springVersion =5.3.10
springBootVersion =2.5.5
springDataCommonsVersion=2.5.5
springDataMongoVersion =3.2.5
springSecurityVersion =5.5.2
mongoDbDriverVersion =4.2.3
hibernateVersion =5.4.32.Final
guavaVersion =31.0-jre
gsonVersion =2.8.8
classgraphVersion =4.8.128
6.4.1released on 2021-10-18 - 912 Added support for querying on a commit property with multiple values using “IN” semantics. Usage:
Javers javers = javers().registerEntity(
EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
0 6.4.0released on 2021-10-16 - 1094 Provided access to old and new Collection, Array, and Map values within
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
21,
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
22, and
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
23 types. For example:
Javers javers = javers().registerEntity(
EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
1 6.3.0released on 2021-10-09 - 1099 Fixed
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
24 when comparing complex Map types with Collections of objects, like:
Javers javers = javers().registerEntity(
EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
2 Since this version, these structures are fully supported. 6.2.5released on 2021-09-05 - 1134 Fixed compatibility issue with the latest Hibernate version 5.6.0.beta1.
- 1130 Fixed bug in
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
25. It returns now the right (new) version of an object.
6.2.4released on 2021-08-24 Javers javers = javers().registerEntity(
EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
3 6.2.3released on 2021-07-04 - Another fix for 1091, solved problem with
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
28 on Java 16.
6.2.2released on 2021-06-19
6.2.1released on 2021-06-13
6.1.1released on 2021-05-23
6.1.0released on 2021-04-25 - 1080 New annotation for auto-audit aspect —
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
36. It allows to call
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
37 on objects returned by method, for example:
Javers javers = javers().registerEntity(
EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
4 or
Javers javers = javers().registerEntity(
EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
5 - 1055 Fixed
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
38 on Oracle.
6.0.1released on 2021-04-07 1082 Changes in Spring dependencies management.
In order to lower the risk of versions clash between dependencies required by Javers’ and dependencies required by an application (you), all Spring dependencies in Javers’ artifacts are marked as optional. It means that Spring and Spring Boot versions are now managed only by an application:
@Bean
JaversBuilderPlugin javersBuilderPlugin() {
return builder -> builder
.registerValue(BigDecimal.class, new CustomBigDecimalComparator(2));
}
6 dependencies:
Javers javers = javers().registerEntity(
EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
6
springVersion =5.3.10
springBootVersion =2.5.5
springDataCommonsVersion=2.5.5
springDataMongoVersion =3.2.5
springSecurityVersion =5.5.2
mongoDbDriverVersion =4.2.3
hibernateVersion =5.4.32.Final
guavaVersion =31.0-jre
gsonVersion =2.8.8
classgraphVersion =4.8.128
0 dependencies:
Javers javers = javers().registerEntity(
EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
7 6.0.0released on 2021-04-05 Javers 6.0 comes with the important upgrade of the diff algorithm: We have redesigned the Javers’ core algorithm — the object diff. Now, it gives better, more meaningful, and consistent results in both
Javers javers = javers().registerEntity(
EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
16 and
Javers javers = javers().registerEntity(
EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
42. The new approach improves the diff results for New and Removed Objects thanks to the explicitly modeled and unified concepts of Initial and Terminal Changes. Now, Javers generates additional set of Initial Changes for each property of a New Object to capture its state. Internally, Javers calculates Initial Changes by comparing a virtual, totally empty object with a real New Object. Symmetrically, additional set of Terminal Changes is generated for each property of a Removed Object. For example, consider the case when a Value Object is added:
Javers javers = javers().registerEntity(
EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
8 Javers 5.x calculates a diff without information about the state of the new Address:
Javers javers = javers().registerEntity(
EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
9 Javers 6.x calculates the essentially better diff:
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
0 So, in Javers 6.0, Value Objects (like
Javers javers = javers().registerEntity(
EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
- are treated more like containers for nested properties owned by Entities and less like objects with their own indentity and type.
Calculating Initial and Terminal Changes is enabled by default. You can disable it using
Javers javers = javers().registerEntity(
EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
44 and
Javers javers = javers().registerEntity(
EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
45, or in
Javers javers = javers().registerEntity(
EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
46, if you are using Javers Spring Boot:
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
1 See the .
See
Javers javers = javers().registerEntity(
EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
45 javadoc. All features and improvements added in Javers 6.0 - 822 Fixed problem with paging in Shadow queries.
Now,
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
48 and
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
49 works intuitively in both
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
50 and
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
Both query methods are unified and generate the same results (now,
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
52 is only the facade for
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
53).
See the . and
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
54 javadoc.- More pretty and concise
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
55, see the . - The new
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
56 method for printing Changes in a technical style. - New or removed Value Objects no longer generate
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
57,
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
58, nor
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
59. These changes were considered rather useless. Instead, a state of a new or removed Value Object is captured by Initial and Terminal Changes. - New or removed Entities always generate
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
57/
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
58 changes (it can’t be disabled). - The
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
62 flag is renamed to
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
63 and it’s enabled by default. - The
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
64 flag is added, and it’s enabled by default. - In
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
42, a
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
57 change is always generated for each initial Snapshot, it can’t be disabled by the
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
63 flag. - The
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
68 method is deprecated and has no effect. - 911 Minor bug fixed, this WARNING is no longer shown: An illegal reflective access operation has occurred.
- 1077 Added support for Composite Id with the
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
69 annotation.
5.15.0released on 2021-03-12 - 939 Added possibility to register Custom JSON TypeAdapters in Spring Boot Starters. See .
5.14.0released on 2020-11-14 - Dependencies aligned with Spring Boot 2.4.0:
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
2 - 1034 Fixed compatibility issues (
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
70 in
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
- with the latest Hibernate.
5.13.2released on 2020-10-26 - 1030 Fixed class cast exception.
- 998 Better javadoc for
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
54,
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
50, and
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
51.
5.13.0 Hacktoberfest 2020 Editionreleased on 2020-10-16 - 1024 Added support for Groovy 3.0.
- 919 Added multi-value filter for querying by changed property:
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
75.
5.12.0released on 2020-09-27 - 1019 Added filters in JQL to select snapshots crteated before/after given UTC timestamp:
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
76 and
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
77.
5.11.2released on 2020-08-31 - 1014 Fixed issue with Shadows with
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
78 properties.
5.11.1released on 2020-07-27 - 940 New method in
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
79 to registering a strategy for dynamic marking classes as ignored.
For example, you can define a custom rule to ignore classes by package name:
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
3 5.10.5released on 2020-07-16 - 941 Added configuration for customizing Javers’ table names in SQL repository.
Javers javers = javers().registerEntity(
EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
80:
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
4 5.10.4released on 2020-07-02 - Fixed bug 958 when querying by
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
81 with minor number (like 1.01) on MongoDB.
5.10.3released on 2020-07-04 - Fixes for 996 and 692 — removed redundant Guava dependency.
5.10.2released on 2020-07-04 - 991 Api vs Implementation — mastering dependencies.
5.10.1released on 2020-06-20 - 988 Fixed: MissingProperty cannot be cast to class java.util.Map
5.10.0released on 2020-06-15 ** Important warning for Spring Boot MongoDB users!** This version of Javers has all dependencies aligned with Spring Boot MongoDB 2.3.0 which has upgraded to MongoDB Java Drivers 4.x. Unfortunately, Mongo Drivers 4.x has a lot of problematic and braking changes, especially renaming
Javers javers = javers().registerEntity(
EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
82 to
Javers javers = javers().registerEntity(
EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
83 (see mongodb.github.io/mongo-java-driver/4.0/upgrading) . If you have explicit dependency to
Javers javers = javers().registerEntity(
EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
84 — remove it and rely on Mongo 4.x drivers provided by a Spring Boot MongoDB starter. If you are using old Spring Boot version (2.1 or older) — you need to upgrade to Spring Boot 2.3.0, otherwise you will probably experience versions clash between your Spring Boot version, and the Spring Boot version imported by the Javers starter. - 982 Fixed issue with
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
85 on on Spring Boot 2.3.0.
Dependencies aligned with Spring Boot 2.3.0:
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
5 5.9.4released on 2020-06-15 ** Important for Spring Boot MongoDB users** This is the last version of Javers compatible with Spring Boot MongoDB 2.1.x and 2.2.x - 981 Added
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
86 annotation to all Javers’ aspects. This change allows users to execute their own aspects before or after Javers’ aspects (by choosing positive ot negative order numbers).
5.9.1released on 2020-05-26 - 973 Fixed strange bug in Gradle build:
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
87 caused probably by
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
88.
5.9.0released on 2020-05-03 springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
6 5.8.13released on 2020-04-07 - 948 Better support for properties with unknown types (with type tokens), like:
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
7 - All JaVers’ dependencies are bumped to the latest versions:
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
8 5.8.12released on 2020-03-31
5.8.11released on 2020-03-08 - 915 Added experimental asynchronous audit aspect for non Spring Data repositories. The aspect asynchronously commits all arguments passed to methods annotated with
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
93 annotation by calling
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
94.
Usage:
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
9 Spring config:
MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSchemaManagementEnabled(false)
.build())
0 See the full test case. 5.8.10released on 2020-02-26 - 938 Fixed bug in custom TypeAdapters priorities.
5.8.9released on 2020-02-07
5.8.8released on 2020-01-18 - 933 Extend Spring props to allow setting size or disabling the latest snapshots cache for MongoDB.
MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSchemaManagementEnabled(false)
.build())
1 5.8.7released on 2019-12-13 - 921 Added support for deleting by Id with the
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
97 aspect:
MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSchemaManagementEnabled(false)
.build())
2 5.8.6released on 2019-12-06 - 925 Fixed bug which caused
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
13 not being invoked for
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
99.
5.8.5released on 2019-11-10 - 910 Fixed
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154 00 in MongoDB springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
01.
5.8.4released on 2019-11-04 MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSchemaManagementEnabled(false)
.build())
3 5.8.3released on 2019-11-02 - 878 Added property to disabling Global Id cache in SQL repository when using JaVers Spring Boot starter:
MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSchemaManagementEnabled(false)
.build())
4 - 709 Added property to provide custom implementation of the
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
06 when using JaVers Spring Boot starter:
MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSchemaManagementEnabled(false)
.build())
5 - 886 Fixed bug causing
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
07: Expected BEGIN_OBJECT but was STRING. The exception was thrown on attempt to read Shadows with a ShallowReference with EmbeddedId (a ShallowReference with an Id-property type mapped to Value Object).
5.8.2released on 2019-10-23 - 894 Better Shadows sorting. Using
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154 08 CommitId generator for distributed apps can cause duplicated
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
81. In this fix, Shadows sorting is unified to be based on springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
10 for both CommitId generators. - Removed throwing
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154 11 in SQL repository. It was thrown only in some scenarios when springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154 08 generator was used, not ensuring the full protections against duplicated CommitId.
After this fix, duplicated CommitIds when using springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154 08 generator are considered as not harmful (although not elegant). To ensure unique CommitIds for distributed apps we recommend switching to springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
14 generator (when your app runs more than one Javers instance).
5.8.1released on 2019-10-21 Custom comparators reinvented Now, a
Javers javers = javers().registerEntity(
EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
13 has to implement the
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
16 method, which is used instead of
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
17 when Values are compared in hashing contexts. Thanks to that, Values with Custom comparators can be correctly compared anywhere, also when they are Set items, Map keys or fields in Value Objects inside Sets.
MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSchemaManagementEnabled(false)
.build())
6 Existing method for registering Custom Value comparatorsis deprecated and left only for backward compatibility. Please switch to the new method.
MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSchemaManagementEnabled(false)
.build())
7 The same applies to
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
18, it also have to implement
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
16 because it extends
Javers javers = javers().registerEntity(
EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
13. This is the breaking change, if you are using a
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
18 you have add
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
16 implementation.
MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSchemaManagementEnabled(false)
.build())
8 Since this version, we stop recommending
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
23 and Custom Types. This warning is added to docs:
MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSchemaManagementEnabled(false)
.build())
9 See updated documentation of . 5.7.7released on 2019-10-03 - 888 Fixed bug (introduced in 5.2.5) when comparing
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154 24 and springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
25.
5.7.6released on 2019-09-28 - 887 Fixed bug (introduced in 5.7.2) which was causing
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
26 ORA-00917: missing comma while inserting to jv_snapshot on Oracle.
5.7.5released on 2019-09-25 - Dependencies bumped to the latest versions:
javers: snapshotCollectionName: "jv_custom_snapshots"
headCollectionName: "jv_custom_head_id"
schemaManagementEnabled: false
0
5.7.4released on 2019-09-19 - 832 Added possibility to use
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154 18 together with springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154 -
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154 29. A custom springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
30 methods is used to compare two Lists without paying attention to ordering and duplicates. Warning! The list comparing algorithm would be slow in this case for large lists because it has n2 complexity.
5.7.2released on 2019-09-11 - 877 Fixed issue with the
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154 31 table primary key sequence for clustered applications. The sequence allocation trick for the springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154 31 table is discontinued. To maintain backward compatibility, since this version, numbers genereted by the springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
31 primary key sequence are multiplied by 100.
5.7.0released on 2019-09-03
5.6.3released on 2019-08-02 - 864 All Spring dependencies are updated. This update is forced by security vulnerability issues in
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154 36 and springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
37. - 860 Fixed
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
38 exception when a getter was inherited both from a superclass and an interface. - 774 Added more descriptive message for
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
38 exception.
5.6.2released on 2019-07-06 - 826 Fixed bug in SQL JaversRepository when DB schema name was configured. The bug was causing:
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
40.
5.6.1released on 2019-07-01 - 855 Fixed bug in
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154 14 springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
42.
5.6.0released on 2019-06-13 - 694 Added possibility in JaVers MongoDB starter to configure a dedicated Mongo database, which is used by Javers. See .
- 775 Fixed issue: Spring Boot stops when SQL Schema Manager can’t establish the connection.
- 851 Fixed exception: java.lang.ClassCastException: class org.javers.core.metamodel.property.MissingProperty cannot be cast to class java.util.List.
5.5.2released on 2019-05-23 - 842 Fixed bug in query with CommitId on Oracle.
5.5.1released on 2019-05-18 - 839 Fixed NPE in
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
43.
5.5.0released on 2019-05-18 - Breaking changes in and constructors of all
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154 44 subclasses. springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154 18 interface is changed from:
javers: snapshotCollectionName: "jv_custom_snapshots"
headCollectionName: "jv_custom_head_id"
schemaManagementEnabled: false
2
to:
javers: snapshotCollectionName: "jv_custom_snapshots"
headCollectionName: "jv_custom_head_id"
schemaManagementEnabled: false
3 springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154 44 objects that are produced by comparators now accept springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154 47 in constructors, for example:
javers: snapshotCollectionName: "jv_custom_snapshots"
headCollectionName: "jv_custom_head_id"
schemaManagementEnabled: false
4 - 830 & 834 Important new feature in PropertyChange. It gained the new enum, which allows to distinguish between ordinary
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154 48 values and the case when a property is added/removed after refactoring:
javers: snapshotCollectionName: "jv_custom_snapshots"
headCollectionName: "jv_custom_head_id"
schemaManagementEnabled: false
5
The new enum can be checked using these four new methods in springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154 44:
javers: snapshotCollectionName: "jv_custom_snapshots"
headCollectionName: "jv_custom_head_id"
schemaManagementEnabled: false
6 - 837 Fixed bug in SQL
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
50 for Oracle and MS SQL databases.
5.4.0released on 2019-05-11 - 625 Composite-Id is now available in JaVers. Multiple properties can be mapped with
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154 51, and the springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
52 is constructed as a Map.
javers:
snapshotCollectionName: "jv_custom_snapshots"
headCollectionName: "jv_custom_head_id"
schemaManagementEnabled: false
7 5.3.6released on 2019-04-10 - 820 Fixed NPE in Levenshtein distance diff algorithm.
5.3.5released on 2019-04-08 - 821 Added basic support for mapping Entity Id-property as ValueObject.
5.3.4released on 2019-03-29 - 815 Fixed
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154 53 thrown by springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
54 function.
5.3.3released on 2019-03-26 - 798 Fixed error when inferring Javers type of an Id-property as Value.
5.3.2released on 2019-03-20 - 810 Fixed issue when comparing Sets with nested Value Objects with
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
55. - 806 Fixed bug in schema management on MS SQL Server.
5.3.1released on 2019-03-16 - 799 Fixed NPE when passing nulls to
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
56.
5.3.0released on 2019-03-16 - 528 Added support for
@Bean
JaversBuilderPlugin javersBuilderPlugin() { return builder -> builder
.registerValue(BigDecimal.class, new CustomBigDecimalComparator(2));
}
9 on Collections and Maps.
5.2.6released on 2019-03-12 - 801, 796 Fixed issues when querying for
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
58 on Oracle and MS SQL.
5.2.5released on 2019-03-10 - 795 Fixed issue when comparing Sets with nested Value Objects.
5.2.4released on 2019-02-26 javers:
snapshotCollectionName: "jv_custom_snapshots"
headCollectionName: "jv_custom_head_id"
schemaManagementEnabled: false
8 5.2.2released on 2019-02-23 - 789 Fixed “error calling Constructor for CustomType” when CustomPropertyComparator is registered for Value’s parent class.
5.2.0released on 2019-02-16 - 751 New aspect annotation
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
97 for triggering
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
29 with each method argument. - 784 Fixed bug in handling
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
24. - 753 Fixed
@Bean
JaversBuilderPlugin javersBuilderPlugin() { return builder -> builder
.registerValue(BigDecimal.class, new CustomBigDecimalComparator(2));
}
8 after refactoring Entity type to Value type. - 769 Fixed NPE in
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
64. - 782 Fixes NPE after upgrading Javers to 5.1. NPE was thrown when committing entities created prior to 5.1.
5.1.3released on 2019-01-25
5.1.2released on 2019-01-07 - 765 Fixed bug in persisting
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
65 in SQL database.
5.1.0released on 2018-12-30 - 743
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154 65 added to springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
70:
javers:
snapshotCollectionName: "jv_custom_snapshots"
headCollectionName: "jv_custom_head_id"
schemaManagementEnabled: false
9 - 761 Fixed
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
71 when deserializing Snapshots of a refactored class. - 762 Fixed Snapshots sorting in MongoRepository when
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
72 is used.
5.0.3released on 2018-12-23 - 45 Fixed bug in SQL
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154 73 in springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
74 when JaVers’ tables are created in public schema. - Added more descriptive message in
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
75 exception.
5.0.1released on 2018-12-05 - Fixes for
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154 18 combined with springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154 77 and springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
29 algorithms.
5.0.0released on 2018-12-01 - JaVers’ Spring integration modules are upgraded to be fully compatible with Spring 5.1 and Spring Boot 2.1.
If you are using Spring 5.x, it’s recommended to use JaVers 5.x. Otherwise you can fall into dependencies version conflict.
Current versions of dependencies:
MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSnapshotCollectionName("jv_custom_snapshots")
.withHeadCollectionName("jv_custom_head_id")
.build())
0 Since now, the last JaVers version compatible with Spring 4 is 3.14.0. - 747 Two breaking changes in
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154 18. Now, it has to implement springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154 80 method, which is used by JaVers to calculate collection-to-collection diff. Return type of springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154 81 method is changed to
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
32. See updated .
MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSnapshotCollectionName("jv_custom_snapshots")
.withHeadCollectionName("jv_custom_head_id")
.build())
1
3.14.0released on 2018-11-10 - All SQL queries are rewritten using the new, faster JaVers SQL framework. Poly JDBC is no longer used for queries (but is still used to schema management). Thanks to that, performance of JaVers commits with SQL repo is significantly better, especially when committing large object graphs.
- Experimental support for DB2 and DB2400 is discontinued.
3.12.4released on 2018-10-27 - 690 Fixed — missing property in *.yml to set SQL database schema name.
3.12.3released on 2018-10-25 - 688 Fixed — missing property in *.yml to set CommitIdGenerator.
3.12.1released on 2018-10-19 - 724 Fixed issue when deserializing Diff from JSON.
3.12.0released on 2018-10-19 MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSnapshotCollectionName("jv_custom_snapshots")
.withHeadCollectionName("jv_custom_head_id")
.build())
2 3.11.7released on 2018-10-11 - 723 Added possibility to load Snapshots even if user’s class is removed. Prevents JaversException TYPE_NAME_NOT_FOUND.
3.11.6released on 2018-09-29 - 712 Fixed issue with auto-audit aspect for JPA CRUD repositories for entities with Id generated by Hibernate (
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
88).
3.11.5released on 2018-09-19 - 717 Added index on
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
89 SQL table to speed up queries by Value Object ID.
3.11.4released on 2018-08-27 - 705 Dependency update. FastClasspathScanner updated to the latest ClassGraph.
3.11.3released on 2018-08-22 - Fixed JaversException PROPERTY_NOT_FOUND reported here.
- Fixed bugs in Maps and Multimaps serialization.
3.11.2released on 2018-08-14 - 697 Fixed issue with Numbers.
3.11.1released on 2018-08-09 - 692 Guava issue is finally fixed.
3.11.0released on 2018-08-04 - 511 Added handling of property type changes in domain classes. Now JaVers is able to load a Snapshot from JaversRepository, even if property types are different in a current domain class.
- 692 Fixed bug in javers-core dependencies. Guava is a truly optional dependency.
3.10.2released on 2018-07-10 - 687 Additional advices for Spring Data Jpa Aspect.
3.10.1released on 2018-07-07 - 682 Fixed JaVers bootstrap error — COMPONENT_NOT_FOUND: JaVers bootstrap error - component of type ‘org.javers.core.CommitIdGenerator’
3.10.0released on 2018-06-22 - Stream API for Shadow queries —
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154 90. Using springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154 91 and springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
92 is the only correct way for paging Shadows (see 658). See the example in ShadowStreamExample.java.
MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSnapshotCollectionName("jv_custom_snapshots")
.withHeadCollectionName("jv_custom_head_id")
.build())
3
3.9.7released on 2018-05-17 - 677 Added support for
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
98 from Spring Data 2.x
3.9.6released on 2018-05-11 - 676 Fixed NPE when comparing List of Value Objects containing nulls.
3.9.5released on 2018-05-09 - 669 Fixed issue with Value Objects stored in Lists and compared using AS_SET algorithm.
3.9.4released on 2018-05-01 - 666 Fixed compatibility with Java9 modulepath.
3.9.3released on 2018-04-26 - 664 Fixed commidDate persistence in MySql. Column type is changed from
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154 99 to MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSchemaManagementEnabled(false)
.build())
00 — milliseconds precision.
3.9.2released on 2018-04-22 - 660 Fixed bug in Shadow query runner.
3.9.1released on 2018-04-19 - 657 Fixed implementaton of
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154 14 springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
42. You can use it in distributed applications:
MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSnapshotCollectionName("jv_custom_snapshots")
.withHeadCollectionName("jv_custom_head_id")
.build())
4 3.9.0released on 2018-04-11 - New API for processing Changes, convenient for formatting a change log. Now you can group changes by commits and by objects. See
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
15. For example:
MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSnapshotCollectionName("jv_custom_snapshots")
.withHeadCollectionName("jv_custom_head_id")
.build())
5 - Fixed bug in
MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSchemaManagementEnabled(false)
.build())
04, which could cause NPE in some corner cases. Especially, for complex graphs with multiple levels of nested Value Objects.
3.8.5released on 2018-03-27 - 648 Mongo driver upgrade to 3.6.3
MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSnapshotCollectionName("jv_custom_snapshots")
.withHeadCollectionName("jv_custom_head_id")
.build())
6 - Added support for customizing date formats in the Diff pretty print. See .
3.8.4released on 2018-03-04 - 638 Fixed NPE in EdgeBuilder.
3.8.3released on 2018-03-02 - 645 Added support for Entity as an Id of another Entity.
3.8.2released on 2018-02-28 - 640 Added scanning of gettres declared in interfaces. See this Spec.
3.8.1released on 2018-02-25 - 542 Added possibility to disable SQL schema auto creation.
The flag MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSchemaManagementEnabled(false)
.build())
05 is added to MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSchemaManagementEnabled(false)
.build())
06. The flag is also available in the for SQL.
3.8.0released on 2018-02-06 - 616 New annotation —
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
94 — for properties whitelisting. See .
3.7.9released on 2018-01-14 - 558 Performance improvement in Hibernate unproxy hook. Now, ShallowReferences can be created without initializing Hibernate proxies.
3.7.8released on 2018-01-05 - Marvin Diaz added support for DB2 and DB2400 (beta).
- Fixed comparing of complex ID values in
MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSchemaManagementEnabled(false)
.build())
08. Now their springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
30 is not used.
3.7.7released on 2017-12-20 - 596 Fixed NullPointerException when commit property value is null (by Sergey Rozhnov).
- 519 Added index on Entity typeName in MongoDB.
3.7.6released on 2017-12-09
3.7.5released on 2017-12-01 - Shadow queries performance optimization. Less DB queries executed for each Deep+ query.
- Changes in Shadow Scopes. Now, JaVers always loads child ValueObjects owned by selected Entities. So there is no need to call
MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSchemaManagementEnabled(false)
.build())
14. See javadoc for MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSchemaManagementEnabled(false)
.build())
15. - Shadow queries execution statistics logger. Enable it:
MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSnapshotCollectionName("jv_custom_snapshots")
.withHeadCollectionName("jv_custom_head_id")
.build())
7 and you will get detailed logs from query execution, for example:
MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSnapshotCollectionName("jv_custom_snapshots")
.withHeadCollectionName("jv_custom_head_id")
.build())
8 Statistics are also available in
MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSchemaManagementEnabled(false)
.build())
16 object that you can get from an executed query:
MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSnapshotCollectionName("jv_custom_snapshots")
.withHeadCollectionName("jv_custom_head_id")
.build())
9 3.7.0released on 2017-11-24 - 605 Compare Lists as Sets. New List comparing algorithm contributed by drakin. See
- 601 Fixed bug in the type mapping algorithm. In this case, an Entity with complex inheritance structure was mapped as Value.
3.6.3released on 2017-11-13 - Changes in Shadow Scopes. Commit-deep+ is renamed to Deep+. See javadoc for
MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSchemaManagementEnabled(false)
.build())
15. Now, deep+ scope doesn’t include commit-deep scope. They are independent scopes. - 597 Second fix for MySQL error: Specified key was too long; max key length is 767 bytes.
3.6.2released on 2017-11-01
3.6.1released on 2017-10-29 - Fix for ValueObject loading in Shadow queries. See .
3.6.0released on 2017-10-05 - 431 Auto-audit aspect also on JpaRepository.saveAndFlush().
This task forced a major refactoring.
MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSchemaManagementEnabled(false)
.build())
24 module was split into two parts: `
public interface CustomValueComparator<T> {
...
/
`
public interface CustomValueComparator<T> {
...
/
If you are using JaVers with MongoDB, you don’t need to change anything. If you are using JaVers with SQL but without Spring Boot, you need to change the
public interface CustomValueComparator<T> {
...
/**
- This flag is used to indicate to Javers whether
- a comparator implementation wants to handle nulls.
*
- By default, the flag is false and Javers
- checks if both values are non-null before calling a comparator.
- If any of given values is null — Javers compares them using the
- standard Java logic:
- * null == null
- null != non-null
- If the flag is true — Javers skips that logic and
- allows a comparator to handle nulls on its own.
- In that case, a comparator holds responsibility for null-safety.
*
- @see NullAsBlankStringComparator
*/
default boolean handlesNulls() {
return false;
}
}
6 dependency to
public interface CustomValueComparator<T> {
...
/**
- This flag is used to indicate to Javers whether
- a comparator implementation wants to handle nulls.
*
- By default, the flag is false and Javers
- checks if both values are non-null before calling a comparator.
- If any of given values is null — Javers compares them using the
- standard Java logic:
- * null == null
- null != non-null
- If the flag is true — Javers skips that logic and
- allows a comparator to handle nulls on its own.
- In that case, a comparator holds responsibility for null-safety.
*
- @see NullAsBlankStringComparator
*/
default boolean handlesNulls() {
return false;
}
}
7. If you are using Spring Boot with our starter (
springVersion =5.3.10
springBootVersion =2.5.5
springDataCommonsVersion=2.5.5
springDataMongoVersion =3.2.5
springSecurityVersion =5.5.2
mongoDbDriverVersion =4.2.3
hibernateVersion =5.4.32.Final
guavaVersion =31.0-jre
gsonVersion =2.8.8
classgraphVersion =4.8.128
0), you don’t need to change anything. Our starters always provide the right configuration. 3.5.2released on 2017-10-05 - 574 Added missing support for
MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSchemaManagementEnabled(false)
.build())
31 in Shadows.
3.5.1released on 2017-09-24 - Dependencies versions update:
springVersion =5.3.24
springBootVersion =2.7.7
springDataCommonsVersion=2.7.6
springDataMongoVersion =3.4.6
springSecurityVersion =5.7.6
mongoDbDriverVersion =4.6.1
hibernateVersion =5.6.14.Final
guavaVersion =31.0-jre
gsonVersion =2.9.0
classgraphVersion =4.8.128
0 3.5.0released on 2017-07-30 - 568 Added the new scope for Shadow queries — commit-depth+. In this scope, JaVers tries to restore an original object graph with (possibly) all object references resolved. See .
3.3.5released on 2017-07-14 - 565 Fixed error when executing query byInstance with HibernateUnproxyObjectAccessHook.
3.3.4released on 2017-07-04 - 560 Fixed NPE when getting empty list of Shadows.
3.3.3released on 2017-06-29 - 548 Added support for classes generated by Google @AutoValue.
3.3.2released on 2017-06-25 - 546 Arrays on Value position are now compared using
MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSchemaManagementEnabled(false)
.build())
32.
3.3.1released on 2017-06-25
3.3.0released on 2017-06-21 at Devoxx PL, Cracow - Added possibility to register a
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
13 function for comparing ValueTypes (it works also for Values stored in Lists, Arrays and Maps). Solved issues: 492, 531.
For example, BigDecimals are (by default) ValueTypes compared using
MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSchemaManagementEnabled(false)
.build())
36. Now, you can compare them in the smarter way, ignoring trailing zeros:
springVersion =5.3.24
springBootVersion =2.7.7
springDataCommonsVersion=2.7.6
springDataMongoVersion =3.4.6
springSecurityVersion =5.7.6
mongoDbDriverVersion =4.6.1
hibernateVersion =5.6.14.Final
guavaVersion =31.0-jre
gsonVersion =2.9.0
classgraphVersion =4.8.128
1 3.2.1released on 2017-06-12 - 32 Fix in PolyJDBC for MySql INSERTS with autoincrement.
3.2.0released on 2017-05-26 - 133 New JQL queries — Shadows. See .
- 455 Fixed error in schema creation on MySQL database with non UTF-8 encoding — MySQL error: Specified key was too long; max key length is 767 bytes
3.1.1released on 2017-05-07 - 532 Added the method to clear sequence allocation in PolyJDBC. See JaversSqlRepositoryevictSequenceAllocationCache().
- 539 Added annotation priorities. Now, Javers’ annotations have priority over JPA annotations.
3.1.0released on 2017-03-27 - 403 Added
MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSchemaManagementEnabled(false)
.build())
31 annotation. Now, property names can be customized which means easier domain classes refactoring. - 27 Fixed resource leak in PolyJDBC.
3.0.5released on 2017-03-24 - 524 Fixed version conflict between Hibernate and Spring Boot. Hibernate version downgraded to 5.0.11.Final
3.0.4released on 2017-03-14 - 505 Empty commits (with zero snapshots) are no longer persisted.
3.0.3released on 2017-03-05 - 507 BigInteger added to the list of well known Value types.
3.0.2released on 2017-03-02 - 501 Fixed exception (Don’t know how to extract Class from type) for complex class hierarchies with generic type variables.
- 499 Fixed problem with hash collision for some method names.
3.0.0 — Java 8 releasereleased on 2017-02-01 We rewrote whole JaVers’ code base from Java 7 to 8.
Now, JaVers is lighter, faster, and more friendly for Java 8 users. Breaking changes Misc - All JaVers’ dependencies are bumped to the latest versions:
springVersion =5.3.24
springBootVersion =2.7.7
springDataCommonsVersion=2.7.6
springDataMongoVersion =3.4.6
springSecurityVersion =5.7.6
mongoDbDriverVersion =4.6.1
hibernateVersion =5.6.14.Final
guavaVersion =31.0-jre
gsonVersion =2.9.0
classgraphVersion =4.8.128
2 - SQL Repository schema migration scripts for JaVers 1.x are removed. Upgrade from JaVers 1.x to 3.0 is still possible, but first run 2.9.x to perform overdue SQL Repository schema migration.
3.0.0-RCreleased on 2017-01-28 2.9.2 — the last version runnable on Java 7 Runtimereleased on 2017-01-25 - 494 Fixed bug in MongoRepository introduced in 2.9.1 (IllegalArgumentException for Boolean JsonPrimitive).
2.9.1released on 2017-01-17 - 489 MongoRepository performance optimization.
2.9.0released on 2017-01-14 -
132 Implemented support for Guava’s Multiset and Multimap.
2.8.2released on 2017-01-03 -
485 Fixed MySQLSyntaxErrorException: Specified key was too long; max key length is 767 bytes when creating indexes on MySQL.
2.8.1released on 2016-12-13 -
475 Fixed concurrency issue in SQL sequence generator resulting in SequenceLimitReachedException: [SEQUENCE_LIMIT_REACHED]
2.8.0released on 2016-12-09 -
476 Added support in
`
public interface CustomValueComparator<T> {
...
/
- This flag is used to indicate to Javers whether
- a comparator implementation wants to handle nulls.
- By default, the flag is false and Javers
- checks if both values are non-null before calling a comparator.
- If any of given values is null — Javers compares them using the
- standard Java logic:
- * null == null
- * null != non-null
- If the flag is true — Javers skips that logic and
- allows a comparator to handle nulls on its own.
- In that case, a comparator holds responsibility for null-safety.
- @see NullAsBlankStringComparator
*/
default boolean handlesNulls() { return false;
}
} 6 for multiple Spring Transaction Managers.
Since now, MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSchemaManagementEnabled(false)
.build())
46 bean should be explicitly provided when configuring MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSchemaManagementEnabled(false)
.build())
`
47 bean:
springVersion =5.3.24
springBootVersion =2.7.7
springDataCommonsVersion=2.7.6
springDataMongoVersion =3.4.6
springSecurityVersion =5.7.6
mongoDbDriverVersion =4.6.1
hibernateVersion =5.6.14.Final
guavaVersion =31.0-jre
gsonVersion =2.9.0
classgraphVersion =4.8.128
3 See full example of . -
461 Fix for
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
30 excepting throw from MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSchemaManagementEnabled(false)
.build())
49 aspect when deleted object not exists in JaversRepository.
2.7.2released on 2016-11-29 -
467 Fixed bug in GlobalId PK cache in SQl Repository. Now, when Spring Transaction Manager rolls back a transaction, the cache is automatically evicted. -
462 Fixed problem with commit property column size in SQL databases. Max length increased from 200 to 600 characters.
2.7.1released on 2016-11-17 -
457 Fixed problem with Bean Mapping Style due to Type Erasure.
2.7.0released on 2016-11-10 -
452 New
MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSchemaManagementEnabled(false)
.build())
50 annotation, see .
2.6.0released on 2016-10-30 -
411 New commitId generator for distributed applications. Now you can use cluster-friendly
MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSchemaManagementEnabled(false)
.build())
51, see MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSchemaManagementEnabled(false)
.build())
52 -
209 Added multi-class query —
MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSchemaManagementEnabled(false)
.build())
53. -
435 Added flags for deactivating auto-audit aspects in Spring Boot starters.
springVersion =5.3.24
springBootVersion =2.7.7
springDataCommonsVersion=2.7.6
springDataMongoVersion =3.4.6
springSecurityVersion =5.7.6
mongoDbDriverVersion =4.6.1
hibernateVersion =5.6.14.Final
guavaVersion =31.0-jre
gsonVersion =2.9.0
classgraphVersion =4.8.128
4 2.5.0released on 2016-10-26 -
412
@Bean
JaversBuilderPlugin javersBuilderPlugin() { return builder -> builder
.registerValue(BigDecimal.class, new CustomBigDecimalComparator(2));
}
9 annotation can now be used for properties. - Empty snapshots for
@Bean
JaversBuilderPlugin javersBuilderPlugin() { return builder -> builder
.registerValue(BigDecimal.class, new CustomBigDecimalComparator(2));
}
9 Entities are no longer created. -
443 Fix for Gson stackoverflow exception when using complex Value types (with circular references).
2.4.1released on 2016-10-18 -
441 UUID added to list of well known ValueTypes.
2.4.0released on 2016-10-12 -
398 Ian Agius contributed a schema support for SQL databases.
2.3.0released on 2016-09-21
2.2.2released on 2016-09-09 -
430 Added
MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSchemaManagementEnabled(false)
.build())
59 on javers bean.
2.2.1released on 2016-09-06
2.1.2released on 2016-08-28 -
416 Added map key dot replacement in MongoRepository. -
415 Key in
MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSchemaManagementEnabled(false)
.build())
69 changed from MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSchemaManagementEnabled(false)
.build())
70 to MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSchemaManagementEnabled(false)
.build())
71.
2.1.1released on 2016-07-30 -
395 Spring Boot version bumped to 1.4.0-RELEASE, fixed MongoDB Driver version conflict between JaVers and spring-data-mongodb.
2.1.0released on 2016-07-28 -
220 New aggregate filter in JQL. Now child ValueObjects can be selected when querying for Entity changes. See . -
408 Added equals() and hashCode() in ContainerElementChange and EntryChange classes.
2.0.4released on 2016-07-23 -
407 Fixed bug that causes PropertyChange.equals() to always return false. -
394 Error message enhancement.
2.0.3released on 2016-06-29 -
396 Fixed javers-spring integration problem: cannot access its superclass org.javers.spring.jpa.JaversTransactionalDecorator.
2.0.2released on 2016-06-17 -
388 Fixed ORA-00972 when creating the JaVers schema in Oracle 12c
2.0.1released on 2016-06-15 -
384 Value-based equals() and hashCode() implemented in concrete Change types -
380 Fixed CLASS_EXTRACTION_ERROR for non-concrete array types (like T[])
2.0.0released on 2016-06-09 JaVers 2.0 comes with major improvements and new features in JQL. Unified semantics of changes and snapshot queries
In JaVers 2.0, change queries work in the same way as snapshot queries and change queries accept all filters. For example, in JaVers 1.x, this change query:
springVersion =5.3.24
springBootVersion =2.7.7
springDataCommonsVersion=2.7.6
springDataMongoVersion =3.4.6
springSecurityVersion =5.7.6
mongoDbDriverVersion =4.6.1
hibernateVersion =5.6.14.Final
guavaVersion =31.0-jre
gsonVersion =2.9.0
classgraphVersion =4.8.128
5 returns empty list, which is not very useful. In JaVers 2.0 this query returns changes introduced by the selected snapshot, so changes between versions 4 and 5 of a given object. JaVers implements change queries on the top of snapshot queries. Change sets are recalculated as a difference between subsequent pairs of snapshots fetched from a JaversRepository. In 1.x, only explicitly selected snapshots are involved in the recalculation algorithm. In 2.0, for each snapshot selected by a user query, JaVers implicitly fetches previous snapshot (if needed). Thanks to that, change queries are far more useful and they work as you could expect. New features - New query for any domain object. See .
-
334 New JQL
MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSchemaManagementEnabled(false)
.build())
72 filter. See . -
305 New JQL
MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSchemaManagementEnabled(false)
.build())
73 filter. See . -
375 Added support for commit properties in auto-audit aspect. See .
SQL Schema migration JaVers 2.0 comes with the new database schema for SQL repository: - table
MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSchemaManagementEnabled(false)
.build())
74 is no longer used - new column
MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSchemaManagementEnabled(false)
.build())
75 - new column
MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSchemaManagementEnabled(false)
.build())
76 - new table
MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSchemaManagementEnabled(false)
.build())
77
JaVers automatically launches a data migration script when old schema is detected. Data from
MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSchemaManagementEnabled(false)
.build())
74 are copied to new columns (
MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSchemaManagementEnabled(false)
.build())
75 and
MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSchemaManagementEnabled(false)
.build())
76). It should take a few seconds for medium size tables but for very large tables it could be time consuming. Breaking changes
The only one breaking change is new semantics of changes query which is actually an improvement. If you are using SQL repository, and your
springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
31 table is large (millions of records), run JaVers 2.0 on your test environment for the first time and check if data migrations is done correctly. 1.6.7released on 2016-05-06 -
368 Improvements in Spring Boot starters.
MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSchemaManagementEnabled(false)
.build())
82 bean is created by default when SpringSecurity is detected on classpath.
1.6.4released on 2016-04-26 -
362 Default behaviour for non-parametrized Collections instead of throwing JaversException: GENERIC_TYPE_NOT_PARAMETRIZED.
1.6.3released on 2016-04-17 -
361 Fixed bug in schema migration for MsSql Server.
1.6.2released on 2016-04-13 -
355 Fixed exception handling in JaversAuditableRepositoryAspect. -
216 JQL - added basic support for nested ValuObjects queries.
1.6.1released on 2016-04-12 -
353 Fixed misleading error message for raw Collections fields. -
18 Fixed resource leak in PolyJDBC, resulting in ORA-01000: maximum open cursors exceeded (Oracle).
1.6.0released on 2016-03-16 -
191 Added support for sets of ValueObjects, SET_OF_VO_DIFF_NOT_IMPLEMENTED exception should not appear anymore.
1.5.1released on 2016-03-04 -
344 Fixed bug in Spring Boot starter for SQL. Dialect autodetection now works properly.
1.5.0released on 2016-02-28 - New JaVers Spring Boot starter for SQL and Spring Data —
springVersion =5.3.10
springBootVersion =2.5.5
springDataCommonsVersion=2.5.5
springDataMongoVersion =3.2.5
springSecurityVersion =5.5.2
mongoDbDriverVersion =4.2.3
hibernateVersion =5.4.32.Final
guavaVersion =31.0-jre
gsonVersion =2.8.8
classgraphVersion =4.8.128
0. See Spring Boot integration. - Starting from this version we use SemVer scheme for JaVers version numbers.
1.4.12released on 2016-02-25 -
341 Fixed bug TyeMapper — infinite loop for certain Type cycles in user classes.
1.4.11released on 2016-02-12 -
333 GroovyObjects support. Now JaVers can be used in Groovy applications. See . springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
55 can be used on class level (for example, GroovyObjects support is implemented by ignoring all properties with MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSchemaManagementEnabled(false)
.build())
85 type). See .-
211 New annotation
@Bean
JaversBuilderPlugin javersBuilderPlugin() { return builder -> builder
.registerValue(BigDecimal.class, new CustomBigDecimalComparator(2));
} 9 added. It can be used as the less radical alternative to springVersion =6.0.3
springBootVersion =3.1.0
springDataCommonsVersion=3.0.0
springDataMongoVersion =4.0.0
springSecurityVersion =6.0.1
mongoDbDriverVersion =4.9.1
hibernateVersion =6.1.6.Final
guavaVersion =32.0.1-jre
gsonVersion =2.10
classgraphVersion =4.8.154
55. See .
1.4.10released on 2016-02-02 -
325 Fixed bug in persisting commitDate in SQL repository. -
249 Fixed bug in JSON deserialization of Id property with Type tokens. -
192 Added support for well-known Java util types:
MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSchemaManagementEnabled(false)
.build())
88, MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSchemaManagementEnabled(false)
.build())
89 and MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSchemaManagementEnabled(false)
.build())
90. -
16 Fixed bug in PolyJDBC sequence generating algorithm.
1.4.7released on 2016-01-29 -
322 New JQL
MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSchemaManagementEnabled(false)
.build())
91 filter for snapshot queries. See .
1.4.5released on 2016-01-25 -
309 New JQL
MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSchemaManagementEnabled(false)
.build())
92 filter for snapshot queries. See .
1.4.4released on 2016-01-20 -
286 New properties in
Javers javers = javers().registerEntity( EntityDefinitionBuilder.entityDefinition(MyEntity.class)
.withShallowProperties(["myShallowProperty"])
.build())
.build()
59: MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSchemaManagementEnabled(false)
.build())
94 and MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSchemaManagementEnabled(false)
.build())
95.
294 Added version number to Snapshot metadata: MongoRepository mongoRepository = new MongoRepository(getMongoDb(),
mongoRepositoryConfiguration()
.withSchemaManagementEnabled(false)
.build())
96. Warning! All snapshots persisted in JaversRepository before release 1.4.4 have version 0. If it isn’t OK for you, run DB update manually. |