From 61fd215bacec88366751847112c9348c4e88aaf3 Mon Sep 17 00:00:00 2001 From: plough Date: Thu, 18 Apr 2019 17:49:46 +0800 Subject: [PATCH] =?UTF-8?q?REPORT-15314=20103=E6=A8=A1=E6=9D=BF=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E6=94=B6=E9=9B=86=3D>=E9=87=8D=E6=9E=84=3D>=E5=8E=BB?= =?UTF-8?q?=E6=8E=898.0=E6=97=B6=E6=9C=9F=E7=9A=84=E5=85=BC=E5=AE=B9?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../template/info/TemplateInfoCollector.java | 69 ++++--------------- 1 file changed, 15 insertions(+), 54 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/mainframe/template/info/TemplateInfoCollector.java b/designer-base/src/main/java/com/fr/design/mainframe/template/info/TemplateInfoCollector.java index d7239886f..2a4fa1a04 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/template/info/TemplateInfoCollector.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/template/info/TemplateInfoCollector.java @@ -22,11 +22,10 @@ import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; +import java.io.FileReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; -import java.io.ObjectInputStream; -import java.io.Serializable; import java.io.UnsupportedEncodingException; import java.text.SimpleDateFormat; import java.util.ArrayList; @@ -38,14 +37,12 @@ import java.util.Map; * 做模板的过程和耗时收集,辅助类 * Created by plough on 2017/2/21. */ -public class TemplateInfoCollector implements Serializable, XMLReadable, XMLWriter { +public class TemplateInfoCollector implements XMLReadable, XMLWriter { private static final String XML_TAG = "TplInfo"; private static final String XML_DESIGNER_OPEN_DATE = "DesignerOpenDate"; private static final String XML_TEMPLATE_INFO_LIST = "TemplateInfoList"; - static final long serialVersionUID = 2007L; private static final String XML_FILE_NAME = "tpl.info"; - private static final String OBJECT_FILE_NAME = "tplInfo.ser"; private static final int ONE_THOUSAND = 1000; @@ -56,48 +53,37 @@ public class TemplateInfoCollector implements Serializable, XMLReadable, XMLWrit @SuppressWarnings("unchecked") private TemplateInfoCollector() { - templateInfoMap = new HashMap<>(); setDesignerOpenDate(); + + loadTemplateInfoMap(); } - /** - * 获取缓存文件存放路径 - */ - private static File getInfoFile(String fileName) { - return new File(StableUtils.pathJoin(ProductConstants.getEnvHome(), fileName)); + private void loadTemplateInfoMap() { + templateInfoMap = new HashMap<>(); + try { + XMLableReader xmlReader = XMLableReader.createXMLableReader(new FileReader(getInfoFile())); + xmlReader.readXMLObject(this); + } catch (XMLStreamException e) { + e.printStackTrace(); + } catch (FileNotFoundException e) { + e.printStackTrace(); + } } /** * 获取缓存文件存放路径 */ private static File getInfoFile() { - return getInfoFile(XML_FILE_NAME); + return new File(StableUtils.pathJoin(ProductConstants.getEnvHome(), XML_FILE_NAME)); } public static TemplateInfoCollector getInstance() { if (instance == null) { instance = new TemplateInfoCollector(); - - File xmlFile = getInfoFile(); - File objFile = getInfoFile(OBJECT_FILE_NAME); - if (xmlFile.exists()) { - readXMLFile(instance, xmlFile); - } else if (objFile.exists()) { - readFromObjectFile(objFile); - } } return instance; } - private static void readFromObjectFile(File objFile) { - try { - ObjectInputStream is = new ObjectInputStream(new FileInputStream(objFile)); - instance = (TemplateInfoCollector) is.readObject(); - } catch (Exception ex) { - // 什么也不做,instance 使用新值 - } - } - /** * 根据模板ID是否在收集列表中,判断是否需要收集当前模板的信息 */ @@ -105,13 +91,10 @@ public class TemplateInfoCollector implements Serializable, XMLReadable, XMLWrit return StringUtils.isNotEmpty(templateID) && templateInfoMap.containsKey(templateID); } - - /** * 收集模板信息。如果之前没有记录,则新增;如果已有记录,则更新。 * 同时将最新数据保存到文件中。 */ - @SuppressWarnings("unchecked") public void collectInfo(String templateID, TemplateProcessInfo processInfo, long openTime, long saveTime) { if (!shouldCollectInfo()) { return; @@ -160,28 +143,6 @@ public class TemplateInfoCollector implements Serializable, XMLReadable, XMLWrit saveInfo(); } - private static void readXMLFile(XMLReadable xmlReadable, File xmlFile) { - String charset = EncodeConstants.ENCODING_UTF_8; - try { - String fileContent = getFileContent(xmlFile); - InputStream xmlInputStream = new ByteArrayInputStream(fileContent.getBytes(charset)); - InputStreamReader inputStreamReader = new InputStreamReader(xmlInputStream, charset); - XMLableReader xmlReader = XMLableReader.createXMLableReader(inputStreamReader); - - if (xmlReader != null) { - xmlReader.readXMLObject(xmlReadable); - } - xmlInputStream.close(); - } catch (FileNotFoundException e) { - FineLoggerFactory.getLogger().error(e.getMessage(), e); - } catch (IOException e) { - FineLoggerFactory.getLogger().error(e.getMessage(), e); - } catch (XMLStreamException e) { - FineLoggerFactory.getLogger().error(e.getMessage(), e); - } - - } - private static String getFileContent(File xmlFile) throws FileNotFoundException, UnsupportedEncodingException { InputStream is = new FileInputStream(xmlFile); return IOUtils.inputStream2String(is);