Skip to content

Commit 4c18977

Browse files
hrstoyanovromain-grecourt
authored andcommitted
Upgrade to Microstream 08.01.02-MS-GA and the integration with Eclipse Store 1.2.0
1 parent 7296040 commit 4c18977

File tree

50 files changed

+3664
-19
lines changed

Some content is hidden

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

50 files changed

+3664
-19
lines changed

THIRD_PARTY_LICENSES.txt

Lines changed: 60 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ Fourth Party Runtime Dependencies
3131
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
3232
CDI-API RedHat, Inc., JBoss community
3333
Apache 2.0
34-
Used by: [helidon-health-checks, helidon-integrations-cdi-datasource, helidon-integrations-cdi-datasource-hikaricp, helidon-integrations-cdi-datasource-ucp, helidon-integrations-cdi-delegates, helidon-integrations-cdi-eclipselink, helidon-integrations-cdi-hibernate, helidon-integrations-cdi-jpa, helidon-integrations-cdi-jta, helidon-integrations-cdi-jta-weld, helidon-integrations-cdi-reference-counted-context, helidon-integrations-micrometer-cdi, helidon-integrations-micronaut-cdi, helidon-integrations-micronaut-data, helidon-integrations-microstream-cdi, helidon-integrations-oci-sdk-cdi, helidon-integrations-vault-cdi, helidon-jersey-client, helidon-messaging-aq, helidon-messaging-jms, helidon-messaging-kafka, helidon-messaging-mock, helidon-messaging-wls-jms, helidon-microprofile-config, helidon-microprofile-cors, helidon-microprofile-fault-tolerance, helidon-microprofile-metrics, helidon-microprofile-server, helidon-microprofile-service-common, helidon-microprofile-telemetry, helidon-microprofile-tracing, helidon-microprofile-websocket, weld-se-core]
34+
Used by: [helidon-health-checks, helidon-integrations-cdi-datasource, helidon-integrations-cdi-datasource-hikaricp, helidon-integrations-cdi-datasource-ucp, helidon-integrations-cdi-delegates, helidon-integrations-cdi-eclipselink, helidon-integrations-cdi-hibernate, helidon-integrations-cdi-jpa, helidon-integrations-cdi-jta, helidon-integrations-cdi-jta-weld, helidon-integrations-cdi-reference-counted-context, helidon-integrations-micrometer-cdi, helidon-integrations-micronaut-cdi, helidon-integrations-micronaut-data, helidon-integrations-microstream-cdi, helidon-integrations-eclipsestore-cdi, helidon-integrations-oci-sdk-cdi, helidon-integrations-vault-cdi, helidon-jersey-client, helidon-messaging-aq, helidon-messaging-jms, helidon-messaging-kafka, helidon-messaging-mock, helidon-messaging-wls-jms, helidon-microprofile-config, helidon-microprofile-cors, helidon-microprofile-fault-tolerance, helidon-microprofile-metrics, helidon-microprofile-server, helidon-microprofile-service-common, helidon-microprofile-telemetry, helidon-microprofile-tracing, helidon-microprofile-websocket, weld-se-core]
3535
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
3636
Jakarta CDI API (jakarta.enterprise:jakarta.enterprise.cdi-api)
3737
Copyright 2010, 2016, Red Hat, Inc., and individual contributors
@@ -1069,7 +1069,7 @@ See full text at the bottom of this document for license: Apache-2.0
10691069
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
10701070
Jakarta Annotations API Eclipse Foundation
10711071
Eclipse Public License 2.0 + GPL v.2 with CPE
1072-
Used by: [helidon-bundles-config, helidon-config, helidon-config-hocon, helidon-config-mp, helidon-config-tests-module-mappers-1-base, helidon-config-tests-module-mappers-2-override, helidon-config-tests-module-parsers-1-override, helidon-config-tests-test-bundle, helidon-config-yaml, helidon-config-yaml-mp, helidon-http-encoding, helidon-inject-api, helidon-inject-configdriven-runtime, helidon-inject-configdriven-tests-config, helidon-inject-configdriven-tests-configuredby, helidon-inject-configdriven-tests-configuredby-application, helidon-inject-maven-plugin, helidon-inject-runtime, helidon-inject-tests-interception, helidon-inject-tests-resources-inject, helidon-inject-tests-resources-plain, helidon-inject-tests-tck-jsr330, helidon-inject-tools, helidon-integrations-cdi-datasource, helidon-integrations-cdi-datasource-hikaricp, helidon-integrations-cdi-datasource-ucp, helidon-integrations-cdi-jpa, helidon-integrations-cdi-jta, helidon-integrations-micronaut-cdi-processor, helidon-integrations-micronaut-data, helidon-integrations-microstream-cdi, helidon-integrations-oci-sdk-cdi, helidon-integrations-oci-sdk-tests-test-application, helidon-integrations-oci-sdk-tests-test-module1, helidon-integrations-oci-sdk-tests-test-module2, helidon-integrations-oci-tls-certificates, helidon-jersey-client, helidon-messaging-mock, helidon-microprofile-fault-tolerance, helidon-microprofile-telemetry, weld-se-core]
1072+
Used by: [helidon-bundles-config, helidon-config, helidon-config-hocon, helidon-config-mp, helidon-config-tests-module-mappers-1-base, helidon-config-tests-module-mappers-2-override, helidon-config-tests-module-parsers-1-override, helidon-config-tests-test-bundle, helidon-config-yaml, helidon-config-yaml-mp, helidon-http-encoding, helidon-inject-api, helidon-inject-configdriven-runtime, helidon-inject-configdriven-tests-config, helidon-inject-configdriven-tests-configuredby, helidon-inject-configdriven-tests-configuredby-application, helidon-inject-maven-plugin, helidon-inject-runtime, helidon-inject-tests-interception, helidon-inject-tests-resources-inject, helidon-inject-tests-resources-plain, helidon-inject-tests-tck-jsr330, helidon-inject-tools, helidon-integrations-cdi-datasource, helidon-integrations-cdi-datasource-hikaricp, helidon-integrations-cdi-datasource-ucp, helidon-integrations-cdi-jpa, helidon-integrations-cdi-jta, helidon-integrations-micronaut-cdi-processor, helidon-integrations-micronaut-data, helidon-integrations-microstream-cdi, helidon-integrations-eclipsestore-cdi, helidon-integrations-oci-sdk-cdi, helidon-integrations-oci-sdk-tests-test-application, helidon-integrations-oci-sdk-tests-test-module1, helidon-integrations-oci-sdk-tests-test-module2, helidon-integrations-oci-tls-certificates, helidon-jersey-client, helidon-messaging-mock, helidon-microprofile-fault-tolerance, helidon-microprofile-telemetry, weld-se-core]
10731073
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
10741074
Jakarta Annotations API (jakarta.annotation:jakarta.annotation-api)
10751075
Copyright (c) 2009, 2022 Oracle and/or its affiliates. All rights reserved.
@@ -8305,6 +8305,64 @@ Fourth Party Runtime Dependencies
83058305
EPL-2.0
83068306
-----------------------------------------
83078307
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
8308+
eclipsestore-storage-embedded-configuration Microstream Software
8309+
Eclipse Public License 2.0
8310+
Used by: [helidon-integrations-eclipsestore]
8311+
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
8312+
8313+
1. The following files are available in source code form under the Eclipse Public License at:
8314+
https://github.com/eclipsestore/store/
8315+
(The EPL license is reproduced below).
8316+
2. All past Contributors to the Eclipsestore project disclaim all warranties and
8317+
conditions, express and implied, including warranties or conditions of title and
8318+
non-infringement, and implied warranties or conditions of merchantability and
8319+
fitness for a particular purpose. In addition, such Contributors are not liable
8320+
for any damages, including direct, indirect, special, incidental and consequential
8321+
damages, such as lost profits.
8322+
3. Any provisions of the Oracle license agreement that differ from the Eclipse Public
8323+
License are offered by Oracle alone and not by any other party.
8324+
_________________________________________________________
8325+
8326+
Eclipsestore Embedded Storage Configuration (org.eclipse.store:eclipsestore-storage-embedded-configuration)
8327+
Copyright (C) 2024 MicroStream Software
8328+
--------------------------------------------
8329+
See full text at the bottom of this document for license: EPL-2.0
8330+
--------------------------------------------
8331+
Fourth Party Runtime Dependencies
8332+
--------------------------------------------
8333+
"Eclipsestore Embedded Storage" (org.eclipse.store:eclipsestore-storage-embedded)
8334+
Copyright (C) 2024 MicroStream Software
8335+
EPL-2.0
8336+
--------------------------------------------
8337+
"Eclipsestore Storage" (org.eclipse.store:eclipsestore-storage)
8338+
Copyright (C) 2024 MicroStream Software
8339+
EPL-2.0
8340+
--------------------------------------------
8341+
"Eclipsestore Abstract File System - Java NIO" (org.eclipse.store:eclipsestore-afs-nio)
8342+
Copyright (C) 2024 MicroStream Software
8343+
EPL-2.0
8344+
--------------------------------------------
8345+
"Eclipsestore Abstract File System" (org.eclipse.store:eclipsestore-afs)
8346+
Copyright (C) 2024 MicroStream Software
8347+
EPL-2.0
8348+
--------------------------------------------
8349+
"Eclipsestore Persistence Binary" (org.eclipse.store:eclipsestore-persistence-binary)
8350+
Copyright (C) 2024 MicroStream Software
8351+
EPL-2.0
8352+
--------------------------------------------
8353+
"Eclipsestore Persistence" (org.eclipse.store:eclipsestore-persistence)
8354+
Copyright (C) 2024 MicroStream Software
8355+
EPL-2.0
8356+
--------------------------------------------
8357+
"Eclipsestore Configuration" (org.eclipse.store:eclipsestore-configuration)
8358+
Copyright (C) 2024 MicroStream Software
8359+
EPL-2.0
8360+
--------------------------------------------
8361+
"Eclipsestore Base" (org.eclipse.store:eclipsestore-base)
8362+
Copyright (C) 2024 MicroStream Software
8363+
EPL-2.0
8364+
---------------------------------
8365+
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
83088366
microstream-storage-embedded-configuration Microstream Software
83098367
Eclipse Public License 2.0
83108368
Used by: [helidon-integrations-microstream]

all/pom.xml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -826,6 +826,28 @@
826826
<artifactId>helidon-integrations-microstream-cache</artifactId>
827827
</dependency>
828828

829+
<dependency>
830+
<groupId>io.helidon.integrations.eclipsestore</groupId>
831+
<artifactId>helidon-integrations-eclipsestore</artifactId>
832+
</dependency>
833+
<dependency>
834+
<groupId>io.helidon.integrations.eclipsestore</groupId>
835+
<artifactId>helidon-integrations-eclipsestore-cdi</artifactId>
836+
</dependency>
837+
<dependency>
838+
<groupId>io.helidon.integrations.eclipsestore</groupId>
839+
<artifactId>helidon-integrations-eclipsestore-health</artifactId>
840+
</dependency>
841+
<dependency>
842+
<groupId>io.helidon.integrations.eclipsestore</groupId>
843+
<artifactId>helidon-integrations-eclipsestore-metrics</artifactId>
844+
</dependency>
845+
<dependency>
846+
<groupId>io.helidon.integrations.eclipsestore</groupId>
847+
<artifactId>helidon-integrations-eclipsestore-cache</artifactId>
848+
</dependency>
849+
850+
829851
<dependency>
830852
<groupId>io.helidon.http</groupId>
831853
<artifactId>helidon-http</artifactId>

bom/pom.xml

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1091,7 +1091,32 @@
10911091
<artifactId>helidon-integrations-microstream-cache</artifactId>
10921092
<version>${helidon.version}</version>
10931093
</dependency>
1094-
1094+
<!-- Eclipse Store -->
1095+
<dependency>
1096+
<groupId>io.helidon.integrations.eclipsestore</groupId>
1097+
<artifactId>helidon-integrations-eclipsestore</artifactId>
1098+
<version>${helidon.version}</version>
1099+
</dependency>
1100+
<dependency>
1101+
<groupId>io.helidon.integrations.eclipsestore</groupId>
1102+
<artifactId>helidon-integrations-eclipsestore-cdi</artifactId>
1103+
<version>${helidon.version}</version>
1104+
</dependency>
1105+
<dependency>
1106+
<groupId>io.helidon.integrations.eclipsestore</groupId>
1107+
<artifactId>helidon-integrations-eclipsestore-health</artifactId>
1108+
<version>${helidon.version}</version>
1109+
</dependency>
1110+
<dependency>
1111+
<groupId>io.helidon.integrations.eclipsestore</groupId>
1112+
<artifactId>helidon-integrations-eclipsestore-metrics</artifactId>
1113+
<version>${helidon.version}</version>
1114+
</dependency>
1115+
<dependency>
1116+
<groupId>io.helidon.integrations.eclipsestore</groupId>
1117+
<artifactId>helidon-integrations-eclipsestore-cache</artifactId>
1118+
<version>${helidon.version}</version>
1119+
</dependency>
10951120
<dependency>
10961121
<groupId>io.helidon.http</groupId>
10971122
<artifactId>helidon-http</artifactId>

dependencies/pom.xml

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,9 @@
119119
<version.lib.microprofile-telemetry-tck>1.0</version.lib.microprofile-telemetry-tck>
120120
<version.lib.microprofile-tracing>3.0</version.lib.microprofile-tracing>
121121
<version.lib.microprofile-lra-api>2.0</version.lib.microprofile-lra-api>
122-
<version.lib.microstream>08.01.01-MS-GA</version.lib.microstream>
122+
<version.lib.microstream>08.01.02-MS-GA</version.lib.microstream>
123+
<version.lib.eclipse-store>1.2.0</version.lib.eclipse-store>
124+
<version.lib.eclipse-serializer>1.2.0</version.lib.eclipse-serializer>
123125
<version.lib.mongodb>4.10.2</version.lib.mongodb>
124126
<version.lib.mssql-jdbc>8.4.1.jre8</version.lib.mssql-jdbc>
125127
<version.lib.mysql-connector-j>8.2.0</version.lib.mysql-connector-j>
@@ -796,6 +798,29 @@
796798
<version>${version.lib.microstream}</version>
797799
</dependency>
798800

801+
<!-- Eclipse Store related -->
802+
<dependency>
803+
<groupId>org.eclipse.store</groupId>
804+
<artifactId>storage-embedded</artifactId>
805+
<version>${version.lib.eclipse-store}</version>
806+
</dependency>
807+
<dependency>
808+
<groupId>org.eclipse.store</groupId>
809+
<artifactId>storage-embedded-configuration</artifactId>
810+
<version>${version.lib.eclipse-store}</version>
811+
</dependency>
812+
<dependency>
813+
<groupId>org.eclipse.store</groupId>
814+
<artifactId>cache</artifactId>
815+
<version>${version.lib.eclipse-store}</version>
816+
</dependency>
817+
<dependency>
818+
<groupId>org.eclipse.serializer</groupId>
819+
<artifactId>persistence-binary-jdk17</artifactId>
820+
<version>${version.lib.eclipse-serializer}</version>
821+
</dependency>
822+
823+
799824
<!-- Integrations related -->
800825
<dependency>
801826
<groupId>jakarta.persistence</groupId>
Lines changed: 156 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,156 @@
1+
# Eclipse Store integration with Helidon
2+
3+
This projects adds [Eclipse Store](https://https://eclipsestore.io/) support to Helidon.
4+
5+
[Eclipse Store](https://eclipsestore.io/) is the successor of [Microstream](https://microstream.one), both of which are integrated into Helidon as
6+
extensions now, enabling smooth transition.
7+
8+
The official [Eclipse Store documentation](https://docs.eclipsestore.io) can be found here.
9+
10+
## helidon-integrations-eclipsestore
11+
12+
Adds basic support for Eclipse Store
13+
14+
### Prerequisites
15+
16+
Use the following maven dependency
17+
18+
```
19+
<dependency>
20+
<groupId>io.helidon.integrations.eclipsestore</groupId>
21+
<artifactId>helidon-integrations-eclipsestore</artifactId>
22+
</dependency>
23+
```
24+
25+
### API
26+
27+
Use the EmbeddedStorageManagerBuilder to create a Eclipse Store instance:
28+
29+
```
30+
EmbeddedStorageManager embeddedStorageManager = EmbeddedStorageManagerBuilder
31+
.builder()
32+
.build();
33+
```
34+
35+
Configuration can either be done by the builders methods or by supplying a helidon configuration node
36+
37+
```
38+
Config config = Config.create();
39+
40+
EmbeddedStorageManager embeddedStorageManager = EmbeddedStorageManagerBuilder
41+
.builder()
42+
.config(config)
43+
.build();
44+
```
45+
46+
for a list of all possible properties
47+
see [Eclipse Store configuration properties](https://docs.eclipsestore.io/manual/storage/configuration/properties.html)
48+
49+
### CDI extension for Eclipse Store
50+
51+
the example below shows how to create a Eclipse Store instance using a provided configuration.
52+
53+
```
54+
private EmbeddedStorageManager storage;
55+
56+
@Inject
57+
public YourConstructor(@EclipseStoreStorage(configNode = "org.eclipse.store.storage.greetings")EmbeddedStorageManager storage) {
58+
super();
59+
this.storage = storage;
60+
}
61+
```
62+
63+
## helidon-integrations-eclipsestore-cache
64+
65+
Adds basic support for the Eclipse Store JCache implementation
66+
67+
### Prerequisites
68+
69+
Use the following maven dependency
70+
71+
```
72+
<dependency>
73+
<groupId>io.helidon.integrations.eclipsestore</groupId>
74+
<artifactId>helidon-integrations-eclipsestore-cache</artifactId>
75+
</dependency>
76+
```
77+
78+
### API
79+
80+
Use the CacheBuilder to create Eclipse Store JCache instance:
81+
82+
Create a CacheConfiguration first
83+
84+
```
85+
CacheConfiguration<Integer, String> cacheConfig = EclipseStoreCacheConfigurationBuilder
86+
.builder(config.get("cache"), Integer.class, String.class).build();
87+
```
88+
89+
Then build the cache
90+
91+
```
92+
Cache<Integer, String> cache = CacheBuilder.builder(cacheConfig, Integer.class, String.class).build("myCache");
93+
```
94+
95+
Configuration can either be done by the EclipseStoreCacheConfigurationBuilder or by supplying a helidon configuration node
96+
97+
```
98+
Config config = Config.create();
99+
100+
Cache<Integer, String> cache = CacheBuilder.create("myCache", config, Integer.class, String.class);
101+
102+
```
103+
104+
for a list of all possible properties
105+
see [Eclipse Store Cache configuration properties](https://docs.eclipsestore.io)
106+
107+
### CDI extension for Eclipse Store
108+
109+
the example below shows how to create a Eclipse Store Cache instance using a provided configuration.
110+
111+
```
112+
private Cache<Integer, String> cache;
113+
114+
@Inject
115+
public YourConstructor(@EclipseStoreCache(configNode = "org.eclipse.store.cache", name = "myCache") Cache<Integer, String> cache) {
116+
this.cache = cache;
117+
}
118+
```
119+
120+
## helidon-integrations-eclipsestore-health
121+
122+
This module provides helpers to create basic health checks for Eclipse Store
123+
124+
### Prerequisites
125+
126+
Use the following maven dependency
127+
128+
```
129+
<dependency>
130+
<groupId>io.helidon.integrations.eclipsestore</groupId>
131+
<artifactId>helidon-integrations-eclipsestore-health</artifactId>
132+
</dependency>
133+
```
134+
135+
### Usage
136+
137+
Register an instance of EclipseStoreHealthCheck to your server to provide a HealthCheck for a specific eclipse store instance.
138+
139+
## helidon-integrations-eclipsestore-metrics
140+
141+
This module provides helpers to create a set of default metrics for Eclipse Store
142+
143+
### Prerequisites
144+
145+
Use the following maven dependency
146+
147+
```
148+
<dependency>
149+
<groupId>io.helidon.integrations.eclipsestore</groupId>
150+
<artifactId>helidon-integrations-eclipsestore-metrics</artifactId>
151+
</dependency>
152+
```
153+
154+
### Usage
155+
156+
The EclipseStoreMetricsSupport class provides a set of default metrics

0 commit comments

Comments
 (0)