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.PluginLoader;
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.PluginDependenceException;
import com.fr.plugin.dependence.PluginDependenceUnit;
import com.fr.stable.ArrayUtils;
import com.fr.stable.AssistUtils;
import com.fr.stable.EncodeConstants;
import com.fr.stable.StableUtils;
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)) {
return false;
} else if (StringUtils.isEmpty(username) || StringUtils.isEmpty(password)){
@ -120,7 +122,7 @@ public class PluginHelper {
*/
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);
File pluginFileDir = getTempPluginFileDirectory();
@ -132,7 +134,7 @@ public class PluginHelper {
File[] pluginFiles = pluginFileDir.listFiles();
if (ArrayUtils.isNotEmpty(pluginFiles)) {
for (File f : pluginFiles) {
if (f.getName().equals("plugin.xml")) {
if (AssistUtils.equals(f.getName(), "plugin.xml")) {
plugin = new Plugin();
InputStream inputStream = plugin.readEncryptXml(new FileInputStream(f));
XMLTools.readInputStreamXML(plugin, inputStream);
@ -273,7 +275,7 @@ public class PluginHelper {
FRLogger.getLogger().error(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"});
FRLogger.getLogger().error(envVersionNotSupport);
throw new com.fr.plugin.PluginVerifyException(envVersionNotSupport);
@ -281,18 +283,17 @@ public class PluginHelper {
File fileToCheck = getTempPluginFileDirectory();
File oldfile = new File(StableUtils.pathJoin(FRContext.getCurrentEnv().getPath(), ProjectConstants.PLUGINS_NAME, "plugin-" + plugin.getId()));
if (!PluginManagerHelper.checkLic(plugin, fileToCheck)) {
if (!PluginManagerHelper.checkLic(plugin, oldfile)) {//安装时,在安装目录下和压缩包里都没有才弹框
if (!PluginManagerHelper.checkLic(plugin, fileToCheck) && !PluginManagerHelper.checkLic(plugin, oldfile)) {
//安装时,在安装目录下和压缩包里都没有才弹框
String checkLicFail = Inter.getLocText("FR-Designer-PluginLicense_Check_Failed");
FRLogger.getLogger().error(checkLicFail);
throw new com.fr.plugin.PluginVerifyException(checkLicFail);
}
}
}
private static boolean isHigherEnvVersion(String envVersion) {
//高于8.0
return PluginUtils.compareVersion(envVersion, "8.0") > 0;
private static boolean isSupportCurrentEnv(String envVersion) {
//包含8.0
return VersionIntervalFactory.create(envVersion).contain(Version.currentEnvVersion());
}
/**
@ -306,7 +307,7 @@ public class PluginHelper {
File[] files = file.listFiles();
if (ArrayUtils.isNotEmpty(files)) {
for (File f : files) {
if (foundConfigFile(f)) {
if (hasFoundConfigFile(f)) {
return f;
}
}
@ -315,14 +316,14 @@ public class PluginHelper {
return null;
}
private static boolean foundConfigFile(File dir) {
private static boolean hasFoundConfigFile(File dir) {
if (!dir.isDirectory()) {
return false;
}
File[] files = dir.listFiles();
if (ArrayUtils.isNotEmpty(files)) {
for (File f : files) {
if ("plugin.xml".equals(f.getName())) {
if (AssistUtils.equals("plugin.xml",f.getName())) {
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.general.*;
import com.fr.plugin.PluginCollector;
import com.fr.plugin.manager.PluginManager;
import com.fr.stable.*;
import javax.swing.*;
@ -83,6 +84,8 @@ public abstract class BaseDesigner extends ToolBarMenuDock {
DesignUtils.initLookAndFeel();
DesignUtils.creatListeningServer(getStartPort(), startFileSuffix());
//初始化插件引擎
PluginManager.init();
// 初始化Log Handler
DesignerEnvManager.loadLogSetting();
DesignerFrame df = createDesignerFrame();

Loading…
Cancel
Save