diff --git a/app/client/cypress/integration/Smoke_TestSuite/ApiPaneTests/API_CurlPOSTImport_spec.js b/app/client/cypress/integration/Smoke_TestSuite/ApiPaneTests/API_CurlPOSTImport_spec.js
index 2bb8ef2cb1..6c6f9189b1 100644
--- a/app/client/cypress/integration/Smoke_TestSuite/ApiPaneTests/API_CurlPOSTImport_spec.js
+++ b/app/client/cypress/integration/Smoke_TestSuite/ApiPaneTests/API_CurlPOSTImport_spec.js
@@ -1,5 +1,5 @@
const ApiEditor = require("../../../locators/ApiEditor.json");
-const apiwidget = require("../../../locators/apiWidgetsLocator.json");
+const apiwidget = require("../../../locators/apiWidgetslocator.json");
describe("Test curl import flow", function() {
it("Test curl import flow for POST action", function() {
diff --git a/app/client/src/selectors/propertyPaneSelectors.tsx b/app/client/src/selectors/propertyPaneSelectors.tsx
index bb47cb022f..05350d5e4f 100644
--- a/app/client/src/selectors/propertyPaneSelectors.tsx
+++ b/app/client/src/selectors/propertyPaneSelectors.tsx
@@ -47,14 +47,18 @@ export const getWidgetPropsForPropertyPane = createSelector(
const evaluatedWidget = _.find(evaluatedTree, {
widgetId: widget.widgetId,
}) as DataTreeWidget;
- const widgetProperties = {
- ...widget,
- evaluatedValues: { ...evaluatedWidget.evaluatedValues },
- };
- if (evaluatedWidget.invalidProps) {
- const { invalidProps, validationMessages } = evaluatedWidget;
- widgetProperties.invalidProps = invalidProps;
- widgetProperties.validationMessages = validationMessages;
+ const widgetProperties = { ...widget };
+ if (evaluatedWidget) {
+ if (evaluatedWidget.evaluatedValues) {
+ widgetProperties.evaluatedValues = {
+ ...evaluatedWidget.evaluatedValues,
+ };
+ }
+ if (evaluatedWidget.invalidProps) {
+ const { invalidProps, validationMessages } = evaluatedWidget;
+ widgetProperties.invalidProps = invalidProps;
+ widgetProperties.validationMessages = validationMessages;
+ }
}
return widgetProperties;
},
diff --git a/app/server/appsmith-plugins/mysqlPlugin/plugin.properties b/app/server/appsmith-plugins/mysqlPlugin/plugin.properties
new file mode 100644
index 0000000000..812b11576c
--- /dev/null
+++ b/app/server/appsmith-plugins/mysqlPlugin/plugin.properties
@@ -0,0 +1,5 @@
+plugin.id=mysql-plugin
+plugin.class=com.external.plugins.MysqlPlugin
+plugin.version=1.0-SNAPSHOT
+plugin.provider=tech@appsmith.com
+plugin.dependencies=
\ No newline at end of file
diff --git a/app/server/appsmith-plugins/mysqlPlugin/pom.xml b/app/server/appsmith-plugins/mysqlPlugin/pom.xml
new file mode 100644
index 0000000000..a3c1ddb834
--- /dev/null
+++ b/app/server/appsmith-plugins/mysqlPlugin/pom.xml
@@ -0,0 +1,121 @@
+
+
+
+ 4.0.0
+
+ com.external.plugins
+ mysqlPlugin
+ 1.0-SNAPSHOT
+
+ mysqlPlugin
+
+
+ UTF-8
+ 11
+ ${java.version}
+ ${java.version}
+ mysql-plugin
+ com.external.plugins.MySqlPlugin
+ 1.0-SNAPSHOT
+ tech@appsmith.com
+
+
+
+
+
+
+ org.pf4j
+ pf4j-spring
+ 0.6.0
+ provided
+
+
+
+ com.appsmith
+ interfaces
+ 1.0-SNAPSHOT
+ provided
+
+
+
+ org.projectlombok
+ lombok
+ 1.18.8
+ provided
+
+
+
+ mysql
+ mysql-connector-java
+ 8.0.20
+ runtime
+
+
+
+
+ junit
+ junit
+ 4.11
+ test
+
+
+
+ org.testcontainers
+ testcontainers
+ 1.13.0
+ test
+
+
+ org.testcontainers
+ mysql
+ 1.14.1
+ test
+
+
+
+ io.projectreactor
+ reactor-test
+ 3.2.11.RELEASE
+ test
+
+
+ org.mockito
+ mockito-core
+ 3.1.0
+ test
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+ 3.2.4
+
+ false
+
+
+
+ ${plugin.id}
+ ${plugin.class}
+ ${plugin.version}
+ ${plugin.provider}
+
+
+
+
+
+
+ package
+
+ shade
+
+
+
+
+
+
+
+
diff --git a/app/server/appsmith-plugins/mysqlPlugin/src/main/java/com/external/plugins/MySqlPlugin.java b/app/server/appsmith-plugins/mysqlPlugin/src/main/java/com/external/plugins/MySqlPlugin.java
new file mode 100644
index 0000000000..8194b6cad8
--- /dev/null
+++ b/app/server/appsmith-plugins/mysqlPlugin/src/main/java/com/external/plugins/MySqlPlugin.java
@@ -0,0 +1,219 @@
+package com.external.plugins;
+
+import com.appsmith.external.models.*;
+import com.appsmith.external.pluginExceptions.AppsmithPluginError;
+import com.appsmith.external.pluginExceptions.AppsmithPluginException;
+import com.appsmith.external.plugins.BasePlugin;
+import com.appsmith.external.plugins.PluginExecutor;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.ObjectUtils;
+import org.pf4j.Extension;
+import org.pf4j.PluginWrapper;
+import org.springframework.util.CollectionUtils;
+import org.springframework.util.StringUtils;
+import reactor.core.publisher.Mono;
+
+import java.sql.*;
+import java.sql.Connection;
+import java.util.*;
+
+import static com.appsmith.external.models.Connection.Mode.READ_ONLY;
+
+public class MySqlPlugin extends BasePlugin {
+
+ static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";
+
+ private static final String USER = "user";
+ private static final String PASSWORD = "password";
+
+ public MySqlPlugin(PluginWrapper wrapper) {
+ super(wrapper);
+ }
+
+ @Slf4j
+ @Extension
+ public static class MySqlPluginExecutor implements PluginExecutor {
+
+ private Mono