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 batchToSave, Class entityClass) { - return getInvoker().invoke(() -> getImpl().insert(batchToSave, entityClass)); - } - - @Override - default Collection insert(Collection batchToSave, String collectionName) { - return getInvoker().invoke(() -> getImpl().insert(batchToSave, collectionName)); - } - - @Override - default Collection insertAll(Collection 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 batchToSave, Class entityClass) { - return getInvoker().invoke(() -> getImpl().insert(batchToSave, entityClass)); + return getImpl().insert(batchToSave, entityClass); } - @Override + public Collection insert(Collection batchToSave, String collectionName) { - return getInvoker().invoke(() -> getImpl().insert(batchToSave, collectionName)); + return getImpl().insert(batchToSave, collectionName); } - @Override + public Collection insertAll(Collection 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 List findAll(Class entityClass, String collectionName) { - return getInvoker().invoke(() -> getImpl().findAll(entityClass, collectionName)); + return getImpl().findAll(entityClass, collectionName); } - @Override + public MapReduceResults mapReduce(String inputCollectionName, String mapFunction, String reduceFunction, Class entityClass) { - return getInvoker().invoke(() -> getImpl().mapReduce(inputCollectionName, mapFunction, reduceFunction, entityClass)); + return getImpl().mapReduce(inputCollectionName, mapFunction, reduceFunction, entityClass); } - @Override + public MapReduceResults mapReduce(String inputCollectionName, String mapFunction, String reduceFunction, MapReduceOptions mapReduceOptions, Class entityClass) { - return getInvoker().invoke(() -> getImpl().mapReduce(inputCollectionName, mapFunction, reduceFunction, mapReduceOptions, entityClass)); + return getImpl().mapReduce(inputCollectionName, mapFunction, reduceFunction, mapReduceOptions, entityClass); } - @Override + public MapReduceResults mapReduce(Query query, String inputCollectionName, String mapFunction, String reduceFunction, Class entityClass) { - return getInvoker().invoke(() -> getImpl().mapReduce(query, inputCollectionName, mapFunction, reduceFunction, entityClass)); + return getImpl().mapReduce(query, inputCollectionName, mapFunction, reduceFunction, entityClass); } - @Override + public 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)); + return getImpl().mapReduce(query, inputCollectionName, mapFunction, reduceFunction, mapReduceOptions, entityClass); } - @Override + public GroupByResults group(String inputCollectionName, GroupBy groupBy, Class entityClass) { - return getInvoker().invoke(() -> getImpl().group(inputCollectionName, groupBy, entityClass)); + return getImpl().group(inputCollectionName, groupBy, entityClass); } - @Override + public GroupByResults group(Criteria criteria, String inputCollectionName, GroupBy groupBy, Class entityClass) { - return getInvoker().invoke(() -> getImpl().group(criteria, inputCollectionName, groupBy, entityClass)); + return getImpl().group(criteria, inputCollectionName, groupBy, entityClass); } - @Override + public AggregationResults aggregate(TypedAggregation aggregation, Class outputType) { - return getInvoker().invoke(() -> getImpl().aggregate(aggregation, outputType)); + return getImpl().aggregate(aggregation, outputType); } - @Override + public AggregationResults aggregate(TypedAggregation aggregation, String inputCollectionName, Class outputType) { - return getInvoker().invoke(() -> getImpl().aggregate(aggregation, inputCollectionName, outputType)); + return getImpl().aggregate(aggregation, inputCollectionName, outputType); } - @Override + public AggregationResults aggregate(Aggregation aggregation, Class inputType, Class outputType) { - return getInvoker().invoke(() -> getImpl().aggregate(aggregation, inputType, outputType)); + return getImpl().aggregate(aggregation, inputType, outputType); } - @Override + public AggregationResults aggregate(Aggregation aggregation, String collectionName, Class outputType) { - return getInvoker().invoke(() -> getImpl().aggregate(aggregation, collectionName, outputType)); + return getImpl().aggregate(aggregation, collectionName, outputType); } - @Override + public CloseableIterator aggregateStream(TypedAggregation aggregation, String inputCollectionName, Class outputType) { - return new CloseableIteratorDecoratorImpl<>(getInvoker().invoke(() -> getImpl().aggregateStream(aggregation, inputCollectionName, outputType)), getInvoker()); + return getImpl().aggregateStream(aggregation, inputCollectionName, outputType); } - @Override + public CloseableIterator aggregateStream(TypedAggregation aggregation, Class outputType) { - return new CloseableIteratorDecoratorImpl<>(getInvoker().invoke(() -> getImpl().aggregateStream(aggregation, outputType)), getInvoker()); + return getImpl().aggregateStream(aggregation, outputType); } - @Override + public CloseableIterator aggregateStream(Aggregation aggregation, Class inputType, Class outputType) { - return new CloseableIteratorDecoratorImpl<>(getInvoker().invoke(() -> getImpl().aggregateStream(aggregation, inputType, outputType)), getInvoker()); + return getImpl().aggregateStream(aggregation, inputType, outputType); } - @Override + public CloseableIterator aggregateStream(Aggregation aggregation, String collectionName, Class outputType) { - return new CloseableIteratorDecoratorImpl<>(getInvoker().invoke(() -> getImpl().aggregateStream(aggregation, collectionName, outputType)), getInvoker()); + return getImpl().aggregateStream(aggregation, collectionName, outputType); } - @Override + public List findAllAndRemove(Query query, String collectionName) { - return getInvoker().invoke(() -> getImpl().findAllAndRemove(query, collectionName)); + return getImpl().findAllAndRemove(query, collectionName); } - @Override + public List findAllAndRemove(Query query, Class entityClass) { - return getInvoker().invoke(() -> getImpl().findAllAndRemove(query, entityClass)); + return getImpl().findAllAndRemove(query, entityClass); } - @Override + public List findAllAndRemove(Query query, Class entityClass, String collectionName) { - return getInvoker().invoke(() -> getImpl().findAllAndRemove(query, entityClass, collectionName)); + return getImpl().findAllAndRemove(query, entityClass, collectionName); } - @Override - public ExecutableFind query(Class domainType) { - return new ExecutableFindDecoratorImpl<>(getInvoker().invoke(() -> getImpl().query(domainType)), getInvoker()); + + public ExecutableFindOperation.ExecutableFind query(Class domainType) { + return getImpl().query(domainType); } - @Override - public ExecutableUpdate update(Class domainType) { - return new ExecutableUpdateDecoratorImpl<>(getInvoker().invoke(() -> getImpl().update(domainType)), getInvoker()); + + public ExecutableUpdateOperation.ExecutableUpdate update(Class domainType) { + return getImpl().update(domainType); } - @Override - public ExecutableRemove remove(Class domainType) { - return new ExecutableRemoveDecoratorImpl<>(getInvoker().invoke(() -> getImpl().remove(domainType)), getInvoker()); + + public ExecutableRemoveOperation.ExecutableRemove remove(Class domainType) { + return getImpl().remove(domainType); } - @Override - public ExecutableAggregation aggregateAndReturn(Class domainType) { - return new ExecutableAggregationDecoratorImpl<>(getInvoker().invoke(() -> getImpl().aggregateAndReturn(domainType)), getInvoker()); + + public ExecutableAggregationOperation.ExecutableAggregation aggregateAndReturn(Class domainType) { + return getImpl().aggregateAndReturn(domainType); } - @Override - public ExecutableInsert insert(Class domainType) { - return new ExecutableInsertDecoratorImpl<>(getInvoker().invoke(() -> getImpl().insert(domainType)), getInvoker()); + + public ExecutableInsertOperation.ExecutableInsert insert(Class domainType) { + return getImpl().insert(domainType); } - @Override + public Set getCollectionNames() { - return getInvoker().invoke(getImpl()::getCollectionNames); + return getImpl().getCollectionNames(); } public MongoDatabase getDb() { - return new MongoDataBaseDecoratorImpl(getInvoker().invoke(getImpl()::getDb), getInvoker()); + return getImpl().getDb(); } - @NonLockGuarded(NonLockGuardedType.NONE) + public PersistenceExceptionTranslator getExceptionTranslator() { return getImpl().getExceptionTranslator(); } - @NonLockGuarded(NonLockGuardedType.NONE) - public MongoDbFactory getMongoDbFactory() { - return getImpl().getMongoDbFactory(); - } - @Override public List findDistinct(Query query, String field, Class entityClass, Class resultClass) { - return getInvoker().invoke(() -> getImpl().findDistinct(query, field, entityClass, resultClass)); + return getImpl().findDistinct(query, field, entityClass, resultClass); } - @Override + public List findDistinct(Query query, String field, String collectionName, Class entityClass, Class resultClass) { - return getInvoker().invoke(() -> getImpl().findDistinct(query, field, collectionName, entityClass, resultClass)); + return getImpl().findDistinct(query, field, collectionName, entityClass, resultClass); } - @Override + public 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)); + return getImpl().findAndReplace(query, replacement, options, entityType, collectionName, resultType); } - @Override - public ExecutableMapReduce mapReduce(Class domainType) { - return getInvoker().invoke(() -> new ExecutableMapReduceDecoratorImpl<>(getImpl().mapReduce(domainType), getInvoker())); + + public ExecutableMapReduceOperation.ExecutableMapReduce mapReduce(Class domainType) { + return getImpl().mapReduce(domainType); } - @Override + public MongoOperations withSession(ClientSession session) { - return getInvoker().invoke(() -> new MongockTemplate(getImpl().withSession(session), getInvoker())); + return getImpl().withSession(session); } - @Override + public IndexOperations indexOps(String collectionName) { - return getInvoker().invoke(() -> new IndexOperationsDecoratorImpl(getImpl().indexOps(collectionName), getInvoker())); + return getImpl().indexOps(collectionName); } - @Override + + public IndexOperations indexOps(Class entityClass) { - return getInvoker().invoke(() -> new IndexOperationsDecoratorImpl(getImpl().indexOps(entityClass), getInvoker())); + return getImpl().indexOps(entityClass); } - @Override + public BulkOperations bulkOps(BulkOperations.BulkMode mode, String collectionName) { - return new BulkOperationsDecoratorImpl(getInvoker().invoke(() -> getImpl().bulkOps(mode, collectionName)), getInvoker()); + return getImpl().bulkOps(mode, collectionName); } - @Override + public BulkOperations bulkOps(BulkOperations.BulkMode mode, Class entityType) { - return new BulkOperationsDecoratorImpl(getInvoker().invoke(() -> getImpl().bulkOps(mode, entityType)), getInvoker()); + return getImpl().bulkOps(mode, entityType); } - @Override + public BulkOperations bulkOps(BulkOperations.BulkMode mode, Class entityType, String collectionName) { - return new BulkOperationsDecoratorImpl(getInvoker().invoke(() -> getImpl().bulkOps(mode, entityType, collectionName)), getInvoker()); + return getImpl().bulkOps(mode, entityType, collectionName); } - @Override + public ScriptOperations scriptOps() { - return new ScriptOperationsDecoratorImpl(getInvoker().invoke(getImpl()::scriptOps), getInvoker()); + return getImpl().scriptOps(); } - @Override + public SessionScoped withSession(ClientSessionOptions sessionOptions) { - return getInvoker().invoke(() -> new SessionScopedDecoratorImpl(getImpl().withSession(sessionOptions), getInvoker())); + return getImpl().withSession(sessionOptions); } //default methods overwritten to ensure lock - @Override + public List findDistinct(Query query, String field, String collection, Class resultClass) { - return getInvoker().invoke(() -> getImpl().findDistinct(query, field, collection, resultClass)); + return getImpl().findDistinct(query, field, collection, resultClass); } - @Override - public List findDistinct(String field, Class entityClass, Class resultClass) { - return getInvoker().invoke(() -> getImpl().findDistinct(field, entityClass, resultClass)); + + public T findAndModify(Query query, Update update, Class entityClass) { + return getImpl().findAndModify(query, update, entityClass); } - @Override - public SessionScoped withSession(Supplier sessionProvider) { - return new SessionScopedDecoratorImpl(getInvoker().invoke(() -> getImpl().withSession(sessionProvider)), getInvoker()); + + public T findAndModify(Query query, Update update, Class entityClass, String collectionName) { + return getImpl().findAndModify(query, update, entityClass, collectionName); } - @Override - public T findAndReplace(Query query, T replacement) { - return getInvoker().invoke(() -> getImpl().findAndReplace(query, replacement)); + + public T findAndModify(Query query, Update update, FindAndModifyOptions options, Class entityClass) { + return getImpl().findAndModify(query, update, options, entityClass); } - @Override - public T findAndReplace(Query query, T replacement, String collectionName) { - return getInvoker().invoke(() -> getImpl().findAndReplace(query, replacement, collectionName)); + + public T findAndModify(Query query, Update update, FindAndModifyOptions options, Class entityClass, String collectionName) { + return getImpl().findAndModify(query, update, options, entityClass, collectionName); } - @Override - public T findAndReplace(Query query, T replacement, FindAndReplaceOptions options) { - return getInvoker().invoke(() -> getImpl().findAndReplace(query, replacement, options)); - } - @Override - public T findAndReplace(Query query, T replacement, FindAndReplaceOptions options, String collectionName) { - return getInvoker().invoke(() -> getImpl().findAndReplace(query, replacement, options, collectionName)); + public List findDistinct(String field, Class entityClass, Class resultClass) { + return getImpl().findDistinct(field, entityClass, resultClass); } - @Override - public T findAndReplace(Query query, T replacement, FindAndReplaceOptions options, Class entityType, String collectionName) { - return getInvoker().invoke(() -> getImpl().findAndReplace(query, replacement, options, entityType, collectionName)); - } - @Override - public T findAndReplace(Query query, S replacement, FindAndReplaceOptions options, Class entityType, Class resultType) { - return getInvoker().invoke(() -> getImpl().findAndReplace(query, replacement, options, entityType, resultType)); + public SessionScoped withSession(Supplier sessionProvider) { + return getImpl().withSession(sessionProvider); } + } diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/impl/ScriptOperationsDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/impl/ScriptOperationsDecoratorImpl.java deleted file mode 100644 index b6e8928ce..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/impl/ScriptOperationsDecoratorImpl.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.ScriptOperationsDecorator; -import org.springframework.data.mongodb.core.ScriptOperations; - -@Deprecated -public class ScriptOperationsDecoratorImpl implements ScriptOperationsDecorator { - - private final ScriptOperations impl; - private final LockGuardInvoker invoker; - - public ScriptOperationsDecoratorImpl(ScriptOperations impl, LockGuardInvoker invoker) { - this.impl = impl; - this.invoker = invoker; - } - @Override - public ScriptOperations 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/SessionCallbackDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/impl/SessionCallbackDecoratorImpl.java deleted file mode 100644 index 1ed39575d..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/impl/SessionCallbackDecoratorImpl.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.SessionCallbackDecorator; -import org.springframework.data.mongodb.core.SessionCallback; - -public class SessionCallbackDecoratorImpl implements SessionCallbackDecorator { - - private final SessionCallback impl; - private final LockGuardInvoker invoker; - - public SessionCallbackDecoratorImpl(SessionCallback impl, LockGuardInvoker invoker) { - this.impl = impl; - this.invoker = invoker; - } - @Override - public SessionCallback 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/SessionScopedDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/impl/SessionScopedDecoratorImpl.java deleted file mode 100644 index 23b6c6d28..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/impl/SessionScopedDecoratorImpl.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.SessionScopedDecorator; -import org.springframework.data.mongodb.core.SessionScoped; - -public class SessionScopedDecoratorImpl implements SessionScopedDecorator { - - private final SessionScoped impl; - private final LockGuardInvoker invoker; - - public SessionScopedDecoratorImpl(SessionScoped impl, LockGuardInvoker invoker) { - this.impl = impl; - this.invoker = invoker; - } - @Override - public SessionScoped 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/operation/executable/aggregation/AggregationWithAggregationDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/aggregation/AggregationWithAggregationDecorator.java deleted file mode 100644 index 818807137..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/aggregation/AggregationWithAggregationDecorator.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.aggregation; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.aggregation.impl.TerminatingAggregationDecoratorImpl; -import org.springframework.data.mongodb.core.ExecutableAggregationOperation; -import org.springframework.data.mongodb.core.aggregation.Aggregation; - -public interface AggregationWithAggregationDecorator extends Invokable, ExecutableAggregationOperation.AggregationWithAggregation { - - ExecutableAggregationOperation.AggregationWithAggregation getImpl(); - - @Override - default ExecutableAggregationOperation.TerminatingAggregation by(Aggregation aggregation) { - return new TerminatingAggregationDecoratorImpl<>(getInvoker().invoke(()-> getImpl().by(aggregation)), getInvoker()); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/aggregation/AggregationWithCollectionDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/aggregation/AggregationWithCollectionDecorator.java deleted file mode 100644 index 5ae717da8..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/aggregation/AggregationWithCollectionDecorator.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.aggregation; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.aggregation.impl.AggregationWithAggregationDecoratorImpl; -import org.springframework.data.mongodb.core.ExecutableAggregationOperation; - -public interface AggregationWithCollectionDecorator extends Invokable, ExecutableAggregationOperation.AggregationWithCollection { - - ExecutableAggregationOperation.AggregationWithCollection getImpl(); - - @Override - default ExecutableAggregationOperation.AggregationWithAggregation inCollection(String collection) { - return new AggregationWithAggregationDecoratorImpl<>(getInvoker().invoke(()-> getImpl().inCollection(collection)), getInvoker()); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/aggregation/ExecutableAggregationDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/aggregation/ExecutableAggregationDecorator.java deleted file mode 100644 index d341e4895..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/aggregation/ExecutableAggregationDecorator.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.aggregation; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import org.springframework.data.mongodb.core.ExecutableAggregationOperation; - -public interface ExecutableAggregationDecorator extends - Invokable, - ExecutableAggregationOperation.ExecutableAggregation, - AggregationWithCollectionDecorator, - AggregationWithAggregationDecorator { - - ExecutableAggregationOperation.ExecutableAggregation getImpl(); -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/aggregation/TerminatingAggregationDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/aggregation/TerminatingAggregationDecorator.java deleted file mode 100644 index b0d64ee7a..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/aggregation/TerminatingAggregationDecorator.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.aggregation; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.impl.CloseableIteratorDecoratorImpl; -import org.springframework.data.mongodb.core.ExecutableAggregationOperation; -import org.springframework.data.mongodb.core.aggregation.AggregationResults; -import org.springframework.data.util.CloseableIterator; - -public interface TerminatingAggregationDecorator extends Invokable, ExecutableAggregationOperation.TerminatingAggregation { - - ExecutableAggregationOperation.TerminatingAggregation getImpl(); - - @Override - default AggregationResults all() { - return getInvoker().invoke(()-> getImpl().all()); - } - - @Override - default CloseableIterator stream() { - return new CloseableIteratorDecoratorImpl<>(getInvoker().invoke(()-> getImpl().stream()), getInvoker()); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/aggregation/impl/AggregationWithAggregationDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/aggregation/impl/AggregationWithAggregationDecoratorImpl.java deleted file mode 100644 index 7c14465fd..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/aggregation/impl/AggregationWithAggregationDecoratorImpl.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.aggregation.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.operation.executable.aggregation.AggregationWithAggregationDecorator; -import org.springframework.data.mongodb.core.ExecutableAggregationOperation; - -public class AggregationWithAggregationDecoratorImpl - extends DecoratorBase> - implements AggregationWithAggregationDecorator { - - public AggregationWithAggregationDecoratorImpl(ExecutableAggregationOperation.AggregationWithAggregation 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/operation/executable/aggregation/impl/AggregationWithCollectionDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/aggregation/impl/AggregationWithCollectionDecoratorImpl.java deleted file mode 100644 index ab3575f22..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/aggregation/impl/AggregationWithCollectionDecoratorImpl.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.aggregation.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.operation.executable.aggregation.AggregationWithCollectionDecorator; -import org.springframework.data.mongodb.core.ExecutableAggregationOperation; - -public class AggregationWithCollectionDecoratorImpl - extends DecoratorBase> - implements AggregationWithCollectionDecorator { - public AggregationWithCollectionDecoratorImpl(ExecutableAggregationOperation.AggregationWithCollection 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/operation/executable/aggregation/impl/ExecutableAggregationDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/aggregation/impl/ExecutableAggregationDecoratorImpl.java deleted file mode 100644 index ea22f61f0..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/aggregation/impl/ExecutableAggregationDecoratorImpl.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.aggregation.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.operation.executable.aggregation.ExecutableAggregationDecorator; -import org.springframework.data.mongodb.core.ExecutableAggregationOperation; - -public class ExecutableAggregationDecoratorImpl - extends DecoratorBase> - implements ExecutableAggregationDecorator { - public ExecutableAggregationDecoratorImpl(ExecutableAggregationOperation.ExecutableAggregation 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/operation/executable/aggregation/impl/TerminatingAggregationDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/aggregation/impl/TerminatingAggregationDecoratorImpl.java deleted file mode 100644 index 7f526e9b5..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/aggregation/impl/TerminatingAggregationDecoratorImpl.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.aggregation.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.operation.executable.aggregation.TerminatingAggregationDecorator; -import org.springframework.data.mongodb.core.ExecutableAggregationOperation; - -public class TerminatingAggregationDecoratorImpl - extends DecoratorBase> - implements TerminatingAggregationDecorator { - public TerminatingAggregationDecoratorImpl(ExecutableAggregationOperation.TerminatingAggregation 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/operation/executable/find/ExecutableFindDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/find/ExecutableFindDecorator.java deleted file mode 100644 index 0c9035e39..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/find/ExecutableFindDecorator.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.find; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import org.springframework.data.mongodb.core.ExecutableFindOperation; - - -public interface ExecutableFindDecorator extends Invokable, ExecutableFindOperation.ExecutableFind, FindWithCollectionDecorator, FindWithProjectionDecorator, FindDistinctDecorator { - - ExecutableFindOperation.ExecutableFind getImpl(); - - LockGuardInvoker getInvoker(); - - -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/find/FindDistinctDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/find/FindDistinctDecorator.java deleted file mode 100644 index b10e8cb5e..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/find/FindDistinctDecorator.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.find; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.find.impl.TerminatingDistinctDecoratorImpl; -import org.springframework.data.mongodb.core.ExecutableFindOperation; - -public interface FindDistinctDecorator extends Invokable, ExecutableFindOperation.FindDistinct { - - ExecutableFindOperation.FindDistinct getImpl(); - - - @Override - default ExecutableFindOperation.TerminatingDistinct distinct(String field) { - return new TerminatingDistinctDecoratorImpl<>(getInvoker().invoke(()-> getImpl().distinct(field)), getInvoker()); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/find/FindWithCollectionDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/find/FindWithCollectionDecorator.java deleted file mode 100644 index a14e25e66..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/find/FindWithCollectionDecorator.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.find; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.find.impl.FindWithProjectionDecoratorImpl; -import org.springframework.data.mongodb.core.ExecutableFindOperation; - -public interface FindWithCollectionDecorator extends Invokable, ExecutableFindOperation.FindWithCollection, FindWithQueryDecorator { - - ExecutableFindOperation.FindWithCollection getImpl(); - - @Override - default ExecutableFindOperation.FindWithProjection inCollection(String collection) { - return new FindWithProjectionDecoratorImpl<>(getInvoker().invoke(()-> getImpl().inCollection(collection)), getInvoker()); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/find/FindWithProjectionDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/find/FindWithProjectionDecorator.java deleted file mode 100644 index 6291b6ad5..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/find/FindWithProjectionDecorator.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.find; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.find.impl.FindWithQueryDecoratorImpl; -import org.springframework.data.mongodb.core.ExecutableFindOperation; - -public interface FindWithProjectionDecorator extends Invokable, ExecutableFindOperation.FindWithProjection, FindWithQueryDecorator, FindDistinctDecorator { - - ExecutableFindOperation.FindWithProjection getImpl(); - - @Override - default ExecutableFindOperation.FindWithQuery as(Class resultType) { - return new FindWithQueryDecoratorImpl<>(getInvoker().invoke(() -> getImpl().as(resultType)), getInvoker()); - - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/find/FindWithQueryDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/find/FindWithQueryDecorator.java deleted file mode 100644 index a5c588701..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/find/FindWithQueryDecorator.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.find; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.find.impl.TerminatingFindDecoratorImpl; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.find.impl.TerminatingFindNearDecoratorImpl; -import org.springframework.data.mongodb.core.ExecutableFindOperation; -import org.springframework.data.mongodb.core.query.NearQuery; -import org.springframework.data.mongodb.core.query.Query; - -public interface FindWithQueryDecorator extends Invokable, ExecutableFindOperation.FindWithQuery, TerminatingFindDecorator { - - ExecutableFindOperation.FindWithQuery getImpl(); - - - @Override - default ExecutableFindOperation.TerminatingFind matching(Query query) { - return new TerminatingFindDecoratorImpl<>(getInvoker().invoke(()-> getImpl().matching(query)), getInvoker()); - } - - @Override - default ExecutableFindOperation.TerminatingFindNear near(NearQuery nearQuery) { - return new TerminatingFindNearDecoratorImpl<>(getInvoker().invoke(()-> getImpl().near(nearQuery)), getInvoker()); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/find/TerminatingDistinctDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/find/TerminatingDistinctDecorator.java deleted file mode 100644 index e70d02503..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/find/TerminatingDistinctDecorator.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.find; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.find.impl.TerminatingDistinctDecoratorImpl; -import org.springframework.data.mongodb.core.query.Query; - -import java.util.List; - -import static org.springframework.data.mongodb.core.ExecutableFindOperation.TerminatingDistinct; - -public interface TerminatingDistinctDecorator extends TerminatingDistinct { - - TerminatingDistinct getImpl(); - - LockGuardInvoker getInvoker(); - - @Override - default List all() { - return getInvoker().invoke(() -> getImpl().all()); - } - - @Override - default TerminatingDistinct matching(Query query) { - TerminatingDistinct result = getInvoker().invoke(() -> getImpl().matching(query)); - return new TerminatingDistinctDecoratorImpl<>(result, getInvoker()); - } - - @Override - default TerminatingDistinct as(Class resultType) { - TerminatingDistinct result = getInvoker().invoke(() -> getImpl().as(resultType)); - return new TerminatingDistinctDecoratorImpl<>(result, getInvoker()); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/find/TerminatingFindDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/find/TerminatingFindDecorator.java deleted file mode 100644 index 67a49f0c1..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/find/TerminatingFindDecorator.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.find; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import org.springframework.data.mongodb.core.ExecutableFindOperation; - -import java.util.List; -import java.util.Optional; -import java.util.stream.Stream; - -public interface TerminatingFindDecorator extends ExecutableFindOperation.TerminatingFind { - - ExecutableFindOperation.TerminatingFind getImpl(); - - LockGuardInvoker getInvoker(); - - @Override - default Optional one() { - return getInvoker().invoke(()-> getImpl().one()); - } - - @Override - default T oneValue() { - return getInvoker().invoke(()-> getImpl().oneValue()); - } - - @Override - default Optional first() { - return getInvoker().invoke(()-> getImpl().first()); - } - - @Override - default T firstValue() { - return getInvoker().invoke(()-> getImpl().firstValue()); - } - - @Override - default List all() { - return getInvoker().invoke(()-> getImpl().all()); - } - - @Override - default Stream stream() { - return getInvoker().invoke(()-> getImpl().stream()); - } - - @Override - default long count() { - return getInvoker().invoke(()-> getImpl().count()); - } - - @Override - default boolean exists() { - return getInvoker().invoke(()-> getImpl().exists()); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/find/TerminatingFindNearDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/find/TerminatingFindNearDecorator.java deleted file mode 100644 index c662ebad3..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/find/TerminatingFindNearDecorator.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.find; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import org.springframework.data.geo.GeoResults; -import org.springframework.data.mongodb.core.ExecutableFindOperation; - -public interface TerminatingFindNearDecorator extends Invokable, ExecutableFindOperation.TerminatingFindNear { - - ExecutableFindOperation.TerminatingFindNear getImpl(); - - @Override - default GeoResults all() { - return getInvoker().invoke(()-> getImpl().all()); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/find/impl/ExecutableFindDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/find/impl/ExecutableFindDecoratorImpl.java deleted file mode 100644 index bcfbc98de..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/find/impl/ExecutableFindDecoratorImpl.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.find.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.operation.executable.find.ExecutableFindDecorator; -import org.springframework.data.mongodb.core.ExecutableFindOperation; - -public class ExecutableFindDecoratorImpl extends DecoratorBase> implements ExecutableFindDecorator { - - public ExecutableFindDecoratorImpl(ExecutableFindOperation.ExecutableFind 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/operation/executable/find/impl/FindDistinctDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/find/impl/FindDistinctDecoratorImpl.java deleted file mode 100644 index 1a26704f7..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/find/impl/FindDistinctDecoratorImpl.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.find.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.find.FindDistinctDecorator; -import org.springframework.data.mongodb.core.ExecutableFindOperation; - -public class FindDistinctDecoratorImpl implements FindDistinctDecorator { - - private final ExecutableFindOperation.FindDistinct impl; - - private final LockGuardInvoker invoker; - - public FindDistinctDecoratorImpl(ExecutableFindOperation.FindDistinct impl, LockGuardInvoker invoker) { - this.impl = impl; - this.invoker = invoker; - } - - @Override - public ExecutableFindOperation.FindDistinct 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/operation/executable/find/impl/FindWithCollectionDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/find/impl/FindWithCollectionDecoratorImpl.java deleted file mode 100644 index b29a1fdff..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/find/impl/FindWithCollectionDecoratorImpl.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.find.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.find.FindWithCollectionDecorator; -import org.springframework.data.mongodb.core.ExecutableFindOperation; - -public class FindWithCollectionDecoratorImpl implements FindWithCollectionDecorator { - - private final ExecutableFindOperation.FindWithCollection impl; - - private final LockGuardInvoker invoker; - - public FindWithCollectionDecoratorImpl(ExecutableFindOperation.FindWithCollection impl, LockGuardInvoker invoker) { - this.impl = impl; - this.invoker = invoker; - } - - @Override - public ExecutableFindOperation.FindWithCollection 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/operation/executable/find/impl/FindWithProjectionDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/find/impl/FindWithProjectionDecoratorImpl.java deleted file mode 100644 index a156fd90c..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/find/impl/FindWithProjectionDecoratorImpl.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.find.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.find.FindWithProjectionDecorator; -import org.springframework.data.mongodb.core.ExecutableFindOperation; - -public class FindWithProjectionDecoratorImpl implements FindWithProjectionDecorator { - - private final ExecutableFindOperation.FindWithProjection impl; - - private final LockGuardInvoker invoker; - - public FindWithProjectionDecoratorImpl(ExecutableFindOperation.FindWithProjection impl, LockGuardInvoker invoker) { - this.impl = impl; - this.invoker = invoker; - } - - @Override - public ExecutableFindOperation.FindWithProjection 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/operation/executable/find/impl/FindWithQueryDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/find/impl/FindWithQueryDecoratorImpl.java deleted file mode 100644 index 3c1bdea7e..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/find/impl/FindWithQueryDecoratorImpl.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.find.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.find.FindWithQueryDecorator; -import org.springframework.data.mongodb.core.ExecutableFindOperation; - -public class FindWithQueryDecoratorImpl implements FindWithQueryDecorator { - - private final ExecutableFindOperation.FindWithQuery impl; - private final LockGuardInvoker invoker; - - public FindWithQueryDecoratorImpl(ExecutableFindOperation.FindWithQuery impl, LockGuardInvoker invoker) { - this.impl = impl; - this.invoker = invoker; - } - - @Override - public ExecutableFindOperation.FindWithQuery 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/operation/executable/find/impl/TerminatingDistinctDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/find/impl/TerminatingDistinctDecoratorImpl.java deleted file mode 100644 index 83e535a9b..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/find/impl/TerminatingDistinctDecoratorImpl.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.find.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.find.TerminatingDistinctDecorator; -import org.springframework.data.mongodb.core.ExecutableFindOperation; - -public class TerminatingDistinctDecoratorImpl implements TerminatingDistinctDecorator { - - private final ExecutableFindOperation.TerminatingDistinct impl; - private final LockGuardInvoker invoker; - - public TerminatingDistinctDecoratorImpl(ExecutableFindOperation.TerminatingDistinct impl, LockGuardInvoker invoker) { - this.impl = impl; - this.invoker = invoker; - } - - @Override - public ExecutableFindOperation.TerminatingDistinct 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/operation/executable/find/impl/TerminatingFindDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/find/impl/TerminatingFindDecoratorImpl.java deleted file mode 100644 index 55609e56a..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/find/impl/TerminatingFindDecoratorImpl.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.find.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.find.TerminatingFindDecorator; -import org.springframework.data.mongodb.core.ExecutableFindOperation; - -public class TerminatingFindDecoratorImpl implements TerminatingFindDecorator { - - private final ExecutableFindOperation.TerminatingFind impl; - private final LockGuardInvoker invoker; - - public TerminatingFindDecoratorImpl(ExecutableFindOperation.TerminatingFind impl, LockGuardInvoker invoker) { - this.impl = impl; - this.invoker = invoker; - } - - @Override - public ExecutableFindOperation.TerminatingFind 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/operation/executable/find/impl/TerminatingFindNearDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/find/impl/TerminatingFindNearDecoratorImpl.java deleted file mode 100644 index 341aad90b..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/find/impl/TerminatingFindNearDecoratorImpl.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.find.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.find.TerminatingFindNearDecorator; -import org.springframework.data.mongodb.core.ExecutableFindOperation; - -public class TerminatingFindNearDecoratorImpl implements TerminatingFindNearDecorator { - - private final ExecutableFindOperation.TerminatingFindNear impl; - - private final LockGuardInvoker invoker; - - public TerminatingFindNearDecoratorImpl(ExecutableFindOperation.TerminatingFindNear impl, LockGuardInvoker invoker) { - this.impl = impl; - this.invoker = invoker; - } - - @Override - public ExecutableFindOperation.TerminatingFindNear 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/operation/executable/insert/ExecutableInsertDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/insert/ExecutableInsertDecorator.java deleted file mode 100644 index 0ce24394c..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/insert/ExecutableInsertDecorator.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.insert; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import org.springframework.data.mongodb.core.ExecutableInsertOperation; - -public interface ExecutableInsertDecorator extends - Invokable, - ExecutableInsertOperation.ExecutableInsert, - TerminatingInsertDecorator, - InsertWithCollectionDecorator, - InsertWithBulkModeDecorator { - - ExecutableInsertOperation.ExecutableInsert getImpl(); -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/insert/InsertWithBulkModeDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/insert/InsertWithBulkModeDecorator.java deleted file mode 100644 index bac13cc53..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/insert/InsertWithBulkModeDecorator.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.insert; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.insert.impl.TerminatingBulkInsertDecoratorImpl; -import org.springframework.data.mongodb.core.BulkOperations; -import org.springframework.data.mongodb.core.ExecutableInsertOperation; - -public interface InsertWithBulkModeDecorator extends Invokable, ExecutableInsertOperation.InsertWithBulkMode, TerminatingInsertDecorator { - - ExecutableInsertOperation.InsertWithBulkMode getImpl(); - - @Override - default ExecutableInsertOperation.TerminatingBulkInsert withBulkMode(BulkOperations.BulkMode bulkMode) { - return new TerminatingBulkInsertDecoratorImpl<>(getInvoker().invoke(()-> getImpl().withBulkMode(bulkMode)), getInvoker()); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/insert/InsertWithCollectionDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/insert/InsertWithCollectionDecorator.java deleted file mode 100644 index b18fdbebc..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/insert/InsertWithCollectionDecorator.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.insert; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.insert.impl.InsertWithBulkModeDecoratorImpl; -import org.springframework.data.mongodb.core.ExecutableInsertOperation; - -public interface InsertWithCollectionDecorator extends Invokable, ExecutableInsertOperation.InsertWithCollection { - - ExecutableInsertOperation.InsertWithCollection getImpl(); - - @Override - default ExecutableInsertOperation.InsertWithBulkMode inCollection(String collection) { - return new InsertWithBulkModeDecoratorImpl<>(getInvoker().invoke(()-> getImpl().inCollection(collection)), getInvoker()); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/insert/TerminatingBulkInsertDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/insert/TerminatingBulkInsertDecorator.java deleted file mode 100644 index b7c826bce..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/insert/TerminatingBulkInsertDecorator.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.insert; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import com.mongodb.bulk.BulkWriteResult; -import org.springframework.data.mongodb.core.ExecutableInsertOperation; - -import java.util.Collection; - -public interface TerminatingBulkInsertDecorator extends Invokable, ExecutableInsertOperation.TerminatingBulkInsert { - - ExecutableInsertOperation.TerminatingBulkInsert getImpl(); - - @Override - default BulkWriteResult bulk(Collection objects) { - return getInvoker().invoke(()-> getImpl().bulk(objects)); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/insert/TerminatingInsertDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/insert/TerminatingInsertDecorator.java deleted file mode 100644 index c464c00da..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/insert/TerminatingInsertDecorator.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.insert; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import org.springframework.data.mongodb.core.ExecutableInsertOperation; - -import java.util.Collection; - -public interface TerminatingInsertDecorator extends Invokable, ExecutableInsertOperation.TerminatingInsert, TerminatingBulkInsertDecorator { - - ExecutableInsertOperation.TerminatingInsert getImpl(); - - @Override - default T one(T object) { - return getInvoker().invoke(()-> getImpl().one(object)); - } - - @Override - default Collection all(Collection objects) { - return getInvoker().invoke(()-> getImpl().all(objects)); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/insert/impl/ExecutableInsertDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/insert/impl/ExecutableInsertDecoratorImpl.java deleted file mode 100644 index 7368afd9b..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/insert/impl/ExecutableInsertDecoratorImpl.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.insert.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.operation.executable.insert.ExecutableInsertDecorator; -import org.springframework.data.mongodb.core.ExecutableInsertOperation; - -public class ExecutableInsertDecoratorImpl - extends DecoratorBase> - implements ExecutableInsertDecorator { - public ExecutableInsertDecoratorImpl(ExecutableInsertOperation.ExecutableInsert 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/operation/executable/insert/impl/InsertWithBulkModeDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/insert/impl/InsertWithBulkModeDecoratorImpl.java deleted file mode 100644 index ca7b8ea91..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/insert/impl/InsertWithBulkModeDecoratorImpl.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.insert.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.operation.executable.insert.InsertWithBulkModeDecorator; -import org.springframework.data.mongodb.core.ExecutableInsertOperation; - -public class InsertWithBulkModeDecoratorImpl - extends DecoratorBase> - implements InsertWithBulkModeDecorator { - public InsertWithBulkModeDecoratorImpl(ExecutableInsertOperation.InsertWithBulkMode 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/operation/executable/insert/impl/InsertWithCollectionDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/insert/impl/InsertWithCollectionDecoratorImpl.java deleted file mode 100644 index 66a160813..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/insert/impl/InsertWithCollectionDecoratorImpl.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.insert.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.operation.executable.insert.InsertWithCollectionDecorator; -import org.springframework.data.mongodb.core.ExecutableInsertOperation; - -public class InsertWithCollectionDecoratorImpl - extends DecoratorBase> - implements InsertWithCollectionDecorator { - public InsertWithCollectionDecoratorImpl(ExecutableInsertOperation.InsertWithCollection 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/operation/executable/insert/impl/TerminatingBulkInsertDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/insert/impl/TerminatingBulkInsertDecoratorImpl.java deleted file mode 100644 index 98b7ff4cb..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/insert/impl/TerminatingBulkInsertDecoratorImpl.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.insert.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.operation.executable.insert.TerminatingBulkInsertDecorator; -import org.springframework.data.mongodb.core.ExecutableInsertOperation; - -public class TerminatingBulkInsertDecoratorImpl - extends DecoratorBase> - implements TerminatingBulkInsertDecorator { - public TerminatingBulkInsertDecoratorImpl(ExecutableInsertOperation.TerminatingBulkInsert 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/operation/executable/insert/impl/TerminatingInsertDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/insert/impl/TerminatingInsertDecoratorImpl.java deleted file mode 100644 index 76a99b550..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/insert/impl/TerminatingInsertDecoratorImpl.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.insert.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.operation.executable.insert.TerminatingInsertDecorator; -import org.springframework.data.mongodb.core.ExecutableInsertOperation; - -public class TerminatingInsertDecoratorImpl - extends DecoratorBase> - implements TerminatingInsertDecorator { - public TerminatingInsertDecoratorImpl(ExecutableInsertOperation.TerminatingInsert 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/operation/executable/mapreduce/ExecutableMapReduceDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/mapreduce/ExecutableMapReduceDecorator.java deleted file mode 100644 index b8b3b50be..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/mapreduce/ExecutableMapReduceDecorator.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.mapreduce; - -import org.springframework.data.mongodb.core.ExecutableMapReduceOperation; - -public interface ExecutableMapReduceDecorator extends ExecutableMapReduceOperation.ExecutableMapReduce, - MapReduceWithMapFunctionDecorator, MapReduceWithReduceFunctionDecorator, - MapReduceWithCollectionDecorator, MapReduceWithProjectionDecorator, MapReduceWithOptionsDecorator { - @Override - ExecutableMapReduceOperation.ExecutableMapReduce getImpl(); - -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/mapreduce/MapReduceWithCollectionDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/mapreduce/MapReduceWithCollectionDecorator.java deleted file mode 100644 index e0108d8fd..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/mapreduce/MapReduceWithCollectionDecorator.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.mapreduce; - -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.mapreduce.impl.MapReduceWithProjectionDecoratorImpl; -import org.springframework.data.mongodb.core.ExecutableMapReduceOperation; - -public interface MapReduceWithCollectionDecorator extends ExecutableMapReduceOperation.MapReduceWithCollection, MapReduceWithQueryDecorator { - - @Override - ExecutableMapReduceOperation.MapReduceWithCollection getImpl(); - - - @Override - default ExecutableMapReduceOperation.MapReduceWithProjection inCollection(String collection) { - return getInvoker().invoke(()-> new MapReduceWithProjectionDecoratorImpl<>(getImpl().inCollection(collection), getInvoker())); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/mapreduce/MapReduceWithMapFunctionDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/mapreduce/MapReduceWithMapFunctionDecorator.java deleted file mode 100644 index 0d5f68450..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/mapreduce/MapReduceWithMapFunctionDecorator.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.mapreduce; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.mapreduce.impl.MapReduceWithReduceFunctionDecoratorImpl; -import org.springframework.data.mongodb.core.ExecutableMapReduceOperation; - -public interface MapReduceWithMapFunctionDecorator extends ExecutableMapReduceOperation.MapReduceWithMapFunction { - - ExecutableMapReduceOperation.MapReduceWithMapFunction getImpl(); - - LockGuardInvoker getInvoker(); - - @Override - default ExecutableMapReduceOperation.MapReduceWithReduceFunction map(String mapFunction) { - return getInvoker().invoke(()-> new MapReduceWithReduceFunctionDecoratorImpl<>(getImpl().map(mapFunction), getInvoker())); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/mapreduce/MapReduceWithOptionsDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/mapreduce/MapReduceWithOptionsDecorator.java deleted file mode 100644 index b9f06c85c..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/mapreduce/MapReduceWithOptionsDecorator.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.mapreduce; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.mapreduce.impl.ExecutableMapReduceDecoratorImpl; -import org.springframework.data.mongodb.core.ExecutableMapReduceOperation; -import org.springframework.data.mongodb.core.mapreduce.MapReduceOptions; - -public interface MapReduceWithOptionsDecorator extends ExecutableMapReduceOperation.MapReduceWithOptions { - - ExecutableMapReduceOperation.MapReduceWithOptions getImpl(); - - LockGuardInvoker getInvoker(); - - //TODO implement - @Override - default ExecutableMapReduceOperation.ExecutableMapReduce with(MapReduceOptions options) { - return getInvoker().invoke(() -> new ExecutableMapReduceDecoratorImpl<>(getImpl().with(options), getInvoker())); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/mapreduce/MapReduceWithProjectionDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/mapreduce/MapReduceWithProjectionDecorator.java deleted file mode 100644 index d0f7356bf..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/mapreduce/MapReduceWithProjectionDecorator.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.mapreduce; - -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.mapreduce.impl.MapReduceWithQueryDecoratorImpl; -import org.springframework.data.mongodb.core.ExecutableMapReduceOperation; - -public interface MapReduceWithProjectionDecorator extends ExecutableMapReduceOperation.MapReduceWithProjection, MapReduceWithQueryDecorator { - - @Override - ExecutableMapReduceOperation.MapReduceWithProjection getImpl(); - - @Override - default ExecutableMapReduceOperation.MapReduceWithQuery as(Class resultType) { - return getInvoker().invoke(()-> new MapReduceWithQueryDecoratorImpl<>(getImpl().as(resultType), getInvoker())); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/mapreduce/MapReduceWithQueryDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/mapreduce/MapReduceWithQueryDecorator.java deleted file mode 100644 index 1ebb93eba..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/mapreduce/MapReduceWithQueryDecorator.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.mapreduce; - -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.mapreduce.impl.TerminatingMapReduceDecoratorImpl; -import org.springframework.data.mongodb.core.ExecutableMapReduceOperation; -import org.springframework.data.mongodb.core.query.Query; - -public interface MapReduceWithQueryDecorator extends ExecutableMapReduceOperation.MapReduceWithQuery, TerminatingMapReduceDecorator { - - - @Override - ExecutableMapReduceOperation.MapReduceWithQuery getImpl(); - - @Override - default ExecutableMapReduceOperation.TerminatingMapReduce matching(Query query) { - return getInvoker().invoke(()-> new TerminatingMapReduceDecoratorImpl<>(getImpl().matching(query), getInvoker())); - } - -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/mapreduce/MapReduceWithReduceFunctionDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/mapreduce/MapReduceWithReduceFunctionDecorator.java deleted file mode 100644 index afe17e3c0..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/mapreduce/MapReduceWithReduceFunctionDecorator.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.mapreduce; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.mapreduce.impl.ExecutableMapReduceDecoratorImpl; -import org.springframework.data.mongodb.core.ExecutableMapReduceOperation; - -public interface MapReduceWithReduceFunctionDecorator extends ExecutableMapReduceOperation.MapReduceWithReduceFunction { - - ExecutableMapReduceOperation.MapReduceWithReduceFunction getImpl(); - - LockGuardInvoker getInvoker(); - - //TODO IMPLEMENT THIS DECORATOR - @Override - default ExecutableMapReduceOperation.ExecutableMapReduce reduce(String reduceFunction) { - return getInvoker().invoke(() -> new ExecutableMapReduceDecoratorImpl<>(getImpl().reduce(reduceFunction), getInvoker())); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/mapreduce/TerminatingMapReduceDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/mapreduce/TerminatingMapReduceDecorator.java deleted file mode 100644 index 2f13ae82d..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/mapreduce/TerminatingMapReduceDecorator.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.mapreduce; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import org.springframework.data.mongodb.core.ExecutableMapReduceOperation; - -import java.util.List; - -public interface TerminatingMapReduceDecorator extends ExecutableMapReduceOperation.TerminatingMapReduce { - ExecutableMapReduceOperation.TerminatingMapReduce getImpl(); - - LockGuardInvoker getInvoker(); - - @Override - default List all() { - return getInvoker().invoke(() -> getImpl().all()); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/mapreduce/impl/ExecutableMapReduceDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/mapreduce/impl/ExecutableMapReduceDecoratorImpl.java deleted file mode 100644 index b0b2fd260..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/mapreduce/impl/ExecutableMapReduceDecoratorImpl.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.mapreduce.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.mapreduce.ExecutableMapReduceDecorator; -import org.springframework.data.mongodb.core.ExecutableMapReduceOperation; - -public class ExecutableMapReduceDecoratorImpl implements ExecutableMapReduceDecorator { - - private final ExecutableMapReduceOperation.ExecutableMapReduce impl; - private final LockGuardInvoker invoker; - - public ExecutableMapReduceDecoratorImpl(ExecutableMapReduceOperation.ExecutableMapReduce impl, LockGuardInvoker invoker) { - this.impl = impl; - this.invoker = invoker; - } - - @Override - public ExecutableMapReduceOperation.ExecutableMapReduce 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/operation/executable/mapreduce/impl/MapReduceWithCollectionDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/mapreduce/impl/MapReduceWithCollectionDecoratorImpl.java deleted file mode 100644 index 5af4dd8a0..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/mapreduce/impl/MapReduceWithCollectionDecoratorImpl.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.mapreduce.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.mapreduce.MapReduceWithCollectionDecorator; -import org.springframework.data.mongodb.core.ExecutableMapReduceOperation; - -public class MapReduceWithCollectionDecoratorImpl implements MapReduceWithCollectionDecorator { - - private final ExecutableMapReduceOperation.MapReduceWithCollection impl; - private final LockGuardInvoker invoker; - - public MapReduceWithCollectionDecoratorImpl(ExecutableMapReduceOperation.MapReduceWithCollection impl, - LockGuardInvoker invoker) { - this.impl = impl; - this.invoker = invoker; - } - @Override - public ExecutableMapReduceOperation.MapReduceWithCollection 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/operation/executable/mapreduce/impl/MapReduceWithMapFunctionDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/mapreduce/impl/MapReduceWithMapFunctionDecoratorImpl.java deleted file mode 100644 index 70eaa4447..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/mapreduce/impl/MapReduceWithMapFunctionDecoratorImpl.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.mapreduce.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.mapreduce.MapReduceWithMapFunctionDecorator; -import org.springframework.data.mongodb.core.ExecutableMapReduceOperation; - -public class MapReduceWithMapFunctionDecoratorImpl implements MapReduceWithMapFunctionDecorator { - private final LockGuardInvoker invoker; - private final ExecutableMapReduceOperation.MapReduceWithMapFunction impl; - - public MapReduceWithMapFunctionDecoratorImpl(ExecutableMapReduceOperation.MapReduceWithMapFunction impl, LockGuardInvoker invoker) { - this.impl = impl; - this.invoker = invoker; - } - @Override - public ExecutableMapReduceOperation.MapReduceWithMapFunction 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/operation/executable/mapreduce/impl/MapReduceWithOptionsDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/mapreduce/impl/MapReduceWithOptionsDecoratorImpl.java deleted file mode 100644 index 057454658..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/mapreduce/impl/MapReduceWithOptionsDecoratorImpl.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.mapreduce.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.mapreduce.MapReduceWithOptionsDecorator; -import org.springframework.data.mongodb.core.ExecutableMapReduceOperation; - -public class MapReduceWithOptionsDecoratorImpl implements MapReduceWithOptionsDecorator { - - private final ExecutableMapReduceOperation.MapReduceWithOptions impl; - private final LockGuardInvoker invoker; - - public MapReduceWithOptionsDecoratorImpl(ExecutableMapReduceOperation.MapReduceWithOptions impl, LockGuardInvoker invoker) { - this.impl = impl; - this.invoker = invoker; - } - - @Override - public ExecutableMapReduceOperation.MapReduceWithOptions 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/operation/executable/mapreduce/impl/MapReduceWithProjectionDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/mapreduce/impl/MapReduceWithProjectionDecoratorImpl.java deleted file mode 100644 index 3f2db6ab0..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/mapreduce/impl/MapReduceWithProjectionDecoratorImpl.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.mapreduce.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.mapreduce.MapReduceWithProjectionDecorator; -import org.springframework.data.mongodb.core.ExecutableMapReduceOperation; - -public class MapReduceWithProjectionDecoratorImpl implements MapReduceWithProjectionDecorator { - - private final ExecutableMapReduceOperation.MapReduceWithProjection impl; - private final LockGuardInvoker invoker; - - public MapReduceWithProjectionDecoratorImpl(ExecutableMapReduceOperation.MapReduceWithProjection impl, LockGuardInvoker lockGuardInvoker) { - this.impl = impl; - this.invoker = lockGuardInvoker; - } - @Override - public LockGuardInvoker getInvoker() { - return invoker; - } - - @Override - public ExecutableMapReduceOperation.MapReduceWithProjection getImpl() { - return impl; - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/mapreduce/impl/MapReduceWithQueryDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/mapreduce/impl/MapReduceWithQueryDecoratorImpl.java deleted file mode 100644 index d8d8d78ab..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/mapreduce/impl/MapReduceWithQueryDecoratorImpl.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.mapreduce.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.mapreduce.MapReduceWithQueryDecorator; -import org.springframework.data.mongodb.core.ExecutableMapReduceOperation; - -public class MapReduceWithQueryDecoratorImpl implements MapReduceWithQueryDecorator { - - private final LockGuardInvoker invoker; - private final ExecutableMapReduceOperation.MapReduceWithQuery impl; - - public MapReduceWithQueryDecoratorImpl(ExecutableMapReduceOperation.MapReduceWithQuery impl, LockGuardInvoker lockGuardInvoker) { - this.impl = impl; - this.invoker = lockGuardInvoker; - } - - @Override - public ExecutableMapReduceOperation.MapReduceWithQuery 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/operation/executable/mapreduce/impl/MapReduceWithReduceFunctionDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/mapreduce/impl/MapReduceWithReduceFunctionDecoratorImpl.java deleted file mode 100644 index 3ff7ff997..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/mapreduce/impl/MapReduceWithReduceFunctionDecoratorImpl.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.mapreduce.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.mapreduce.MapReduceWithReduceFunctionDecorator; -import org.springframework.data.mongodb.core.ExecutableMapReduceOperation; - -public class MapReduceWithReduceFunctionDecoratorImpl implements MapReduceWithReduceFunctionDecorator { - - private final ExecutableMapReduceOperation.MapReduceWithReduceFunction impl; - private final LockGuardInvoker invoker; - - public MapReduceWithReduceFunctionDecoratorImpl(ExecutableMapReduceOperation.MapReduceWithReduceFunction impl, - LockGuardInvoker invoker) { - this.impl = impl; - this.invoker = invoker; - } - @Override - public ExecutableMapReduceOperation.MapReduceWithReduceFunction 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/operation/executable/mapreduce/impl/TerminatingMapReduceDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/mapreduce/impl/TerminatingMapReduceDecoratorImpl.java deleted file mode 100644 index b55589cdc..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/mapreduce/impl/TerminatingMapReduceDecoratorImpl.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.mapreduce.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.mapreduce.TerminatingMapReduceDecorator; -import org.springframework.data.mongodb.core.ExecutableMapReduceOperation; - -public class TerminatingMapReduceDecoratorImpl implements TerminatingMapReduceDecorator { - - private final ExecutableMapReduceOperation.TerminatingMapReduce impl; - private final LockGuardInvoker invoker; - - public TerminatingMapReduceDecoratorImpl(ExecutableMapReduceOperation.TerminatingMapReduce implementation, LockGuardInvoker lockGuardInvoker) { - this.impl = implementation; - this.invoker = lockGuardInvoker; - } - @Override - public ExecutableMapReduceOperation.TerminatingMapReduce 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/operation/executable/remove/ExecutableRemoveDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/remove/ExecutableRemoveDecorator.java deleted file mode 100644 index 4d29ea3c7..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/remove/ExecutableRemoveDecorator.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.remove; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import org.springframework.data.mongodb.core.ExecutableRemoveOperation; - -public interface ExecutableRemoveDecorator extends Invokable, ExecutableRemoveOperation.ExecutableRemove, RemoveWithCollectionDecorator { -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/remove/RemoveWithCollectionDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/remove/RemoveWithCollectionDecorator.java deleted file mode 100644 index 3836ea49a..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/remove/RemoveWithCollectionDecorator.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.remove; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.remove.impl.RemoveWithQueryDecoratorImpl; -import org.springframework.data.mongodb.core.ExecutableRemoveOperation; - -public interface RemoveWithCollectionDecorator extends Invokable, ExecutableRemoveOperation.RemoveWithCollection, RemoveWithQueryDecorator { - - ExecutableRemoveOperation.RemoveWithCollection getImpl(); - - @Override - default ExecutableRemoveOperation.RemoveWithQuery inCollection(String collection) { - return new RemoveWithQueryDecoratorImpl<>(getInvoker().invoke(()-> getImpl().inCollection(collection)), getInvoker()); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/remove/RemoveWithQueryDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/remove/RemoveWithQueryDecorator.java deleted file mode 100644 index c7c9c4570..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/remove/RemoveWithQueryDecorator.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.remove; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.remove.impl.TerminatingRemoveDecoratorImpl; -import org.springframework.data.mongodb.core.ExecutableRemoveOperation; -import org.springframework.data.mongodb.core.query.Query; - -public interface RemoveWithQueryDecorator extends Invokable, ExecutableRemoveOperation.RemoveWithQuery, TerminatingRemoveDecorator { - - ExecutableRemoveOperation.RemoveWithQuery getImpl(); - - @Override - default ExecutableRemoveOperation.TerminatingRemove matching(Query query) { - return new TerminatingRemoveDecoratorImpl<>(getInvoker().invoke(() -> getImpl().matching(query)), getInvoker()); - } - -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/remove/TerminatingRemoveDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/remove/TerminatingRemoveDecorator.java deleted file mode 100644 index 990500c8d..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/remove/TerminatingRemoveDecorator.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.remove; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import com.mongodb.client.result.DeleteResult; -import org.springframework.data.mongodb.core.ExecutableRemoveOperation; - -import java.util.List; - -public interface TerminatingRemoveDecorator extends Invokable, ExecutableRemoveOperation.TerminatingRemove { - - ExecutableRemoveOperation.TerminatingRemove getImpl(); - - @Override - default DeleteResult all() { - return getInvoker().invoke(()-> getImpl().all()); - } - - @Override - default DeleteResult one() { - return getInvoker().invoke(()-> getImpl().one()); - } - - @Override - default List findAndRemove() { - return getInvoker().invoke(()-> getImpl().findAndRemove()); - } - -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/remove/impl/ExecutableRemoveDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/remove/impl/ExecutableRemoveDecoratorImpl.java deleted file mode 100644 index 4c2a26975..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/remove/impl/ExecutableRemoveDecoratorImpl.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.remove.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.operation.executable.remove.ExecutableRemoveDecorator; -import org.springframework.data.mongodb.core.ExecutableRemoveOperation; - -public class ExecutableRemoveDecoratorImpl extends DecoratorBase> implements ExecutableRemoveDecorator { - public ExecutableRemoveDecoratorImpl(ExecutableRemoveOperation.ExecutableRemove 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/operation/executable/remove/impl/RemoveWithCollectionDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/remove/impl/RemoveWithCollectionDecoratorImpl.java deleted file mode 100644 index bb8991e13..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/remove/impl/RemoveWithCollectionDecoratorImpl.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.remove.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.operation.executable.remove.RemoveWithCollectionDecorator; -import org.springframework.data.mongodb.core.ExecutableRemoveOperation; - -public class RemoveWithCollectionDecoratorImpl - extends DecoratorBase> - implements RemoveWithCollectionDecorator { - - public RemoveWithCollectionDecoratorImpl(ExecutableRemoveOperation.RemoveWithCollection 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/operation/executable/remove/impl/RemoveWithQueryDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/remove/impl/RemoveWithQueryDecoratorImpl.java deleted file mode 100644 index fed67a4f7..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/remove/impl/RemoveWithQueryDecoratorImpl.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.remove.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.operation.executable.remove.RemoveWithQueryDecorator; -import org.springframework.data.mongodb.core.ExecutableRemoveOperation; - -public class RemoveWithQueryDecoratorImpl extends DecoratorBase> implements RemoveWithQueryDecorator { - public RemoveWithQueryDecoratorImpl(ExecutableRemoveOperation.RemoveWithQuery 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/operation/executable/remove/impl/TerminatingRemoveDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/remove/impl/TerminatingRemoveDecoratorImpl.java deleted file mode 100644 index c0106b1fd..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/remove/impl/TerminatingRemoveDecoratorImpl.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.remove.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.operation.executable.remove.TerminatingRemoveDecorator; -import org.springframework.data.mongodb.core.ExecutableRemoveOperation; - -public class TerminatingRemoveDecoratorImpl extends DecoratorBase> implements TerminatingRemoveDecorator { - - public TerminatingRemoveDecoratorImpl(ExecutableRemoveOperation.TerminatingRemove 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/operation/executable/update/ExecutableUpdateDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/update/ExecutableUpdateDecorator.java deleted file mode 100644 index 35c4ddb5f..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/update/ExecutableUpdateDecorator.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.update; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.update.impl.FindAndReplaceWithProjectionDecoratorImpl; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.update.impl.TerminatingUpdateDecoratorImpl; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.update.impl.UpdateWithQueryDecoratorImpl; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.update.impl.UpdateWithUpdateDecoratorImpl; -import org.springframework.data.mongodb.core.ExecutableUpdateOperation; -import org.springframework.data.mongodb.core.query.Query; -import org.springframework.data.mongodb.core.query.Update; - -public interface ExecutableUpdateDecorator extends Invokable, ExecutableUpdateOperation.ExecutableUpdate, - ExecutableUpdateOperation.UpdateWithCollection, ExecutableUpdateOperation.UpdateWithQuery, ExecutableUpdateOperation.UpdateWithUpdate { - - ExecutableUpdateOperation.ExecutableUpdate getImpl(); - - @Override - default ExecutableUpdateOperation.UpdateWithQuery inCollection(String collection) { - return new UpdateWithQueryDecoratorImpl<>(getInvoker().invoke(()-> getImpl().inCollection(collection)), getInvoker()); - } - - @Override - default ExecutableUpdateOperation.UpdateWithUpdate matching(Query query) { - return new UpdateWithUpdateDecoratorImpl<>(getInvoker().invoke(()-> getImpl().matching(query)), getInvoker()); - } - - @Override - default ExecutableUpdateOperation.TerminatingUpdate apply(Update update) { - return new TerminatingUpdateDecoratorImpl<>(getInvoker().invoke(()-> getImpl().apply(update)), getInvoker()); - } - - @Override - default ExecutableUpdateOperation.FindAndReplaceWithProjection replaceWith(T replacement) { - return new FindAndReplaceWithProjectionDecoratorImpl<>(getInvoker().invoke(()-> getImpl().replaceWith(replacement)), getInvoker()); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/update/FindAndModifyWithOptionsDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/update/FindAndModifyWithOptionsDecorator.java deleted file mode 100644 index 9e988b2a9..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/update/FindAndModifyWithOptionsDecorator.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.update; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.update.impl.TerminatingFindAndModifyDecoratorImpl; -import org.springframework.data.mongodb.core.ExecutableUpdateOperation; -import org.springframework.data.mongodb.core.FindAndModifyOptions; - -public interface FindAndModifyWithOptionsDecorator extends Invokable, ExecutableUpdateOperation.FindAndModifyWithOptions { - - ExecutableUpdateOperation.FindAndModifyWithOptions getImpl(); - - - @Override - default ExecutableUpdateOperation.TerminatingFindAndModify withOptions(FindAndModifyOptions options) { - return new TerminatingFindAndModifyDecoratorImpl<>(getInvoker().invoke(()-> getImpl().withOptions(options)), getInvoker()); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/update/FindAndReplaceWithOptionsDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/update/FindAndReplaceWithOptionsDecorator.java deleted file mode 100644 index 2e3875c37..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/update/FindAndReplaceWithOptionsDecorator.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.update; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.update.impl.FindAndReplaceWithProjectionDecoratorImpl; -import org.springframework.data.mongodb.core.ExecutableUpdateOperation; -import org.springframework.data.mongodb.core.FindAndReplaceOptions; - -public interface FindAndReplaceWithOptionsDecorator extends Invokable, ExecutableUpdateOperation.FindAndReplaceWithOptions, TerminatingFindAndReplaceDecorator { - - ExecutableUpdateOperation.FindAndReplaceWithOptions getImpl(); - - @Override - default ExecutableUpdateOperation.FindAndReplaceWithProjection withOptions(FindAndReplaceOptions options) { - return new FindAndReplaceWithProjectionDecoratorImpl<>(getInvoker().invoke(()-> getImpl().withOptions(options)), getInvoker()); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/update/FindAndReplaceWithProjectionDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/update/FindAndReplaceWithProjectionDecorator.java deleted file mode 100644 index 7e08b9363..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/update/FindAndReplaceWithProjectionDecorator.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.update; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.update.impl.FindAndReplaceWithOptionsDecoratorImpl; -import org.springframework.data.mongodb.core.ExecutableUpdateOperation; - -public interface FindAndReplaceWithProjectionDecorator extends Invokable, ExecutableUpdateOperation.FindAndReplaceWithProjection, FindAndReplaceWithOptionsDecorator { - - ExecutableUpdateOperation.FindAndReplaceWithProjection getImpl(); - - @Override - default ExecutableUpdateOperation.FindAndReplaceWithOptions as(Class resultType) { - return new FindAndReplaceWithOptionsDecoratorImpl<>(getInvoker().invoke(()-> getImpl().as(resultType)), getInvoker()); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/update/TerminatingFindAndModifyDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/update/TerminatingFindAndModifyDecorator.java deleted file mode 100644 index 601d459b3..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/update/TerminatingFindAndModifyDecorator.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.update; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import org.springframework.data.mongodb.core.ExecutableUpdateOperation; - -import java.util.Optional; - -public interface TerminatingFindAndModifyDecorator extends Invokable, ExecutableUpdateOperation.TerminatingFindAndModify { - - ExecutableUpdateOperation.TerminatingFindAndModify getImpl(); - - @Override - default Optional findAndModify() { - return getInvoker().invoke(()-> getImpl().findAndModify()); - } - - - @Override - default T findAndModifyValue() { - return getInvoker().invoke(()-> getImpl().findAndModifyValue()); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/update/TerminatingFindAndReplaceDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/update/TerminatingFindAndReplaceDecorator.java deleted file mode 100644 index 05776a8f3..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/update/TerminatingFindAndReplaceDecorator.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.update; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import org.springframework.data.mongodb.core.ExecutableUpdateOperation; - -import java.util.Optional; - -public interface TerminatingFindAndReplaceDecorator extends Invokable, ExecutableUpdateOperation.TerminatingFindAndReplace { - - ExecutableUpdateOperation.TerminatingFindAndReplace getImpl(); - - @Override - default Optional findAndReplace() { - return getInvoker().invoke(()-> getImpl().findAndReplace()); - } - - @Override - default T findAndReplaceValue() { - return getInvoker().invoke(()-> getImpl().findAndReplaceValue()); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/update/TerminatingUpdateDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/update/TerminatingUpdateDecorator.java deleted file mode 100644 index e1b033067..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/update/TerminatingUpdateDecorator.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.update; - - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import com.mongodb.client.result.UpdateResult; -import org.springframework.data.mongodb.core.ExecutableUpdateOperation; - -public interface TerminatingUpdateDecorator extends Invokable, ExecutableUpdateOperation.TerminatingUpdate, TerminatingFindAndModifyDecorator, FindAndModifyWithOptionsDecorator { - - ExecutableUpdateOperation.TerminatingUpdate getImpl(); - - @Override - default UpdateResult all() { - return getInvoker().invoke(()-> getImpl().all()); - } - - @Override - default UpdateResult first() { - return getInvoker().invoke(()-> getImpl().first()); - } - - @Override - default UpdateResult upsert() { - return getInvoker().invoke(()-> getImpl().upsert()); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/update/UpdateWithCollectionDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/update/UpdateWithCollectionDecorator.java deleted file mode 100644 index aeeaf1ab1..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/update/UpdateWithCollectionDecorator.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.update; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.update.impl.UpdateWithQueryDecoratorImpl; -import org.springframework.data.mongodb.core.ExecutableUpdateOperation; - -public interface UpdateWithCollectionDecorator extends Invokable, ExecutableUpdateOperation.UpdateWithCollection { - - ExecutableUpdateOperation.UpdateWithCollection getImpl(); - - @Override - default ExecutableUpdateOperation.UpdateWithQuery inCollection(String collection) { - return new UpdateWithQueryDecoratorImpl<>(getInvoker().invoke(()-> getImpl().inCollection(collection)), getInvoker()); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/update/UpdateWithQueryDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/update/UpdateWithQueryDecorator.java deleted file mode 100644 index 65caeb4fc..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/update/UpdateWithQueryDecorator.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.update; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.update.impl.UpdateWithUpdateDecoratorImpl; -import org.springframework.data.mongodb.core.ExecutableUpdateOperation; -import org.springframework.data.mongodb.core.query.Query; - -public interface UpdateWithQueryDecorator extends Invokable, ExecutableUpdateOperation.UpdateWithQuery, UpdateWithUpdateDecorator { - - ExecutableUpdateOperation.UpdateWithQuery getImpl(); - - @Override - default ExecutableUpdateOperation.UpdateWithUpdate matching(Query query) { - return new UpdateWithUpdateDecoratorImpl<>(getInvoker().invoke(()-> getImpl().matching(query)), getInvoker()); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/update/UpdateWithUpdateDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/update/UpdateWithUpdateDecorator.java deleted file mode 100644 index a0a758d27..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/update/UpdateWithUpdateDecorator.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.update; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.update.impl.FindAndReplaceWithProjectionDecoratorImpl; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.update.impl.TerminatingUpdateDecoratorImpl; -import org.springframework.data.mongodb.core.ExecutableUpdateOperation; -import org.springframework.data.mongodb.core.query.Update; - -public interface UpdateWithUpdateDecorator extends Invokable, ExecutableUpdateOperation.UpdateWithUpdate { - - ExecutableUpdateOperation.UpdateWithUpdate getImpl(); - - - @Override - default ExecutableUpdateOperation.TerminatingUpdate apply(Update update) { - return new TerminatingUpdateDecoratorImpl<>(getInvoker().invoke(() -> getImpl().apply(update)), getInvoker()); - } - - @Override - default ExecutableUpdateOperation.FindAndReplaceWithProjection replaceWith(T replacement) { - return new FindAndReplaceWithProjectionDecoratorImpl<>(getInvoker().invoke(() -> getImpl().replaceWith(replacement)), getInvoker()); - } - -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/update/impl/ExecutableUpdateDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/update/impl/ExecutableUpdateDecoratorImpl.java deleted file mode 100644 index fe197fba9..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/update/impl/ExecutableUpdateDecoratorImpl.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.update.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.operation.executable.update.ExecutableUpdateDecorator; -import org.springframework.data.mongodb.core.ExecutableUpdateOperation; - -public class ExecutableUpdateDecoratorImpl extends DecoratorBase> implements ExecutableUpdateDecorator { - - public ExecutableUpdateDecoratorImpl(ExecutableUpdateOperation.ExecutableUpdate 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/operation/executable/update/impl/FindAndModifyWithOptionsDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/update/impl/FindAndModifyWithOptionsDecoratorImpl.java deleted file mode 100644 index db2489f51..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/update/impl/FindAndModifyWithOptionsDecoratorImpl.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.update.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.operation.executable.update.FindAndModifyWithOptionsDecorator; -import org.springframework.data.mongodb.core.ExecutableUpdateOperation; - -public class FindAndModifyWithOptionsDecoratorImpl extends DecoratorBase> implements FindAndModifyWithOptionsDecorator { - - public FindAndModifyWithOptionsDecoratorImpl(ExecutableUpdateOperation.FindAndModifyWithOptions 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/operation/executable/update/impl/FindAndReplaceWithOptionsDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/update/impl/FindAndReplaceWithOptionsDecoratorImpl.java deleted file mode 100644 index 1bafc3162..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/update/impl/FindAndReplaceWithOptionsDecoratorImpl.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.update.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.operation.executable.update.FindAndReplaceWithOptionsDecorator; -import org.springframework.data.mongodb.core.ExecutableUpdateOperation; - -public class FindAndReplaceWithOptionsDecoratorImpl - extends DecoratorBase> - implements FindAndReplaceWithOptionsDecorator { - - public FindAndReplaceWithOptionsDecoratorImpl(ExecutableUpdateOperation.FindAndReplaceWithOptions 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/operation/executable/update/impl/FindAndReplaceWithProjectionDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/update/impl/FindAndReplaceWithProjectionDecoratorImpl.java deleted file mode 100644 index 2459dfa6b..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/update/impl/FindAndReplaceWithProjectionDecoratorImpl.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.update.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.operation.executable.update.FindAndReplaceWithProjectionDecorator; -import org.springframework.data.mongodb.core.ExecutableUpdateOperation; - -public class FindAndReplaceWithProjectionDecoratorImpl - extends DecoratorBase> - implements FindAndReplaceWithProjectionDecorator { - - public FindAndReplaceWithProjectionDecoratorImpl(ExecutableUpdateOperation.FindAndReplaceWithProjection 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/operation/executable/update/impl/TerminatingFindAndModifyDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/update/impl/TerminatingFindAndModifyDecoratorImpl.java deleted file mode 100644 index 1e6518b67..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/update/impl/TerminatingFindAndModifyDecoratorImpl.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.update.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.operation.executable.update.TerminatingFindAndModifyDecorator; -import org.springframework.data.mongodb.core.ExecutableUpdateOperation; - -public class TerminatingFindAndModifyDecoratorImpl extends DecoratorBase> implements TerminatingFindAndModifyDecorator { - - public TerminatingFindAndModifyDecoratorImpl(ExecutableUpdateOperation.TerminatingFindAndModify 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/operation/executable/update/impl/TerminatingFindAndReplaceDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/update/impl/TerminatingFindAndReplaceDecoratorImpl.java deleted file mode 100644 index 5287f340b..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/update/impl/TerminatingFindAndReplaceDecoratorImpl.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.update.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.operation.executable.update.TerminatingFindAndReplaceDecorator; -import org.springframework.data.mongodb.core.ExecutableUpdateOperation; - -public class TerminatingFindAndReplaceDecoratorImpl extends DecoratorBase> implements TerminatingFindAndReplaceDecorator { - - public TerminatingFindAndReplaceDecoratorImpl(ExecutableUpdateOperation.TerminatingFindAndReplace 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/operation/executable/update/impl/TerminatingUpdateDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/update/impl/TerminatingUpdateDecoratorImpl.java deleted file mode 100644 index 6d4a882c2..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/update/impl/TerminatingUpdateDecoratorImpl.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.update.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.operation.executable.update.TerminatingUpdateDecorator; -import org.springframework.data.mongodb.core.ExecutableUpdateOperation; - -public class TerminatingUpdateDecoratorImpl extends DecoratorBase> implements TerminatingUpdateDecorator { - public TerminatingUpdateDecoratorImpl(ExecutableUpdateOperation.TerminatingUpdate 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/operation/executable/update/impl/UpdateWithCollectionDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/update/impl/UpdateWithCollectionDecoratorImpl.java deleted file mode 100644 index 3b453068d..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/update/impl/UpdateWithCollectionDecoratorImpl.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.update.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.operation.executable.update.UpdateWithCollectionDecorator; -import org.springframework.data.mongodb.core.ExecutableUpdateOperation; - -public class UpdateWithCollectionDecoratorImpl extends DecoratorBase> implements UpdateWithCollectionDecorator { - - public UpdateWithCollectionDecoratorImpl(ExecutableUpdateOperation.UpdateWithCollection 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/operation/executable/update/impl/UpdateWithQueryDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/update/impl/UpdateWithQueryDecoratorImpl.java deleted file mode 100644 index 2a9fe2458..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/update/impl/UpdateWithQueryDecoratorImpl.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.update.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.operation.executable.update.UpdateWithQueryDecorator; -import org.springframework.data.mongodb.core.ExecutableUpdateOperation; - -public class UpdateWithQueryDecoratorImpl - extends DecoratorBase> - implements UpdateWithQueryDecorator { - - public UpdateWithQueryDecoratorImpl(ExecutableUpdateOperation.UpdateWithQuery 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/operation/executable/update/impl/UpdateWithUpdateDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/update/impl/UpdateWithUpdateDecoratorImpl.java deleted file mode 100644 index 1846b1b10..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v2/decorator/operation/executable/update/impl/UpdateWithUpdateDecoratorImpl.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.operation.executable.update.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.operation.executable.update.UpdateWithUpdateDecorator; -import org.springframework.data.mongodb.core.ExecutableUpdateOperation; - -public class UpdateWithUpdateDecoratorImpl extends DecoratorBase> implements UpdateWithUpdateDecorator { - - public UpdateWithUpdateDecoratorImpl(ExecutableUpdateOperation.UpdateWithUpdate impl, LockGuardInvoker invoker) { - super(impl, invoker); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/io/mongock/driver/mongodb/springdata/v2/SpringDataMongoV2DriverBase.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/io/mongock/driver/mongodb/springdata/v2/SpringDataMongoV2DriverBase.java index 48d5c2b16..f53794257 100644 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/io/mongock/driver/mongodb/springdata/v2/SpringDataMongoV2DriverBase.java +++ b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/main/java/io/mongock/driver/mongodb/springdata/v2/SpringDataMongoV2DriverBase.java @@ -1,6 +1,7 @@ package io.mongock.driver.mongodb.springdata.v2; import io.mongock.driver.api.driver.ChangeSetDependency; +import io.mongock.driver.api.driver.ChangeSetDependencyBuildable; import io.mongock.driver.api.driver.Transactioner; import io.mongock.driver.api.entry.ChangeEntry; import io.mongock.driver.api.entry.ChangeEntryService; @@ -48,7 +49,11 @@ public void runValidation() throws MongockException { @Override public void specificInitialization() { super.specificInitialization(); - dependencies.add(new ChangeSetDependency(MongockTemplate.class, new MongockTemplate(mongoTemplate, new LockGuardInvokerImpl(this.getLockManager())), false)); + dependencies.add(new ChangeSetDependencyBuildable( + MongockTemplate.class, + MongoTemplate.class, + impl -> new MongockTemplate((MongoTemplate) impl), + true)); dependencies.add(new ChangeSetDependency(MongoTemplate.class, this.mongoTemplate)); } diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/test/java/io/mongock/driver/mongodb/springdata/v2/driver/decorator/DecoratorUTest.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/test/java/io/mongock/driver/mongodb/springdata/v2/driver/decorator/DecoratorUTest.java deleted file mode 100644 index bb0cb58c1..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v2-driver/src/test/java/io/mongock/driver/mongodb/springdata/v2/driver/decorator/DecoratorUTest.java +++ /dev/null @@ -1,104 +0,0 @@ -package io.mongock.driver.mongodb.springdata.v2.driver.decorator; - -import io.mongock.driver.api.lock.LockManager; -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvokerImpl; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v2.decorator.impl.MongockTemplate; -import io.mongock.test.util.decorator.DecoratorMethodFailure; -import io.mongock.test.util.decorator.DecoratorTestCollection; -import io.mongock.test.util.decorator.DecoratorValidator; -import com.mongodb.MongoNamespace; -import com.mongodb.ReadConcern; -import com.mongodb.ReadPreference; -import com.mongodb.ServerAddress; -import com.mongodb.ServerCursor; -import com.mongodb.WriteConcern; -import com.mongodb.bulk.BulkWriteResult; -import com.mongodb.client.result.DeleteResult; -import com.mongodb.client.result.UpdateResult; -import org.bson.BsonDocument; -import org.bson.Document; -import org.bson.codecs.configuration.CodecRegistry; -import org.junit.Assert; -import org.junit.Test; -import org.mockito.Mockito; -import org.springframework.data.geo.GeoResult; -import org.springframework.data.geo.GeoResults; -import org.springframework.data.mongodb.core.MongoOperations; -import org.springframework.data.mongodb.core.MongoTemplate; -import org.springframework.data.mongodb.core.SessionScoped; -import org.springframework.data.mongodb.core.aggregation.AggregationResults; -import org.springframework.data.mongodb.core.convert.MongoConverter; -import org.springframework.data.mongodb.core.mapreduce.GroupByResults; -import org.springframework.data.mongodb.core.mapreduce.MapReduceResults; -import org.springframework.data.mongodb.core.script.NamedMongoScript; -import org.springframework.data.util.CloseableIterator; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Optional; - -public class DecoratorUTest { - - - private DecoratorTestCollection getDecoratorsToTest() { - return new DecoratorTestCollection() - .addDecorator(MongoOperations.class, MongockTemplate.class); - - } - - - @Test - public void allMethodsInDecoratorsShouldEnsureLockAndReturnDecoratorIfNotTerminatingOperations() { - LockManager lockManager = Mockito.mock(LockManager.class); - List failedDecorators = new DecoratorValidator( - getDecoratorsToTest(), - getIgnoredTypes(), - Collections.singletonList(MongockTemplate.class), - getInstancesMap(lockManager), - lockManager) - .checkAndReturnFailedDecorators(); - int size = failedDecorators.size(); - Assert.assertEquals(DecoratorMethodFailure.printErrorMessage(failedDecorators), 0, size); - } - - private Map getInstancesMap(LockManager lockManager) { - Map instancesMap = new HashMap<>(); - instancesMap.put(MongockTemplate.class, new MongockTemplate(Mockito.mock(MongoTemplate.class), new LockGuardInvokerImpl(lockManager))); - return instancesMap; - } - - private Collection getIgnoredTypes() { - return new ArrayList<>(Arrays.asList( - Document.class - , MongoConverter.class - , GroupByResults.class - , DeleteResult.class - , AggregationResults.class - , GeoResults.class - , GeoResult.class - , UpdateResult.class - , MapReduceResults.class - , CloseableIterator.class - , MongoNamespace.class - , CodecRegistry.class - , ReadPreference.class - , ReadConcern.class - , WriteConcern.class - , BulkWriteResult.class - , NamedMongoScript.class - , BsonDocument.class - , ServerCursor.class - , ServerAddress.class - , Optional.class - - , SessionScoped.class// TODO remove this - )); - } - - -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/BulkOperationsDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/BulkOperationsDecorator.java deleted file mode 100644 index 03391e70b..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/BulkOperationsDecorator.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.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-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/ClientSessionDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/ClientSessionDecorator.java deleted file mode 100644 index d79320bcb..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/ClientSessionDecorator.java +++ /dev/null @@ -1,128 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.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-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/CloseableIteratorDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/CloseableIteratorDecorator.java deleted file mode 100644 index aace5be81..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/CloseableIteratorDecorator.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator; - -import io.mongock.driver.mongodb.sync.v4.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-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/IndexOperationsDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/IndexOperationsDecorator.java deleted file mode 100644 index 827e2379a..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/IndexOperationsDecorator.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.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-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/MongoDatabaseFactoryDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/MongoDatabaseFactoryDecorator.java deleted file mode 100644 index 698014c81..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/MongoDatabaseFactoryDecorator.java +++ /dev/null @@ -1,78 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator; - -import io.changock.migration.api.annotations.NonLockGuarded; -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.impl.ClientSessionDecoratorImpl; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.impl.MongoDatabaseFactoryDecoratorImpl; -import io.mongock.driver.mongodb.sync.v4.decorator.impl.MongoDataBaseDecoratorImpl; -import com.mongodb.ClientSessionOptions; -import com.mongodb.client.ClientSession; -import com.mongodb.client.MongoDatabase; -import org.bson.codecs.Codec; -import org.bson.codecs.configuration.CodecRegistry; -import org.springframework.dao.DataAccessException; -import org.springframework.dao.support.PersistenceExceptionTranslator; -import org.springframework.data.mongodb.MongoDatabaseFactory; - -import java.util.Optional; - -public interface MongoDatabaseFactoryDecorator extends Invokable, MongoDatabaseFactory { - - MongoDatabaseFactory getImpl(); - - @Override - default MongoDatabase getMongoDatabase() throws DataAccessException { - return new MongoDataBaseDecoratorImpl(getImpl().getMongoDatabase(), getInvoker()); - } - - @Override - default MongoDatabase getMongoDatabase(String dbName) throws DataAccessException { - return new MongoDataBaseDecoratorImpl(getImpl().getMongoDatabase(dbName), getInvoker()); - } - - @Override - @NonLockGuarded - default PersistenceExceptionTranslator getExceptionTranslator() { - return getImpl().getExceptionTranslator(); - } - - @Override - @NonLockGuarded - default CodecRegistry getCodecRegistry() { - return getImpl().getCodecRegistry(); - } - - @Override - @NonLockGuarded - default boolean hasCodecFor(Class type) { - return getImpl().hasCodecFor(type); - - } - - @Override - @NonLockGuarded - default Optional> getCodecFor(Class type) { - return getImpl().getCodecFor(type); - } - - @Override - default ClientSession getSession(ClientSessionOptions options) { - return new ClientSessionDecoratorImpl(getInvoker().invoke(() -> getImpl().getSession(options)), getInvoker()); - } - - @Override - default MongoDatabaseFactory withSession(ClientSessionOptions options) { - return new MongoDatabaseFactoryDecoratorImpl(getInvoker().invoke(() -> getImpl().withSession(options)), getInvoker()); - } - - @Override - default MongoDatabaseFactory withSession(ClientSession session) { - return new MongoDatabaseFactoryDecoratorImpl(getInvoker().invoke(() -> getImpl().withSession(session)), getInvoker()); - } - - @Override - @NonLockGuarded - default boolean isTransactionActive() { - return getImpl().isTransactionActive(); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/MongoDbFactoryDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/MongoDbFactoryDecorator.java deleted file mode 100644 index 0221b64d1..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/MongoDbFactoryDecorator.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.impl.ClientSessionDecoratorImpl; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.impl.MongoDatabaseFactoryDecoratorImpl; -import io.mongock.driver.mongodb.sync.v4.decorator.impl.MongoDataBaseDecoratorImpl; -import com.mongodb.ClientSessionOptions; -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.MongoDatabaseFactory; -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 MongoDatabase getMongoDatabase() throws DataAccessException { - return new MongoDataBaseDecoratorImpl(getImpl().getMongoDatabase(), getInvoker()); - } - - @Override - default MongoDatabase getMongoDatabase(String dbName) throws DataAccessException { - return new MongoDataBaseDecoratorImpl(getImpl().getMongoDatabase(dbName), getInvoker()); - } - - @Override - default PersistenceExceptionTranslator getExceptionTranslator() { - return getImpl().getExceptionTranslator(); - } - - - @Override - default ClientSession getSession(ClientSessionOptions clientSessionOptions) { - return new ClientSessionDecoratorImpl(getInvoker().invoke(() -> getImpl().getSession(clientSessionOptions)), getInvoker()); - } - - @Override - default MongoDatabaseFactory withSession(ClientSession clientSession) { - return new MongoDatabaseFactoryDecoratorImpl(getInvoker().invoke(() -> getImpl().withSession(clientSession)), getInvoker()); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/MongoOperationsDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/MongoOperationsDecorator.java deleted file mode 100644 index 695d27782..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/MongoOperationsDecorator.java +++ /dev/null @@ -1,626 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.impl.BulkOperationsDecoratorImpl; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.impl.CloseableIteratorDecoratorImpl; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.impl.IndexOperationsDecoratorImpl; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.impl.MongoOperationsDecoratorImpl; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.impl.ScriptOperationsDecoratorImpl; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.impl.SessionScopedDecoratorImpl; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.aggregation.impl.ExecutableAggregationDecoratorImpl; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.find.impl.ExecutableFindDecoratorImpl; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.insert.impl.ExecutableInsertDecoratorImpl; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.mapreduce.impl.MapReduceWithMapFunctionDecoratorImpl; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.remove.impl.ExecutableRemoveDecoratorImpl; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.update.impl.ExecutableUpdateDecoratorImpl; -import io.mongock.driver.mongodb.sync.v4.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.UpdateDefinition; -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 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 estimatedCount(String s) { - return getInvoker().invoke(() -> getImpl().estimatedCount(s)); - } - - @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 batchToSave, Class entityClass) { - return getInvoker().invoke(() -> getImpl().insert(batchToSave, entityClass)); - } - - @Override - default Collection insert(Collection batchToSave, String collectionName) { - return getInvoker().invoke(() -> getImpl().insert(batchToSave, collectionName)); - } - - @Override - default Collection insertAll(Collection 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 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 - } - - - - // since sprind-data-mongodb:3.0 - @Override - default List findDistinct(String field, Class entityClass, Class resultClass) { - return getInvoker().invoke(()-> getImpl().findDistinct(field, entityClass, resultClass)); - } - - @Override - default List findDistinct(Query query, String field, String collection, Class resultClass) { - return getInvoker().invoke(()-> getImpl().findDistinct(query, field, collection, resultClass)); - } - - @Override - default T findAndModify(Query query, UpdateDefinition update, Class entityClass) { - return getInvoker().invoke(()-> getImpl().findAndModify(query, update, entityClass)); - } - - @Override - default T findAndModify(Query query, UpdateDefinition update, Class entityClass, String collectionName) { - return getInvoker().invoke(()-> getImpl().findAndModify(query, update, entityClass, collectionName)); - } - - @Override - default T findAndModify(Query query, UpdateDefinition update, FindAndModifyOptions options, Class entityClass) { - return getInvoker().invoke(()-> getImpl().findAndModify(query, update, options, entityClass)); - } - - @Override - default T findAndModify(Query query, UpdateDefinition update, FindAndModifyOptions options, Class entityClass, String collectionName) { - return getInvoker().invoke(()-> getImpl().findAndModify(query, update, options, entityClass, collectionName)); - } - - @Override - default T findAndReplace(Query query, T replacement) { - return getInvoker().invoke(()-> getImpl().findAndReplace(query, replacement)); - } - - @Override - default T findAndReplace(Query query, T replacement, String collectionName) { - return getInvoker().invoke(()-> getImpl().findAndReplace(query, replacement, collectionName)); - } - - @Override - default T findAndReplace(Query query, T replacement, FindAndReplaceOptions options) { - return getInvoker().invoke(()-> getImpl().findAndReplace(query, replacement, options)); - } - - @Override - default T findAndReplace(Query query, T replacement, FindAndReplaceOptions options, String collectionName) { - return getInvoker().invoke(()-> getImpl().findAndReplace(query, replacement, options, collectionName)); - } - - @Override - default T findAndReplace(Query query, T replacement, FindAndReplaceOptions options, Class entityType, String collectionName) { - return getInvoker().invoke(()-> getImpl().findAndReplace(query, replacement, options, entityType, collectionName)); - } - - @Override - default T findAndReplace(Query query, S replacement, FindAndReplaceOptions options, Class entityType, Class resultType) { - return getInvoker().invoke(()-> getImpl().findAndReplace(query, replacement, options, entityType, resultType)); - } - - - @Override - default UpdateResult upsert(Query query, UpdateDefinition update, Class entityClass) { - return getInvoker().invoke(()->getImpl().upsert(query, update, entityClass)); - } - - @Override - default UpdateResult upsert(Query query, UpdateDefinition update, String collectionName) { - return getInvoker().invoke(()->getImpl().upsert(query, update, collectionName)); - } - - @Override - default UpdateResult upsert(Query query, UpdateDefinition update, Class entityClass, String collectionName) { - return getInvoker().invoke(()->getImpl().upsert(query, update, entityClass, collectionName)); - } - - @Override - default UpdateResult updateFirst(Query query, UpdateDefinition update, Class entityClass) { - return getInvoker().invoke(()->getImpl().updateFirst(query, update, entityClass)); - } - - @Override - default UpdateResult updateFirst(Query query, UpdateDefinition update, String collectionName) { - return getInvoker().invoke(()->getImpl().updateFirst(query, update, collectionName)); - } - - @Override - default UpdateResult updateFirst(Query query, UpdateDefinition update, Class entityClass, String collectionName) { - return getInvoker().invoke(()->getImpl().updateFirst(query, update, entityClass, collectionName)); - } - - @Override - default UpdateResult updateMulti(Query query, UpdateDefinition update, Class entityClass) { - return getInvoker().invoke(()->getImpl().updateMulti(query, update, entityClass)); - } - - @Override - default UpdateResult updateMulti(Query query, UpdateDefinition update, String collectionName) { - return getInvoker().invoke(()->getImpl().updateMulti(query, update, collectionName)); - } - - @Override - default UpdateResult updateMulti(Query query, UpdateDefinition update, Class entityClass, String collectionName) { - return getInvoker().invoke(()->getImpl().updateMulti(query, update, entityClass, collectionName)); - } - -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/ScriptOperationsDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/ScriptOperationsDecorator.java deleted file mode 100644 index 530cd8247..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/ScriptOperationsDecorator.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.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-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/SessionCallbackDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/SessionCallbackDecorator.java deleted file mode 100644 index efbbfc242..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/SessionCallbackDecorator.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.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-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/SessionScopedDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/SessionScopedDecorator.java deleted file mode 100644 index bb56f1f45..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/SessionScopedDecorator.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.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.v3.decorator.impl.ClientSessionDecoratorImpl; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.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-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/impl/BulkOperationsDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/impl/BulkOperationsDecoratorImpl.java deleted file mode 100644 index 95dcc2573..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/impl/BulkOperationsDecoratorImpl.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.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-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/impl/ClientSessionDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/impl/ClientSessionDecoratorImpl.java deleted file mode 100644 index f9b5fe0c6..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/impl/ClientSessionDecoratorImpl.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.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-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/impl/CloseableIteratorDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/impl/CloseableIteratorDecoratorImpl.java deleted file mode 100644 index 5ad9dbab9..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/impl/CloseableIteratorDecoratorImpl.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.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-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/impl/IndexOperationsDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/impl/IndexOperationsDecoratorImpl.java deleted file mode 100644 index 1a204a365..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/impl/IndexOperationsDecoratorImpl.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.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-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/impl/MongoDatabaseFactoryDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/impl/MongoDatabaseFactoryDecoratorImpl.java deleted file mode 100644 index bb24a56f5..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/impl/MongoDatabaseFactoryDecoratorImpl.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.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.v3.decorator.MongoDatabaseFactoryDecorator; -import org.springframework.data.mongodb.MongoDatabaseFactory; - -public class MongoDatabaseFactoryDecoratorImpl extends DecoratorBase implements MongoDatabaseFactoryDecorator { - - public MongoDatabaseFactoryDecoratorImpl(MongoDatabaseFactory impl, LockGuardInvoker invoker) { - super(impl, invoker); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/impl/MongoDbFactoryDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/impl/MongoDbFactoryDecoratorImpl.java deleted file mode 100644 index 1f3e1f618..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/impl/MongoDbFactoryDecoratorImpl.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.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.v3.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-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/impl/MongoOperationsDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/impl/MongoOperationsDecoratorImpl.java deleted file mode 100644 index e9ac4dc8c..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/impl/MongoOperationsDecoratorImpl.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.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-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/impl/ScriptOperationsDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/impl/ScriptOperationsDecoratorImpl.java deleted file mode 100644 index a7c30c3b1..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/impl/ScriptOperationsDecoratorImpl.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.ScriptOperationsDecorator; -import org.springframework.data.mongodb.core.ScriptOperations; - -@Deprecated -public class ScriptOperationsDecoratorImpl implements ScriptOperationsDecorator { - - private final ScriptOperations impl; - private final LockGuardInvoker invoker; - - public ScriptOperationsDecoratorImpl(ScriptOperations impl, LockGuardInvoker invoker) { - this.impl = impl; - this.invoker = invoker; - } - @Override - public ScriptOperations getImpl() { - return impl; - } - - @Override - public LockGuardInvoker getInvoker() { - return invoker; - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/impl/SessionCallbackDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/impl/SessionCallbackDecoratorImpl.java deleted file mode 100644 index 99c6d12b4..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/impl/SessionCallbackDecoratorImpl.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.SessionCallbackDecorator; -import org.springframework.data.mongodb.core.SessionCallback; - -public class SessionCallbackDecoratorImpl implements SessionCallbackDecorator { - - private final SessionCallback impl; - private final LockGuardInvoker invoker; - - public SessionCallbackDecoratorImpl(SessionCallback impl, LockGuardInvoker invoker) { - this.impl = impl; - this.invoker = invoker; - } - @Override - public SessionCallback getImpl() { - return impl; - } - - @Override - public LockGuardInvoker getInvoker() { - return invoker; - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/impl/SessionScopedDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/impl/SessionScopedDecoratorImpl.java deleted file mode 100644 index ed32df36e..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/impl/SessionScopedDecoratorImpl.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.SessionScopedDecorator; -import org.springframework.data.mongodb.core.SessionScoped; - -public class SessionScopedDecoratorImpl implements SessionScopedDecorator { - - private final SessionScoped impl; - private final LockGuardInvoker invoker; - - public SessionScopedDecoratorImpl(SessionScoped impl, LockGuardInvoker invoker) { - this.impl = impl; - this.invoker = invoker; - } - @Override - public SessionScoped getImpl() { - return impl; - } - - @Override - public LockGuardInvoker getInvoker() { - return invoker; - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/aggregation/AggregationWithAggregationDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/aggregation/AggregationWithAggregationDecorator.java deleted file mode 100644 index 98bb4705b..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/aggregation/AggregationWithAggregationDecorator.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.aggregation; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.aggregation.impl.TerminatingAggregationDecoratorImpl; -import org.springframework.data.mongodb.core.ExecutableAggregationOperation; -import org.springframework.data.mongodb.core.aggregation.Aggregation; - -public interface AggregationWithAggregationDecorator extends Invokable, ExecutableAggregationOperation.AggregationWithAggregation { - - ExecutableAggregationOperation.AggregationWithAggregation getImpl(); - - @Override - default ExecutableAggregationOperation.TerminatingAggregation by(Aggregation aggregation) { - return new TerminatingAggregationDecoratorImpl<>(getInvoker().invoke(()-> getImpl().by(aggregation)), getInvoker()); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/aggregation/AggregationWithCollectionDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/aggregation/AggregationWithCollectionDecorator.java deleted file mode 100644 index f30659b1a..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/aggregation/AggregationWithCollectionDecorator.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.aggregation; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.aggregation.impl.AggregationWithAggregationDecoratorImpl; -import org.springframework.data.mongodb.core.ExecutableAggregationOperation; - -public interface AggregationWithCollectionDecorator extends Invokable, ExecutableAggregationOperation.AggregationWithCollection { - - ExecutableAggregationOperation.AggregationWithCollection getImpl(); - - @Override - default ExecutableAggregationOperation.AggregationWithAggregation inCollection(String collection) { - return new AggregationWithAggregationDecoratorImpl<>(getInvoker().invoke(()-> getImpl().inCollection(collection)), getInvoker()); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/aggregation/ExecutableAggregationDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/aggregation/ExecutableAggregationDecorator.java deleted file mode 100644 index d772f98db..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/aggregation/ExecutableAggregationDecorator.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.aggregation; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import org.springframework.data.mongodb.core.ExecutableAggregationOperation; - -public interface ExecutableAggregationDecorator extends - Invokable, - ExecutableAggregationOperation.ExecutableAggregation, - AggregationWithCollectionDecorator, - AggregationWithAggregationDecorator { - - ExecutableAggregationOperation.ExecutableAggregation getImpl(); -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/aggregation/TerminatingAggregationDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/aggregation/TerminatingAggregationDecorator.java deleted file mode 100644 index 80cd2d39a..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/aggregation/TerminatingAggregationDecorator.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.aggregation; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.impl.CloseableIteratorDecoratorImpl; -import org.springframework.data.mongodb.core.ExecutableAggregationOperation; -import org.springframework.data.mongodb.core.aggregation.AggregationResults; -import org.springframework.data.util.CloseableIterator; - -public interface TerminatingAggregationDecorator extends Invokable, ExecutableAggregationOperation.TerminatingAggregation { - - ExecutableAggregationOperation.TerminatingAggregation getImpl(); - - @Override - default AggregationResults all() { - return getInvoker().invoke(()-> getImpl().all()); - } - - @Override - default CloseableIterator stream() { - return new CloseableIteratorDecoratorImpl<>(getInvoker().invoke(()-> getImpl().stream()), getInvoker()); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/aggregation/impl/AggregationWithAggregationDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/aggregation/impl/AggregationWithAggregationDecoratorImpl.java deleted file mode 100644 index d37495bfb..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/aggregation/impl/AggregationWithAggregationDecoratorImpl.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.aggregation.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.v3.decorator.operation.executable.aggregation.AggregationWithAggregationDecorator; -import org.springframework.data.mongodb.core.ExecutableAggregationOperation; - -public class AggregationWithAggregationDecoratorImpl - extends DecoratorBase> - implements AggregationWithAggregationDecorator { - - public AggregationWithAggregationDecoratorImpl(ExecutableAggregationOperation.AggregationWithAggregation impl, LockGuardInvoker invoker) { - super(impl, invoker); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/aggregation/impl/AggregationWithCollectionDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/aggregation/impl/AggregationWithCollectionDecoratorImpl.java deleted file mode 100644 index 1e1fec2be..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/aggregation/impl/AggregationWithCollectionDecoratorImpl.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.aggregation.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.v3.decorator.operation.executable.aggregation.AggregationWithCollectionDecorator; -import org.springframework.data.mongodb.core.ExecutableAggregationOperation; - -public class AggregationWithCollectionDecoratorImpl - extends DecoratorBase> - implements AggregationWithCollectionDecorator { - public AggregationWithCollectionDecoratorImpl(ExecutableAggregationOperation.AggregationWithCollection impl, LockGuardInvoker invoker) { - super(impl, invoker); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/aggregation/impl/ExecutableAggregationDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/aggregation/impl/ExecutableAggregationDecoratorImpl.java deleted file mode 100644 index 1939eb25b..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/aggregation/impl/ExecutableAggregationDecoratorImpl.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.aggregation.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.v3.decorator.operation.executable.aggregation.ExecutableAggregationDecorator; -import org.springframework.data.mongodb.core.ExecutableAggregationOperation; - -public class ExecutableAggregationDecoratorImpl - extends DecoratorBase> - implements ExecutableAggregationDecorator { - public ExecutableAggregationDecoratorImpl(ExecutableAggregationOperation.ExecutableAggregation impl, LockGuardInvoker invoker) { - super(impl, invoker); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/aggregation/impl/TerminatingAggregationDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/aggregation/impl/TerminatingAggregationDecoratorImpl.java deleted file mode 100644 index f1459f431..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/aggregation/impl/TerminatingAggregationDecoratorImpl.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.aggregation.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.v3.decorator.operation.executable.aggregation.TerminatingAggregationDecorator; -import org.springframework.data.mongodb.core.ExecutableAggregationOperation; - -public class TerminatingAggregationDecoratorImpl - extends DecoratorBase> - implements TerminatingAggregationDecorator { - public TerminatingAggregationDecoratorImpl(ExecutableAggregationOperation.TerminatingAggregation impl, LockGuardInvoker invoker) { - super(impl, invoker); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/find/ExecutableFindDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/find/ExecutableFindDecorator.java deleted file mode 100644 index d18bb864a..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/find/ExecutableFindDecorator.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.find; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import org.springframework.data.mongodb.core.ExecutableFindOperation; - - -public interface ExecutableFindDecorator extends Invokable, ExecutableFindOperation.ExecutableFind, FindWithCollectionDecorator, FindWithProjectionDecorator, FindDistinctDecorator { - - - ExecutableFindOperation.ExecutableFind getImpl(); - - LockGuardInvoker getInvoker(); -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/find/FindDistinctDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/find/FindDistinctDecorator.java deleted file mode 100644 index 38fb5eb81..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/find/FindDistinctDecorator.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.find; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.find.impl.TerminatingDistinctDecoratorImpl; -import org.springframework.data.mongodb.core.ExecutableFindOperation; - -public interface FindDistinctDecorator extends Invokable, ExecutableFindOperation.FindDistinct { - - ExecutableFindOperation.FindDistinct getImpl(); - - - @Override - default ExecutableFindOperation.TerminatingDistinct distinct(String field) { - return new TerminatingDistinctDecoratorImpl<>(getInvoker().invoke(()-> getImpl().distinct(field)), getInvoker()); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/find/FindWithCollectionDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/find/FindWithCollectionDecorator.java deleted file mode 100644 index 606c80fd1..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/find/FindWithCollectionDecorator.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.find; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.find.impl.FindWithProjectionDecoratorImpl; -import org.springframework.data.mongodb.core.ExecutableFindOperation; - -public interface FindWithCollectionDecorator extends Invokable, ExecutableFindOperation.FindWithCollection, FindWithQueryDecorator { - - ExecutableFindOperation.FindWithCollection getImpl(); - - @Override - default ExecutableFindOperation.FindWithProjection inCollection(String collection) { - return new FindWithProjectionDecoratorImpl<>(getInvoker().invoke(()-> getImpl().inCollection(collection)), getInvoker()); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/find/FindWithProjectionDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/find/FindWithProjectionDecorator.java deleted file mode 100644 index fb1601b5f..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/find/FindWithProjectionDecorator.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.find; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.find.impl.FindWithQueryDecoratorImpl; -import org.springframework.data.mongodb.core.ExecutableFindOperation; - -public interface FindWithProjectionDecorator extends Invokable, ExecutableFindOperation.FindWithProjection, FindWithQueryDecorator, FindDistinctDecorator { - - ExecutableFindOperation.FindWithProjection getImpl(); - - @Override - default ExecutableFindOperation.FindWithQuery as(Class resultType) { - return new FindWithQueryDecoratorImpl<>(getInvoker().invoke(() -> getImpl().as(resultType)), getInvoker()); - - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/find/FindWithQueryDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/find/FindWithQueryDecorator.java deleted file mode 100644 index 20de1b090..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/find/FindWithQueryDecorator.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.find; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.find.impl.TerminatingFindDecoratorImpl; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.find.impl.TerminatingFindNearDecoratorImpl; -import org.springframework.data.mongodb.core.ExecutableFindOperation; -import org.springframework.data.mongodb.core.query.CriteriaDefinition; -import org.springframework.data.mongodb.core.query.NearQuery; -import org.springframework.data.mongodb.core.query.Query; - -public interface FindWithQueryDecorator extends Invokable, ExecutableFindOperation.FindWithQuery, TerminatingFindDecorator { - - ExecutableFindOperation.FindWithQuery getImpl(); - - - @Override - default ExecutableFindOperation.TerminatingFind matching(Query query) { - return new TerminatingFindDecoratorImpl<>(getInvoker().invoke(()-> getImpl().matching(query)), getInvoker()); - } - - @Override - default ExecutableFindOperation.TerminatingFind matching(CriteriaDefinition criteria) { - return new TerminatingFindDecoratorImpl<>(getInvoker().invoke(()-> getImpl().matching(criteria)), getInvoker()); - } - - @Override - default ExecutableFindOperation.TerminatingFindNear near(NearQuery nearQuery) { - return new TerminatingFindNearDecoratorImpl<>(getInvoker().invoke(()-> getImpl().near(nearQuery)), getInvoker()); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/find/TerminatingDistinctDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/find/TerminatingDistinctDecorator.java deleted file mode 100644 index 1c36eb7e3..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/find/TerminatingDistinctDecorator.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.find; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.find.impl.TerminatingDistinctDecoratorImpl; -import org.springframework.data.mongodb.core.query.CriteriaDefinition; -import org.springframework.data.mongodb.core.query.Query; - -import java.util.List; - -import static org.springframework.data.mongodb.core.ExecutableFindOperation.TerminatingDistinct; - -public interface TerminatingDistinctDecorator extends Invokable, TerminatingDistinct { - - TerminatingDistinct getImpl(); - - LockGuardInvoker getInvoker(); - - @Override - default List all() { - return getInvoker().invoke(() -> getImpl().all()); - } - - @Override - default TerminatingDistinct matching(Query query) { - return new TerminatingDistinctDecoratorImpl<>(getInvoker().invoke(() -> getImpl().matching(query)), getInvoker()); - } - - @Override - default TerminatingDistinct as(Class resultType) { - return new TerminatingDistinctDecoratorImpl<>(getInvoker().invoke(() -> getImpl().as(resultType)), getInvoker()); - } - - @Override - default TerminatingDistinct matching(CriteriaDefinition criteria) { - return new TerminatingDistinctDecoratorImpl<>(getInvoker().invoke(() -> getImpl().matching(criteria)), getInvoker()); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/find/TerminatingFindDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/find/TerminatingFindDecorator.java deleted file mode 100644 index 08bc3dc97..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/find/TerminatingFindDecorator.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.find; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import org.springframework.data.mongodb.core.ExecutableFindOperation; - -import java.util.List; -import java.util.Optional; -import java.util.stream.Stream; - -public interface TerminatingFindDecorator extends ExecutableFindOperation.TerminatingFind { - - ExecutableFindOperation.TerminatingFind getImpl(); - - LockGuardInvoker getInvoker(); - - @Override - default Optional one() { - return getInvoker().invoke(()-> getImpl().one()); - } - - @Override - default T oneValue() { - return getInvoker().invoke(()-> getImpl().oneValue()); - } - - @Override - default Optional first() { - return getInvoker().invoke(()-> getImpl().first()); - } - - @Override - default T firstValue() { - return getInvoker().invoke(()-> getImpl().firstValue()); - } - - @Override - default List all() { - return getInvoker().invoke(()-> getImpl().all()); - } - - @Override - default Stream stream() { - return getInvoker().invoke(()-> getImpl().stream()); - } - - @Override - default long count() { - return getInvoker().invoke(()-> getImpl().count()); - } - - @Override - default boolean exists() { - return getInvoker().invoke(()-> getImpl().exists()); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/find/TerminatingFindNearDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/find/TerminatingFindNearDecorator.java deleted file mode 100644 index a51e15304..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/find/TerminatingFindNearDecorator.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.find; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import org.springframework.data.geo.GeoResults; -import org.springframework.data.mongodb.core.ExecutableFindOperation; - -public interface TerminatingFindNearDecorator extends Invokable, ExecutableFindOperation.TerminatingFindNear { - - ExecutableFindOperation.TerminatingFindNear getImpl(); - - @Override - default GeoResults all() { - return getInvoker().invoke(()-> getImpl().all()); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/find/impl/ExecutableFindDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/find/impl/ExecutableFindDecoratorImpl.java deleted file mode 100644 index 18c414405..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/find/impl/ExecutableFindDecoratorImpl.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.find.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.v3.decorator.operation.executable.find.ExecutableFindDecorator; -import org.springframework.data.mongodb.core.ExecutableFindOperation; - -public class ExecutableFindDecoratorImpl extends DecoratorBase> implements ExecutableFindDecorator { - - public ExecutableFindDecoratorImpl(ExecutableFindOperation.ExecutableFind impl, LockGuardInvoker invoker) { - super(impl, invoker); - } - -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/find/impl/FindDistinctDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/find/impl/FindDistinctDecoratorImpl.java deleted file mode 100644 index fa28c5e51..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/find/impl/FindDistinctDecoratorImpl.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.find.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.find.FindDistinctDecorator; -import org.springframework.data.mongodb.core.ExecutableFindOperation; - -public class FindDistinctDecoratorImpl implements FindDistinctDecorator { - - private final ExecutableFindOperation.FindDistinct impl; - - private final LockGuardInvoker invoker; - - public FindDistinctDecoratorImpl(ExecutableFindOperation.FindDistinct impl, LockGuardInvoker invoker) { - this.impl = impl; - this.invoker = invoker; - } - - @Override - public ExecutableFindOperation.FindDistinct getImpl() { - return impl; - } - - @Override - public LockGuardInvoker getInvoker() { - return invoker; - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/find/impl/FindWithCollectionDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/find/impl/FindWithCollectionDecoratorImpl.java deleted file mode 100644 index d05edc834..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/find/impl/FindWithCollectionDecoratorImpl.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.find.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.find.FindWithCollectionDecorator; -import org.springframework.data.mongodb.core.ExecutableFindOperation; - -public class FindWithCollectionDecoratorImpl implements FindWithCollectionDecorator { - - private final ExecutableFindOperation.FindWithCollection impl; - - private final LockGuardInvoker invoker; - - public FindWithCollectionDecoratorImpl(ExecutableFindOperation.FindWithCollection impl, LockGuardInvoker invoker) { - this.impl = impl; - this.invoker = invoker; - } - - @Override - public ExecutableFindOperation.FindWithCollection getImpl() { - return impl; - } - - @Override - public LockGuardInvoker getInvoker() { - return invoker; - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/find/impl/FindWithProjectionDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/find/impl/FindWithProjectionDecoratorImpl.java deleted file mode 100644 index 336e17fe7..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/find/impl/FindWithProjectionDecoratorImpl.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.find.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.find.FindWithProjectionDecorator; -import org.springframework.data.mongodb.core.ExecutableFindOperation; - -public class FindWithProjectionDecoratorImpl implements FindWithProjectionDecorator { - - private final ExecutableFindOperation.FindWithProjection impl; - - private final LockGuardInvoker invoker; - - public FindWithProjectionDecoratorImpl(ExecutableFindOperation.FindWithProjection impl, LockGuardInvoker invoker) { - this.impl = impl; - this.invoker = invoker; - } - - @Override - public ExecutableFindOperation.FindWithProjection getImpl() { - return impl; - } - - @Override - public LockGuardInvoker getInvoker() { - return invoker; - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/find/impl/FindWithQueryDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/find/impl/FindWithQueryDecoratorImpl.java deleted file mode 100644 index ebda508dd..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/find/impl/FindWithQueryDecoratorImpl.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.find.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.find.FindWithQueryDecorator; -import org.springframework.data.mongodb.core.ExecutableFindOperation; - -public class FindWithQueryDecoratorImpl implements FindWithQueryDecorator { - - private final ExecutableFindOperation.FindWithQuery impl; - private final LockGuardInvoker invoker; - - public FindWithQueryDecoratorImpl(ExecutableFindOperation.FindWithQuery impl, LockGuardInvoker invoker) { - this.impl = impl; - this.invoker = invoker; - } - - @Override - public ExecutableFindOperation.FindWithQuery getImpl() { - return impl; - } - - @Override - public LockGuardInvoker getInvoker() { - return invoker; - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/find/impl/TerminatingDistinctDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/find/impl/TerminatingDistinctDecoratorImpl.java deleted file mode 100644 index ef103161d..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/find/impl/TerminatingDistinctDecoratorImpl.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.find.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.find.TerminatingDistinctDecorator; -import org.springframework.data.mongodb.core.ExecutableFindOperation; - -public class TerminatingDistinctDecoratorImpl implements TerminatingDistinctDecorator { - - private final ExecutableFindOperation.TerminatingDistinct impl; - private final LockGuardInvoker invoker; - - public TerminatingDistinctDecoratorImpl(ExecutableFindOperation.TerminatingDistinct impl, LockGuardInvoker invoker) { - this.impl = impl; - this.invoker = invoker; - } - - @Override - public ExecutableFindOperation.TerminatingDistinct getImpl() { - return impl; - } - - @Override - public LockGuardInvoker getInvoker() { - return invoker; - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/find/impl/TerminatingFindDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/find/impl/TerminatingFindDecoratorImpl.java deleted file mode 100644 index 98a51d4a2..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/find/impl/TerminatingFindDecoratorImpl.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.find.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.find.TerminatingFindDecorator; -import org.springframework.data.mongodb.core.ExecutableFindOperation; - -public class TerminatingFindDecoratorImpl implements TerminatingFindDecorator { - - private final ExecutableFindOperation.TerminatingFind impl; - private final LockGuardInvoker invoker; - - public TerminatingFindDecoratorImpl(ExecutableFindOperation.TerminatingFind impl, LockGuardInvoker invoker) { - this.impl = impl; - this.invoker = invoker; - } - - @Override - public ExecutableFindOperation.TerminatingFind getImpl() { - return impl; - } - - @Override - public LockGuardInvoker getInvoker() { - return invoker; - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/find/impl/TerminatingFindNearDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/find/impl/TerminatingFindNearDecoratorImpl.java deleted file mode 100644 index 7c47b3b86..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/find/impl/TerminatingFindNearDecoratorImpl.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.find.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.find.TerminatingFindNearDecorator; -import org.springframework.data.mongodb.core.ExecutableFindOperation; - -public class TerminatingFindNearDecoratorImpl implements TerminatingFindNearDecorator { - - private final ExecutableFindOperation.TerminatingFindNear impl; - - private final LockGuardInvoker invoker; - - public TerminatingFindNearDecoratorImpl(ExecutableFindOperation.TerminatingFindNear impl, LockGuardInvoker invoker) { - this.impl = impl; - this.invoker = invoker; - } - - @Override - public ExecutableFindOperation.TerminatingFindNear getImpl() { - return impl; - } - - @Override - public LockGuardInvoker getInvoker() { - return invoker; - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/insert/ExecutableInsertDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/insert/ExecutableInsertDecorator.java deleted file mode 100644 index 311704e7c..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/insert/ExecutableInsertDecorator.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.insert; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import org.springframework.data.mongodb.core.ExecutableInsertOperation; - -public interface ExecutableInsertDecorator extends - Invokable, - ExecutableInsertOperation.ExecutableInsert, - TerminatingInsertDecorator, - InsertWithCollectionDecorator, - InsertWithBulkModeDecorator { - - ExecutableInsertOperation.ExecutableInsert getImpl(); -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/insert/InsertWithBulkModeDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/insert/InsertWithBulkModeDecorator.java deleted file mode 100644 index 7c2037238..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/insert/InsertWithBulkModeDecorator.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.insert; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.insert.impl.TerminatingBulkInsertDecoratorImpl; -import org.springframework.data.mongodb.core.BulkOperations; -import org.springframework.data.mongodb.core.ExecutableInsertOperation; - -public interface InsertWithBulkModeDecorator extends Invokable, ExecutableInsertOperation.InsertWithBulkMode, TerminatingInsertDecorator { - - ExecutableInsertOperation.InsertWithBulkMode getImpl(); - - @Override - default ExecutableInsertOperation.TerminatingBulkInsert withBulkMode(BulkOperations.BulkMode bulkMode) { - return new TerminatingBulkInsertDecoratorImpl<>(getInvoker().invoke(()-> getImpl().withBulkMode(bulkMode)), getInvoker()); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/insert/InsertWithCollectionDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/insert/InsertWithCollectionDecorator.java deleted file mode 100644 index fc5f089d3..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/insert/InsertWithCollectionDecorator.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.insert; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.insert.impl.InsertWithBulkModeDecoratorImpl; -import org.springframework.data.mongodb.core.ExecutableInsertOperation; - -public interface InsertWithCollectionDecorator extends Invokable, ExecutableInsertOperation.InsertWithCollection { - - ExecutableInsertOperation.InsertWithCollection getImpl(); - - @Override - default ExecutableInsertOperation.InsertWithBulkMode inCollection(String collection) { - return new InsertWithBulkModeDecoratorImpl<>(getInvoker().invoke(()-> getImpl().inCollection(collection)), getInvoker()); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/insert/TerminatingBulkInsertDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/insert/TerminatingBulkInsertDecorator.java deleted file mode 100644 index ce2310a59..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/insert/TerminatingBulkInsertDecorator.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.insert; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import com.mongodb.bulk.BulkWriteResult; -import org.springframework.data.mongodb.core.ExecutableInsertOperation; - -import java.util.Collection; - -public interface TerminatingBulkInsertDecorator extends Invokable, ExecutableInsertOperation.TerminatingBulkInsert { - - ExecutableInsertOperation.TerminatingBulkInsert getImpl(); - - @Override - default BulkWriteResult bulk(Collection objects) { - return getInvoker().invoke(()-> getImpl().bulk(objects)); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/insert/TerminatingInsertDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/insert/TerminatingInsertDecorator.java deleted file mode 100644 index 84b1849b6..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/insert/TerminatingInsertDecorator.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.insert; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import org.springframework.data.mongodb.core.ExecutableInsertOperation; - -import java.util.Collection; - -public interface TerminatingInsertDecorator extends Invokable, ExecutableInsertOperation.TerminatingInsert, TerminatingBulkInsertDecorator { - - ExecutableInsertOperation.TerminatingInsert getImpl(); - - @Override - default T one(T object) { - return getInvoker().invoke(()-> getImpl().one(object)); - } - - @Override - default Collection all(Collection objects) { - return getInvoker().invoke(()-> getImpl().all(objects)); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/insert/impl/ExecutableInsertDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/insert/impl/ExecutableInsertDecoratorImpl.java deleted file mode 100644 index 955cf5b2c..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/insert/impl/ExecutableInsertDecoratorImpl.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.insert.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.v3.decorator.operation.executable.insert.ExecutableInsertDecorator; -import org.springframework.data.mongodb.core.ExecutableInsertOperation; - -public class ExecutableInsertDecoratorImpl - extends DecoratorBase> - implements ExecutableInsertDecorator { - public ExecutableInsertDecoratorImpl(ExecutableInsertOperation.ExecutableInsert impl, LockGuardInvoker invoker) { - super(impl, invoker); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/insert/impl/InsertWithBulkModeDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/insert/impl/InsertWithBulkModeDecoratorImpl.java deleted file mode 100644 index 5cf39a840..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/insert/impl/InsertWithBulkModeDecoratorImpl.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.insert.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.v3.decorator.operation.executable.insert.InsertWithBulkModeDecorator; -import org.springframework.data.mongodb.core.ExecutableInsertOperation; - -public class InsertWithBulkModeDecoratorImpl - extends DecoratorBase> - implements InsertWithBulkModeDecorator { - public InsertWithBulkModeDecoratorImpl(ExecutableInsertOperation.InsertWithBulkMode impl, LockGuardInvoker invoker) { - super(impl, invoker); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/insert/impl/InsertWithCollectionDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/insert/impl/InsertWithCollectionDecoratorImpl.java deleted file mode 100644 index c809ae95b..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/insert/impl/InsertWithCollectionDecoratorImpl.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.insert.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.v3.decorator.operation.executable.insert.InsertWithCollectionDecorator; -import org.springframework.data.mongodb.core.ExecutableInsertOperation; - -public class InsertWithCollectionDecoratorImpl - extends DecoratorBase> - implements InsertWithCollectionDecorator { - public InsertWithCollectionDecoratorImpl(ExecutableInsertOperation.InsertWithCollection impl, LockGuardInvoker invoker) { - super(impl, invoker); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/insert/impl/TerminatingBulkInsertDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/insert/impl/TerminatingBulkInsertDecoratorImpl.java deleted file mode 100644 index 1c8f17f42..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/insert/impl/TerminatingBulkInsertDecoratorImpl.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.insert.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.v3.decorator.operation.executable.insert.TerminatingBulkInsertDecorator; -import org.springframework.data.mongodb.core.ExecutableInsertOperation; - -public class TerminatingBulkInsertDecoratorImpl - extends DecoratorBase> - implements TerminatingBulkInsertDecorator { - public TerminatingBulkInsertDecoratorImpl(ExecutableInsertOperation.TerminatingBulkInsert impl, LockGuardInvoker invoker) { - super(impl, invoker); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/insert/impl/TerminatingInsertDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/insert/impl/TerminatingInsertDecoratorImpl.java deleted file mode 100644 index dbe9ed3c3..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/insert/impl/TerminatingInsertDecoratorImpl.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.insert.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.v3.decorator.operation.executable.insert.TerminatingInsertDecorator; -import org.springframework.data.mongodb.core.ExecutableInsertOperation; - -public class TerminatingInsertDecoratorImpl - extends DecoratorBase> - implements TerminatingInsertDecorator { - public TerminatingInsertDecoratorImpl(ExecutableInsertOperation.TerminatingInsert impl, LockGuardInvoker invoker) { - super(impl, invoker); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/mapreduce/ExecutableMapReduceDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/mapreduce/ExecutableMapReduceDecorator.java deleted file mode 100644 index d58319dd4..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/mapreduce/ExecutableMapReduceDecorator.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.mapreduce; - -import org.springframework.data.mongodb.core.ExecutableMapReduceOperation; - -public interface ExecutableMapReduceDecorator extends ExecutableMapReduceOperation.ExecutableMapReduce, - MapReduceWithMapFunctionDecorator, MapReduceWithReduceFunctionDecorator, - MapReduceWithCollectionDecorator, MapReduceWithProjectionDecorator, MapReduceWithOptionsDecorator { - @Override - ExecutableMapReduceOperation.ExecutableMapReduce getImpl(); - -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/mapreduce/MapReduceWithCollectionDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/mapreduce/MapReduceWithCollectionDecorator.java deleted file mode 100644 index 46b1ac8bd..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/mapreduce/MapReduceWithCollectionDecorator.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.mapreduce; - -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.mapreduce.impl.MapReduceWithProjectionDecoratorImpl; -import org.springframework.data.mongodb.core.ExecutableMapReduceOperation; - -public interface MapReduceWithCollectionDecorator extends ExecutableMapReduceOperation.MapReduceWithCollection, MapReduceWithQueryDecorator { - - @Override - ExecutableMapReduceOperation.MapReduceWithCollection getImpl(); - - - @Override - default ExecutableMapReduceOperation.MapReduceWithProjection inCollection(String collection) { - return getInvoker().invoke(()-> new MapReduceWithProjectionDecoratorImpl<>(getImpl().inCollection(collection), getInvoker())); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/mapreduce/MapReduceWithMapFunctionDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/mapreduce/MapReduceWithMapFunctionDecorator.java deleted file mode 100644 index ca118fb8c..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/mapreduce/MapReduceWithMapFunctionDecorator.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.mapreduce; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.mapreduce.impl.MapReduceWithReduceFunctionDecoratorImpl; -import org.springframework.data.mongodb.core.ExecutableMapReduceOperation; - -public interface MapReduceWithMapFunctionDecorator extends ExecutableMapReduceOperation.MapReduceWithMapFunction { - - ExecutableMapReduceOperation.MapReduceWithMapFunction getImpl(); - - LockGuardInvoker getInvoker(); - - @Override - default ExecutableMapReduceOperation.MapReduceWithReduceFunction map(String mapFunction) { - return getInvoker().invoke(()-> new MapReduceWithReduceFunctionDecoratorImpl<>(getImpl().map(mapFunction), getInvoker())); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/mapreduce/MapReduceWithOptionsDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/mapreduce/MapReduceWithOptionsDecorator.java deleted file mode 100644 index c1eb01f83..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/mapreduce/MapReduceWithOptionsDecorator.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.mapreduce; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.mapreduce.impl.ExecutableMapReduceDecoratorImpl; -import org.springframework.data.mongodb.core.ExecutableMapReduceOperation; -import org.springframework.data.mongodb.core.mapreduce.MapReduceOptions; - -public interface MapReduceWithOptionsDecorator extends ExecutableMapReduceOperation.MapReduceWithOptions { - - ExecutableMapReduceOperation.MapReduceWithOptions getImpl(); - - LockGuardInvoker getInvoker(); - - //TODO implement - @Override - default ExecutableMapReduceOperation.ExecutableMapReduce with(MapReduceOptions options) { - return getInvoker().invoke(() -> new ExecutableMapReduceDecoratorImpl<>(getImpl().with(options), getInvoker())); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/mapreduce/MapReduceWithProjectionDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/mapreduce/MapReduceWithProjectionDecorator.java deleted file mode 100644 index 220fdc98a..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/mapreduce/MapReduceWithProjectionDecorator.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.mapreduce; - -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.mapreduce.impl.MapReduceWithQueryDecoratorImpl; -import org.springframework.data.mongodb.core.ExecutableMapReduceOperation; - -public interface MapReduceWithProjectionDecorator extends ExecutableMapReduceOperation.MapReduceWithProjection, MapReduceWithQueryDecorator { - - @Override - ExecutableMapReduceOperation.MapReduceWithProjection getImpl(); - - @Override - default ExecutableMapReduceOperation.MapReduceWithQuery as(Class resultType) { - return getInvoker().invoke(()-> new MapReduceWithQueryDecoratorImpl<>(getImpl().as(resultType), getInvoker())); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/mapreduce/MapReduceWithQueryDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/mapreduce/MapReduceWithQueryDecorator.java deleted file mode 100644 index 102da1184..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/mapreduce/MapReduceWithQueryDecorator.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.mapreduce; - -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.mapreduce.impl.TerminatingMapReduceDecoratorImpl; -import org.springframework.data.mongodb.core.ExecutableMapReduceOperation; -import org.springframework.data.mongodb.core.query.CriteriaDefinition; -import org.springframework.data.mongodb.core.query.Query; - -public interface MapReduceWithQueryDecorator extends ExecutableMapReduceOperation.MapReduceWithQuery, TerminatingMapReduceDecorator { - - - @Override - ExecutableMapReduceOperation.MapReduceWithQuery getImpl(); - - @Override - default ExecutableMapReduceOperation.TerminatingMapReduce matching(Query query) { - return getInvoker().invoke(()-> new TerminatingMapReduceDecoratorImpl<>(getImpl().matching(query), getInvoker())); - } - - @Override - default ExecutableMapReduceOperation.TerminatingMapReduce matching(CriteriaDefinition criteria) { - return getInvoker().invoke(()-> new TerminatingMapReduceDecoratorImpl<>(getImpl().matching(criteria), getInvoker())); - } - -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/mapreduce/MapReduceWithReduceFunctionDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/mapreduce/MapReduceWithReduceFunctionDecorator.java deleted file mode 100644 index 3ef5b7469..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/mapreduce/MapReduceWithReduceFunctionDecorator.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.mapreduce; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.mapreduce.impl.ExecutableMapReduceDecoratorImpl; -import org.springframework.data.mongodb.core.ExecutableMapReduceOperation; - -public interface MapReduceWithReduceFunctionDecorator extends ExecutableMapReduceOperation.MapReduceWithReduceFunction { - - ExecutableMapReduceOperation.MapReduceWithReduceFunction getImpl(); - - LockGuardInvoker getInvoker(); - - //TODO IMPLEMENT THIS DECORATOR - @Override - default ExecutableMapReduceOperation.ExecutableMapReduce reduce(String reduceFunction) { - return getInvoker().invoke(() -> new ExecutableMapReduceDecoratorImpl<>(getImpl().reduce(reduceFunction), getInvoker())); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/mapreduce/TerminatingMapReduceDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/mapreduce/TerminatingMapReduceDecorator.java deleted file mode 100644 index 08305e52c..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/mapreduce/TerminatingMapReduceDecorator.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.mapreduce; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import org.springframework.data.mongodb.core.ExecutableMapReduceOperation; - -import java.util.List; - -public interface TerminatingMapReduceDecorator extends ExecutableMapReduceOperation.TerminatingMapReduce { - ExecutableMapReduceOperation.TerminatingMapReduce getImpl(); - - LockGuardInvoker getInvoker(); - - @Override - default List all() { - return getInvoker().invoke(() -> getImpl().all()); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/mapreduce/impl/ExecutableMapReduceDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/mapreduce/impl/ExecutableMapReduceDecoratorImpl.java deleted file mode 100644 index 4a033ee27..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/mapreduce/impl/ExecutableMapReduceDecoratorImpl.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.mapreduce.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.mapreduce.ExecutableMapReduceDecorator; -import org.springframework.data.mongodb.core.ExecutableMapReduceOperation; - -public class ExecutableMapReduceDecoratorImpl implements ExecutableMapReduceDecorator { - - private final ExecutableMapReduceOperation.ExecutableMapReduce impl; - private final LockGuardInvoker invoker; - - public ExecutableMapReduceDecoratorImpl(ExecutableMapReduceOperation.ExecutableMapReduce impl, LockGuardInvoker invoker) { - this.impl = impl; - this.invoker = invoker; - } - - @Override - public ExecutableMapReduceOperation.ExecutableMapReduce getImpl() { - return impl; - } - - @Override - public LockGuardInvoker getInvoker() { - return invoker; - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/mapreduce/impl/MapReduceWithCollectionDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/mapreduce/impl/MapReduceWithCollectionDecoratorImpl.java deleted file mode 100644 index d2ecf7f57..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/mapreduce/impl/MapReduceWithCollectionDecoratorImpl.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.mapreduce.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.mapreduce.MapReduceWithCollectionDecorator; -import org.springframework.data.mongodb.core.ExecutableMapReduceOperation; - -public class MapReduceWithCollectionDecoratorImpl implements MapReduceWithCollectionDecorator { - - private final ExecutableMapReduceOperation.MapReduceWithCollection impl; - private final LockGuardInvoker invoker; - - public MapReduceWithCollectionDecoratorImpl(ExecutableMapReduceOperation.MapReduceWithCollection impl, - LockGuardInvoker invoker) { - this.impl = impl; - this.invoker = invoker; - } - @Override - public ExecutableMapReduceOperation.MapReduceWithCollection getImpl() { - return impl; - } - - @Override - public LockGuardInvoker getInvoker() { - return invoker; - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/mapreduce/impl/MapReduceWithMapFunctionDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/mapreduce/impl/MapReduceWithMapFunctionDecoratorImpl.java deleted file mode 100644 index 6a4bed944..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/mapreduce/impl/MapReduceWithMapFunctionDecoratorImpl.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.mapreduce.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.mapreduce.MapReduceWithMapFunctionDecorator; -import org.springframework.data.mongodb.core.ExecutableMapReduceOperation; - -public class MapReduceWithMapFunctionDecoratorImpl implements MapReduceWithMapFunctionDecorator { - private final LockGuardInvoker invoker; - private final ExecutableMapReduceOperation.MapReduceWithMapFunction impl; - - public MapReduceWithMapFunctionDecoratorImpl(ExecutableMapReduceOperation.MapReduceWithMapFunction impl, LockGuardInvoker invoker) { - this.impl = impl; - this.invoker = invoker; - } - @Override - public ExecutableMapReduceOperation.MapReduceWithMapFunction getImpl() { - return impl; - } - - @Override - public LockGuardInvoker getInvoker() { - return invoker; - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/mapreduce/impl/MapReduceWithOptionsDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/mapreduce/impl/MapReduceWithOptionsDecoratorImpl.java deleted file mode 100644 index 22aefcf08..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/mapreduce/impl/MapReduceWithOptionsDecoratorImpl.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.mapreduce.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.mapreduce.MapReduceWithOptionsDecorator; -import org.springframework.data.mongodb.core.ExecutableMapReduceOperation; - -public class MapReduceWithOptionsDecoratorImpl implements MapReduceWithOptionsDecorator { - - private final ExecutableMapReduceOperation.MapReduceWithOptions impl; - private final LockGuardInvoker invoker; - - public MapReduceWithOptionsDecoratorImpl(ExecutableMapReduceOperation.MapReduceWithOptions impl, LockGuardInvoker invoker) { - this.impl = impl; - this.invoker = invoker; - } - - @Override - public ExecutableMapReduceOperation.MapReduceWithOptions getImpl() { - return impl; - } - - @Override - public LockGuardInvoker getInvoker() { - return invoker; - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/mapreduce/impl/MapReduceWithProjectionDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/mapreduce/impl/MapReduceWithProjectionDecoratorImpl.java deleted file mode 100644 index 5915e2cba..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/mapreduce/impl/MapReduceWithProjectionDecoratorImpl.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.mapreduce.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.mapreduce.MapReduceWithProjectionDecorator; -import org.springframework.data.mongodb.core.ExecutableMapReduceOperation; - -public class MapReduceWithProjectionDecoratorImpl implements MapReduceWithProjectionDecorator { - - private final ExecutableMapReduceOperation.MapReduceWithProjection impl; - private final LockGuardInvoker invoker; - - public MapReduceWithProjectionDecoratorImpl(ExecutableMapReduceOperation.MapReduceWithProjection impl, LockGuardInvoker lockGuardInvoker) { - this.impl = impl; - this.invoker = lockGuardInvoker; - } - @Override - public LockGuardInvoker getInvoker() { - return invoker; - } - - @Override - public ExecutableMapReduceOperation.MapReduceWithProjection getImpl() { - return impl; - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/mapreduce/impl/MapReduceWithQueryDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/mapreduce/impl/MapReduceWithQueryDecoratorImpl.java deleted file mode 100644 index e4ba1c37a..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/mapreduce/impl/MapReduceWithQueryDecoratorImpl.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.mapreduce.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.mapreduce.MapReduceWithQueryDecorator; -import org.springframework.data.mongodb.core.ExecutableMapReduceOperation; - -public class MapReduceWithQueryDecoratorImpl implements MapReduceWithQueryDecorator { - - private final LockGuardInvoker invoker; - private final ExecutableMapReduceOperation.MapReduceWithQuery impl; - - public MapReduceWithQueryDecoratorImpl(ExecutableMapReduceOperation.MapReduceWithQuery impl, LockGuardInvoker lockGuardInvoker) { - this.impl = impl; - this.invoker = lockGuardInvoker; - } - - @Override - public ExecutableMapReduceOperation.MapReduceWithQuery getImpl() { - return impl; - } - - @Override - public LockGuardInvoker getInvoker() { - return invoker; - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/mapreduce/impl/MapReduceWithReduceFunctionDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/mapreduce/impl/MapReduceWithReduceFunctionDecoratorImpl.java deleted file mode 100644 index d2d23d51d..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/mapreduce/impl/MapReduceWithReduceFunctionDecoratorImpl.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.mapreduce.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.mapreduce.MapReduceWithReduceFunctionDecorator; -import org.springframework.data.mongodb.core.ExecutableMapReduceOperation; - -public class MapReduceWithReduceFunctionDecoratorImpl implements MapReduceWithReduceFunctionDecorator { - - private final ExecutableMapReduceOperation.MapReduceWithReduceFunction impl; - private final LockGuardInvoker invoker; - - public MapReduceWithReduceFunctionDecoratorImpl(ExecutableMapReduceOperation.MapReduceWithReduceFunction impl, - LockGuardInvoker invoker) { - this.impl = impl; - this.invoker = invoker; - } - @Override - public ExecutableMapReduceOperation.MapReduceWithReduceFunction getImpl() { - return impl; - } - - @Override - public LockGuardInvoker getInvoker() { - return invoker; - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/mapreduce/impl/TerminatingMapReduceDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/mapreduce/impl/TerminatingMapReduceDecoratorImpl.java deleted file mode 100644 index 8f8efa8f6..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/mapreduce/impl/TerminatingMapReduceDecoratorImpl.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.mapreduce.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.mapreduce.TerminatingMapReduceDecorator; -import org.springframework.data.mongodb.core.ExecutableMapReduceOperation; - -public class TerminatingMapReduceDecoratorImpl implements TerminatingMapReduceDecorator { - - private final ExecutableMapReduceOperation.TerminatingMapReduce impl; - private final LockGuardInvoker invoker; - - public TerminatingMapReduceDecoratorImpl(ExecutableMapReduceOperation.TerminatingMapReduce implementation, LockGuardInvoker lockGuardInvoker) { - this.impl = implementation; - this.invoker = lockGuardInvoker; - } - @Override - public ExecutableMapReduceOperation.TerminatingMapReduce getImpl() { - return impl; - } - - @Override - public LockGuardInvoker getInvoker() { - return invoker; - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/remove/ExecutableRemoveDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/remove/ExecutableRemoveDecorator.java deleted file mode 100644 index 7b46c45f2..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/remove/ExecutableRemoveDecorator.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.remove; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import org.springframework.data.mongodb.core.ExecutableRemoveOperation; - -public interface ExecutableRemoveDecorator extends Invokable, ExecutableRemoveOperation.ExecutableRemove, RemoveWithCollectionDecorator { -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/remove/RemoveWithCollectionDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/remove/RemoveWithCollectionDecorator.java deleted file mode 100644 index e49413a86..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/remove/RemoveWithCollectionDecorator.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.remove; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.remove.impl.RemoveWithQueryDecoratorImpl; -import org.springframework.data.mongodb.core.ExecutableRemoveOperation; - -public interface RemoveWithCollectionDecorator extends Invokable, ExecutableRemoveOperation.RemoveWithCollection, RemoveWithQueryDecorator { - - ExecutableRemoveOperation.RemoveWithCollection getImpl(); - - @Override - default ExecutableRemoveOperation.RemoveWithQuery inCollection(String collection) { - return new RemoveWithQueryDecoratorImpl<>(getInvoker().invoke(()-> getImpl().inCollection(collection)), getInvoker()); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/remove/RemoveWithQueryDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/remove/RemoveWithQueryDecorator.java deleted file mode 100644 index d6637c088..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/remove/RemoveWithQueryDecorator.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.remove; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.remove.impl.TerminatingRemoveDecoratorImpl; -import org.springframework.data.mongodb.core.ExecutableRemoveOperation; -import org.springframework.data.mongodb.core.query.CriteriaDefinition; -import org.springframework.data.mongodb.core.query.Query; - -public interface RemoveWithQueryDecorator extends Invokable, ExecutableRemoveOperation.RemoveWithQuery, TerminatingRemoveDecorator { - - ExecutableRemoveOperation.RemoveWithQuery getImpl(); - - @Override - default ExecutableRemoveOperation.TerminatingRemove matching(Query query) { - return new TerminatingRemoveDecoratorImpl<>(getInvoker().invoke(() -> getImpl().matching(query)), getInvoker()); - } - - @Override - default ExecutableRemoveOperation.TerminatingRemove matching(CriteriaDefinition criteria) { - return new TerminatingRemoveDecoratorImpl<>(getInvoker().invoke(() -> getImpl().matching(criteria)), getInvoker()); - } - -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/remove/TerminatingRemoveDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/remove/TerminatingRemoveDecorator.java deleted file mode 100644 index 74161461b..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/remove/TerminatingRemoveDecorator.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.remove; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import com.mongodb.client.result.DeleteResult; -import org.springframework.data.mongodb.core.ExecutableRemoveOperation; - -import java.util.List; - -public interface TerminatingRemoveDecorator extends Invokable, ExecutableRemoveOperation.TerminatingRemove { - - ExecutableRemoveOperation.TerminatingRemove getImpl(); - - @Override - default DeleteResult all() { - return getInvoker().invoke(()-> getImpl().all()); - } - - @Override - default DeleteResult one() { - return getInvoker().invoke(()-> getImpl().one()); - } - - @Override - default List findAndRemove() { - return getInvoker().invoke(()-> getImpl().findAndRemove()); - } - -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/remove/impl/ExecutableRemoveDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/remove/impl/ExecutableRemoveDecoratorImpl.java deleted file mode 100644 index 213492811..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/remove/impl/ExecutableRemoveDecoratorImpl.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.remove.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.v3.decorator.operation.executable.remove.ExecutableRemoveDecorator; -import org.springframework.data.mongodb.core.ExecutableRemoveOperation; - -public class ExecutableRemoveDecoratorImpl extends DecoratorBase> implements ExecutableRemoveDecorator { - public ExecutableRemoveDecoratorImpl(ExecutableRemoveOperation.ExecutableRemove impl, LockGuardInvoker invoker) { - super(impl, invoker); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/remove/impl/RemoveWithCollectionDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/remove/impl/RemoveWithCollectionDecoratorImpl.java deleted file mode 100644 index dacf545d1..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/remove/impl/RemoveWithCollectionDecoratorImpl.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.remove.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.v3.decorator.operation.executable.remove.RemoveWithCollectionDecorator; -import org.springframework.data.mongodb.core.ExecutableRemoveOperation; - -public class RemoveWithCollectionDecoratorImpl - extends DecoratorBase> - implements RemoveWithCollectionDecorator { - - public RemoveWithCollectionDecoratorImpl(ExecutableRemoveOperation.RemoveWithCollection impl, LockGuardInvoker invoker) { - super(impl, invoker); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/remove/impl/RemoveWithQueryDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/remove/impl/RemoveWithQueryDecoratorImpl.java deleted file mode 100644 index cf8d20535..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/remove/impl/RemoveWithQueryDecoratorImpl.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.remove.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.v3.decorator.operation.executable.remove.RemoveWithQueryDecorator; -import org.springframework.data.mongodb.core.ExecutableRemoveOperation; - -public class RemoveWithQueryDecoratorImpl extends DecoratorBase> implements RemoveWithQueryDecorator { - public RemoveWithQueryDecoratorImpl(ExecutableRemoveOperation.RemoveWithQuery impl, LockGuardInvoker invoker) { - super(impl, invoker); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/remove/impl/TerminatingRemoveDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/remove/impl/TerminatingRemoveDecoratorImpl.java deleted file mode 100644 index ebeb54b4c..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/remove/impl/TerminatingRemoveDecoratorImpl.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.remove.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.v3.decorator.operation.executable.remove.TerminatingRemoveDecorator; -import org.springframework.data.mongodb.core.ExecutableRemoveOperation; - -public class TerminatingRemoveDecoratorImpl extends DecoratorBase> implements TerminatingRemoveDecorator { - - public TerminatingRemoveDecoratorImpl(ExecutableRemoveOperation.TerminatingRemove impl, LockGuardInvoker invoker) { - super(impl, invoker); - } - -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/ExecutableUpdateDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/ExecutableUpdateDecorator.java deleted file mode 100644 index fe13eaf7d..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/ExecutableUpdateDecorator.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.update; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.update.impl.FindAndReplaceWithProjectionDecoratorImpl; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.update.impl.TerminatingUpdateDecoratorImpl; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.update.impl.UpdateWithQueryDecoratorImpl; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.update.impl.UpdateWithUpdateDecoratorImpl; -import org.springframework.data.mongodb.core.ExecutableUpdateOperation; -import org.springframework.data.mongodb.core.query.CriteriaDefinition; -import org.springframework.data.mongodb.core.query.Query; -import org.springframework.data.mongodb.core.query.UpdateDefinition; - -public interface ExecutableUpdateDecorator extends Invokable, ExecutableUpdateOperation.ExecutableUpdate, - ExecutableUpdateOperation.UpdateWithCollection, ExecutableUpdateOperation.UpdateWithQuery, ExecutableUpdateOperation.UpdateWithUpdate { - - ExecutableUpdateOperation.ExecutableUpdate getImpl(); - - @Override - default ExecutableUpdateOperation.UpdateWithQuery inCollection(String collection) { - return new UpdateWithQueryDecoratorImpl<>(getInvoker().invoke(()-> getImpl().inCollection(collection)), getInvoker()); - } - - @Override - default ExecutableUpdateOperation.UpdateWithUpdate matching(Query query) { - return new UpdateWithUpdateDecoratorImpl<>(getInvoker().invoke(()-> getImpl().matching(query)), getInvoker()); - } - - @Override - default ExecutableUpdateOperation.UpdateWithUpdate matching(CriteriaDefinition criteria) { - return new UpdateWithUpdateDecoratorImpl<>(getInvoker().invoke(()-> getImpl().matching(criteria)), getInvoker()); - } - - @Override - default ExecutableUpdateOperation.TerminatingUpdate apply(UpdateDefinition update) { - return new TerminatingUpdateDecoratorImpl<>(getInvoker().invoke(()-> getImpl().apply(update)), getInvoker()); - } - - @Override - default ExecutableUpdateOperation.FindAndReplaceWithProjection replaceWith(T replacement) { - return new FindAndReplaceWithProjectionDecoratorImpl<>(getInvoker().invoke(()-> getImpl().replaceWith(replacement)), getInvoker()); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/FindAndModifyWithOptionsDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/FindAndModifyWithOptionsDecorator.java deleted file mode 100644 index 5f3184265..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/FindAndModifyWithOptionsDecorator.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.update; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.update.impl.TerminatingFindAndModifyDecoratorImpl; -import org.springframework.data.mongodb.core.ExecutableUpdateOperation; -import org.springframework.data.mongodb.core.FindAndModifyOptions; - -public interface FindAndModifyWithOptionsDecorator extends Invokable, ExecutableUpdateOperation.FindAndModifyWithOptions { - - ExecutableUpdateOperation.FindAndModifyWithOptions getImpl(); - - - @Override - default ExecutableUpdateOperation.TerminatingFindAndModify withOptions(FindAndModifyOptions options) { - return new TerminatingFindAndModifyDecoratorImpl<>(getInvoker().invoke(()-> getImpl().withOptions(options)), getInvoker()); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/FindAndReplaceWithOptionsDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/FindAndReplaceWithOptionsDecorator.java deleted file mode 100644 index 4f5a467bf..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/FindAndReplaceWithOptionsDecorator.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.update; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.update.impl.FindAndReplaceWithProjectionDecoratorImpl; -import org.springframework.data.mongodb.core.ExecutableUpdateOperation; -import org.springframework.data.mongodb.core.FindAndReplaceOptions; - -import java.util.Optional; - -public interface FindAndReplaceWithOptionsDecorator extends Invokable, ExecutableUpdateOperation.FindAndReplaceWithOptions, TerminatingFindAndReplaceDecorator { - - ExecutableUpdateOperation.FindAndReplaceWithOptions getImpl(); - - @Override - default ExecutableUpdateOperation.FindAndReplaceWithProjection withOptions(FindAndReplaceOptions options) { - return new FindAndReplaceWithProjectionDecoratorImpl<>(getInvoker().invoke(()-> getImpl().withOptions(options)), getInvoker()); - } - - @Override - default Optional findAndReplace() { - return getInvoker().invoke(()-> getImpl().findAndReplace()); - } - -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/FindAndReplaceWithProjectionDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/FindAndReplaceWithProjectionDecorator.java deleted file mode 100644 index 8935ed248..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/FindAndReplaceWithProjectionDecorator.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.update; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.update.impl.FindAndReplaceWithOptionsDecoratorImpl; -import org.springframework.data.mongodb.core.ExecutableUpdateOperation; - -public interface FindAndReplaceWithProjectionDecorator extends Invokable, ExecutableUpdateOperation.FindAndReplaceWithProjection, FindAndReplaceWithOptionsDecorator { - - ExecutableUpdateOperation.FindAndReplaceWithProjection getImpl(); - - @Override - default ExecutableUpdateOperation.FindAndReplaceWithOptions as(Class resultType) { - return new FindAndReplaceWithOptionsDecoratorImpl<>(getInvoker().invoke(()-> getImpl().as(resultType)), getInvoker()); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/TerminatingFindAndModifyDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/TerminatingFindAndModifyDecorator.java deleted file mode 100644 index fa55ef670..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/TerminatingFindAndModifyDecorator.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.update; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import org.springframework.data.mongodb.core.ExecutableUpdateOperation; - -import java.util.Optional; - -public interface TerminatingFindAndModifyDecorator extends Invokable, ExecutableUpdateOperation.TerminatingFindAndModify { - - ExecutableUpdateOperation.TerminatingFindAndModify getImpl(); - - @Override - default Optional findAndModify() { - return getInvoker().invoke(()-> getImpl().findAndModify()); - } - - - - @Override - default T findAndModifyValue() { - return getInvoker().invoke(()-> getImpl().findAndModifyValue()); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/TerminatingFindAndReplaceDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/TerminatingFindAndReplaceDecorator.java deleted file mode 100644 index 280d1fc95..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/TerminatingFindAndReplaceDecorator.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.update; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import org.springframework.data.mongodb.core.ExecutableUpdateOperation; - -import java.util.Optional; - -public interface TerminatingFindAndReplaceDecorator extends Invokable, ExecutableUpdateOperation.TerminatingFindAndReplace { - - ExecutableUpdateOperation.TerminatingFindAndReplace getImpl(); - - @Override - default Optional findAndReplace() { - return getInvoker().invoke(()-> getImpl().findAndReplace()); - } - - @Override - default T findAndReplaceValue() { - return getInvoker().invoke(()-> getImpl().findAndReplaceValue()); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/TerminatingUpdateDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/TerminatingUpdateDecorator.java deleted file mode 100644 index 987ce8cff..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/TerminatingUpdateDecorator.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.update; - - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import com.mongodb.client.result.UpdateResult; -import org.springframework.data.mongodb.core.ExecutableUpdateOperation; - -public interface TerminatingUpdateDecorator extends Invokable, ExecutableUpdateOperation.TerminatingUpdate, TerminatingFindAndModifyDecorator, FindAndModifyWithOptionsDecorator { - - ExecutableUpdateOperation.TerminatingUpdate getImpl(); - - @Override - default UpdateResult all() { - return getInvoker().invoke(()-> getImpl().all()); - } - - @Override - default UpdateResult first() { - return getInvoker().invoke(()-> getImpl().first()); - } - - @Override - default UpdateResult upsert() { - return getInvoker().invoke(()-> getImpl().upsert()); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/UpdateWithCollectionDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/UpdateWithCollectionDecorator.java deleted file mode 100644 index aa9750689..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/UpdateWithCollectionDecorator.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.update; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.update.impl.UpdateWithQueryDecoratorImpl; -import org.springframework.data.mongodb.core.ExecutableUpdateOperation; - -public interface UpdateWithCollectionDecorator extends Invokable, ExecutableUpdateOperation.UpdateWithCollection { - - ExecutableUpdateOperation.UpdateWithCollection getImpl(); - - @Override - default ExecutableUpdateOperation.UpdateWithQuery inCollection(String collection) { - return new UpdateWithQueryDecoratorImpl<>(getInvoker().invoke(()-> getImpl().inCollection(collection)), getInvoker()); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/UpdateWithQueryDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/UpdateWithQueryDecorator.java deleted file mode 100644 index c0095dd69..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/UpdateWithQueryDecorator.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.update; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.update.impl.UpdateWithUpdateDecoratorImpl; -import org.springframework.data.mongodb.core.ExecutableUpdateOperation; -import org.springframework.data.mongodb.core.query.CriteriaDefinition; -import org.springframework.data.mongodb.core.query.Query; - -public interface UpdateWithQueryDecorator extends Invokable, ExecutableUpdateOperation.UpdateWithQuery, UpdateWithUpdateDecorator { - - ExecutableUpdateOperation.UpdateWithQuery getImpl(); - - @Override - default ExecutableUpdateOperation.UpdateWithUpdate matching(Query query) { - return new UpdateWithUpdateDecoratorImpl<>(getInvoker().invoke(()-> getImpl().matching(query)), getInvoker()); - } - - @Override - default ExecutableUpdateOperation.UpdateWithUpdate matching(CriteriaDefinition criteria) { - return new UpdateWithUpdateDecoratorImpl<>(getInvoker().invoke(()-> getImpl().matching(criteria)), getInvoker()); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/UpdateWithUpdateDecorator.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/UpdateWithUpdateDecorator.java deleted file mode 100644 index 6cd38d799..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/UpdateWithUpdateDecorator.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.update; - -import io.mongock.driver.api.lock.guard.decorator.Invokable; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.update.impl.FindAndReplaceWithProjectionDecoratorImpl; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.update.impl.TerminatingUpdateDecoratorImpl; -import org.springframework.data.mongodb.core.ExecutableUpdateOperation; -import org.springframework.data.mongodb.core.query.UpdateDefinition; - -public interface UpdateWithUpdateDecorator extends Invokable, ExecutableUpdateOperation.UpdateWithUpdate { - - ExecutableUpdateOperation.UpdateWithUpdate getImpl(); - - - @Override - default ExecutableUpdateOperation.TerminatingUpdate apply(UpdateDefinition update) { - return new TerminatingUpdateDecoratorImpl<>(getInvoker().invoke(()-> getImpl().apply(update)), getInvoker()); - } - - @Override - default ExecutableUpdateOperation.FindAndReplaceWithProjection replaceWith(T replacement) { - return new FindAndReplaceWithProjectionDecoratorImpl<>(getInvoker().invoke(() -> getImpl().replaceWith(replacement)), getInvoker()); - } - -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/impl/ExecutableUpdateDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/impl/ExecutableUpdateDecoratorImpl.java deleted file mode 100644 index 4721e7a82..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/impl/ExecutableUpdateDecoratorImpl.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.update.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.v3.decorator.operation.executable.update.ExecutableUpdateDecorator; -import org.springframework.data.mongodb.core.ExecutableUpdateOperation; - -public class ExecutableUpdateDecoratorImpl extends DecoratorBase> implements ExecutableUpdateDecorator { - - public ExecutableUpdateDecoratorImpl(ExecutableUpdateOperation.ExecutableUpdate impl, LockGuardInvoker invoker) { - super(impl, invoker); - } - -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/impl/FindAndModifyWithOptionsDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/impl/FindAndModifyWithOptionsDecoratorImpl.java deleted file mode 100644 index 60b737e5e..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/impl/FindAndModifyWithOptionsDecoratorImpl.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.update.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.v3.decorator.operation.executable.update.FindAndModifyWithOptionsDecorator; -import org.springframework.data.mongodb.core.ExecutableUpdateOperation; - -public class FindAndModifyWithOptionsDecoratorImpl extends DecoratorBase> implements FindAndModifyWithOptionsDecorator { - - public FindAndModifyWithOptionsDecoratorImpl(ExecutableUpdateOperation.FindAndModifyWithOptions impl, LockGuardInvoker invoker) { - super(impl, invoker); - } - -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/impl/FindAndReplaceWithOptionsDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/impl/FindAndReplaceWithOptionsDecoratorImpl.java deleted file mode 100644 index bf6e27429..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/impl/FindAndReplaceWithOptionsDecoratorImpl.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.update.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.v3.decorator.operation.executable.update.FindAndReplaceWithOptionsDecorator; -import org.springframework.data.mongodb.core.ExecutableUpdateOperation; - -public class FindAndReplaceWithOptionsDecoratorImpl - extends DecoratorBase> - implements FindAndReplaceWithOptionsDecorator { - - public FindAndReplaceWithOptionsDecoratorImpl(ExecutableUpdateOperation.FindAndReplaceWithOptions impl, LockGuardInvoker invoker) { - super(impl, invoker); - } - -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/impl/FindAndReplaceWithProjectionDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/impl/FindAndReplaceWithProjectionDecoratorImpl.java deleted file mode 100644 index cc1d1d857..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/impl/FindAndReplaceWithProjectionDecoratorImpl.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.update.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.v3.decorator.operation.executable.update.FindAndReplaceWithProjectionDecorator; -import org.springframework.data.mongodb.core.ExecutableUpdateOperation; - -public class FindAndReplaceWithProjectionDecoratorImpl - extends DecoratorBase> - implements FindAndReplaceWithProjectionDecorator { - - public FindAndReplaceWithProjectionDecoratorImpl(ExecutableUpdateOperation.FindAndReplaceWithProjection impl, LockGuardInvoker invoker) { - super(impl, invoker); - } - - - -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/impl/TerminatingFindAndModifyDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/impl/TerminatingFindAndModifyDecoratorImpl.java deleted file mode 100644 index ce738dce6..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/impl/TerminatingFindAndModifyDecoratorImpl.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.update.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.v3.decorator.operation.executable.update.TerminatingFindAndModifyDecorator; -import org.springframework.data.mongodb.core.ExecutableUpdateOperation; - -public class TerminatingFindAndModifyDecoratorImpl extends DecoratorBase> implements TerminatingFindAndModifyDecorator { - - public TerminatingFindAndModifyDecoratorImpl(ExecutableUpdateOperation.TerminatingFindAndModify impl, LockGuardInvoker invoker) { - super(impl, invoker); - } - -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/impl/TerminatingFindAndReplaceDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/impl/TerminatingFindAndReplaceDecoratorImpl.java deleted file mode 100644 index e2aaeebf3..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/impl/TerminatingFindAndReplaceDecoratorImpl.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.update.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.v3.decorator.operation.executable.update.TerminatingFindAndReplaceDecorator; -import org.springframework.data.mongodb.core.ExecutableUpdateOperation; - -public class TerminatingFindAndReplaceDecoratorImpl extends DecoratorBase> implements TerminatingFindAndReplaceDecorator { - - public TerminatingFindAndReplaceDecoratorImpl(ExecutableUpdateOperation.TerminatingFindAndReplace impl, LockGuardInvoker invoker) { - super(impl, invoker); - } - -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/impl/TerminatingUpdateDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/impl/TerminatingUpdateDecoratorImpl.java deleted file mode 100644 index 3875ca6fd..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/impl/TerminatingUpdateDecoratorImpl.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.update.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.v3.decorator.operation.executable.update.TerminatingUpdateDecorator; -import org.springframework.data.mongodb.core.ExecutableUpdateOperation; - -public class TerminatingUpdateDecoratorImpl extends DecoratorBase> implements TerminatingUpdateDecorator { - public TerminatingUpdateDecoratorImpl(ExecutableUpdateOperation.TerminatingUpdate impl, LockGuardInvoker invoker) { - super(impl, invoker); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/impl/UpdateWithCollectionDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/impl/UpdateWithCollectionDecoratorImpl.java deleted file mode 100644 index fa5074425..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/impl/UpdateWithCollectionDecoratorImpl.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.update.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.v3.decorator.operation.executable.update.UpdateWithCollectionDecorator; -import org.springframework.data.mongodb.core.ExecutableUpdateOperation; - -public class UpdateWithCollectionDecoratorImpl extends DecoratorBase> implements UpdateWithCollectionDecorator { - - public UpdateWithCollectionDecoratorImpl(ExecutableUpdateOperation.UpdateWithCollection impl, LockGuardInvoker invoker) { - super(impl, invoker); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/impl/UpdateWithQueryDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/impl/UpdateWithQueryDecoratorImpl.java deleted file mode 100644 index 83163ba32..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/impl/UpdateWithQueryDecoratorImpl.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.update.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.v3.decorator.operation.executable.update.UpdateWithQueryDecorator; -import org.springframework.data.mongodb.core.ExecutableUpdateOperation; - -public class UpdateWithQueryDecoratorImpl - extends DecoratorBase> - implements UpdateWithQueryDecorator { - - public UpdateWithQueryDecoratorImpl(ExecutableUpdateOperation.UpdateWithQuery impl, LockGuardInvoker invoker) { - super(impl, invoker); - } - -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/impl/UpdateWithUpdateDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/impl/UpdateWithUpdateDecoratorImpl.java deleted file mode 100644 index bea79cbb5..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/main/java/com/github/cloudyrock/mongock/driver/mongodb/springdata/v3/decorator/operation/executable/update/impl/UpdateWithUpdateDecoratorImpl.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.operation.executable.update.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.v3.decorator.operation.executable.update.UpdateWithUpdateDecorator; -import org.springframework.data.mongodb.core.ExecutableUpdateOperation; - -public class UpdateWithUpdateDecoratorImpl extends DecoratorBase> implements UpdateWithUpdateDecorator { - - public UpdateWithUpdateDecoratorImpl(ExecutableUpdateOperation.UpdateWithUpdate impl, LockGuardInvoker invoker) { - super(impl, invoker); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/test/java/io/mongock/driver/mongodb/springdata/v3/driver/decorator/DecoratorUTest.java b/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/test/java/io/mongock/driver/mongodb/springdata/v3/driver/decorator/DecoratorUTest.java deleted file mode 100644 index 35ffebae5..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-springdata-v3-driver/src/test/java/io/mongock/driver/mongodb/springdata/v3/driver/decorator/DecoratorUTest.java +++ /dev/null @@ -1,108 +0,0 @@ -package io.mongock.driver.mongodb.springdata.v3.driver.decorator; - -import io.mongock.driver.api.lock.LockManager; -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvokerImpl; -import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.decorator.impl.MongockTemplate; -import io.mongock.test.util.decorator.DecoratorMethodFailure; -import io.mongock.test.util.decorator.DecoratorTestCollection; -import io.mongock.test.util.decorator.DecoratorValidator; -import com.mongodb.MongoNamespace; -import com.mongodb.ReadConcern; -import com.mongodb.ReadPreference; -import com.mongodb.ServerAddress; -import com.mongodb.ServerCursor; -import com.mongodb.WriteConcern; -import com.mongodb.bulk.BulkWriteResult; -import com.mongodb.client.result.DeleteResult; -import com.mongodb.client.result.InsertManyResult; -import com.mongodb.client.result.InsertOneResult; -import com.mongodb.client.result.UpdateResult; -import org.bson.BsonDocument; -import org.bson.Document; -import org.bson.codecs.configuration.CodecRegistry; -import org.junit.Assert; -import org.junit.Test; -import org.mockito.Mockito; -import org.springframework.data.geo.GeoResult; -import org.springframework.data.geo.GeoResults; -import org.springframework.data.mongodb.core.MongoOperations; -import org.springframework.data.mongodb.core.MongoTemplate; -import org.springframework.data.mongodb.core.SessionScoped; -import org.springframework.data.mongodb.core.aggregation.AggregationResults; -import org.springframework.data.mongodb.core.convert.MongoConverter; -import org.springframework.data.mongodb.core.mapreduce.GroupByResults; -import org.springframework.data.mongodb.core.mapreduce.MapReduceResults; -import org.springframework.data.mongodb.core.script.NamedMongoScript; -import org.springframework.data.util.CloseableIterator; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Optional; - -public class DecoratorUTest { - - - private DecoratorTestCollection getDecoratorsToTest() { - return new DecoratorTestCollection() - .addDecorator(MongoOperations.class, MongockTemplate.class); - - } - - - @Test - public void allMethodsInDecoratorsShouldEnsureLockAndReturnDecoratorIfNotTerminatingOperations() { - LockManager lockManager = Mockito.mock(LockManager.class); - List failedDecorators = new DecoratorValidator( - getDecoratorsToTest(), - getIgnoredTypes(), - Collections.singletonList(MongockTemplate.class), - getInstancesMap(lockManager), - lockManager) - .checkAndReturnFailedDecorators(); - int size = failedDecorators.size(); - Assert.assertEquals(DecoratorMethodFailure.printErrorMessage(failedDecorators), 0, size); - } - - private Map getInstancesMap(LockManager lockManager) { - Map instancesMap = new HashMap<>(); - instancesMap.put(MongockTemplate.class, new MongockTemplate(Mockito.mock(MongoTemplate.class), new LockGuardInvokerImpl(lockManager))); - return instancesMap; - } - - private Collection getIgnoredTypes() { - return new ArrayList<>(Arrays.asList( - Document.class - , UpdateResult.class - , InsertOneResult.class - , InsertManyResult.class - , DeleteResult.class - , MongoConverter.class - , BulkWriteResult.class - , GroupByResults.class - , AggregationResults.class - , GeoResults.class - , GeoResult.class - , MapReduceResults.class - , CloseableIterator.class - , MongoNamespace.class - , CodecRegistry.class - , ReadPreference.class - , ReadConcern.class - , WriteConcern.class - , NamedMongoScript.class - , BsonDocument.class - , ServerCursor.class - , ServerAddress.class - , Optional.class - - , SessionScoped.class - )); - } - - -} diff --git a/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/AggregateIterableDecorator.java b/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/AggregateIterableDecorator.java deleted file mode 100644 index 7a78b790a..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/AggregateIterableDecorator.java +++ /dev/null @@ -1,95 +0,0 @@ -package io.mongock.driver.mongodb.sync.v4.decorator; - -import io.changock.migration.api.annotations.NonLockGuarded; -import io.mongock.driver.mongodb.sync.v4.decorator.impl.AggregateIterableDecoratorImpl; -import com.mongodb.ExplainVerbosity; -import com.mongodb.client.AggregateIterable; -import com.mongodb.client.model.Collation; -import org.bson.Document; -import org.bson.conversions.Bson; - -import java.util.concurrent.TimeUnit; - -public interface AggregateIterableDecorator extends MongoIterableDecorator, AggregateIterable { - - @Override - AggregateIterable getImpl(); - - @Override - default void toCollection() { - getInvoker().invoke(() -> getImpl().toCollection()); - } - - @Override - @NonLockGuarded - default AggregateIterable allowDiskUse(Boolean allowDiskUse) { - return new AggregateIterableDecoratorImpl<>(getImpl().allowDiskUse(allowDiskUse), getInvoker()); - } - - @Override - @NonLockGuarded - default AggregateIterable batchSize(int batchSize) { - return new AggregateIterableDecoratorImpl<>(getImpl().batchSize(batchSize), getInvoker()); - } - - @Override - @NonLockGuarded - default AggregateIterable maxTime(long maxTime, TimeUnit timeUnit) { - return new AggregateIterableDecoratorImpl<>(getImpl().maxTime(maxTime, timeUnit), getInvoker()); - } - - @Override - @NonLockGuarded - default AggregateIterable bypassDocumentValidation(Boolean bypassDocumentValidation) { - return new AggregateIterableDecoratorImpl<>(getImpl().bypassDocumentValidation(bypassDocumentValidation), getInvoker()); - } - - @Override - @NonLockGuarded - default AggregateIterable collation(Collation collation) { - return new AggregateIterableDecoratorImpl<>(getImpl().collation(collation), getInvoker()); - } - - - @Override - @NonLockGuarded - default AggregateIterable maxAwaitTime(long l, TimeUnit timeUnit) { - return new AggregateIterableDecoratorImpl<>(getImpl().maxAwaitTime(l, timeUnit), getInvoker()); - } - - @Override - @NonLockGuarded - default AggregateIterable comment(String s) { - return new AggregateIterableDecoratorImpl<>(getImpl().comment(s), getInvoker()); - } - - @Override - @NonLockGuarded - default AggregateIterable hint(Bson bson) { - return new AggregateIterableDecoratorImpl<>(getImpl().hint(bson), getInvoker()); - } - - @Override - @NonLockGuarded - default Document explain() { - return getImpl().explain(); - } - - @Override - @NonLockGuarded - default Document explain(ExplainVerbosity explainVerbosity) { - return getImpl().explain(explainVerbosity); - } - - @Override - @NonLockGuarded - default E explain(Class aClass) { - return getImpl().explain(aClass); - } - - @Override - @NonLockGuarded - default E explain(Class aClass, ExplainVerbosity explainVerbosity) { - return getImpl().explain(aClass, explainVerbosity); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/ChangeStreamIterableDecorator.java b/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/ChangeStreamIterableDecorator.java deleted file mode 100644 index 12dd13f3a..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/ChangeStreamIterableDecorator.java +++ /dev/null @@ -1,59 +0,0 @@ -package io.mongock.driver.mongodb.sync.v4.decorator; - -import io.mongock.driver.mongodb.sync.v4.decorator.impl.ChangeStreamIterableDecoratorImpl; -import io.mongock.driver.mongodb.sync.v4.decorator.impl.MongoChangeStreamCursorDecoratorImpl; -import io.mongock.driver.mongodb.sync.v4.decorator.impl.MongoIterableDecoratorImpl; -import com.mongodb.client.ChangeStreamIterable; -import com.mongodb.client.MongoChangeStreamCursor; -import com.mongodb.client.MongoIterable; -import com.mongodb.client.model.Collation; -import com.mongodb.client.model.changestream.ChangeStreamDocument; -import com.mongodb.client.model.changestream.FullDocument; -import org.bson.BsonDocument; -import org.bson.BsonTimestamp; - -import java.util.concurrent.TimeUnit; - -public interface ChangeStreamIterableDecorator extends MongoIterableDecorator>, ChangeStreamIterable { - - @Override - ChangeStreamIterable getImpl(); - - - default MongoChangeStreamCursor> cursor() { - return new MongoChangeStreamCursorDecoratorImpl<>(getInvoker().invoke(() -> getImpl().cursor()), getInvoker()); - } - - default ChangeStreamIterable fullDocument(FullDocument var1){ - return new ChangeStreamIterableDecoratorImpl<>(getInvoker().invoke((()-> getImpl().fullDocument(var1))), getInvoker()); - } - - default ChangeStreamIterable resumeAfter(BsonDocument var1){ - return new ChangeStreamIterableDecoratorImpl<>(getInvoker().invoke((()-> getImpl().resumeAfter(var1))), getInvoker()); - } - - default ChangeStreamIterable batchSize(int var1) { - return new ChangeStreamIterableDecoratorImpl<>(getInvoker().invoke((()-> getImpl().batchSize(var1))), getInvoker()); - } - - default ChangeStreamIterable maxAwaitTime(long var1, TimeUnit var3){ - return new ChangeStreamIterableDecoratorImpl<>(getInvoker().invoke((()-> getImpl().maxAwaitTime(var1, var3))), getInvoker()); - } - - default ChangeStreamIterable collation(Collation var1){ - return new ChangeStreamIterableDecoratorImpl<>(getInvoker().invoke((()-> getImpl().collation(var1))), getInvoker()); - } - - default MongoIterable withDocumentClass(Class var1){ - return new MongoIterableDecoratorImpl<>(getInvoker().invoke((()-> getImpl().withDocumentClass(var1))), getInvoker()); - } - - default ChangeStreamIterable startAtOperationTime(BsonTimestamp var1){ - return new ChangeStreamIterableDecoratorImpl<>(getInvoker().invoke((()-> getImpl().startAtOperationTime(var1))), getInvoker()); - } - - default ChangeStreamIterable startAfter(BsonDocument var1){ - return new ChangeStreamIterableDecoratorImpl<>(getInvoker().invoke((()-> getImpl().startAfter(var1))), getInvoker()); - } - -} diff --git a/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/DistinctIterableDecorator.java b/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/DistinctIterableDecorator.java deleted file mode 100644 index e380f2724..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/DistinctIterableDecorator.java +++ /dev/null @@ -1,39 +0,0 @@ -package io.mongock.driver.mongodb.sync.v4.decorator; - -import io.changock.migration.api.annotations.NonLockGuarded; -import io.mongock.driver.mongodb.sync.v4.decorator.impl.DistinctIterableDecoratorImpl; -import com.mongodb.client.DistinctIterable; -import com.mongodb.client.model.Collation; -import org.bson.conversions.Bson; - -import java.util.concurrent.TimeUnit; - -public interface DistinctIterableDecorator extends MongoIterableDecorator, DistinctIterable { - - @Override - DistinctIterable getImpl(); - - @Override - @NonLockGuarded - default DistinctIterable filter(Bson filter) { - return new DistinctIterableDecoratorImpl<>(getImpl().filter(filter), getInvoker()); - } - - @Override - @NonLockGuarded - default DistinctIterable maxTime(long maxTime, TimeUnit timeUnit) { - return new DistinctIterableDecoratorImpl<>(getImpl().maxTime(maxTime, timeUnit), getInvoker()); - } - - @Override - @NonLockGuarded - default DistinctIterable batchSize(int batchSize) { - return new DistinctIterableDecoratorImpl<>(getImpl().batchSize(batchSize), getInvoker()); - } - - @Override - @NonLockGuarded - default DistinctIterable collation(Collation collation) { - return new DistinctIterableDecoratorImpl<>(getImpl().collation(collation), getInvoker()); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/FindIterableDecorator.java b/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/FindIterableDecorator.java deleted file mode 100644 index ffcce33c4..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/FindIterableDecorator.java +++ /dev/null @@ -1,176 +0,0 @@ -package io.mongock.driver.mongodb.sync.v4.decorator; - -import io.changock.migration.api.annotations.NonLockGuarded; -import io.mongock.driver.mongodb.sync.v4.decorator.impl.FindIterableDecoratorImpl; -import com.mongodb.CursorType; -import com.mongodb.ExplainVerbosity; -import com.mongodb.client.FindIterable; -import com.mongodb.client.model.Collation; -import org.bson.Document; -import org.bson.conversions.Bson; - -import java.util.concurrent.TimeUnit; - -/* -None of the methods in this class need to be re-wrapped in a guard because it's returning the instance -itself. -They neither need to be encapsulated with the invoker because they don't hit the database. - */ -public interface FindIterableDecorator extends MongoIterableDecorator, FindIterable { - - @Override - FindIterable getImpl(); - - @Override - @NonLockGuarded - default FindIterable filter(Bson filter) { - return new FindIterableDecoratorImpl<>(getImpl().filter(filter), getInvoker()); - } - - @Override - @NonLockGuarded - default FindIterable limit(int limit) { - return new FindIterableDecoratorImpl<>(getImpl().limit(limit), getInvoker()); - } - - @Override - @NonLockGuarded - default FindIterable skip(int skip) { - return new FindIterableDecoratorImpl<>(getImpl().skip(skip), getInvoker()); - } - - @Override - @NonLockGuarded - default FindIterable maxTime(long maxTime, TimeUnit timeUnit) { - return new FindIterableDecoratorImpl<>(getImpl().maxTime(maxTime, timeUnit), getInvoker()); - } - - @Override - @NonLockGuarded - default FindIterable maxAwaitTime(long maxAwaitTime, TimeUnit timeUnit) { - return new FindIterableDecoratorImpl<>(getImpl().maxAwaitTime(maxAwaitTime, timeUnit), getInvoker()); - } - - @Override - @NonLockGuarded - default FindIterable projection(Bson projection) { - return new FindIterableDecoratorImpl<>(getImpl().projection(projection), getInvoker()); - } - - @Override - @NonLockGuarded - default FindIterable sort(Bson sort) { - return new FindIterableDecoratorImpl<>(getImpl().sort(sort), getInvoker()); - } - - @Override - @NonLockGuarded - default FindIterable noCursorTimeout(boolean noCursorTimeout) { - return new FindIterableDecoratorImpl<>(getImpl().noCursorTimeout(noCursorTimeout), getInvoker()); - } - - @Override - @NonLockGuarded - default FindIterable oplogReplay(boolean oplogReplay) { - return new FindIterableDecoratorImpl<>(getImpl().oplogReplay(oplogReplay), getInvoker()); - } - - @Override - @NonLockGuarded - default FindIterable partial(boolean partial) { - return new FindIterableDecoratorImpl<>(getImpl().partial(partial), getInvoker()); - } - - @Override - @NonLockGuarded - default FindIterable cursorType(CursorType cursorType) { - return new FindIterableDecoratorImpl<>(getImpl().cursorType(cursorType), getInvoker()); - } - - @Override - @NonLockGuarded - default FindIterable batchSize(int batchSize) { - return new FindIterableDecoratorImpl<>(getImpl().batchSize(batchSize), getInvoker()); - } - - @Override - @NonLockGuarded - default FindIterable collation(Collation collation) { - return new FindIterableDecoratorImpl<>(getImpl().collation(collation), getInvoker()); - } - - @Override - @NonLockGuarded - default FindIterable comment(String comment) { - return new FindIterableDecoratorImpl<>(getImpl().comment(comment), getInvoker()); - } - - @Override - @NonLockGuarded - default FindIterable hint(Bson hint) { - return new FindIterableDecoratorImpl<>(getImpl().hint(hint), getInvoker()); - } - - @Override - @NonLockGuarded - default FindIterable max(Bson max) { - return new FindIterableDecoratorImpl<>(getImpl().max(max), getInvoker()); - } - - @Override - @NonLockGuarded - default FindIterable min(Bson min) { - return new FindIterableDecoratorImpl<>(getImpl().min(min), getInvoker()); - } - - @Override - @NonLockGuarded - default FindIterable returnKey(boolean returnKey) { - return new FindIterableDecoratorImpl<>(getImpl().returnKey(returnKey), getInvoker()); - } - - @Override - @NonLockGuarded - default FindIterable showRecordId(boolean showRecordId) { - return new FindIterableDecoratorImpl<>(getImpl().showRecordId(showRecordId), getInvoker()); - } - - //from v4.0.2 - @Override - @NonLockGuarded - default FindIterable hintString(String s) { - return new FindIterableDecoratorImpl<>(getImpl().hintString(s), getInvoker()); - } - - //from v4.1.2 - @Override - @NonLockGuarded - default FindIterable allowDiskUse(Boolean aBoolean) { - return new FindIterableDecoratorImpl<>(getImpl().allowDiskUse(aBoolean), getInvoker()); - } - - @Override - @NonLockGuarded - default Document explain() { - return getImpl().explain(); - } - - @Override - @NonLockGuarded - default Document explain(ExplainVerbosity explainVerbosity) { - return getImpl().explain(explainVerbosity); - } - - @Override - @NonLockGuarded - default E explain(Class aClass) { - return getImpl().explain(aClass); - } - - @Override - @NonLockGuarded - default E explain(Class aClass, ExplainVerbosity explainVerbosity) { - return getImpl().explain(aClass, explainVerbosity); - } - -} diff --git a/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/ListCollectionsIterableDecorator.java b/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/ListCollectionsIterableDecorator.java deleted file mode 100644 index 0bad495bf..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/ListCollectionsIterableDecorator.java +++ /dev/null @@ -1,34 +0,0 @@ -package io.mongock.driver.mongodb.sync.v4.decorator; - -import io.changock.migration.api.annotations.NonLockGuarded; -import io.changock.migration.api.annotations.NonLockGuardedType; -import io.mongock.driver.mongodb.sync.v4.decorator.impl.ListCollectionsIterableDecoratorImpl; -import com.mongodb.client.ListCollectionsIterable; -import org.bson.conversions.Bson; - -import java.util.concurrent.TimeUnit; - -public interface ListCollectionsIterableDecorator extends MongoIterableDecorator, ListCollectionsIterable { - - @Override - ListCollectionsIterable getImpl(); - - @Override - @NonLockGuarded(NonLockGuardedType.METHOD) - default ListCollectionsIterable filter(Bson filter) { - return new ListCollectionsIterableDecoratorImpl<>(getImpl().filter(filter), getInvoker()); - } - - @Override - @NonLockGuarded(NonLockGuardedType.METHOD) - default ListCollectionsIterable maxTime(long maxTime, TimeUnit timeUnit) { - return new ListCollectionsIterableDecoratorImpl<>( getImpl().maxTime(maxTime, timeUnit), getInvoker()); - } - - @Override - @NonLockGuarded(NonLockGuardedType.METHOD) - default ListCollectionsIterable batchSize(int batchSize) { - return new ListCollectionsIterableDecoratorImpl<>( getImpl().batchSize(batchSize), getInvoker()); - } - -} diff --git a/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/ListIndexesIterableDecorator.java b/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/ListIndexesIterableDecorator.java deleted file mode 100644 index 62b584381..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/ListIndexesIterableDecorator.java +++ /dev/null @@ -1,25 +0,0 @@ -package io.mongock.driver.mongodb.sync.v4.decorator; - -import io.changock.migration.api.annotations.NonLockGuarded; -import io.mongock.driver.mongodb.sync.v4.decorator.impl.ListIndexesIterableDecoratorImpl; -import com.mongodb.client.ListIndexesIterable; - -import java.util.concurrent.TimeUnit; - -public interface ListIndexesIterableDecorator extends ListIndexesIterable, MongoIterableDecorator { - @Override - ListIndexesIterable getImpl(); - - @Override - @NonLockGuarded - default ListIndexesIterable maxTime(long maxTime, TimeUnit timeUnit) { - return new ListIndexesIterableDecoratorImpl<>(getImpl().maxTime(maxTime, timeUnit), getInvoker()); - } - - @Override - @NonLockGuarded - default ListIndexesIterable batchSize(int batchSize) { - return new ListIndexesIterableDecoratorImpl<>( getImpl().batchSize(batchSize), getInvoker()); - } - -} diff --git a/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/MapReduceIterableDecorator.java b/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/MapReduceIterableDecorator.java deleted file mode 100644 index a50b8984f..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/MapReduceIterableDecorator.java +++ /dev/null @@ -1,117 +0,0 @@ -package io.mongock.driver.mongodb.sync.v4.decorator; - -import io.changock.migration.api.annotations.NonLockGuarded; -import io.mongock.driver.mongodb.sync.v4.decorator.impl.MapReduceIterableDecoratorImpl; -import com.mongodb.client.MapReduceIterable; -import com.mongodb.client.model.Collation; -import com.mongodb.client.model.MapReduceAction; -import org.bson.conversions.Bson; - -import java.util.concurrent.TimeUnit; - -public interface MapReduceIterableDecorator extends MongoIterableDecorator, MapReduceIterable { - - @Override - MapReduceIterable getImpl(); - - @Override - default void toCollection() { - getInvoker().invoke(() -> getImpl().toCollection()); - } - - @Override - @NonLockGuarded - default MapReduceIterable collectionName(String collectionName) { - return new MapReduceIterableDecoratorImpl<>(getImpl().collectionName(collectionName), getInvoker()); - } - - @Override - @NonLockGuarded - default MapReduceIterable finalizeFunction(String finalizeFunction) { - return new MapReduceIterableDecoratorImpl<>( getImpl().finalizeFunction(finalizeFunction), getInvoker()); - } - - @Override - @NonLockGuarded - default MapReduceIterable scope(Bson scope) { - return new MapReduceIterableDecoratorImpl<>( getImpl().scope(scope), getInvoker()); - } - - @Override - @NonLockGuarded - default MapReduceIterable sort(Bson sort) { - return new MapReduceIterableDecoratorImpl<>( getImpl().sort(sort), getInvoker()); - } - - @Override - @NonLockGuarded - default MapReduceIterable filter(Bson filter) { - return new MapReduceIterableDecoratorImpl<>( getImpl().filter(filter), getInvoker()); - } - - @Override - @NonLockGuarded - default MapReduceIterable limit(int limit) { - return new MapReduceIterableDecoratorImpl<>( getImpl().limit(limit), getInvoker()); - } - - @Override - @NonLockGuarded - default MapReduceIterable jsMode(boolean jsMode) { - return new MapReduceIterableDecoratorImpl<>( getImpl().jsMode(jsMode), getInvoker()); - } - - @Override - @NonLockGuarded - default MapReduceIterable verbose(boolean verbose) { - return new MapReduceIterableDecoratorImpl<>( getImpl().verbose(verbose), getInvoker()); - } - - @Override - @NonLockGuarded - default MapReduceIterable maxTime(long maxTime, TimeUnit timeUnit) { - return new MapReduceIterableDecoratorImpl<>( getImpl().maxTime(maxTime, timeUnit), getInvoker()); - } - - @Override - @NonLockGuarded - default MapReduceIterable action(MapReduceAction action) { - return new MapReduceIterableDecoratorImpl<>( getImpl().action(action), getInvoker()); - } - - @Override - @NonLockGuarded - default MapReduceIterable databaseName(String databaseName) { - return new MapReduceIterableDecoratorImpl<>( getImpl().databaseName(databaseName), getInvoker()); - } - - @Override - @NonLockGuarded - default MapReduceIterable sharded(boolean sharded) { - return new MapReduceIterableDecoratorImpl<>( getImpl().sharded(sharded), getInvoker()); - } - - @Override - @NonLockGuarded - default MapReduceIterable nonAtomic(boolean nonAtomic) { - return new MapReduceIterableDecoratorImpl<>( getImpl().nonAtomic(nonAtomic), getInvoker()); - } - - @Override - @NonLockGuarded - default MapReduceIterable batchSize(int batchSize) { - return new MapReduceIterableDecoratorImpl<>( getImpl().batchSize(batchSize), getInvoker()); - } - - @Override - @NonLockGuarded - default MapReduceIterable bypassDocumentValidation(Boolean bypassDocumentValidation) { - return new MapReduceIterableDecoratorImpl<>( getImpl().bypassDocumentValidation(bypassDocumentValidation), getInvoker()); - } - - @Override - @NonLockGuarded - default MapReduceIterable collation(Collation collation) { - return new MapReduceIterableDecoratorImpl<>( getImpl().collation(collation), getInvoker()); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/MongoChangeStreamCursorDecorator.java b/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/MongoChangeStreamCursorDecorator.java deleted file mode 100644 index 6ed4ba37d..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/MongoChangeStreamCursorDecorator.java +++ /dev/null @@ -1,13 +0,0 @@ -package io.mongock.driver.mongodb.sync.v4.decorator; - -import com.mongodb.client.MongoChangeStreamCursor; -import org.bson.BsonDocument; - -public interface MongoChangeStreamCursorDecorator extends MongoCursorDecorator, MongoChangeStreamCursor { - - MongoChangeStreamCursor getImpl(); - - default BsonDocument getResumeToken() { - return getInvoker().invoke(() -> getImpl().getResumeToken()); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/MongoCollectionDecorator.java b/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/MongoCollectionDecorator.java deleted file mode 100644 index d4bcec8bb..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/MongoCollectionDecorator.java +++ /dev/null @@ -1,738 +0,0 @@ -package io.mongock.driver.mongodb.sync.v4.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 io.mongock.driver.mongodb.sync.v4.decorator.impl.AggregateIterableDecoratorImpl; -import io.mongock.driver.mongodb.sync.v4.decorator.impl.ChangeStreamIterableDecoratorImpl; -import io.mongock.driver.mongodb.sync.v4.decorator.impl.DistinctIterableDecoratorImpl; -import io.mongock.driver.mongodb.sync.v4.decorator.impl.FindIterableDecoratorImpl; -import io.mongock.driver.mongodb.sync.v4.decorator.impl.ListIndexesIterableDecoratorImpl; -import io.mongock.driver.mongodb.sync.v4.decorator.impl.MapReduceIterableDecoratorImpl; -import io.mongock.driver.mongodb.sync.v4.decorator.impl.MongoCollectionDecoratorImpl; -import com.mongodb.MongoNamespace; -import com.mongodb.ReadConcern; -import com.mongodb.ReadPreference; -import com.mongodb.WriteConcern; -import com.mongodb.bulk.BulkWriteResult; -import com.mongodb.client.AggregateIterable; -import com.mongodb.client.ChangeStreamIterable; -import com.mongodb.client.ClientSession; -import com.mongodb.client.DistinctIterable; -import com.mongodb.client.FindIterable; -import com.mongodb.client.ListIndexesIterable; -import com.mongodb.client.MapReduceIterable; -import com.mongodb.client.MongoCollection; -import com.mongodb.client.model.BulkWriteOptions; -import com.mongodb.client.model.CountOptions; -import com.mongodb.client.model.CreateIndexOptions; -import com.mongodb.client.model.DeleteOptions; -import com.mongodb.client.model.DropIndexOptions; -import com.mongodb.client.model.EstimatedDocumentCountOptions; -import com.mongodb.client.model.FindOneAndDeleteOptions; -import com.mongodb.client.model.FindOneAndReplaceOptions; -import com.mongodb.client.model.FindOneAndUpdateOptions; -import com.mongodb.client.model.IndexModel; -import com.mongodb.client.model.IndexOptions; -import com.mongodb.client.model.InsertManyOptions; -import com.mongodb.client.model.InsertOneOptions; -import com.mongodb.client.model.RenameCollectionOptions; -import com.mongodb.client.model.ReplaceOptions; -import com.mongodb.client.model.UpdateOptions; -import com.mongodb.client.model.WriteModel; -import com.mongodb.client.result.DeleteResult; -import com.mongodb.client.result.InsertManyResult; -import com.mongodb.client.result.InsertOneResult; -import com.mongodb.client.result.UpdateResult; -import org.bson.Document; -import org.bson.codecs.configuration.CodecRegistry; -import org.bson.conversions.Bson; - -import java.util.List; - -public interface MongoCollectionDecorator extends MongoCollection { - - MongoCollection getImpl(); - - LockGuardInvoker getInvoker(); - - @Override - @NonLockGuarded(NonLockGuardedType.NONE) - default MongoNamespace getNamespace() { - return getImpl().getNamespace(); - } - - @Override - @NonLockGuarded(NonLockGuardedType.NONE) - default Class getDocumentClass() { - return getImpl().getDocumentClass(); - } - - @Override - @NonLockGuarded(NonLockGuardedType.NONE) - default CodecRegistry getCodecRegistry() { - return getImpl().getCodecRegistry(); - } - - @Override - @NonLockGuarded(NonLockGuardedType.NONE) - default ReadPreference getReadPreference() { - return getImpl().getReadPreference(); - } - - @Override - @NonLockGuarded(NonLockGuardedType.NONE) - default WriteConcern getWriteConcern() { - return getImpl().getWriteConcern(); - } - - @Override - @NonLockGuarded(NonLockGuardedType.NONE) - default ReadConcern getReadConcern() { - return getImpl().getReadConcern(); - } - - @Override - @NonLockGuarded(NonLockGuardedType.METHOD) - default MongoCollection withDocumentClass(Class aClass) { - return new MongoCollectionDecoratorImpl<>(getImpl().withDocumentClass(aClass), getInvoker()); - } - - @Override - @NonLockGuarded(NonLockGuardedType.METHOD) - default MongoCollection withCodecRegistry(CodecRegistry codecRegistry) { - return new MongoCollectionDecoratorImpl<>(getImpl().withCodecRegistry(codecRegistry), getInvoker()); - } - - @Override - @NonLockGuarded(NonLockGuardedType.METHOD) - default MongoCollection withReadPreference(ReadPreference readPreference) { - return new MongoCollectionDecoratorImpl<>(getImpl().withReadPreference(readPreference), getInvoker()); - } - - @Override - @NonLockGuarded(NonLockGuardedType.METHOD) - default MongoCollection withWriteConcern(WriteConcern writeConcern) { - return new MongoCollectionDecoratorImpl<>(getImpl().withWriteConcern(writeConcern), getInvoker()); - } - - @Override - @NonLockGuarded(NonLockGuardedType.METHOD) - default MongoCollection withReadConcern(ReadConcern readConcern) { - return new MongoCollectionDecoratorImpl<>(getImpl().withReadConcern(readConcern), getInvoker()); - } - - @Override - default DistinctIterable distinct(String s, Class aClass) { - return new DistinctIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().distinct(s, aClass)), getInvoker()); - } - - @Override - default DistinctIterable distinct(String s, Bson bson, Class aClass) { - return new DistinctIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().distinct(s, bson, aClass)), getInvoker()); - } - - @Override - default FindIterable find() { - return new FindIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().find()), getInvoker()); - } - - @Override - default FindIterable find(Class aClass) { - return new FindIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().find(aClass)), getInvoker()); - } - - @Override - default FindIterable find(Bson bson) { - return new FindIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().find(bson)), getInvoker()); - } - - @Override - default FindIterable find(Bson bson, Class aClass) { - return new FindIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().find(bson, aClass)), getInvoker()); - } - - @Override - default AggregateIterable aggregate(List list) { - return new AggregateIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().aggregate(list)), getInvoker()); - } - - @Override - default AggregateIterable aggregate(List list, Class aClass) { - return new AggregateIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().aggregate(list, aClass)), getInvoker()); - } - - @Override - default MapReduceIterable mapReduce(String s, String s1) { - return new MapReduceIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().mapReduce(s, s1)), getInvoker()); - } - - @Override - default MapReduceIterable mapReduce(String s, String s1, Class aClass) { - return new MapReduceIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().mapReduce(s, s1, aClass)), getInvoker()); - } - - @Override - default BulkWriteResult bulkWrite(List> list) { - return getInvoker().invoke(() -> getImpl().bulkWrite(list)); - } - - @Override - default BulkWriteResult bulkWrite(List> list, BulkWriteOptions bulkWriteOptions) { - return getInvoker().invoke(() -> getImpl().bulkWrite(list, bulkWriteOptions)); - } - - @Override - default DeleteResult deleteOne(Bson bson) { - return getInvoker().invoke(() -> getImpl().deleteOne(bson)); - } - - @Override - default DeleteResult deleteOne(Bson bson, DeleteOptions deleteOptions) { - return getInvoker().invoke(() -> getImpl().deleteOne(bson, deleteOptions)); - } - - @Override - default DeleteResult deleteMany(Bson bson) { - return getInvoker().invoke(() -> getImpl().deleteMany(bson)); - } - - @Override - default DeleteResult deleteMany(Bson bson, DeleteOptions deleteOptions) { - return getInvoker().invoke(() -> getImpl().deleteMany(bson, deleteOptions)); - } - - @Override - default UpdateResult replaceOne(Bson bson, T t) { - return getInvoker().invoke(() -> getImpl().replaceOne(bson, t)); - } - - @Override - default UpdateResult updateOne(Bson bson, Bson bson1) { - return getInvoker().invoke(() -> getImpl().updateOne(bson, bson1)); - } - - @Override - default UpdateResult updateOne(Bson bson, Bson bson1, UpdateOptions updateOptions) { - return getInvoker().invoke(() -> getImpl().updateOne(bson, bson1, updateOptions)); - } - - @Override - default UpdateResult updateMany(Bson bson, Bson bson1) { - return getInvoker().invoke(() -> getImpl().updateMany(bson, bson1)); - } - - @Override - default UpdateResult updateMany(Bson bson, Bson bson1, UpdateOptions updateOptions) { - return getInvoker().invoke(() -> getImpl().updateMany(bson, bson1, updateOptions)); - } - - @Override - default T findOneAndDelete(Bson bson) { - return getInvoker().invoke(() -> getImpl().findOneAndDelete(bson)); - } - - @Override - default T findOneAndDelete(Bson bson, FindOneAndDeleteOptions findOneAndDeleteOptions) { - return getInvoker().invoke(() -> getImpl().findOneAndDelete(bson, findOneAndDeleteOptions)); - } - - @Override - default T findOneAndReplace(Bson bson, T t) { - return getInvoker().invoke(() -> getImpl().findOneAndReplace(bson, t)); - } - - @Override - default T findOneAndReplace(Bson bson, T t, FindOneAndReplaceOptions findOneAndReplaceOptions) { - return getInvoker().invoke(() -> getImpl().findOneAndReplace(bson, t, findOneAndReplaceOptions)); - } - - @Override - default T findOneAndUpdate(Bson bson, Bson bson1) { - return getInvoker().invoke(() -> getImpl().findOneAndUpdate(bson, bson1)); - } - - @Override - default T findOneAndUpdate(Bson bson, Bson bson1, FindOneAndUpdateOptions findOneAndUpdateOptions) { - return getInvoker().invoke(() -> getImpl().findOneAndUpdate(bson, bson1, findOneAndUpdateOptions)); - } - - @Override - default void drop() { - getInvoker().invoke(() -> getImpl().drop()); - } - - @Override - default String createIndex(Bson bson) { - return getInvoker().invoke(() -> getImpl().createIndex(bson)); - } - - @Override - default String createIndex(Bson bson, IndexOptions indexOptions) { - return getInvoker().invoke(() -> getImpl().createIndex(bson, indexOptions)); - } - - @Override - default List createIndexes(List list) { - return getInvoker().invoke(() -> getImpl().createIndexes(list)); - } - - @Override - default ListIndexesIterable listIndexes() { - return new ListIndexesIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().listIndexes()), getInvoker()); - } - - @Override - default ListIndexesIterable listIndexes(Class aClass) { - return new ListIndexesIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().listIndexes(aClass)), getInvoker()); - } - - @Override - default void dropIndex(String s) { - getInvoker().invoke(() -> getImpl().dropIndex(s)); - } - - @Override - default void dropIndex(Bson bson) { - getInvoker().invoke(() -> getImpl().dropIndex(bson)); - } - - @Override - default void dropIndexes() { - getInvoker().invoke(() -> getImpl().dropIndexes()); - } - - @Override - default void renameCollection(MongoNamespace mongoNamespace) { - getInvoker().invoke(() -> getImpl().renameCollection(mongoNamespace)); - } - - @Override - default void renameCollection(MongoNamespace mongoNamespace, RenameCollectionOptions renameCollectionOptions) { - getInvoker().invoke(() -> getImpl().renameCollection(mongoNamespace, renameCollectionOptions)); - } - - @Override - default long countDocuments() { - return getInvoker().invoke(() -> getImpl().countDocuments()); - } - - @Override - default long countDocuments(Bson bson) { - return getInvoker().invoke(() -> getImpl().countDocuments(bson)); - } - - @Override - default long countDocuments(Bson bson, CountOptions countOptions) { - return getInvoker().invoke(() -> getImpl().countDocuments(bson, countOptions)); - } - - @Override - default long countDocuments(ClientSession clientSession) { - return getInvoker().invoke(() -> getImpl().countDocuments(clientSession)); - } - - @Override - default long countDocuments(ClientSession clientSession, Bson bson) { - return getInvoker().invoke(() -> getImpl().countDocuments(clientSession, bson)); - } - - @Override - default long countDocuments(ClientSession clientSession, Bson bson, CountOptions countOptions) { - return getInvoker().invoke(() -> getImpl().countDocuments(clientSession, bson, countOptions)); - } - - @Override - default long estimatedDocumentCount() { - return getInvoker().invoke(() -> getImpl().estimatedDocumentCount()); - } - - @Override - default long estimatedDocumentCount(EstimatedDocumentCountOptions estimatedDocumentCountOptions) { - return getInvoker().invoke(() -> getImpl().estimatedDocumentCount(estimatedDocumentCountOptions)); - } - - @Override - default DistinctIterable distinct(ClientSession clientSession, String s, Class aClass) { - return new DistinctIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().distinct(clientSession, s, aClass)), getInvoker()); - } - - @Override - default DistinctIterable distinct(ClientSession clientSession, String s, Bson bson, Class aClass) { - return new DistinctIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().distinct(clientSession, s, bson, aClass)), getInvoker()); - } - - @Override - default FindIterable find(ClientSession clientSession) { - return new FindIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().find(clientSession)), getInvoker()); - } - - @Override - default FindIterable find(ClientSession clientSession, Class aClass) { - return new FindIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().find(clientSession, aClass)), getInvoker()); - } - - @Override - default FindIterable find(ClientSession clientSession, Bson bson) { - return new FindIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().find(clientSession, bson)), getInvoker()); - } - - @Override - default FindIterable find(ClientSession clientSession, Bson bson, Class aClass) { - return new FindIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().find(clientSession, bson, aClass)), getInvoker()); - } - - @Override - default AggregateIterable aggregate(ClientSession clientSession, List list) { - return new AggregateIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().aggregate(clientSession, list)), getInvoker()); - } - - @Override - default AggregateIterable aggregate(ClientSession clientSession, List list, Class aClass) { - return new AggregateIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().aggregate(clientSession, list, aClass)), getInvoker()); - } - - @Override - default ChangeStreamIterable watch() { - return new ChangeStreamIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().watch()), getInvoker()); - } - - @Override - default ChangeStreamIterable watch(Class aClass) { - return new ChangeStreamIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().watch(aClass)), getInvoker()); - - } - - @Override - default ChangeStreamIterable watch(List list) { - return new ChangeStreamIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().watch(list)), getInvoker()); - } - - @Override - default ChangeStreamIterable watch(List list, Class aClass) { - return new ChangeStreamIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().watch(list, aClass)), getInvoker()); - } - - @Override - default ChangeStreamIterable watch(ClientSession clientSession) { - return new ChangeStreamIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().watch(clientSession)), getInvoker()); - } - - @Override - default ChangeStreamIterable watch(ClientSession clientSession, Class aClass) { - return new ChangeStreamIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().watch(clientSession, aClass)), getInvoker()); - } - - @Override - default ChangeStreamIterable watch(ClientSession clientSession, List list) { - return new ChangeStreamIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().watch(clientSession, list)), getInvoker()); - } - - @Override - default ChangeStreamIterable watch(ClientSession clientSession, List list, Class aClass) { - return new ChangeStreamIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().watch(clientSession, list, aClass)), getInvoker()); - } - - @Override - default MapReduceIterable mapReduce(ClientSession clientSession, String s, String s1) { - return new MapReduceIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().mapReduce(clientSession, s, s1)), getInvoker()); - } - - @Override - default MapReduceIterable mapReduce(ClientSession clientSession, String s, String s1, Class aClass) { - return new MapReduceIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().mapReduce(clientSession, s, s1, aClass)), getInvoker()); - } - - @Override - default BulkWriteResult bulkWrite(ClientSession clientSession, List> list) { - return getInvoker().invoke(() -> getImpl().bulkWrite(clientSession, list)); - } - - @Override - default BulkWriteResult bulkWrite(ClientSession clientSession, List> list, BulkWriteOptions bulkWriteOptions) { - return getInvoker().invoke(() -> getImpl().bulkWrite(clientSession, list, bulkWriteOptions)); - } - - @Override - default DeleteResult deleteOne(ClientSession clientSession, Bson bson) { - return getInvoker().invoke(() -> getImpl().deleteOne(clientSession, bson)); - } - - @Override - default DeleteResult deleteOne(ClientSession clientSession, Bson bson, DeleteOptions deleteOptions) { - return getInvoker().invoke(() -> getImpl().deleteOne(clientSession, bson, deleteOptions)); - } - - @Override - default DeleteResult deleteMany(ClientSession clientSession, Bson bson) { - return getInvoker().invoke(() -> getImpl().deleteMany(clientSession, bson)); - } - - @Override - default DeleteResult deleteMany(ClientSession clientSession, Bson bson, DeleteOptions deleteOptions) { - return getInvoker().invoke(() -> getImpl().deleteMany(clientSession, bson, deleteOptions)); - } - - @Override - default UpdateResult replaceOne(Bson bson, T t, ReplaceOptions replaceOptions) { - return getInvoker().invoke(() -> getImpl().replaceOne(bson, t, replaceOptions)); - } - - @Override - default UpdateResult replaceOne(ClientSession clientSession, Bson bson, T t) { - return getInvoker().invoke(() -> getImpl().replaceOne(clientSession, bson, t)); - } - - @Override - default UpdateResult replaceOne(ClientSession clientSession, Bson bson, T t, ReplaceOptions replaceOptions) { - return getInvoker().invoke(() -> getImpl().replaceOne(clientSession, bson, t, replaceOptions)); - } - - @Override - default UpdateResult updateOne(ClientSession clientSession, Bson bson, Bson bson1) { - return getInvoker().invoke(() -> getImpl().updateOne(clientSession, bson, bson1)); - } - - @Override - default UpdateResult updateOne(ClientSession clientSession, Bson bson, Bson bson1, UpdateOptions updateOptions) { - return getInvoker().invoke(() -> getImpl().updateOne(clientSession, bson, bson1, updateOptions)); - } - - @Override - default UpdateResult updateOne(Bson bson, List list) { - return getInvoker().invoke(() -> getImpl().updateOne(bson, list)); - } - - @Override - default UpdateResult updateOne(Bson bson, List list, UpdateOptions updateOptions) { - return getInvoker().invoke(() -> getImpl().updateOne(bson, list, updateOptions)); - } - - @Override - default UpdateResult updateOne(ClientSession clientSession, Bson bson, List list) { - return getInvoker().invoke(() -> getImpl().updateOne(clientSession, bson, list)); - } - - @Override - default UpdateResult updateOne(ClientSession clientSession, Bson bson, List list, UpdateOptions updateOptions) { - return getInvoker().invoke(() -> getImpl().updateOne(clientSession, bson, list, updateOptions)); - } - - @Override - default UpdateResult updateMany(ClientSession clientSession, Bson bson, Bson bson1) { - return getInvoker().invoke(() -> getImpl().updateMany(clientSession, bson, bson1)); - } - - @Override - default UpdateResult updateMany(ClientSession clientSession, Bson bson, Bson bson1, UpdateOptions updateOptions) { - return getInvoker().invoke(() -> getImpl().updateMany(clientSession, bson, bson1, updateOptions)); - } - - @Override - default UpdateResult updateMany(Bson bson, List list) { - return getInvoker().invoke(() -> getImpl().updateMany(bson, list)); - } - - @Override - default UpdateResult updateMany(Bson bson, List list, UpdateOptions updateOptions) { - return getInvoker().invoke(() -> getImpl().updateMany(bson, list, updateOptions)); - } - - @Override - default UpdateResult updateMany(ClientSession clientSession, Bson bson, List list) { - return getInvoker().invoke(() -> getImpl().updateMany(clientSession, bson, list)); - } - - @Override - default UpdateResult updateMany(ClientSession clientSession, Bson bson, List list, UpdateOptions updateOptions) { - return getInvoker().invoke(() -> getImpl().updateMany(clientSession, bson, list, updateOptions)); - } - - @Override - default T findOneAndDelete(ClientSession clientSession, Bson bson) { - return getInvoker().invoke(() -> getImpl().findOneAndDelete(clientSession, bson)); - } - - @Override - default T findOneAndDelete(ClientSession clientSession, Bson bson, FindOneAndDeleteOptions findOneAndDeleteOptions) { - return getInvoker().invoke(() -> getImpl().findOneAndDelete(clientSession, bson, findOneAndDeleteOptions)); - } - - @Override - default T findOneAndReplace(ClientSession clientSession, Bson bson, T t) { - return getInvoker().invoke(() -> getImpl().findOneAndReplace(clientSession, bson, t)); - } - - @Override - default T findOneAndReplace(ClientSession clientSession, Bson bson, T t, FindOneAndReplaceOptions findOneAndReplaceOptions) { - return getInvoker().invoke(() -> getImpl().findOneAndReplace(clientSession, bson, t, findOneAndReplaceOptions)); - } - - @Override - default T findOneAndUpdate(ClientSession clientSession, Bson bson, Bson bson1) { - return getInvoker().invoke(() -> getImpl().findOneAndUpdate(clientSession, bson, bson1)); - } - - @Override - default T findOneAndUpdate(ClientSession clientSession, Bson bson, Bson bson1, FindOneAndUpdateOptions findOneAndUpdateOptions) { - return getInvoker().invoke(() -> getImpl().findOneAndUpdate(clientSession, bson, bson1, findOneAndUpdateOptions)); - } - - @Override - default T findOneAndUpdate(Bson bson, List list) { - return getInvoker().invoke(() -> getImpl().findOneAndUpdate(bson, list)); - } - - @Override - default T findOneAndUpdate(Bson bson, List list, FindOneAndUpdateOptions findOneAndUpdateOptions) { - return getInvoker().invoke(() -> getImpl().findOneAndUpdate(bson, list, findOneAndUpdateOptions)); - } - - @Override - default T findOneAndUpdate(ClientSession clientSession, Bson bson, List list) { - return getInvoker().invoke(() -> getImpl().findOneAndUpdate(clientSession, bson, list)); - } - - @Override - default T findOneAndUpdate(ClientSession clientSession, Bson bson, List list, FindOneAndUpdateOptions findOneAndUpdateOptions) { - return getInvoker().invoke(() -> getImpl().findOneAndUpdate(clientSession, bson, list, findOneAndUpdateOptions)); - } - - @Override - default void drop(ClientSession clientSession) { - getInvoker().invoke(() -> getImpl().drop(clientSession)); - } - - @Override - default String createIndex(ClientSession clientSession, Bson bson) { - return getInvoker().invoke(() -> getImpl().createIndex(clientSession, bson)); - } - - @Override - default String createIndex(ClientSession clientSession, Bson bson, IndexOptions indexOptions) { - return getInvoker().invoke(() -> getImpl().createIndex(clientSession, bson, indexOptions)); - } - - @Override - default List createIndexes(List list, CreateIndexOptions createIndexOptions) { - return getInvoker().invoke(() -> getImpl().createIndexes(list, createIndexOptions)); - } - - @Override - default List createIndexes(ClientSession clientSession, List list) { - return getInvoker().invoke(() -> getImpl().createIndexes(clientSession, list)); - } - - @Override - default List createIndexes(ClientSession clientSession, List list, CreateIndexOptions createIndexOptions) { - return getInvoker().invoke(() -> getImpl().createIndexes(clientSession, list, createIndexOptions)); - } - - @Override - default ListIndexesIterable listIndexes(ClientSession clientSession) { - return new ListIndexesIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().listIndexes(clientSession)), getInvoker()); - } - - @Override - default ListIndexesIterable listIndexes(ClientSession clientSession, Class aClass) { - return new ListIndexesIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().listIndexes(clientSession, aClass)), getInvoker()); - } - - @Override - default void dropIndex(String s, DropIndexOptions dropIndexOptions) { - getInvoker().invoke(() -> getImpl().dropIndex(s, dropIndexOptions)); - } - - @Override - default void dropIndex(Bson bson, DropIndexOptions dropIndexOptions) { - getInvoker().invoke(() -> getImpl().dropIndex(bson, dropIndexOptions)); - } - - @Override - default void dropIndex(ClientSession clientSession, String s) { - getInvoker().invoke(() -> getImpl().dropIndex(clientSession, s)); - } - - @Override - default void dropIndex(ClientSession clientSession, Bson bson) { - getInvoker().invoke(() -> getImpl().dropIndex(clientSession, bson)); - } - - @Override - default void dropIndex(ClientSession clientSession, String s, DropIndexOptions dropIndexOptions) { - getInvoker().invoke(() -> getImpl().dropIndex(clientSession, s, dropIndexOptions)); - } - - @Override - default void dropIndex(ClientSession clientSession, Bson bson, DropIndexOptions dropIndexOptions) { - getInvoker().invoke(() -> getImpl().dropIndex(clientSession, bson, dropIndexOptions)); - } - - @Override - default void dropIndexes(ClientSession clientSession) { - getInvoker().invoke(() -> getImpl().dropIndexes(clientSession)); - } - - @Override - default void dropIndexes(DropIndexOptions dropIndexOptions) { - getInvoker().invoke(() -> getImpl().dropIndexes(dropIndexOptions)); - } - - @Override - default void dropIndexes(ClientSession clientSession, DropIndexOptions dropIndexOptions) { - getInvoker().invoke(() -> getImpl().dropIndexes(clientSession, dropIndexOptions)); - } - - @Override - default void renameCollection(ClientSession clientSession, MongoNamespace mongoNamespace) { - getInvoker().invoke(() -> getImpl().renameCollection(clientSession, mongoNamespace)); - } - - @Override - default void renameCollection(ClientSession clientSession, MongoNamespace mongoNamespace, RenameCollectionOptions renameCollectionOptions) { - getInvoker().invoke(() -> getImpl().renameCollection(clientSession, mongoNamespace, renameCollectionOptions)); - } - - - //From 4.0.2 - @Override - default InsertOneResult insertOne(T t) { - return getInvoker().invoke(()-> getImpl().insertOne(t)); - } - - @Override - default InsertOneResult insertOne(T t, InsertOneOptions insertOneOptions) { - return getInvoker().invoke(()-> getImpl().insertOne(t, insertOneOptions)); - } - - @Override - default InsertOneResult insertOne(ClientSession clientSession, T t) { - return getInvoker().invoke(()-> getImpl().insertOne(clientSession, t)); - } - - @Override - default InsertOneResult insertOne(ClientSession clientSession, T t, InsertOneOptions insertOneOptions) { - return getInvoker().invoke(()-> getImpl().insertOne(clientSession, t, insertOneOptions)); - } - - @Override - default InsertManyResult insertMany(List list) { - return getInvoker().invoke(()-> getImpl().insertMany(list)); - } - - @Override - default InsertManyResult insertMany(List list, InsertManyOptions insertManyOptions) { - return getInvoker().invoke(()-> getImpl().insertMany(list, insertManyOptions)); - } - - @Override - default InsertManyResult insertMany(ClientSession clientSession, List list) { - return getInvoker().invoke(()-> getImpl().insertMany(clientSession, list)); - } - - @Override - default InsertManyResult insertMany(ClientSession clientSession, List list, InsertManyOptions insertManyOptions) { - return getInvoker().invoke(()-> getImpl().insertMany(clientSession, list, insertManyOptions)); - } - -} diff --git a/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/MongoCursorDecorator.java b/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/MongoCursorDecorator.java deleted file mode 100644 index 3db34192c..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/MongoCursorDecorator.java +++ /dev/null @@ -1,45 +0,0 @@ -package io.mongock.driver.mongodb.sync.v4.decorator; - -import io.changock.migration.api.annotations.NonLockGuarded; -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import com.mongodb.ServerAddress; -import com.mongodb.ServerCursor; -import com.mongodb.client.MongoCursor; - -public interface MongoCursorDecorator extends MongoCursor, MongockIterator { - - MongoCursor getImpl(); - - LockGuardInvoker getInvoker(); - - @Override - default void close() { - getInvoker().invoke(() -> getImpl().close()); - } - - @Override - default boolean hasNext() { - return getInvoker().invoke(() -> getImpl().hasNext()); - } - - @Override - default T next() { - return getInvoker().invoke(() -> getImpl().next()); - } - - @Override - default T tryNext() { - return getInvoker().invoke(() -> getImpl().tryNext()); - } - - @Override - default ServerCursor getServerCursor() { - return getInvoker().invoke(() -> getImpl().getServerCursor()); - } - - @Override - @NonLockGuarded - default ServerAddress getServerAddress() { - return getImpl().getServerAddress(); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/MongoDatabaseDecorator.java b/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/MongoDatabaseDecorator.java deleted file mode 100644 index 4d16e64c0..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/MongoDatabaseDecorator.java +++ /dev/null @@ -1,283 +0,0 @@ -package io.mongock.driver.mongodb.sync.v4.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 io.mongock.driver.mongodb.sync.v4.decorator.impl.AggregateIterableDecoratorImpl; -import io.mongock.driver.mongodb.sync.v4.decorator.impl.ChangeStreamIterableDecoratorImpl; -import io.mongock.driver.mongodb.sync.v4.decorator.impl.ListCollectionsIterableDecoratorImpl; -import io.mongock.driver.mongodb.sync.v4.decorator.impl.MongoCollectionDecoratorImpl; -import io.mongock.driver.mongodb.sync.v4.decorator.impl.MongoDataBaseDecoratorImpl; -import io.mongock.driver.mongodb.sync.v4.decorator.impl.MongoIterableDecoratorImpl; -import com.mongodb.ReadConcern; -import com.mongodb.ReadPreference; -import com.mongodb.WriteConcern; -import com.mongodb.client.AggregateIterable; -import com.mongodb.client.ChangeStreamIterable; -import com.mongodb.client.ClientSession; -import com.mongodb.client.ListCollectionsIterable; -import com.mongodb.client.MongoCollection; -import com.mongodb.client.MongoDatabase; -import com.mongodb.client.MongoIterable; -import com.mongodb.client.model.CreateCollectionOptions; -import com.mongodb.client.model.CreateViewOptions; -import org.bson.Document; -import org.bson.codecs.configuration.CodecRegistry; -import org.bson.conversions.Bson; - -import java.util.List; - - -public interface MongoDatabaseDecorator extends MongoDatabase { - - MongoDatabase getImpl(); - - LockGuardInvoker getInvoker(); - - @Override - @NonLockGuarded(NonLockGuardedType.NONE) - default String getName() { - return getImpl().getName(); - } - - @Override - @NonLockGuarded(NonLockGuardedType.NONE) - default CodecRegistry getCodecRegistry() { - return getImpl().getCodecRegistry(); - } - - @Override - @NonLockGuarded(NonLockGuardedType.NONE) - default ReadPreference getReadPreference() { - return getImpl().getReadPreference(); - } - - @Override - @NonLockGuarded(NonLockGuardedType.NONE) - default WriteConcern getWriteConcern() { - return getImpl().getWriteConcern(); - } - - @Override - @NonLockGuarded(NonLockGuardedType.NONE) - default ReadConcern getReadConcern() { - return getImpl().getReadConcern(); - } - - @Override - @NonLockGuarded(NonLockGuardedType.METHOD) - default MongoDatabase withCodecRegistry(CodecRegistry codecRegistry) { - return new MongoDataBaseDecoratorImpl(getImpl().withCodecRegistry(codecRegistry), getInvoker()); - } - - @Override - @NonLockGuarded(NonLockGuardedType.METHOD) - default MongoDatabase withReadPreference(ReadPreference readPreference) { - return new MongoDataBaseDecoratorImpl(getImpl().withReadPreference(readPreference), getInvoker()); - } - - @Override - @NonLockGuarded(NonLockGuardedType.METHOD) - default MongoDatabase withWriteConcern(WriteConcern writeConcern) { - return new MongoDataBaseDecoratorImpl(getImpl().withWriteConcern(writeConcern), getInvoker()); - } - - @Override - @NonLockGuarded(NonLockGuardedType.METHOD) - default MongoDatabase withReadConcern(ReadConcern readConcern) { - return new MongoDataBaseDecoratorImpl(getImpl().withReadConcern(readConcern), getInvoker()); - } - - @Override - @NonLockGuarded(NonLockGuardedType.METHOD) - @SuppressWarnings("unchecked") - default MongoCollection getCollection(String s) { - return new MongoCollectionDecoratorImpl<>(getImpl().getCollection(s), getInvoker()); - } - - @Override - @NonLockGuarded(NonLockGuardedType.METHOD) - default MongoCollection getCollection(String s, Class aClass) { - return new MongoCollectionDecoratorImpl<>(getImpl().getCollection(s, aClass), getInvoker()); - } - - @Override - default Document runCommand(Bson bson) { - return getInvoker().invoke(() -> getImpl().runCommand(bson)); - } - - @Override - default Document runCommand(Bson bson, ReadPreference readPreference) { - return getInvoker().invoke(() -> getImpl().runCommand(bson, readPreference)); - } - - @Override - default TResult runCommand(Bson bson, Class aClass) { - return getInvoker().invoke(() -> getImpl().runCommand(bson, aClass)); - } - - @Override - default TResult runCommand(Bson bson, ReadPreference readPreference, Class aClass) { - return getInvoker().invoke(() -> getImpl().runCommand(bson, readPreference, aClass)); - } - - @Override - default void drop() { - getInvoker().invoke(() -> getImpl().drop()); - } - - @Override - default MongoIterable listCollectionNames() { - return new MongoIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().listCollectionNames()), getInvoker()); - } - - @Override - default ListCollectionsIterable listCollections() { - return new ListCollectionsIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().listCollections()), getInvoker()); - } - - @Override - default ListCollectionsIterable listCollections(Class aClass) { - return new ListCollectionsIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().listCollections(aClass)), getInvoker()); - } - - @Override - default void createCollection(String s) { - getInvoker().invoke(() -> getImpl().createCollection(s)); - } - - @Override - default void createCollection(String s, CreateCollectionOptions createCollectionOptions) { - getInvoker().invoke(() -> getImpl().createCollection(s, createCollectionOptions)); - } - - @Override - default void createView(String s, String s1, List list) { - getInvoker().invoke(() -> getImpl().createView(s, s1, list)); - } - - @Override - default void createView(String s, String s1, List list, CreateViewOptions createViewOptions) { - getInvoker().invoke(() -> getImpl().createView(s, s1, list, createViewOptions)); - } - - @Override - default Document runCommand(ClientSession clientSession, Bson bson) { - return getInvoker().invoke((() -> getImpl().runCommand(clientSession, bson))); - } - - @Override - default Document runCommand(ClientSession clientSession, Bson bson, ReadPreference readPreference) { - return getInvoker().invoke((() -> getImpl().runCommand(clientSession, bson, readPreference))); - } - - @Override - default TResult runCommand(ClientSession clientSession, Bson bson, Class aClass) { - return getInvoker().invoke((() -> getImpl().runCommand(clientSession, bson, aClass))); - } - - @Override - default TResult runCommand(ClientSession clientSession, Bson bson, ReadPreference readPreference, Class aClass) { - return getInvoker().invoke((() -> getImpl().runCommand(clientSession, bson, readPreference, aClass))); - } - - @Override - default void drop(ClientSession clientSession) { - getInvoker().invoke(() -> getImpl().drop(clientSession)); - } - - @Override - default MongoIterable listCollectionNames(ClientSession clientSession) { - return new MongoIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().listCollectionNames(clientSession)), getInvoker()); - } - - @Override - default ListCollectionsIterable listCollections(ClientSession clientSession) { - return new ListCollectionsIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().listCollections(clientSession)), getInvoker()); - } - - @Override - default ListCollectionsIterable listCollections(ClientSession clientSession, Class aClass) { - return new ListCollectionsIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().listCollections(clientSession, aClass)), getInvoker()); - } - - @Override - default void createCollection(ClientSession clientSession, String s) { - getInvoker().invoke(() -> getImpl().createCollection(clientSession, s)); - } - - @Override - default void createCollection(ClientSession clientSession, String s, CreateCollectionOptions createCollectionOptions) { - getInvoker().invoke(() -> getImpl().createCollection(clientSession, s, createCollectionOptions)); - } - - @Override - default void createView(ClientSession clientSession, String s, String s1, List list) { - getInvoker().invoke(() -> getImpl().createView(clientSession, s, s1, list)); - } - - @Override - default void createView(ClientSession clientSession, String s, String s1, List list, CreateViewOptions createViewOptions) { - getInvoker().invoke(() -> getImpl().createView(clientSession, s, s1, list, createViewOptions)); - } - - @Override - default ChangeStreamIterable watch() { - return new ChangeStreamIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().watch()), getInvoker()); - } - - @Override - default ChangeStreamIterable watch(Class aClass) { - return new ChangeStreamIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().watch(aClass)), getInvoker()); - } - - @Override - default ChangeStreamIterable watch(List list) { - return new ChangeStreamIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().watch(list)), getInvoker()); - } - - @Override - default ChangeStreamIterable watch(List list, Class aClass) { - return new ChangeStreamIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().watch(list, aClass)), getInvoker()); - } - - @Override - default ChangeStreamIterable watch(ClientSession clientSession) { - return new ChangeStreamIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().watch(clientSession)), getInvoker()); - } - - @Override - default ChangeStreamIterable watch(ClientSession clientSession, Class aClass) { - return new ChangeStreamIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().watch(clientSession, aClass)), getInvoker()); - } - - @Override - default ChangeStreamIterable watch(ClientSession clientSession, List list) { - return new ChangeStreamIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().watch(clientSession, list)), getInvoker()); - } - - @Override - default ChangeStreamIterable watch(ClientSession clientSession, List list, Class aClass) { - return new ChangeStreamIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().watch(clientSession, list, aClass)), getInvoker()); - } - - @Override - default AggregateIterable aggregate(List list) { - return new AggregateIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().aggregate(list)), getInvoker()); - } - - @Override - default AggregateIterable aggregate(List list, Class aClass) { - return new AggregateIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().aggregate(list, aClass)), getInvoker()); - } - - @Override - default AggregateIterable aggregate(ClientSession clientSession, List list) { - return new AggregateIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().aggregate(clientSession, list)), getInvoker()); - } - - @Override - default AggregateIterable aggregate(ClientSession clientSession, List list, Class aClass) { - return new AggregateIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().aggregate(clientSession, list, aClass)), getInvoker()); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/MongoIterableDecorator.java b/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/MongoIterableDecorator.java deleted file mode 100644 index 78eb2e64d..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/MongoIterableDecorator.java +++ /dev/null @@ -1,67 +0,0 @@ -package io.mongock.driver.mongodb.sync.v4.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 io.mongock.driver.mongodb.sync.v4.decorator.impl.MongoCursorDecoratorImpl; -import io.mongock.driver.mongodb.sync.v4.decorator.impl.MongoIterableDecoratorImpl; -import io.changock.migration.api.annotations.DecoratorDiverted; -import com.mongodb.Function; -import com.mongodb.client.MongoCursor; -import com.mongodb.client.MongoIterable; - -import java.util.Collection; -import java.util.Spliterator; -import java.util.Spliterators; -import java.util.function.Consumer; - -public interface MongoIterableDecorator extends MongoIterable { - - MongoIterable getImpl(); - - LockGuardInvoker getInvoker(); - - @Override - default MongoCursor iterator() { - return new MongoCursorDecoratorImpl<>(getInvoker().invoke(() -> getImpl().iterator()), getInvoker()); - } - - @Override - default T first() { - return getInvoker().invoke(() -> getImpl().first()); - } - - @Override - default MongoIterable map(Function mapper) { - return new MongoIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().map(mapper)), getInvoker()); - } - - @Override - default > A into(A target) { - return getInvoker().invoke(() -> getImpl().into(target)); - } - - @Override - default MongoIterable batchSize(int batchSize) { - return new MongoIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().batchSize(batchSize)), getInvoker()); - } - - @Override - default MongoCursor cursor() { - return new MongoCursorDecoratorImpl<>(getInvoker().invoke(() -> getImpl().cursor()), getInvoker()); - } - - - @Override - @NonLockGuarded - default void forEach(Consumer action) { - getImpl().forEach(action); - } - - @Override - @DecoratorDiverted - @NonLockGuarded(NonLockGuardedType.RETURN) - default Spliterator spliterator() { - return Spliterators.spliteratorUnknownSize(iterator(), 0); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/MongockIterator.java b/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/MongockIterator.java deleted file mode 100644 index 883a9af08..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/MongockIterator.java +++ /dev/null @@ -1,38 +0,0 @@ -package io.mongock.driver.mongodb.sync.v4.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 java.util.Iterator; -import java.util.function.Consumer; - -public interface MongockIterator extends Iterator { - - Iterator getImpl(); - - LockGuardInvoker getInvoker(); - - @Override - default boolean hasNext() { - return getInvoker().invoke(() -> getImpl().hasNext()); - } - - @Override - default T next() { - return getInvoker().invoke(()-> getImpl().next()); - } - - @Override - @NonLockGuarded(NonLockGuardedType.NONE) - default void remove() { - getImpl().remove(); - } - - - @Override - @NonLockGuarded(NonLockGuardedType.NONE) - default void forEachRemaining(Consumer action) { - getImpl().forEachRemaining(action); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/impl/AggregateIterableDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/impl/AggregateIterableDecoratorImpl.java deleted file mode 100644 index 9ca23d993..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/impl/AggregateIterableDecoratorImpl.java +++ /dev/null @@ -1,27 +0,0 @@ -package io.mongock.driver.mongodb.sync.v4.decorator.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import io.mongock.driver.mongodb.sync.v4.decorator.AggregateIterableDecorator; -import com.mongodb.client.AggregateIterable; - -public class AggregateIterableDecoratorImpl implements AggregateIterableDecorator { - - private final AggregateIterable impl; - private final LockGuardInvoker checker; - - public AggregateIterableDecoratorImpl(AggregateIterable implementation, LockGuardInvoker lockerCheckInvoker) { - this.impl = implementation; - this.checker = lockerCheckInvoker; - } - - @Override - public AggregateIterable getImpl() { - return impl; - } - - @Override - public LockGuardInvoker getInvoker() { - return checker; - } - -} diff --git a/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/impl/ChangeStreamIterableDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/impl/ChangeStreamIterableDecoratorImpl.java deleted file mode 100644 index e0f856631..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/impl/ChangeStreamIterableDecoratorImpl.java +++ /dev/null @@ -1,26 +0,0 @@ -package io.mongock.driver.mongodb.sync.v4.decorator.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import io.mongock.driver.mongodb.sync.v4.decorator.ChangeStreamIterableDecorator; -import com.mongodb.client.ChangeStreamIterable; - -public class ChangeStreamIterableDecoratorImpl implements ChangeStreamIterableDecorator { - - private final ChangeStreamIterable impl; - private final LockGuardInvoker checker; - - public ChangeStreamIterableDecoratorImpl(ChangeStreamIterable implementation, LockGuardInvoker lockerCheckInvoker) { - this.impl = implementation; - this.checker = lockerCheckInvoker; - } - - @Override - public ChangeStreamIterable getImpl() { - return impl; - } - - @Override - public LockGuardInvoker getInvoker() { - return checker; - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/impl/DistinctIterableDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/impl/DistinctIterableDecoratorImpl.java deleted file mode 100644 index 0fb29b91f..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/impl/DistinctIterableDecoratorImpl.java +++ /dev/null @@ -1,26 +0,0 @@ -package io.mongock.driver.mongodb.sync.v4.decorator.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import io.mongock.driver.mongodb.sync.v4.decorator.DistinctIterableDecorator; -import com.mongodb.client.DistinctIterable; - -public class DistinctIterableDecoratorImpl implements DistinctIterableDecorator { - - private final DistinctIterable impl; - private final LockGuardInvoker checker; - - public DistinctIterableDecoratorImpl(DistinctIterable implementation, LockGuardInvoker lockerCheckInvoker) { - this.impl = implementation; - this.checker = lockerCheckInvoker; - } - - @Override - public DistinctIterable getImpl() { - return impl; - } - - @Override - public LockGuardInvoker getInvoker() { - return checker; - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/impl/FindIterableDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/impl/FindIterableDecoratorImpl.java deleted file mode 100644 index aaefb93c3..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/impl/FindIterableDecoratorImpl.java +++ /dev/null @@ -1,27 +0,0 @@ -package io.mongock.driver.mongodb.sync.v4.decorator.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import io.mongock.driver.mongodb.sync.v4.decorator.FindIterableDecorator; -import com.mongodb.client.FindIterable; - -public class FindIterableDecoratorImpl implements FindIterableDecorator { - - private final FindIterable impl; - private final LockGuardInvoker checker; - - public FindIterableDecoratorImpl(FindIterable implementation, LockGuardInvoker lockerCheckInvoker) { - this.impl = implementation; - this.checker = lockerCheckInvoker; - } - - @Override - public FindIterable getImpl() { - return impl; - } - - @Override - public LockGuardInvoker getInvoker() { - return checker; - } - -} diff --git a/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/impl/ListCollectionsIterableDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/impl/ListCollectionsIterableDecoratorImpl.java deleted file mode 100644 index 5b97e2468..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/impl/ListCollectionsIterableDecoratorImpl.java +++ /dev/null @@ -1,27 +0,0 @@ -package io.mongock.driver.mongodb.sync.v4.decorator.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import io.mongock.driver.mongodb.sync.v4.decorator.ListCollectionsIterableDecorator; -import com.mongodb.client.ListCollectionsIterable; - -public class ListCollectionsIterableDecoratorImpl implements ListCollectionsIterableDecorator { - - private final ListCollectionsIterable impl; - private final LockGuardInvoker checker; - - public ListCollectionsIterableDecoratorImpl(ListCollectionsIterable implementation, LockGuardInvoker lockerCheckInvoker) { - this.impl = implementation; - this.checker = lockerCheckInvoker; - } - - @Override - public ListCollectionsIterable getImpl() { - return impl; - } - - @Override - public LockGuardInvoker getInvoker() { - return checker; - } - -} diff --git a/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/impl/ListIndexesIterableDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/impl/ListIndexesIterableDecoratorImpl.java deleted file mode 100644 index ab3686bd9..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/impl/ListIndexesIterableDecoratorImpl.java +++ /dev/null @@ -1,27 +0,0 @@ -package io.mongock.driver.mongodb.sync.v4.decorator.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import io.mongock.driver.mongodb.sync.v4.decorator.ListIndexesIterableDecorator; -import com.mongodb.client.ListIndexesIterable; - -public class ListIndexesIterableDecoratorImpl implements ListIndexesIterableDecorator { - - private final ListIndexesIterable impl; - private final LockGuardInvoker checker; - - public ListIndexesIterableDecoratorImpl(ListIndexesIterable implementation, LockGuardInvoker lockerCheckInvoker) { - this.impl = implementation; - this.checker = lockerCheckInvoker; - } - - @Override - public ListIndexesIterable getImpl() { - return impl; - } - - @Override - public LockGuardInvoker getInvoker() { - return checker; - } - -} diff --git a/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/impl/MapReduceIterableDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/impl/MapReduceIterableDecoratorImpl.java deleted file mode 100644 index 2b9bef243..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/impl/MapReduceIterableDecoratorImpl.java +++ /dev/null @@ -1,26 +0,0 @@ -package io.mongock.driver.mongodb.sync.v4.decorator.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import io.mongock.driver.mongodb.sync.v4.decorator.MapReduceIterableDecorator; -import com.mongodb.client.MapReduceIterable; - -public class MapReduceIterableDecoratorImpl implements MapReduceIterableDecorator { - - private final MapReduceIterable impl; - private final LockGuardInvoker checker; - - public MapReduceIterableDecoratorImpl(MapReduceIterable implementation, LockGuardInvoker lockerCheckInvoker) { - this.impl = implementation; - this.checker = lockerCheckInvoker; - } - - @Override - public MapReduceIterable getImpl() { - return impl; - } - - @Override - public LockGuardInvoker getInvoker() { - return checker; - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/impl/MongoChangeStreamCursorDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/impl/MongoChangeStreamCursorDecoratorImpl.java deleted file mode 100644 index ffbad21d4..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/impl/MongoChangeStreamCursorDecoratorImpl.java +++ /dev/null @@ -1,26 +0,0 @@ -package io.mongock.driver.mongodb.sync.v4.decorator.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import io.mongock.driver.mongodb.sync.v4.decorator.MongoChangeStreamCursorDecorator; -import com.mongodb.client.MongoChangeStreamCursor; - -public class MongoChangeStreamCursorDecoratorImpl implements MongoChangeStreamCursorDecorator { - - private final MongoChangeStreamCursor impl; - private final LockGuardInvoker checker; - - public MongoChangeStreamCursorDecoratorImpl(MongoChangeStreamCursor implementation, LockGuardInvoker lockerCheckInvoker) { - this.impl = implementation; - this.checker = lockerCheckInvoker; - } - - @Override - public MongoChangeStreamCursor getImpl() { - return impl; - } - - @Override - public LockGuardInvoker getInvoker() { - return checker; - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/impl/MongoCollectionDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/impl/MongoCollectionDecoratorImpl.java deleted file mode 100644 index cfc6c1197..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/impl/MongoCollectionDecoratorImpl.java +++ /dev/null @@ -1,27 +0,0 @@ -package io.mongock.driver.mongodb.sync.v4.decorator.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import io.mongock.driver.mongodb.sync.v4.decorator.MongoCollectionDecorator; -import com.mongodb.client.MongoCollection; - -public class MongoCollectionDecoratorImpl implements MongoCollectionDecorator { - - private final MongoCollection impl; - private final LockGuardInvoker lockChecker; - - public MongoCollectionDecoratorImpl(MongoCollection implementation, LockGuardInvoker lockerCheckInvoker) { - this.impl = implementation; - this.lockChecker = lockerCheckInvoker; - } - - @Override - public MongoCollection getImpl() { - return impl; - } - - @Override - public LockGuardInvoker getInvoker() { - return lockChecker; - } - -} diff --git a/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/impl/MongoCursorDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/impl/MongoCursorDecoratorImpl.java deleted file mode 100644 index 07e37d662..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/impl/MongoCursorDecoratorImpl.java +++ /dev/null @@ -1,26 +0,0 @@ -package io.mongock.driver.mongodb.sync.v4.decorator.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import io.mongock.driver.mongodb.sync.v4.decorator.MongoCursorDecorator; -import com.mongodb.client.MongoCursor; - -public class MongoCursorDecoratorImpl implements MongoCursorDecorator { - - private final MongoCursor impl; - private final LockGuardInvoker checker; - - public MongoCursorDecoratorImpl(MongoCursor implementation, LockGuardInvoker lockerCheckInvoker) { - this.impl = implementation; - this.checker = lockerCheckInvoker; - } - - @Override - public MongoCursor getImpl() { - return impl; - } - - @Override - public LockGuardInvoker getInvoker() { - return checker; - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/impl/MongoDataBaseDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/impl/MongoDataBaseDecoratorImpl.java deleted file mode 100644 index 3fc04baf4..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/impl/MongoDataBaseDecoratorImpl.java +++ /dev/null @@ -1,24 +0,0 @@ -package io.mongock.driver.mongodb.sync.v4.decorator.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import io.mongock.driver.mongodb.sync.v4.decorator.MongoDatabaseDecorator; -import com.mongodb.client.MongoDatabase; - -public class MongoDataBaseDecoratorImpl implements MongoDatabaseDecorator { - private final MongoDatabase impl; - private final LockGuardInvoker invoker; - - public MongoDataBaseDecoratorImpl(MongoDatabase implementation, LockGuardInvoker lockerCheckInvoker) { - this.impl = implementation; - this.invoker = lockerCheckInvoker; - } - - public MongoDatabase getImpl() { - return impl; - } - - public LockGuardInvoker getInvoker() { - return invoker; - } - -} diff --git a/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/impl/MongoIterableDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/impl/MongoIterableDecoratorImpl.java deleted file mode 100644 index 40604d610..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/decorator/impl/MongoIterableDecoratorImpl.java +++ /dev/null @@ -1,26 +0,0 @@ -package io.mongock.driver.mongodb.sync.v4.decorator.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import io.mongock.driver.mongodb.sync.v4.decorator.MongoIterableDecorator; -import com.mongodb.client.MongoIterable; - -public class MongoIterableDecoratorImpl implements MongoIterableDecorator { - - private final MongoIterable impl; - private final LockGuardInvoker checker; - - public MongoIterableDecoratorImpl(MongoIterable implementation, LockGuardInvoker lockerCheckInvoker) { - this.impl = implementation; - this.checker = lockerCheckInvoker; - } - - @Override - public MongoIterable getImpl() { - return impl; - } - - @Override - public LockGuardInvoker getInvoker() { - return checker; - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/driver/MongoSync4DriverGeneric.java b/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/driver/MongoSync4DriverGeneric.java index c4bf9ebd2..ae5d35cf5 100644 --- a/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/driver/MongoSync4DriverGeneric.java +++ b/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/main/java/io/mongock/driver/mongodb/sync/v4/driver/MongoSync4DriverGeneric.java @@ -1,26 +1,24 @@ package io.mongock.driver.mongodb.sync.v4.driver; +import com.mongodb.ReadConcern; +import com.mongodb.ReadPreference; +import com.mongodb.TransactionOptions; +import com.mongodb.WriteConcern; +import com.mongodb.client.MongoCollection; +import com.mongodb.client.MongoDatabase; +import io.mongock.api.exception.MongockException; import io.mongock.driver.api.driver.ChangeSetDependency; import io.mongock.driver.api.driver.Transactioner; import io.mongock.driver.api.entry.ChangeEntry; import io.mongock.driver.api.entry.ChangeEntryService; -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvokerImpl; import io.mongock.driver.core.driver.ConnectionDriverBase; import io.mongock.driver.core.lock.LockRepositoryWithEntity; import io.mongock.driver.mongodb.sync.v4.changelogs.runalways.MongockSync4LegacyMigrationChangeRunAlwaysLog; import io.mongock.driver.mongodb.sync.v4.changelogs.runonce.MongockSync4LegacyMigrationChangeLog; -import io.mongock.driver.mongodb.sync.v4.decorator.impl.MongoDataBaseDecoratorImpl; import io.mongock.driver.mongodb.sync.v4.repository.MongoSync4ChangeEntryRepository; import io.mongock.driver.mongodb.sync.v4.repository.MongoSync4LockRepository; import io.mongock.driver.mongodb.sync.v4.repository.ReadWriteConfiguration; -import io.mongock.api.exception.MongockException; import io.mongock.utils.annotation.NotThreadSafe; -import com.mongodb.ReadConcern; -import com.mongodb.ReadPreference; -import com.mongodb.TransactionOptions; -import com.mongodb.WriteConcern; -import com.mongodb.client.MongoCollection; -import com.mongodb.client.MongoDatabase; import org.bson.Document; import java.util.HashSet; @@ -131,7 +129,7 @@ public Set getDependencies() { @Override public void specificInitialization() { dependencies = new HashSet<>(); - dependencies.add(new ChangeSetDependency(MongoDatabase.class, new MongoDataBaseDecoratorImpl(mongoDatabase, new LockGuardInvokerImpl(getLockManager())), false)); + dependencies.add(new ChangeSetDependency(MongoDatabase.class, mongoDatabase, true)); dependencies.add(new ChangeSetDependency(ChangeEntryService.class, getChangeEntryService(), false)); this.txOptions = txOptions != null ? txOptions : buildDefaultTxOptions(); } diff --git a/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/test/java/io/mongock/driver/mongodb/sync/v4/decorator/DecoratorUTest.java b/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/test/java/io/mongock/driver/mongodb/sync/v4/decorator/DecoratorUTest.java deleted file mode 100644 index 26ba1a155..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-sync-v4-driver/src/test/java/io/mongock/driver/mongodb/sync/v4/decorator/DecoratorUTest.java +++ /dev/null @@ -1,89 +0,0 @@ -package io.mongock.driver.mongodb.sync.v4.decorator; - -import io.mongock.driver.api.lock.LockManager; -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvokerImpl; -import io.mongock.driver.mongodb.sync.v4.decorator.impl.MongoDataBaseDecoratorImpl; -import io.mongock.test.util.decorator.DecoratorMethodFailure; -import io.mongock.test.util.decorator.DecoratorTestCollection; -import io.mongock.test.util.decorator.DecoratorValidator; -import com.mongodb.MongoNamespace; -import com.mongodb.ReadConcern; -import com.mongodb.ReadPreference; -import com.mongodb.ServerAddress; -import com.mongodb.ServerCursor; -import com.mongodb.WriteConcern; -import com.mongodb.bulk.BulkWriteResult; -import com.mongodb.client.MongoDatabase; -import com.mongodb.client.result.DeleteResult; -import com.mongodb.client.result.InsertManyResult; -import com.mongodb.client.result.InsertOneResult; -import com.mongodb.client.result.UpdateResult; -import org.bson.BsonDocument; -import org.bson.Document; -import org.bson.codecs.configuration.CodecRegistry; -import org.junit.Assert; -import org.junit.Test; -import org.mockito.Mockito; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Optional; - -public class DecoratorUTest { - - - private DecoratorTestCollection getDecoratorsToTest() { - return new DecoratorTestCollection() - .addDecorator(MongoDatabase.class, MongoDataBaseDecoratorImpl.class); - - } - - - @Test - public void allMethodsInDecoratorsShouldEnsureLockAndReturnDecoratorIfNotTerminatingOperations() { - LockManager lockManager = Mockito.mock(LockManager.class); - List failedDecorators = new DecoratorValidator( - getDecoratorsToTest(), - getIgnoredTypes(), - Collections.emptyList(), - getInstancesMap(lockManager), - lockManager) - .checkAndReturnFailedDecorators(); - int size = failedDecorators.size(); - Assert.assertEquals(DecoratorMethodFailure.printErrorMessage(failedDecorators), 0, size); - } - - private Map getInstancesMap(LockManager lockManager) { - Map instancesMap = new HashMap<>(); - instancesMap.put(MongoDataBaseDecoratorImpl.class, new MongoDataBaseDecoratorImpl(Mockito.mock(MongoDatabase.class), new LockGuardInvokerImpl(lockManager))); - return instancesMap; - } - - private Collection getIgnoredTypes() { - return new ArrayList<>(Arrays.asList( - Document.class - , BsonDocument.class - , DeleteResult.class - , UpdateResult.class - , InsertOneResult.class - , InsertManyResult.class - , BulkWriteResult.class - , CodecRegistry.class - , ReadPreference.class - , ReadConcern.class - , WriteConcern.class - , ServerCursor.class - , ServerAddress.class - , MongoNamespace.class - , Optional.class - )); - } - - - -} diff --git a/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/AggregateIterableDecorator.java b/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/AggregateIterableDecorator.java deleted file mode 100644 index 6d1632cfe..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/AggregateIterableDecorator.java +++ /dev/null @@ -1,76 +0,0 @@ -package io.mongock.driver.mongodb.v3.decorator; - -import io.changock.migration.api.annotations.NonLockGuarded; -import io.mongock.driver.mongodb.v3.decorator.impl.AggregateIterableDecoratorImpl; -import com.mongodb.client.AggregateIterable; -import com.mongodb.client.model.Collation; -import org.bson.conversions.Bson; - -import java.util.concurrent.TimeUnit; - -public interface AggregateIterableDecorator extends MongoIterableDecorator, AggregateIterable { - - @Override - AggregateIterable getImpl(); - - @Override - default void toCollection() { - getInvoker().invoke(() -> getImpl().toCollection()); - } - - @Override - @NonLockGuarded - default AggregateIterable allowDiskUse(Boolean allowDiskUse) { - return new AggregateIterableDecoratorImpl<>(getImpl().allowDiskUse(allowDiskUse), getInvoker()); - } - - @Override - @NonLockGuarded - default AggregateIterable batchSize(int batchSize) { - return new AggregateIterableDecoratorImpl<>(getImpl().batchSize(batchSize), getInvoker()); - } - - @Override - @NonLockGuarded - default AggregateIterable maxTime(long maxTime, TimeUnit timeUnit) { - return new AggregateIterableDecoratorImpl<>(getImpl().maxTime(maxTime, timeUnit), getInvoker()); - } - - @Override - @Deprecated - @NonLockGuarded - default AggregateIterable useCursor(Boolean useCursor) { - return new AggregateIterableDecoratorImpl<>(getImpl().useCursor(useCursor), getInvoker()); - } - - @Override - @NonLockGuarded - default AggregateIterable bypassDocumentValidation(Boolean bypassDocumentValidation) { - return new AggregateIterableDecoratorImpl<>(getImpl().bypassDocumentValidation(bypassDocumentValidation), getInvoker()); - } - - @Override - @NonLockGuarded - default AggregateIterable collation(Collation collation) { - return new AggregateIterableDecoratorImpl<>(getImpl().collation(collation), getInvoker()); - } - - - @Override - @NonLockGuarded - default AggregateIterable maxAwaitTime(long l, TimeUnit timeUnit) { - return new AggregateIterableDecoratorImpl<>(getImpl().maxAwaitTime(l, timeUnit), getInvoker()); - } - - @Override - @NonLockGuarded - default AggregateIterable comment(String s) { - return new AggregateIterableDecoratorImpl<>(getImpl().comment(s), getInvoker()); - } - - @Override - @NonLockGuarded - default AggregateIterable hint(Bson bson) { - return new AggregateIterableDecoratorImpl<>(getImpl().hint(bson), getInvoker()); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/ChangeStreamIterableDecorator.java b/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/ChangeStreamIterableDecorator.java deleted file mode 100644 index ff27f32a2..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/ChangeStreamIterableDecorator.java +++ /dev/null @@ -1,59 +0,0 @@ -package io.mongock.driver.mongodb.v3.decorator; - -import io.mongock.driver.mongodb.v3.decorator.impl.ChangeStreamIterableDecoratorImpl; -import io.mongock.driver.mongodb.v3.decorator.impl.MongoChangeStreamCursorDecoratorImpl; -import io.mongock.driver.mongodb.v3.decorator.impl.MongoIterableDecoratorImpl; -import com.mongodb.client.ChangeStreamIterable; -import com.mongodb.client.MongoChangeStreamCursor; -import com.mongodb.client.MongoIterable; -import com.mongodb.client.model.Collation; -import com.mongodb.client.model.changestream.ChangeStreamDocument; -import com.mongodb.client.model.changestream.FullDocument; -import org.bson.BsonDocument; -import org.bson.BsonTimestamp; - -import java.util.concurrent.TimeUnit; - -public interface ChangeStreamIterableDecorator extends MongoIterableDecorator>, ChangeStreamIterable { - - @Override - ChangeStreamIterable getImpl(); - - - default MongoChangeStreamCursor> cursor() { - return new MongoChangeStreamCursorDecoratorImpl<>(getInvoker().invoke(() -> getImpl().cursor()), getInvoker()); - } - - default ChangeStreamIterable fullDocument(FullDocument var1){ - return new ChangeStreamIterableDecoratorImpl<>(getInvoker().invoke((()-> getImpl().fullDocument(var1))), getInvoker()); - } - - default ChangeStreamIterable resumeAfter(BsonDocument var1){ - return new ChangeStreamIterableDecoratorImpl<>(getInvoker().invoke((()-> getImpl().resumeAfter(var1))), getInvoker()); - } - - default ChangeStreamIterable batchSize(int var1) { - return new ChangeStreamIterableDecoratorImpl<>(getInvoker().invoke((()-> getImpl().batchSize(var1))), getInvoker()); - } - - default ChangeStreamIterable maxAwaitTime(long var1, TimeUnit var3){ - return new ChangeStreamIterableDecoratorImpl<>(getInvoker().invoke((()-> getImpl().maxAwaitTime(var1, var3))), getInvoker()); - } - - default ChangeStreamIterable collation(Collation var1){ - return new ChangeStreamIterableDecoratorImpl<>(getInvoker().invoke((()-> getImpl().collation(var1))), getInvoker()); - } - - default MongoIterable withDocumentClass(Class var1){ - return new MongoIterableDecoratorImpl<>(getInvoker().invoke((()-> getImpl().withDocumentClass(var1))), getInvoker()); - } - - default ChangeStreamIterable startAtOperationTime(BsonTimestamp var1){ - return new ChangeStreamIterableDecoratorImpl<>(getInvoker().invoke((()-> getImpl().startAtOperationTime(var1))), getInvoker()); - } - - default ChangeStreamIterable startAfter(BsonDocument var1){ - return new ChangeStreamIterableDecoratorImpl<>(getInvoker().invoke((()-> getImpl().startAfter(var1))), getInvoker()); - } - -} diff --git a/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/DistinctIterableDecorator.java b/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/DistinctIterableDecorator.java deleted file mode 100644 index 0157679d0..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/DistinctIterableDecorator.java +++ /dev/null @@ -1,39 +0,0 @@ -package io.mongock.driver.mongodb.v3.decorator; - -import io.changock.migration.api.annotations.NonLockGuarded; -import io.mongock.driver.mongodb.v3.decorator.impl.DistinctIterableDecoratorImpl; -import com.mongodb.client.DistinctIterable; -import com.mongodb.client.model.Collation; -import org.bson.conversions.Bson; - -import java.util.concurrent.TimeUnit; - -public interface DistinctIterableDecorator extends MongoIterableDecorator, DistinctIterable { - - @Override - DistinctIterable getImpl(); - - @Override - @NonLockGuarded - default DistinctIterable filter(Bson filter) { - return new DistinctIterableDecoratorImpl<>(getImpl().filter(filter), getInvoker()); - } - - @Override - @NonLockGuarded - default DistinctIterable maxTime(long maxTime, TimeUnit timeUnit) { - return new DistinctIterableDecoratorImpl<>(getImpl().maxTime(maxTime, timeUnit), getInvoker()); - } - - @Override - @NonLockGuarded - default DistinctIterable batchSize(int batchSize) { - return new DistinctIterableDecoratorImpl<>(getImpl().batchSize(batchSize), getInvoker()); - } - - @Override - @NonLockGuarded - default DistinctIterable collation(Collation collation) { - return new DistinctIterableDecoratorImpl<>(getImpl().collation(collation), getInvoker()); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/FindIterableDecorator.java b/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/FindIterableDecorator.java deleted file mode 100644 index da3b4a5a8..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/FindIterableDecorator.java +++ /dev/null @@ -1,160 +0,0 @@ -package io.mongock.driver.mongodb.v3.decorator; - -import io.changock.migration.api.annotations.NonLockGuarded; -import io.mongock.driver.mongodb.v3.decorator.impl.FindIterableDecoratorImpl; -import com.mongodb.CursorType; -import com.mongodb.client.FindIterable; -import com.mongodb.client.model.Collation; -import org.bson.conversions.Bson; - -import java.util.concurrent.TimeUnit; - -/* -None of the methods in this class need to be re-wrapped in a guard because it's returning the instance -itself. -They neither need to be encapsulated with the invoker because they don't hit the database. - */ -public interface FindIterableDecorator extends MongoIterableDecorator, FindIterable { - - @Override - FindIterable getImpl(); - - @Override - @NonLockGuarded - default FindIterable filter(Bson filter) { - return new FindIterableDecoratorImpl<>(getImpl().filter(filter), getInvoker()); - } - - @Override - @NonLockGuarded - default FindIterable limit(int limit) { - return new FindIterableDecoratorImpl<>(getImpl().limit(limit), getInvoker()); - } - - @Override - @NonLockGuarded - default FindIterable skip(int skip) { - return new FindIterableDecoratorImpl<>(getImpl().skip(skip), getInvoker()); - } - - @Override - @NonLockGuarded - default FindIterable maxTime(long maxTime, TimeUnit timeUnit) { - return new FindIterableDecoratorImpl<>(getImpl().maxTime(maxTime, timeUnit), getInvoker()); - } - - @Override - @NonLockGuarded - default FindIterable maxAwaitTime(long maxAwaitTime, TimeUnit timeUnit) { - return new FindIterableDecoratorImpl<>(getImpl().maxAwaitTime(maxAwaitTime, timeUnit), getInvoker()); - } - - @Override - @Deprecated - @NonLockGuarded - default FindIterable modifiers(Bson modifiers) { - return new FindIterableDecoratorImpl<>(getImpl().modifiers(modifiers), getInvoker()); - } - - @Override - @NonLockGuarded - default FindIterable projection(Bson projection) { - return new FindIterableDecoratorImpl<>(getImpl().projection(projection), getInvoker()); - } - - @Override - @NonLockGuarded - default FindIterable sort(Bson sort) { - return new FindIterableDecoratorImpl<>(getImpl().sort(sort), getInvoker()); - } - - @Override - @NonLockGuarded - default FindIterable noCursorTimeout(boolean noCursorTimeout) { - return new FindIterableDecoratorImpl<>(getImpl().noCursorTimeout(noCursorTimeout), getInvoker()); - } - - @Override - @NonLockGuarded - default FindIterable oplogReplay(boolean oplogReplay) { - return new FindIterableDecoratorImpl<>(getImpl().oplogReplay(oplogReplay), getInvoker()); - } - - @Override - @NonLockGuarded - default FindIterable partial(boolean partial) { - return new FindIterableDecoratorImpl<>(getImpl().partial(partial), getInvoker()); - } - - @Override - @NonLockGuarded - default FindIterable cursorType(CursorType cursorType) { - return new FindIterableDecoratorImpl<>(getImpl().cursorType(cursorType), getInvoker()); - } - - @Override - @NonLockGuarded - default FindIterable batchSize(int batchSize) { - return new FindIterableDecoratorImpl<>(getImpl().batchSize(batchSize), getInvoker()); - } - - @Override - @NonLockGuarded - default FindIterable collation(Collation collation) { - return new FindIterableDecoratorImpl<>(getImpl().collation(collation), getInvoker()); - } - - @Override - @NonLockGuarded - default FindIterable comment(String comment) { - return new FindIterableDecoratorImpl<>(getImpl().comment(comment), getInvoker()); - } - - @Override - @NonLockGuarded - default FindIterable hint(Bson hint) { - return new FindIterableDecoratorImpl<>(getImpl().hint(hint), getInvoker()); - } - - @Override - @NonLockGuarded - default FindIterable max(Bson max) { - return new FindIterableDecoratorImpl<>(getImpl().max(max), getInvoker()); - } - - @Override - @NonLockGuarded - default FindIterable min(Bson min) { - return new FindIterableDecoratorImpl<>(getImpl().min(min), getInvoker()); - } - - @Override - @NonLockGuarded - default FindIterable maxScan(long maxScan) { - return new FindIterableDecoratorImpl<>(getImpl().maxScan(maxScan), getInvoker()); - } - - @Override - @NonLockGuarded - default FindIterable returnKey(boolean returnKey) { - return new FindIterableDecoratorImpl<>(getImpl().returnKey(returnKey), getInvoker()); - } - - @Override - @NonLockGuarded - default FindIterable showRecordId(boolean showRecordId) { - return new FindIterableDecoratorImpl<>(getImpl().showRecordId(showRecordId), getInvoker()); - } - - @Override - @NonLockGuarded - default FindIterable snapshot(boolean snapshot) { - return new FindIterableDecoratorImpl<>(getImpl().snapshot(snapshot), getInvoker()); - } - - @Override - @NonLockGuarded - default FindIterable hintString(String s) { - return new FindIterableDecoratorImpl<>(getImpl().hintString(s), getInvoker()); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/ListCollectionsIterableDecorator.java b/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/ListCollectionsIterableDecorator.java deleted file mode 100644 index 5f642f3d1..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/ListCollectionsIterableDecorator.java +++ /dev/null @@ -1,34 +0,0 @@ -package io.mongock.driver.mongodb.v3.decorator; - -import io.changock.migration.api.annotations.NonLockGuarded; -import io.changock.migration.api.annotations.NonLockGuardedType; -import io.mongock.driver.mongodb.v3.decorator.impl.ListCollectionsIterableDecoratorImpl; -import com.mongodb.client.ListCollectionsIterable; -import org.bson.conversions.Bson; - -import java.util.concurrent.TimeUnit; - -public interface ListCollectionsIterableDecorator extends MongoIterableDecorator, ListCollectionsIterable { - - @Override - ListCollectionsIterable getImpl(); - - @Override - @NonLockGuarded(NonLockGuardedType.METHOD) - default ListCollectionsIterable filter(Bson filter) { - return new ListCollectionsIterableDecoratorImpl<>(getImpl().filter(filter), getInvoker()); - } - - @Override - @NonLockGuarded(NonLockGuardedType.METHOD) - default ListCollectionsIterable maxTime(long maxTime, TimeUnit timeUnit) { - return new ListCollectionsIterableDecoratorImpl<>( getImpl().maxTime(maxTime, timeUnit), getInvoker()); - } - - @Override - @NonLockGuarded(NonLockGuardedType.METHOD) - default ListCollectionsIterable batchSize(int batchSize) { - return new ListCollectionsIterableDecoratorImpl<>( getImpl().batchSize(batchSize), getInvoker()); - } - -} diff --git a/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/ListIndexesIterableDecorator.java b/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/ListIndexesIterableDecorator.java deleted file mode 100644 index 0297cb4a3..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/ListIndexesIterableDecorator.java +++ /dev/null @@ -1,25 +0,0 @@ -package io.mongock.driver.mongodb.v3.decorator; - -import io.changock.migration.api.annotations.NonLockGuarded; -import io.mongock.driver.mongodb.v3.decorator.impl.ListIndexesIterableDecoratorImpl; -import com.mongodb.client.ListIndexesIterable; - -import java.util.concurrent.TimeUnit; - -public interface ListIndexesIterableDecorator extends ListIndexesIterable, MongoIterableDecorator { - @Override - ListIndexesIterable getImpl(); - - @Override - @NonLockGuarded - default ListIndexesIterable maxTime(long maxTime, TimeUnit timeUnit) { - return new ListIndexesIterableDecoratorImpl<>(getImpl().maxTime(maxTime, timeUnit), getInvoker()); - } - - @Override - @NonLockGuarded - default ListIndexesIterable batchSize(int batchSize) { - return new ListIndexesIterableDecoratorImpl<>( getImpl().batchSize(batchSize), getInvoker()); - } - -} diff --git a/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/MapReduceIterableDecorator.java b/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/MapReduceIterableDecorator.java deleted file mode 100644 index 5a5b1124a..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/MapReduceIterableDecorator.java +++ /dev/null @@ -1,117 +0,0 @@ -package io.mongock.driver.mongodb.v3.decorator; - -import io.changock.migration.api.annotations.NonLockGuarded; -import io.mongock.driver.mongodb.v3.decorator.impl.MapReduceIterableDecoratorImpl; -import com.mongodb.client.MapReduceIterable; -import com.mongodb.client.model.Collation; -import com.mongodb.client.model.MapReduceAction; -import org.bson.conversions.Bson; - -import java.util.concurrent.TimeUnit; - -public interface MapReduceIterableDecorator extends MongoIterableDecorator, MapReduceIterable { - - @Override - MapReduceIterable getImpl(); - - @Override - default void toCollection() { - getInvoker().invoke(() -> getImpl().toCollection()); - } - - @Override - @NonLockGuarded - default MapReduceIterable collectionName(String collectionName) { - return new MapReduceIterableDecoratorImpl<>(getImpl().collectionName(collectionName), getInvoker()); - } - - @Override - @NonLockGuarded - default MapReduceIterable finalizeFunction(String finalizeFunction) { - return new MapReduceIterableDecoratorImpl<>( getImpl().finalizeFunction(finalizeFunction), getInvoker()); - } - - @Override - @NonLockGuarded - default MapReduceIterable scope(Bson scope) { - return new MapReduceIterableDecoratorImpl<>( getImpl().scope(scope), getInvoker()); - } - - @Override - @NonLockGuarded - default MapReduceIterable sort(Bson sort) { - return new MapReduceIterableDecoratorImpl<>( getImpl().sort(sort), getInvoker()); - } - - @Override - @NonLockGuarded - default MapReduceIterable filter(Bson filter) { - return new MapReduceIterableDecoratorImpl<>( getImpl().filter(filter), getInvoker()); - } - - @Override - @NonLockGuarded - default MapReduceIterable limit(int limit) { - return new MapReduceIterableDecoratorImpl<>( getImpl().limit(limit), getInvoker()); - } - - @Override - @NonLockGuarded - default MapReduceIterable jsMode(boolean jsMode) { - return new MapReduceIterableDecoratorImpl<>( getImpl().jsMode(jsMode), getInvoker()); - } - - @Override - @NonLockGuarded - default MapReduceIterable verbose(boolean verbose) { - return new MapReduceIterableDecoratorImpl<>( getImpl().verbose(verbose), getInvoker()); - } - - @Override - @NonLockGuarded - default MapReduceIterable maxTime(long maxTime, TimeUnit timeUnit) { - return new MapReduceIterableDecoratorImpl<>( getImpl().maxTime(maxTime, timeUnit), getInvoker()); - } - - @Override - @NonLockGuarded - default MapReduceIterable action(MapReduceAction action) { - return new MapReduceIterableDecoratorImpl<>( getImpl().action(action), getInvoker()); - } - - @Override - @NonLockGuarded - default MapReduceIterable databaseName(String databaseName) { - return new MapReduceIterableDecoratorImpl<>( getImpl().databaseName(databaseName), getInvoker()); - } - - @Override - @NonLockGuarded - default MapReduceIterable sharded(boolean sharded) { - return new MapReduceIterableDecoratorImpl<>( getImpl().sharded(sharded), getInvoker()); - } - - @Override - @NonLockGuarded - default MapReduceIterable nonAtomic(boolean nonAtomic) { - return new MapReduceIterableDecoratorImpl<>( getImpl().nonAtomic(nonAtomic), getInvoker()); - } - - @Override - @NonLockGuarded - default MapReduceIterable batchSize(int batchSize) { - return new MapReduceIterableDecoratorImpl<>( getImpl().batchSize(batchSize), getInvoker()); - } - - @Override - @NonLockGuarded - default MapReduceIterable bypassDocumentValidation(Boolean bypassDocumentValidation) { - return new MapReduceIterableDecoratorImpl<>( getImpl().bypassDocumentValidation(bypassDocumentValidation), getInvoker()); - } - - @Override - @NonLockGuarded - default MapReduceIterable collation(Collation collation) { - return new MapReduceIterableDecoratorImpl<>( getImpl().collation(collation), getInvoker()); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/MongoChangeStreamCursorDecorator.java b/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/MongoChangeStreamCursorDecorator.java deleted file mode 100644 index 82ee8ba07..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/MongoChangeStreamCursorDecorator.java +++ /dev/null @@ -1,13 +0,0 @@ -package io.mongock.driver.mongodb.v3.decorator; - -import com.mongodb.client.MongoChangeStreamCursor; -import org.bson.BsonDocument; - -public interface MongoChangeStreamCursorDecorator extends MongoCursorDecorator, MongoChangeStreamCursor { - - MongoChangeStreamCursor getImpl(); - - default BsonDocument getResumeToken() { - return getInvoker().invoke(() -> getImpl().getResumeToken()); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/MongoCollectionDecorator.java b/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/MongoCollectionDecorator.java deleted file mode 100644 index 2cf72702e..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/MongoCollectionDecorator.java +++ /dev/null @@ -1,773 +0,0 @@ -package io.mongock.driver.mongodb.v3.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 io.mongock.driver.mongodb.v3.decorator.impl.AggregateIterableDecoratorImpl; -import io.mongock.driver.mongodb.v3.decorator.impl.ChangeStreamIterableDecoratorImpl; -import io.mongock.driver.mongodb.v3.decorator.impl.DistinctIterableDecoratorImpl; -import io.mongock.driver.mongodb.v3.decorator.impl.FindIterableDecoratorImpl; -import io.mongock.driver.mongodb.v3.decorator.impl.ListIndexesIterableDecoratorImpl; -import io.mongock.driver.mongodb.v3.decorator.impl.MapReduceIterableDecoratorImpl; -import io.mongock.driver.mongodb.v3.decorator.impl.MongoCollectionDecoratorImpl; -import com.mongodb.MongoNamespace; -import com.mongodb.ReadConcern; -import com.mongodb.ReadPreference; -import com.mongodb.WriteConcern; -import com.mongodb.bulk.BulkWriteResult; -import com.mongodb.client.AggregateIterable; -import com.mongodb.client.ChangeStreamIterable; -import com.mongodb.client.ClientSession; -import com.mongodb.client.DistinctIterable; -import com.mongodb.client.FindIterable; -import com.mongodb.client.ListIndexesIterable; -import com.mongodb.client.MapReduceIterable; -import com.mongodb.client.MongoCollection; -import com.mongodb.client.model.BulkWriteOptions; -import com.mongodb.client.model.CountOptions; -import com.mongodb.client.model.CreateIndexOptions; -import com.mongodb.client.model.DeleteOptions; -import com.mongodb.client.model.DropIndexOptions; -import com.mongodb.client.model.EstimatedDocumentCountOptions; -import com.mongodb.client.model.FindOneAndDeleteOptions; -import com.mongodb.client.model.FindOneAndReplaceOptions; -import com.mongodb.client.model.FindOneAndUpdateOptions; -import com.mongodb.client.model.IndexModel; -import com.mongodb.client.model.IndexOptions; -import com.mongodb.client.model.InsertManyOptions; -import com.mongodb.client.model.InsertOneOptions; -import com.mongodb.client.model.RenameCollectionOptions; -import com.mongodb.client.model.ReplaceOptions; -import com.mongodb.client.model.UpdateOptions; -import com.mongodb.client.model.WriteModel; -import com.mongodb.client.result.DeleteResult; -import com.mongodb.client.result.UpdateResult; -import org.bson.Document; -import org.bson.codecs.configuration.CodecRegistry; -import org.bson.conversions.Bson; - -import java.util.List; - -public interface MongoCollectionDecorator extends MongoCollection { - - MongoCollection getImpl(); - - LockGuardInvoker getInvoker(); - - @Override - @NonLockGuarded(NonLockGuardedType.NONE) - default MongoNamespace getNamespace() { - return getImpl().getNamespace(); - } - - @Override - @NonLockGuarded(NonLockGuardedType.NONE) - default Class getDocumentClass() { - return getImpl().getDocumentClass(); - } - - @Override - @NonLockGuarded(NonLockGuardedType.NONE) - default CodecRegistry getCodecRegistry() { - return getImpl().getCodecRegistry(); - } - - @Override - @NonLockGuarded(NonLockGuardedType.NONE) - default ReadPreference getReadPreference() { - return getImpl().getReadPreference(); - } - - @Override - @NonLockGuarded(NonLockGuardedType.NONE) - default WriteConcern getWriteConcern() { - return getImpl().getWriteConcern(); - } - - @Override - @NonLockGuarded(NonLockGuardedType.NONE) - default ReadConcern getReadConcern() { - return getImpl().getReadConcern(); - } - - @Override - @NonLockGuarded(NonLockGuardedType.METHOD) - default MongoCollection withDocumentClass(Class aClass) { - return new MongoCollectionDecoratorImpl<>(getImpl().withDocumentClass(aClass), getInvoker()); - } - - @Override - @NonLockGuarded(NonLockGuardedType.METHOD) - default MongoCollection withCodecRegistry(CodecRegistry codecRegistry) { - return new MongoCollectionDecoratorImpl<>(getImpl().withCodecRegistry(codecRegistry), getInvoker()); - } - - @Override - @NonLockGuarded(NonLockGuardedType.METHOD) - default MongoCollection withReadPreference(ReadPreference readPreference) { - return new MongoCollectionDecoratorImpl<>(getImpl().withReadPreference(readPreference), getInvoker()); - } - - @Override - @NonLockGuarded(NonLockGuardedType.METHOD) - default MongoCollection withWriteConcern(WriteConcern writeConcern) { - return new MongoCollectionDecoratorImpl<>(getImpl().withWriteConcern(writeConcern), getInvoker()); - } - - @Override - @NonLockGuarded(NonLockGuardedType.METHOD) - default MongoCollection withReadConcern(ReadConcern readConcern) { - return new MongoCollectionDecoratorImpl<>(getImpl().withReadConcern(readConcern), getInvoker()); - } - - @Override - default long count() { - return getInvoker().invoke(() -> getImpl().count()); - } - - @Override - default long count(Bson bson) { - return getInvoker().invoke(() -> getImpl().count(bson)); - } - - @Override - default long count(Bson bson, CountOptions countOptions) { - return getInvoker().invoke(() -> getImpl().count(bson, countOptions)); - } - - @Override - default DistinctIterable distinct(String s, Class aClass) { - return new DistinctIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().distinct(s, aClass)), getInvoker()); - } - - @Override - default DistinctIterable distinct(String s, Bson bson, Class aClass) { - return new DistinctIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().distinct(s, bson, aClass)), getInvoker()); - } - - @Override - default FindIterable find() { - return new FindIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().find()), getInvoker()); - } - - @Override - default FindIterable find(Class aClass) { - return new FindIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().find(aClass)), getInvoker()); - } - - @Override - default FindIterable find(Bson bson) { - return new FindIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().find(bson)), getInvoker()); - } - - @Override - default FindIterable find(Bson bson, Class aClass) { - return new FindIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().find(bson, aClass)), getInvoker()); - } - - @Override - default AggregateIterable aggregate(List list) { - return new AggregateIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().aggregate(list)), getInvoker()); - } - - @Override - default AggregateIterable aggregate(List list, Class aClass) { - return new AggregateIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().aggregate(list, aClass)), getInvoker()); - } - - @Override - default MapReduceIterable mapReduce(String s, String s1) { - return new MapReduceIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().mapReduce(s, s1)), getInvoker()); - } - - @Override - default MapReduceIterable mapReduce(String s, String s1, Class aClass) { - return new MapReduceIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().mapReduce(s, s1, aClass)), getInvoker()); - } - - @Override - default BulkWriteResult bulkWrite(List> list) { - return getInvoker().invoke(() -> getImpl().bulkWrite(list)); - } - - @Override - default BulkWriteResult bulkWrite(List> list, BulkWriteOptions bulkWriteOptions) { - return getInvoker().invoke(() -> getImpl().bulkWrite(list, bulkWriteOptions)); - } - - @Override - default void insertOne(T t) { - getInvoker().invoke(() -> getImpl().insertOne(t)); - } - - @Override - default void insertOne(T t, InsertOneOptions insertOneOptions) { - getInvoker().invoke(() -> getImpl().insertOne(t, insertOneOptions)); - } - - @Override - default void insertMany(List list) { - getInvoker().invoke(() -> getImpl().insertMany(list)); - } - - @Override - default void insertMany(List list, InsertManyOptions insertManyOptions) { - getInvoker().invoke(() -> getImpl().insertMany(list, insertManyOptions)); - } - - @Override - default DeleteResult deleteOne(Bson bson) { - return getInvoker().invoke(() -> getImpl().deleteOne(bson)); - } - - @Override - default DeleteResult deleteOne(Bson bson, DeleteOptions deleteOptions) { - return getInvoker().invoke(() -> getImpl().deleteOne(bson, deleteOptions)); - } - - @Override - default DeleteResult deleteMany(Bson bson) { - return getInvoker().invoke(() -> getImpl().deleteMany(bson)); - } - - @Override - default DeleteResult deleteMany(Bson bson, DeleteOptions deleteOptions) { - return getInvoker().invoke(() -> getImpl().deleteMany(bson, deleteOptions)); - } - - @Override - default UpdateResult replaceOne(Bson bson, T t) { - return getInvoker().invoke(() -> getImpl().replaceOne(bson, t)); - } - - @Override - default UpdateResult replaceOne(Bson bson, T t, UpdateOptions updateOptions) { - return getInvoker().invoke(() -> getImpl().replaceOne(bson, t, updateOptions)); - } - - @Override - default UpdateResult updateOne(Bson bson, Bson bson1) { - return getInvoker().invoke(() -> getImpl().updateOne(bson, bson1)); - } - - @Override - default UpdateResult updateOne(Bson bson, Bson bson1, UpdateOptions updateOptions) { - return getInvoker().invoke(() -> getImpl().updateOne(bson, bson1, updateOptions)); - } - - @Override - default UpdateResult updateMany(Bson bson, Bson bson1) { - return getInvoker().invoke(() -> getImpl().updateMany(bson, bson1)); - } - - @Override - default UpdateResult updateMany(Bson bson, Bson bson1, UpdateOptions updateOptions) { - return getInvoker().invoke(() -> getImpl().updateMany(bson, bson1, updateOptions)); - } - - @Override - default T findOneAndDelete(Bson bson) { - return getInvoker().invoke(() -> getImpl().findOneAndDelete(bson)); - } - - @Override - default T findOneAndDelete(Bson bson, FindOneAndDeleteOptions findOneAndDeleteOptions) { - return getInvoker().invoke(() -> getImpl().findOneAndDelete(bson, findOneAndDeleteOptions)); - } - - @Override - default T findOneAndReplace(Bson bson, T t) { - return getInvoker().invoke(() -> getImpl().findOneAndReplace(bson, t)); - } - - @Override - default T findOneAndReplace(Bson bson, T t, FindOneAndReplaceOptions findOneAndReplaceOptions) { - return getInvoker().invoke(() -> getImpl().findOneAndReplace(bson, t, findOneAndReplaceOptions)); - } - - @Override - default T findOneAndUpdate(Bson bson, Bson bson1) { - return getInvoker().invoke(() -> getImpl().findOneAndUpdate(bson, bson1)); - } - - @Override - default T findOneAndUpdate(Bson bson, Bson bson1, FindOneAndUpdateOptions findOneAndUpdateOptions) { - return getInvoker().invoke(() -> getImpl().findOneAndUpdate(bson, bson1, findOneAndUpdateOptions)); - } - - @Override - default void drop() { - getInvoker().invoke(() -> getImpl().drop()); - } - - @Override - default String createIndex(Bson bson) { - return getInvoker().invoke(() -> getImpl().createIndex(bson)); - } - - @Override - default String createIndex(Bson bson, IndexOptions indexOptions) { - return getInvoker().invoke(() -> getImpl().createIndex(bson, indexOptions)); - } - - @Override - default List createIndexes(List list) { - return getInvoker().invoke(() -> getImpl().createIndexes(list)); - } - - @Override - default ListIndexesIterable listIndexes() { - return new ListIndexesIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().listIndexes()), getInvoker()); - } - - @Override - default ListIndexesIterable listIndexes(Class aClass) { - return new ListIndexesIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().listIndexes(aClass)), getInvoker()); - } - - @Override - default void dropIndex(String s) { - getInvoker().invoke(() -> getImpl().dropIndex(s)); - } - - @Override - default void dropIndex(Bson bson) { - getInvoker().invoke(() -> getImpl().dropIndex(bson)); - } - - @Override - default void dropIndexes() { - getInvoker().invoke(() -> getImpl().dropIndexes()); - } - - @Override - default void renameCollection(MongoNamespace mongoNamespace) { - getInvoker().invoke(() -> getImpl().renameCollection(mongoNamespace)); - } - - @Override - default void renameCollection(MongoNamespace mongoNamespace, RenameCollectionOptions renameCollectionOptions) { - getInvoker().invoke(() -> getImpl().renameCollection(mongoNamespace, renameCollectionOptions)); - } - - @Override - default long count(ClientSession clientSession) { - return getInvoker().invoke(() -> getImpl().count(clientSession)); - } - - @Override - default long count(ClientSession clientSession, Bson bson) { - return getInvoker().invoke(() -> getImpl().count(clientSession, bson)); - } - - @Override - default long count(ClientSession clientSession, Bson bson, CountOptions countOptions) { - return getInvoker().invoke(() -> getImpl().count(clientSession, bson, countOptions)); - } - - @Override - default long countDocuments() { - return getInvoker().invoke(() -> getImpl().countDocuments()); - } - - @Override - default long countDocuments(Bson bson) { - return getInvoker().invoke(() -> getImpl().countDocuments(bson)); - } - - @Override - default long countDocuments(Bson bson, CountOptions countOptions) { - return getInvoker().invoke(() -> getImpl().countDocuments(bson, countOptions)); - } - - @Override - default long countDocuments(ClientSession clientSession) { - return getInvoker().invoke(() -> getImpl().countDocuments(clientSession)); - } - - @Override - default long countDocuments(ClientSession clientSession, Bson bson) { - return getInvoker().invoke(() -> getImpl().countDocuments(clientSession, bson)); - } - - @Override - default long countDocuments(ClientSession clientSession, Bson bson, CountOptions countOptions) { - return getInvoker().invoke(() -> getImpl().countDocuments(clientSession, bson, countOptions)); - } - - @Override - default long estimatedDocumentCount() { - return getInvoker().invoke(() -> getImpl().estimatedDocumentCount()); - } - - @Override - default long estimatedDocumentCount(EstimatedDocumentCountOptions estimatedDocumentCountOptions) { - return getInvoker().invoke(() -> getImpl().estimatedDocumentCount(estimatedDocumentCountOptions)); - } - - @Override - default DistinctIterable distinct(ClientSession clientSession, String s, Class aClass) { - return new DistinctIterableDecoratorImpl<>(getInvoker().invoke(()-> getImpl().distinct(clientSession, s, aClass)), getInvoker()); - } - - @Override - default DistinctIterable distinct(ClientSession clientSession, String s, Bson bson, Class aClass) { - return new DistinctIterableDecoratorImpl<>(getInvoker().invoke(()-> getImpl().distinct(clientSession, s, bson, aClass)), getInvoker()); - } - - @Override - default FindIterable find(ClientSession clientSession) { - return new FindIterableDecoratorImpl<>(getInvoker().invoke(()-> getImpl().find(clientSession)), getInvoker()); - } - - @Override - default FindIterable find(ClientSession clientSession, Class aClass) { - return new FindIterableDecoratorImpl<>(getInvoker().invoke(()-> getImpl().find(clientSession, aClass)), getInvoker()); - } - - @Override - default FindIterable find(ClientSession clientSession, Bson bson) { - return new FindIterableDecoratorImpl<>(getInvoker().invoke(()-> getImpl().find(clientSession, bson)), getInvoker()); - } - - @Override - default FindIterable find(ClientSession clientSession, Bson bson, Class aClass) { - return new FindIterableDecoratorImpl<>(getInvoker().invoke(()-> getImpl().find(clientSession, bson, aClass)), getInvoker()); - } - - @Override - default AggregateIterable aggregate(ClientSession clientSession, List list) { - return new AggregateIterableDecoratorImpl<>(getInvoker().invoke(()-> getImpl().aggregate(clientSession, list)), getInvoker()); - } - - @Override - default AggregateIterable aggregate(ClientSession clientSession, List list, Class aClass) { - return new AggregateIterableDecoratorImpl<>(getInvoker().invoke(()-> getImpl().aggregate(clientSession, list, aClass)), getInvoker()); - } - - @Override - default ChangeStreamIterable watch() { - return new ChangeStreamIterableDecoratorImpl<>(getInvoker().invoke(()-> getImpl().watch()), getInvoker()); - } - - @Override - default ChangeStreamIterable watch(Class aClass) { - return new ChangeStreamIterableDecoratorImpl<>(getInvoker().invoke(()-> getImpl().watch(aClass)), getInvoker()); - - } - - @Override - default ChangeStreamIterable watch(List list) { - return new ChangeStreamIterableDecoratorImpl<>(getInvoker().invoke(()-> getImpl().watch(list)), getInvoker()); - } - - @Override - default ChangeStreamIterable watch(List list, Class aClass) { - return new ChangeStreamIterableDecoratorImpl<>(getInvoker().invoke(()-> getImpl().watch(list, aClass)), getInvoker()); - } - - @Override - default ChangeStreamIterable watch(ClientSession clientSession) { - return new ChangeStreamIterableDecoratorImpl<>(getInvoker().invoke(()-> getImpl().watch(clientSession)), getInvoker()); - } - - @Override - default ChangeStreamIterable watch(ClientSession clientSession, Class aClass) { - return new ChangeStreamIterableDecoratorImpl<>(getInvoker().invoke(()-> getImpl().watch(clientSession, aClass)), getInvoker()); - } - - @Override - default ChangeStreamIterable watch(ClientSession clientSession, List list) { - return new ChangeStreamIterableDecoratorImpl<>(getInvoker().invoke(()-> getImpl().watch(clientSession, list)), getInvoker()); - } - - @Override - default ChangeStreamIterable watch(ClientSession clientSession, List list, Class aClass) { - return new ChangeStreamIterableDecoratorImpl<>(getInvoker().invoke(()-> getImpl().watch(clientSession, list, aClass)), getInvoker()); - } - - @Override - default MapReduceIterable mapReduce(ClientSession clientSession, String s, String s1) { - return new MapReduceIterableDecoratorImpl<>(getInvoker().invoke(()-> getImpl().mapReduce(clientSession, s, s1)), getInvoker()); - } - - @Override - default MapReduceIterable mapReduce(ClientSession clientSession, String s, String s1, Class aClass) { - return new MapReduceIterableDecoratorImpl<>(getInvoker().invoke(()-> getImpl().mapReduce(clientSession, s, s1, aClass)), getInvoker()); - } - - @Override - default BulkWriteResult bulkWrite(ClientSession clientSession, List> list) { - return getInvoker().invoke(()-> getImpl().bulkWrite(clientSession, list)); - } - - @Override - default BulkWriteResult bulkWrite(ClientSession clientSession, List> list, BulkWriteOptions bulkWriteOptions) { - return getInvoker().invoke(()-> getImpl().bulkWrite(clientSession, list, bulkWriteOptions)); - } - - @Override - default void insertOne(ClientSession clientSession, T t) { - getInvoker().invoke(()-> getImpl().insertOne(clientSession, t)); - } - - @Override - default void insertOne(ClientSession clientSession, T t, InsertOneOptions insertOneOptions) { - getInvoker().invoke(()-> getImpl().insertOne(clientSession, t, insertOneOptions)); - } - - @Override - default void insertMany(ClientSession clientSession, List list) { - getInvoker().invoke(()-> getImpl().insertMany(clientSession, list)); - } - - @Override - default void insertMany(ClientSession clientSession, List list, InsertManyOptions insertManyOptions) { - getInvoker().invoke(()-> getImpl().insertMany(clientSession, list, insertManyOptions)); - } - - @Override - default DeleteResult deleteOne(ClientSession clientSession, Bson bson) { - return getInvoker().invoke(()-> getImpl().deleteOne(clientSession, bson)); - } - - @Override - default DeleteResult deleteOne(ClientSession clientSession, Bson bson, DeleteOptions deleteOptions) { - return getInvoker().invoke(()-> getImpl().deleteOne(clientSession, bson, deleteOptions)); - } - - @Override - default DeleteResult deleteMany(ClientSession clientSession, Bson bson) { - return getInvoker().invoke(()-> getImpl().deleteMany(clientSession, bson)); - } - - @Override - default DeleteResult deleteMany(ClientSession clientSession, Bson bson, DeleteOptions deleteOptions) { - return getInvoker().invoke(()-> getImpl().deleteMany(clientSession, bson, deleteOptions)); - } - - @Override - default UpdateResult replaceOne(Bson bson, T t, ReplaceOptions replaceOptions) { - return getInvoker().invoke(()-> getImpl().replaceOne(bson, t, replaceOptions)); - } - - @Override - default UpdateResult replaceOne(ClientSession clientSession, Bson bson, T t) { - return getInvoker().invoke(()-> getImpl().replaceOne(clientSession, bson,t)); - } - - @Override - default UpdateResult replaceOne(ClientSession clientSession, Bson bson, T t, UpdateOptions updateOptions) { - return getInvoker().invoke(()-> getImpl().replaceOne(clientSession, bson,t, updateOptions)); - } - - @Override - default UpdateResult replaceOne(ClientSession clientSession, Bson bson, T t, ReplaceOptions replaceOptions) { - return getInvoker().invoke(()-> getImpl().replaceOne(clientSession, bson,t, replaceOptions)); - } - - @Override - default UpdateResult updateOne(ClientSession clientSession, Bson bson, Bson bson1) { - return getInvoker().invoke(()-> getImpl().updateOne(clientSession, bson, bson1)); - } - - @Override - default UpdateResult updateOne(ClientSession clientSession, Bson bson, Bson bson1, UpdateOptions updateOptions) { - return getInvoker().invoke(()-> getImpl().updateOne(clientSession, bson, bson1, updateOptions)); - } - - @Override - default UpdateResult updateOne(Bson bson, List list) { - return getInvoker().invoke(()-> getImpl().updateOne(bson, list)); - } - - @Override - default UpdateResult updateOne(Bson bson, List list, UpdateOptions updateOptions) { - return getInvoker().invoke(()-> getImpl().updateOne(bson, list, updateOptions)); - } - - @Override - default UpdateResult updateOne(ClientSession clientSession, Bson bson, List list) { - return getInvoker().invoke(()-> getImpl().updateOne(clientSession, bson, list)); - } - - @Override - default UpdateResult updateOne(ClientSession clientSession, Bson bson, List list, UpdateOptions updateOptions) { - return getInvoker().invoke(()-> getImpl().updateOne(clientSession, bson, list, updateOptions)); - } - - @Override - default UpdateResult updateMany(ClientSession clientSession, Bson bson, Bson bson1) { - return getInvoker().invoke(()-> getImpl().updateMany(clientSession, bson, bson1)); - } - - @Override - default UpdateResult updateMany(ClientSession clientSession, Bson bson, Bson bson1, UpdateOptions updateOptions) { - return getInvoker().invoke(()-> getImpl().updateMany(clientSession, bson, bson1, updateOptions)); - } - - @Override - default UpdateResult updateMany(Bson bson, List list) { - return getInvoker().invoke(()-> getImpl().updateMany(bson, list)); - } - - @Override - default UpdateResult updateMany(Bson bson, List list, UpdateOptions updateOptions) { - return getInvoker().invoke(()-> getImpl().updateMany(bson, list, updateOptions)); - } - - @Override - default UpdateResult updateMany(ClientSession clientSession, Bson bson, List list) { - return getInvoker().invoke(()-> getImpl().updateMany(clientSession, bson, list)); - } - - @Override - default UpdateResult updateMany(ClientSession clientSession, Bson bson, List list, UpdateOptions updateOptions) { - return getInvoker().invoke(()-> getImpl().updateMany(clientSession, bson, list, updateOptions)); - } - - @Override - default T findOneAndDelete(ClientSession clientSession, Bson bson) { - return getInvoker().invoke(()-> getImpl().findOneAndDelete(clientSession, bson)); - } - - @Override - default T findOneAndDelete(ClientSession clientSession, Bson bson, FindOneAndDeleteOptions findOneAndDeleteOptions) { - return getInvoker().invoke(()-> getImpl().findOneAndDelete(clientSession, bson, findOneAndDeleteOptions)); - } - - @Override - default T findOneAndReplace(ClientSession clientSession, Bson bson, T t) { - return getInvoker().invoke(()-> getImpl().findOneAndReplace(clientSession, bson, t)); - } - - @Override - default T findOneAndReplace(ClientSession clientSession, Bson bson, T t, FindOneAndReplaceOptions findOneAndReplaceOptions) { - return getInvoker().invoke(()-> getImpl().findOneAndReplace(clientSession, bson, t, findOneAndReplaceOptions)); - } - - @Override - default T findOneAndUpdate(ClientSession clientSession, Bson bson, Bson bson1) { - return getInvoker().invoke(()-> getImpl().findOneAndUpdate(clientSession, bson, bson1)); - } - - @Override - default T findOneAndUpdate(ClientSession clientSession, Bson bson, Bson bson1, FindOneAndUpdateOptions findOneAndUpdateOptions) { - return getInvoker().invoke(()-> getImpl().findOneAndUpdate(clientSession, bson, bson1, findOneAndUpdateOptions)); - } - - @Override - default T findOneAndUpdate(Bson bson, List list) { - return getInvoker().invoke(()-> getImpl().findOneAndUpdate(bson, list)); - } - - @Override - default T findOneAndUpdate(Bson bson, List list, FindOneAndUpdateOptions findOneAndUpdateOptions) { - return getInvoker().invoke(()-> getImpl().findOneAndUpdate(bson, list, findOneAndUpdateOptions)); - } - - @Override - default T findOneAndUpdate(ClientSession clientSession, Bson bson, List list) { - return getInvoker().invoke(()-> getImpl().findOneAndUpdate(clientSession, bson, list)); - } - - @Override - default T findOneAndUpdate(ClientSession clientSession, Bson bson, List list, FindOneAndUpdateOptions findOneAndUpdateOptions) { - return getInvoker().invoke(()-> getImpl().findOneAndUpdate(clientSession, bson, list, findOneAndUpdateOptions)); - } - - @Override - default void drop(ClientSession clientSession) { - getInvoker().invoke(()-> getImpl().drop(clientSession)); - } - - @Override - default String createIndex(ClientSession clientSession, Bson bson) { - return getInvoker().invoke(()-> getImpl().createIndex(clientSession, bson)); - } - - @Override - default String createIndex(ClientSession clientSession, Bson bson, IndexOptions indexOptions) { - return getInvoker().invoke(()-> getImpl().createIndex(clientSession, bson, indexOptions)); - } - - @Override - default List createIndexes(List list, CreateIndexOptions createIndexOptions) { - return getInvoker().invoke(()-> getImpl().createIndexes(list, createIndexOptions)); - } - - @Override - default List createIndexes(ClientSession clientSession, List list) { - return getInvoker().invoke(()-> getImpl().createIndexes(clientSession, list)); - } - - @Override - default List createIndexes(ClientSession clientSession, List list, CreateIndexOptions createIndexOptions) { - return getInvoker().invoke(()-> getImpl().createIndexes(clientSession, list, createIndexOptions)); - } - - @Override - default ListIndexesIterable listIndexes(ClientSession clientSession) { - return new ListIndexesIterableDecoratorImpl<>(getInvoker().invoke(()-> getImpl().listIndexes(clientSession)), getInvoker()); - } - - @Override - default ListIndexesIterable listIndexes(ClientSession clientSession, Class aClass) { - return new ListIndexesIterableDecoratorImpl<>(getInvoker().invoke(()-> getImpl().listIndexes(clientSession, aClass)), getInvoker()); - } - - @Override - default void dropIndex(String s, DropIndexOptions dropIndexOptions) { - getInvoker().invoke(()-> getImpl().dropIndex(s, dropIndexOptions)); - } - - @Override - default void dropIndex(Bson bson, DropIndexOptions dropIndexOptions) { - getInvoker().invoke(()-> getImpl().dropIndex(bson, dropIndexOptions)); - } - - @Override - default void dropIndex(ClientSession clientSession, String s) { - getInvoker().invoke(()-> getImpl().dropIndex(clientSession, s)); - } - - @Override - default void dropIndex(ClientSession clientSession, Bson bson) { - getInvoker().invoke(()-> getImpl().dropIndex(clientSession, bson)); - } - - @Override - default void dropIndex(ClientSession clientSession, String s, DropIndexOptions dropIndexOptions) { - getInvoker().invoke(()-> getImpl().dropIndex(clientSession, s, dropIndexOptions)); - } - - @Override - default void dropIndex(ClientSession clientSession, Bson bson, DropIndexOptions dropIndexOptions) { - getInvoker().invoke(()-> getImpl().dropIndex(clientSession, bson, dropIndexOptions)); - } - - @Override - default void dropIndexes(ClientSession clientSession) { - getInvoker().invoke(()-> getImpl().dropIndexes(clientSession)); - } - - @Override - default void dropIndexes(DropIndexOptions dropIndexOptions) { - getInvoker().invoke(()-> getImpl().dropIndexes(dropIndexOptions)); - } - - @Override - default void dropIndexes(ClientSession clientSession, DropIndexOptions dropIndexOptions) { - getInvoker().invoke(()-> getImpl().dropIndexes(clientSession, dropIndexOptions)); - } - - @Override - default void renameCollection(ClientSession clientSession, MongoNamespace mongoNamespace) { - getInvoker().invoke(()-> getImpl().renameCollection(clientSession, mongoNamespace)); - } - - @Override - default void renameCollection(ClientSession clientSession, MongoNamespace mongoNamespace, RenameCollectionOptions renameCollectionOptions) { - getInvoker().invoke(()-> getImpl().renameCollection(clientSession, mongoNamespace, renameCollectionOptions)); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/MongoCursorDecorator.java b/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/MongoCursorDecorator.java deleted file mode 100644 index b73e3c887..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/MongoCursorDecorator.java +++ /dev/null @@ -1,45 +0,0 @@ -package io.mongock.driver.mongodb.v3.decorator; - -import io.changock.migration.api.annotations.NonLockGuarded; -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import com.mongodb.ServerAddress; -import com.mongodb.ServerCursor; -import com.mongodb.client.MongoCursor; - -public interface MongoCursorDecorator extends MongoCursor, MongockIterator { - - MongoCursor getImpl(); - - LockGuardInvoker getInvoker(); - - @Override - default void close() { - getInvoker().invoke(() -> getImpl().close()); - } - - @Override - default boolean hasNext() { - return getInvoker().invoke(() -> getImpl().hasNext()); - } - - @Override - default T next() { - return getInvoker().invoke(() -> getImpl().next()); - } - - @Override - default T tryNext() { - return getInvoker().invoke(() -> getImpl().tryNext()); - } - - @Override - default ServerCursor getServerCursor() { - return getInvoker().invoke(() -> getImpl().getServerCursor()); - } - - @Override - @NonLockGuarded - default ServerAddress getServerAddress() { - return getImpl().getServerAddress(); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/MongoDatabaseDecorator.java b/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/MongoDatabaseDecorator.java deleted file mode 100644 index bb3b6fa1e..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/MongoDatabaseDecorator.java +++ /dev/null @@ -1,283 +0,0 @@ -package io.mongock.driver.mongodb.v3.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 io.mongock.driver.mongodb.v3.decorator.impl.AggregateIterableDecoratorImpl; -import io.mongock.driver.mongodb.v3.decorator.impl.ChangeStreamIterableDecoratorImpl; -import io.mongock.driver.mongodb.v3.decorator.impl.ListCollectionsIterableDecoratorImpl; -import io.mongock.driver.mongodb.v3.decorator.impl.MongoCollectionDecoratorImpl; -import io.mongock.driver.mongodb.v3.decorator.impl.MongoDataBaseDecoratorImpl; -import io.mongock.driver.mongodb.v3.decorator.impl.MongoIterableDecoratorImpl; -import com.mongodb.ReadConcern; -import com.mongodb.ReadPreference; -import com.mongodb.WriteConcern; -import com.mongodb.client.AggregateIterable; -import com.mongodb.client.ChangeStreamIterable; -import com.mongodb.client.ClientSession; -import com.mongodb.client.ListCollectionsIterable; -import com.mongodb.client.MongoCollection; -import com.mongodb.client.MongoDatabase; -import com.mongodb.client.MongoIterable; -import com.mongodb.client.model.CreateCollectionOptions; -import com.mongodb.client.model.CreateViewOptions; -import org.bson.Document; -import org.bson.codecs.configuration.CodecRegistry; -import org.bson.conversions.Bson; - -import java.util.List; - - -public interface MongoDatabaseDecorator extends MongoDatabase { - - MongoDatabase getImpl(); - - LockGuardInvoker getInvoker(); - - @Override - @NonLockGuarded(NonLockGuardedType.NONE) - default String getName() { - return getImpl().getName(); - } - - @Override - @NonLockGuarded(NonLockGuardedType.NONE) - default CodecRegistry getCodecRegistry() { - return getImpl().getCodecRegistry(); - } - - @Override - @NonLockGuarded(NonLockGuardedType.NONE) - default ReadPreference getReadPreference() { - return getImpl().getReadPreference(); - } - - @Override - @NonLockGuarded(NonLockGuardedType.NONE) - default WriteConcern getWriteConcern() { - return getImpl().getWriteConcern(); - } - - @Override - @NonLockGuarded(NonLockGuardedType.NONE) - default ReadConcern getReadConcern() { - return getImpl().getReadConcern(); - } - - @Override - @NonLockGuarded(NonLockGuardedType.METHOD) - default MongoDatabase withCodecRegistry(CodecRegistry codecRegistry) { - return new MongoDataBaseDecoratorImpl(getImpl().withCodecRegistry(codecRegistry), getInvoker()); - } - - @Override - @NonLockGuarded(NonLockGuardedType.METHOD) - default MongoDatabase withReadPreference(ReadPreference readPreference) { - return new MongoDataBaseDecoratorImpl(getImpl().withReadPreference(readPreference), getInvoker()); - } - - @Override - @NonLockGuarded(NonLockGuardedType.METHOD) - default MongoDatabase withWriteConcern(WriteConcern writeConcern) { - return new MongoDataBaseDecoratorImpl(getImpl().withWriteConcern(writeConcern), getInvoker()); - } - - @Override - @NonLockGuarded(NonLockGuardedType.METHOD) - default MongoDatabase withReadConcern(ReadConcern readConcern) { - return new MongoDataBaseDecoratorImpl(getImpl().withReadConcern(readConcern), getInvoker()); - } - - @Override - @NonLockGuarded(NonLockGuardedType.METHOD) - @SuppressWarnings("unchecked") - default MongoCollection getCollection(String s) { - return new MongoCollectionDecoratorImpl<>(getImpl().getCollection(s), getInvoker()); - } - - @Override - @NonLockGuarded(NonLockGuardedType.METHOD) - default MongoCollection getCollection(String s, Class aClass) { - return new MongoCollectionDecoratorImpl<>(getImpl().getCollection(s, aClass), getInvoker()); - } - - @Override - default Document runCommand(Bson bson) { - return getInvoker().invoke(() -> getImpl().runCommand(bson)); - } - - @Override - default Document runCommand(Bson bson, ReadPreference readPreference) { - return getInvoker().invoke(() -> getImpl().runCommand(bson, readPreference)); - } - - @Override - default TResult runCommand(Bson bson, Class aClass) { - return getInvoker().invoke(() -> getImpl().runCommand(bson, aClass)); - } - - @Override - default TResult runCommand(Bson bson, ReadPreference readPreference, Class aClass) { - return getInvoker().invoke(() -> getImpl().runCommand(bson, readPreference, aClass)); - } - - @Override - default void drop() { - getInvoker().invoke(() -> getImpl().drop()); - } - - @Override - default MongoIterable listCollectionNames() { - return new MongoIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().listCollectionNames()), getInvoker()); - } - - @Override - default ListCollectionsIterable listCollections() { - return new ListCollectionsIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().listCollections()), getInvoker()); - } - - @Override - default ListCollectionsIterable listCollections(Class aClass) { - return new ListCollectionsIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().listCollections(aClass)), getInvoker()); - } - - @Override - default void createCollection(String s) { - getInvoker().invoke(() -> getImpl().createCollection(s)); - } - - @Override - default void createCollection(String s, CreateCollectionOptions createCollectionOptions) { - getInvoker().invoke(() -> getImpl().createCollection(s, createCollectionOptions)); - } - - @Override - default void createView(String s, String s1, List list) { - getInvoker().invoke(() -> getImpl().createView(s, s1, list)); - } - - @Override - default void createView(String s, String s1, List list, CreateViewOptions createViewOptions) { - getInvoker().invoke(() -> getImpl().createView(s, s1, list, createViewOptions)); - } - - @Override - default Document runCommand(ClientSession clientSession, Bson bson) { - return getInvoker().invoke((() -> getImpl().runCommand(clientSession, bson))); - } - - @Override - default Document runCommand(ClientSession clientSession, Bson bson, ReadPreference readPreference) { - return getInvoker().invoke((() -> getImpl().runCommand(clientSession, bson, readPreference))); - } - - @Override - default TResult runCommand(ClientSession clientSession, Bson bson, Class aClass) { - return getInvoker().invoke((() -> getImpl().runCommand(clientSession, bson, aClass))); - } - - @Override - default TResult runCommand(ClientSession clientSession, Bson bson, ReadPreference readPreference, Class aClass) { - return getInvoker().invoke((() -> getImpl().runCommand(clientSession, bson, readPreference, aClass))); - } - - @Override - default void drop(ClientSession clientSession) { - getInvoker().invoke(() -> getImpl().drop(clientSession)); - } - - @Override - default MongoIterable listCollectionNames(ClientSession clientSession) { - return new MongoIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().listCollectionNames(clientSession)), getInvoker()); - } - - @Override - default ListCollectionsIterable listCollections(ClientSession clientSession) { - return new ListCollectionsIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().listCollections(clientSession)), getInvoker()); - } - - @Override - default ListCollectionsIterable listCollections(ClientSession clientSession, Class aClass) { - return new ListCollectionsIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().listCollections(clientSession, aClass)), getInvoker()); - } - - @Override - default void createCollection(ClientSession clientSession, String s) { - getInvoker().invoke(() -> getImpl().createCollection(clientSession, s)); - } - - @Override - default void createCollection(ClientSession clientSession, String s, CreateCollectionOptions createCollectionOptions) { - getInvoker().invoke(() -> getImpl().createCollection(clientSession, s, createCollectionOptions)); - } - - @Override - default void createView(ClientSession clientSession, String s, String s1, List list) { - getInvoker().invoke(() -> getImpl().createView(clientSession, s, s1, list)); - } - - @Override - default void createView(ClientSession clientSession, String s, String s1, List list, CreateViewOptions createViewOptions) { - getInvoker().invoke(() -> getImpl().createView(clientSession, s, s1, list, createViewOptions)); - } - - @Override - default ChangeStreamIterable watch() { - return new ChangeStreamIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().watch()), getInvoker()); - } - - @Override - default ChangeStreamIterable watch(Class aClass) { - return new ChangeStreamIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().watch(aClass)), getInvoker()); - } - - @Override - default ChangeStreamIterable watch(List list) { - return new ChangeStreamIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().watch(list)), getInvoker()); - } - - @Override - default ChangeStreamIterable watch(List list, Class aClass) { - return new ChangeStreamIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().watch(list, aClass)), getInvoker()); - } - - @Override - default ChangeStreamIterable watch(ClientSession clientSession) { - return new ChangeStreamIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().watch(clientSession)), getInvoker()); - } - - @Override - default ChangeStreamIterable watch(ClientSession clientSession, Class aClass) { - return new ChangeStreamIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().watch(clientSession, aClass)), getInvoker()); - } - - @Override - default ChangeStreamIterable watch(ClientSession clientSession, List list) { - return new ChangeStreamIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().watch(clientSession, list)), getInvoker()); - } - - @Override - default ChangeStreamIterable watch(ClientSession clientSession, List list, Class aClass) { - return new ChangeStreamIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().watch(clientSession, list, aClass)), getInvoker()); - } - - @Override - default AggregateIterable aggregate(List list) { - return new AggregateIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().aggregate(list)), getInvoker()); - } - - @Override - default AggregateIterable aggregate(List list, Class aClass) { - return new AggregateIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().aggregate(list, aClass)), getInvoker()); - } - - @Override - default AggregateIterable aggregate(ClientSession clientSession, List list) { - return new AggregateIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().aggregate(clientSession, list)), getInvoker()); - } - - @Override - default AggregateIterable aggregate(ClientSession clientSession, List list, Class aClass) { - return new AggregateIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().aggregate(clientSession, list, aClass)), getInvoker()); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/MongoIterableDecorator.java b/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/MongoIterableDecorator.java deleted file mode 100644 index 4072b136f..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/MongoIterableDecorator.java +++ /dev/null @@ -1,73 +0,0 @@ -package io.mongock.driver.mongodb.v3.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 io.mongock.driver.mongodb.v3.decorator.impl.MongoCursorDecoratorImpl; -import io.mongock.driver.mongodb.v3.decorator.impl.MongoIterableDecoratorImpl; -import io.changock.migration.api.annotations.DecoratorDiverted; -import com.mongodb.Block; -import com.mongodb.Function; -import com.mongodb.client.MongoCursor; -import com.mongodb.client.MongoIterable; - -import java.util.Collection; -import java.util.Spliterator; -import java.util.Spliterators; -import java.util.function.Consumer; - -public interface MongoIterableDecorator extends MongoIterable { - - MongoIterable getImpl(); - - LockGuardInvoker getInvoker(); - - @Override - default MongoCursor iterator() { - return new MongoCursorDecoratorImpl<>(getInvoker().invoke(() -> getImpl().iterator()), getInvoker()); - } - - @Override - default T first() { - return getInvoker().invoke(() -> getImpl().first()); - } - - @Override - default MongoIterable map(Function mapper) { - return new MongoIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().map(mapper)), getInvoker()); - } - - @Override - default void forEach(Block block) { - getInvoker().invoke(() -> getImpl().forEach(block)); - } - - @Override - default > A into(A target) { - return getInvoker().invoke(() -> getImpl().into(target)); - } - - @Override - default MongoIterable batchSize(int batchSize) { - return new MongoIterableDecoratorImpl<>(getInvoker().invoke(() -> getImpl().batchSize(batchSize)), getInvoker()); - } - - @Override - default MongoCursor cursor() { - return new MongoCursorDecoratorImpl<>(getInvoker().invoke(() -> getImpl().cursor()), getInvoker()); - } - - - @Override - @NonLockGuarded - default void forEach(Consumer action) { - getImpl().forEach(action); - } - - @Override - @DecoratorDiverted - @NonLockGuarded(NonLockGuardedType.RETURN) - default Spliterator spliterator() { - return Spliterators.spliteratorUnknownSize(iterator(), 0); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/MongockIterator.java b/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/MongockIterator.java deleted file mode 100644 index caf746d57..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/MongockIterator.java +++ /dev/null @@ -1,38 +0,0 @@ -package io.mongock.driver.mongodb.v3.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 java.util.Iterator; -import java.util.function.Consumer; - -public interface MongockIterator extends Iterator { - - Iterator getImpl(); - - LockGuardInvoker getInvoker(); - - @Override - default boolean hasNext() { - return getInvoker().invoke(() -> getImpl().hasNext()); - } - - @Override - default T next() { - return getInvoker().invoke(()-> getImpl().next()); - } - - @Override - @NonLockGuarded(NonLockGuardedType.NONE) - default void remove() { - getImpl().remove(); - } - - - @Override - @NonLockGuarded(NonLockGuardedType.NONE) - default void forEachRemaining(Consumer action) { - getImpl().forEachRemaining(action); - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/impl/AggregateIterableDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/impl/AggregateIterableDecoratorImpl.java deleted file mode 100644 index 25d530342..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/impl/AggregateIterableDecoratorImpl.java +++ /dev/null @@ -1,27 +0,0 @@ -package io.mongock.driver.mongodb.v3.decorator.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import io.mongock.driver.mongodb.v3.decorator.AggregateIterableDecorator; -import com.mongodb.client.AggregateIterable; - -public class AggregateIterableDecoratorImpl implements AggregateIterableDecorator { - - private final AggregateIterable impl; - private final LockGuardInvoker checker; - - public AggregateIterableDecoratorImpl(AggregateIterable implementation, LockGuardInvoker lockerCheckInvoker) { - this.impl = implementation; - this.checker = lockerCheckInvoker; - } - - @Override - public AggregateIterable getImpl() { - return impl; - } - - @Override - public LockGuardInvoker getInvoker() { - return checker; - } - -} diff --git a/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/impl/ChangeStreamIterableDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/impl/ChangeStreamIterableDecoratorImpl.java deleted file mode 100644 index 26af9ae75..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/impl/ChangeStreamIterableDecoratorImpl.java +++ /dev/null @@ -1,26 +0,0 @@ -package io.mongock.driver.mongodb.v3.decorator.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import io.mongock.driver.mongodb.v3.decorator.ChangeStreamIterableDecorator; -import com.mongodb.client.ChangeStreamIterable; - -public class ChangeStreamIterableDecoratorImpl implements ChangeStreamIterableDecorator { - - private final ChangeStreamIterable impl; - private final LockGuardInvoker checker; - - public ChangeStreamIterableDecoratorImpl(ChangeStreamIterable implementation, LockGuardInvoker lockerCheckInvoker) { - this.impl = implementation; - this.checker = lockerCheckInvoker; - } - - @Override - public ChangeStreamIterable getImpl() { - return impl; - } - - @Override - public LockGuardInvoker getInvoker() { - return checker; - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/impl/DistinctIterableDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/impl/DistinctIterableDecoratorImpl.java deleted file mode 100644 index ca64b9134..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/impl/DistinctIterableDecoratorImpl.java +++ /dev/null @@ -1,26 +0,0 @@ -package io.mongock.driver.mongodb.v3.decorator.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import io.mongock.driver.mongodb.v3.decorator.DistinctIterableDecorator; -import com.mongodb.client.DistinctIterable; - -public class DistinctIterableDecoratorImpl implements DistinctIterableDecorator { - - private final DistinctIterable impl; - private final LockGuardInvoker checker; - - public DistinctIterableDecoratorImpl(DistinctIterable implementation, LockGuardInvoker lockerCheckInvoker) { - this.impl = implementation; - this.checker = lockerCheckInvoker; - } - - @Override - public DistinctIterable getImpl() { - return impl; - } - - @Override - public LockGuardInvoker getInvoker() { - return checker; - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/impl/FindIterableDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/impl/FindIterableDecoratorImpl.java deleted file mode 100644 index 549ddd0be..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/impl/FindIterableDecoratorImpl.java +++ /dev/null @@ -1,28 +0,0 @@ -package io.mongock.driver.mongodb.v3.decorator.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import io.mongock.driver.mongodb.v3.decorator.FindIterableDecorator; -import com.mongodb.client.FindIterable; - -public class FindIterableDecoratorImpl implements FindIterableDecorator { - - private final FindIterable impl; - private final LockGuardInvoker checker; - - public FindIterableDecoratorImpl(FindIterable implementation, LockGuardInvoker lockerCheckInvoker) { - this.impl = implementation; - this.checker = lockerCheckInvoker; - } - - @Override - public FindIterable getImpl() { - return impl; - } - - @Override - public LockGuardInvoker getInvoker() { - return checker; - } - - -} diff --git a/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/impl/ListCollectionsIterableDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/impl/ListCollectionsIterableDecoratorImpl.java deleted file mode 100644 index 9322c3753..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/impl/ListCollectionsIterableDecoratorImpl.java +++ /dev/null @@ -1,27 +0,0 @@ -package io.mongock.driver.mongodb.v3.decorator.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import io.mongock.driver.mongodb.v3.decorator.ListCollectionsIterableDecorator; -import com.mongodb.client.ListCollectionsIterable; - -public class ListCollectionsIterableDecoratorImpl implements ListCollectionsIterableDecorator { - - private final ListCollectionsIterable impl; - private final LockGuardInvoker checker; - - public ListCollectionsIterableDecoratorImpl(ListCollectionsIterable implementation, LockGuardInvoker lockerCheckInvoker) { - this.impl = implementation; - this.checker = lockerCheckInvoker; - } - - @Override - public ListCollectionsIterable getImpl() { - return impl; - } - - @Override - public LockGuardInvoker getInvoker() { - return checker; - } - -} diff --git a/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/impl/ListIndexesIterableDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/impl/ListIndexesIterableDecoratorImpl.java deleted file mode 100644 index 9d5fd4eff..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/impl/ListIndexesIterableDecoratorImpl.java +++ /dev/null @@ -1,27 +0,0 @@ -package io.mongock.driver.mongodb.v3.decorator.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import io.mongock.driver.mongodb.v3.decorator.ListIndexesIterableDecorator; -import com.mongodb.client.ListIndexesIterable; - -public class ListIndexesIterableDecoratorImpl implements ListIndexesIterableDecorator { - - private final ListIndexesIterable impl; - private final LockGuardInvoker checker; - - public ListIndexesIterableDecoratorImpl(ListIndexesIterable implementation, LockGuardInvoker lockerCheckInvoker) { - this.impl = implementation; - this.checker = lockerCheckInvoker; - } - - @Override - public ListIndexesIterable getImpl() { - return impl; - } - - @Override - public LockGuardInvoker getInvoker() { - return checker; - } - -} diff --git a/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/impl/MapReduceIterableDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/impl/MapReduceIterableDecoratorImpl.java deleted file mode 100644 index 0cdd2970e..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/impl/MapReduceIterableDecoratorImpl.java +++ /dev/null @@ -1,26 +0,0 @@ -package io.mongock.driver.mongodb.v3.decorator.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import io.mongock.driver.mongodb.v3.decorator.MapReduceIterableDecorator; -import com.mongodb.client.MapReduceIterable; - -public class MapReduceIterableDecoratorImpl implements MapReduceIterableDecorator { - - private final MapReduceIterable impl; - private final LockGuardInvoker checker; - - public MapReduceIterableDecoratorImpl(MapReduceIterable implementation, LockGuardInvoker lockerCheckInvoker) { - this.impl = implementation; - this.checker = lockerCheckInvoker; - } - - @Override - public MapReduceIterable getImpl() { - return impl; - } - - @Override - public LockGuardInvoker getInvoker() { - return checker; - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/impl/MongoChangeStreamCursorDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/impl/MongoChangeStreamCursorDecoratorImpl.java deleted file mode 100644 index 4d44035d5..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/impl/MongoChangeStreamCursorDecoratorImpl.java +++ /dev/null @@ -1,26 +0,0 @@ -package io.mongock.driver.mongodb.v3.decorator.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import io.mongock.driver.mongodb.v3.decorator.MongoChangeStreamCursorDecorator; -import com.mongodb.client.MongoChangeStreamCursor; - -public class MongoChangeStreamCursorDecoratorImpl implements MongoChangeStreamCursorDecorator { - - private final MongoChangeStreamCursor impl; - private final LockGuardInvoker checker; - - public MongoChangeStreamCursorDecoratorImpl(MongoChangeStreamCursor implementation, LockGuardInvoker lockerCheckInvoker) { - this.impl = implementation; - this.checker = lockerCheckInvoker; - } - - @Override - public MongoChangeStreamCursor getImpl() { - return impl; - } - - @Override - public LockGuardInvoker getInvoker() { - return checker; - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/impl/MongoCollectionDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/impl/MongoCollectionDecoratorImpl.java deleted file mode 100644 index 5bbc8f0f9..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/impl/MongoCollectionDecoratorImpl.java +++ /dev/null @@ -1,27 +0,0 @@ -package io.mongock.driver.mongodb.v3.decorator.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import io.mongock.driver.mongodb.v3.decorator.MongoCollectionDecorator; -import com.mongodb.client.MongoCollection; - -public class MongoCollectionDecoratorImpl implements MongoCollectionDecorator { - - private final MongoCollection impl; - private final LockGuardInvoker lockChecker; - - public MongoCollectionDecoratorImpl(MongoCollection implementation, LockGuardInvoker lockerCheckInvoker) { - this.impl = implementation; - this.lockChecker = lockerCheckInvoker; - } - - @Override - public MongoCollection getImpl() { - return impl; - } - - @Override - public LockGuardInvoker getInvoker() { - return lockChecker; - } - -} diff --git a/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/impl/MongoCursorDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/impl/MongoCursorDecoratorImpl.java deleted file mode 100644 index 3f087421e..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/impl/MongoCursorDecoratorImpl.java +++ /dev/null @@ -1,26 +0,0 @@ -package io.mongock.driver.mongodb.v3.decorator.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import io.mongock.driver.mongodb.v3.decorator.MongoCursorDecorator; -import com.mongodb.client.MongoCursor; - -public class MongoCursorDecoratorImpl implements MongoCursorDecorator { - - private final MongoCursor impl; - private final LockGuardInvoker checker; - - public MongoCursorDecoratorImpl(MongoCursor implementation, LockGuardInvoker lockerCheckInvoker) { - this.impl = implementation; - this.checker = lockerCheckInvoker; - } - - @Override - public MongoCursor getImpl() { - return impl; - } - - @Override - public LockGuardInvoker getInvoker() { - return checker; - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/impl/MongoDataBaseDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/impl/MongoDataBaseDecoratorImpl.java deleted file mode 100644 index 222b82636..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/impl/MongoDataBaseDecoratorImpl.java +++ /dev/null @@ -1,24 +0,0 @@ -package io.mongock.driver.mongodb.v3.decorator.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import io.mongock.driver.mongodb.v3.decorator.MongoDatabaseDecorator; -import com.mongodb.client.MongoDatabase; - -public class MongoDataBaseDecoratorImpl implements MongoDatabaseDecorator { - private final MongoDatabase impl; - private final LockGuardInvoker invoker; - - public MongoDataBaseDecoratorImpl(MongoDatabase implementation, LockGuardInvoker lockerCheckInvoker) { - this.impl = implementation; - this.invoker = lockerCheckInvoker; - } - - public MongoDatabase getImpl() { - return impl; - } - - public LockGuardInvoker getInvoker() { - return invoker; - } - -} diff --git a/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/impl/MongoIterableDecoratorImpl.java b/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/impl/MongoIterableDecoratorImpl.java deleted file mode 100644 index 5d528f719..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/decorator/impl/MongoIterableDecoratorImpl.java +++ /dev/null @@ -1,26 +0,0 @@ -package io.mongock.driver.mongodb.v3.decorator.impl; - -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvoker; -import io.mongock.driver.mongodb.v3.decorator.MongoIterableDecorator; -import com.mongodb.client.MongoIterable; - -public class MongoIterableDecoratorImpl implements MongoIterableDecorator { - - private final MongoIterable impl; - private final LockGuardInvoker checker; - - public MongoIterableDecoratorImpl(MongoIterable implementation, LockGuardInvoker lockerCheckInvoker) { - this.impl = implementation; - this.checker = lockerCheckInvoker; - } - - @Override - public MongoIterable getImpl() { - return impl; - } - - @Override - public LockGuardInvoker getInvoker() { - return checker; - } -} diff --git a/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/driver/MongoCore3DriverGeneric.java b/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/driver/MongoCore3DriverGeneric.java index e2705e445..a8edfb9b4 100644 --- a/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/driver/MongoCore3DriverGeneric.java +++ b/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/main/java/io/mongock/driver/mongodb/v3/driver/MongoCore3DriverGeneric.java @@ -9,7 +9,6 @@ import io.mongock.driver.core.lock.LockRepositoryWithEntity; import io.mongock.driver.mongodb.v3.changelogs.runalways.MongockV3LegacyMigrationChangeRunAlwaysLog; import io.mongock.driver.mongodb.v3.changelogs.runonce.MongockV3LegacyMigrationChangeLog; -import io.mongock.driver.mongodb.v3.decorator.impl.MongoDataBaseDecoratorImpl; import io.mongock.driver.mongodb.v3.repository.Mongo3ChangeEntryRepository; import io.mongock.driver.mongodb.v3.repository.Mongo3LockRepository; import io.mongock.driver.mongodb.v3.repository.ReadWriteConfiguration; @@ -130,7 +129,7 @@ public Set getDependencies() { @Override public void specificInitialization() { dependencies = new HashSet<>(); - dependencies.add(new ChangeSetDependency(MongoDatabase.class, new MongoDataBaseDecoratorImpl(mongoDatabase, new LockGuardInvokerImpl(getLockManager())), false)); + dependencies.add(new ChangeSetDependency(MongoDatabase.class, mongoDatabase, true)); dependencies.add(new ChangeSetDependency(ChangeEntryService.class, getChangeEntryService(), false)); this.txOptions = txOptions != null ? txOptions : buildDefaultTxOptions(); } diff --git a/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/test/java/io/mongock/driver/mongodb/v3/decorator/DecoratorUTest.java b/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/test/java/io/mongock/driver/mongodb/v3/decorator/DecoratorUTest.java deleted file mode 100644 index 31341d1bf..000000000 --- a/drivers/mongock-driver-mongodb/mongodb-v3-driver/src/test/java/io/mongock/driver/mongodb/v3/decorator/DecoratorUTest.java +++ /dev/null @@ -1,84 +0,0 @@ -package io.mongock.driver.mongodb.v3.decorator; - -import io.mongock.driver.api.lock.LockManager; -import io.mongock.driver.api.lock.guard.invoker.LockGuardInvokerImpl; -import io.mongock.driver.mongodb.v3.decorator.impl.MongoDataBaseDecoratorImpl; -import io.mongock.test.util.decorator.DecoratorMethodFailure; -import io.mongock.test.util.decorator.DecoratorTestCollection; -import io.mongock.test.util.decorator.DecoratorValidator; -import com.mongodb.MongoNamespace; -import com.mongodb.ReadConcern; -import com.mongodb.ReadPreference; -import com.mongodb.ServerAddress; -import com.mongodb.ServerCursor; -import com.mongodb.WriteConcern; -import com.mongodb.bulk.BulkWriteResult; -import com.mongodb.client.MongoDatabase; -import com.mongodb.client.result.DeleteResult; -import com.mongodb.client.result.UpdateResult; -import org.bson.BsonDocument; -import org.bson.Document; -import org.bson.codecs.configuration.CodecRegistry; -import org.junit.Assert; -import org.junit.Test; -import org.mockito.Mockito; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Optional; - -public class DecoratorUTest { - - - private DecoratorTestCollection getDecoratorsToTest() { - return new DecoratorTestCollection() - .addDecorator(MongoDatabase.class, MongoDataBaseDecoratorImpl.class); - - } - - - @Test - public void allMethodsInDecoratorsShouldEnsureLockAndReturnDecoratorIfNotTerminatingOperations() { - LockManager lockManager = Mockito.mock(LockManager.class); - List failedDecorators = new DecoratorValidator( - getDecoratorsToTest(), - getIgnoredTypes(), - Collections.emptyList(), - getInstancesMap(lockManager), - lockManager) - .checkAndReturnFailedDecorators(); - int size = failedDecorators.size(); - Assert.assertEquals(DecoratorMethodFailure.printErrorMessage(failedDecorators), 0, size); - } - - private Map getInstancesMap(LockManager lockManager) { - Map instancesMap = new HashMap<>(); - instancesMap.put(MongoDataBaseDecoratorImpl.class, new MongoDataBaseDecoratorImpl(Mockito.mock(MongoDatabase.class), new LockGuardInvokerImpl(lockManager))); - return instancesMap; - } - - private Collection getIgnoredTypes() { - return new ArrayList<>(Arrays.asList( - Document.class - , DeleteResult.class - , UpdateResult.class - , MongoNamespace.class - , CodecRegistry.class - , ReadPreference.class - , ReadConcern.class - , WriteConcern.class - , BulkWriteResult.class - , BsonDocument.class - , ServerCursor.class - , ServerAddress.class - , Optional.class - )); - } - - -} diff --git a/drivers/mongock-driver-mongodb/pom.xml b/drivers/mongock-driver-mongodb/pom.xml index 4cacc6cc9..d19b1198b 100644 --- a/drivers/mongock-driver-mongodb/pom.xml +++ b/drivers/mongock-driver-mongodb/pom.xml @@ -31,7 +31,7 @@ [2.0.0, 3.0.0) 3.2.0 2.2.13.RELEASE - 4.2.3 + [4.0.0, 5.0.0) 3.12.8 1.8 diff --git a/mongock-core/mongock-driver/mongock-driver-api/src/main/java/io/mongock/driver/api/driver/ChangeSetDependencyBuildable.java b/mongock-core/mongock-driver/mongock-driver-api/src/main/java/io/mongock/driver/api/driver/ChangeSetDependencyBuildable.java new file mode 100644 index 000000000..6a2c79605 --- /dev/null +++ b/mongock-core/mongock-driver/mongock-driver-api/src/main/java/io/mongock/driver/api/driver/ChangeSetDependencyBuildable.java @@ -0,0 +1,24 @@ +package io.mongock.driver.api.driver; + +import java.util.function.Function; + +public class DecoratorChangeSetDependency extends ChangeSetDependency{ + + private final Function decoratorFunction; + + public DecoratorChangeSetDependency(Class type, Class implType, Function decoratorFunction) { + super(DEFAULT_NAME, type, null, false); + this.decoratorFunction = decoratorFunction; + } + + public void setImpl(IMPL impl) { + this.instance = impl; + } + + @Override + @SuppressWarnings("unchecked") + public Object getInstance() { + return decoratorFunction.apply((IMPL)instance); + } + +}