diff --git a/drivers/mongock-driver-mongodb/mongodb-driver-test-template/pom.xml b/drivers/mongock-driver-mongodb/mongodb-driver-test-template/pom.xml
index 03335db0d..1581cad87 100644
--- a/drivers/mongock-driver-mongodb/mongodb-driver-test-template/pom.xml
+++ b/drivers/mongock-driver-mongodb/mongodb-driver-test-template/pom.xml
@@ -45,6 +45,13 @@
+
+ io.mongock
+ mongock-test-util
+ ${project.version}
+
+
+
org.mongodb
diff --git a/drivers/mongock-driver-mongodb/mongodb-driver-test-template/src/main/java/io/mongock/driver/mongodb/test/template/integration/test3/ChangeLogEnsureDecorator.java b/drivers/mongock-driver-mongodb/mongodb-driver-test-template/src/main/java/io/mongock/driver/mongodb/test/template/integration/test3/ChangeLogEnsureDecorator.java
index 9c6b97885..9309c04ec 100644
--- a/drivers/mongock-driver-mongodb/mongodb-driver-test-template/src/main/java/io/mongock/driver/mongodb/test/template/integration/test3/ChangeLogEnsureDecorator.java
+++ b/drivers/mongock-driver-mongodb/mongodb-driver-test-template/src/main/java/io/mongock/driver/mongodb/test/template/integration/test3/ChangeLogEnsureDecorator.java
@@ -4,6 +4,7 @@
import com.github.cloudyrock.mongock.ChangeSet;
import io.mongock.driver.mongodb.test.template.util.CallVerifier;
import com.mongodb.client.MongoDatabase;
+import io.mongock.util.test.ReflectionUtils;
import org.junit.Assert;
@ChangeLog
@@ -12,7 +13,7 @@ public class ChangeLogEnsureDecorator {
@ChangeSet(author = "testuser", id = "id_duplicated", order = "00")
public void method(MongoDatabase mongodatabase, CallVerifier callVerifier) {
- Assert.assertEquals("MongoDataBaseDecoratorImpl".toLowerCase(), mongodatabase.getClass().getSimpleName().toLowerCase());
+ Assert.assertTrue(ReflectionUtils.isProxy(mongodatabase));
callVerifier.increaseCounter();
}
diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/pom.xml b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/pom.xml
index ece5ce6d2..6d4b98faa 100644
--- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/pom.xml
+++ b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/pom.xml
@@ -61,6 +61,12 @@
${spring-data-2.version}
provided
+
+ org.mongodb
+ mongodb-driver-sync
+ 3.11.2
+ provided
+
diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/BulkOperationsDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/BulkOperationsDecorator.java
deleted file mode 100644
index 912126489..000000000
--- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/BulkOperationsDecorator.java
+++ /dev/null
@@ -1,85 +0,0 @@
-package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator;
-
-import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker;
-import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.impl.BulkOperationsDecoratorImpl;
-import com.mongodb.bulk.BulkWriteResult;
-import org.springframework.data.mongodb.core.BulkOperations;
-import org.springframework.data.mongodb.core.FindAndReplaceOptions;
-import org.springframework.data.mongodb.core.query.Query;
-import org.springframework.data.mongodb.core.query.Update;
-import org.springframework.data.util.Pair;
-
-import java.util.List;
-
-public interface BulkOperationsDecorator extends BulkOperations {
-
- BulkOperations getImpl();
-
- LockGuardInvoker getInvoker();
-
- @Override
- default BulkOperations insert(Object documents) {
- return new BulkOperationsDecoratorImpl(getInvoker().invoke(() -> getImpl().insert(documents)), getInvoker());
- }
-
- @Override
- default BulkOperations insert(List> documents) {
- return new BulkOperationsDecoratorImpl(getInvoker().invoke(() -> getImpl().insert(documents)), getInvoker());
- }
-
- @Override
- default BulkOperations updateOne(Query query, Update update) {
- return new BulkOperationsDecoratorImpl(getInvoker().invoke(() -> getImpl().updateOne(query, update)), getInvoker());
- }
-
- @Override
- default BulkOperations updateOne(List> updates) {
- return new BulkOperationsDecoratorImpl(getInvoker().invoke(() -> getImpl().updateOne(updates)), getInvoker());
- }
-
- @Override
- default BulkOperations updateMulti(Query query, Update update) {
- return new BulkOperationsDecoratorImpl(getInvoker().invoke(() -> getImpl().updateMulti(query, update)), getInvoker());
- }
-
- @Override
- default BulkOperations updateMulti(List> updates) {
- return new BulkOperationsDecoratorImpl(getInvoker().invoke(() -> getImpl().updateMulti(updates)), getInvoker());
- }
-
- @Override
- default BulkOperations upsert(Query query, Update update) {
- return new BulkOperationsDecoratorImpl(getInvoker().invoke(() -> getImpl().upsert(query, update)), getInvoker());
- }
-
- @Override
- default BulkOperations upsert(List> updates) {
- return new BulkOperationsDecoratorImpl(getInvoker().invoke(() -> getImpl().upsert(updates)), getInvoker());
- }
-
- @Override
- default BulkOperations remove(Query remove) {
- return new BulkOperationsDecoratorImpl(getInvoker().invoke(() -> getImpl().remove(remove)), getInvoker());
- }
-
- @Override
- default BulkOperations remove(List removes) {
- return new BulkOperationsDecoratorImpl(getInvoker().invoke(() -> getImpl().remove(removes)), getInvoker());
- }
-
- @Override
- default BulkOperations replaceOne(Query query, Object replacement, FindAndReplaceOptions options) {
- return new BulkOperationsDecoratorImpl(getInvoker().invoke(() -> getImpl().replaceOne(query, replacement, options)), getInvoker());
- }
-
- @Override
-
- default BulkOperations replaceOne(Query query, Object replacement) {
- return new BulkOperationsDecoratorImpl(getInvoker().invoke(() -> getImpl().replaceOne(query, replacement)), getInvoker());
- }
-
- @Override
- default BulkWriteResult execute() {
- return getInvoker().invoke(() -> getImpl().execute());
- }
-}
diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/ClientSessionDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/ClientSessionDecorator.java
deleted file mode 100644
index 9052982e4..000000000
--- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/ClientSessionDecorator.java
+++ /dev/null
@@ -1,127 +0,0 @@
-package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator;
-
-import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker;
-import com.mongodb.ClientSessionOptions;
-import com.mongodb.ServerAddress;
-import com.mongodb.TransactionOptions;
-import com.mongodb.client.ClientSession;
-import com.mongodb.client.TransactionBody;
-import com.mongodb.session.ServerSession;
-import org.bson.BsonDocument;
-import org.bson.BsonTimestamp;
-
-public interface ClientSessionDecorator extends ClientSession {
-
- ClientSession getImpl();
- LockGuardInvoker getInvoker();
-
- @Override
- default ServerAddress getPinnedServerAddress() {
- return getImpl().getPinnedServerAddress();
- }
-
- @Override
- default void setPinnedServerAddress(ServerAddress address) {
- getImpl().setPinnedServerAddress(address);
- }
-
- @Override
- default BsonDocument getRecoveryToken() {
- return getImpl().getRecoveryToken();
- }
-
- @Override
- default void setRecoveryToken(BsonDocument recoveryToken) {
- getImpl().setRecoveryToken(recoveryToken);
- }
-
- @Override
- default ClientSessionOptions getOptions() {
- return getImpl().getOptions();
- }
-
- @Override
- default boolean isCausallyConsistent() {
- return getImpl().isCausallyConsistent();
- }
-
- @Override
- default Object getOriginator() {
- return getImpl().getOriginator();
- }
-
- @Override
- default ServerSession getServerSession() {
- return getImpl().getServerSession();
- }
-
- @Override
- default BsonTimestamp getOperationTime() {
- return getImpl().getOperationTime();
- }
-
- @Override
- default void advanceOperationTime(BsonTimestamp operationTime) {
- getImpl().advanceOperationTime(operationTime);
- }
-
- @Override
- default void advanceClusterTime(BsonDocument clusterTime) {
- getImpl().advanceClusterTime(clusterTime);
- }
-
- @Override
- default BsonDocument getClusterTime() {
- return getImpl().getClusterTime();
- }
-
- @Override
- default void close() {
- getInvoker().invoke(()-> getImpl().close());
- }
-
- @Override
- default boolean hasActiveTransaction() {
- return getImpl().hasActiveTransaction();
- }
-
- @Override
- default boolean notifyMessageSent() {
- return getImpl().notifyMessageSent();
- }
-
- @Override
- default TransactionOptions getTransactionOptions() {
- return getImpl().getTransactionOptions();
- }
-
- @Override
- default void startTransaction() {
- getInvoker().invoke(()->getImpl().startTransaction());
- }
-
- @Override
- default void startTransaction(TransactionOptions transactionOptions) {
- getInvoker().invoke(()->getImpl().startTransaction(transactionOptions));
- }
-
- @Override
- default void commitTransaction() {
- getInvoker().invoke(()->getImpl().commitTransaction());
- }
-
- @Override
- default void abortTransaction() {
- getInvoker().invoke(()->getImpl().abortTransaction());
- }
-
- @Override
- default T withTransaction(TransactionBody transactionBody) {
- return getInvoker().invoke(()->getImpl().withTransaction(transactionBody));
- }
-
- @Override
- default T withTransaction(TransactionBody transactionBody, TransactionOptions options) {
- return getInvoker().invoke(()->getImpl().withTransaction(transactionBody, options));
- }
-}
diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/CloseableIteratorDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/CloseableIteratorDecorator.java
deleted file mode 100644
index 70eaad348..000000000
--- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/CloseableIteratorDecorator.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator;
-
-import io.mongock.driver.mongodb.v3.decorator.MongockIterator;
-import org.springframework.data.util.CloseableIterator;
-
-public interface CloseableIteratorDecorator extends CloseableIterator, MongockIterator {
-
- CloseableIterator getImpl();
-
- @Override
- default void close() {
- getInvoker().invoke(() -> getImpl().close());
- }
-}
diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/IndexOperationsDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/IndexOperationsDecorator.java
deleted file mode 100644
index 1d6aa9c05..000000000
--- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/IndexOperationsDecorator.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator;
-
-import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker;
-import org.springframework.data.mongodb.core.index.IndexDefinition;
-import org.springframework.data.mongodb.core.index.IndexInfo;
-import org.springframework.data.mongodb.core.index.IndexOperations;
-
-import java.util.List;
-
-public interface IndexOperationsDecorator extends IndexOperations {
-
- IndexOperations getImpl();
-
- LockGuardInvoker getInvoker();
-
- @Override
- default String ensureIndex(IndexDefinition indexDefinition) {
- return getInvoker().invoke(()-> getImpl().ensureIndex(indexDefinition));
- }
-
- @Override
- default void dropIndex(String name) {
- getInvoker().invoke(()-> getImpl().dropIndex(name));
- }
-
- @Override
- default void dropAllIndexes() {
- getInvoker().invoke(()-> getImpl().dropAllIndexes());
- }
-
- @Override
- default List getIndexInfo() {
- return getInvoker().invoke(()-> getImpl().getIndexInfo());
- }
-}
diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/MongoDbFactoryDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/MongoDbFactoryDecorator.java
deleted file mode 100644
index 4b9c07803..000000000
--- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/MongoDbFactoryDecorator.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator;
-
-import io.mongock.driver.api.lock.guard.decorator.Invokable;
-import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.impl.ClientSessionDecoratorImpl;
-import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.impl.MongoDbFactoryDecoratorImpl;
-import io.mongock.driver.mongodb.v3.decorator.impl.MongoDataBaseDecoratorImpl;
-import com.mongodb.ClientSessionOptions;
-import com.mongodb.DB;
-import com.mongodb.client.ClientSession;
-import com.mongodb.client.MongoDatabase;
-import org.springframework.dao.DataAccessException;
-import org.springframework.dao.support.PersistenceExceptionTranslator;
-import org.springframework.data.mongodb.MongoDbFactory;
-
-@Deprecated
-public interface MongoDbFactoryDecorator extends Invokable, MongoDbFactory {
-
- MongoDbFactory getImpl();
-
- @Override
- default MongoDatabase getDb() throws DataAccessException {
- return new MongoDataBaseDecoratorImpl(getImpl().getDb(), getInvoker());
- }
-
- @Override
- default MongoDatabase getDb(String dbName) throws DataAccessException {
- return new MongoDataBaseDecoratorImpl(getImpl().getDb(dbName), getInvoker());
- }
-
- @Override
- default PersistenceExceptionTranslator getExceptionTranslator() {
- return getImpl().getExceptionTranslator();
- }
-
- @Override
- default DB getLegacyDb() {
- throw new UnsupportedOperationException("Removed DB support from Mongock due to deprecated API. Please use MongoDatabase instead");
- }
-
-
- @Override
- default ClientSession getSession(ClientSessionOptions clientSessionOptions) {
- return new ClientSessionDecoratorImpl(getInvoker().invoke(() -> getImpl().getSession(clientSessionOptions)), getInvoker());
- }
-
- @Override
- default MongoDbFactory withSession(ClientSession clientSession) {
- return new MongoDbFactoryDecoratorImpl(getInvoker().invoke(() -> getImpl().withSession(clientSession)), getInvoker());
- }
-}
diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/MongoOperationsDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/MongoOperationsDecorator.java
deleted file mode 100644
index 98e84e0ee..000000000
--- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/MongoOperationsDecorator.java
+++ /dev/null
@@ -1,588 +0,0 @@
-package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator;
-
-import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker;
-import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.impl.BulkOperationsDecoratorImpl;
-import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.impl.CloseableIteratorDecoratorImpl;
-import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.impl.IndexOperationsDecoratorImpl;
-import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.impl.MongoOperationsDecoratorImpl;
-import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.impl.ScriptOperationsDecoratorImpl;
-import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.impl.SessionScopedDecoratorImpl;
-import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.aggregation.impl.ExecutableAggregationDecoratorImpl;
-import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.find.impl.ExecutableFindDecoratorImpl;
-import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.insert.impl.ExecutableInsertDecoratorImpl;
-import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.mapreduce.impl.MapReduceWithMapFunctionDecoratorImpl;
-import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.remove.impl.ExecutableRemoveDecoratorImpl;
-import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.update.impl.ExecutableUpdateDecoratorImpl;
-import io.mongock.driver.mongodb.v3.decorator.impl.MongoCollectionDecoratorImpl;
-import com.mongodb.ClientSessionOptions;
-import com.mongodb.ReadPreference;
-import com.mongodb.client.ClientSession;
-import com.mongodb.client.MongoCollection;
-import com.mongodb.client.result.DeleteResult;
-import com.mongodb.client.result.UpdateResult;
-import org.bson.Document;
-import org.springframework.data.geo.GeoResults;
-import org.springframework.data.mongodb.core.BulkOperations;
-import org.springframework.data.mongodb.core.CollectionCallback;
-import org.springframework.data.mongodb.core.CollectionOptions;
-import org.springframework.data.mongodb.core.DbCallback;
-import org.springframework.data.mongodb.core.DocumentCallbackHandler;
-import org.springframework.data.mongodb.core.FindAndModifyOptions;
-import org.springframework.data.mongodb.core.FindAndReplaceOptions;
-import org.springframework.data.mongodb.core.MongoOperations;
-import org.springframework.data.mongodb.core.ScriptOperations;
-import org.springframework.data.mongodb.core.SessionScoped;
-import org.springframework.data.mongodb.core.aggregation.Aggregation;
-import org.springframework.data.mongodb.core.aggregation.AggregationResults;
-import org.springframework.data.mongodb.core.aggregation.TypedAggregation;
-import org.springframework.data.mongodb.core.convert.MongoConverter;
-import org.springframework.data.mongodb.core.index.IndexOperations;
-import org.springframework.data.mongodb.core.mapreduce.GroupBy;
-import org.springframework.data.mongodb.core.mapreduce.GroupByResults;
-import org.springframework.data.mongodb.core.mapreduce.MapReduceOptions;
-import org.springframework.data.mongodb.core.mapreduce.MapReduceResults;
-import org.springframework.data.mongodb.core.query.Criteria;
-import org.springframework.data.mongodb.core.query.NearQuery;
-import org.springframework.data.mongodb.core.query.Query;
-import org.springframework.data.mongodb.core.query.Update;
-import org.springframework.data.util.CloseableIterator;
-
-import java.util.Collection;
-import java.util.List;
-import java.util.Set;
-import java.util.function.Supplier;
-
-public interface MongoOperationsDecorator extends MongoOperations {
-
- MongoOperations getImpl();
-
- LockGuardInvoker getInvoker();
-
-
- @Override
- default MongoConverter getConverter() {
- return getImpl().getConverter();
- }
-
- @Override
- default CloseableIterator stream(final Query query, final Class entityType) {
- return getInvoker().invoke(() -> getImpl().stream(query, entityType));
- }
-
- @Override
- default CloseableIterator stream(final Query query, final Class entityType, final String collectionName) {
- return getInvoker().invoke(() -> getImpl().stream(query, entityType, collectionName));
- }
-
- @Override
- default String getCollectionName(Class> entityClass) {
- return getImpl().getCollectionName(entityClass);
- }
-
- @Override
- default Document executeCommand(final String jsonCommand) {
- return getInvoker().invoke(() -> getImpl().executeCommand(jsonCommand));
- }
-
- @Override
- default Document executeCommand(final Document command) {
- return getInvoker().invoke(() -> getImpl().executeCommand(command));
- }
-
- @Override
- default Document executeCommand(Document command, ReadPreference readPreference) {
- return getInvoker().invoke(() -> getImpl().executeCommand(command, readPreference));
- }
-
- @Override
- default void executeQuery(Query query, String collectionName, DocumentCallbackHandler dch) {
- getInvoker().invoke(() -> getImpl().executeQuery(query, collectionName, dch));
- }
-
- @Override
- default T execute(DbCallback action) {
- return getInvoker().invoke(() -> getImpl().execute(action));
- }
-
- @Override
- default T execute(Class> entityClass, CollectionCallback callback) {
- return getInvoker().invoke(() -> getImpl().execute(entityClass, callback));
- }
-
- @Override
- default T execute(String collectionName, CollectionCallback callback) {
- return getInvoker().invoke(() -> getImpl().execute(collectionName, callback));
- }
-
- @Override
- default MongoCollection createCollection(Class entityClass) {
- return new MongoCollectionDecoratorImpl<>(getInvoker().invoke(() -> getImpl().createCollection(entityClass)), getInvoker());
- }
-
-
- @Override
- default MongoCollection createCollection(Class entityClass, CollectionOptions collectionOptions) {
- return new MongoCollectionDecoratorImpl<>(getInvoker().invoke(() -> getImpl().createCollection(entityClass, collectionOptions)), getInvoker());
- }
-
- @Override
- default MongoCollection createCollection(final String collectionName) {
- return new MongoCollectionDecoratorImpl<>(getInvoker().invoke(() -> getImpl().createCollection(collectionName)), getInvoker());
- }
-
- @Override
- default MongoCollection createCollection(final String collectionName, final CollectionOptions collectionOptions) {
- return new MongoCollectionDecoratorImpl<>(getInvoker().invoke(() -> getImpl().createCollection(collectionName, collectionOptions)), getInvoker());
- }
-
- @Override
- default MongoCollection getCollection(final String collectionName) {
- return new MongoCollectionDecoratorImpl<>(getInvoker().invoke(() -> getImpl().getCollection(collectionName)), getInvoker());
- }
-
- @Override
- default boolean collectionExists(Class entityClass) {
- return getInvoker().invoke(() -> getImpl().collectionExists(entityClass));
- }
-
- @Override
- default boolean collectionExists(final String collectionName) {
- return getInvoker().invoke(() -> getImpl().collectionExists(collectionName));
- }
-
- @Override
- default void dropCollection(Class entityClass) {
- getInvoker().invoke(() -> getImpl().dropCollection(entityClass));
- }
-
- @Override
- default void dropCollection(String collectionName) {
- getInvoker().invoke(() -> getImpl().dropCollection(collectionName));
- }
-
- @Override
- default T findOne(Query query, Class entityClass) {
- return getInvoker().invoke(() -> getImpl().findOne(query, entityClass));
- }
-
-
- @Override
- default T findOne(Query query, Class entityClass, String collectionName) {
- return getInvoker().invoke(() -> getImpl().findOne(query, entityClass, collectionName));
- }
-
- @Override
- default boolean exists(Query query, Class> entityClass) {
- return getInvoker().invoke(() -> getImpl().exists(query, entityClass));
- }
-
- @Override
- default boolean exists(Query query, String collectionName) {
- return getInvoker().invoke(() -> getImpl().exists(query, collectionName));
- }
-
- @Override
- default boolean exists(Query query, Class> entityClass, String collectionName) {
- return getInvoker().invoke(() -> getImpl().exists(query, entityClass, collectionName));
- }
-
- @Override
- default List find(Query query, Class entityClass) {
- return getInvoker().invoke(() -> getImpl().find(query, entityClass));
- }
-
- @Override
- default List find(Query query, Class entityClass, String collectionName) {
- return getInvoker().invoke(() -> getImpl().find(query, entityClass, collectionName));
- }
-
- @Override
- default T findById(Object id, Class entityClass) {
- return getInvoker().invoke(() -> getImpl().findById(id, entityClass));
- }
-
-
- @Override
- default T findById(Object id, Class entityClass, String collectionName) {
- return getInvoker().invoke(() -> getImpl().findById(id, entityClass, collectionName));
- }
-
- @Override
- default GeoResults geoNear(NearQuery near, Class entityClass) {
- return getInvoker().invoke(() -> getImpl().geoNear(near, entityClass));
- }
-
- @Override
- @SuppressWarnings("unchecked")
- default GeoResults geoNear(NearQuery near, Class domainType, String collectionName) {
- return getInvoker().invoke(() -> getImpl().geoNear(near, domainType, collectionName));
- }
-
-
- @Override
- default T findAndModify(Query query, Update update, Class entityClass) {
- return getInvoker().invoke(() -> getImpl().findAndModify(query, update, entityClass));
- }
-
-
- @Override
- default T findAndModify(Query query, Update update, Class entityClass, String collectionName) {
- return getInvoker().invoke(() -> getImpl().findAndModify(query, update, entityClass, collectionName));
- }
-
-
- @Override
- default T findAndModify(Query query, Update update, FindAndModifyOptions options, Class entityClass) {
- return getInvoker().invoke(() -> getImpl().findAndModify(query, update, options, entityClass));
- }
-
-
- @Override
- default T findAndModify(Query query, Update update, FindAndModifyOptions options, Class entityClass, String collectionName) {
- return getInvoker().invoke(() -> getImpl().findAndModify(query, update, options, entityClass, collectionName));
- }
-
- @Override
- default T findAndRemove(Query query, Class entityClass) {
- return getInvoker().invoke(() -> getImpl().findAndRemove(query, entityClass));
- }
-
-
- @Override
- default T findAndRemove(Query query, Class entityClass, String collectionName) {
- return getInvoker().invoke(() -> getImpl().findAndRemove(query, entityClass, collectionName));
- }
-
- @Override
- default long count(Query query, Class> entityClass) {
- return getInvoker().invoke(() -> getImpl().count(query, entityClass));
- }
-
- @Override
- default long count(final Query query, String collectionName) {
- return getInvoker().invoke(() -> getImpl().count(query, collectionName));
- }
-
- @Override
- default long count(Query query, Class> entityClass, String collectionName) {
- return getInvoker().invoke(() -> getImpl().count(query, entityClass, collectionName));
- }
-
- @Override
- default T insert(T objectToSave) {
- return getInvoker().invoke(() -> getImpl().insert(objectToSave));
- }
-
- @Override
- default T insert(T objectToSave, String collectionName) {
- return getInvoker().invoke(() -> getImpl().insert(objectToSave, collectionName));
- }
-
-
- @Override
- default Collection insert(Collection extends T> batchToSave, Class> entityClass) {
- return getInvoker().invoke(() -> getImpl().insert(batchToSave, entityClass));
- }
-
- @Override
- default Collection insert(Collection extends T> batchToSave, String collectionName) {
- return getInvoker().invoke(() -> getImpl().insert(batchToSave, collectionName));
- }
-
- @Override
- default Collection insertAll(Collection extends T> objectsToSave) {
- return getInvoker().invoke(() -> getImpl().insertAll(objectsToSave));
- }
-
- @Override
- default T save(T objectToSave) {
- return getInvoker().invoke(() -> getImpl().save(objectToSave));
- }
-
- @Override
- default T save(T objectToSave, String collectionName) {
- return getInvoker().invoke(() -> getImpl().save(objectToSave, collectionName));
- }
-
- @Override
- default UpdateResult upsert(Query query, Update update, Class> entityClass) {
- return getInvoker().invoke(() -> getImpl().upsert(query, update, entityClass));
- }
-
- @Override
- default UpdateResult upsert(Query query, Update update, String collectionName) {
- return getInvoker().invoke(() -> getImpl().upsert(query, update, collectionName));
- }
-
- @Override
- default UpdateResult upsert(Query query, Update update, Class> entityClass, String collectionName) {
- return getInvoker().invoke(() -> getImpl().upsert(query, update, entityClass, collectionName));
- }
-
- @Override
- default UpdateResult updateFirst(Query query, Update update, Class> entityClass) {
- return getInvoker().invoke(() -> getImpl().updateFirst(query, update, entityClass));
- }
-
- @Override
- default UpdateResult updateFirst(final Query query, final Update update, final String collectionName) {
- return getInvoker().invoke(() -> getImpl().upsert(query, update, collectionName));
- }
-
- @Override
- default UpdateResult updateFirst(Query query, Update update, Class> entityClass, String collectionName) {
- return getInvoker().invoke(() -> getImpl().updateFirst(query, update, entityClass, collectionName));
- }
-
- @Override
- default UpdateResult updateMulti(Query query, Update update, Class> entityClass) {
- return getInvoker().invoke(() -> getImpl().updateMulti(query, update, entityClass));
- }
-
- @Override
- default UpdateResult updateMulti(final Query query, final Update update, String collectionName) {
- return getInvoker().invoke(() -> getImpl().updateMulti(query, update, collectionName));
- }
-
- @Override
- default UpdateResult updateMulti(final Query query, final Update update, Class> entityClass, String collectionName) {
- return getInvoker().invoke(() -> getImpl().updateMulti(query, update, entityClass, collectionName));
- }
-
- @Override
- default DeleteResult remove(Object object) {
- return getInvoker().invoke(() -> getImpl().remove(object));
- }
-
- @Override
- default DeleteResult remove(Object object, String collectionName) {
- return getInvoker().invoke(() -> getImpl().remove(object, collectionName));
- }
-
- @Override
- default DeleteResult remove(Query query, String collectionName) {
- return getInvoker().invoke(() -> getImpl().remove(query, collectionName));
- }
-
- @Override
- default DeleteResult remove(Query query, Class> entityClass) {
- return getInvoker().invoke(() -> getImpl().remove(query, entityClass));
- }
-
- @Override
- default DeleteResult remove(Query query, Class> entityClass, String collectionName) {
- return getInvoker().invoke(() -> getImpl().remove(query, entityClass, collectionName));
- }
-
- @Override
- default List findAll(Class entityClass) {
- return getInvoker().invoke(() -> getImpl().findAll(entityClass));
- }
-
- @Override
- default List findAll(Class entityClass, String collectionName) {
- return getInvoker().invoke(() -> getImpl().findAll(entityClass, collectionName));
- }
-
- @Override
- default MapReduceResults mapReduce(String inputCollectionName, String mapFunction, String reduceFunction, Class entityClass) {
- return getInvoker().invoke(() -> getImpl().mapReduce(inputCollectionName, mapFunction, reduceFunction, entityClass));
- }
-
- @Override
- default MapReduceResults mapReduce(String inputCollectionName, String mapFunction, String reduceFunction, MapReduceOptions mapReduceOptions, Class entityClass) {
- return getInvoker().invoke(() -> getImpl().mapReduce(inputCollectionName, mapFunction, reduceFunction, mapReduceOptions, entityClass));
- }
-
- @Override
- default MapReduceResults mapReduce(Query query, String inputCollectionName, String mapFunction, String reduceFunction, Class entityClass) {
- return getInvoker().invoke(() -> getImpl().mapReduce(query, inputCollectionName, mapFunction, reduceFunction, entityClass));
- }
-
- @Override
- default MapReduceResults mapReduce(Query query, String inputCollectionName, String mapFunction, String reduceFunction, MapReduceOptions mapReduceOptions, Class entityClass) {
- return getInvoker().invoke(() -> getImpl().mapReduce(query, inputCollectionName, mapFunction, reduceFunction, mapReduceOptions, entityClass));
- }
-
- @Override
- default GroupByResults group(String inputCollectionName, GroupBy groupBy, Class entityClass) {
- return getInvoker().invoke(() -> getImpl().group(inputCollectionName, groupBy, entityClass));
- }
-
- @Override
- default GroupByResults group(Criteria criteria, String inputCollectionName, GroupBy groupBy, Class entityClass) {
- return getInvoker().invoke(() -> getImpl().group(criteria, inputCollectionName, groupBy, entityClass));
- }
-
- @Override
- default AggregationResults aggregate(TypedAggregation> aggregation, Class outputType) {
- return getInvoker().invoke(() -> getImpl().aggregate(aggregation, outputType));
- }
-
- @Override
- default AggregationResults aggregate(TypedAggregation> aggregation, String inputCollectionName, Class outputType) {
- return getInvoker().invoke(() -> getImpl().aggregate(aggregation, inputCollectionName, outputType));
- }
-
- @Override
- default AggregationResults aggregate(Aggregation aggregation, Class> inputType, Class outputType) {
- return getInvoker().invoke(() -> getImpl().aggregate(aggregation, inputType, outputType));
- }
-
- @Override
- default AggregationResults aggregate(Aggregation aggregation, String collectionName, Class outputType) {
- return getInvoker().invoke(() -> getImpl().aggregate(aggregation, collectionName, outputType));
- }
-
-
- @Override
- default CloseableIterator aggregateStream(TypedAggregation> aggregation, String inputCollectionName, Class outputType) {
- return new CloseableIteratorDecoratorImpl<>(getInvoker().invoke(() -> getImpl().aggregateStream(aggregation, inputCollectionName, outputType)), getInvoker());
- }
-
- @Override
- default CloseableIterator aggregateStream(TypedAggregation> aggregation, Class outputType) {
- return new CloseableIteratorDecoratorImpl<>(getInvoker().invoke(() -> getImpl().aggregateStream(aggregation, outputType)), getInvoker());
- }
-
- @Override
- default CloseableIterator aggregateStream(Aggregation aggregation, Class> inputType, Class outputType) {
- return new CloseableIteratorDecoratorImpl<>(getInvoker().invoke(() -> getImpl().aggregateStream(aggregation, inputType, outputType)), getInvoker());
- }
-
- @Override
- default CloseableIterator aggregateStream(Aggregation aggregation, String collectionName, Class outputType) {
- return new CloseableIteratorDecoratorImpl<>(getInvoker().invoke(() -> getImpl().aggregateStream(aggregation, collectionName, outputType)), getInvoker());
- }
-
-
- @Override
- default List findAllAndRemove(Query query, String collectionName) {
- return getInvoker().invoke(() -> getImpl().findAllAndRemove(query, collectionName));
- }
-
- @Override
- default List findAllAndRemove(Query query, Class entityClass) {
- return getInvoker().invoke(() -> getImpl().findAllAndRemove(query, entityClass));
- }
-
- @Override
- default List findAllAndRemove(Query query, Class entityClass, String collectionName) {
- return getInvoker().invoke(() -> getImpl().findAllAndRemove(query, entityClass, collectionName));
- }
-
-
-
-
-
-
- @Override
- //This relies on passing the monitored instance of mongotemplate(this) to the ExecutableFind
- default ExecutableFind query(Class domainType) {
- return new ExecutableFindDecoratorImpl<>(getInvoker().invoke(() -> getImpl().query(domainType)), getInvoker());
- }
-
-
- @Override
- //This relies on passing the monitored instance of mongotemplate(this) to the ExecutableUpdate
- default ExecutableUpdate update(Class domainType) {
- return new ExecutableUpdateDecoratorImpl<>(getInvoker().invoke(() -> getImpl().update(domainType)), getInvoker());
- }
-
- @Override
- //This relies on passing the monitored instance of mongotemplate(this) to the ExecutableRemove
- default ExecutableRemove remove(Class domainType) {
- return new ExecutableRemoveDecoratorImpl<>(getInvoker().invoke(() -> getImpl().remove(domainType)), getInvoker());
- }
-
- @Override
- //This relies on passing the monitored instance of mongotemplate(this) to the ExecutableAggregation
- default ExecutableAggregation aggregateAndReturn(Class domainType) {
- return new ExecutableAggregationDecoratorImpl<>(getInvoker().invoke(() -> getImpl().aggregateAndReturn(domainType)), getInvoker());
- }
-
- @Override
- //This relies on passing the monitored instance of mongotemplate(this) to the ExecutableInsert
- default ExecutableInsert insert(Class domainType) {
- return new ExecutableInsertDecoratorImpl<>(getInvoker().invoke(() -> getImpl().insert(domainType)), getInvoker());
- }
-
-
-
-
-
- @Override
- default Set getCollectionNames() {
- return getInvoker().invoke(() -> getImpl().getCollectionNames());
- }
-
-
- @Override
- default List findDistinct(Query query, String field, Class> entityClass, Class resultClass) {
- return getInvoker().invoke(() -> getImpl().findDistinct(query, field, entityClass, resultClass));
- }
-
- @Override
- default List findDistinct(Query query, String field, String collectionName, Class> entityClass, Class resultClass) {
- return getInvoker().invoke(() -> getImpl().findDistinct(query, field, collectionName, entityClass, resultClass));
- }
-
- @Override
- default T findAndReplace(Query query, S replacement, FindAndReplaceOptions options, Class entityType, String collectionName, Class resultType) {
- return getInvoker().invoke(() -> getImpl().findAndReplace(query, replacement, options, entityType, collectionName, resultType));
- }
-
- @Override
- default MapReduceWithMapFunction mapReduce(Class domainType) {
- return getInvoker().invoke(() -> new MapReduceWithMapFunctionDecoratorImpl<>(getImpl().mapReduce(domainType), getInvoker()));
- }
-
- @Override
- default MongoOperations withSession(ClientSession session) {
- return new MongoOperationsDecoratorImpl(getInvoker().invoke(()-> getImpl().withSession(session)), getInvoker());
- }
-
- @Override
- default IndexOperations indexOps(String collectionName) {
- return getInvoker().invoke(() -> new IndexOperationsDecoratorImpl(getImpl().indexOps(collectionName), getInvoker()));
- }
-
- @Override
- default IndexOperations indexOps(Class> entityClass) {
- return getInvoker().invoke(() -> new IndexOperationsDecoratorImpl(getImpl().indexOps(entityClass), getInvoker()));
- }
-
- @Override
- default BulkOperations bulkOps(BulkOperations.BulkMode mode, String collectionName) {
- return new BulkOperationsDecoratorImpl(getInvoker().invoke(() -> getImpl().bulkOps(mode, collectionName)), getInvoker());
- }
-
- @Override
- default BulkOperations bulkOps(BulkOperations.BulkMode mode, Class> entityType) {
- return new BulkOperationsDecoratorImpl(getInvoker().invoke(() -> getImpl().bulkOps(mode, entityType)), getInvoker());
- }
-
- @Override
- default BulkOperations bulkOps(BulkOperations.BulkMode mode, Class> entityType, String collectionName) {
- return new BulkOperationsDecoratorImpl(getInvoker().invoke(() -> getImpl().bulkOps(mode, entityType, collectionName)), getInvoker());
- }
-
- @Override
- default ScriptOperations scriptOps() {
- return new ScriptOperationsDecoratorImpl(getInvoker().invoke(()-> getImpl().scriptOps()), getInvoker());
- }
-
-
- //TODO create decorator for sessionScoped
- @Override
- default SessionScoped withSession(ClientSessionOptions sessionOptions) {
- return new SessionScopedDecoratorImpl(getInvoker().invoke(()-> getImpl().withSession(sessionOptions)), getInvoker());//todo remove this
- }
-
- @Override
- default SessionScoped withSession(Supplier sessionProvider) {
- return new SessionScopedDecoratorImpl(getInvoker().invoke(()-> getImpl().withSession(sessionProvider)), getInvoker());//todo remove this
- }
-
-
-}
diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/ScriptOperationsDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/ScriptOperationsDecorator.java
deleted file mode 100644
index f28775351..000000000
--- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/ScriptOperationsDecorator.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator;
-
-import io.changock.migration.api.annotations.NonLockGuarded;
-import io.changock.migration.api.annotations.NonLockGuardedType;
-import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker;
-import org.springframework.data.mongodb.core.ScriptOperations;
-import org.springframework.data.mongodb.core.script.ExecutableMongoScript;
-import org.springframework.data.mongodb.core.script.NamedMongoScript;
-
-import java.util.Set;
-
-@Deprecated
-public interface ScriptOperationsDecorator extends ScriptOperations {
-
- ScriptOperations getImpl();
-
- LockGuardInvoker getInvoker();
-
-
- @Override
- @NonLockGuarded(NonLockGuardedType.NONE)
- default NamedMongoScript register(ExecutableMongoScript script) {
- return getInvoker().invoke(()-> getImpl().register(script));
- }
-
- @Override
- default NamedMongoScript register(NamedMongoScript script) {
- return getInvoker().invoke(()-> getImpl().register(script));
- }
-
- @Override
- default Object execute(ExecutableMongoScript script, Object... args) {
- return getInvoker().invoke(()-> getImpl().execute(script, args));
- }
-
- @Override
- default Object call(String scriptName, Object... args) {
- return getInvoker().invoke(()-> getImpl().call(scriptName, args));
- }
-
- @Override
- default boolean exists(String scriptName) {
- return getInvoker().invoke(()-> getImpl().exists(scriptName));
- }
-
- @Override
- default Set getScriptNames() {
- return getInvoker().invoke(()-> getImpl().getScriptNames());
- }
-}
diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/SessionCallbackDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/SessionCallbackDecorator.java
deleted file mode 100644
index 602e051d2..000000000
--- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/SessionCallbackDecorator.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator;
-
-import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker;
-import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.impl.MongoOperationsDecoratorImpl;
-import org.springframework.data.mongodb.core.MongoOperations;
-import org.springframework.data.mongodb.core.SessionCallback;
-
-public interface SessionCallbackDecorator extends SessionCallback {
-
-
- SessionCallback getImpl();
-
- LockGuardInvoker getInvoker();
-
- @Override
- default T doInSession(MongoOperations operations) {
- return getInvoker().invoke(()-> (T)getImpl().doInSession(new MongoOperationsDecoratorImpl(operations, getInvoker())));
- }
-}
diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/SessionScopedDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/SessionScopedDecorator.java
deleted file mode 100644
index 3693c472b..000000000
--- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/SessionScopedDecorator.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator;
-
-import io.changock.migration.api.annotations.NonLockGuarded;
-import io.changock.migration.api.annotations.NonLockGuardedType;
-import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker;
-import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.impl.ClientSessionDecoratorImpl;
-import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.impl.SessionCallbackDecoratorImpl;
-import io.changock.migration.api.annotations.DecoratorDiverted;
-import com.mongodb.client.ClientSession;
-import org.springframework.data.mongodb.core.SessionCallback;
-import org.springframework.data.mongodb.core.SessionScoped;
-
-import java.util.function.Consumer;
-
-public interface SessionScopedDecorator extends SessionScoped {
-
- SessionScoped getImpl();
-
- LockGuardInvoker getInvoker();
-
- @Override
- @DecoratorDiverted
- @NonLockGuarded(NonLockGuardedType.NONE)
- default T execute(SessionCallback sessionCallback, Consumer clientSessionConsumer) {
- return getImpl().execute(
- new SessionCallbackDecoratorImpl<>(sessionCallback, getInvoker()),
- clientSession -> clientSessionConsumer.accept(new ClientSessionDecoratorImpl(clientSession, getInvoker())));
- }
-
- @Override
- @DecoratorDiverted
- @NonLockGuarded(NonLockGuardedType.NONE)
- default T execute(SessionCallback sessionCallback) {
- return getImpl().execute(new SessionCallbackDecoratorImpl<>(sessionCallback, getInvoker()), session -> { });
- }
-}
diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/impl/BulkOperationsDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/impl/BulkOperationsDecoratorImpl.java
deleted file mode 100644
index 3efb38f69..000000000
--- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/impl/BulkOperationsDecoratorImpl.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.impl;
-
-import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker;
-import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.BulkOperationsDecorator;
-import org.springframework.data.mongodb.core.BulkOperations;
-
-public class BulkOperationsDecoratorImpl implements BulkOperationsDecorator {
-
- private final BulkOperations impl;
- private final LockGuardInvoker invoker;
-
- public BulkOperationsDecoratorImpl(BulkOperations impl, LockGuardInvoker invoker) {
- this.impl = impl;
- this.invoker = invoker;
- }
- @Override
- public BulkOperations getImpl() {
- return impl;
- }
-
- @Override
- public LockGuardInvoker getInvoker() {
- return invoker;
- }
-}
diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/impl/ClientSessionDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/impl/ClientSessionDecoratorImpl.java
deleted file mode 100644
index 1871f4db3..000000000
--- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/impl/ClientSessionDecoratorImpl.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.impl;
-
-import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker;
-import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.ClientSessionDecorator;
-import com.mongodb.client.ClientSession;
-
-public class ClientSessionDecoratorImpl implements ClientSessionDecorator {
-
- private final ClientSession impl;
- private final LockGuardInvoker invoker;
-
- public ClientSessionDecoratorImpl(ClientSession impl, LockGuardInvoker invoker) {
- this.impl = impl;
- this.invoker = invoker;
- }
- @Override
- public ClientSession getImpl() {
- return impl;
- }
-
- @Override
- public LockGuardInvoker getInvoker() {
- return invoker;
- }
-}
diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/impl/CloseableIteratorDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/impl/CloseableIteratorDecoratorImpl.java
deleted file mode 100644
index 2ec3bfedb..000000000
--- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/impl/CloseableIteratorDecoratorImpl.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.impl;
-
-import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker;
-import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.CloseableIteratorDecorator;
-import org.springframework.data.util.CloseableIterator;
-
-public class CloseableIteratorDecoratorImpl implements CloseableIteratorDecorator {
-
- private final LockGuardInvoker invoker;
- private final CloseableIterator impl;
-
- public CloseableIteratorDecoratorImpl(CloseableIterator implementation, LockGuardInvoker invoker) {
- this.impl = implementation;
- this.invoker = invoker;
- }
-
- @Override
- public CloseableIterator getImpl() {
- return impl;
- }
-
- @Override
- public LockGuardInvoker getInvoker() {
- return invoker;
- }
-
-
-}
diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/impl/IndexOperationsDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/impl/IndexOperationsDecoratorImpl.java
deleted file mode 100644
index 2cdc082ae..000000000
--- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/impl/IndexOperationsDecoratorImpl.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.impl;
-
-import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker;
-import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.IndexOperationsDecorator;
-import org.springframework.data.mongodb.core.index.IndexOperations;
-
-public class IndexOperationsDecoratorImpl implements IndexOperationsDecorator {
-
- private final IndexOperations impl;
- private final LockGuardInvoker invoker;
-
- public IndexOperationsDecoratorImpl(IndexOperations impl, LockGuardInvoker invoker) {
- this.impl = impl;
- this.invoker = invoker;
- }
- @Override
- public IndexOperations getImpl() {
- return impl;
- }
-
- @Override
- public LockGuardInvoker getInvoker() {
- return invoker;
- }
-}
diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/impl/MongoDbFactoryDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/impl/MongoDbFactoryDecoratorImpl.java
deleted file mode 100644
index 177a8309a..000000000
--- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/impl/MongoDbFactoryDecoratorImpl.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.impl;
-
-import io.mongock.driver.api.lock.guard.decorator.DecoratorBase;
-import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker;
-import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.MongoDbFactoryDecorator;
-import org.springframework.data.mongodb.MongoDbFactory;
-
-@Deprecated
-public class MongoDbFactoryDecoratorImpl extends DecoratorBase implements MongoDbFactoryDecorator {
-
- public MongoDbFactoryDecoratorImpl(MongoDbFactory impl, LockGuardInvoker invoker) {
- super(impl, invoker);
- }
-
-}
diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/impl/MongoOperationsDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/impl/MongoOperationsDecoratorImpl.java
deleted file mode 100644
index 63ff94ae3..000000000
--- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/impl/MongoOperationsDecoratorImpl.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.impl;
-
-import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker;
-import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.MongoOperationsDecorator;
-import org.springframework.data.mongodb.core.MongoOperations;
-
-public class MongoOperationsDecoratorImpl implements MongoOperationsDecorator {
-
- private final MongoOperations impl;
- private final LockGuardInvoker invoker;
-
- public MongoOperationsDecoratorImpl(MongoOperations impl, LockGuardInvoker invoker) {
- this.impl = impl;
- this.invoker = invoker;
- }
-
- @Override
- public MongoOperations getImpl() {
- return impl;
- }
-
- @Override
- public LockGuardInvoker getInvoker() {
- return invoker;
- }
-}
diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/impl/MongockTemplate.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/impl/MongockTemplate.java
index 7ea2e7752..3b713d115 100644
--- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/impl/MongockTemplate.java
+++ b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/impl/MongockTemplate.java
@@ -1,17 +1,5 @@
package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.impl;
-import io.changock.migration.api.annotations.NonLockGuarded;
-import io.changock.migration.api.annotations.NonLockGuardedType;
-import io.mongock.driver.api.lock.guard.decorator.DecoratorBase;
-import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker;
-import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.aggregation.impl.ExecutableAggregationDecoratorImpl;
-import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.find.impl.ExecutableFindDecoratorImpl;
-import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.insert.impl.ExecutableInsertDecoratorImpl;
-import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.mapreduce.impl.ExecutableMapReduceDecoratorImpl;
-import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.remove.impl.ExecutableRemoveDecoratorImpl;
-import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.update.impl.ExecutableUpdateDecoratorImpl;
-import io.mongock.driver.mongodb.v3.decorator.impl.MongoCollectionDecoratorImpl;
-import io.mongock.driver.mongodb.v3.decorator.impl.MongoDataBaseDecoratorImpl;
import com.mongodb.ClientSessionOptions;
import com.mongodb.ReadPreference;
import com.mongodb.WriteConcern;
@@ -20,18 +8,24 @@
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.result.DeleteResult;
import com.mongodb.client.result.UpdateResult;
+import io.mongock.driver.api.lock.guard.decorator.DecoratorBase;
import org.bson.Document;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.dao.support.PersistenceExceptionTranslator;
import org.springframework.data.geo.GeoResults;
-import org.springframework.data.mongodb.MongoDbFactory;
import org.springframework.data.mongodb.core.BulkOperations;
import org.springframework.data.mongodb.core.CollectionCallback;
import org.springframework.data.mongodb.core.CollectionOptions;
import org.springframework.data.mongodb.core.DbCallback;
import org.springframework.data.mongodb.core.DocumentCallbackHandler;
+import org.springframework.data.mongodb.core.ExecutableAggregationOperation;
+import org.springframework.data.mongodb.core.ExecutableFindOperation;
+import org.springframework.data.mongodb.core.ExecutableInsertOperation;
+import org.springframework.data.mongodb.core.ExecutableMapReduceOperation;
+import org.springframework.data.mongodb.core.ExecutableRemoveOperation;
+import org.springframework.data.mongodb.core.ExecutableUpdateOperation;
import org.springframework.data.mongodb.core.FindAndModifyOptions;
import org.springframework.data.mongodb.core.FindAndReplaceOptions;
import org.springframework.data.mongodb.core.MongoOperations;
@@ -72,605 +66,576 @@
* @see MongoTemplate
*/
@Deprecated
-public class MongockTemplate extends DecoratorBase implements MongoOperations, ApplicationContextAware, IndexOperationsProvider {
+public class MongockTemplate {
+
+ private final MongoTemplate impl;
+
+ public MongockTemplate(MongoTemplate impl) {
+ this.impl = impl;
+ }
- public MongockTemplate(MongoTemplate impl, LockGuardInvoker invoker) {
- super(impl, invoker);
+ public MongoTemplate getImpl() {
+ return impl;
}
- @NonLockGuarded(NonLockGuardedType.NONE)
+
public void setWriteResultChecking(WriteResultChecking resultChecking) {
getImpl().setWriteResultChecking(resultChecking);
}
- @NonLockGuarded(NonLockGuardedType.NONE)
+
public void setWriteConcern(WriteConcern writeConcern) {
getImpl().setWriteConcern(writeConcern);
}
- @NonLockGuarded(NonLockGuardedType.NONE)
+
public void setWriteConcernResolver(WriteConcernResolver writeConcernResolver) {
getImpl().setWriteConcernResolver(writeConcernResolver);
}
- @NonLockGuarded(NonLockGuardedType.NONE)
+
public void setReadPreference(ReadPreference readPreference) {
getImpl().setReadPreference(readPreference);
}
- @Override
- @NonLockGuarded(NonLockGuardedType.NONE)
+
+
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
getImpl().setApplicationContext(applicationContext);
}
- @Override
- @NonLockGuarded(NonLockGuardedType.NONE)
+
+
public MongoConverter getConverter() {
return getImpl().getConverter();
}
- @Override
+
public CloseableIterator stream(final Query query, final Class entityType) {
- return new CloseableIteratorDecoratorImpl<>(getInvoker().invoke(() -> getImpl().stream(query, entityType)), getInvoker());
+ return getImpl().stream(query, entityType);
}
- @Override
+
public CloseableIterator stream(final Query query, final Class entityType, final String collectionName) {
- return new CloseableIteratorDecoratorImpl<>(getInvoker().invoke(() -> getImpl().stream(query, entityType, collectionName)), getInvoker());
+ return getImpl().stream(query, entityType, collectionName);
}
- @Override
- @NonLockGuarded(NonLockGuardedType.NONE)
+
+
public String getCollectionName(Class> entityClass) {
return getImpl().getCollectionName(entityClass);
}
- @Override
+
public Document executeCommand(final String jsonCommand) {
- return getInvoker().invoke(() -> getImpl().executeCommand(jsonCommand));
+ return getImpl().executeCommand(jsonCommand);
}
- @Override
+
public Document executeCommand(final Document command) {
- return getInvoker().invoke(() -> getImpl().executeCommand(command));
+ return getImpl().executeCommand(command);
}
- @Override
+
public Document executeCommand(Document command, ReadPreference readPreference) {
- return getInvoker().invoke(() -> getImpl().executeCommand(command, readPreference));
+ return getImpl().executeCommand(command, readPreference);
}
- @Override
+
public void executeQuery(Query query, String collectionName, DocumentCallbackHandler dch) {
- getInvoker().invoke(() -> getImpl().executeQuery(query, collectionName, dch));
+ getImpl().executeQuery(query, collectionName, dch);
}
- @Override
+
public T execute(DbCallback action) {
- return getInvoker().invoke(() -> getImpl().execute(action));
+ return getImpl().execute(action);
}
- @Override
+
public T execute(Class> entityClass, CollectionCallback callback) {
- return getInvoker().invoke(() -> getImpl().execute(entityClass, callback));
+ return getImpl().execute(entityClass, callback);
}
- @Override
+
public T execute(String collectionName, CollectionCallback callback) {
- return getInvoker().invoke(() -> getImpl().execute(collectionName, callback));
+ return getImpl().execute(collectionName, callback);
}
- @Override
+
public MongoCollection createCollection(Class entityClass) {
- return new MongoCollectionDecoratorImpl<>(getInvoker().invoke(() -> getImpl().createCollection(entityClass)), getInvoker());
+ return getImpl().createCollection(entityClass);
}
- @Override
+
public MongoCollection createCollection(Class entityClass, CollectionOptions collectionOptions) {
- return new MongoCollectionDecoratorImpl<>(getInvoker().invoke(() -> getImpl().createCollection(entityClass, collectionOptions)), getInvoker());
+ return getImpl().createCollection(entityClass, collectionOptions);
}
- @Override
+
public MongoCollection createCollection(final String collectionName) {
- return new MongoCollectionDecoratorImpl<>(getInvoker().invoke(() -> getImpl().createCollection(collectionName)), getInvoker());
+ return getImpl().createCollection(collectionName);
}
- @Override
+
public MongoCollection createCollection(final String collectionName, final CollectionOptions collectionOptions) {
- return new MongoCollectionDecoratorImpl<>(getInvoker().invoke(() -> getImpl().createCollection(collectionName, collectionOptions)), getInvoker());
+ return getImpl().createCollection(collectionName, collectionOptions);
}
- @Override
+
public MongoCollection getCollection(final String collectionName) {
- return new MongoCollectionDecoratorImpl<>(getInvoker().invoke(() -> getImpl().getCollection(collectionName)), getInvoker());
+ return getImpl().getCollection(collectionName);
}
- @Override
+
public boolean collectionExists(Class entityClass) {
- return getInvoker().invoke(() -> getImpl().collectionExists(entityClass));
+ return getImpl().collectionExists(entityClass);
}
- @Override
+
public boolean collectionExists(final String collectionName) {
- return getInvoker().invoke(() -> getImpl().collectionExists(collectionName));
+ return getImpl().collectionExists(collectionName);
}
- @Override
+
public void dropCollection(Class entityClass) {
- getInvoker().invoke(() -> getImpl().dropCollection(entityClass));
+ getImpl().dropCollection(entityClass);
}
- @Override
+
public void dropCollection(String collectionName) {
- getInvoker().invoke(() -> getImpl().dropCollection(collectionName));
+ getImpl().dropCollection(collectionName);
}
- @Override
+
public T findOne(Query query, Class entityClass) {
- return getInvoker().invoke(() -> getImpl().findOne(query, entityClass));
+ return getImpl().findOne(query, entityClass);
}
- @Override
+
public T findOne(Query query, Class entityClass, String collectionName) {
- return getInvoker().invoke(() -> getImpl().findOne(query, entityClass, collectionName));
+ return getImpl().findOne(query, entityClass, collectionName);
}
- @Override
+
public boolean exists(Query query, Class> entityClass) {
- return getInvoker().invoke(() -> getImpl().exists(query, entityClass));
+ return getImpl().exists(query, entityClass);
}
- @Override
+
public boolean exists(Query query, String collectionName) {
- return getInvoker().invoke(() -> getImpl().exists(query, collectionName));
+ return getImpl().exists(query, collectionName);
}
- @Override
+
public boolean exists(Query query, Class> entityClass, String collectionName) {
- return getInvoker().invoke(() -> getImpl().exists(query, entityClass, collectionName));
+ return getImpl().exists(query, entityClass, collectionName);
}
- @Override
+
public List find(Query query, Class entityClass) {
- return getInvoker().invoke(() -> getImpl().find(query, entityClass));
+ return getImpl().find(query, entityClass);
}
- @Override
+
public List find(Query query, Class entityClass, String collectionName) {
- return getInvoker().invoke(() -> getImpl().find(query, entityClass, collectionName));
+ return getImpl().find(query, entityClass, collectionName);
}
- @Override
+
public T findById(Object id, Class entityClass) {
- return getInvoker().invoke(() -> getImpl().findById(id, entityClass));
+ return getImpl().findById(id, entityClass);
}
- @Override
+
public T findById(Object id, Class entityClass, String collectionName) {
- return getInvoker().invoke(() -> getImpl().findById(id, entityClass, collectionName));
+ return getImpl().findById(id, entityClass, collectionName);
}
- @Override
+
public GeoResults geoNear(NearQuery near, Class entityClass) {
- return getInvoker().invoke(() -> getImpl().geoNear(near, entityClass));
+ return getImpl().geoNear(near, entityClass);
}
- @Override
+
@SuppressWarnings("unchecked")
public GeoResults geoNear(NearQuery near, Class domainType, String collectionName) {
- return getInvoker().invoke(() -> getImpl().geoNear(near, domainType, collectionName));
+ return getImpl().geoNear(near, domainType, collectionName);
}
public GeoResults geoNear(NearQuery near, Class> domainType, String collectionName, Class returnType) {
- return getInvoker().invoke(() -> getImpl().geoNear(near, domainType, collectionName, returnType));
+ return getImpl().geoNear(near, domainType, collectionName, returnType);
}
- @Override
- public T findAndModify(Query query, Update update, Class entityClass) {
- return getInvoker().invoke(() -> getImpl().findAndModify(query, update, entityClass));
- }
- @Override
- public T findAndModify(Query query, Update update, Class entityClass, String collectionName) {
- return getInvoker().invoke(() -> getImpl().findAndModify(query, update, entityClass, collectionName));
- }
-
- @Override
- public T findAndModify(Query query, Update update, FindAndModifyOptions options, Class entityClass) {
- return getInvoker().invoke(() -> getImpl().findAndModify(query, update, options, entityClass));
- }
-
-
- @Override
- public T findAndModify(Query query, Update update, FindAndModifyOptions options, Class entityClass, String collectionName) {
- return getInvoker().invoke(() -> getImpl().findAndModify(query, update, options, entityClass, collectionName));
- }
-
- @Override
public T findAndRemove(Query query, Class entityClass) {
- return getInvoker().invoke(() -> getImpl().findAndRemove(query, entityClass));
+ return getImpl().findAndRemove(query, entityClass);
}
- @Override
+
public T findAndRemove(Query query, Class entityClass, String collectionName) {
- return getInvoker().invoke(() -> getImpl().findAndRemove(query, entityClass, collectionName));
+ return getImpl().findAndRemove(query, entityClass, collectionName);
}
- @Override
+
public long count(Query query, Class> entityClass) {
- return getInvoker().invoke(() -> getImpl().count(query, entityClass));
+ return getImpl().count(query, entityClass);
}
- @Override
+
public long count(final Query query, String collectionName) {
- return getInvoker().invoke(() -> getImpl().count(query, collectionName));
+ return getImpl().count(query, collectionName);
}
- @Override
+
public long count(Query query, Class> entityClass, String collectionName) {
- return getInvoker().invoke(() -> getImpl().count(query, entityClass, collectionName));
+ return getImpl().count(query, entityClass, collectionName);
}
- @Override
+
public T insert(T objectToSave) {
- return getInvoker().invoke(() -> getImpl().insert(objectToSave));
+ return getImpl().insert(objectToSave);
}
- @Override
+
public T insert(T objectToSave, String collectionName) {
- return getInvoker().invoke(() -> getImpl().insert(objectToSave, collectionName));
+ return getImpl().insert(objectToSave, collectionName);
}
- @Override
+
public Collection insert(Collection extends T> batchToSave, Class> entityClass) {
- return getInvoker().invoke(() -> getImpl().insert(batchToSave, entityClass));
+ return getImpl().insert(batchToSave, entityClass);
}
- @Override
+
public Collection insert(Collection extends T> batchToSave, String collectionName) {
- return getInvoker().invoke(() -> getImpl().insert(batchToSave, collectionName));
+ return getImpl().insert(batchToSave, collectionName);
}
- @Override
+
public Collection insertAll(Collection extends T> objectsToSave) {
- return getInvoker().invoke(() -> getImpl().insertAll(objectsToSave));
+ return getImpl().insertAll(objectsToSave);
}
- @Override
+
public T save(T objectToSave) {
- return getInvoker().invoke(() -> getImpl().save(objectToSave));
+ return getImpl().save(objectToSave);
}
- @Override
+
public T save(T objectToSave, String collectionName) {
- return getInvoker().invoke(() -> getImpl().save(objectToSave, collectionName));
+ return getImpl().save(objectToSave, collectionName);
}
- @Override
+
public UpdateResult upsert(Query query, Update update, Class> entityClass) {
- return getInvoker().invoke(() -> getImpl().upsert(query, update, entityClass));
+ return getImpl().upsert(query, update, entityClass);
}
- @Override
+
public UpdateResult upsert(Query query, Update update, String collectionName) {
- return getInvoker().invoke(() -> getImpl().upsert(query, update, collectionName));
+ return getImpl().upsert(query, update, collectionName);
}
- @Override
+
public UpdateResult upsert(Query query, Update update, Class> entityClass, String collectionName) {
- return getInvoker().invoke(() -> getImpl().upsert(query, update, entityClass, collectionName));
+ return getImpl().upsert(query, update, entityClass, collectionName);
}
- @Override
+
public UpdateResult updateFirst(Query query, Update update, Class> entityClass) {
- return getInvoker().invoke(() -> getImpl().updateFirst(query, update, entityClass));
+ return getImpl().updateFirst(query, update, entityClass);
}
- @Override
- public UpdateResult updateFirst(final Query query, final Update update, final String collectionName) {
- return getInvoker().invoke(() -> getImpl().updateFirst(query, update, collectionName));
+
+ public UpdateResult updateFirst(Query query, Update update, String collectionName) {
+ return getImpl().updateFirst(query, update, collectionName);
}
- @Override
+
public UpdateResult updateFirst(Query query, Update update, Class> entityClass, String collectionName) {
- return getInvoker().invoke(() -> getImpl().updateFirst(query, update, entityClass, collectionName));
+ return getImpl().updateFirst(query, update, entityClass, collectionName);
}
- @Override
+
public UpdateResult updateMulti(Query query, Update update, Class> entityClass) {
- return getInvoker().invoke(() -> getImpl().updateMulti(query, update, entityClass));
+ return getImpl().updateMulti(query, update, entityClass);
}
- @Override
- public UpdateResult updateMulti(final Query query, final Update update, String collectionName) {
- return getInvoker().invoke(() -> getImpl().updateMulti(query, update, collectionName));
+
+ public UpdateResult updateMulti(Query query, Update update, String collectionName) {
+ return getImpl().updateMulti(query, update, collectionName);
}
- @Override
- public UpdateResult updateMulti(final Query query, final Update update, Class> entityClass, String collectionName) {
- return getInvoker().invoke(() -> getImpl().updateMulti(query, update, entityClass, collectionName));
+
+ public UpdateResult updateMulti(Query query, Update update, Class> entityClass, String collectionName) {
+ return getImpl().updateMulti(query, update, entityClass, collectionName);
}
- @Override
+
public DeleteResult remove(Object object) {
- return getInvoker().invoke(() -> getImpl().remove(object));
+ return getImpl().remove(object);
}
- @Override
+
public DeleteResult remove(Object object, String collectionName) {
- return getInvoker().invoke(() -> getImpl().remove(object, collectionName));
+ return getImpl().remove(object, collectionName);
}
- @Override
+
public DeleteResult remove(Query query, String collectionName) {
- return getInvoker().invoke(() -> getImpl().remove(query, collectionName));
+ return getImpl().remove(query, collectionName);
}
- @Override
+
public DeleteResult remove(Query query, Class> entityClass) {
- return getInvoker().invoke(() -> getImpl().remove(query, entityClass));
+ return getImpl().remove(query, entityClass);
}
- @Override
+
public DeleteResult remove(Query query, Class> entityClass, String collectionName) {
- return getInvoker().invoke(() -> getImpl().remove(query, entityClass, collectionName));
+ return getImpl().remove(query, entityClass, collectionName);
}
- @Override
+
public List findAll(Class entityClass) {
- return getInvoker().invoke(() -> getImpl().findAll(entityClass));
+ return getImpl().findAll(entityClass);
}
- @Override
+
public