Skip to content

Commit d58011a

Browse files
Features update
1 parent 5b8235f commit d58011a

File tree

2 files changed

+18
-15
lines changed

2 files changed

+18
-15
lines changed

_includes/features-sidebar.html

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,13 @@
77
Features overview
88
</a>
99
<ul class="nav nav-stacked list-unstyled {% if page.submenu != 'features' %} hidden {% endif %}">
10-
<li><a href="#object-diff">Object diff</a></li>
11-
<li><a href="#javers-repository">Javers Repository</a></li>
12-
<li><a href="#json-serialization">JSON Serialization</a></li>
10+
<li><a href="#data-audit">Data audit</a></li>
11+
12+
<li><a class="nested" href="#database-Independent-Audit-Model">Database-Independent Audit Model</a></li>
13+
<li><a class="nested" href="#Advanced-Domain-Modeling">Advanced Domain Modeling</a></li>
14+
<li><a class="nested" href="#jql">JaVers Query Language (JQL)</a></li>
15+
<li><a class="nested" href="#spring-integration">Spring and Spring Boot Integration</a></li>
16+
17+
<li><a href="#object-diff">Object diff</a></li>
1318
</ul>
1419
</section>

features.md

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -35,21 +35,23 @@ fields and relationships. JaVers stores these updates as immutable Snapshots
3535
in dedicated tables or collections within your application database.
3636
This gives you full access to historical data for auditing, debugging, and compliance
3737

38-
### Database-Independent Audit Model
38+
<h3 id="database-Independent-Audit-Model">Database-Independent Audit Model</h3>
3939

4040
JaVers offers a database-agnostic approach to data auditing
4141
based on the [`JaversRepository`]({{ site.github_core_main_url }}org/javers/repository/api/JaversRepository.java) abstraction.
4242

43-
* **JSON-Based Snapshots:** Unlike table-oriented tools (like Envers), JaVers uses an **object-oriented approach**, storing snapshots as JSON documents in a unified structure.
44-
* **Decoupled Persistence:** Because it relies on JSON serialization, audit data is decoupled from live data [7]. This allows you to store audit logs in a different database than the application data if desired (e.g., application in SQL, JaVers in MongoDB).
4543
* **Supported Databases:** JaVers supports MongoDB and the following SQL databases: Oracle, PostgreSQL, Microsoft SQL Server, MySQL/MariaDB, and H2.
44+
* **JSON-Based Snapshots:** Unlike table-oriented tools (like Envers), JaVers uses an **object-oriented approach** and stores object Snapshots as JSON documents in a unified structure.
45+
* **Decoupled Persistence:** Because it relies on JSON serialization, audit data is decoupled from live data [7]. This allows you to store audit logs in a different database than the application data if desired (e.g., application in SQL, JaVers in MongoDB).
46+
* **Custom JSON serialization:** JaVers has a well-designed and customizable JSON serialization and deserialization module, based on
47+
[`GSON`](https://code.google.com/p/google-gson/) and Java reflection, see [custom JSON serialization](/documentation/repository-configuration#custom-json-serialization).
4648

4749
See [Repository Configuration](/documentation/repository-configuration) documentation.
4850

4951
If you are using another database, for example Cassandra, you are encouraged to implement
5052
the `JaversRepository` interface and contribute it to Javers project.
5153

52-
### Advanced Data Modeling
54+
<h3 id="Advanced-Domain-Modeling">Advanced Domain Modeling</h3>
5355

5456
* **Domain Model Mapping:** JaVers identifies objects based on Domain-Driven Design (DDD) principles, distinguishing between **Entities** (with unique IDs) and **Value Objects** (identified by their path from a parent entity).
5557
* **Flexible Mapping Configuration**: JaVers provides multiple ways to configure how domain objects are audited (mapped to Snapshots) and compared. You can use annotations, fluent API configuration, or default conventions to fine-tune auditing behavior without modifying your persistence model.
@@ -59,7 +61,8 @@ the `JaversRepository` interface and contribute it to Javers project.
5961

6062
See [Domain Configuration](/documentation/domain-configuration) documentation.
6163

62-
### JaVers Query Language (JQL)
64+
<h3 id="jql">JaVers Query Language (JQL)</h3>
65+
6366
With JaVers, you can easily browse the change history
6467
of your domain objects, seeing when a change occurred,
6568
who made it, and the values before and after.
@@ -72,7 +75,8 @@ who made it, and the values before and after.
7275

7376
See the [JaVers Query Language](/documentation/jql-examples) documentation.
7477

75-
### Excellent Spring and Spring Boot Integration**
78+
<h3 id="spring-integration">Excellent Spring and Spring Boot Integration</h3>
79+
7680
* **Spring Boot Starters**: JaVers offers Spring Boot starters for SQL and MongoDB with sensible default configurations. These starters let you integrate JaVers into your Spring Data applications with minimal manual setup.
7781
* **Auto-Audit Aspects**: For Spring Data repositories, you can enable full data auditing with a single annotation: `@JaversSpringDataAuditable`. JaVers will then automatically track changes to objects whenever they are created, updated, or deleted. For non–Spring Data repositories, you can use the method-level `@JaversAuditable` annotation to capture changes automatically.
7882
* **Transaction Management**: It integrates with Spring's transaction management, ensuring that audit logs are committed or rolled back alongside application data.
@@ -113,12 +117,6 @@ and [Spring Boot Integration](/documentation/spring-boot-integration) documentat
113117

114118
* Take a look at [repository examples](/documentation/repository-examples).
115119

116-
<h3 id="json-serialization">JSON serialization</h3>
117-
JaVers has a well-designed and customizable JSON serialization and deserialization module, based on
118-
[`GSON`](https://code.google.com/p/google-gson/) and Java reflection.
119-
Your data changes (object Snapshots) are stored in a database as JSON,
120-
with minimal mapping configuration (see [custom JSON serialization](/documentation/repository-configuration#custom-json-serialization)).
121-
122120
<h2 id="object-diff">Object diff</h2>
123121
JaVers object diff is the easiest way to deeply compare two object graphs.
124122

0 commit comments

Comments
 (0)