Skip to content

Commit 87e6a30

Browse files
committed
Merge branch 'develop' into update-from-template-merged
2 parents 0dcfe5a + eac82f6 commit 87e6a30

File tree

444 files changed

+28941
-118
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

444 files changed

+28941
-118
lines changed

.github/ISSUE_TEMPLATE/bug_report.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ body:
1414
attributes:
1515
label: "Checklist"
1616
options:
17-
- label: "I am able to reproduce the bug with the [latest version](https://github.com/xdev-software/template-placeholder/releases/latest)"
17+
- label: "I am able to reproduce the bug with the [latest version](https://github.com/xdev-software/spring-data-eclipse-store/releases/latest)"
1818
required: true
19-
- label: "I made sure that there are *no existing issues* - [open](https://github.com/xdev-software/template-placeholder/issues) or [closed](https://github.com/xdev-software/template-placeholder/issues?q=is%3Aissue+is%3Aclosed) - which I could contribute my information to."
19+
- label: "I made sure that there are *no existing issues* - [open](https://github.com/xdev-software/spring-data-eclipse-store/issues) or [closed](https://github.com/xdev-software/spring-data-eclipse-store/issues?q=is%3Aissue+is%3Aclosed) - which I could contribute my information to."
2020
required: true
2121
- label: "I have taken the time to fill in all the required details. I understand that the bug report will be dismissed otherwise."
2222
required: true

.github/ISSUE_TEMPLATE/enhancement.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ body:
1212
attributes:
1313
label: "Checklist"
1414
options:
15-
- label: "I made sure that there are *no existing issues* - [open](https://github.com/xdev-software/template-placeholder/issues) or [closed](https://github.com/xdev-software/template-placeholder/issues?q=is%3Aissue+is%3Aclosed) - which I could contribute my information to."
15+
- label: "I made sure that there are *no existing issues* - [open](https://github.com/xdev-software/spring-data-eclipse-store/issues) or [closed](https://github.com/xdev-software/spring-data-eclipse-store/issues?q=is%3Aissue+is%3Aclosed) - which I could contribute my information to."
1616
required: true
1717
- label: "I have taken the time to fill in all the required details. I understand that the feature request will be dismissed otherwise."
1818
required: true

.github/ISSUE_TEMPLATE/question.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ body:
1212
attributes:
1313
label: "Checklist"
1414
options:
15-
- label: "I made sure that there are *no existing issues* - [open](https://github.com/xdev-software/template-placeholder/issues) or [closed](https://github.com/xdev-software/template-placeholder/issues?q=is%3Aissue+is%3Aclosed) - which I could contribute my information to."
15+
- label: "I made sure that there are *no existing issues* - [open](https://github.com/xdev-software/spring-data-eclipse-store/issues) or [closed](https://github.com/xdev-software/spring-data-eclipse-store/issues?q=is%3Aissue+is%3Aclosed) - which I could contribute my information to."
1616
required: true
1717
- label: "I have taken the time to fill in all the required details. I understand that the question will be dismissed otherwise."
1818
required: true

.github/workflows/antora-build.yml

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
name: Antora Documentation Build
2+
3+
on:
4+
workflow_dispatch:
5+
6+
env:
7+
ACTIONS_STEP_DEBUG : true
8+
9+
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
10+
permissions:
11+
contents: read # Read permission for repository contents
12+
pages: write # Write permission for GitHub Pages
13+
id-token: write # Write permission for ID token
14+
15+
jobs:
16+
build:
17+
runs-on: ubuntu-latest
18+
19+
environment:
20+
name: github-pages
21+
22+
steps:
23+
- name: Checkout repository
24+
uses: actions/checkout@v4
25+
26+
- name: Install Node.js
27+
uses: actions/setup-node@v4
28+
with:
29+
node-version: 18
30+
31+
- name: Install Antora and the Antora Lunr Extension
32+
run: npm i antora @antora/lunr-extension
33+
34+
- name: Generate Site
35+
run: npx antora docs/antora-playbook.yml
36+
37+
- name: Setup Pages
38+
uses: actions/configure-pages@v5
39+
40+
- name: Upload artifact
41+
uses: actions/upload-pages-artifact@v3
42+
with:
43+
name: site
44+
path: docs/site
45+
46+
- name: Deploy to GitHub Pages
47+
id: deployment
48+
uses: actions/deploy-pages@v4
49+
with:
50+
token: ${{ secrets.GITHUB_TOKEN }}
51+
artifact_name: site

.github/workflows/check-build.yml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,3 +128,20 @@ jobs:
128128
target/site/css/**
129129
target/site/images/logos/maven-feather.png
130130
target/site/images/external.png
131+
132+
docs:
133+
runs-on: ubuntu-latest
134+
135+
steps:
136+
- uses: actions/checkout@v4
137+
138+
- name: Install Node.js
139+
uses: actions/setup-node@v4
140+
with:
141+
node-version: 18
142+
143+
- name: Install Antora and the Antora Lunr Extension
144+
run: npm i antora @antora/lunr-extension
145+
146+
- name: Generate Site
147+
run: npx antora docs/antora-playbook.yml

.gitignore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,12 @@ hs_err_pid*
6161
.flattened-pom.xml
6262
.tern-project
6363

64+
# EclipseStore
65+
storage
66+
storage-person
67+
storage-invoice
68+
storage-jpa
69+
6470
# == IntelliJ ==
6571
*.iml
6672
*.ipr
@@ -80,3 +86,4 @@ hs_err_pid*
8086
.idea/codeStyles/*
8187
!.idea/codeStyles/codeStyleConfig.xml
8288
!.idea/codeStyles/Project.xml
89+
/spring-data-eclipse-store-demo/storage-complex

.run/Run Benchmark.run.xml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<component name="ProjectRunConfigurationManager">
2+
<configuration default="false" name="Run Benchmark" type="Application" factoryName="Application">
3+
<option name="MAIN_CLASS_NAME" value="software.xdev.spring.data.eclipse.store.benchmark.BenchmarkRunner" />
4+
<module name="spring-data-eclipse-store-benchmark" />
5+
<option name="VM_PARAMETERS" value="--add-opens java.base/java.util=ALL-UNNAMED" />
6+
<extension name="coverage">
7+
<pattern>
8+
<option name="PATTERN" value="software.xdev.spring.data.eclipse.store.benchmark.benchmarks.simple.user.*" />
9+
<option name="ENABLED" value="true" />
10+
</pattern>
11+
</extension>
12+
<method v="2">
13+
<option name="Make" enabled="true" />
14+
</method>
15+
</configuration>
16+
</component>

.run/Run Complex Demo.run.xml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<component name="ProjectRunConfigurationManager">
2+
<configuration default="false" name="Run Complex Demo" type="Application" factoryName="Application">
3+
<option name="MAIN_CLASS_NAME" value="software.xdev.spring.data.eclipse.store.demo.complex.ComplexDemoApplication" />
4+
<module name="spring-data-eclipse-store-demo" />
5+
<option name="VM_PARAMETERS" value="--add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.time=ALL-UNNAMED" />
6+
<option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
7+
<extension name="coverage">
8+
<pattern>
9+
<option name="PATTERN" value="software.xdev.*" />
10+
<option name="ENABLED" value="true" />
11+
</pattern>
12+
</extension>
13+
<method v="2">
14+
<option name="Make" enabled="true" />
15+
</method>
16+
</configuration>
17+
</component>

.run/Run Dual Storage Demo.run.xml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<component name="ProjectRunConfigurationManager">
2+
<configuration default="false" name="Run Dual Storage Demo" type="Application" factoryName="Application">
3+
<option name="MAIN_CLASS_NAME" value="software.xdev.spring.data.eclipse.store.demo.dual.storage.DualStorageDemoApplication" />
4+
<module name="spring-data-eclipse-store-demo" />
5+
<option name="VM_PARAMETERS" value="--add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.time=ALL-UNNAMED --add-exports java.base/jdk.internal.misc=ALL-UNNAMED" />
6+
<option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
7+
<extension name="coverage">
8+
<pattern>
9+
<option name="PATTERN" value="software.xdev.*" />
10+
<option name="ENABLED" value="true" />
11+
</pattern>
12+
</extension>
13+
<method v="2">
14+
<option name="Make" enabled="true" />
15+
</method>
16+
</configuration>
17+
</component>

.run/Run Demo.run.xml renamed to .run/Run JPA Demo.run.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<component name="ProjectRunConfigurationManager">
2-
<configuration default="false" name="Run Demo" type="Application" factoryName="Application">
3-
<option name="MAIN_CLASS_NAME" value="software.xdev.Application" />
4-
<module name="template-placeholder-demo" />
2+
<configuration default="false" name="Run JPA Demo" type="Application" factoryName="Application">
3+
<option name="MAIN_CLASS_NAME" value="software.xdev.spring.data.eclipse.store.jpa.JpaDemoApplication" />
4+
<module name="spring-data-eclipse-store-jpa" />
55
<option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
66
<extension name="coverage">
77
<pattern>

.run/Run Simple Demo.run.xml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<component name="ProjectRunConfigurationManager">
2+
<configuration default="false" name="Run Simple Demo" type="Application" factoryName="Application">
3+
<option name="MAIN_CLASS_NAME" value="software.xdev.spring.data.eclipse.store.demo.simple.SimpleDemoApplication" />
4+
<module name="spring-data-eclipse-store-demo" />
5+
<option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
6+
<extension name="coverage">
7+
<pattern>
8+
<option name="PATTERN" value="software.xdev.*" />
9+
<option name="ENABLED" value="true" />
10+
</pattern>
11+
</extension>
12+
<method v="2">
13+
<option name="Make" enabled="true" />
14+
</method>
15+
</configuration>
16+
</component>

CHANGELOG.md

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
# 2.0.0
2+
3+
* Restructured root to improve performance with IDs in entities
4+
* Implemented auto migration for older version (<2.0.0).
5+
Added [XDEV MicroMigration](https://github.com/xdev-software/micro-migration) as dependency.
6+
* Updated EclipseStore version to 1.4.0
7+
* Updated Spring to version 3.3.2
8+
9+
# 1.0.10
10+
11+
* Optimistic locking with @Version now possible
12+
13+
# 1.0.9
14+
15+
* Inherited entities with repositories are now realized by reading (finding coherent repositories) and not by writing
16+
* Multiple restarts of the storage at initial startup is now fixed
17+
18+
# 1.0.8
19+
20+
* Entities with same ID are replaced on saved and not added
21+
* Updated Spring to version 3.3.1
22+
23+
# 1.0.7
24+
25+
* QueryByExample now possible
26+
* Performance optimizations
27+
* It's now possible to use multiple repositories with the same class/entity
28+
29+
# 1.0.6
30+
31+
* Fixed problem with missing configuration
32+
33+
# 1.0.5
34+
35+
* Added support for transactions
36+
37+
# 1.0.4
38+
39+
* Added possibility to use multiple storages
40+
* Added Lazy support
41+
42+
# 1.0.3
43+
44+
* Added the EclipseStoreDataImporter to import data from JPA repositories.
45+
* Updated EclipseStore to version 1.2.0
46+
* Updated Spring to version 3.2.3
47+
48+
# 1.0.2
49+
50+
* Added the EclipseStoreCustomRepository which has no methods defined at all.
51+
* EclipseStoreRepository extends the Crud- and PagingAndSorting-Repository (just like the
52+
org.springframework.data.jpa.repository.JpaRepository).
53+
54+
# 1.0.1
55+
56+
* Fix for NullPointerException when storing an entity with Auto-ID and no previous action on the database.
57+
* Provide multiple Repository Interfaces, not only EclipseStoreRepository (e.g. EclipseStoreCrudRepository).
58+
59+
# 1.0.0
60+
61+
* Initial release
62+

CONTRIBUTING.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,10 @@ You should have the following things installed:
3434
* Ensure that the JDK/Java-Version is correct
3535

3636

37-
## Releasing [![Build](https://img.shields.io/github/actions/workflow/status/xdev-software/template-placeholder/release.yml?branch=master)](https://github.com/xdev-software/template-placeholder/actions/workflows/release.yml)
37+
## Releasing [![Build](https://img.shields.io/github/actions/workflow/status/xdev-software/spring-data-eclipse-store/release.yml?branch=master)](https://github.com/xdev-software/spring-data-eclipse-store/actions/workflows/release.yml)
3838

3939
Before releasing:
40-
* Consider doing a [test-deployment](https://github.com/xdev-software/template-placeholder/actions/workflows/test-deploy.yml?query=branch%3Adevelop) before actually releasing.
40+
* Consider doing a [test-deployment](https://github.com/xdev-software/spring-data-eclipse-store/actions/workflows/test-deploy.yml?query=branch%3Adevelop) before actually releasing.
4141
* Check the [changelog](CHANGELOG.md)
4242

4343
If the ``develop`` is ready for release, create a pull request to the ``master``-Branch and merge the changes

README.md

Lines changed: 79 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,89 @@
1-
[![Latest version](https://img.shields.io/maven-central/v/software.xdev/template-placeholder?logo=apache%20maven)](https://mvnrepository.com/artifact/software.xdev/template-placeholder)
2-
[![Build](https://img.shields.io/github/actions/workflow/status/xdev-software/template-placeholder/check-build.yml?branch=develop)](https://github.com/xdev-software/template-placeholder/actions/workflows/check-build.yml?query=branch%3Adevelop)
3-
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=xdev-software_template-placeholder&metric=alert_status)](https://sonarcloud.io/dashboard?id=xdev-software_template-placeholder)
1+
[![Latest version](https://img.shields.io/maven-central/v/software.xdev/spring-data-eclipse-store?logo=apache%20maven)](https://mvnrepository.com/artifact/software.xdev/spring-data-eclipse-store)
2+
[![Build](https://img.shields.io/github/actions/workflow/status/xdev-software/spring-data-eclipse-store/check-build.yml?branch=develop)](https://github.com/xdev-software/spring-data-eclipse-store/actions/workflows/check-build.yml?query=branch%3Adevelop)
3+
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=xdev-software_spring-data-eclipse-store&metric=alert_status)](https://sonarcloud.io/dashboard?id=xdev-software_spring-data-eclipse-store)
4+
[![Documentation](https://img.shields.io/maven-central/v/software.xdev/spring-data-eclipse-store?label=docs)](https://spring-eclipsestore.xdev.software/)
45

5-
# template-placeholder
6+
<div align="center">
7+
<img src="assets/Logo.png" height="200" alt="XDEV Spring-Data Eclipse-Store Logo">
8+
</div>
69

10+
# spring-data-eclipse-store
711

8-
## Installation
9-
[Installation guide for the latest release](https://github.com/xdev-software/template-placeholder/releases/latest#Installation)
12+
A library to simplify using [EclipseStore](https://eclipsestore.io/) in the [Spring environment](https://spring.io/projects/spring-data/).
13+
14+
What makes this library special is, that it creates a working copy of the data.
15+
This way EclipseStore behaves almost exactly like relational database from a coding perspective.
16+
17+
## Features
18+
19+
The library provides following features:
20+
21+
* Enforces the
22+
**[Spring data repository concept](https://docs.spring.io/spring-data/jpa/reference/repositories/core-concepts.html)**
23+
for EclipseStore by
24+
using [working copies](https://xdev-software.github.io/spring-data-eclipse-store/working-copies.html)
25+
* **[Drop in compatible](https://xdev-software.github.io/spring-data-eclipse-store/installation.html#drop-in-compatible)** for your existing Spring application
26+
* Utilizes **ultra-fast EclipseStore serializing and storing**
27+
* Enables your application to **select
28+
any [EclipseStore target](https://docs.eclipsestore.io/manual/storage/storage-targets/index.html)** (e.g.
29+
[PostgreSQL](https://docs.eclipsestore.io/manual/storage/storage-targets/sql-databases/postgresql.html),
30+
[AWS S3](https://docs.eclipsestore.io/manual/storage/storage-targets/blob-stores/aws-s3.html) or
31+
[IBM COS](https://github.com/xdev-software/eclipse-store-afs-ibm-cos))
32+
* Can save up to **99%[^1] of monthly costs** in the IBM Cloud and up to 82%[^2] in the AWS Cloud
33+
34+
[^1]:If the COS Connector is used in the IBM Cloud instead of a PostgreSQL and approx. 10,000 entries with a total size
35+
of 1
36+
GB of data are stored. ([IBM Cloud Pricing](https://cloud.ibm.com/estimator/estimates), as of 08.01.2024)
37+
38+
[^2]: If the S3 connector is used instead of DynamoDB under the same conditions at
39+
AWS. ([AWS Pricing Calculator](https://calculator.aws/#/estimate?id=ab85cddf77f0d1aa0457111ed82785dfb836b1d8), as of
40+
08.01.2024)
41+
42+
## Installation & Usage
43+
44+
[**Installation
45+
guide** for the latest release](https://github.com/xdev-software/spring-data-eclipse-store/releases/latest#Installation)
46+
47+
[**Detailed
48+
instructions** are in the documentation](https://xdev-software.github.io/spring-data-eclipse-store/installation.html)
49+
50+
### Supported versions
51+
52+
| Spring-Data-Eclipse-Store | Java | Spring Data | EclipseStore |
53+
|---------------------------|--------|-------------|--------------|
54+
| ``<= 1.0.2`` | ``17`` | ``3.2.2`` | ``1.1.0`` |
55+
| ``1.0.3/1.0.4`` | ``17`` | ``3.2.3`` | ``1.2.0`` |
56+
| ``1.0.5-1.0.7`` | ``17`` | ``3.2.5`` | ``1.3.2`` |
57+
| ``1.0.8-1.0.10`` | ``17`` | ``3.3.1`` | ``1.3.2`` |
58+
| ``>= 2.0.0`` | ``17`` | ``3.3.2`` | ``1.4.0`` |
59+
60+
## Demo
61+
62+
To see how easy it is to implement EclipseStore in your Spring project, take a look at
63+
the [demos](./spring-data-eclipse-store-demo):
64+
65+
* [Simple demo](https://github.com/xdev-software/spring-data-eclipse-store/tree/develop/spring-data-eclipse-store-demo/src/main/java/software/xdev/spring/data/eclipse/store/demo/simple)
66+
* [Complex demo](https://github.com/xdev-software/spring-data-eclipse-store/tree/develop/spring-data-eclipse-store-demo/src/main/java/software/xdev/spring/data/eclipse/store/demo/complex)
67+
* [Demo with coexisting JPA](https://github.com/xdev-software/spring-data-eclipse-store/tree/develop/spring-data-eclipse-store-jpa/src/main/java/software/xdev/spring/data/eclipse/store/jpa)
68+
* [Dual storage demo](https://github.com/xdev-software/spring-data-eclipse-store/tree/develop/spring-data-eclipse-store-demo/src/main/java/software/xdev/spring/data/eclipse/store/demo/dual/storage)
69+
70+
> [!NOTE]
71+
> Since the library is using reflection to copy data, the following JVM-Arguments may have to be set:
72+
> ```
73+
> --add-opens=java.base/java.util=ALL-UNNAMED
74+
> --add-exports java.base/jdk.internal.misc=ALL-UNNAMED
75+
> --add-opens=java.base/java.lang=ALL-UNNAMED
76+
> --add-opens=java.base/java.time=ALL-UNNAMED
77+
> ```
1078
1179
## Support
12-
If you need support as soon as possible and you can't wait for any pull request, feel free to use [our support](https://xdev.software/en/services/support).
80+
81+
If you need support as soon as possible, and you can't wait for any pull request, feel free to
82+
use [our support](https://xdev.software/en/services/support).
1383
1484
## Contributing
1585
See the [contributing guide](./CONTRIBUTING.md) for detailed instructions on how to get started with our project.
1686
1787
## Dependencies and Licenses
18-
View the [license of the current project](LICENSE) or the [summary including all dependencies](https://xdev-software.github.io/template-placeholder/dependencies)
88+
89+
View the [license of the current project](LICENSE).

SECURITY.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22

33
## Reporting a Vulnerability
44

5-
Please report a security vulnerability [on GitHub Security Advisories](https://github.com/xdev-software/template-placeholder/security/advisories/new).
5+
Please report a security vulnerability [on GitHub Security Advisories](https://github.com/xdev-software/spring-data-eclipse-store/security/advisories/new).

assets/Logo.png

45.2 KB
Loading

0 commit comments

Comments
 (0)