Allows to diff any two Java objects and retrieve the diff result as a list of strings. The result is a unified diff without any contextual lines.
- Java 1.6 or higher
- dependencies see maven pom
SomeDomainObjectbase = getPersistedObject();
SomeDomainObjectworking = getManipulatedObject();
Configurationconfiguration = newConfiguration()
.excludeProperty("someUnwantedPropertyName")
.useSerializer(newSomeSerializer())
.useComparator(newSomeComparator())
.useNaturalOrderingFor(SomeComparable.class)
.useBaseObjectName("BaseObject")
.useWorkingObjectName("WorkingObject");
List<String> differences = newDiffer(configuration).diff(base, working);
for (Stringdiff : differences) {
System.out.println(diff);
}
...--- BaseObject+++ WorkingObject@@ -1,1 +1,4 @@-SomeDomainObject.someIntegerProperty='21'+SomeDomainObject.someIntegerProperty='42'+SomeDomainObject.someIterableProperty[0]='foo'+SomeDomainObject.someIterableProperty[1]='bar'+SomeDomainObject.someMapProperty['someMapKey']='someMapValue'
...For more details have a look at the wiki.