Browse Source

Merge pull request #1088 in BA/design from ~JU/ba-release-design:release/8.0 to release/8.0

* commit 'c9e30586ecf68c7ae092db9f19b385b0705ae78b':
  pmd
  pmd
  pmd
  pmd
  PFC-607 插件安装删除更新不重启支持 移植9.0的加密方式
  pmd
  pmd
  添加Env版本区间判断
  fix
master
neil 7 years ago
parent
commit
7425898f8b
  1. 29
      designer_base/src/com/fr/design/extra/PluginHelper.java
  2. 3
      designer_base/src/com/fr/start/BaseDesigner.java

29
designer_base/src/com/fr/design/extra/PluginHelper.java

@ -14,11 +14,13 @@ import com.fr.plugin.Plugin;
import com.fr.plugin.PluginConfigManager; import com.fr.plugin.PluginConfigManager;
import com.fr.plugin.PluginLoader; import com.fr.plugin.PluginLoader;
import com.fr.plugin.PluginManagerHelper; import com.fr.plugin.PluginManagerHelper;
import com.fr.plugin.PluginUtils; import com.fr.plugin.basic.version.Version;
import com.fr.plugin.basic.version.VersionIntervalFactory;
import com.fr.plugin.dependence.PluginDependence; import com.fr.plugin.dependence.PluginDependence;
import com.fr.plugin.dependence.PluginDependenceException; import com.fr.plugin.dependence.PluginDependenceException;
import com.fr.plugin.dependence.PluginDependenceUnit; import com.fr.plugin.dependence.PluginDependenceUnit;
import com.fr.stable.ArrayUtils; import com.fr.stable.ArrayUtils;
import com.fr.stable.AssistUtils;
import com.fr.stable.EncodeConstants; import com.fr.stable.EncodeConstants;
import com.fr.stable.StableUtils; import com.fr.stable.StableUtils;
import com.fr.stable.StringUtils; import com.fr.stable.StringUtils;
@ -84,7 +86,7 @@ public class PluginHelper {
} }
} }
private static boolean invalidUser(String id, String username, String password) { private static boolean isInvalidUser(String id, String username, String password) {
if (StringUtils.isEmpty(id)) { if (StringUtils.isEmpty(id)) {
return false; return false;
} else if (StringUtils.isEmpty(username) || StringUtils.isEmpty(password)){ } else if (StringUtils.isEmpty(username) || StringUtils.isEmpty(password)){
@ -120,7 +122,7 @@ public class PluginHelper {
*/ */
public static Plugin readPlugin(File chosenFile) throws Exception { public static Plugin readPlugin(File chosenFile) throws Exception {
// 需要先删除临时目录保证加压出来的文件不会和安装失败的文件混合到一起 // 需要先删除临时目录保证加压出来的文件不会和安装失败的文件混合到一起
StableUtils.deleteFile(new File(TEMP_PATH)) StableUtils.deleteFile(new File(TEMP_PATH));
IOUtils.unzip(chosenFile, TEMP_PATH); IOUtils.unzip(chosenFile, TEMP_PATH);
File pluginFileDir = getTempPluginFileDirectory(); File pluginFileDir = getTempPluginFileDirectory();
@ -132,7 +134,7 @@ public class PluginHelper {
File[] pluginFiles = pluginFileDir.listFiles(); File[] pluginFiles = pluginFileDir.listFiles();
if (ArrayUtils.isNotEmpty(pluginFiles)) { if (ArrayUtils.isNotEmpty(pluginFiles)) {
for (File f : pluginFiles) { for (File f : pluginFiles) {
if (f.getName().equals("plugin.xml")) { if (AssistUtils.equals(f.getName(), "plugin.xml")) {
plugin = new Plugin(); plugin = new Plugin();
InputStream inputStream = plugin.readEncryptXml(new FileInputStream(f)); InputStream inputStream = plugin.readEncryptXml(new FileInputStream(f));
XMLTools.readInputStreamXML(plugin, inputStream); XMLTools.readInputStreamXML(plugin, inputStream);
@ -273,7 +275,7 @@ public class PluginHelper {
FRLogger.getLogger().error(jarExpiredInfo); FRLogger.getLogger().error(jarExpiredInfo);
throw new com.fr.plugin.PluginVerifyException(jarExpiredInfo); throw new com.fr.plugin.PluginVerifyException(jarExpiredInfo);
} }
if (isHigherEnvVersion(plugin.getEnvVersion())) { if (!isSupportCurrentEnv(plugin.getEnvVersion())) {
String envVersionNotSupport = Inter.getLocText(new String[]{"FR-Designer-Plugin_Env_Expired", ",", "FR-Designer-Plugin_Install_Failed"}); String envVersionNotSupport = Inter.getLocText(new String[]{"FR-Designer-Plugin_Env_Expired", ",", "FR-Designer-Plugin_Install_Failed"});
FRLogger.getLogger().error(envVersionNotSupport); FRLogger.getLogger().error(envVersionNotSupport);
throw new com.fr.plugin.PluginVerifyException(envVersionNotSupport); throw new com.fr.plugin.PluginVerifyException(envVersionNotSupport);
@ -281,18 +283,17 @@ public class PluginHelper {
File fileToCheck = getTempPluginFileDirectory(); File fileToCheck = getTempPluginFileDirectory();
File oldfile = new File(StableUtils.pathJoin(FRContext.getCurrentEnv().getPath(), ProjectConstants.PLUGINS_NAME, "plugin-" + plugin.getId())); File oldfile = new File(StableUtils.pathJoin(FRContext.getCurrentEnv().getPath(), ProjectConstants.PLUGINS_NAME, "plugin-" + plugin.getId()));
if (!PluginManagerHelper.checkLic(plugin, fileToCheck)) { if (!PluginManagerHelper.checkLic(plugin, fileToCheck) && !PluginManagerHelper.checkLic(plugin, oldfile)) {
if (!PluginManagerHelper.checkLic(plugin, oldfile)) {//安装时,在安装目录下和压缩包里都没有才弹框 //安装时,在安装目录下和压缩包里都没有才弹框
String checkLicFail = Inter.getLocText("FR-Designer-PluginLicense_Check_Failed"); String checkLicFail = Inter.getLocText("FR-Designer-PluginLicense_Check_Failed");
FRLogger.getLogger().error(checkLicFail); FRLogger.getLogger().error(checkLicFail);
throw new com.fr.plugin.PluginVerifyException(checkLicFail); throw new com.fr.plugin.PluginVerifyException(checkLicFail);
} }
} }
}
private static boolean isHigherEnvVersion(String envVersion) { private static boolean isSupportCurrentEnv(String envVersion) {
//高于8.0 //包含8.0
return PluginUtils.compareVersion(envVersion, "8.0") > 0; return VersionIntervalFactory.create(envVersion).contain(Version.currentEnvVersion());
} }
/** /**
@ -306,7 +307,7 @@ public class PluginHelper {
File[] files = file.listFiles(); File[] files = file.listFiles();
if (ArrayUtils.isNotEmpty(files)) { if (ArrayUtils.isNotEmpty(files)) {
for (File f : files) { for (File f : files) {
if (foundConfigFile(f)) { if (hasFoundConfigFile(f)) {
return f; return f;
} }
} }
@ -315,14 +316,14 @@ public class PluginHelper {
return null; return null;
} }
private static boolean foundConfigFile(File dir) { private static boolean hasFoundConfigFile(File dir) {
if (!dir.isDirectory()) { if (!dir.isDirectory()) {
return false; return false;
} }
File[] files = dir.listFiles(); File[] files = dir.listFiles();
if (ArrayUtils.isNotEmpty(files)) { if (ArrayUtils.isNotEmpty(files)) {
for (File f : files) { for (File f : files) {
if ("plugin.xml".equals(f.getName())) { if (AssistUtils.equals("plugin.xml",f.getName())) {
return true; return true;
} }
} }

3
designer_base/src/com/fr/start/BaseDesigner.java

@ -24,6 +24,7 @@ import com.fr.file.FILEFactory;
import com.fr.file.FileFILE; import com.fr.file.FileFILE;
import com.fr.general.*; import com.fr.general.*;
import com.fr.plugin.PluginCollector; import com.fr.plugin.PluginCollector;
import com.fr.plugin.manager.PluginManager;
import com.fr.stable.*; import com.fr.stable.*;
import javax.swing.*; import javax.swing.*;
@ -83,6 +84,8 @@ public abstract class BaseDesigner extends ToolBarMenuDock {
DesignUtils.initLookAndFeel(); DesignUtils.initLookAndFeel();
DesignUtils.creatListeningServer(getStartPort(), startFileSuffix()); DesignUtils.creatListeningServer(getStartPort(), startFileSuffix());
//初始化插件引擎
PluginManager.init();
// 初始化Log Handler // 初始化Log Handler
DesignerEnvManager.loadLogSetting(); DesignerEnvManager.loadLogSetting();
DesignerFrame df = createDesignerFrame(); DesignerFrame df = createDesignerFrame();

Loading…
Cancel
Save