|
1 | 1 | # Java Object Diff |
2 | 2 |
|
3 | | -An easy-to-use Framework to detect and handle differences between Java objects. |
| 3 | +An easy-to-use Framework to find and handle differences between Java objects. |
4 | 4 |
|
5 | 5 | ## Getting Started |
6 | 6 |
|
7 | | -To learn how to use **java-object-diff**, please have a look at the short [starter guide](https://github.com/SQiShER/java-object-diff/wiki/Getting-Started). |
| 7 | +To learn how to use **Java Object Diff**, please have a look at the short [starter guide](https://github.com/SQiShER/java-object-diff/wiki/Getting-Started). |
8 | 8 |
|
9 | 9 | ## Use Cases |
10 | 10 |
|
11 | | -This Framework is currently used to… |
| 11 | +**Java Object Diff** is currently used to… |
12 | 12 |
|
13 | 13 | * Generate Facebook-like activity streams |
14 | 14 | * Visualize the differences between two object versions |
15 | 15 | * Automatically resolve conflicts on concurrent database writes |
16 | 16 | * Detect and persist only properties that actually changed |
17 | 17 |
|
18 | | -None one of these solutions comes out-of-the-box, though. But this Framework was the solid foundation, that made them very easy to realize. |
| 18 | +Even though none one of the above solutions comes out-of-the-box, this framework made them very easy to realize. |
19 | 19 |
|
20 | 20 | ## Feature List |
21 | 21 |
|
22 | 22 | * Generates a graph of your object, allowing you to build powerful visitors to suit your needs. |
23 | 23 | * Works with every kind of object, so no need to change a thing. |
24 | | -* Can be configured entirely from the outside. No annotations needed. (Although they make it much more convenient.) |
| 24 | +* Can be configured entirely from the outside. No annotations needed. (Although they exist and make it more convenient.) |
| 25 | +* Properties can be grouped into categories, to easily compare specific groups of properties. |
25 | 26 | * No dependencies except for SLF4J. |
26 | 27 |
|
27 | | -## Disclaimer |
| 28 | +## Note |
28 | 29 |
|
29 | | -Although I use this Framework in a rather complex project of mine, I'm sure there are still lots of corner cases, that I didn't discover myself. Fortunately, the simple API makes it very easy for you, to quickly test it out on your own set of objects. |
| 30 | +Although I successfully use this framework in a rather complex project for quite a while now, I'm sure there are still many |
| 31 | +edge cases, that I didn't even think about. Fortunately, the simple API makes it easy for you, to test it on your own set of |
| 32 | +objects, to see if it works for you. |
30 | 33 |
|
31 | | -## Known Issues and Ways to Improve |
| 34 | +## Ways to Improve |
32 | 35 |
|
33 | 36 | * Performance optimization was not the biggest concern so far, so there is still some room for improvement. |
34 | 37 | * Object comparison is very strict. Objects with different types cannot be compared, even when they share the same interface. |
35 | | -* Arrays are treated poorly |
36 | 38 | * The annotations should be applied to fields instead of methods. (Would make it easier to handle Arrays.) |
| 39 | +* It would be great to integrate a text-based diff algorithm for regular Strings. |
37 | 40 | * Documentation, documentation, documentation... |
| 41 | + |
| 42 | +## Known Issues and |
| 43 | + |
| 44 | +* Arrays are treated poorly (Actually not at all. Yet.) |
| 45 | +* Objects serving as map keys should be compared as well. Currently their only purpose is to identify map values. |
0 commit comments