Skip to content

Commit 9613cc5

Browse files
committed
Merge branch 'develop' into update-from-template-merged
2 parents f9d8378 + 2fee73a commit 9613cc5

File tree

380 files changed

+25424
-53
lines changed

Some content is hidden

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

380 files changed

+25424
-53
lines changed

.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
@@ -91,3 +91,20 @@ jobs:
9191

9292
- name: Run Checkstyle
9393
run: ./mvnw -B checkstyle:check -P checkstyle -T2C
94+
95+
docs:
96+
runs-on: ubuntu-latest
97+
98+
steps:
99+
- uses: actions/checkout@v4
100+
101+
- name: Install Node.js
102+
uses: actions/setup-node@v4
103+
with:
104+
node-version: 18
105+
106+
- name: Install Antora and the Antora Lunr Extension
107+
run: npm i antora @antora/lunr-extension
108+
109+
- name: Generate Site
110+
run: npx antora docs/antora-playbook.yml

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,12 @@ target/
6666
.flattened-pom.xml
6767
.tern-project
6868

69+
# EclipseStore
70+
storage
71+
storage-person
72+
storage-invoice
73+
storage-jpa
74+
6975
# == IntelliJ ==
7076
*.iml
7177
*.ipr

.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: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# 1.0.7
2+
3+
* QueryByExample now possible
4+
* Performance optimizations
5+
* It's now possible to use multiple repositories with the same class/entity
6+
7+
# 1.0.6
8+
9+
* Fixed problem with missing configuration
10+
11+
# 1.0.5
12+
13+
* Added support for transactions
14+
15+
# 1.0.4
16+
17+
* Added possibility to use multiple storages
18+
* Added Lazy support
19+
20+
# 1.0.3
21+
22+
* Added the EclipseStoreDataImporter to import data from JPA repositories.
23+
* Updated EclipseStore to version 1.2.0
24+
* Updated Spring to version 3.2.3
25+
26+
# 1.0.2
27+
28+
* Added the EclipseStoreCustomRepository which has no methods defined at all.
29+
* EclipseStoreRepository extends the Crud- and PagingAndSorting-Repository (just like the
30+
org.springframework.data.jpa.repository.JpaRepository).
31+
32+
# 1.0.1
33+
34+
* Fix for NullPointerException when storing an entity with Auto-ID and no previous action on the database.
35+
* Provide multiple Repository Interfaces, not only EclipseStoreRepository (e.g. EclipseStoreCrudRepository).
36+
37+
# 1.0.0
38+
39+
* Initial release
40+

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: 75 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,85 @@
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)
44

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

9+
# spring-data-eclipse-store
710

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

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)