From 2dec51c51e3f55f3b997d23264e55ca87b667710 Mon Sep 17 00:00:00 2001 From: Fangjie Hu Date: Mon, 26 Sep 2016 19:12:25 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E5=B1=9E?= =?UTF-8?q?=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer_base/src/com/fr/env/RemoteEnv.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer_base/src/com/fr/env/RemoteEnv.java b/designer_base/src/com/fr/env/RemoteEnv.java index 6aff74d7c..5b5d233c4 100644 --- a/designer_base/src/com/fr/env/RemoteEnv.java +++ b/designer_base/src/com/fr/env/RemoteEnv.java @@ -2098,7 +2098,7 @@ public class RemoteEnv implements Env { * @param serviceID */ @Override - public void pluginServiceStart(String serviceID){ + public void pluginServiceStart(String serviceID, String customAttr){ } @Override From bd35dadab75a84e0404ada00419dfa29c9924c9a Mon Sep 17 00:00:00 2001 From: Fangjie Hu Date: Tue, 27 Sep 2016 10:59:33 +0800 Subject: [PATCH 2/2] update --- .../src/com/fr/design/extra/PluginHelper.java | 33 +++++++++++++++++++ designer_base/src/com/fr/env/RemoteEnv.java | 2 +- 2 files changed, 34 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 5d0c9fa1a..b258d495d 100644 --- a/designer_base/src/com/fr/design/extra/PluginHelper.java +++ b/designer_base/src/com/fr/design/extra/PluginHelper.java @@ -140,6 +140,14 @@ public class PluginHelper { List list = dependence.getDependPlugins(); for (int i = 0;list != null && i < list.size(); i++){ PluginDependenceUnit dependenceUnit = list.get(i); + //覆盖型依赖,立即下载安装 + if (dependenceUnit.isCover()){ + try { + installCoverDependence(dependenceUnit); + } catch (Exception e) { + throw new PluginDependenceException(); + } + } if (!dependenceUnit.checkFileEnv()){ needInstallDependence.add(dependenceUnit); } @@ -153,6 +161,31 @@ public class PluginHelper { installDependenceOnline(currentID, needInstallDependence); } + public static void installCoverDependence(PluginDependenceUnit dependenceUnit) throws Exception { + HttpClient httpClient = new HttpClient(SiteCenter.getInstance().acquireUrlByKind(dependenceUnit.getDependenceID())); + if (httpClient.getResponseCode() == HttpURLConnection.HTTP_OK) { + InputStream reader = httpClient.getResponseStream(); + 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]; + int bytesRead = 0; + while ((bytesRead = reader.read(buffer)) > 0) { + writer.write(buffer, 0, bytesRead); + buffer = new byte[PluginConstants.BYTES_NUM]; + } + reader.close(); + writer.flush(); + writer.close(); + + + //安装文件 + IOUtils.unZipFilesGBK(temp, FRContext.getCurrentEnv().getPath() + dependenceUnit.getDependenceDir()); + }else { + throw new PluginDependenceException(); + } + } + /** * 构造一个下载UI diff --git a/designer_base/src/com/fr/env/RemoteEnv.java b/designer_base/src/com/fr/env/RemoteEnv.java index 5b5d233c4..6aff74d7c 100644 --- a/designer_base/src/com/fr/env/RemoteEnv.java +++ b/designer_base/src/com/fr/env/RemoteEnv.java @@ -2098,7 +2098,7 @@ public class RemoteEnv implements Env { * @param serviceID */ @Override - public void pluginServiceStart(String serviceID, String customAttr){ + public void pluginServiceStart(String serviceID){ } @Override