diff --git a/designer-form/build.form.gradle b/designer-form/build.form.gradle
index c489d5ca2..42b16b020 100644
--- a/designer-form/build.form.gradle
+++ b/designer-form/build.form.gradle
@@ -41,6 +41,7 @@ ant{
mkdir(dir:"src/main/java")
move(todir:"src/main/java"){
fileset(dir:"../designer-realize/src",includes:"com/**")
+ fileset(dir:"../designer-sdk/src",includes:"com/**")
fileset(dir:"src",includes:"com/**")
}
}
diff --git a/designer-sdk/.gitignore b/designer-sdk/.gitignore
new file mode 100644
index 000000000..85184fbc3
--- /dev/null
+++ b/designer-sdk/.gitignore
@@ -0,0 +1,5 @@
+*.iml
+.idea/
+.DS_Store
+.classpath
+.project
\ No newline at end of file
diff --git a/designer-sdk/pom.xml b/designer-sdk/pom.xml
new file mode 100644
index 000000000..9702536e2
--- /dev/null
+++ b/designer-sdk/pom.xml
@@ -0,0 +1,26 @@
+
+
+ 4.0.0
+
+ com.fr.report
+ design
+ 10.0
+
+ com.fr.report
+ designer-sdk
+ 10.0
+
+
+ com.fr.report
+ designer-realize
+ 10.0
+
+
+ com.fr.report
+ sdk-base
+ 10.0
+
+
+
\ No newline at end of file
diff --git a/designer-sdk/src/main/java/com/fr/sdk/designer/FineDesignUtils.java b/designer-sdk/src/main/java/com/fr/sdk/designer/FineDesignUtils.java
new file mode 100644
index 000000000..ea60edf74
--- /dev/null
+++ b/designer-sdk/src/main/java/com/fr/sdk/designer/FineDesignUtils.java
@@ -0,0 +1,80 @@
+package com.fr.sdk.designer;
+
+import com.fr.config.activator.ConfigurationActivator;
+import com.fr.design.env.DesignerWorkspaceGenerator;
+import com.fr.design.env.RemoteDesignerWorkspaceInfo;
+import com.fr.log.FineLoggerFactory;
+import com.fr.module.Activator;
+import com.fr.module.Module;
+import com.fr.module.tool.ActivatorToolBox;
+import com.fr.report.ReportActivator;
+import com.fr.report.RestrictionActivator;
+import com.fr.report.module.ReportBaseActivator;
+import com.fr.scheduler.SchedulerActivator;
+import com.fr.sdk.server.shell.ModuleShell;
+import com.fr.serialization.SerializationActivator;
+import com.fr.stable.StringUtils;
+import com.fr.startup.WorkspaceRegister;
+import com.fr.store.StateServerActivator;
+import com.fr.workspace.WorkContext;
+import com.fr.workspace.connect.WorkspaceConnectionInfo;
+import com.fr.workspace.engine.WorkspaceActivator;
+import com.fr.workspace.server.ServerWorkspaceRegister;
+
+/**
+ * 设计器SDK模块工具类,用来放一些设计器相关插件开发过程中常用的工具函数
+ */
+public class FineDesignUtils {
+
+ /**
+ * 创建一个连接远程服务器的模块
+ * @param remoteUrl 远程服务器地址
+ * @param username 用户名
+ * @param password 密码
+ * @return 模块代理对象 使用ModuleShell的start和stop控制模块启停
+ */
+ public static ModuleShell createRemoteServerModule(String remoteUrl, String username, String password) {
+ return createRemoteServerModule(remoteUrl, username, password, StringUtils.EMPTY, StringUtils.EMPTY);
+ }
+
+ /**
+ * 创建一个连接远程服务器的模块
+ * @param remoteUrl 远程服务器地址
+ * @param username 用户名
+ * @param password 密码
+ * @param certPath https证书路径
+ * @param certSecretKey 证书秘钥
+ * @return 模块代理对象 使用ModuleShell的start和stop控制模块启停
+ */
+ public static ModuleShell createRemoteServerModule(final String remoteUrl, final String username, final String password, final String certPath, final String certSecretKey) {
+ Module module = ActivatorToolBox.simpleLink(
+ new WorkspaceActivator(),
+ new SerializationActivator(),
+ new Activator() {
+ @Override
+ public void start() {
+ WorkspaceConnectionInfo connectionInfo = new WorkspaceConnectionInfo(remoteUrl, username, password, certPath, certSecretKey);
+ try {
+ WorkContext.switchTo(DesignerWorkspaceGenerator.generate(RemoteDesignerWorkspaceInfo.create(connectionInfo)));
+ } catch (Exception e) {
+ FineLoggerFactory.getLogger().error(e.getMessage(),e);
+ }
+ }
+
+ @Override
+ public void stop() {
+
+ }
+ },
+ new ConfigurationActivator(),
+ new StateServerActivator(),
+ new SchedulerActivator(),
+ new ReportBaseActivator(),
+ new RestrictionActivator(),
+ new ReportActivator(),
+ new WorkspaceRegister(),
+ new ServerWorkspaceRegister()
+ );
+ return new ModuleShell(module);
+ }
+}
\ No newline at end of file
diff --git a/designer-sdk/src/test/java/com/fr/sdk/FineDesignUtilsTest.java b/designer-sdk/src/test/java/com/fr/sdk/FineDesignUtilsTest.java
new file mode 100644
index 000000000..ec210321b
--- /dev/null
+++ b/designer-sdk/src/test/java/com/fr/sdk/FineDesignUtilsTest.java
@@ -0,0 +1,7 @@
+package com.fr.sdk;
+
+import junit.framework.TestCase;
+
+public class FineDesignUtilsTest extends TestCase {
+
+}
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 408bc7be8..407f1fd17 100644
--- a/pom.xml
+++ b/pom.xml
@@ -16,6 +16,7 @@
designer-chart
designer-form
designer-realize
+ designer-sdk
com.fr.report
design