From a35a6071c1229dff49ec8c88a6fbacd22c641c91 Mon Sep 17 00:00:00 2001 From: Fangjie Hu Date: Thu, 8 Sep 2016 15:54:44 +0800 Subject: [PATCH 01/20] update --- .../design/extra/plugindependence/DownLoadDependenceUI.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/designer_base/src/com/fr/design/extra/plugindependence/DownLoadDependenceUI.java b/designer_base/src/com/fr/design/extra/plugindependence/DownLoadDependenceUI.java index 6c9555649d..c81999db56 100644 --- a/designer_base/src/com/fr/design/extra/plugindependence/DownLoadDependenceUI.java +++ b/designer_base/src/com/fr/design/extra/plugindependence/DownLoadDependenceUI.java @@ -1,5 +1,6 @@ package com.fr.design.extra.plugindependence; +import com.fr.base.FRContext; import com.fr.design.extra.PluginConstants; import com.fr.design.extra.PluginHelper; import com.fr.design.mainframe.DesignerContext; @@ -198,7 +199,8 @@ public class DownLoadDependenceUI implements ActionListener { } //安装已经下载好的文件 - private void installPluginDependenceFile(String filePath) { + //不支持切换远程目录安装 + private void installPluginDependenceFile(String filePath) throws Exception { IOUtils.unzip(new File(filePath), dependenceDir); } From b795cce95f9bfba64fe6af4d626f36b28a5f4677 Mon Sep 17 00:00:00 2001 From: Fangjie Hu Date: Thu, 8 Sep 2016 16:07:57 +0800 Subject: [PATCH 02/20] update --- .../fr/design/extra/plugindependence/DownLoadDependenceUI.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/designer_base/src/com/fr/design/extra/plugindependence/DownLoadDependenceUI.java b/designer_base/src/com/fr/design/extra/plugindependence/DownLoadDependenceUI.java index c81999db56..c96872725c 100644 --- a/designer_base/src/com/fr/design/extra/plugindependence/DownLoadDependenceUI.java +++ b/designer_base/src/com/fr/design/extra/plugindependence/DownLoadDependenceUI.java @@ -1,6 +1,5 @@ package com.fr.design.extra.plugindependence; -import com.fr.base.FRContext; import com.fr.design.extra.PluginConstants; import com.fr.design.extra.PluginHelper; import com.fr.design.mainframe.DesignerContext; @@ -199,7 +198,6 @@ public class DownLoadDependenceUI implements ActionListener { } //安装已经下载好的文件 - //不支持切换远程目录安装 private void installPluginDependenceFile(String filePath) throws Exception { IOUtils.unzip(new File(filePath), dependenceDir); } From d23e620ac9143fb6aad12cc7fa9eed7ca037a9c2 Mon Sep 17 00:00:00 2001 From: Fangjie Hu Date: Thu, 8 Sep 2016 21:28:00 +0800 Subject: [PATCH 03/20] update --- .../src/com/fr/design/extra/PluginHelper.java | 2 +- .../DownLoadDependenceUI.java | 21 +++++++++++++------ .../PluginDependenceUtils.java | 6 ++++-- 3 files changed, 20 insertions(+), 9 deletions(-) diff --git a/designer_base/src/com/fr/design/extra/PluginHelper.java b/designer_base/src/com/fr/design/extra/PluginHelper.java index c5785d8888..bff696fed1 100644 --- a/designer_base/src/com/fr/design/extra/PluginHelper.java +++ b/designer_base/src/com/fr/design/extra/PluginHelper.java @@ -134,7 +134,7 @@ public class PluginHelper { for (int i = 0;list != null && i < list.size(); i++){ PluginDependenceUnit dependenceUnit = list.get(i); if (!dependenceUnit.checkFileEnv()){ - PluginDependenceUtils.installDependenceOnline(currentID, dependenceUnit.getDependenceID(), dependenceUnit.getFileDir()); + PluginDependenceUtils.installDependenceOnline(currentID, dependenceUnit.getDependenceID(),dependenceUnit.getDependenceType(), dependenceUnit.getDependenceDir()); } } } diff --git a/designer_base/src/com/fr/design/extra/plugindependence/DownLoadDependenceUI.java b/designer_base/src/com/fr/design/extra/plugindependence/DownLoadDependenceUI.java index c96872725c..7d0aca64ac 100644 --- a/designer_base/src/com/fr/design/extra/plugindependence/DownLoadDependenceUI.java +++ b/designer_base/src/com/fr/design/extra/plugindependence/DownLoadDependenceUI.java @@ -1,5 +1,7 @@ package com.fr.design.extra.plugindependence; +import com.fr.base.Env; +import com.fr.base.FRContext; import com.fr.design.extra.PluginConstants; import com.fr.design.extra.PluginHelper; import com.fr.design.mainframe.DesignerContext; @@ -7,6 +9,7 @@ import com.fr.general.IOUtils; import com.fr.general.Inter; import com.fr.general.SiteCenter; import com.fr.general.http.HttpClient; +import com.fr.plugin.dependence.PluginDependenceType; import com.fr.stable.StableUtils; import com.fr.stable.StringUtils; @@ -45,6 +48,7 @@ public class DownLoadDependenceUI implements ActionListener { private String currentID; private String dependenceID; private String dependenceDir; + private PluginDependenceType dependenceType; //安装结果 private boolean result = false; //链接服务器的客户端 @@ -54,13 +58,13 @@ public class DownLoadDependenceUI implements ActionListener { //文件总长度 private int totalSize = 0; - public DownLoadDependenceUI(String ID, String dir) { + public DownLoadDependenceUI() { } - - public DownLoadDependenceUI(String currentID, String dependenceID, String dependenceDir) { + public DownLoadDependenceUI(String currentID, String dependenceID, PluginDependenceType dependenceType, String dependenceDir) { this.currentID = currentID; this.dependenceID = dependenceID; this.dependenceDir = dependenceDir; + this.dependenceType = dependenceType; this.totalSize = getFileLength(); init(); } @@ -197,9 +201,14 @@ public class DownLoadDependenceUI implements ActionListener { } } - //安装已经下载好的文件 - private void installPluginDependenceFile(String filePath) throws Exception { - IOUtils.unzip(new File(filePath), dependenceDir); + //安装已经下载好的文件,如果是服务文件,则需要复制一份到安装目录下, + //以便切换远程时,使用本地的服务 + //如果是服务器环境,则只会安装一份 + private void installPluginDependenceFile(String filePath){ + IOUtils.unzip(new File(filePath), FRContext.getCurrentEnv().getPath() + dependenceDir); + if (dependenceType == PluginDependenceType.SERVICE) { + IOUtils.unzip(new File(filePath), StableUtils.getInstallHome() + dependenceDir); + } } public void actionPerformed(ActionEvent e) { diff --git a/designer_base/src/com/fr/design/extra/plugindependence/PluginDependenceUtils.java b/designer_base/src/com/fr/design/extra/plugindependence/PluginDependenceUtils.java index bb930f111b..9b4d1224d7 100644 --- a/designer_base/src/com/fr/design/extra/plugindependence/PluginDependenceUtils.java +++ b/designer_base/src/com/fr/design/extra/plugindependence/PluginDependenceUtils.java @@ -1,13 +1,15 @@ package com.fr.design.extra.plugindependence; +import com.fr.plugin.dependence.PluginDependenceType; + /** * Created by hufan on 2016/8/31. */ public class PluginDependenceUtils { - public static boolean installDependenceOnline(String currentID, String dependenceID, String dependenceDir) { - DownLoadDependenceUI ui = new DownLoadDependenceUI(currentID, dependenceID, dependenceDir); + public static boolean installDependenceOnline(String currentID, String dependenceID, PluginDependenceType dependenceType, String dependenceDir) { + DownLoadDependenceUI ui = new DownLoadDependenceUI(currentID, dependenceID, dependenceType, dependenceDir); return ui.installOnline(); } } From bac818b56649545c5bf8d1bc129e4a0a3063b445 Mon Sep 17 00:00:00 2001 From: Fangjie Hu Date: Fri, 9 Sep 2016 20:17:39 +0800 Subject: [PATCH 04/20] =?UTF-8?q?=E8=BF=9C=E7=A8=8B=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DownLoadDependenceUI.java | 3 --- .../src/com/fr/design/utils/DesignUtils.java | 2 +- designer_base/src/com/fr/env/RemoteEnv.java | 20 +++++++++++++++++++ 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/designer_base/src/com/fr/design/extra/plugindependence/DownLoadDependenceUI.java b/designer_base/src/com/fr/design/extra/plugindependence/DownLoadDependenceUI.java index 7d0aca64ac..aff5f4e60e 100644 --- a/designer_base/src/com/fr/design/extra/plugindependence/DownLoadDependenceUI.java +++ b/designer_base/src/com/fr/design/extra/plugindependence/DownLoadDependenceUI.java @@ -206,9 +206,6 @@ public class DownLoadDependenceUI implements ActionListener { //如果是服务器环境,则只会安装一份 private void installPluginDependenceFile(String filePath){ IOUtils.unzip(new File(filePath), FRContext.getCurrentEnv().getPath() + dependenceDir); - if (dependenceType == PluginDependenceType.SERVICE) { - IOUtils.unzip(new File(filePath), StableUtils.getInstallHome() + dependenceDir); - } } public void actionPerformed(ActionEvent e) { diff --git a/designer_base/src/com/fr/design/utils/DesignUtils.java b/designer_base/src/com/fr/design/utils/DesignUtils.java index d6a2ab8a58..1023b3ce37 100644 --- a/designer_base/src/com/fr/design/utils/DesignUtils.java +++ b/designer_base/src/com/fr/design/utils/DesignUtils.java @@ -52,7 +52,7 @@ public class DesignUtils { public static boolean isStarted() { try { new Socket("localhost", port); - return true; + /*return true;*/ } catch (Exception exp) { } diff --git a/designer_base/src/com/fr/env/RemoteEnv.java b/designer_base/src/com/fr/env/RemoteEnv.java index a779026eab..b736517b82 100644 --- a/designer_base/src/com/fr/env/RemoteEnv.java +++ b/designer_base/src/com/fr/env/RemoteEnv.java @@ -31,6 +31,7 @@ import com.fr.plugin.Plugin; import com.fr.plugin.PluginLicense; import com.fr.plugin.PluginLicenseManager; import com.fr.plugin.PluginLoader; +import com.fr.plugin.dependence.PluginServiceCreator; import com.fr.stable.*; import com.fr.stable.file.XMLFileManagerProvider; import com.fr.stable.project.ProjectConstants; @@ -2079,7 +2080,26 @@ public class RemoteEnv implements Env { } } + @Override + public String pluginServiceAction(PluginServiceCreator service, String req) throws Exception { + return service.remoteServiceAction(req); + } + @Override public void checkAndRegisterLic(FileNode node, Plugin plugin) throws Exception { + + } + + /** + * 提供一个可以再插件自定义请求数据的方法 + * 返回的数据可自行处理 + * @param para + * @return + * @throws Exception + */ + public InputStream getDataFormRemote(HashMap para) throws Exception { + HttpClient client = createHttpMethod(para); //jim :加上user,远程设计点击预览时传递用户角色信息 + return execute4InputStream(client); } + } \ No newline at end of file From a86323108b46c9b00cc0042beb55af5c8e1e9acd Mon Sep 17 00:00:00 2001 From: Fangjie Hu Date: Fri, 9 Sep 2016 20:27:48 +0800 Subject: [PATCH 05/20] update --- designer_base/src/com/fr/design/extra/PluginHelper.java | 2 +- .../design/extra/plugindependence/DownLoadDependenceUI.java | 5 +---- .../design/extra/plugindependence/PluginDependenceUtils.java | 4 ++-- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/designer_base/src/com/fr/design/extra/PluginHelper.java b/designer_base/src/com/fr/design/extra/PluginHelper.java index bff696fed1..82fe55999b 100644 --- a/designer_base/src/com/fr/design/extra/PluginHelper.java +++ b/designer_base/src/com/fr/design/extra/PluginHelper.java @@ -134,7 +134,7 @@ public class PluginHelper { for (int i = 0;list != null && i < list.size(); i++){ PluginDependenceUnit dependenceUnit = list.get(i); if (!dependenceUnit.checkFileEnv()){ - PluginDependenceUtils.installDependenceOnline(currentID, dependenceUnit.getDependenceID(),dependenceUnit.getDependenceType(), dependenceUnit.getDependenceDir()); + PluginDependenceUtils.installDependenceOnline(currentID, dependenceUnit.getDependenceID(), dependenceUnit.getDependenceDir()); } } } diff --git a/designer_base/src/com/fr/design/extra/plugindependence/DownLoadDependenceUI.java b/designer_base/src/com/fr/design/extra/plugindependence/DownLoadDependenceUI.java index aff5f4e60e..3173c84950 100644 --- a/designer_base/src/com/fr/design/extra/plugindependence/DownLoadDependenceUI.java +++ b/designer_base/src/com/fr/design/extra/plugindependence/DownLoadDependenceUI.java @@ -1,6 +1,5 @@ package com.fr.design.extra.plugindependence; -import com.fr.base.Env; import com.fr.base.FRContext; import com.fr.design.extra.PluginConstants; import com.fr.design.extra.PluginHelper; @@ -48,7 +47,6 @@ public class DownLoadDependenceUI implements ActionListener { private String currentID; private String dependenceID; private String dependenceDir; - private PluginDependenceType dependenceType; //安装结果 private boolean result = false; //链接服务器的客户端 @@ -60,11 +58,10 @@ public class DownLoadDependenceUI implements ActionListener { public DownLoadDependenceUI() { } - public DownLoadDependenceUI(String currentID, String dependenceID, PluginDependenceType dependenceType, String dependenceDir) { + public DownLoadDependenceUI(String currentID, String dependenceID, String dependenceDir) { this.currentID = currentID; this.dependenceID = dependenceID; this.dependenceDir = dependenceDir; - this.dependenceType = dependenceType; this.totalSize = getFileLength(); init(); } diff --git a/designer_base/src/com/fr/design/extra/plugindependence/PluginDependenceUtils.java b/designer_base/src/com/fr/design/extra/plugindependence/PluginDependenceUtils.java index 9b4d1224d7..0f1eaf1650 100644 --- a/designer_base/src/com/fr/design/extra/plugindependence/PluginDependenceUtils.java +++ b/designer_base/src/com/fr/design/extra/plugindependence/PluginDependenceUtils.java @@ -8,8 +8,8 @@ import com.fr.plugin.dependence.PluginDependenceType; public class PluginDependenceUtils { - public static boolean installDependenceOnline(String currentID, String dependenceID, PluginDependenceType dependenceType, String dependenceDir) { - DownLoadDependenceUI ui = new DownLoadDependenceUI(currentID, dependenceID, dependenceType, dependenceDir); + public static boolean installDependenceOnline(String currentID, String dependenceID, String dependenceDir) { + DownLoadDependenceUI ui = new DownLoadDependenceUI(currentID, dependenceID, dependenceDir); return ui.installOnline(); } } From 720fde404c8ec9f6d52eef1716ab05105d679f87 Mon Sep 17 00:00:00 2001 From: Fangjie Hu Date: Fri, 9 Sep 2016 20:28:19 +0800 Subject: [PATCH 06/20] update --- .../fr/design/extra/plugindependence/DownLoadDependenceUI.java | 1 - 1 file changed, 1 deletion(-) diff --git a/designer_base/src/com/fr/design/extra/plugindependence/DownLoadDependenceUI.java b/designer_base/src/com/fr/design/extra/plugindependence/DownLoadDependenceUI.java index 3173c84950..a09db3f0e2 100644 --- a/designer_base/src/com/fr/design/extra/plugindependence/DownLoadDependenceUI.java +++ b/designer_base/src/com/fr/design/extra/plugindependence/DownLoadDependenceUI.java @@ -8,7 +8,6 @@ import com.fr.general.IOUtils; import com.fr.general.Inter; import com.fr.general.SiteCenter; import com.fr.general.http.HttpClient; -import com.fr.plugin.dependence.PluginDependenceType; import com.fr.stable.StableUtils; import com.fr.stable.StringUtils; From 57930b0100a55eb458f3085adedd1828ac82e91a Mon Sep 17 00:00:00 2001 From: Fangjie Hu Date: Fri, 9 Sep 2016 20:28:52 +0800 Subject: [PATCH 07/20] update --- .../fr/design/extra/plugindependence/PluginDependenceUtils.java | 1 - 1 file changed, 1 deletion(-) diff --git a/designer_base/src/com/fr/design/extra/plugindependence/PluginDependenceUtils.java b/designer_base/src/com/fr/design/extra/plugindependence/PluginDependenceUtils.java index 0f1eaf1650..96784f3e32 100644 --- a/designer_base/src/com/fr/design/extra/plugindependence/PluginDependenceUtils.java +++ b/designer_base/src/com/fr/design/extra/plugindependence/PluginDependenceUtils.java @@ -1,6 +1,5 @@ package com.fr.design.extra.plugindependence; -import com.fr.plugin.dependence.PluginDependenceType; /** * Created by hufan on 2016/8/31. From 5435099b55beac706a69d6883bfdcd8c97c629c3 Mon Sep 17 00:00:00 2001 From: Fangjie Hu Date: Fri, 9 Sep 2016 20:29:36 +0800 Subject: [PATCH 08/20] update --- designer_base/src/com/fr/design/utils/DesignUtils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer_base/src/com/fr/design/utils/DesignUtils.java b/designer_base/src/com/fr/design/utils/DesignUtils.java index 1023b3ce37..d6a2ab8a58 100644 --- a/designer_base/src/com/fr/design/utils/DesignUtils.java +++ b/designer_base/src/com/fr/design/utils/DesignUtils.java @@ -52,7 +52,7 @@ public class DesignUtils { public static boolean isStarted() { try { new Socket("localhost", port); - /*return true;*/ + return true; } catch (Exception exp) { } From 22e74532d622390818b3424f01e219212afce7b5 Mon Sep 17 00:00:00 2001 From: Fangjie Hu Date: Fri, 9 Sep 2016 21:15:27 +0800 Subject: [PATCH 09/20] update --- .../com/fr/dependservice/PluginService.java | 43 +++++++++++++++++++ .../fr/dependservice/PluginServiceUtils.java | 18 ++++++++ 2 files changed, 61 insertions(+) create mode 100644 designer_base/src/com/fr/dependservice/PluginService.java create mode 100644 designer_base/src/com/fr/dependservice/PluginServiceUtils.java diff --git a/designer_base/src/com/fr/dependservice/PluginService.java b/designer_base/src/com/fr/dependservice/PluginService.java new file mode 100644 index 0000000000..c76b22b508 --- /dev/null +++ b/designer_base/src/com/fr/dependservice/PluginService.java @@ -0,0 +1,43 @@ +package com.fr.dependservice; + +import com.fr.base.FRContext; +import com.fr.general.FRLogger; +import com.fr.plugin.dependence.PluginServiceCreator; + +import java.util.HashMap; + +/** + * Created by hufan on 2016/9/9. + */ +public abstract class PluginService implements PluginServiceCreator { + @Override + public String remoteServiceAction(String req) throws Exception { + HashMap para = new HashMap(); + para.put("op", "fr_remote_design"); + para.put("cmd", "design_get_plugin_service_data"); + para.put("serviceID", getServiceID()); + para.put("req", req); + return PluginServiceUtils.getDataFormRemote(para); + } + /** + * 服务ID + * @return + */ + protected abstract String getServiceID(); + + /** + * 获取数据 + * @param req + * @return + */ + @Override + public String fetchServiceData(String req) { + try { + //设置请求数据,这个地方可能涉及到多线程同时到达,拿错请求和回应的问题 + return FRContext.getCurrentEnv().pluginServiceAction(this, req); + //返回 + } catch (Exception e) { + return null; + } + } +} diff --git a/designer_base/src/com/fr/dependservice/PluginServiceUtils.java b/designer_base/src/com/fr/dependservice/PluginServiceUtils.java new file mode 100644 index 0000000000..b5304aa725 --- /dev/null +++ b/designer_base/src/com/fr/dependservice/PluginServiceUtils.java @@ -0,0 +1,18 @@ +package com.fr.dependservice; + +import com.fr.base.FRContext; +import com.fr.env.RemoteEnv; +import com.fr.general.IOUtils; + +import java.io.InputStream; +import java.util.HashMap; + +/** + * Created by hufan on 2016/9/9. + */ +public class PluginServiceUtils { + public static String getDataFormRemote(HashMap para) throws Exception { + InputStream inputStream = ((RemoteEnv)FRContext.getCurrentEnv()).getDataFormRemote(para); + return IOUtils.inputStream2String(inputStream); + } +} From dbc3a0fbf7b51e4ecab9518170d60cf90e4eb1b7 Mon Sep 17 00:00:00 2001 From: Fangjie Hu Date: Fri, 9 Sep 2016 21:30:16 +0800 Subject: [PATCH 10/20] update --- .../src/com/fr/dependservice/PluginService.java | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/designer_base/src/com/fr/dependservice/PluginService.java b/designer_base/src/com/fr/dependservice/PluginService.java index c76b22b508..0ba4895cb0 100644 --- a/designer_base/src/com/fr/dependservice/PluginService.java +++ b/designer_base/src/com/fr/dependservice/PluginService.java @@ -31,13 +31,7 @@ public abstract class PluginService implements PluginServiceCreator { * @return */ @Override - public String fetchServiceData(String req) { - try { - //设置请求数据,这个地方可能涉及到多线程同时到达,拿错请求和回应的问题 - return FRContext.getCurrentEnv().pluginServiceAction(this, req); - //返回 - } catch (Exception e) { - return null; - } + public String fetchServiceData(String req) throws Exception { + return FRContext.getCurrentEnv().pluginServiceAction(this, req); } } From f4b3b96e656200037c1e904a8b8f128f0e741f6d Mon Sep 17 00:00:00 2001 From: Fangjie Hu Date: Sat, 10 Sep 2016 00:23:51 +0800 Subject: [PATCH 11/20] =?UTF-8?q?=E8=BF=9C=E7=A8=8B=E4=B8=8D=E5=90=AF?= =?UTF-8?q?=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer_base/src/com/fr/env/RemoteEnv.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/designer_base/src/com/fr/env/RemoteEnv.java b/designer_base/src/com/fr/env/RemoteEnv.java index b736517b82..8a51d36283 100644 --- a/designer_base/src/com/fr/env/RemoteEnv.java +++ b/designer_base/src/com/fr/env/RemoteEnv.java @@ -2085,6 +2085,11 @@ public class RemoteEnv implements Env { return service.remoteServiceAction(req); } + @Override + public void pluginServiceStart(PluginServiceCreator service) throws Exception { + + } + @Override public void checkAndRegisterLic(FileNode node, Plugin plugin) throws Exception { From f7061429045e90fe04b1b6099ed372e3c214c2ce Mon Sep 17 00:00:00 2001 From: Fangjie Hu Date: Sat, 10 Sep 2016 01:14:23 +0800 Subject: [PATCH 12/20] update --- designer_base/src/com/fr/design/utils/DesignUtils.java | 2 +- designer_base/src/com/fr/env/RemoteEnv.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/designer_base/src/com/fr/design/utils/DesignUtils.java b/designer_base/src/com/fr/design/utils/DesignUtils.java index d6a2ab8a58..1023b3ce37 100644 --- a/designer_base/src/com/fr/design/utils/DesignUtils.java +++ b/designer_base/src/com/fr/design/utils/DesignUtils.java @@ -52,7 +52,7 @@ public class DesignUtils { public static boolean isStarted() { try { new Socket("localhost", port); - return true; + /*return true;*/ } catch (Exception exp) { } diff --git a/designer_base/src/com/fr/env/RemoteEnv.java b/designer_base/src/com/fr/env/RemoteEnv.java index 8a51d36283..059fda3b85 100644 --- a/designer_base/src/com/fr/env/RemoteEnv.java +++ b/designer_base/src/com/fr/env/RemoteEnv.java @@ -2086,8 +2086,8 @@ public class RemoteEnv implements Env { } @Override - public void pluginServiceStart(PluginServiceCreator service) throws Exception { - + public boolean pluginServiceStart(PluginServiceCreator service){ + return false; } @Override From 74ec8c4f360e88769b71c82f22111d140f7aefd5 Mon Sep 17 00:00:00 2001 From: Fangjie Hu Date: Sat, 10 Sep 2016 01:14:54 +0800 Subject: [PATCH 13/20] update --- designer_base/src/com/fr/design/utils/DesignUtils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer_base/src/com/fr/design/utils/DesignUtils.java b/designer_base/src/com/fr/design/utils/DesignUtils.java index 1023b3ce37..d6a2ab8a58 100644 --- a/designer_base/src/com/fr/design/utils/DesignUtils.java +++ b/designer_base/src/com/fr/design/utils/DesignUtils.java @@ -52,7 +52,7 @@ public class DesignUtils { public static boolean isStarted() { try { new Socket("localhost", port); - /*return true;*/ + return true; } catch (Exception exp) { } From 55daae9c72a780db36135ec2f28de0152548afcc Mon Sep 17 00:00:00 2001 From: Fangjie Hu Date: Sat, 10 Sep 2016 01:29:54 +0800 Subject: [PATCH 14/20] update --- designer_base/src/com/fr/env/RemoteEnv.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/designer_base/src/com/fr/env/RemoteEnv.java b/designer_base/src/com/fr/env/RemoteEnv.java index 059fda3b85..927743012a 100644 --- a/designer_base/src/com/fr/env/RemoteEnv.java +++ b/designer_base/src/com/fr/env/RemoteEnv.java @@ -2085,9 +2085,12 @@ public class RemoteEnv implements Env { return service.remoteServiceAction(req); } + /** + * 远程不启动,使用虚拟服务 + * @param service + */ @Override - public boolean pluginServiceStart(PluginServiceCreator service){ - return false; + public void pluginServiceStart(PluginServiceCreator service){ } @Override From e1bbeb8a6b3be47151f4528108a1112c4a210e8b Mon Sep 17 00:00:00 2001 From: Fangjie Hu Date: Sat, 10 Sep 2016 18:28:32 +0800 Subject: [PATCH 15/20] =?UTF-8?q?=E6=89=80=E6=9C=89=E4=BE=9D=E8=B5=96?= =?UTF-8?q?=E4=B8=80=E8=B5=B7=E4=B8=8B=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/extra/PluginHelper.java | 16 +- .../DownLoadDependenceUI.java | 146 +++++++++++------- .../PluginDependenceUtils.java | 11 +- 3 files changed, 108 insertions(+), 65 deletions(-) diff --git a/designer_base/src/com/fr/design/extra/PluginHelper.java b/designer_base/src/com/fr/design/extra/PluginHelper.java index 82fe55999b..eef4b02970 100644 --- a/designer_base/src/com/fr/design/extra/PluginHelper.java +++ b/designer_base/src/com/fr/design/extra/PluginHelper.java @@ -10,6 +10,7 @@ import com.fr.plugin.Plugin; import com.fr.plugin.PluginLoader; import com.fr.plugin.PluginManagerHelper; import com.fr.plugin.dependence.PluginDependence; +import com.fr.plugin.dependence.PluginDependenceException; import com.fr.plugin.dependence.PluginDependenceUnit; import com.fr.stable.ArrayUtils; import com.fr.stable.EncodeConstants; @@ -21,6 +22,7 @@ import javax.swing.*; import java.io.*; import java.net.HttpURLConnection; import java.net.URLDecoder; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.concurrent.ExecutionException; @@ -124,19 +126,29 @@ public class PluginHelper { } //将所有未配置好的资源文件依赖准备好 - private static void checkDependenceEnv(Plugin plugin) { + private static void checkDependenceEnv(Plugin plugin) throws PluginDependenceException { PluginDependence dependence = plugin.getDependence(); if (dependence == null){ return; } + + List needInstallDependence = new ArrayList(); + String currentID = dependence.getCurrentPluginID(); List list = dependence.getDependPlugins(); for (int i = 0;list != null && i < list.size(); i++){ PluginDependenceUnit dependenceUnit = list.get(i); if (!dependenceUnit.checkFileEnv()){ - PluginDependenceUtils.installDependenceOnline(currentID, dependenceUnit.getDependenceID(), dependenceUnit.getDependenceDir()); + needInstallDependence.add(dependenceUnit); } } + + if (needInstallDependence.isEmpty()){ + return; + } + + //安装插件依赖 + PluginDependenceUtils.installDependenceOnline(currentID, needInstallDependence); } /** diff --git a/designer_base/src/com/fr/design/extra/plugindependence/DownLoadDependenceUI.java b/designer_base/src/com/fr/design/extra/plugindependence/DownLoadDependenceUI.java index a09db3f0e2..4209857bcb 100644 --- a/designer_base/src/com/fr/design/extra/plugindependence/DownLoadDependenceUI.java +++ b/designer_base/src/com/fr/design/extra/plugindependence/DownLoadDependenceUI.java @@ -8,6 +8,8 @@ import com.fr.general.IOUtils; import com.fr.general.Inter; import com.fr.general.SiteCenter; import com.fr.general.http.HttpClient; +import com.fr.plugin.dependence.PluginDependenceException; +import com.fr.plugin.dependence.PluginDependenceUnit; import com.fr.stable.StableUtils; import com.fr.stable.StringUtils; @@ -22,7 +24,8 @@ import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.net.HttpURLConnection; - +import java.util.ArrayList; +import java.util.List; /** * Created by hufan on 2016/9/5. */ @@ -44,8 +47,7 @@ public class DownLoadDependenceUI implements ActionListener { //安装环境相关信息 private String currentID; - private String dependenceID; - private String dependenceDir; + private List list = null; //安装结果 private boolean result = false; //链接服务器的客户端 @@ -57,10 +59,9 @@ public class DownLoadDependenceUI implements ActionListener { public DownLoadDependenceUI() { } - public DownLoadDependenceUI(String currentID, String dependenceID, String dependenceDir) { + public DownLoadDependenceUI(String currentID, List list) { this.currentID = currentID; - this.dependenceID = dependenceID; - this.dependenceDir = dependenceDir; + this.list = list; this.totalSize = getFileLength(); init(); } @@ -89,7 +90,7 @@ public class DownLoadDependenceUI implements ActionListener { timer = new Timer(100, this); frame = new JDialog(DesignerContext.getDesignerFrame(), true); - frame.setTitle(Inter.getLocText("FR-Designer-Dependence_Install_Online") + dependenceID); + frame.setTitle(Inter.getLocText("FR-Designer-Dependence_Install_Online")); frame.setSize(LOAD_WIDTH, LOAD_HEIGHT); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); frame.setLocation(screenSize.width / 2 - LOAD_WIDTH / 2, screenSize.height / 2 - LOAD_HEIGHT / 2); @@ -112,17 +113,29 @@ public class DownLoadDependenceUI implements ActionListener { //是否可以连接服务器 private boolean connectToServer() { - httpClient = new HttpClient(SiteCenter.getInstance().acquireUrlByKind(dependenceID)); - return httpClient.getResponseCode() == HttpURLConnection.HTTP_OK; + for (int i = 0; i < list.size(); i++) { + PluginDependenceUnit dependenceUnit = list.get(i); + httpClient = new HttpClient(SiteCenter.getInstance().acquireUrlByKind(dependenceUnit.getDependenceID())); + if (httpClient.getResponseCode() != HttpURLConnection.HTTP_OK){ + return false; + } + } + return true; } //获取依赖文件大小 - private int getFileLength() { - HttpClient httpClient = new HttpClient(SiteCenter.getInstance().acquireUrlByKind(dependenceID)); - if (httpClient.getResponseCode() == HttpURLConnection.HTTP_OK) { - return httpClient.getContentLength(); + private int getFileLength(){ + int size = 0; + for (int i = 0; i < list.size(); i++) { + PluginDependenceUnit dependenceUnit = list.get(i); + HttpClient httpClient = new HttpClient(SiteCenter.getInstance().acquireUrlByKind(dependenceUnit.getDependenceID())); + if (httpClient.getResponseCode() == HttpURLConnection.HTTP_OK) { + size += httpClient.getContentLength(); + }else { + return -1; + } } - return -1; + return size; } //安装 @@ -143,7 +156,7 @@ public class DownLoadDependenceUI implements ActionListener { try { thread.join(); } catch (InterruptedException e) { - e.printStackTrace(); + FRContext.getLogger().error(e.getMessage()); return false; } //停止时钟 @@ -151,57 +164,71 @@ public class DownLoadDependenceUI implements ActionListener { return result; } - private String downloadPluginDependenceFile() throws Exception { - httpClient = new HttpClient(SiteCenter.getInstance().acquireUrlByKind(dependenceID)); - if (httpClient.getResponseCode() == HttpURLConnection.HTTP_OK) { - InputStream reader = httpClient.getResponseStream(); - String temp = StableUtils.pathJoin(PluginHelper.DOWNLOAD_PATH, PluginHelper.TEMP_FILE); - StableUtils.makesureFileExist(new File(temp)); - FileOutputStream writer = new FileOutputStream(temp); - byte[] buffer = new byte[PluginConstants.BYTES_NUM]; - int bytesRead = 0; - totalBytesRead = 0; - - while ((bytesRead = reader.read(buffer)) > 0 && flag) { - writer.write(buffer, 0, bytesRead); - buffer = new byte[PluginConstants.BYTES_NUM]; - totalBytesRead += bytesRead; - } - reader.close(); - writer.flush(); - writer.close(); + private List downloadPluginDependenceFile() throws Exception { + totalBytesRead = 0; + List pathList = new ArrayList(); + for (int i = 0; i < list.size(); i++) { + PluginDependenceUnit dependenceUnit = list.get(i); + httpClient = new HttpClient(SiteCenter.getInstance().acquireUrlByKind(dependenceUnit.getDependenceID())); + if (httpClient.getResponseCode() == HttpURLConnection.HTTP_OK) { + InputStream reader = httpClient.getResponseStream(); + String temp = StableUtils.pathJoin(PluginHelper.DOWNLOAD_PATH, PluginHelper.TEMP_FILE); + StableUtils.makesureFileExist(new File(temp)); + FileOutputStream writer = new FileOutputStream(temp); + byte[] buffer = new byte[PluginConstants.BYTES_NUM]; + int bytesRead = 0; + while ((bytesRead = reader.read(buffer)) > 0 && flag) { + writer.write(buffer, 0, bytesRead); + buffer = new byte[PluginConstants.BYTES_NUM]; + totalBytesRead += bytesRead; + } + reader.close(); + writer.flush(); + writer.close(); + + //下载被取消 + if (flag == false) { + result = false; + throw new PluginDependenceException(Inter.getLocText("FR-Designer-Dependence_Install_Failed")); + } + pathList.add(temp); - //下载被取消 - if (flag == false) { + } else { result = false; - return StringUtils.EMPTY; + throw new PluginDependenceException(Inter.getLocText("FR-Designer-Dependence_Install_Failed")); } - return temp; - - } else { - result = false; - throw new com.fr.plugin.PluginVerifyException(Inter.getLocText("FR-Designer-Plugin_Connect_Server_Error")); } + return pathList; } public void installDependenceOnline() { try { - String filePath = downloadPluginDependenceFile(); - if (!StringUtils.EMPTY.equals(filePath)) { - //安装文件 - installPluginDependenceFile(filePath); - result = true; - } + List filePathList = downloadPluginDependenceFile(); + //安装文件 + installPluginDependenceFile(filePathList); } catch (Exception e) { - e.printStackTrace(); + result = false; + FRContext.getLogger().error(e.getMessage()); } } //安装已经下载好的文件,如果是服务文件,则需要复制一份到安装目录下, //以便切换远程时,使用本地的服务 //如果是服务器环境,则只会安装一份 - private void installPluginDependenceFile(String filePath){ - IOUtils.unzip(new File(filePath), FRContext.getCurrentEnv().getPath() + dependenceDir); + private void installPluginDependenceFile(List filePathList){ + if (filePathList.isEmpty()){ + result = false; + return; + } + for(int i = 0; i < filePathList.size(); i++) { + if (StringUtils.EMPTY.equals(filePathList.get(i))){ + result = false; + return; + } + PluginDependenceUnit dependenceUnit = list.get(i); + IOUtils.unzip(new File(filePathList.get(i)), FRContext.getCurrentEnv().getPath() + dependenceUnit.getDependenceDir()); + result = true; + } } public void actionPerformed(ActionEvent e) { @@ -216,23 +243,22 @@ public class DownLoadDependenceUI implements ActionListener { } } - public boolean installOnline() { - int choose = JOptionPane.showConfirmDialog(null, Inter.getLocText("FR-Designer-Plugin_Plugin") + currentID + Inter.getLocText("FR-Designer-Need") + " " + dependenceID + " " + Inter.getLocText("FR-Designer-Support") + "," + Inter.getLocText("FR-Designer-Dependence_Need_Install") + " " + dependenceID + " " + "(" + showFileLength() + " m)?", "install tooltip", JOptionPane.YES_NO_OPTION); + public void installOnline()throws PluginDependenceException { + int choose = JOptionPane.showConfirmDialog(null, Inter.getLocText("FR-Designer-Plugin_Plugin") + Inter.getLocText("FR-Designer-Need") + Inter.getLocText("FR-Designer-Dependence") + Inter.getLocText("FR-Designer-Support") + "," + Inter.getLocText("FR-Designer-Dependence_Need_Install") + "(" + showFileLength() + " m)?", "install tooltip", JOptionPane.YES_NO_OPTION); if (choose == 0) {//下载安装 if (!connectToServer()) { JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Designer-Dependence_Connect_Server_Error"), "alert", JOptionPane.ERROR_MESSAGE); - return false; + throw new PluginDependenceException(Inter.getLocText("FR-Designer-Dependence_Connect_Server_Error")); } //安装依赖环境 if (install()) { - JOptionPane.showMessageDialog(null, dependenceID + Inter.getLocText("FR-Designer-Dependence_Install_Succeed") + "!!"); - return true; + JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Designer-Dependence_Install_Succeed") + "!!"); } else { - JOptionPane.showMessageDialog(null, dependenceID + Inter.getLocText("FR-Designer-Dependence_Install_Failed") + "!!", "alert", JOptionPane.ERROR_MESSAGE); - return false; + JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Designer-Dependence_Install_Failed") + "!!", "alert", JOptionPane.ERROR_MESSAGE); + throw new PluginDependenceException(Inter.getLocText("FR-Designer-Dependence_Install_Failed")); } - } else {//不安装。无需为用户准备环境 - return true; + }else {//不选择下载,则不安装图标插件 + throw new PluginDependenceException(Inter.getLocText("FR-Designer-Dependence_Install_Failed")); } } diff --git a/designer_base/src/com/fr/design/extra/plugindependence/PluginDependenceUtils.java b/designer_base/src/com/fr/design/extra/plugindependence/PluginDependenceUtils.java index 96784f3e32..9dba8bcf4b 100644 --- a/designer_base/src/com/fr/design/extra/plugindependence/PluginDependenceUtils.java +++ b/designer_base/src/com/fr/design/extra/plugindependence/PluginDependenceUtils.java @@ -1,14 +1,19 @@ package com.fr.design.extra.plugindependence; +import com.fr.plugin.dependence.PluginDependenceException; +import com.fr.plugin.dependence.PluginDependenceUnit; + +import java.util.List; + /** * Created by hufan on 2016/8/31. */ public class PluginDependenceUtils { - public static boolean installDependenceOnline(String currentID, String dependenceID, String dependenceDir) { - DownLoadDependenceUI ui = new DownLoadDependenceUI(currentID, dependenceID, dependenceDir); - return ui.installOnline(); + public static void installDependenceOnline(String currentID, List list) throws PluginDependenceException{ + DownLoadDependenceUI ui = new DownLoadDependenceUI(currentID, list); + ui.installOnline(); } } From bd06e8242ed106b2436ac9cdcad2d91d43a79e47 Mon Sep 17 00:00:00 2001 From: Fangjie Hu Date: Sun, 11 Sep 2016 15:23:55 +0800 Subject: [PATCH 16/20] =?UTF-8?q?=E4=BE=9D=E8=B5=96=E4=B8=8B=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DownLoadDependenceUI.java | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/designer_base/src/com/fr/design/extra/plugindependence/DownLoadDependenceUI.java b/designer_base/src/com/fr/design/extra/plugindependence/DownLoadDependenceUI.java index 4209857bcb..5fa360753a 100644 --- a/designer_base/src/com/fr/design/extra/plugindependence/DownLoadDependenceUI.java +++ b/designer_base/src/com/fr/design/extra/plugindependence/DownLoadDependenceUI.java @@ -164,9 +164,13 @@ public class DownLoadDependenceUI implements ActionListener { return result; } - private List downloadPluginDependenceFile() throws Exception { + /** + * 下载和安装不分开是因为,本地如果只安装好了一个依赖,下次就不需要重复下载了 + * @return + * @throws Exception + */ + private void downloadAndInstallPluginDependenceFile() throws Exception { totalBytesRead = 0; - List pathList = new ArrayList(); for (int i = 0; i < list.size(); i++) { PluginDependenceUnit dependenceUnit = list.get(i); httpClient = new HttpClient(SiteCenter.getInstance().acquireUrlByKind(dependenceUnit.getDependenceID())); @@ -191,21 +195,23 @@ public class DownLoadDependenceUI implements ActionListener { result = false; throw new PluginDependenceException(Inter.getLocText("FR-Designer-Dependence_Install_Failed")); } - pathList.add(temp); + + //安装文件 + IOUtils.unzip(new File(temp), FRContext.getCurrentEnv().getPath() + dependenceUnit.getDependenceDir()); } else { result = false; throw new PluginDependenceException(Inter.getLocText("FR-Designer-Dependence_Install_Failed")); } } - return pathList; + //所有依赖都正常安装下载完毕,则结果为true + result = true; } public void installDependenceOnline() { try { - List filePathList = downloadPluginDependenceFile(); - //安装文件 - installPluginDependenceFile(filePathList); + //下载并安装文件 + downloadAndInstallPluginDependenceFile(); } catch (Exception e) { result = false; FRContext.getLogger().error(e.getMessage()); From 06832dc1d94ac5ac27ff26f9818cdf4ab55d9850 Mon Sep 17 00:00:00 2001 From: Fangjie Hu Date: Sun, 11 Sep 2016 17:03:13 +0800 Subject: [PATCH 17/20] =?UTF-8?q?=E4=BE=9D=E8=B5=96=E4=B8=8B=E8=BD=BD?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/extra/exe/InstallOnlineExecutor.java | 3 +++ .../design/extra/plugindependence/DownLoadDependenceUI.java | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/designer_base/src/com/fr/design/extra/exe/InstallOnlineExecutor.java b/designer_base/src/com/fr/design/extra/exe/InstallOnlineExecutor.java index 0844a71100..53fc738ad5 100644 --- a/designer_base/src/com/fr/design/extra/exe/InstallOnlineExecutor.java +++ b/designer_base/src/com/fr/design/extra/exe/InstallOnlineExecutor.java @@ -9,6 +9,7 @@ import com.fr.design.extra.PluginHelper; import com.fr.design.extra.Process; import com.fr.general.Inter; import com.fr.plugin.PluginVerifyException; +import com.fr.plugin.dependence.PluginDependenceException; import com.fr.stable.StringUtils; import javax.swing.*; @@ -89,6 +90,8 @@ public class InstallOnlineExecutor implements Executor { }); } catch (PluginVerifyException e) { JOptionPane.showMessageDialog(null, e.getMessage(), Inter.getLocText("FR-Designer-Plugin_Warning"), JOptionPane.ERROR_MESSAGE); + } catch (PluginDependenceException e){ + JOptionPane.showMessageDialog(null, e.getMessage(), Inter.getLocText("FR-Designer-Plugin_Warning"), JOptionPane.ERROR_MESSAGE); } catch (InterruptedException e) { e.printStackTrace(); } catch (Exception e) { diff --git a/designer_base/src/com/fr/design/extra/plugindependence/DownLoadDependenceUI.java b/designer_base/src/com/fr/design/extra/plugindependence/DownLoadDependenceUI.java index 5fa360753a..8f9e3b509e 100644 --- a/designer_base/src/com/fr/design/extra/plugindependence/DownLoadDependenceUI.java +++ b/designer_base/src/com/fr/design/extra/plugindependence/DownLoadDependenceUI.java @@ -253,14 +253,14 @@ public class DownLoadDependenceUI implements ActionListener { int choose = JOptionPane.showConfirmDialog(null, Inter.getLocText("FR-Designer-Plugin_Plugin") + Inter.getLocText("FR-Designer-Need") + Inter.getLocText("FR-Designer-Dependence") + Inter.getLocText("FR-Designer-Support") + "," + Inter.getLocText("FR-Designer-Dependence_Need_Install") + "(" + showFileLength() + " m)?", "install tooltip", JOptionPane.YES_NO_OPTION); if (choose == 0) {//下载安装 if (!connectToServer()) { - JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Designer-Dependence_Connect_Server_Error"), "alert", JOptionPane.ERROR_MESSAGE); + //JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Designer-Dependence_Connect_Server_Error"), "alert", JOptionPane.ERROR_MESSAGE); throw new PluginDependenceException(Inter.getLocText("FR-Designer-Dependence_Connect_Server_Error")); } //安装依赖环境 if (install()) { JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Designer-Dependence_Install_Succeed") + "!!"); } else { - JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Designer-Dependence_Install_Failed") + "!!", "alert", JOptionPane.ERROR_MESSAGE); + //JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Designer-Dependence_Install_Failed") + "!!", "alert", JOptionPane.ERROR_MESSAGE); throw new PluginDependenceException(Inter.getLocText("FR-Designer-Dependence_Install_Failed")); } }else {//不选择下载,则不安装图标插件 From 269d1d1210157270e5d3cf0918b452a6bc4d08f5 Mon Sep 17 00:00:00 2001 From: Fangjie Hu Date: Sun, 11 Sep 2016 19:37:34 +0800 Subject: [PATCH 18/20] =?UTF-8?q?=E4=BE=9D=E8=B5=96=E4=B8=8B=E8=BD=BD?= =?UTF-8?q?=E4=BD=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer_base/src/com/fr/design/extra/PluginHelper.java | 2 ++ .../fr/design/extra/plugindependence/DownLoadDependenceUI.java | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/designer_base/src/com/fr/design/extra/PluginHelper.java b/designer_base/src/com/fr/design/extra/PluginHelper.java index eef4b02970..6c23135322 100644 --- a/designer_base/src/com/fr/design/extra/PluginHelper.java +++ b/designer_base/src/com/fr/design/extra/PluginHelper.java @@ -35,6 +35,8 @@ import java.util.concurrent.ExecutionException; public class PluginHelper { private static final String TEMP_PATH = System.getProperty("user.dir") + "/tmp"; public static final String DOWNLOAD_PATH = System.getProperty("user.dir") + "/download"; + //插件依赖的下载位置 + public static final String DEPENDENCE_DOWNLOAD_PATH = System.getProperty("user.dir") + "/download/dependence"; public static final String TEMP_FILE = "temp.zip"; /** diff --git a/designer_base/src/com/fr/design/extra/plugindependence/DownLoadDependenceUI.java b/designer_base/src/com/fr/design/extra/plugindependence/DownLoadDependenceUI.java index 8f9e3b509e..5b0de740c7 100644 --- a/designer_base/src/com/fr/design/extra/plugindependence/DownLoadDependenceUI.java +++ b/designer_base/src/com/fr/design/extra/plugindependence/DownLoadDependenceUI.java @@ -166,6 +166,7 @@ public class DownLoadDependenceUI implements ActionListener { /** * 下载和安装不分开是因为,本地如果只安装好了一个依赖,下次就不需要重复下载了 + * 如果下载依赖后不安装,则后面的插件会把前面的插件覆盖,故而下载好了一个安装一个 * @return * @throws Exception */ @@ -176,7 +177,7 @@ public class DownLoadDependenceUI implements ActionListener { httpClient = new HttpClient(SiteCenter.getInstance().acquireUrlByKind(dependenceUnit.getDependenceID())); if (httpClient.getResponseCode() == HttpURLConnection.HTTP_OK) { InputStream reader = httpClient.getResponseStream(); - String temp = StableUtils.pathJoin(PluginHelper.DOWNLOAD_PATH, PluginHelper.TEMP_FILE); + String temp = StableUtils.pathJoin(PluginHelper.DEPENDENCE_DOWNLOAD_PATH, PluginHelper.TEMP_FILE); StableUtils.makesureFileExist(new File(temp)); FileOutputStream writer = new FileOutputStream(temp); byte[] buffer = new byte[PluginConstants.BYTES_NUM]; From c5c1cea90b1a0fbcfaa210b22aecbeb33a58b0dc Mon Sep 17 00:00:00 2001 From: Fangjie Hu Date: Mon, 12 Sep 2016 10:26:47 +0800 Subject: [PATCH 19/20] update --- .../com/fr/dependservice/PluginService.java | 37 ------------------- .../fr/dependservice/PluginServiceUtils.java | 18 --------- designer_base/src/com/fr/env/RemoteEnv.java | 21 ++++++++--- 3 files changed, 16 insertions(+), 60 deletions(-) delete mode 100644 designer_base/src/com/fr/dependservice/PluginService.java delete mode 100644 designer_base/src/com/fr/dependservice/PluginServiceUtils.java diff --git a/designer_base/src/com/fr/dependservice/PluginService.java b/designer_base/src/com/fr/dependservice/PluginService.java deleted file mode 100644 index 0ba4895cb0..0000000000 --- a/designer_base/src/com/fr/dependservice/PluginService.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.fr.dependservice; - -import com.fr.base.FRContext; -import com.fr.general.FRLogger; -import com.fr.plugin.dependence.PluginServiceCreator; - -import java.util.HashMap; - -/** - * Created by hufan on 2016/9/9. - */ -public abstract class PluginService implements PluginServiceCreator { - @Override - public String remoteServiceAction(String req) throws Exception { - HashMap para = new HashMap(); - para.put("op", "fr_remote_design"); - para.put("cmd", "design_get_plugin_service_data"); - para.put("serviceID", getServiceID()); - para.put("req", req); - return PluginServiceUtils.getDataFormRemote(para); - } - /** - * 服务ID - * @return - */ - protected abstract String getServiceID(); - - /** - * 获取数据 - * @param req - * @return - */ - @Override - public String fetchServiceData(String req) throws Exception { - return FRContext.getCurrentEnv().pluginServiceAction(this, req); - } -} diff --git a/designer_base/src/com/fr/dependservice/PluginServiceUtils.java b/designer_base/src/com/fr/dependservice/PluginServiceUtils.java deleted file mode 100644 index b5304aa725..0000000000 --- a/designer_base/src/com/fr/dependservice/PluginServiceUtils.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.fr.dependservice; - -import com.fr.base.FRContext; -import com.fr.env.RemoteEnv; -import com.fr.general.IOUtils; - -import java.io.InputStream; -import java.util.HashMap; - -/** - * Created by hufan on 2016/9/9. - */ -public class PluginServiceUtils { - public static String getDataFormRemote(HashMap para) throws Exception { - InputStream inputStream = ((RemoteEnv)FRContext.getCurrentEnv()).getDataFormRemote(para); - return IOUtils.inputStream2String(inputStream); - } -} diff --git a/designer_base/src/com/fr/env/RemoteEnv.java b/designer_base/src/com/fr/env/RemoteEnv.java index 927743012a..3085991d43 100644 --- a/designer_base/src/com/fr/env/RemoteEnv.java +++ b/designer_base/src/com/fr/env/RemoteEnv.java @@ -32,6 +32,7 @@ import com.fr.plugin.PluginLicense; import com.fr.plugin.PluginLicenseManager; import com.fr.plugin.PluginLoader; import com.fr.plugin.dependence.PluginServiceCreator; +import com.fr.plugin.dependence.PluginServiceManager; import com.fr.stable.*; import com.fr.stable.file.XMLFileManagerProvider; import com.fr.stable.project.ProjectConstants; @@ -2081,16 +2082,26 @@ public class RemoteEnv implements Env { } @Override - public String pluginServiceAction(PluginServiceCreator service, String req) throws Exception { - return service.remoteServiceAction(req); + public String pluginServiceAction(String serviceID, String req) throws Exception { + PluginServiceCreator service = PluginServiceManager.getService(serviceID); + if (service == null){ + return null; + } + HashMap para = new HashMap(); + para.put("op", "fr_remote_design"); + para.put("cmd", "design_get_plugin_service_data"); + para.put("serviceID", service.getServiceID()); + para.put("req", req); + InputStream inputStream = getDataFormRemote(para); + return IOUtils.inputStream2String(inputStream); } /** * 远程不启动,使用虚拟服务 - * @param service + * @param serviceID */ @Override - public void pluginServiceStart(PluginServiceCreator service){ + public void pluginServiceStart(String serviceID){ } @Override @@ -2105,7 +2116,7 @@ public class RemoteEnv implements Env { * @return * @throws Exception */ - public InputStream getDataFormRemote(HashMap para) throws Exception { + private InputStream getDataFormRemote(HashMap para) throws Exception { HttpClient client = createHttpMethod(para); //jim :加上user,远程设计点击预览时传递用户角色信息 return execute4InputStream(client); } From 506e0bc7a11f20fa94d28fa26b36e6bdbbc0dbd0 Mon Sep 17 00:00:00 2001 From: Fangjie Hu Date: Mon, 12 Sep 2016 10:45:25 +0800 Subject: [PATCH 20/20] update --- .../src/com/fr/design/extra/PluginHelper.java | 15 +++++++++++-- .../PluginDependenceUtils.java | 19 ---------------- designer_base/src/com/fr/env/RemoteEnv.java | 22 +++---------------- 3 files changed, 16 insertions(+), 40 deletions(-) delete mode 100644 designer_base/src/com/fr/design/extra/plugindependence/PluginDependenceUtils.java diff --git a/designer_base/src/com/fr/design/extra/PluginHelper.java b/designer_base/src/com/fr/design/extra/PluginHelper.java index 6c23135322..5d0c9fa1a9 100644 --- a/designer_base/src/com/fr/design/extra/PluginHelper.java +++ b/designer_base/src/com/fr/design/extra/PluginHelper.java @@ -3,7 +3,7 @@ package com.fr.design.extra; import com.fr.base.Env; import com.fr.base.FRContext; import com.fr.design.DesignerEnvManager; -import com.fr.design.extra.plugindependence.PluginDependenceUtils; +import com.fr.design.extra.plugindependence.DownLoadDependenceUI; import com.fr.general.*; import com.fr.general.http.HttpClient; import com.fr.plugin.Plugin; @@ -150,9 +150,20 @@ public class PluginHelper { } //安装插件依赖 - PluginDependenceUtils.installDependenceOnline(currentID, needInstallDependence); + installDependenceOnline(currentID, needInstallDependence); } + + /** + * 构造一个下载UI + * @param currentID + * @param list + * @throws PluginDependenceException + */ + private static void installDependenceOnline(String currentID, List list) throws PluginDependenceException{ + DownLoadDependenceUI ui = new DownLoadDependenceUI(currentID, list); + ui.installOnline(); + } /** * 从选中的压缩文件中安装插件 * diff --git a/designer_base/src/com/fr/design/extra/plugindependence/PluginDependenceUtils.java b/designer_base/src/com/fr/design/extra/plugindependence/PluginDependenceUtils.java deleted file mode 100644 index 9dba8bcf4b..0000000000 --- a/designer_base/src/com/fr/design/extra/plugindependence/PluginDependenceUtils.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.fr.design.extra.plugindependence; - - -import com.fr.plugin.dependence.PluginDependenceException; -import com.fr.plugin.dependence.PluginDependenceUnit; - -import java.util.List; - -/** - * Created by hufan on 2016/8/31. - */ - - -public class PluginDependenceUtils { - public static void installDependenceOnline(String currentID, List list) throws PluginDependenceException{ - DownLoadDependenceUI ui = new DownLoadDependenceUI(currentID, list); - ui.installOnline(); - } -} diff --git a/designer_base/src/com/fr/env/RemoteEnv.java b/designer_base/src/com/fr/env/RemoteEnv.java index 3085991d43..6aff74d7ca 100644 --- a/designer_base/src/com/fr/env/RemoteEnv.java +++ b/designer_base/src/com/fr/env/RemoteEnv.java @@ -2083,16 +2083,13 @@ public class RemoteEnv implements Env { @Override public String pluginServiceAction(String serviceID, String req) throws Exception { - PluginServiceCreator service = PluginServiceManager.getService(serviceID); - if (service == null){ - return null; - } HashMap para = new HashMap(); para.put("op", "fr_remote_design"); para.put("cmd", "design_get_plugin_service_data"); - para.put("serviceID", service.getServiceID()); + para.put("serviceID", serviceID); para.put("req", req); - InputStream inputStream = getDataFormRemote(para); + HttpClient client = createHttpMethod(para); //jim :加上user,远程设计点击预览时传递用户角色信息 + InputStream inputStream = execute4InputStream(client); return IOUtils.inputStream2String(inputStream); } @@ -2108,17 +2105,4 @@ public class RemoteEnv implements Env { public void checkAndRegisterLic(FileNode node, Plugin plugin) throws Exception { } - - /** - * 提供一个可以再插件自定义请求数据的方法 - * 返回的数据可自行处理 - * @param para - * @return - * @throws Exception - */ - private InputStream getDataFormRemote(HashMap para) throws Exception { - HttpClient client = createHttpMethod(para); //jim :加上user,远程设计点击预览时传递用户角色信息 - return execute4InputStream(client); - } - } \ No newline at end of file