--- /dev/null
+package de.juplo.kafka.chat.backend.storage.mongodb;
+
+import com.mongodb.ClientSessionOptions;
+import com.mongodb.connection.ClusterDescription;
+import com.mongodb.reactivestreams.client.*;
+import de.juplo.kafka.chat.backend.ChatBackendProperties;
+import de.juplo.kafka.chat.backend.implementation.StorageStrategy;
+import org.bson.Document;
+import org.bson.conversions.Bson;
+import org.reactivestreams.Publisher;
+import org.springframework.boot.autoconfigure.AutoConfigureBefore;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.boot.autoconfigure.mongo.MongoReactiveAutoConfiguration;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import java.util.List;
+
+
+@AutoConfigureBefore(MongoReactiveAutoConfiguration.class)
+@ConditionalOnExpression("#{${chat.backend.inmemory.storage-strategy} != 'mongodb'}")
+@Configuration
+public class MongoDbStorageNotActiveConfiguration
+{
+ @Bean
+ public MongoClient dummyClient()
+ {
+ return new MongoClient() {
+ @Override
+ public MongoDatabase getDatabase(String s)
+ {
+ return null;
+ }
+
+ @Override
+ public void close()
+ {
+
+ }
+
+ @Override
+ public Publisher<String> listDatabaseNames()
+ {
+ return null;
+ }
+
+ @Override
+ public Publisher<String> listDatabaseNames(ClientSession clientSession)
+ {
+ return null;
+ }
+
+ @Override
+ public ListDatabasesPublisher<Document> listDatabases()
+ {
+ return null;
+ }
+
+ @Override
+ public <TResult> ListDatabasesPublisher<TResult> listDatabases(Class<TResult> aClass)
+ {
+ return null;
+ }
+
+ @Override
+ public ListDatabasesPublisher<Document> listDatabases(ClientSession clientSession)
+ {
+ return null;
+ }
+
+ @Override
+ public <TResult> ListDatabasesPublisher<TResult> listDatabases(ClientSession clientSession, Class<TResult> aClass)
+ {
+ return null;
+ }
+
+ @Override
+ public ChangeStreamPublisher<Document> watch()
+ {
+ return null;
+ }
+
+ @Override
+ public <TResult> ChangeStreamPublisher<TResult> watch(Class<TResult> aClass)
+ {
+ return null;
+ }
+
+ @Override
+ public ChangeStreamPublisher<Document> watch(List<? extends Bson> list)
+ {
+ return null;
+ }
+
+ @Override
+ public <TResult> ChangeStreamPublisher<TResult> watch(List<? extends Bson> list, Class<TResult> aClass)
+ {
+ return null;
+ }
+
+ @Override
+ public ChangeStreamPublisher<Document> watch(ClientSession clientSession)
+ {
+ return null;
+ }
+
+ @Override
+ public <TResult> ChangeStreamPublisher<TResult> watch(ClientSession clientSession, Class<TResult> aClass)
+ {
+ return null;
+ }
+
+ @Override
+ public ChangeStreamPublisher<Document> watch(ClientSession clientSession, List<? extends Bson> list)
+ {
+ return null;
+ }
+
+ @Override
+ public <TResult> ChangeStreamPublisher<TResult> watch(
+ ClientSession clientSession,
+ List<? extends Bson> list,
+ Class<TResult> aClass)
+ {
+ return null;
+ }
+
+ @Override
+ public Publisher<ClientSession> startSession()
+ {
+ return null;
+ }
+
+ @Override
+ public Publisher<ClientSession> startSession(ClientSessionOptions clientSessionOptions)
+ {
+ return null;
+ }
+
+ @Override
+ public ClusterDescription getClusterDescription()
+ {
+ return null;
+ }
+ };
+ }
+}