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