Browse Source

Merge pull request #1291 in BA/design from ~VITO/design:release/9.0 to release/9.0

* commit '34eb7961fb3197b7e0e1c0bfb2f166b9fcea7966':
  REPORT-3350 缓存目录的兼容由各个文件自行处理
  REPORT-3350 复制前一版本缓存的时候清理其中的工作目录
master
superman 7 years ago
parent
commit
2e2971def6
  1. 150
      designer_base/src/com/fr/design/DesignerEnvManager.java
  2. 11
      designer_base/src/com/fr/start/BaseDesigner.java

150
designer_base/src/com/fr/design/DesignerEnvManager.java

@ -13,22 +13,47 @@ import com.fr.design.constants.UIConstants;
import com.fr.env.RemoteEnv; import com.fr.env.RemoteEnv;
import com.fr.env.SignIn; import com.fr.env.SignIn;
import com.fr.file.FILEFactory; import com.fr.file.FILEFactory;
import com.fr.general.*; import com.fr.general.ComparatorUtils;
import com.fr.stable.*; import com.fr.general.FRLevel;
import com.fr.general.FRLogFormatter;
import com.fr.general.FRLogger;
import com.fr.general.GeneralContext;
import com.fr.general.IOUtils;
import com.fr.general.Inter;
import com.fr.stable.Constants;
import com.fr.stable.EnvChangedListener;
import com.fr.stable.ListMap;
import com.fr.stable.ProductConstants;
import com.fr.stable.StableUtils;
import com.fr.stable.StringUtils;
import com.fr.stable.core.UUID; import com.fr.stable.core.UUID;
import com.fr.stable.project.ProjectConstants; import com.fr.stable.project.ProjectConstants;
import com.fr.stable.xml.*; import com.fr.stable.xml.XMLPrintWriter;
import com.fr.stable.xml.XMLReadable;
import com.fr.stable.xml.XMLTools;
import com.fr.stable.xml.XMLWriter;
import com.fr.stable.xml.XMLableReader;
import org.apache.log4j.Level;
import javax.swing.*; import javax.swing.*;
import javax.swing.SwingWorker.StateValue; import javax.swing.SwingWorker.StateValue;
import java.awt.*; import java.awt.*;
import java.io.*; import java.io.File;
import java.util.*; import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.OutputStream;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Map.Entry; import java.util.Map.Entry;
import java.util.logging.FileHandler; import java.util.logging.FileHandler;
import java.util.logging.Handler; import java.util.logging.Handler;
import org.apache.log4j.Level;
/** /**
* The manager of Designer GUI. * The manager of Designer GUI.
@ -36,6 +61,7 @@ import org.apache.log4j.Level;
public class DesignerEnvManager implements XMLReadable, XMLWriter { public class DesignerEnvManager implements XMLReadable, XMLWriter {
private static final int MAX_SHOW_NUM = 10; private static final int MAX_SHOW_NUM = 10;
private static final String VERSION_80 = "80";
private static DesignerEnvManager designerEnvManager; // gui. private static DesignerEnvManager designerEnvManager; // gui.
private String activationKey = null; private String activationKey = null;
@ -219,9 +245,7 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
calender.setTimeInMillis(System.currentTimeMillis()); calender.setTimeInMillis(System.currentTimeMillis());
String today = calender.get(Calendar.YEAR) + "-" + (calender.get(Calendar.MONTH) + 1) + "-" + calender.get(Calendar.DAY_OF_MONTH); String today = calender.get(Calendar.YEAR) + "-" + (calender.get(Calendar.MONTH) + 1) + "-" + calender.get(Calendar.DAY_OF_MONTH);
String fileName = StableUtils.pathJoin(new String[]{ String fileName = StableUtils.pathJoin(logLocation, "fr_" + today + "_%g.log");
logLocation, "fr_" + today + "_%g.log"
});
if (!new java.io.File(fileName).exists()) { if (!new java.io.File(fileName).exists()) {
StableUtils.makesureFileExist(new java.io.File(fileName)); StableUtils.makesureFileExist(new java.io.File(fileName));
} }
@ -253,11 +277,14 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
try { try {
FileWriter fileWriter = new FileWriter(envFile); FileWriter fileWriter = new FileWriter(envFile);
File oldEnvFile = new File(ProductConstants.getEnvHome() + File.separator + ProductConstants.APP_NAME + "6-1" + "Env.xml"); File oldEnvFile = new File(ProductConstants.getEnvHome() + File.separator + ProductConstants.APP_NAME + "6-1" + "Env.xml");
File envFile80 = new File(getEnvHome(VERSION_80) + File.separator + getEnvFile().getName());
if (oldEnvFile.exists()) { if (oldEnvFile.exists()) {
// marks:兼容DesignerEnv6-1.xml // marks:兼容DesignerEnv6-1.xml
FileReader fileReader = new FileReader(oldEnvFile); FileReader fileReader = new FileReader(oldEnvFile);
Utils.copyCharTo(fileReader, fileWriter); Utils.copyCharTo(fileReader, fileWriter);
fileReader.close(); fileReader.close();
} else if (envFile80.exists()) {
compatibilityPrevVersion(envFile80);
} else { } else {
// marks:生成一个新的xml文件 // marks:生成一个新的xml文件
StringReader stringReader = new StringReader("<?xml version=\"1.0\" encoding=\"UTF-8\" ?><Env></Env>"); StringReader stringReader = new StringReader("<?xml version=\"1.0\" encoding=\"UTF-8\" ?><Env></Env>");
@ -270,6 +297,33 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
} }
} }
private static String getEnvHome(String version) {
String userHome = System.getProperty("user.home");
if (userHome == null) {
userHome = System.getProperty("userHome");
}
File envHome = new File(userHome + File.separator + "." + ProductConstants.APP_NAME + version);
if (!envHome.exists()) {
StableUtils.mkdirs(envHome);
}
return envHome.getAbsolutePath();
}
private void compatibilityPrevVersion(File prevEnvFile) {
try {
XMLTools.readFileXML(designerEnvManager, prevEnvFile);
} catch (Exception e) {
FRContext.getLogger().error(e.getMessage(), e);
}
// 清空前一个版本中的工作目录和最近打开
nameEnvMap = new ListMap<String, Env>();
recentOpenedFilePathList = new ArrayList<String>();
curEnvName = null;
designerEnvManager.saveXMLFile();
}
public static void setEnvFile(File envFile) { public static void setEnvFile(File envFile) {
DesignerEnvManager.envFile = envFile; DesignerEnvManager.envFile = envFile;
} }
@ -285,6 +339,7 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
/** /**
* 是否启用了https * 是否启用了https
*
* @return 同上 * @return 同上
*/ */
public boolean isHttps() { public boolean isHttps() {
@ -311,7 +366,7 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
return certificatePass; return certificatePass;
} }
public void setCertificatePass(String certificatePass){ public void setCertificatePass(String certificatePass) {
this.certificatePass = certificatePass; this.certificatePass = certificatePass;
} }
@ -531,13 +586,13 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
this.reportLengthUnit = reportLengthUnit; this.reportLengthUnit = reportLengthUnit;
} }
private void writeTempFile(File tempFile){ private void writeTempFile(File tempFile) {
try{ try {
OutputStream fout = new FileOutputStream(tempFile); OutputStream fout = new FileOutputStream(tempFile);
XMLTools.writeOutputStreamXML(this, fout); XMLTools.writeOutputStreamXML(this, fout);
fout.flush(); fout.flush();
fout.close(); fout.close();
}catch (Exception e) { } catch (Exception e) {
FRContext.getLogger().error(e.getMessage()); FRContext.getLogger().error(e.getMessage());
} }
} }
@ -546,9 +601,7 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
* 保存设计器的配置文件, 该文件不在env的resource目录下 * 保存设计器的配置文件, 该文件不在env的resource目录下
* 而是在Consts.getEnvHome() + File.separator + Consts.APP_NAME * 而是在Consts.getEnvHome() + File.separator + Consts.APP_NAME
* *
*
* @date 2014-9-29-上午11:04:23 * @date 2014-9-29-上午11:04:23
*
*/ */
public void saveXMLFile() { public void saveXMLFile() {
File xmlFile = this.getDesignerEnvFile(); File xmlFile = this.getDesignerEnvFile();
@ -577,7 +630,6 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
* 是否加入产品改良 * 是否加入产品改良
* *
* @return 是否加入产品改良 * @return 是否加入产品改良
*
*/ */
public boolean isJoinProductImprove() { public boolean isJoinProductImprove() {
return joinProductImprove; return joinProductImprove;
@ -585,7 +637,6 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
/** /**
* 设置加入产品改良 * 设置加入产品改良
*
*/ */
public void setJoinProductImprove(boolean joinProductImprove) { public void setJoinProductImprove(boolean joinProductImprove) {
this.joinProductImprove = joinProductImprove; this.joinProductImprove = joinProductImprove;
@ -1155,63 +1206,63 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
this.lastShowBBSNewsTime = lastShowBBSNewsTime; this.lastShowBBSNewsTime = lastShowBBSNewsTime;
} }
private void readXMLVersion(XMLableReader reader){ private void readXMLVersion(XMLableReader reader) {
String tmpVal; String tmpVal;
if ((tmpVal = reader.getElementValue()) != null) { if ((tmpVal = reader.getElementValue()) != null) {
reader.setXmlVersionByString(tmpVal); reader.setXmlVersionByString(tmpVal);
} }
} }
private void readActiveKey(XMLableReader reader){ private void readActiveKey(XMLableReader reader) {
String tmpVal; String tmpVal;
if ((tmpVal = reader.getElementValue()) != null) { if ((tmpVal = reader.getElementValue()) != null) {
this.setActivationKey(tmpVal); this.setActivationKey(tmpVal);
} }
} }
private void readLogLocation(XMLableReader reader){ private void readLogLocation(XMLableReader reader) {
String tmpVal; String tmpVal;
if ((tmpVal = reader.getElementValue()) != null) { if ((tmpVal = reader.getElementValue()) != null) {
this.setLogLocation(tmpVal); this.setLogLocation(tmpVal);
} }
} }
private void readLanguage(XMLableReader reader){ private void readLanguage(XMLableReader reader) {
String tmpVal; String tmpVal;
if ((tmpVal = reader.getElementValue()) != null) { if ((tmpVal = reader.getElementValue()) != null) {
this.setLanguage(Integer.parseInt(tmpVal)); this.setLanguage(Integer.parseInt(tmpVal));
} }
} }
private void readJettyPort(XMLableReader reader){ private void readJettyPort(XMLableReader reader) {
String tmpVal; String tmpVal;
if ((tmpVal = reader.getElementValue()) != null) { if ((tmpVal = reader.getElementValue()) != null) {
this.setJettyServerPort(Integer.parseInt(tmpVal)); this.setJettyServerPort(Integer.parseInt(tmpVal));
} }
} }
private void readPageLengthUnit(XMLableReader reader){ private void readPageLengthUnit(XMLableReader reader) {
String tmpVal; String tmpVal;
if (StringUtils.isNotBlank(tmpVal = reader.getElementValue())) { if (StringUtils.isNotBlank(tmpVal = reader.getElementValue())) {
this.pageLengthUnit = Short.parseShort(tmpVal); this.pageLengthUnit = Short.parseShort(tmpVal);
} }
} }
private void readReportLengthUnit(XMLableReader reader){ private void readReportLengthUnit(XMLableReader reader) {
String tmpVal; String tmpVal;
if (StringUtils.isNotBlank(tmpVal = reader.getElementValue())) { if (StringUtils.isNotBlank(tmpVal = reader.getElementValue())) {
this.reportLengthUnit = Short.parseShort(tmpVal); this.reportLengthUnit = Short.parseShort(tmpVal);
} }
} }
private void readLastOpenFile(XMLableReader reader){ private void readLastOpenFile(XMLableReader reader) {
String tmpVal; String tmpVal;
if (StringUtils.isNotBlank(tmpVal = reader.getElementValue())) { if (StringUtils.isNotBlank(tmpVal = reader.getElementValue())) {
this.lastOpenFilePath = tmpVal; this.lastOpenFilePath = tmpVal;
} }
} }
private void readEncrytionKey(XMLableReader reader){ private void readEncrytionKey(XMLableReader reader) {
String tmpVal; String tmpVal;
if (StringUtils.isNotBlank(tmpVal = reader.getElementValue())) { if (StringUtils.isNotBlank(tmpVal = reader.getElementValue())) {
this.encryptionKey = tmpVal; this.encryptionKey = tmpVal;
@ -1219,15 +1270,14 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
} }
private void readLastBBSTime(XMLableReader reader) {
private void readLastBBSTime(XMLableReader reader){
String tmpVal; String tmpVal;
if (StringUtils.isNotBlank(tmpVal = reader.getElementValue())) { if (StringUtils.isNotBlank(tmpVal = reader.getElementValue())) {
this.lastShowBBSTime = tmpVal; this.lastShowBBSTime = tmpVal;
} }
} }
private void readLastBBSNewsTime(XMLableReader reader){ private void readLastBBSNewsTime(XMLableReader reader) {
String tmpVal; String tmpVal;
if (StringUtils.isNotBlank(tmpVal = reader.getElementValue())) { if (StringUtils.isNotBlank(tmpVal = reader.getElementValue())) {
this.lastShowBBSNewsTime = tmpVal; this.lastShowBBSNewsTime = tmpVal;
@ -1275,15 +1325,15 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
readEncrytionKey(reader); readEncrytionKey(reader);
} else if ("jdkHome".equals(name)) { } else if ("jdkHome".equals(name)) {
this.jdkHome = reader.getElementValue(); this.jdkHome = reader.getElementValue();
}else if ("lastBBSTime".equals(name)){ } else if ("lastBBSTime".equals(name)) {
readLastBBSTime(reader); readLastBBSTime(reader);
} else if ("lastBBSNewsTime".equals(name)){ } else if ("lastBBSNewsTime".equals(name)) {
readLastBBSNewsTime(reader); readLastBBSNewsTime(reader);
}else if ("uuid".equals(name)){ } else if ("uuid".equals(name)) {
readUUID(reader); readUUID(reader);
} else if ("status".equals(name)){ } else if ("status".equals(name)) {
readActiveStatus(reader); readActiveStatus(reader);
} else if (ComparatorUtils.equals(CAS_PARAS,name)){ } else if (ComparatorUtils.equals(CAS_PARAS, name)) {
readHttpsParas(reader); readHttpsParas(reader);
} else if (name.equals("AlphaFineConfigManager")) { } else if (name.equals("AlphaFineConfigManager")) {
readAlphaFineAttr(reader); readAlphaFineAttr(reader);
@ -1297,12 +1347,12 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
reader.readXMLObject(this.alphaFineConfigManager = new AlphaFineConfigManager()); reader.readXMLObject(this.alphaFineConfigManager = new AlphaFineConfigManager());
} }
private void readHttpsParas(XMLableReader reader){ private void readHttpsParas(XMLableReader reader) {
String tempVal; String tempVal;
if((tempVal = reader.getAttrAsString(CAS_CERTIFICATE_PATH, null)) != null){ if ((tempVal = reader.getAttrAsString(CAS_CERTIFICATE_PATH, null)) != null) {
this.setCertificatePath(tempVal); this.setCertificatePath(tempVal);
} }
if((tempVal = reader.getAttrAsString(CAS_CERTIFICATE_PASSWORD, null)) != null){ if ((tempVal = reader.getAttrAsString(CAS_CERTIFICATE_PASSWORD, null)) != null) {
this.setCertificatePass(tempVal); this.setCertificatePass(tempVal);
} }
@ -1519,14 +1569,14 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
} }
//写入uuid //写入uuid
private void writeUUID(XMLPrintWriter writer){ private void writeUUID(XMLPrintWriter writer) {
writer.startTAG("uuid"); writer.startTAG("uuid");
writer.textNode(getUUID()); writer.textNode(getUUID());
writer.end(); writer.end();
} }
//读取uuid //读取uuid
private void readUUID(XMLableReader reader){ private void readUUID(XMLableReader reader) {
String tmpVal; String tmpVal;
if (StringUtils.isNotBlank(tmpVal = reader.getElementValue())) { if (StringUtils.isNotBlank(tmpVal = reader.getElementValue())) {
this.uuid = tmpVal; this.uuid = tmpVal;
@ -1534,8 +1584,8 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
} }
//写入激活状态 //写入激活状态
private void writeActiveStatus(XMLPrintWriter writer){ private void writeActiveStatus(XMLPrintWriter writer) {
if (this.activeKeyStatus == 0){ if (this.activeKeyStatus == 0) {
writer.startTAG("status"); writer.startTAG("status");
writer.textNode(this.activeKeyStatus + ""); writer.textNode(this.activeKeyStatus + "");
writer.end(); writer.end();
@ -1543,7 +1593,7 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
} }
//读取激活状态 //读取激活状态
private void readActiveStatus(XMLableReader reader){ private void readActiveStatus(XMLableReader reader) {
String tmpVal; String tmpVal;
if (StringUtils.isNotBlank(tmpVal = reader.getElementValue())) { if (StringUtils.isNotBlank(tmpVal = reader.getElementValue())) {
this.activeKeyStatus = Integer.parseInt(tmpVal); this.activeKeyStatus = Integer.parseInt(tmpVal);
@ -1596,7 +1646,7 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
if (!this.isOracleSystemSpace()) { if (!this.isOracleSystemSpace()) {
writer.attr("useOracleSystemSpace", this.isOracleSystemSpace()); writer.attr("useOracleSystemSpace", this.isOracleSystemSpace());
} }
if (!this.isJoinProductImprove()){ if (!this.isJoinProductImprove()) {
writer.attr("joinProductImprove", this.isJoinProductImprove()); writer.attr("joinProductImprove", this.isJoinProductImprove());
} }
if (!this.isAutoBackUp()) { if (!this.isAutoBackUp()) {
@ -1681,29 +1731,29 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
} }
//写论坛相关的两个属性 //写论坛相关的两个属性
private void writeBBSRelated(XMLPrintWriter writer){ private void writeBBSRelated(XMLPrintWriter writer) {
if (StringUtils.isNotEmpty(this.lastShowBBSTime)){ if (StringUtils.isNotEmpty(this.lastShowBBSTime)) {
writer.startTAG("lastBBSTime"); writer.startTAG("lastBBSTime");
writer.textNode(lastShowBBSTime); writer.textNode(lastShowBBSTime);
writer.end(); writer.end();
} }
if (StringUtils.isNotEmpty(this.lastShowBBSNewsTime)){ if (StringUtils.isNotEmpty(this.lastShowBBSNewsTime)) {
writer.startTAG("lastBBSNewsTime"); writer.startTAG("lastBBSNewsTime");
writer.textNode(lastShowBBSNewsTime); writer.textNode(lastShowBBSNewsTime);
writer.end(); writer.end();
} }
} }
private void writeHttpsParas(XMLPrintWriter writer){ private void writeHttpsParas(XMLPrintWriter writer) {
writer.startTAG(CAS_PARAS); writer.startTAG(CAS_PARAS);
if(StringUtils.isNotBlank(certificatePath)){ if (StringUtils.isNotBlank(certificatePath)) {
writer.attr(CAS_CERTIFICATE_PATH, certificatePath); writer.attr(CAS_CERTIFICATE_PATH, certificatePath);
} }
if(StringUtils.isNotBlank(certificatePass)){ if (StringUtils.isNotBlank(certificatePass)) {
writer.attr(CAS_CERTIFICATE_PASSWORD, certificatePass); writer.attr(CAS_CERTIFICATE_PASSWORD, certificatePass);
} }
if(isHttps){ if (isHttps) {
writer.attr("enable", true); writer.attr("enable", true);
} }
writer.end(); writer.end();

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

@ -59,11 +59,7 @@ public abstract class BaseDesigner extends ToolBarMenuDock {
private Timer timer; private Timer timer;
public BaseDesigner(String[] args) { public BaseDesigner(String[] args) {
BuildContext.setBuildFilePath(buildPropertiesPath());
if (isDebug()) {
setDebugEnv();
}
RestartHelper.deleteRecordFilesWhenStart(); RestartHelper.deleteRecordFilesWhenStart();
//初始化插件引擎 //初始化插件引擎
PluginStartup.start(); PluginStartup.start();
@ -71,7 +67,12 @@ public abstract class BaseDesigner extends ToolBarMenuDock {
PluginConversionModule.getInstance().markDesignerStart(); PluginConversionModule.getInstance().markDesignerStart();
SiteCenter.getInstance(); SiteCenter.getInstance();
DesignUtils.setPort(getStartPort()); BuildContext.setBuildFilePath(buildPropertiesPath());
if (isDebug()) {
setDebugEnv();
} else {
DesignUtils.setPort(getStartPort());
}
// 如果端口被占用了 说明程序已经运行了一次,也就是说,已经建立一个监听服务器,现在只要给服务器发送命令就好了 // 如果端口被占用了 说明程序已经运行了一次,也就是说,已经建立一个监听服务器,现在只要给服务器发送命令就好了
if (DesignUtils.isStarted()) { if (DesignUtils.isStarted()) {
DesignUtils.clientSend(args); DesignUtils.clientSend(args);

Loading…
Cancel
Save