diff --git a/designer_base/src/com/fr/design/DesignerEnvManager.java b/designer_base/src/com/fr/design/DesignerEnvManager.java index 4a4097941..1640f3de8 100644 --- a/designer_base/src/com/fr/design/DesignerEnvManager.java +++ b/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.SignIn; import com.fr.file.FILEFactory; -import com.fr.general.*; -import com.fr.stable.*; +import com.fr.general.ComparatorUtils; +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.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.SwingWorker.StateValue; import java.awt.*; -import java.io.*; -import java.util.*; +import java.io.File; +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.Map; import java.util.Map.Entry; import java.util.logging.FileHandler; import java.util.logging.Handler; -import org.apache.log4j.Level; /** * The manager of Designer GUI. @@ -36,6 +61,7 @@ import org.apache.log4j.Level; public class DesignerEnvManager implements XMLReadable, XMLWriter { private static final int MAX_SHOW_NUM = 10; + private static final String VERSION_80 = "80"; private static DesignerEnvManager designerEnvManager; // gui. private String activationKey = null; @@ -145,19 +171,19 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter { designerEnvManager.setCurEnvName(name); } } - + GeneralContext.addEnvChangedListener(new EnvChangedListener() { @Override public void envChanged() { - + designerEnvManager.setCurrentDirectoryPrefix(FILEFactory.ENV_PREFIX); designerEnvManager.setDialogCurrentDirectory(ProjectConstants.REPORTLETS_NAME); } }); - + } - + return designerEnvManager; } @@ -219,9 +245,7 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter { calender.setTimeInMillis(System.currentTimeMillis()); String today = calender.get(Calendar.YEAR) + "-" + (calender.get(Calendar.MONTH) + 1) + "-" + calender.get(Calendar.DAY_OF_MONTH); - String fileName = StableUtils.pathJoin(new String[]{ - logLocation, "fr_" + today + "_%g.log" - }); + String fileName = StableUtils.pathJoin(logLocation, "fr_" + today + "_%g.log"); if (!new java.io.File(fileName).exists()) { StableUtils.makesureFileExist(new java.io.File(fileName)); } @@ -253,11 +277,14 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter { try { FileWriter fileWriter = new FileWriter(envFile); 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()) { // marks:兼容DesignerEnv6-1.xml FileReader fileReader = new FileReader(oldEnvFile); Utils.copyCharTo(fileReader, fileWriter); fileReader.close(); + } else if (envFile80.exists()) { + compatibilityPrevVersion(envFile80); } else { // marks:生成一个新的xml文件 StringReader stringReader = new StringReader(""); @@ -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(); + recentOpenedFilePathList = new ArrayList(); + curEnvName = null; + designerEnvManager.saveXMLFile(); + } + public static void setEnvFile(File envFile) { DesignerEnvManager.envFile = envFile; } @@ -285,6 +339,7 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter { /** * 是否启用了https + * * @return 同上 */ public boolean isHttps() { @@ -311,7 +366,7 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter { return certificatePass; } - public void setCertificatePass(String certificatePass){ + public void setCertificatePass(String certificatePass) { this.certificatePass = certificatePass; } @@ -531,13 +586,13 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter { this.reportLengthUnit = reportLengthUnit; } - private void writeTempFile(File tempFile){ - try{ + private void writeTempFile(File tempFile) { + try { OutputStream fout = new FileOutputStream(tempFile); XMLTools.writeOutputStreamXML(this, fout); fout.flush(); fout.close(); - }catch (Exception e) { + } catch (Exception e) { FRContext.getLogger().error(e.getMessage()); } } @@ -546,9 +601,7 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter { * 保存设计器的配置文件, 该文件不在env的resource目录下 * 而是在Consts.getEnvHome() + File.separator + Consts.APP_NAME * - * * @date 2014-9-29-上午11:04:23 - * */ public void saveXMLFile() { File xmlFile = this.getDesignerEnvFile(); @@ -577,7 +630,6 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter { * 是否加入产品改良 * * @return 是否加入产品改良 - * */ public boolean isJoinProductImprove() { return joinProductImprove; @@ -585,7 +637,6 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter { /** * 设置加入产品改良 - * */ public void setJoinProductImprove(boolean joinProductImprove) { this.joinProductImprove = joinProductImprove; @@ -1155,63 +1206,63 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter { this.lastShowBBSNewsTime = lastShowBBSNewsTime; } - private void readXMLVersion(XMLableReader reader){ + private void readXMLVersion(XMLableReader reader) { String tmpVal; if ((tmpVal = reader.getElementValue()) != null) { reader.setXmlVersionByString(tmpVal); } } - private void readActiveKey(XMLableReader reader){ + private void readActiveKey(XMLableReader reader) { String tmpVal; if ((tmpVal = reader.getElementValue()) != null) { this.setActivationKey(tmpVal); } } - private void readLogLocation(XMLableReader reader){ + private void readLogLocation(XMLableReader reader) { String tmpVal; if ((tmpVal = reader.getElementValue()) != null) { this.setLogLocation(tmpVal); } } - private void readLanguage(XMLableReader reader){ + private void readLanguage(XMLableReader reader) { String tmpVal; if ((tmpVal = reader.getElementValue()) != null) { this.setLanguage(Integer.parseInt(tmpVal)); } } - private void readJettyPort(XMLableReader reader){ + private void readJettyPort(XMLableReader reader) { String tmpVal; if ((tmpVal = reader.getElementValue()) != null) { this.setJettyServerPort(Integer.parseInt(tmpVal)); } } - private void readPageLengthUnit(XMLableReader reader){ + private void readPageLengthUnit(XMLableReader reader) { String tmpVal; if (StringUtils.isNotBlank(tmpVal = reader.getElementValue())) { this.pageLengthUnit = Short.parseShort(tmpVal); } } - private void readReportLengthUnit(XMLableReader reader){ + private void readReportLengthUnit(XMLableReader reader) { String tmpVal; if (StringUtils.isNotBlank(tmpVal = reader.getElementValue())) { this.reportLengthUnit = Short.parseShort(tmpVal); } } - private void readLastOpenFile(XMLableReader reader){ + private void readLastOpenFile(XMLableReader reader) { String tmpVal; if (StringUtils.isNotBlank(tmpVal = reader.getElementValue())) { this.lastOpenFilePath = tmpVal; } } - private void readEncrytionKey(XMLableReader reader){ + private void readEncrytionKey(XMLableReader reader) { String tmpVal; if (StringUtils.isNotBlank(tmpVal = reader.getElementValue())) { 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; if (StringUtils.isNotBlank(tmpVal = reader.getElementValue())) { this.lastShowBBSTime = tmpVal; } } - private void readLastBBSNewsTime(XMLableReader reader){ + private void readLastBBSNewsTime(XMLableReader reader) { String tmpVal; if (StringUtils.isNotBlank(tmpVal = reader.getElementValue())) { this.lastShowBBSNewsTime = tmpVal; @@ -1275,15 +1325,15 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter { readEncrytionKey(reader); } else if ("jdkHome".equals(name)) { this.jdkHome = reader.getElementValue(); - }else if ("lastBBSTime".equals(name)){ + } else if ("lastBBSTime".equals(name)) { readLastBBSTime(reader); - } else if ("lastBBSNewsTime".equals(name)){ + } else if ("lastBBSNewsTime".equals(name)) { readLastBBSNewsTime(reader); - }else if ("uuid".equals(name)){ + } else if ("uuid".equals(name)) { readUUID(reader); - } else if ("status".equals(name)){ + } else if ("status".equals(name)) { readActiveStatus(reader); - } else if (ComparatorUtils.equals(CAS_PARAS,name)){ + } else if (ComparatorUtils.equals(CAS_PARAS, name)) { readHttpsParas(reader); } else if (name.equals("AlphaFineConfigManager")) { readAlphaFineAttr(reader); @@ -1297,12 +1347,12 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter { reader.readXMLObject(this.alphaFineConfigManager = new AlphaFineConfigManager()); } - private void readHttpsParas(XMLableReader reader){ + private void readHttpsParas(XMLableReader reader) { String tempVal; - if((tempVal = reader.getAttrAsString(CAS_CERTIFICATE_PATH, null)) != null){ + if ((tempVal = reader.getAttrAsString(CAS_CERTIFICATE_PATH, null)) != null) { this.setCertificatePath(tempVal); } - if((tempVal = reader.getAttrAsString(CAS_CERTIFICATE_PASSWORD, null)) != null){ + if ((tempVal = reader.getAttrAsString(CAS_CERTIFICATE_PASSWORD, null)) != null) { this.setCertificatePass(tempVal); } @@ -1519,14 +1569,14 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter { } //写入uuid - private void writeUUID(XMLPrintWriter writer){ + private void writeUUID(XMLPrintWriter writer) { writer.startTAG("uuid"); writer.textNode(getUUID()); writer.end(); } //读取uuid - private void readUUID(XMLableReader reader){ + private void readUUID(XMLableReader reader) { String tmpVal; if (StringUtils.isNotBlank(tmpVal = reader.getElementValue())) { this.uuid = tmpVal; @@ -1534,8 +1584,8 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter { } //写入激活状态 - private void writeActiveStatus(XMLPrintWriter writer){ - if (this.activeKeyStatus == 0){ + private void writeActiveStatus(XMLPrintWriter writer) { + if (this.activeKeyStatus == 0) { writer.startTAG("status"); writer.textNode(this.activeKeyStatus + ""); writer.end(); @@ -1543,7 +1593,7 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter { } //读取激活状态 - private void readActiveStatus(XMLableReader reader){ + private void readActiveStatus(XMLableReader reader) { String tmpVal; if (StringUtils.isNotBlank(tmpVal = reader.getElementValue())) { this.activeKeyStatus = Integer.parseInt(tmpVal); @@ -1596,7 +1646,7 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter { if (!this.isOracleSystemSpace()) { writer.attr("useOracleSystemSpace", this.isOracleSystemSpace()); } - if (!this.isJoinProductImprove()){ + if (!this.isJoinProductImprove()) { writer.attr("joinProductImprove", this.isJoinProductImprove()); } if (!this.isAutoBackUp()) { @@ -1681,29 +1731,29 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter { } //写论坛相关的两个属性 - private void writeBBSRelated(XMLPrintWriter writer){ - if (StringUtils.isNotEmpty(this.lastShowBBSTime)){ + private void writeBBSRelated(XMLPrintWriter writer) { + if (StringUtils.isNotEmpty(this.lastShowBBSTime)) { writer.startTAG("lastBBSTime"); writer.textNode(lastShowBBSTime); writer.end(); } - if (StringUtils.isNotEmpty(this.lastShowBBSNewsTime)){ + if (StringUtils.isNotEmpty(this.lastShowBBSNewsTime)) { writer.startTAG("lastBBSNewsTime"); writer.textNode(lastShowBBSNewsTime); writer.end(); } } - private void writeHttpsParas(XMLPrintWriter writer){ + private void writeHttpsParas(XMLPrintWriter writer) { writer.startTAG(CAS_PARAS); - if(StringUtils.isNotBlank(certificatePath)){ + if (StringUtils.isNotBlank(certificatePath)) { writer.attr(CAS_CERTIFICATE_PATH, certificatePath); } - if(StringUtils.isNotBlank(certificatePass)){ + if (StringUtils.isNotBlank(certificatePass)) { writer.attr(CAS_CERTIFICATE_PASSWORD, certificatePass); } - if(isHttps){ + if (isHttps) { writer.attr("enable", true); } writer.end(); @@ -1736,7 +1786,7 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter { if (env == null) { return; } - + writer.startTAG("Env"); writer.classAttr(env.getClass()); writer.attr("name", name); diff --git a/designer_base/src/com/fr/start/BaseDesigner.java b/designer_base/src/com/fr/start/BaseDesigner.java index a3d278f8a..3f24b645a 100644 --- a/designer_base/src/com/fr/start/BaseDesigner.java +++ b/designer_base/src/com/fr/start/BaseDesigner.java @@ -59,11 +59,7 @@ public abstract class BaseDesigner extends ToolBarMenuDock { private Timer timer; public BaseDesigner(String[] args) { - BuildContext.setBuildFilePath(buildPropertiesPath()); - if (isDebug()) { - setDebugEnv(); - } RestartHelper.deleteRecordFilesWhenStart(); //初始化插件引擎 PluginStartup.start(); @@ -71,7 +67,12 @@ public abstract class BaseDesigner extends ToolBarMenuDock { PluginConversionModule.getInstance().markDesignerStart(); SiteCenter.getInstance(); - DesignUtils.setPort(getStartPort()); + BuildContext.setBuildFilePath(buildPropertiesPath()); + if (isDebug()) { + setDebugEnv(); + } else { + DesignUtils.setPort(getStartPort()); + } // 如果端口被占用了 说明程序已经运行了一次,也就是说,已经建立一个监听服务器,现在只要给服务器发送命令就好了 if (DesignUtils.isStarted()) { DesignUtils.clientSend(args); @@ -99,7 +100,7 @@ public abstract class BaseDesigner extends ToolBarMenuDock { DesignUtils.initLookAndFeel(); DesignUtils.creatListeningServer(getStartPort(), startFileSuffix()); - + // 初始化Log Handler DesignerEnvManager.loadLogSetting(); DesignerFrame df = createDesignerFrame();