attach-javadocs
diff --git a/spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/importer/EclipseStoreDataImporter.java b/spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/importer/EclipseStoreDataImporter.java
index ffc73864..c25c1213 100644
--- a/spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/importer/EclipseStoreDataImporter.java
+++ b/spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/importer/EclipseStoreDataImporter.java
@@ -51,7 +51,7 @@ public EclipseStoreDataImporter(final EclipseStoreClientConfiguration configurat
{
this.configuration = configuration;
}
-
+
/**
* Imports entities from all given {@link EntityManagerFactory}s that are available into the EclipseStore storage.
*
@@ -265,7 +265,9 @@ private void createRepositoryForType(
storageInstance,
storageInstance,
new SupportedChecker.Implementation(),
- storageInstance
+ storageInstance,
+ this.configuration.getValidator(),
+ this.configuration.getClassLoaderProvider()
),
domainClass,
new EclipseStoreTransactionManager(),
diff --git a/spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/repository/EclipseStoreStorage.java b/spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/repository/EclipseStoreStorage.java
index 26b5e399..ff4f51c7 100644
--- a/spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/repository/EclipseStoreStorage.java
+++ b/spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/repository/EclipseStoreStorage.java
@@ -25,6 +25,7 @@
import org.eclipse.serializer.persistence.binary.jdk17.java.util.BinaryHandlerImmutableCollectionsSet12;
import org.eclipse.serializer.persistence.types.Storer;
import org.eclipse.serializer.reference.ObjectSwizzling;
+import org.eclipse.serializer.reflect.ClassLoaderProvider;
import org.eclipse.store.storage.embedded.types.EmbeddedStorageFoundation;
import org.eclipse.store.storage.embedded.types.EmbeddedStorageManager;
import org.eclipse.store.storage.types.StorageManager;
@@ -69,6 +70,7 @@ public class EclipseStoreStorage
*/
private final Map, VersionManager>> versionManagers = new ConcurrentHashMap<>();
private final EclipseStoreStorageFoundationProvider foundationProvider;
+ private final ClassLoaderProvider classLoaderProvider;
private EntitySetCollector entitySetCollector;
private PersistableChecker persistenceChecker;
private EmbeddedStorageManager storageManager;
@@ -81,6 +83,7 @@ public class EclipseStoreStorage
public EclipseStoreStorage(final EclipseStoreClientConfiguration storeConfiguration)
{
this.foundationProvider = storeConfiguration;
+ this.classLoaderProvider = storeConfiguration.getClassLoaderProvider();
}
private StorageManager getInstanceOfStorageManager()
@@ -94,6 +97,11 @@ public WorkingCopyRegistry getRegistry()
return this.registry;
}
+ public ClassLoaderProvider getClassLoaderProvider()
+ {
+ return this.classLoaderProvider;
+ }
+
private synchronized void ensureEntitiesInRoot()
{
if(this.storageManager == null)
diff --git a/spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/repository/config/DefaultEclipseStoreClientConfiguration.java b/spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/repository/config/DefaultEclipseStoreClientConfiguration.java
index cc9ba0a9..c462e0a5 100644
--- a/spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/repository/config/DefaultEclipseStoreClientConfiguration.java
+++ b/spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/repository/config/DefaultEclipseStoreClientConfiguration.java
@@ -15,6 +15,7 @@
*/
package software.xdev.spring.data.eclipse.store.repository.config;
+import org.eclipse.serializer.reflect.ClassLoaderProvider;
import org.eclipse.store.integrations.spring.boot.types.configuration.EclipseStoreProperties;
import org.eclipse.store.integrations.spring.boot.types.factories.EmbeddedStorageFoundationFactory;
import org.springframework.context.annotation.Configuration;
@@ -29,8 +30,9 @@ public class DefaultEclipseStoreClientConfiguration extends EclipseStoreClientCo
{
protected DefaultEclipseStoreClientConfiguration(
final EclipseStoreProperties defaultEclipseStoreProperties,
- final EmbeddedStorageFoundationFactory defaultEclipseStoreProvider)
+ final EmbeddedStorageFoundationFactory defaultEclipseStoreProvider,
+ final ClassLoaderProvider classLoaderProvider)
{
- super(defaultEclipseStoreProperties, defaultEclipseStoreProvider);
+ super(defaultEclipseStoreProperties, defaultEclipseStoreProvider, classLoaderProvider);
}
}
diff --git a/spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/repository/config/DefaultEclipseStoreClientConfigurationFactory.java b/spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/repository/config/DefaultEclipseStoreClientConfigurationFactory.java
index 3f2395e9..b1ae4cb6 100644
--- a/spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/repository/config/DefaultEclipseStoreClientConfigurationFactory.java
+++ b/spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/repository/config/DefaultEclipseStoreClientConfigurationFactory.java
@@ -15,6 +15,7 @@
*/
package software.xdev.spring.data.eclipse.store.repository.config;
+import org.eclipse.serializer.reflect.ClassLoaderProvider;
import org.eclipse.store.integrations.spring.boot.types.configuration.EclipseStoreProperties;
import org.eclipse.store.integrations.spring.boot.types.factories.EmbeddedStorageFoundationFactory;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
@@ -29,8 +30,12 @@ public class DefaultEclipseStoreClientConfigurationFactory
@ConditionalOnMissingBean(EclipseStoreClientConfiguration.class)
public DefaultEclipseStoreClientConfiguration getEclipseStoreClientConfiguration(
final EclipseStoreProperties defaultEclipseStoreProperties,
- final EmbeddedStorageFoundationFactory defaultEclipseStoreProvider)
+ final EmbeddedStorageFoundationFactory defaultEclipseStoreProvider,
+ final ClassLoaderProvider classLoaderProvider)
{
- return new DefaultEclipseStoreClientConfiguration(defaultEclipseStoreProperties, defaultEclipseStoreProvider);
+ return new DefaultEclipseStoreClientConfiguration(
+ defaultEclipseStoreProperties,
+ defaultEclipseStoreProvider,
+ classLoaderProvider);
}
}
diff --git a/spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/repository/config/EclipseStoreClientConfiguration.java b/spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/repository/config/EclipseStoreClientConfiguration.java
index f64aedd7..7ec64a3d 100644
--- a/spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/repository/config/EclipseStoreClientConfiguration.java
+++ b/spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/repository/config/EclipseStoreClientConfiguration.java
@@ -15,14 +15,24 @@
*/
package software.xdev.spring.data.eclipse.store.repository.config;
+import org.eclipse.serializer.reflect.ClassLoaderProvider;
+import jakarta.validation.Validation;
+import jakarta.validation.Validator;
+
import org.eclipse.store.integrations.spring.boot.types.configuration.EclipseStoreProperties;
import org.eclipse.store.integrations.spring.boot.types.factories.EmbeddedStorageFoundationFactory;
import org.eclipse.store.storage.embedded.types.EmbeddedStorageFoundation;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.ObjectProvider;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.transaction.TransactionManagerCustomizers;
+import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
+import org.springframework.context.event.ContextClosedEvent;
+import org.springframework.context.event.EventListener;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.TransactionManager;
@@ -51,18 +61,37 @@
})
public abstract class EclipseStoreClientConfiguration implements EclipseStoreStorageFoundationProvider
{
- private final EclipseStoreProperties defaultEclipseStoreProperties;
- private final EmbeddedStorageFoundationFactory defaultEclipseStoreProvider;
+ private static final Logger LOG = LoggerFactory.getLogger(EclipseStoreClientConfiguration.class);
+
+ protected final EclipseStoreProperties defaultEclipseStoreProperties;
+ protected final EmbeddedStorageFoundationFactory defaultEclipseStoreProvider;
+ protected final ClassLoaderProvider classLoaderProvider;
+
+ protected EclipseStoreStorage storageInstance;
+ protected EclipseStoreTransactionManager transactionManager;
- private EclipseStoreStorage storageInstance;
- private EclipseStoreTransactionManager transactionManager;
+ @Value("${spring-data-eclipse-store.context-close-shutdown-storage.enabled:true}")
+ protected boolean contextCloseShutdownStorageEnabled;
+
+ @Value("${spring-data-eclipse-store.context-close-shutdown-storage.only-when-dev-tools:true}")
+ protected boolean contextCloseShutdownStorageOnlyWhenDevTools;
+
+ /**
+ * Upstream value from Spring Boot DevTools.
+ *
+ * @see org.springframework.boot.devtools.autoconfigure.DevToolsProperties.Restart
+ */
+ @Value("${spring.devtools.restart.enabled:true}")
+ protected boolean springDevtoolsRestartEnabled;
@Autowired
protected EclipseStoreClientConfiguration(
final EclipseStoreProperties defaultEclipseStoreProperties,
- final EmbeddedStorageFoundationFactory defaultEclipseStoreProvider)
+ final EmbeddedStorageFoundationFactory defaultEclipseStoreProvider,
+ final ClassLoaderProvider classLoaderProvider)
{
this.defaultEclipseStoreProperties = defaultEclipseStoreProperties;
+ this.classLoaderProvider = classLoaderProvider;
this.defaultEclipseStoreProperties.setAutoStart(false);
this.defaultEclipseStoreProvider = defaultEclipseStoreProvider;
}
@@ -77,6 +106,11 @@ public EmbeddedStorageFoundationFactory getStoreProvider()
return this.defaultEclipseStoreProvider;
}
+ public ClassLoaderProvider getClassLoaderProvider()
+ {
+ return classLoaderProvider;
+ }
+
/**
* Creates a {@link EmbeddedStorageFoundation} out of the two other provided functions {@link #getStoreProvider()}
* and {@link #getEclipseStoreProperties()}.
@@ -99,10 +133,9 @@ public EclipseStoreStorage getStorageInstance()
public PlatformTransactionManager transactionManager(
final ObjectProvider transactionManagerCustomizers)
{
- final EclipseStoreTransactionManager transactionManager = this.getTransactionManagerInstance();
- transactionManagerCustomizers.ifAvailable((customizers) ->
- customizers.customize((TransactionManager)transactionManager));
- return transactionManager;
+ final EclipseStoreTransactionManager tm = this.getTransactionManagerInstance();
+ transactionManagerCustomizers.ifAvailable(customizers -> customizers.customize((TransactionManager)tm));
+ return tm;
}
public EclipseStoreTransactionManager getTransactionManagerInstance()
@@ -113,4 +146,67 @@ public EclipseStoreTransactionManager getTransactionManagerInstance()
}
return this.transactionManager;
}
+
+ protected boolean shouldShutdownStorageOnContextClosed()
+ {
+ // Did the user disable support for this?
+ if(!this.contextCloseShutdownStorageEnabled)
+ {
+ return false;
+ }
+
+ // Always or only for DevTools?
+ if(!this.contextCloseShutdownStorageOnlyWhenDevTools)
+ {
+ return true;
+ }
+
+ // Spring DevTools loaded?
+ try
+ {
+ Class.forName("org.springframework.boot.devtools.autoconfigure.DevToolsProperties");
+ }
+ catch(final ClassNotFoundException e)
+ {
+ return false;
+ }
+
+ // Spring Boot DevTools Restart enabled?
+ final boolean enabled = this.springDevtoolsRestartEnabled;
+ if(enabled)
+ {
+ LOG.warn("Will shut down storage because Spring Boot DevTools Restarting is active. "
+ + "This may cause some unexpected behavior. "
+ + "For more information have a look at "
+ + "https://spring-eclipsestore.xdev.software/known-issues.html#_spring_developer_tools");
+ }
+ return enabled;
+ }
+
+ /**
+ * Invoked when the application is "shut down" - or parts of it during a DevTools restart.
+ *
+ * Shuts down the storage when it's present and {@link #shouldShutdownStorageOnContextClosed()} is
+ * true
+ *
+ *
+ *
+ * This is required for the DevTools restart as it otherwise crashes with StorageExceptionInitialization:
+ * Active storage for ... already exists
+ *
+ */
+ @EventListener
+ public void shutdownStorageOnContextClosed(final ContextClosedEvent event)
+ {
+ if(this.storageInstance != null && this.shouldShutdownStorageOnContextClosed())
+ {
+ this.storageInstance.stop();
+ }
+ }
+
+ @Bean
+ public Validator getValidator()
+ {
+ return Validation.buildDefaultValidatorFactory().getValidator();
+ }
}
diff --git a/spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/repository/support/EclipseStoreRepositoryFactory.java b/spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/repository/support/EclipseStoreRepositoryFactory.java
index 864c347d..6e28a249 100644
--- a/spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/repository/support/EclipseStoreRepositoryFactory.java
+++ b/spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/repository/support/EclipseStoreRepositoryFactory.java
@@ -18,6 +18,7 @@
import java.util.Optional;
import jakarta.annotation.Nonnull;
+import jakarta.validation.Validator;
import org.springframework.data.mapping.model.BasicPersistentEntity;
import org.springframework.data.repository.core.EntityInformation;
@@ -46,13 +47,16 @@ public class EclipseStoreRepositoryFactory extends RepositoryFactorySupport
{
private final EclipseStoreStorage storage;
private final PlatformTransactionManager transactionManager;
+ private final Validator validator;
public EclipseStoreRepositoryFactory(
final EclipseStoreStorage storage,
- final PlatformTransactionManager transactionManager)
+ final PlatformTransactionManager transactionManager,
+ final Validator validator)
{
this.storage = storage;
this.transactionManager = transactionManager;
+ this.validator = validator;
}
@Override
@@ -82,7 +86,9 @@ private WorkingCopier createWorkingCopier(
storage,
storage,
new SupportedChecker.Implementation(),
- storage
+ storage,
+ this.validator,
+ storage.getClassLoaderProvider()
);
}
diff --git a/spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/repository/support/EclipseStoreRepositoryFactoryBean.java b/spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/repository/support/EclipseStoreRepositoryFactoryBean.java
index e8a11842..441d0378 100644
--- a/spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/repository/support/EclipseStoreRepositoryFactoryBean.java
+++ b/spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/repository/support/EclipseStoreRepositoryFactoryBean.java
@@ -81,7 +81,8 @@ protected RepositoryFactorySupport createRepositoryFactory()
final EclipseStoreClientConfiguration ensuredConfiguration = this.ensureConfiguration();
return new EclipseStoreRepositoryFactory(
ensuredConfiguration.getStorageInstance(),
- ensuredConfiguration.getTransactionManagerInstance()
+ ensuredConfiguration.getTransactionManagerInstance(),
+ ensuredConfiguration.getValidator()
);
}
diff --git a/spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/repository/support/copier/registering/AbstractRegisteringCopier.java b/spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/repository/support/copier/registering/AbstractRegisteringCopier.java
index 14edda1d..f438085f 100644
--- a/spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/repository/support/copier/registering/AbstractRegisteringCopier.java
+++ b/spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/repository/support/copier/registering/AbstractRegisteringCopier.java
@@ -15,6 +15,8 @@
*/
package software.xdev.spring.data.eclipse.store.repository.support.copier.registering;
+import jakarta.validation.Validator;
+
import org.eclipse.serializer.Serializer;
import org.eclipse.serializer.SerializerFoundation;
import org.eclipse.serializer.persistence.binary.jdk17.java.util.BinaryHandlerImmutableCollectionsList12;
@@ -23,6 +25,7 @@
import org.eclipse.serializer.persistence.types.PersistenceManager;
import org.eclipse.serializer.reference.ObjectSwizzling;
import org.eclipse.serializer.reference.Reference;
+import org.eclipse.serializer.reflect.ClassLoaderProvider;
import org.eclipse.serializer.util.X;
import software.xdev.spring.data.eclipse.store.repository.SupportedChecker;
@@ -37,12 +40,16 @@
public abstract class AbstractRegisteringCopier implements RegisteringObjectCopier
{
private final EclipseSerializerRegisteringCopier actualCopier;
+ private ClassLoader currentClassLoader;
protected AbstractRegisteringCopier(
final SupportedChecker supportedChecker,
final RegisteringWorkingCopyAndOriginal register,
final ObjectSwizzling objectSwizzling,
- final WorkingCopier> copier)
+ final WorkingCopier> copier,
+ final Validator validator,
+ final ClassLoaderProvider currentClassLoaderProvider
+ )
{
this.actualCopier = new EclipseSerializerRegisteringCopier(
supportedChecker,
@@ -51,17 +58,21 @@ protected AbstractRegisteringCopier(
this.createPersistenceManager(
this.createSerializerFoundation(),
objectSwizzling,
- copier
- )
+ copier,
+ currentClassLoaderProvider
+ ),
+ validator
);
}
private PersistenceManager createPersistenceManager(
final SerializerFoundation> serializerFoundation,
final ObjectSwizzling objectSwizzling,
- final WorkingCopier> copier)
+ final WorkingCopier> copier,
+ final ClassLoaderProvider currentClassLoaderProvider)
{
return serializerFoundation
+ .setClassLoaderProvider(currentClassLoaderProvider)
.registerCustomTypeHandler(BinaryHandlerImmutableCollectionsSet12.New())
.registerCustomTypeHandler(BinaryHandlerImmutableCollectionsList12.New())
.registerCustomTypeHandlers(new SpringDataEclipseStoreLazyBinaryHandler(objectSwizzling, copier))
diff --git a/spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/repository/support/copier/registering/EclipseSerializerRegisteringCopier.java b/spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/repository/support/copier/registering/EclipseSerializerRegisteringCopier.java
index 9d7f7469..295ecb13 100644
--- a/spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/repository/support/copier/registering/EclipseSerializerRegisteringCopier.java
+++ b/spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/repository/support/copier/registering/EclipseSerializerRegisteringCopier.java
@@ -18,8 +18,14 @@
import java.util.HashMap;
import java.util.Map;
import java.util.Queue;
+import java.util.Set;
import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.function.Supplier;
+import java.util.stream.Collectors;
+
+import jakarta.validation.ConstraintViolation;
+import jakarta.validation.ConstraintViolationException;
+import jakarta.validation.Validator;
import org.eclipse.serializer.persistence.binary.types.Binary;
import org.eclipse.serializer.persistence.binary.types.BinaryStorer;
@@ -45,15 +51,19 @@ public class EclipseSerializerRegisteringCopier implements AutoCloseable
private final Supplier> persistenceManagerSupplier;
private final SupportedChecker supportedChecker;
private final RegisteringWorkingCopyAndOriginal register;
+ private final Validator validator;
public EclipseSerializerRegisteringCopier(
final SupportedChecker supportedChecker,
final RegisteringWorkingCopyAndOriginal register,
- final Supplier> persistenceManagerSupplier)
+ final Supplier> persistenceManagerSupplier,
+ final Validator validator
+ )
{
this.supportedChecker = supportedChecker;
this.register = register;
this.persistenceManagerSupplier = persistenceManagerSupplier;
+ this.validator = validator;
this.persistenceManagers = new ConcurrentLinkedQueue<>();
}
@@ -116,7 +126,7 @@ private T copy(final T source, final PersistenceManager persistenceM
{
persistenceManager.objectRegistry().truncateAll();
final BinaryStorer.Default storer = (BinaryStorer.Default)persistenceManager.createStorer();
- // Loader erstellen
+ // Create Loader
final PersistenceLoader loader = persistenceManager.createLoader();
storer.store(source);
@@ -138,10 +148,7 @@ private T copy(final T source, final PersistenceManager persistenceM
{
return;
}
- if(copiedObject != null && !this.supportedChecker.isSupported(copiedObject.getClass()))
- {
- throw new DataTypeNotSupportedException(copiedObject.getClass());
- }
+ this.validate(copiedObject);
summarizer.incrementCopiedObjectsCount();
if(DataTypeUtil.isPrimitiveType(copiedObject.getClass()))
{
@@ -167,6 +174,30 @@ private T copy(final T source, final PersistenceManager persistenceM
return returnValue;
}
+ private void validate(final Object copiedObject)
+ {
+ if(copiedObject != null)
+ {
+ if(!this.supportedChecker.isSupported(copiedObject.getClass()))
+ {
+ throw new DataTypeNotSupportedException(copiedObject.getClass());
+ }
+ final Set> violations = this.validator.validate(copiedObject);
+ if(!violations.isEmpty())
+ {
+ final String violationsAsMessage = violations.stream()
+ .map(cv -> cv == null ? "null" : cv.getPropertyPath() + ": " + cv.getMessage())
+ .collect(Collectors.joining(", "));
+
+ throw new ConstraintViolationException(
+ "Error validating " + copiedObject.getClass().getName() + ":" + System.lineSeparator()
+ + violationsAsMessage,
+ violations
+ );
+ }
+ }
+ }
+
private static class Summarizer
{
private long copiedObjectsCount;
diff --git a/spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/repository/support/copier/registering/RegisteringStorageToWorkingCopyCopier.java b/spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/repository/support/copier/registering/RegisteringStorageToWorkingCopyCopier.java
index df11886e..2fd41417 100644
--- a/spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/repository/support/copier/registering/RegisteringStorageToWorkingCopyCopier.java
+++ b/spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/repository/support/copier/registering/RegisteringStorageToWorkingCopyCopier.java
@@ -15,7 +15,10 @@
*/
package software.xdev.spring.data.eclipse.store.repository.support.copier.registering;
+import jakarta.validation.Validator;
+
import org.eclipse.serializer.reference.ObjectSwizzling;
+import org.eclipse.serializer.reflect.ClassLoaderProvider;
import software.xdev.spring.data.eclipse.store.repository.SupportedChecker;
import software.xdev.spring.data.eclipse.store.repository.WorkingCopyRegistry;
@@ -32,13 +35,18 @@ public RegisteringStorageToWorkingCopyCopier(
final WorkingCopyRegistry registry,
final SupportedChecker supportedChecker,
final ObjectSwizzling objectSwizzling,
- final WorkingCopier> copier)
+ final WorkingCopier> copier,
+ final Validator validator,
+ final ClassLoaderProvider currentClassLoaderProvider
+ )
{
super(
supportedChecker,
registry::register,
objectSwizzling,
- copier
+ copier,
+ validator,
+ currentClassLoaderProvider
);
}
}
diff --git a/spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/repository/support/copier/registering/RegisteringWorkingCopyToStorageCopier.java b/spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/repository/support/copier/registering/RegisteringWorkingCopyToStorageCopier.java
index 9fdc45f7..171003f9 100644
--- a/spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/repository/support/copier/registering/RegisteringWorkingCopyToStorageCopier.java
+++ b/spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/repository/support/copier/registering/RegisteringWorkingCopyToStorageCopier.java
@@ -15,7 +15,10 @@
*/
package software.xdev.spring.data.eclipse.store.repository.support.copier.registering;
+import jakarta.validation.Validator;
+
import org.eclipse.serializer.reference.ObjectSwizzling;
+import org.eclipse.serializer.reflect.ClassLoaderProvider;
import software.xdev.spring.data.eclipse.store.repository.SupportedChecker;
import software.xdev.spring.data.eclipse.store.repository.WorkingCopyRegistry;
@@ -33,13 +36,18 @@ public RegisteringWorkingCopyToStorageCopier(
final WorkingCopyRegistry registry,
final SupportedChecker supportedChecker,
final ObjectSwizzling objectSwizzling,
- final WorkingCopier> copier)
+ final WorkingCopier> copier,
+ final Validator validator,
+ final ClassLoaderProvider currentClassLoaderProvider
+ )
{
super(
supportedChecker,
registry::invertRegister,
objectSwizzling,
- copier
+ copier,
+ validator,
+ currentClassLoaderProvider
);
}
}
diff --git a/spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/repository/support/copier/working/RecursiveWorkingCopier.java b/spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/repository/support/copier/working/RecursiveWorkingCopier.java
index 25ac94af..defcda9d 100644
--- a/spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/repository/support/copier/working/RecursiveWorkingCopier.java
+++ b/spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/repository/support/copier/working/RecursiveWorkingCopier.java
@@ -28,8 +28,11 @@
import java.util.TreeMap;
import java.util.TreeSet;
+import jakarta.validation.Validator;
+
import org.eclipse.serializer.reference.Lazy;
import org.eclipse.serializer.reference.ObjectSwizzling;
+import org.eclipse.serializer.reflect.ClassLoaderProvider;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -72,15 +75,29 @@ public RecursiveWorkingCopier(
final VersionManagerProvider versionManagerProvider,
final PersistableChecker persistableChecker,
final SupportedChecker supportedChecker,
- final ObjectSwizzling objectSwizzling
+ final ObjectSwizzling objectSwizzling,
+ final Validator validator,
+ final ClassLoaderProvider currentClassLoaderProvider
)
{
this.domainClass = domainClass;
this.registry = registry;
this.workingCopyToStorageCopier =
- new RegisteringWorkingCopyToStorageCopier(registry, supportedChecker, objectSwizzling, this);
+ new RegisteringWorkingCopyToStorageCopier(
+ registry,
+ supportedChecker,
+ objectSwizzling,
+ this,
+ validator,
+ currentClassLoaderProvider);
this.storageToWorkingCopyCopier =
- new RegisteringStorageToWorkingCopyCopier(registry, supportedChecker, objectSwizzling, this);
+ new RegisteringStorageToWorkingCopyCopier(
+ registry,
+ supportedChecker,
+ objectSwizzling,
+ this,
+ validator,
+ currentClassLoaderProvider);
this.idManagerProvider = idManagerProvider;
this.versionManagerProvider = versionManagerProvider;
this.persistableChecker = persistableChecker;
diff --git a/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/TestConfiguration.java b/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/TestConfiguration.java
index 345358eb..04420126 100644
--- a/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/TestConfiguration.java
+++ b/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/TestConfiguration.java
@@ -20,6 +20,7 @@
import java.io.IOException;
import java.nio.file.Path;
+import org.eclipse.serializer.reflect.ClassLoaderProvider;
import org.eclipse.store.integrations.spring.boot.types.configuration.EclipseStoreProperties;
import org.eclipse.store.integrations.spring.boot.types.factories.EmbeddedStorageFoundationFactory;
import org.eclipse.store.storage.embedded.types.EmbeddedStorageFoundation;
@@ -43,9 +44,10 @@ public class TestConfiguration extends EclipseStoreClientConfiguration
@Autowired
protected TestConfiguration(
final EclipseStoreProperties defaultEclipseStoreProperties,
- final EmbeddedStorageFoundationFactory defaultEclipseStoreProvider)
+ final EmbeddedStorageFoundationFactory defaultEclipseStoreProvider,
+ final ClassLoaderProvider classLoaderProvider)
{
- super(defaultEclipseStoreProperties, defaultEclipseStoreProvider);
+ super(defaultEclipseStoreProperties, defaultEclipseStoreProvider, classLoaderProvider);
}
@Override
diff --git a/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/constraints/ConstraintDaoObject.java b/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/constraints/ConstraintDaoObject.java
new file mode 100644
index 00000000..7d113e96
--- /dev/null
+++ b/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/constraints/ConstraintDaoObject.java
@@ -0,0 +1,373 @@
+/*
+ * Copyright © 2024 XDEV Software (https://xdev.software)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package software.xdev.spring.data.eclipse.store.integration.isolated.tests.constraints;
+
+import java.math.BigDecimal;
+import java.time.Instant;
+import java.time.temporal.ChronoUnit;
+import java.util.Date;
+
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.validation.constraints.AssertFalse;
+import jakarta.validation.constraints.AssertTrue;
+import jakarta.validation.constraints.DecimalMax;
+import jakarta.validation.constraints.DecimalMin;
+import jakarta.validation.constraints.Digits;
+import jakarta.validation.constraints.Email;
+import jakarta.validation.constraints.Future;
+import jakarta.validation.constraints.FutureOrPresent;
+import jakarta.validation.constraints.Max;
+import jakarta.validation.constraints.Min;
+import jakarta.validation.constraints.Negative;
+import jakarta.validation.constraints.NegativeOrZero;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotEmpty;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Null;
+import jakarta.validation.constraints.Past;
+import jakarta.validation.constraints.PastOrPresent;
+import jakarta.validation.constraints.Pattern;
+import jakarta.validation.constraints.Positive;
+import jakarta.validation.constraints.PositiveOrZero;
+import jakarta.validation.constraints.Size;
+
+
+public class ConstraintDaoObject
+{
+ @Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
+ private int id;
+
+ @AssertFalse
+ boolean isAlwaysFalse;
+
+ @AssertTrue
+ boolean isAlwaysTrue;
+
+ @Digits(integer = 6, fraction = 2)
+ BigDecimal price;
+
+ @DecimalMin("5.00")
+ BigDecimal discountMin5;
+
+ @DecimalMax("30.00")
+ BigDecimal discountMax20;
+
+ @Email
+ String emailField;
+
+ @Future
+ Date futureField;
+
+ @FutureOrPresent
+ Date futureOrPresentField;
+
+ @Max(10)
+ int quantityMax10;
+
+ @Min(5)
+ int quantityMin5;
+
+ @Negative
+ int negativeField;
+
+ @NegativeOrZero
+ int negativeOrZeroField;
+
+ @NotBlank
+ String messageNotBlank;
+
+ @NotEmpty
+ String messageNotEmpty;
+
+ @NotNull
+ String username;
+
+ @Null
+ String unusedString;
+
+ @Past
+ Date pastField;
+
+ @PastOrPresent
+ Date pastOrPresentField;
+
+ @Pattern(regexp = "\\(\\d{3}\\)\\d{3}-\\d{4}")
+ String phoneNumber;
+
+ @Positive
+ BigDecimal area;
+
+ @PositiveOrZero
+ int positiveOrZeroField;
+
+ @Size(min = 2, max = 240)
+ String messageMin2AndMax240;
+
+ public ConstraintDaoObject()
+ {
+ this.isAlwaysFalse = false;
+ this.isAlwaysTrue = true;
+ this.price = BigDecimal.valueOf(123456.78);
+ this.discountMin5 = BigDecimal.valueOf(5);
+ this.discountMax20 = BigDecimal.valueOf(20);
+ this.emailField = "some@email.com";
+ this.futureField = Date.from(Instant.now().plus(1, ChronoUnit.DAYS));
+ this.futureOrPresentField = Date.from(Instant.now().plus(1, ChronoUnit.DAYS));
+ this.quantityMax10 = 10;
+ this.quantityMin5 = 5;
+ this.negativeField = -1;
+ this.negativeOrZeroField = 0;
+ this.messageNotBlank = "some message";
+ this.messageNotEmpty = "some message";
+ this.username = "";
+ this.pastField = Date.from(Instant.now().minus(1, ChronoUnit.DAYS));
+ this.pastOrPresentField = Date.from(Instant.now().minus(1, ChronoUnit.DAYS));
+ this.phoneNumber = "(123)456-7890";
+ this.area = BigDecimal.valueOf(1);
+ this.positiveOrZeroField = 1;
+ this.messageMin2AndMax240 = "..";
+ }
+
+ @AssertFalse
+ public boolean isAlwaysFalse()
+ {
+ return this.isAlwaysFalse;
+ }
+
+ public void setAlwaysFalse(@AssertFalse final boolean alwaysFalse)
+ {
+ this.isAlwaysFalse = alwaysFalse;
+ }
+
+ @AssertTrue
+ public boolean isAlwaysTrue()
+ {
+ return this.isAlwaysTrue;
+ }
+
+ public void setAlwaysTrue(@AssertTrue final boolean alwaysTrue)
+ {
+ this.isAlwaysTrue = alwaysTrue;
+ }
+
+ public @Digits(integer = 6, fraction = 2) BigDecimal getPrice()
+ {
+ return this.price;
+ }
+
+ public void setPrice(final @Digits(integer = 6, fraction = 2) BigDecimal price)
+ {
+ this.price = price;
+ }
+
+ public @DecimalMin("5.00") BigDecimal getDiscountMin5()
+ {
+ return this.discountMin5;
+ }
+
+ public void setDiscountMin5(final @DecimalMin("5.00") BigDecimal discountMin5)
+ {
+ this.discountMin5 = discountMin5;
+ }
+
+ public @DecimalMax("30.00") BigDecimal getDiscountMax20()
+ {
+ return this.discountMax20;
+ }
+
+ public void setDiscountMax20(final @DecimalMax("30.00") BigDecimal discountMax20)
+ {
+ this.discountMax20 = discountMax20;
+ }
+
+ public @Email String getEmailField()
+ {
+ return this.emailField;
+ }
+
+ public void setEmailField(final @Email String emailField)
+ {
+ this.emailField = emailField;
+ }
+
+ public @Future Date getFutureField()
+ {
+ return this.futureField;
+ }
+
+ public void setFutureField(final @Future Date futureField)
+ {
+ this.futureField = futureField;
+ }
+
+ public @FutureOrPresent Date getFutureOrPresentField()
+ {
+ return this.futureOrPresentField;
+ }
+
+ public void setFutureOrPresentField(final @FutureOrPresent Date futureOrPresentField)
+ {
+ this.futureOrPresentField = futureOrPresentField;
+ }
+
+ @Max(10)
+ public int getQuantityMax10()
+ {
+ return this.quantityMax10;
+ }
+
+ public void setQuantityMax10(@Max(10) final int quantityMax10)
+ {
+ this.quantityMax10 = quantityMax10;
+ }
+
+ @Min(5)
+ public int getQuantityMin5()
+ {
+ return this.quantityMin5;
+ }
+
+ public void setQuantityMin5(@Min(5) final int quantityMin5)
+ {
+ this.quantityMin5 = quantityMin5;
+ }
+
+ @Negative
+ public int getNegativeField()
+ {
+ return this.negativeField;
+ }
+
+ public void setNegativeField(@Negative final int negativeField)
+ {
+ this.negativeField = negativeField;
+ }
+
+ @NegativeOrZero
+ public int getNegativeOrZeroField()
+ {
+ return this.negativeOrZeroField;
+ }
+
+ public void setNegativeOrZeroField(@NegativeOrZero final int negativeOrZeroField)
+ {
+ this.negativeOrZeroField = negativeOrZeroField;
+ }
+
+ public @NotBlank String getMessageNotBlank()
+ {
+ return this.messageNotBlank;
+ }
+
+ public void setMessageNotBlank(final @NotBlank String messageNotBlank)
+ {
+ this.messageNotBlank = messageNotBlank;
+ }
+
+ public @NotEmpty String getMessageNotEmpty()
+ {
+ return this.messageNotEmpty;
+ }
+
+ public void setMessageNotEmpty(final @NotEmpty String messageNotEmpty)
+ {
+ this.messageNotEmpty = messageNotEmpty;
+ }
+
+ public @NotNull String getUsername()
+ {
+ return this.username;
+ }
+
+ public void setUsername(final @NotNull String username)
+ {
+ this.username = username;
+ }
+
+ public @Null String getUnusedString()
+ {
+ return this.unusedString;
+ }
+
+ public void setUnusedString(final @Null String unusedString)
+ {
+ this.unusedString = unusedString;
+ }
+
+ public @Past Date getPastField()
+ {
+ return this.pastField;
+ }
+
+ public void setPastField(final @Past Date pastField)
+ {
+ this.pastField = pastField;
+ }
+
+ public @PastOrPresent Date getPastOrPresentField()
+ {
+ return this.pastOrPresentField;
+ }
+
+ public void setPastOrPresentField(final @PastOrPresent Date pastOrPresentField)
+ {
+ this.pastOrPresentField = pastOrPresentField;
+ }
+
+ public @Pattern(regexp = "\\(\\d{3}\\)\\d{3}-\\d{4}") String getPhoneNumber()
+ {
+ return this.phoneNumber;
+ }
+
+ public void setPhoneNumber(final @Pattern(regexp = "\\(\\d{3}\\)\\d{3}-\\d{4}") String phoneNumber)
+ {
+ this.phoneNumber = phoneNumber;
+ }
+
+ public @Positive BigDecimal getArea()
+ {
+ return this.area;
+ }
+
+ public void setArea(final @Positive BigDecimal area)
+ {
+ this.area = area;
+ }
+
+ @PositiveOrZero
+ public int getPositiveOrZeroField()
+ {
+ return this.positiveOrZeroField;
+ }
+
+ public void setPositiveOrZeroField(@PositiveOrZero final int positiveOrZeroField)
+ {
+ this.positiveOrZeroField = positiveOrZeroField;
+ }
+
+ public @Size(min = 2, max = 240) String getMessageMin2AndMax240()
+ {
+ return this.messageMin2AndMax240;
+ }
+
+ public void setMessageMin2AndMax240(final @Size(min = 2, max = 240) String messageMin2AndMax240)
+ {
+ this.messageMin2AndMax240 = messageMin2AndMax240;
+ }
+}
diff --git a/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/constraints/ConstraintsRepository.java b/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/constraints/ConstraintsRepository.java
new file mode 100644
index 00000000..b646c3d9
--- /dev/null
+++ b/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/constraints/ConstraintsRepository.java
@@ -0,0 +1,23 @@
+/*
+ * Copyright © 2024 XDEV Software (https://xdev.software)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package software.xdev.spring.data.eclipse.store.integration.isolated.tests.constraints;
+
+import org.springframework.data.repository.CrudRepository;
+
+
+public interface ConstraintsRepository extends CrudRepository
+{
+}
diff --git a/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/constraints/ConstraintsTest.java b/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/constraints/ConstraintsTest.java
new file mode 100644
index 00000000..5578cea9
--- /dev/null
+++ b/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/constraints/ConstraintsTest.java
@@ -0,0 +1,60 @@
+/*
+ * Copyright © 2024 XDEV Software (https://xdev.software)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package software.xdev.spring.data.eclipse.store.integration.isolated.tests.constraints;
+
+import jakarta.validation.ConstraintViolationException;
+
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.test.context.ContextConfiguration;
+
+import software.xdev.spring.data.eclipse.store.integration.isolated.IsolatedTestAnnotations;
+
+
+/**
+ * These tests should show that all or most of the following constraints are available in this library: Jakarta Bean Validation Constraints
+ */
+@IsolatedTestAnnotations
+@ContextConfiguration(classes = {ConstraintsTestConfiguration.class})
+class ConstraintsTest
+{
+ @Autowired
+ private ConstraintsTestConfiguration configuration;
+ @Autowired
+ private ConstraintsRepository repository;
+
+ @Test
+ void assertFalseWithTrue()
+ {
+ final ConstraintDaoObject constraintDaoObject = new ConstraintDaoObject();
+ constraintDaoObject.setAlwaysFalse(true);
+ Assertions.assertThrows(
+ ConstraintViolationException.class,
+ () -> this.repository.save(constraintDaoObject)
+ );
+ }
+
+ @Test
+ void assertFalseWithFalse()
+ {
+ final ConstraintDaoObject constraintDaoObject = new ConstraintDaoObject();
+ constraintDaoObject.setAlwaysFalse(false);
+ Assertions.assertDoesNotThrow(() -> this.repository.save(constraintDaoObject));
+ }
+}
diff --git a/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/constraints/ConstraintsTestConfiguration.java b/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/constraints/ConstraintsTestConfiguration.java
new file mode 100644
index 00000000..af341d85
--- /dev/null
+++ b/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/constraints/ConstraintsTestConfiguration.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright © 2024 XDEV Software (https://xdev.software)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package software.xdev.spring.data.eclipse.store.integration.isolated.tests.constraints;
+
+import org.eclipse.serializer.reflect.ClassLoaderProvider;
+import org.eclipse.store.integrations.spring.boot.types.configuration.EclipseStoreProperties;
+import org.eclipse.store.integrations.spring.boot.types.factories.EmbeddedStorageFoundationFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Configuration;
+
+import software.xdev.spring.data.eclipse.store.integration.TestConfiguration;
+import software.xdev.spring.data.eclipse.store.repository.config.EnableEclipseStoreRepositories;
+
+
+@Configuration
+@EnableEclipseStoreRepositories
+public class ConstraintsTestConfiguration extends TestConfiguration
+{
+ @Autowired
+ protected ConstraintsTestConfiguration(
+ final EclipseStoreProperties defaultEclipseStoreProperties,
+ final EmbeddedStorageFoundationFactory defaultEclipseStoreProvider,
+ final ClassLoaderProvider classLoaderProvider)
+ {
+ super(defaultEclipseStoreProperties, defaultEclipseStoreProvider, classLoaderProvider);
+ }
+}
diff --git a/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/deletion/DeletionTestConfiguration.java b/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/deletion/DeletionTestConfiguration.java
index 58116149..836b9aeb 100644
--- a/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/deletion/DeletionTestConfiguration.java
+++ b/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/deletion/DeletionTestConfiguration.java
@@ -15,6 +15,7 @@
*/
package software.xdev.spring.data.eclipse.store.integration.isolated.tests.deletion;
+import org.eclipse.serializer.reflect.ClassLoaderProvider;
import org.eclipse.store.integrations.spring.boot.types.configuration.EclipseStoreProperties;
import org.eclipse.store.integrations.spring.boot.types.factories.EmbeddedStorageFoundationFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -32,8 +33,9 @@ public class DeletionTestConfiguration extends TestConfiguration
@Autowired
protected DeletionTestConfiguration(
final EclipseStoreProperties defaultEclipseStoreProperties,
- final EmbeddedStorageFoundationFactory defaultEclipseStoreProvider)
+ final EmbeddedStorageFoundationFactory defaultEclipseStoreProvider,
+ final ClassLoaderProvider classLoaderProvider)
{
- super(defaultEclipseStoreProperties, defaultEclipseStoreProvider);
+ super(defaultEclipseStoreProperties, defaultEclipseStoreProvider, classLoaderProvider);
}
}
diff --git a/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/duplicated/repositories/DuplicatedRepositoriesTestConfiguration.java b/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/duplicated/repositories/DuplicatedRepositoriesTestConfiguration.java
index 6d72ca98..32da71df 100644
--- a/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/duplicated/repositories/DuplicatedRepositoriesTestConfiguration.java
+++ b/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/duplicated/repositories/DuplicatedRepositoriesTestConfiguration.java
@@ -15,6 +15,7 @@
*/
package software.xdev.spring.data.eclipse.store.integration.isolated.tests.duplicated.repositories;
+import org.eclipse.serializer.reflect.ClassLoaderProvider;
import org.eclipse.store.integrations.spring.boot.types.configuration.EclipseStoreProperties;
import org.eclipse.store.integrations.spring.boot.types.factories.EmbeddedStorageFoundationFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -32,8 +33,9 @@ public class DuplicatedRepositoriesTestConfiguration extends TestConfiguration
@Autowired
protected DuplicatedRepositoriesTestConfiguration(
final EclipseStoreProperties defaultEclipseStoreProperties,
- final EmbeddedStorageFoundationFactory defaultEclipseStoreProvider)
+ final EmbeddedStorageFoundationFactory defaultEclipseStoreProvider,
+ final ClassLoaderProvider classLoaderProvider)
{
- super(defaultEclipseStoreProperties, defaultEclipseStoreProvider);
+ super(defaultEclipseStoreProperties, defaultEclipseStoreProvider, classLoaderProvider);
}
}
diff --git a/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/id/IdTestConfiguration.java b/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/id/IdTestConfiguration.java
index b70d680c..d5efc1f5 100644
--- a/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/id/IdTestConfiguration.java
+++ b/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/id/IdTestConfiguration.java
@@ -15,6 +15,7 @@
*/
package software.xdev.spring.data.eclipse.store.integration.isolated.tests.id;
+import org.eclipse.serializer.reflect.ClassLoaderProvider;
import org.eclipse.store.integrations.spring.boot.types.configuration.EclipseStoreProperties;
import org.eclipse.store.integrations.spring.boot.types.factories.EmbeddedStorageFoundationFactory;
import org.springframework.beans.factory.ObjectProvider;
@@ -35,9 +36,10 @@ public class IdTestConfiguration extends TestConfiguration
@Autowired
protected IdTestConfiguration(
final EclipseStoreProperties defaultEclipseStoreProperties,
- final EmbeddedStorageFoundationFactory defaultEclipseStoreProvider)
+ final EmbeddedStorageFoundationFactory defaultEclipseStoreProvider,
+ final ClassLoaderProvider classLoaderProvider)
{
- super(defaultEclipseStoreProperties, defaultEclipseStoreProvider);
+ super(defaultEclipseStoreProperties, defaultEclipseStoreProvider, classLoaderProvider);
}
@Bean
diff --git a/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/immutables/ImmutableTestConfiguration.java b/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/immutables/ImmutableTestConfiguration.java
index 9831fc44..d7ff4c52 100644
--- a/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/immutables/ImmutableTestConfiguration.java
+++ b/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/immutables/ImmutableTestConfiguration.java
@@ -15,6 +15,7 @@
*/
package software.xdev.spring.data.eclipse.store.integration.isolated.tests.immutables;
+import org.eclipse.serializer.reflect.ClassLoaderProvider;
import org.eclipse.store.integrations.spring.boot.types.configuration.EclipseStoreProperties;
import org.eclipse.store.integrations.spring.boot.types.factories.EmbeddedStorageFoundationFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -32,8 +33,9 @@ public class ImmutableTestConfiguration extends TestConfiguration
@Autowired
protected ImmutableTestConfiguration(
final EclipseStoreProperties defaultEclipseStoreProperties,
- final EmbeddedStorageFoundationFactory defaultEclipseStoreProvider)
+ final EmbeddedStorageFoundationFactory defaultEclipseStoreProvider,
+ final ClassLoaderProvider classLoaderProvider)
{
- super(defaultEclipseStoreProperties, defaultEclipseStoreProvider);
+ super(defaultEclipseStoreProperties, defaultEclipseStoreProvider, classLoaderProvider);
}
}
diff --git a/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/keywords/KeywordsTestConfiguration.java b/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/keywords/KeywordsTestConfiguration.java
index 0258bf74..97764353 100644
--- a/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/keywords/KeywordsTestConfiguration.java
+++ b/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/keywords/KeywordsTestConfiguration.java
@@ -15,6 +15,7 @@
*/
package software.xdev.spring.data.eclipse.store.integration.isolated.tests.keywords;
+import org.eclipse.serializer.reflect.ClassLoaderProvider;
import org.eclipse.store.integrations.spring.boot.types.configuration.EclipseStoreProperties;
import org.eclipse.store.integrations.spring.boot.types.factories.EmbeddedStorageFoundationFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -31,8 +32,9 @@ public class KeywordsTestConfiguration extends TestConfiguration
@Autowired
protected KeywordsTestConfiguration(
final EclipseStoreProperties defaultEclipseStoreProperties,
- final EmbeddedStorageFoundationFactory defaultEclipseStoreProvider)
+ final EmbeddedStorageFoundationFactory defaultEclipseStoreProvider,
+ final ClassLoaderProvider classLoaderProvider)
{
- super(defaultEclipseStoreProperties, defaultEclipseStoreProvider);
+ super(defaultEclipseStoreProperties, defaultEclipseStoreProvider, classLoaderProvider);
}
}
diff --git a/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/lazy/LazyTestConfiguration.java b/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/lazy/LazyTestConfiguration.java
index 81b80d6c..beaf67ef 100644
--- a/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/lazy/LazyTestConfiguration.java
+++ b/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/lazy/LazyTestConfiguration.java
@@ -15,6 +15,7 @@
*/
package software.xdev.spring.data.eclipse.store.integration.isolated.tests.lazy;
+import org.eclipse.serializer.reflect.ClassLoaderProvider;
import org.eclipse.store.integrations.spring.boot.types.configuration.EclipseStoreProperties;
import org.eclipse.store.integrations.spring.boot.types.factories.EmbeddedStorageFoundationFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -32,8 +33,9 @@ public class LazyTestConfiguration extends TestConfiguration
@Autowired
protected LazyTestConfiguration(
final EclipseStoreProperties defaultEclipseStoreProperties,
- final EmbeddedStorageFoundationFactory defaultEclipseStoreProvider)
+ final EmbeddedStorageFoundationFactory defaultEclipseStoreProvider,
+ final ClassLoaderProvider classLoaderProvider)
{
- super(defaultEclipseStoreProperties, defaultEclipseStoreProvider);
+ super(defaultEclipseStoreProperties, defaultEclipseStoreProvider, classLoaderProvider);
}
}
diff --git a/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/migration/MigrationTestConfiguration.java b/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/migration/MigrationTestConfiguration.java
index d95988e6..700fefb0 100644
--- a/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/migration/MigrationTestConfiguration.java
+++ b/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/migration/MigrationTestConfiguration.java
@@ -15,6 +15,7 @@
*/
package software.xdev.spring.data.eclipse.store.integration.isolated.tests.migration;
+import org.eclipse.serializer.reflect.ClassLoaderProvider;
import org.eclipse.store.integrations.spring.boot.types.configuration.EclipseStoreProperties;
import org.eclipse.store.integrations.spring.boot.types.factories.EmbeddedStorageFoundationFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -31,8 +32,9 @@ public class MigrationTestConfiguration extends TestConfiguration
@Autowired
protected MigrationTestConfiguration(
final EclipseStoreProperties defaultEclipseStoreProperties,
- final EmbeddedStorageFoundationFactory defaultEclipseStoreProvider)
+ final EmbeddedStorageFoundationFactory defaultEclipseStoreProvider,
+ final ClassLoaderProvider classLoaderProvider)
{
- super(defaultEclipseStoreProperties, defaultEclipseStoreProvider);
+ super(defaultEclipseStoreProperties, defaultEclipseStoreProvider, classLoaderProvider);
}
}
diff --git a/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/query/by/example/QueryByExampleTestConfiguration.java b/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/query/by/example/QueryByExampleTestConfiguration.java
index d3b9dd13..65790a99 100644
--- a/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/query/by/example/QueryByExampleTestConfiguration.java
+++ b/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/query/by/example/QueryByExampleTestConfiguration.java
@@ -15,6 +15,7 @@
*/
package software.xdev.spring.data.eclipse.store.integration.isolated.tests.query.by.example;
+import org.eclipse.serializer.reflect.ClassLoaderProvider;
import org.eclipse.store.integrations.spring.boot.types.configuration.EclipseStoreProperties;
import org.eclipse.store.integrations.spring.boot.types.factories.EmbeddedStorageFoundationFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -31,8 +32,9 @@ public class QueryByExampleTestConfiguration extends TestConfiguration
@Autowired
protected QueryByExampleTestConfiguration(
final EclipseStoreProperties defaultEclipseStoreProperties,
- final EmbeddedStorageFoundationFactory defaultEclipseStoreProvider)
+ final EmbeddedStorageFoundationFactory defaultEclipseStoreProvider,
+ final ClassLoaderProvider classLoaderProvider)
{
- super(defaultEclipseStoreProperties, defaultEclipseStoreProvider);
+ super(defaultEclipseStoreProperties, defaultEclipseStoreProvider, classLoaderProvider);
}
}
diff --git a/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/query/by/string/QueryTestConfiguration.java b/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/query/by/string/QueryTestConfiguration.java
index bab32f2e..5830bc22 100644
--- a/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/query/by/string/QueryTestConfiguration.java
+++ b/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/query/by/string/QueryTestConfiguration.java
@@ -15,6 +15,7 @@
*/
package software.xdev.spring.data.eclipse.store.integration.isolated.tests.query.by.string;
+import org.eclipse.serializer.reflect.ClassLoaderProvider;
import org.eclipse.store.integrations.spring.boot.types.configuration.EclipseStoreProperties;
import org.eclipse.store.integrations.spring.boot.types.factories.EmbeddedStorageFoundationFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -31,8 +32,9 @@ public class QueryTestConfiguration extends TestConfiguration
@Autowired
protected QueryTestConfiguration(
final EclipseStoreProperties defaultEclipseStoreProperties,
- final EmbeddedStorageFoundationFactory defaultEclipseStoreProvider)
+ final EmbeddedStorageFoundationFactory defaultEclipseStoreProvider,
+ final ClassLoaderProvider classLoaderProvider)
{
- super(defaultEclipseStoreProperties, defaultEclipseStoreProvider);
+ super(defaultEclipseStoreProperties, defaultEclipseStoreProvider, classLoaderProvider);
}
}
diff --git a/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/query/hsql/HsqlTestConfiguration.java b/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/query/hsql/HsqlTestConfiguration.java
index cfd5d871..5e2978f8 100644
--- a/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/query/hsql/HsqlTestConfiguration.java
+++ b/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/query/hsql/HsqlTestConfiguration.java
@@ -15,6 +15,7 @@
*/
package software.xdev.spring.data.eclipse.store.integration.isolated.tests.query.hsql;
+import org.eclipse.serializer.reflect.ClassLoaderProvider;
import org.eclipse.store.integrations.spring.boot.types.configuration.EclipseStoreProperties;
import org.eclipse.store.integrations.spring.boot.types.factories.EmbeddedStorageFoundationFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -31,8 +32,9 @@ public class HsqlTestConfiguration extends TestConfiguration
@Autowired
protected HsqlTestConfiguration(
final EclipseStoreProperties defaultEclipseStoreProperties,
- final EmbeddedStorageFoundationFactory defaultEclipseStoreProvider)
+ final EmbeddedStorageFoundationFactory defaultEclipseStoreProvider,
+ final ClassLoaderProvider classLoaderProvider)
{
- super(defaultEclipseStoreProperties, defaultEclipseStoreProvider);
+ super(defaultEclipseStoreProperties, defaultEclipseStoreProvider, classLoaderProvider);
}
}
diff --git a/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/special/types/SpecialTypesTestConfiguration.java b/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/special/types/SpecialTypesTestConfiguration.java
index 3ad7c392..4a29b5e0 100644
--- a/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/special/types/SpecialTypesTestConfiguration.java
+++ b/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/special/types/SpecialTypesTestConfiguration.java
@@ -15,6 +15,7 @@
*/
package software.xdev.spring.data.eclipse.store.integration.isolated.tests.special.types;
+import org.eclipse.serializer.reflect.ClassLoaderProvider;
import org.eclipse.store.integrations.spring.boot.types.configuration.EclipseStoreProperties;
import org.eclipse.store.integrations.spring.boot.types.factories.EmbeddedStorageFoundationFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -31,8 +32,9 @@ public class SpecialTypesTestConfiguration extends TestConfiguration
@Autowired
protected SpecialTypesTestConfiguration(
final EclipseStoreProperties defaultEclipseStoreProperties,
- final EmbeddedStorageFoundationFactory defaultEclipseStoreProvider)
+ final EmbeddedStorageFoundationFactory defaultEclipseStoreProvider,
+ final ClassLoaderProvider classLoaderProvider)
{
- super(defaultEclipseStoreProperties, defaultEclipseStoreProvider);
+ super(defaultEclipseStoreProperties, defaultEclipseStoreProvider, classLoaderProvider);
}
}
diff --git a/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/transactions/TransactionsTestConfiguration.java b/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/transactions/TransactionsTestConfiguration.java
index f8d396a2..e5eb10e7 100644
--- a/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/transactions/TransactionsTestConfiguration.java
+++ b/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/transactions/TransactionsTestConfiguration.java
@@ -15,6 +15,7 @@
*/
package software.xdev.spring.data.eclipse.store.integration.isolated.tests.transactions;
+import org.eclipse.serializer.reflect.ClassLoaderProvider;
import org.eclipse.store.integrations.spring.boot.types.configuration.EclipseStoreProperties;
import org.eclipse.store.integrations.spring.boot.types.factories.EmbeddedStorageFoundationFactory;
import org.springframework.beans.factory.ObjectProvider;
@@ -35,9 +36,10 @@ public class TransactionsTestConfiguration extends TestConfiguration
@Autowired
protected TransactionsTestConfiguration(
final EclipseStoreProperties defaultEclipseStoreProperties,
- final EmbeddedStorageFoundationFactory defaultEclipseStoreProvider)
+ final EmbeddedStorageFoundationFactory defaultEclipseStoreProvider,
+ final ClassLoaderProvider classLoaderProvider)
{
- super(defaultEclipseStoreProperties, defaultEclipseStoreProvider);
+ super(defaultEclipseStoreProperties, defaultEclipseStoreProvider, classLoaderProvider);
}
@Bean
diff --git a/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/version/VersionTestConfiguration.java b/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/version/VersionTestConfiguration.java
index ce27ef4c..6f3109fc 100644
--- a/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/version/VersionTestConfiguration.java
+++ b/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/isolated/tests/version/VersionTestConfiguration.java
@@ -15,6 +15,7 @@
*/
package software.xdev.spring.data.eclipse.store.integration.isolated.tests.version;
+import org.eclipse.serializer.reflect.ClassLoaderProvider;
import org.eclipse.store.integrations.spring.boot.types.configuration.EclipseStoreProperties;
import org.eclipse.store.integrations.spring.boot.types.factories.EmbeddedStorageFoundationFactory;
import org.springframework.beans.factory.ObjectProvider;
@@ -35,9 +36,10 @@ public class VersionTestConfiguration extends TestConfiguration
@Autowired
protected VersionTestConfiguration(
final EclipseStoreProperties defaultEclipseStoreProperties,
- final EmbeddedStorageFoundationFactory defaultEclipseStoreProvider)
+ final EmbeddedStorageFoundationFactory defaultEclipseStoreProvider,
+ final ClassLoaderProvider classLoaderProvider)
{
- super(defaultEclipseStoreProperties, defaultEclipseStoreProvider);
+ super(defaultEclipseStoreProperties, defaultEclipseStoreProvider, classLoaderProvider);
}
@Bean
diff --git a/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/shared/SharedTestConfiguration.java b/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/shared/SharedTestConfiguration.java
index a54fba2a..5d561ebf 100644
--- a/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/shared/SharedTestConfiguration.java
+++ b/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/integration/shared/SharedTestConfiguration.java
@@ -15,6 +15,7 @@
*/
package software.xdev.spring.data.eclipse.store.integration.shared;
+import org.eclipse.serializer.reflect.ClassLoaderProvider;
import org.eclipse.store.integrations.spring.boot.types.configuration.EclipseStoreProperties;
import org.eclipse.store.integrations.spring.boot.types.factories.EmbeddedStorageFoundationFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -31,8 +32,9 @@ public class SharedTestConfiguration extends TestConfiguration
@Autowired
protected SharedTestConfiguration(
final EclipseStoreProperties defaultEclipseStoreProperties,
- final EmbeddedStorageFoundationFactory defaultEclipseStoreProvider)
+ final EmbeddedStorageFoundationFactory defaultEclipseStoreProvider,
+ final ClassLoaderProvider classLoaderProvider)
{
- super(defaultEclipseStoreProperties, defaultEclipseStoreProvider);
+ super(defaultEclipseStoreProperties, defaultEclipseStoreProvider, classLoaderProvider);
}
}
diff --git a/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/repository/support/copier/registering/RegisteringStorageToWorkingCopyCopierTest.java b/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/repository/support/copier/registering/RegisteringStorageToWorkingCopyCopierTest.java
index 2c54b385..5939e115 100644
--- a/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/repository/support/copier/registering/RegisteringStorageToWorkingCopyCopierTest.java
+++ b/spring-data-eclipse-store/src/test/java/software/xdev/spring/data/eclipse/store/repository/support/copier/registering/RegisteringStorageToWorkingCopyCopierTest.java
@@ -18,6 +18,9 @@
import java.util.List;
import java.util.stream.IntStream;
+import org.eclipse.serializer.reflect.ClassLoaderProvider;
+import jakarta.validation.Validation;
+
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
@@ -40,7 +43,11 @@ void testCopyManyCopiesSingle()
new WorkingCopyRegistry(),
new SupportedChecker.Implementation(),
o -> null,
- new DummyWorkingCopier()))
+ new DummyWorkingCopier(),
+ Validation.buildDefaultValidatorFactory().getValidator(),
+ ClassLoaderProvider.System()
+ )
+ )
{
final List originalObjects = IntStream.range(0, 1_000).mapToObj(
i -> new DummyData("Data" + i, i)
@@ -60,7 +67,11 @@ void testCopyAgainSameObject()
new WorkingCopyRegistry(),
new SupportedChecker.Implementation(),
o -> null,
- new DummyWorkingCopier()))
+ new DummyWorkingCopier(),
+ Validation.buildDefaultValidatorFactory().getValidator(),
+ ClassLoaderProvider.System()
+ )
+ )
{
final DummyData originalObject = new DummyData("Test", 1);
@@ -79,7 +90,11 @@ void testCopyAgainTheCopy()
new WorkingCopyRegistry(),
new SupportedChecker.Implementation(),
o -> null,
- new DummyWorkingCopier()))
+ new DummyWorkingCopier(),
+ Validation.buildDefaultValidatorFactory().getValidator(),
+ ClassLoaderProvider.System()
+ )
+ )
{
final DummyData originalObject = new DummyData("Test", 1);
@@ -100,7 +115,11 @@ void testCopyManyCopiesBulk()
new WorkingCopyRegistry(),
new SupportedChecker.Implementation(),
o -> null,
- new DummyWorkingCopier()))
+ new DummyWorkingCopier(),
+ Validation.buildDefaultValidatorFactory().getValidator(),
+ ClassLoaderProvider.System()
+ )
+ )
{
final List originalObjects = IntStream.range(0, 100_000).mapToObj(
i -> new DummyData("Data" + i, i)
@@ -120,7 +139,11 @@ void testCopyEmpty()
new WorkingCopyRegistry(),
new SupportedChecker.Implementation(),
o -> null,
- new DummyWorkingCopier()))
+ new DummyWorkingCopier(),
+ Validation.buildDefaultValidatorFactory().getValidator(),
+ ClassLoaderProvider.System()
+ )
+ )
{
Assertions.assertThrows(NullPointerException.class, () -> copier.copy(null));
}