diff --git a/app/client/cypress/fixtures/gitImport.json b/app/client/cypress/fixtures/gitImport.json
index 1e09e17ba447..0e23e769600a 100644
--- a/app/client/cypress/fixtures/gitImport.json
+++ b/app/client/cypress/fixtures/gitImport.json
@@ -743,7 +743,7 @@
"userPermissions": [],
"name": "DEFAULT_REST_DATASOURCE",
"pluginId": "restapi-plugin",
- "datasourceConfiguration": { "url": "hhttp://host.docker.internal:5001/v1/mock-api" },
+ "datasourceConfiguration": { "url": "http://host.docker.internal:5001/v1/mock-api" },
"invalids": [],
"messages": [],
"isValid": true,
diff --git a/app/server/appsmith-interfaces/pom.xml b/app/server/appsmith-interfaces/pom.xml
index 83d43f4e569f..00ac85011d6b 100644
--- a/app/server/appsmith-interfaces/pom.xml
+++ b/app/server/appsmith-interfaces/pom.xml
@@ -65,8 +65,7 @@
org.springframework.data
spring-data-mongodb
- 4.0.0
- compile
+ provided
@@ -127,7 +126,7 @@
commons-io
commons-io
- 2.7
+ 2.13.0
compile
diff --git a/app/server/appsmith-plugins/anthropicPlugin/pom.xml b/app/server/appsmith-plugins/anthropicPlugin/pom.xml
index 5a863b84f775..58b09491e771 100644
--- a/app/server/appsmith-plugins/anthropicPlugin/pom.xml
+++ b/app/server/appsmith-plugins/anthropicPlugin/pom.xml
@@ -89,7 +89,6 @@
org.springframework.boot
spring-boot-starter-webflux
- ${spring-boot.version}
test
diff --git a/app/server/appsmith-plugins/appsmithAiPlugin/pom.xml b/app/server/appsmith-plugins/appsmithAiPlugin/pom.xml
index aac406577ba0..b32c6ef5a7ac 100644
--- a/app/server/appsmith-plugins/appsmithAiPlugin/pom.xml
+++ b/app/server/appsmith-plugins/appsmithAiPlugin/pom.xml
@@ -82,7 +82,6 @@
org.springframework.boot
spring-boot-starter-webflux
- ${spring-boot.version}
test
diff --git a/app/server/appsmith-plugins/googleAiPlugin/pom.xml b/app/server/appsmith-plugins/googleAiPlugin/pom.xml
index 9c8ba07e5c97..e0465720eca6 100644
--- a/app/server/appsmith-plugins/googleAiPlugin/pom.xml
+++ b/app/server/appsmith-plugins/googleAiPlugin/pom.xml
@@ -89,7 +89,6 @@
org.springframework.boot
spring-boot-starter-webflux
- ${spring-boot.version}
test
diff --git a/app/server/appsmith-plugins/googleSheetsPlugin/pom.xml b/app/server/appsmith-plugins/googleSheetsPlugin/pom.xml
index c427e9f9409b..18e43347b6d7 100644
--- a/app/server/appsmith-plugins/googleSheetsPlugin/pom.xml
+++ b/app/server/appsmith-plugins/googleSheetsPlugin/pom.xml
@@ -107,7 +107,6 @@
org.springframework.boot
spring-boot-starter-webflux
- ${spring-boot.version}
test
diff --git a/app/server/appsmith-plugins/graphqlPlugin/pom.xml b/app/server/appsmith-plugins/graphqlPlugin/pom.xml
index a7959f291eb6..18edfe50df55 100644
--- a/app/server/appsmith-plugins/graphqlPlugin/pom.xml
+++ b/app/server/appsmith-plugins/graphqlPlugin/pom.xml
@@ -133,7 +133,6 @@
org.springframework.boot
spring-boot-starter-webflux
- ${spring-boot.version}
test
diff --git a/app/server/appsmith-plugins/mongoPlugin/src/test/java/com/external/plugins/MongoPluginErrorsTest.java b/app/server/appsmith-plugins/mongoPlugin/src/test/java/com/external/plugins/MongoPluginErrorsTest.java
index 035b9df192fb..6e5a2cdd0cf1 100644
--- a/app/server/appsmith-plugins/mongoPlugin/src/test/java/com/external/plugins/MongoPluginErrorsTest.java
+++ b/app/server/appsmith-plugins/mongoPlugin/src/test/java/com/external/plugins/MongoPluginErrorsTest.java
@@ -17,10 +17,13 @@
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.mongodb.MongoCommandException;
import com.mongodb.MongoSecurityException;
+import com.mongodb.reactivestreams.client.ListCollectionNamesPublisher;
import com.mongodb.reactivestreams.client.MongoClient;
import com.mongodb.reactivestreams.client.MongoDatabase;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
+import org.reactivestreams.Subscriber;
+import org.reactivestreams.Subscription;
import org.testcontainers.containers.MongoDBContainer;
import org.testcontainers.junit.jupiter.Container;
import org.testcontainers.junit.jupiter.Testcontainers;
@@ -54,6 +57,7 @@
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
@@ -236,8 +240,28 @@ public void testGetStructureReadPermissionError() {
when(mockConnection.getDatabase(any())).thenReturn(mockDatabase);
MongoCommandException mockMongoCmdException = mock(MongoCommandException.class);
- when(mockDatabase.listCollectionNames()).thenReturn(Mono.error(mockMongoCmdException));
+ // Mock the ListCollectionNamesPublisher
+ ListCollectionNamesPublisher mockPublisher = mock(ListCollectionNamesPublisher.class);
+
+ // Create a mock subscription
+ Subscription mockSubscription = mock(Subscription.class);
+
+ // Simulate an error when calling listCollectionNames
+ when(mockDatabase.listCollectionNames()).thenReturn(mockPublisher);
when(mockMongoCmdException.getErrorCode()).thenReturn(13);
+ // Mock the subscribe method to simulate an error
+ doAnswer(invocation -> {
+ // Extract the Subscriber passed to the subscribe method
+ Subscriber> subscriber = invocation.getArgument(0);
+
+ subscriber.onSubscribe(mockSubscription); // Provide a subscription
+ // Call the Subscriber's onError method to simulate an error
+ subscriber.onError(mockMongoCmdException);
+
+ return null; // Since subscribe returns void
+ })
+ .when(mockPublisher)
+ .subscribe(any());
DatasourceConfiguration dsConfig = createDatasourceConfiguration();
Mono structureMono = pluginExecutor
diff --git a/app/server/appsmith-plugins/mongoPlugin/src/test/java/com/external/plugins/MongoPluginStaleConnTest.java b/app/server/appsmith-plugins/mongoPlugin/src/test/java/com/external/plugins/MongoPluginStaleConnTest.java
index accf9e106764..b93f4cebc1e0 100644
--- a/app/server/appsmith-plugins/mongoPlugin/src/test/java/com/external/plugins/MongoPluginStaleConnTest.java
+++ b/app/server/appsmith-plugins/mongoPlugin/src/test/java/com/external/plugins/MongoPluginStaleConnTest.java
@@ -9,10 +9,13 @@
import com.appsmith.external.models.Endpoint;
import com.appsmith.external.models.SSLDetails;
import com.mongodb.MongoSocketWriteException;
+import com.mongodb.reactivestreams.client.ListCollectionNamesPublisher;
import com.mongodb.reactivestreams.client.MongoClient;
import com.mongodb.reactivestreams.client.MongoDatabase;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
+import org.reactivestreams.Subscriber;
+import org.reactivestreams.Subscription;
import org.testcontainers.containers.MongoDBContainer;
import org.testcontainers.junit.jupiter.Container;
import org.testcontainers.junit.jupiter.Testcontainers;
@@ -30,8 +33,11 @@
import static com.external.plugins.constants.FieldName.SMART_SUBSTITUTION;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
/**
* Unit tests for MongoPlugin
@@ -125,7 +131,27 @@ public void testStaleConnectionOnIllegalStateExceptionOnGetStructure() {
MongoClient spyMongoClient = spy(MongoClient.class);
MongoDatabase spyMongoDatabase = spy(MongoDatabase.class);
doReturn(spyMongoDatabase).when(spyMongoClient).getDatabase(anyString());
- doReturn(Mono.error(new IllegalStateException())).when(spyMongoDatabase).listCollectionNames();
+ // Mock the ListCollectionNamesPublisher
+ ListCollectionNamesPublisher mockPublisher = mock(ListCollectionNamesPublisher.class);
+
+ // Create a mock subscription
+ Subscription mockSubscription = mock(Subscription.class);
+
+ // Simulate an error when calling listCollectionNames
+ when(spyMongoDatabase.listCollectionNames()).thenReturn(mockPublisher);
+ // Mock the subscribe method to simulate an error
+ doAnswer(invocation -> {
+ // Extract the Subscriber passed to the subscribe method
+ Subscriber> subscriber = invocation.getArgument(0);
+
+ subscriber.onSubscribe(mockSubscription); // Provide a subscription
+ // Call the Subscriber's onError method to simulate an error
+ subscriber.onError(new IllegalStateException());
+
+ return null; // Since subscribe returns void
+ })
+ .when(mockPublisher)
+ .subscribe(any());
DatasourceConfiguration dsConfig = createDatasourceConfiguration();
Mono structureMono = pluginExecutor.getStructure(spyMongoClient, dsConfig, null);
@@ -139,9 +165,27 @@ public void testStaleConnectionOnMongoSocketWriteExceptionOnGetStructure() {
MongoClient spyMongoClient = spy(MongoClient.class);
MongoDatabase spyMongoDatabase = spy(MongoDatabase.class);
doReturn(spyMongoDatabase).when(spyMongoClient).getDatabase(anyString());
- doReturn(Mono.error(new MongoSocketWriteException("", null, null)))
- .when(spyMongoDatabase)
- .listCollectionNames();
+ // Mock the ListCollectionNamesPublisher
+ ListCollectionNamesPublisher mockPublisher = mock(ListCollectionNamesPublisher.class);
+
+ // Create a mock subscription
+ Subscription mockSubscription = mock(Subscription.class);
+
+ // Simulate an error when calling listCollectionNames
+ when(spyMongoDatabase.listCollectionNames()).thenReturn(mockPublisher);
+ // Mock the subscribe method to simulate an error
+ doAnswer(invocation -> {
+ // Extract the Subscriber passed to the subscribe method
+ Subscriber> subscriber = invocation.getArgument(0);
+
+ subscriber.onSubscribe(mockSubscription); // Provide a subscription
+ // Call the Subscriber's onError method to simulate an error
+ subscriber.onError(new MongoSocketWriteException("", null, null));
+
+ return null; // Since subscribe returns void
+ })
+ .when(mockPublisher)
+ .subscribe(any());
DatasourceConfiguration dsConfig = createDatasourceConfiguration();
Mono structureMono = pluginExecutor.getStructure(spyMongoClient, dsConfig, null);
diff --git a/app/server/appsmith-plugins/openAiPlugin/pom.xml b/app/server/appsmith-plugins/openAiPlugin/pom.xml
index f19ad0b6bf57..ad65e91c1727 100644
--- a/app/server/appsmith-plugins/openAiPlugin/pom.xml
+++ b/app/server/appsmith-plugins/openAiPlugin/pom.xml
@@ -101,7 +101,6 @@
org.springframework.boot
spring-boot-starter-webflux
- ${spring-boot.version}
test
diff --git a/app/server/appsmith-plugins/restApiPlugin/pom.xml b/app/server/appsmith-plugins/restApiPlugin/pom.xml
index 775003d9ea5d..60e52b9f1284 100644
--- a/app/server/appsmith-plugins/restApiPlugin/pom.xml
+++ b/app/server/appsmith-plugins/restApiPlugin/pom.xml
@@ -89,7 +89,6 @@
org.springframework.boot
spring-boot-starter-webflux
- ${spring-boot.version}
test
diff --git a/app/server/appsmith-plugins/snowflakePlugin/pom.xml b/app/server/appsmith-plugins/snowflakePlugin/pom.xml
index c545d22dd8c0..679251691988 100644
--- a/app/server/appsmith-plugins/snowflakePlugin/pom.xml
+++ b/app/server/appsmith-plugins/snowflakePlugin/pom.xml
@@ -79,7 +79,6 @@
org.springframework.boot
spring-boot-starter-webflux
- ${spring-boot.version}
test
diff --git a/app/server/appsmith-server/pom.xml b/app/server/appsmith-server/pom.xml
index e9e91196b150..033b93315bbb 100644
--- a/app/server/appsmith-server/pom.xml
+++ b/app/server/appsmith-server/pom.xml
@@ -116,7 +116,6 @@
org.springframework.boot
spring-boot-starter-webflux
- ${spring-boot.version}
io.projectreactor
@@ -202,7 +201,7 @@
commons-io
commons-io
- 2.7
+ 2.13.0
commons-validator
@@ -221,13 +220,13 @@
io.micrometer
micrometer-tracing-bridge-brave
- 1.0.0
+ 1.3.4
io.zipkin.reporter2
zipkin-reporter-brave
-
+
@@ -315,7 +314,7 @@
org.springdoc
springdoc-openapi-starter-webflux-ui
- 2.0.0
+ 2.6.0
@@ -368,11 +367,7 @@
org.mockito
mockito-inline
${mockito.version}
-
-
- org.mockito
- mockito-core
- ${mockito.version}
+ test
org.jgrapht
@@ -390,6 +385,12 @@
1.10.0
+
+ commons-codec
+ commons-codec
+ 1.17.1
+
+
com.appsmith
reactiveCaching
diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/configurations/InstanceConfig.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/configurations/InstanceConfig.java
index 0e150ab57d1e..879780c0bb71 100644
--- a/app/server/appsmith-server/src/main/java/com/appsmith/server/configurations/InstanceConfig.java
+++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/configurations/InstanceConfig.java
@@ -22,7 +22,7 @@
@Slf4j
@RequiredArgsConstructor
@Component
-@Observed(name = "Server startup")
+@Observed(name = "serverStartup")
public class InstanceConfig implements ApplicationListener {
private final ConfigService configService;
diff --git a/app/server/pom.xml b/app/server/pom.xml
index ccee774a5e50..1bd3cba3ad89 100644
--- a/app/server/pom.xml
+++ b/app/server/pom.xml
@@ -7,7 +7,7 @@
org.springframework.boot
spring-boot-starter-parent
- 3.0.9
+ 3.3.3
@@ -31,7 +31,6 @@
2.17.0
17
true
- 1.4.14
${java.version}
${java.version}
4.4.0
@@ -48,8 +47,7 @@
2.0
true
2.36.0
- 3.0.9
- 1.19.3
+ 1.20.1
diff --git a/app/server/reactive-caching/pom.xml b/app/server/reactive-caching/pom.xml
index c375907b16cc..3321b759e1cc 100644
--- a/app/server/reactive-caching/pom.xml
+++ b/app/server/reactive-caching/pom.xml
@@ -32,7 +32,6 @@
org.springframework.boot
spring-boot-starter-webflux
- ${spring-boot.version}