Skip to content

Commit 6d4deba

Browse files
Updated EclipseStore version
1 parent 170e35a commit 6d4deba

14 files changed

Lines changed: 158 additions & 25 deletions

File tree

spring-data-eclipse-store-demo/src/main/java/software/xdev/spring/data/eclipse/store/demo/dual/storage/invoice/PersistenceInvoiceConfiguration.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,47 @@
22

33
import java.nio.file.Path;
44

5+
import org.eclipse.store.integrations.spring.boot.types.configuration.EclipseStoreProperties;
6+
import org.eclipse.store.integrations.spring.boot.types.factories.EmbeddedStorageFoundationFactory;
57
import org.eclipse.store.storage.embedded.types.EmbeddedStorage;
68
import org.eclipse.store.storage.embedded.types.EmbeddedStorageFoundation;
79
import org.eclipse.store.storage.types.Storage;
10+
import org.springframework.beans.factory.annotation.Autowired;
811
import org.springframework.context.annotation.Configuration;
912

1013
import software.xdev.spring.data.eclipse.store.repository.config.EclipseStoreClientConfiguration;
1114
import software.xdev.spring.data.eclipse.store.repository.config.EnableEclipseStoreRepositories;
1215

1316

17+
/**
18+
* To set this configuration for the package we use the {@link EnableEclipseStoreRepositories#clientConfiguration()}
19+
* ()}. Another example:
20+
* {@link software.xdev.spring.data.eclipse.store.demo.dual.storage.person.PersistencePersonConfiguration}
21+
*/
1422
@Configuration
1523
@EnableEclipseStoreRepositories(
1624
value = "software.xdev.spring.data.eclipse.store.demo.dual.storage.invoice",
1725
clientConfiguration = "persistenceInvoiceConfiguration"
1826
)
1927
public class PersistenceInvoiceConfiguration extends EclipseStoreClientConfiguration
2028
{
29+
30+
@Autowired
31+
protected PersistenceInvoiceConfiguration(
32+
final EclipseStoreProperties defaultEclipseStoreProperties,
33+
final EmbeddedStorageFoundationFactory defaultEclipseStoreProvider)
34+
{
35+
super(defaultEclipseStoreProperties, defaultEclipseStoreProvider);
36+
}
37+
38+
/**
39+
* This is one option how to configure the {@link EmbeddedStorageFoundation}.
40+
* <p>
41+
* We create a completely new foundation. That means that all configuration (e.g. properties) are not used here.
42+
* With this method you have complete control over the configuration.
43+
* </p>
44+
* Another example: {@link PersistencePersonConfiguration#createEmbeddedStorageFoundation()}
45+
*/
2146
@Override
2247
public EmbeddedStorageFoundation<?> createEmbeddedStorageFoundation()
2348
{
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,59 @@
11
package software.xdev.spring.data.eclipse.store.demo.dual.storage.person;
22

3-
import static org.eclipse.store.storage.embedded.types.EmbeddedStorage.Foundation;
4-
5-
import java.nio.file.Path;
6-
3+
import org.eclipse.store.integrations.spring.boot.types.configuration.ConfigurationPair;
4+
import org.eclipse.store.integrations.spring.boot.types.configuration.EclipseStoreProperties;
5+
import org.eclipse.store.integrations.spring.boot.types.factories.EmbeddedStorageFoundationFactory;
6+
import org.eclipse.store.storage.embedded.configuration.types.EmbeddedStorageConfigurationPropertyNames;
77
import org.eclipse.store.storage.embedded.types.EmbeddedStorageFoundation;
8-
import org.eclipse.store.storage.types.Storage;
8+
import org.springframework.beans.factory.annotation.Autowired;
99
import org.springframework.context.annotation.Configuration;
1010

11+
import software.xdev.spring.data.eclipse.store.demo.dual.storage.invoice.PersistenceInvoiceConfiguration;
1112
import software.xdev.spring.data.eclipse.store.repository.config.EclipseStoreClientConfiguration;
1213
import software.xdev.spring.data.eclipse.store.repository.config.EnableEclipseStoreRepositories;
1314

1415

16+
/**
17+
* To set this configuration for the package we use the
18+
* {@link EnableEclipseStoreRepositories#clientConfigurationClass()}. Another example:
19+
* {@link software.xdev.spring.data.eclipse.store.demo.dual.storage.invoice.PersistenceInvoiceConfiguration}
20+
*/
1521
@Configuration
1622
@EnableEclipseStoreRepositories(
1723
value = "software.xdev.spring.data.eclipse.store.demo.dual.storage.person",
1824
clientConfigurationClass = PersistencePersonConfiguration.class
1925
)
2026
public class PersistencePersonConfiguration extends EclipseStoreClientConfiguration
2127
{
28+
private final EmbeddedStorageFoundationFactory foundation;
29+
private final EclipseStoreProperties properties;
30+
31+
@Autowired
32+
public PersistencePersonConfiguration(
33+
final EclipseStoreProperties defaultEclipseStoreProperties,
34+
final EmbeddedStorageFoundationFactory defaultEclipseStoreProvider,
35+
final EmbeddedStorageFoundationFactory foundation,
36+
final EclipseStoreProperties properties)
37+
{
38+
super(defaultEclipseStoreProperties, defaultEclipseStoreProvider);
39+
this.foundation = foundation;
40+
this.properties = properties;
41+
}
42+
43+
/**
44+
* This is one option how to configure the {@link EmbeddedStorageFoundation}.
45+
* <p>
46+
* We use the default {@link EclipseStoreProperties} and add our own property
47+
* {@link EmbeddedStorageConfigurationPropertyNames#STORAGE_DIRECTORY}. Every other property is used like default.
48+
* </p>
49+
* Another example: {@link PersistenceInvoiceConfiguration#createEmbeddedStorageFoundation()}
50+
*/
2251
@Override
2352
public EmbeddedStorageFoundation<?> createEmbeddedStorageFoundation()
2453
{
25-
return Foundation(Storage.Configuration(Storage.FileProvider(Path.of("storage-person"))));
54+
final ConfigurationPair additionalProperties = new ConfigurationPair(
55+
EmbeddedStorageConfigurationPropertyNames.STORAGE_DIRECTORY,
56+
"storage-person");
57+
return this.foundation.createStorageFoundation(this.properties, additionalProperties);
2658
}
2759
}

spring-data-eclipse-store/pom.xml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,8 @@
5151

5252
<!-- Should be in sync with org.eclipse.store:integrations-spring-boot3 -->
5353
<org.springframework.boot.version>3.2.3</org.springframework.boot.version>
54-
<org.eclipse.store.version>1.2.0</org.eclipse.store.version>
54+
<org.eclipse.store.version>1.3.1</org.eclipse.store.version>
55+
<org.eclipse.serializer.version>1.3.1</org.eclipse.serializer.version>
5556
</properties>
5657

5758
<repositories>
@@ -135,12 +136,12 @@
135136
<dependency>
136137
<groupId>org.eclipse.serializer</groupId>
137138
<artifactId>serializer</artifactId>
138-
<version>${org.eclipse.store.version}</version>
139+
<version>${org.eclipse.serializer.version}</version>
139140
</dependency>
140141
<dependency>
141142
<groupId>org.eclipse.serializer</groupId>
142143
<artifactId>persistence-binary-jdk17</artifactId>
143-
<version>${org.eclipse.store.version}</version>
144+
<version>${org.eclipse.serializer.version}</version>
144145
</dependency>
145146

146147
<dependency>

spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/repository/config/DefaultEclipseStoreClientConfiguration.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@
1515
*/
1616
package software.xdev.spring.data.eclipse.store.repository.config;
1717

18+
import org.eclipse.store.integrations.spring.boot.types.configuration.EclipseStoreProperties;
19+
import org.eclipse.store.integrations.spring.boot.types.factories.EmbeddedStorageFoundationFactory;
20+
import org.springframework.beans.factory.annotation.Autowired;
1821
import org.springframework.context.annotation.Configuration;
1922

2023

@@ -26,4 +29,11 @@
2629
@Configuration(proxyBeanMethods = false)
2730
public class DefaultEclipseStoreClientConfiguration extends EclipseStoreClientConfiguration
2831
{
32+
@Autowired
33+
protected DefaultEclipseStoreClientConfiguration(
34+
final EclipseStoreProperties defaultEclipseStoreProperties,
35+
final EmbeddedStorageFoundationFactory defaultEclipseStoreProvider)
36+
{
37+
super(defaultEclipseStoreProperties, defaultEclipseStoreProvider);
38+
}
2939
}

spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/repository/config/EclipseStoreClientConfiguration.java

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,10 @@
1515
*/
1616
package software.xdev.spring.data.eclipse.store.repository.config;
1717

18-
import org.eclipse.store.integrations.spring.boot.types.EclipseStoreProvider;
19-
import org.eclipse.store.integrations.spring.boot.types.EclipseStoreProviderImpl;
2018
import org.eclipse.store.integrations.spring.boot.types.configuration.EclipseStoreProperties;
19+
import org.eclipse.store.integrations.spring.boot.types.factories.EmbeddedStorageFoundationFactory;
2120
import org.eclipse.store.storage.embedded.types.EmbeddedStorageFoundation;
2221
import org.springframework.beans.factory.annotation.Autowired;
23-
import org.springframework.beans.factory.annotation.Qualifier;
24-
import org.springframework.context.annotation.Bean;
2522
import org.springframework.context.annotation.Configuration;
2623

2724
import software.xdev.spring.data.eclipse.store.repository.EclipseStoreStorage;
@@ -44,12 +41,18 @@
4441
@Configuration(proxyBeanMethods = false)
4542
public abstract class EclipseStoreClientConfiguration implements EclipseStoreStorageFoundationProvider
4643
{
47-
@Autowired
48-
@Qualifier("eclipseStoreProperties")
49-
private EclipseStoreProperties defaultEclipseStoreProperties;
44+
private final EclipseStoreProperties defaultEclipseStoreProperties;
45+
private final EmbeddedStorageFoundationFactory defaultEclipseStoreProvider;
5046

5147
@Autowired
52-
private EclipseStoreProviderImpl defaultEclipseStoreProvider;
48+
protected EclipseStoreClientConfiguration(
49+
final EclipseStoreProperties defaultEclipseStoreProperties,
50+
final EmbeddedStorageFoundationFactory defaultEclipseStoreProvider)
51+
{
52+
this.defaultEclipseStoreProperties = defaultEclipseStoreProperties;
53+
this.defaultEclipseStoreProperties.setAutoStart(false);
54+
this.defaultEclipseStoreProvider = defaultEclipseStoreProvider;
55+
}
5356

5457
private EclipseStoreStorage storageInstance;
5558

@@ -58,7 +61,7 @@ public EclipseStoreProperties getStoreConfiguration()
5861
return this.defaultEclipseStoreProperties;
5962
}
6063

61-
public EclipseStoreProvider getStoreProvider()
64+
public EmbeddedStorageFoundationFactory getStoreProvider()
6265
{
6366
return this.defaultEclipseStoreProvider;
6467
}
@@ -73,7 +76,6 @@ public EmbeddedStorageFoundation<?> createEmbeddedStorageFoundation()
7376
return this.getStoreProvider().createStorageFoundation(this.getStoreConfiguration());
7477
}
7578

76-
@Bean
7779
public EclipseStoreStorage getStorageInstance()
7880
{
7981
if(this.storageInstance == null)

spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/repository/config/EnableEclipseStoreRepositories.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,8 @@
4444
@Import(EclipseStoreRepositoriesRegistrar.class)
4545
@ComponentScan({
4646
"software.xdev.spring.data.eclipse.store.importer",
47-
"software.xdev.spring.data.eclipse.store.repository",
48-
"org.eclipse.store.integrations.spring.boot.types",
49-
"org.eclipse.store.integrations.spring.boot.types.converter"})
47+
"software.xdev.spring.data.eclipse.store.repository"
48+
})
5049
public @interface EnableEclipseStoreRepositories
5150
{
5251

spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/repository/support/EclipseStoreRepositoryFactoryBean.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,7 @@
2828
import software.xdev.spring.data.eclipse.store.repository.config.EclipseStoreClientConfiguration;
2929

3030

31-
@ComponentScan({
32-
"software.xdev.spring.data.eclipse.store.repository",
33-
"org.eclipse.store.integrations.spring.boot.types"})
31+
@ComponentScan({"software.xdev.spring.data.eclipse.store.repository"})
3432
@Component
3533
public class EclipseStoreRepositoryFactoryBean<T extends Repository<S, ID>, S, ID extends Serializable>
3634
extends RepositoryFactoryBeanSupport<T, S, ID>
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
org.eclipse.store.auto-create-default-storage=false
2+
org.eclipse.store.auto-create-default-foundation=false

spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/TestConfiguration.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,11 @@
2020
import java.io.IOException;
2121
import java.nio.file.Path;
2222

23+
import org.eclipse.store.integrations.spring.boot.types.configuration.EclipseStoreProperties;
24+
import org.eclipse.store.integrations.spring.boot.types.factories.EmbeddedStorageFoundationFactory;
2325
import org.eclipse.store.storage.embedded.types.EmbeddedStorageFoundation;
2426
import org.eclipse.store.storage.types.Storage;
27+
import org.springframework.beans.factory.annotation.Autowired;
2528
import org.springframework.context.annotation.Configuration;
2629
import org.springframework.context.event.ContextClosedEvent;
2730
import org.springframework.context.event.ContextRefreshedEvent;
@@ -37,6 +40,14 @@ public class TestConfiguration extends EclipseStoreClientConfiguration
3740
{
3841
private final String storageDirectory = StorageDirectoryNameProvider.getNewStorageDirectoryPath();
3942

43+
@Autowired
44+
protected TestConfiguration(
45+
final EclipseStoreProperties defaultEclipseStoreProperties,
46+
final EmbeddedStorageFoundationFactory defaultEclipseStoreProvider)
47+
{
48+
super(defaultEclipseStoreProperties, defaultEclipseStoreProvider);
49+
}
50+
4051
@Override
4152
public EmbeddedStorageFoundation<?> createEmbeddedStorageFoundation()
4253
{

spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/deletion/DeletionTestConfiguration.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@
1515
*/
1616
package software.xdev.spring.data.eclipse.store.integration.isolated.tests.deletion;
1717

18+
import org.eclipse.store.integrations.spring.boot.types.configuration.EclipseStoreProperties;
19+
import org.eclipse.store.integrations.spring.boot.types.factories.EmbeddedStorageFoundationFactory;
20+
import org.springframework.beans.factory.annotation.Autowired;
1821
import org.springframework.context.annotation.Configuration;
1922

2023
import software.xdev.spring.data.eclipse.store.integration.TestConfiguration;
@@ -25,4 +28,12 @@
2528
@EnableEclipseStoreRepositories(clientConfigurationClass = DeletionTestConfiguration.class)
2629
public class DeletionTestConfiguration extends TestConfiguration
2730
{
31+
32+
@Autowired
33+
protected DeletionTestConfiguration(
34+
final EclipseStoreProperties defaultEclipseStoreProperties,
35+
final EmbeddedStorageFoundationFactory defaultEclipseStoreProvider)
36+
{
37+
super(defaultEclipseStoreProperties, defaultEclipseStoreProvider);
38+
}
2839
}

0 commit comments

Comments
 (0)