From bf8d6fbe99769688bcb3e20b5ee1b07241027e32 Mon Sep 17 00:00:00 2001 From: abel Date: Fri, 21 Dec 2018 15:57:11 +0800 Subject: [PATCH 01/10] =?UTF-8?q?REPORT-13573=20=E8=BF=9C=E7=A8=8B?= =?UTF-8?q?=E8=AE=BE=E8=AE=A1=E9=A2=84=E8=A7=88=E5=A4=A7=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=E7=9A=84=E6=95=B0=E6=8D=AE=E9=9B=86=E5=8D=A1=E9=A1=BF=EF=BC=88?= =?UTF-8?q?=E5=B0=86=E4=BC=A0=E8=BE=93=E5=85=A8=E9=83=A8=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=E6=94=B9=E6=88=90=E5=8F=AA=E4=BC=A0=E6=95=B0=E6=8D=AE=E9=9B=86?= =?UTF-8?q?=EF=BC=89&&=20=E5=8F=AA=E5=90=AB=E6=95=B0=E6=8D=AE=E9=9B=86?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E5=BA=8F=E5=88=97=E5=8C=96=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/data/DesignTableDataManager.java | 15 +- .../design/AbstractTableDatasourceTest.java | 166 ++++++++++++++++++ 2 files changed, 180 insertions(+), 1 deletion(-) create mode 100644 designer-base/src/test/java/com/fr/design/AbstractTableDatasourceTest.java diff --git a/designer-base/src/main/java/com/fr/design/data/DesignTableDataManager.java b/designer-base/src/main/java/com/fr/design/data/DesignTableDataManager.java index ec1f69d98..ee7df6015 100644 --- a/designer-base/src/main/java/com/fr/design/data/DesignTableDataManager.java +++ b/designer-base/src/main/java/com/fr/design/data/DesignTableDataManager.java @@ -3,6 +3,7 @@ package com.fr.design.data; import com.fr.base.FRContext; import com.fr.base.StoreProcedureParameter; import com.fr.base.TableData; +import com.fr.data.AbstractTableDataSource; import com.fr.data.TableDataSource; import com.fr.data.core.DataCoreXmlUtils; import com.fr.data.impl.EmbeddedTableData; @@ -444,7 +445,19 @@ public abstract class DesignTableDataManager { parameter.setValue(parameterMap.get(parameter.getName())); } } - return DataOperator.getInstance().previewTableData(tableDataSource, tabledata, parameterMap, rowCount); + //这边数据集预览不需要把整个模板都发送过去,只需要把模板中的数据集挑出来,传过去就行了。模板一大,预览数据集很变得很慢。 + TableDataSource wrapper = null; + if (tableDataSource != null) { + wrapper = new AbstractTableDataSource(){}; + for (Iterator it = tableDataSource.getTableDataNameIterator(); it != null && it.hasNext(); ) { + String name = it.next(); + TableData tableData = tableDataSource.getTableData(name); + if (tableData != null) { + wrapper.putTableData(name, tableData); + } + } + } + return DataOperator.getInstance().previewTableData(wrapper, tabledata, parameterMap, rowCount); } catch (Exception e) { throw new TableDataException(e.getMessage(), e); } finally { diff --git a/designer-base/src/test/java/com/fr/design/AbstractTableDatasourceTest.java b/designer-base/src/test/java/com/fr/design/AbstractTableDatasourceTest.java new file mode 100644 index 000000000..e75ec4eb1 --- /dev/null +++ b/designer-base/src/test/java/com/fr/design/AbstractTableDatasourceTest.java @@ -0,0 +1,166 @@ +package com.fr.design; + +import com.fr.base.AbstractTableData; +import com.fr.base.TableData; +import com.fr.cert.token.lang.Assert; +import com.fr.data.AbstractTableDataSource; +import com.fr.data.TableDataSource; +import com.fr.general.data.TableDataException; +import com.fr.script.Calculator; +import com.fr.stable.xml.XMLPrintWriter; +import com.fr.stable.xml.XMLableReader; +import com.fr.third.javax.xml.stream.XMLStreamException; +import junit.framework.TestCase; + +import java.io.ByteArrayOutputStream; +import java.io.InputStreamReader; +import java.io.OutputStreamWriter; +import java.io.UnsupportedEncodingException; + +public class AbstractTableDatasourceTest extends TestCase { + + public void testAbstractTableDataSourceReadAndWrite() throws XMLStreamException, TableDataException, UnsupportedEncodingException { + String xml = "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "7.nI9\\uimQ~\n" + + "]]>\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "9UT+>AM9kpGY!\\4\\SXO$EO1[i^/XKmIMmdu\n" + + "!\"Q5sC\"9Ji(qlAa_kVTnCC/+p:XVF.KGR?GMsmI)2\">1s>(/T71G7cFsfA\"UpjYr4R)A14-*\n" + + "qc6ri_1*%/XSsf!PM]ARc+ojE:eo:_gma!ut7eZ6BoFc2b5hu4@TUtuOT);aq6l4Vj\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "YfS3J$NPo=IB3AP?eiop.bk9Qu\n" + + "P:F\\.L&t$31~\n" + + "]]>\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "5++,D>0thk;G<`mPXn.b)QZb5j^mQri%8Ji5q\\\n" + + "\n" + + "\n"; + + AbstractTableDataSource source = new AbstractTableDataSource() { + }; + XMLableReader.createXMLableReader(xml).readXMLObject(source); + TableData tableData = source.getTableData("热销产品"); + Assert.notNull(tableData); + Assert.isTrue(tableData.createDataModel(Calculator.createCalculator()).getRowCount() == 4); + Assert.isTrue(tableData.createDataModel(Calculator.createCalculator()).getColumnCount() == 2); + ByteArrayOutputStream out = new ByteArrayOutputStream(); + XMLPrintWriter writer = XMLPrintWriter.create(new OutputStreamWriter(out,"UTF-8")); + source.writeXML(writer); + writer.close(); + TableDataSource another = new AbstractTableDataSource(){}; + XMLableReader.createXMLableReader(new String(out.toByteArray(),"UTF-8")).readXMLObject(another); + tableData = another.getTableData("热销产品"); + Assert.notNull(tableData); + Assert.isTrue(tableData.createDataModel(Calculator.createCalculator()).getRowCount() == 4); + Assert.isTrue(tableData.createDataModel(Calculator.createCalculator()).getColumnCount() == 2); + } +} From 1f1c2cb4c0df44984d67d18bf6cf0963f5659e03 Mon Sep 17 00:00:00 2001 From: abel Date: Fri, 21 Dec 2018 16:01:17 +0800 Subject: [PATCH 02/10] =?UTF-8?q?=E5=A4=A7=E6=A8=A1=E6=9D=BF=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E9=9B=86=E9=A2=84=E8=A7=88=E6=80=A7=E8=83=BD=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...stractTableDatasourceTest.java => TableDatasourceTest.java} | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) rename designer-base/src/test/java/com/fr/design/{AbstractTableDatasourceTest.java => TableDatasourceTest.java} (99%) diff --git a/designer-base/src/test/java/com/fr/design/AbstractTableDatasourceTest.java b/designer-base/src/test/java/com/fr/design/TableDatasourceTest.java similarity index 99% rename from designer-base/src/test/java/com/fr/design/AbstractTableDatasourceTest.java rename to designer-base/src/test/java/com/fr/design/TableDatasourceTest.java index e75ec4eb1..ed6aa3657 100644 --- a/designer-base/src/test/java/com/fr/design/AbstractTableDatasourceTest.java +++ b/designer-base/src/test/java/com/fr/design/TableDatasourceTest.java @@ -13,11 +13,10 @@ import com.fr.third.javax.xml.stream.XMLStreamException; import junit.framework.TestCase; import java.io.ByteArrayOutputStream; -import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.UnsupportedEncodingException; -public class AbstractTableDatasourceTest extends TestCase { +public class TableDatasourceTest extends TestCase { public void testAbstractTableDataSourceReadAndWrite() throws XMLStreamException, TableDataException, UnsupportedEncodingException { String xml = "\n" + From bd65d47a210a6f8b5ce022ea79fe52f8feb70a39 Mon Sep 17 00:00:00 2001 From: zack Date: Thu, 27 Dec 2018 11:27:44 +0800 Subject: [PATCH 03/10] =?UTF-8?q?REPORT-10829=20=20=E8=A3=85=E4=BA=86?= =?UTF-8?q?=E6=97=A5=E5=BF=97=E6=8F=92=E4=BB=B6=E5=90=8E=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E5=99=A8=E6=97=A0=E6=B3=95=E5=85=B3=E9=97=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/mainframe/loghandler/LogMessageBar.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/designer-base/src/main/java/com/fr/design/mainframe/loghandler/LogMessageBar.java b/designer-base/src/main/java/com/fr/design/mainframe/loghandler/LogMessageBar.java index bf815e1d7..3b0593708 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/loghandler/LogMessageBar.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/loghandler/LogMessageBar.java @@ -69,8 +69,11 @@ public class LogMessageBar extends JPanel { return new Dimension(width, 24); } + /** + * 销毁内置的日志面板,外部插件会用到 + */ public void disposeLogDialog() { - if (dlg != null) { + if (dlg != null && dlg.isShowing()) { dlg.dispose(); } THIS = null; From 80e049a6275959345f94cf584e278d56d8603b80 Mon Sep 17 00:00:00 2001 From: abel Date: Thu, 27 Dec 2018 14:34:12 +0800 Subject: [PATCH 04/10] =?UTF-8?q?REPORT-13573=20=E8=BF=9C=E7=A8=8B?= =?UTF-8?q?=E9=A2=84=E8=A7=88=E6=8A=A5=E8=A1=A8=E6=95=B0=E6=8D=AE=E9=9B=86?= =?UTF-8?q?=EF=BC=8C=E4=BC=9A=E6=8A=8A=E6=8A=A5=E8=A1=A8=E4=BC=A0=E5=88=B0?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E7=AB=AF=EF=BC=8C=E6=8A=A5=E8=A1=A8=E6=AF=94?= =?UTF-8?q?=E8=BE=83=E5=A4=A7=EF=BC=8C=E4=BC=9A=E6=9C=89=E6=80=A7=E8=83=BD?= =?UTF-8?q?=E9=97=AE=E9=A2=98=EF=BC=8C=E8=A3=81=E5=89=AA=E4=B8=80=E4=B8=8B?= =?UTF-8?q?=E6=8A=A5=E8=A1=A8=EF=BC=8C=E5=8F=AA=E6=8A=8A=E9=9C=80=E8=A6=81?= =?UTF-8?q?=E7=9A=84=E9=83=A8=E5=88=86=E5=8F=91=E8=BF=87=E5=8E=BB=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/data/DesignTableDataManager.java | 16 +- .../com/fr/design/TableDatasourceTest.java | 165 ------------------ 2 files changed, 2 insertions(+), 179 deletions(-) delete mode 100644 designer-base/src/test/java/com/fr/design/TableDatasourceTest.java diff --git a/designer-base/src/main/java/com/fr/design/data/DesignTableDataManager.java b/designer-base/src/main/java/com/fr/design/data/DesignTableDataManager.java index ee7df6015..fc5e8b54f 100644 --- a/designer-base/src/main/java/com/fr/design/data/DesignTableDataManager.java +++ b/designer-base/src/main/java/com/fr/design/data/DesignTableDataManager.java @@ -3,8 +3,8 @@ package com.fr.design.data; import com.fr.base.FRContext; import com.fr.base.StoreProcedureParameter; import com.fr.base.TableData; -import com.fr.data.AbstractTableDataSource; import com.fr.data.TableDataSource; +import com.fr.data.TableDataSourceTailor; import com.fr.data.core.DataCoreXmlUtils; import com.fr.data.impl.EmbeddedTableData; import com.fr.data.impl.storeproc.ProcedureDataModel; @@ -445,19 +445,7 @@ public abstract class DesignTableDataManager { parameter.setValue(parameterMap.get(parameter.getName())); } } - //这边数据集预览不需要把整个模板都发送过去,只需要把模板中的数据集挑出来,传过去就行了。模板一大,预览数据集很变得很慢。 - TableDataSource wrapper = null; - if (tableDataSource != null) { - wrapper = new AbstractTableDataSource(){}; - for (Iterator it = tableDataSource.getTableDataNameIterator(); it != null && it.hasNext(); ) { - String name = it.next(); - TableData tableData = tableDataSource.getTableData(name); - if (tableData != null) { - wrapper.putTableData(name, tableData); - } - } - } - return DataOperator.getInstance().previewTableData(wrapper, tabledata, parameterMap, rowCount); + return DataOperator.getInstance().previewTableData(TableDataSourceTailor.extractTableData(tableDataSource), tabledata, parameterMap, rowCount); } catch (Exception e) { throw new TableDataException(e.getMessage(), e); } finally { diff --git a/designer-base/src/test/java/com/fr/design/TableDatasourceTest.java b/designer-base/src/test/java/com/fr/design/TableDatasourceTest.java deleted file mode 100644 index ed6aa3657..000000000 --- a/designer-base/src/test/java/com/fr/design/TableDatasourceTest.java +++ /dev/null @@ -1,165 +0,0 @@ -package com.fr.design; - -import com.fr.base.AbstractTableData; -import com.fr.base.TableData; -import com.fr.cert.token.lang.Assert; -import com.fr.data.AbstractTableDataSource; -import com.fr.data.TableDataSource; -import com.fr.general.data.TableDataException; -import com.fr.script.Calculator; -import com.fr.stable.xml.XMLPrintWriter; -import com.fr.stable.xml.XMLableReader; -import com.fr.third.javax.xml.stream.XMLStreamException; -import junit.framework.TestCase; - -import java.io.ByteArrayOutputStream; -import java.io.OutputStreamWriter; -import java.io.UnsupportedEncodingException; - -public class TableDatasourceTest extends TestCase { - - public void testAbstractTableDataSourceReadAndWrite() throws XMLStreamException, TableDataException, UnsupportedEncodingException { - String xml = "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "7.nI9\\uimQ~\n" + - "]]>\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "9UT+>AM9kpGY!\\4\\SXO$EO1[i^/XKmIMmdu\n" + - "!\"Q5sC\"9Ji(qlAa_kVTnCC/+p:XVF.KGR?GMsmI)2\">1s>(/T71G7cFsfA\"UpjYr4R)A14-*\n" + - "qc6ri_1*%/XSsf!PM]ARc+ojE:eo:_gma!ut7eZ6BoFc2b5hu4@TUtuOT);aq6l4Vj\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "YfS3J$NPo=IB3AP?eiop.bk9Qu\n" + - "P:F\\.L&t$31~\n" + - "]]>\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "5++,D>0thk;G<`mPXn.b)QZb5j^mQri%8Ji5q\\\n" + - "\n" + - "\n"; - - AbstractTableDataSource source = new AbstractTableDataSource() { - }; - XMLableReader.createXMLableReader(xml).readXMLObject(source); - TableData tableData = source.getTableData("热销产品"); - Assert.notNull(tableData); - Assert.isTrue(tableData.createDataModel(Calculator.createCalculator()).getRowCount() == 4); - Assert.isTrue(tableData.createDataModel(Calculator.createCalculator()).getColumnCount() == 2); - ByteArrayOutputStream out = new ByteArrayOutputStream(); - XMLPrintWriter writer = XMLPrintWriter.create(new OutputStreamWriter(out,"UTF-8")); - source.writeXML(writer); - writer.close(); - TableDataSource another = new AbstractTableDataSource(){}; - XMLableReader.createXMLableReader(new String(out.toByteArray(),"UTF-8")).readXMLObject(another); - tableData = another.getTableData("热销产品"); - Assert.notNull(tableData); - Assert.isTrue(tableData.createDataModel(Calculator.createCalculator()).getRowCount() == 4); - Assert.isTrue(tableData.createDataModel(Calculator.createCalculator()).getColumnCount() == 2); - } -} From bec9d231d82e7f8b233e59f9a3490a08b18ffcdd Mon Sep 17 00:00:00 2001 From: Harrison Date: Thu, 27 Dec 2018 14:54:11 +0800 Subject: [PATCH 05/10] =?UTF-8?q?REPORT-13074=20=E8=BF=9C=E7=A8=8B?= =?UTF-8?q?=E8=AE=BE=E8=AE=A1=E5=90=91=E4=B8=8B=E5=85=BC=E5=AE=B9=20?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=BC=B9=E7=AA=97=E5=A4=A7=E5=B0=8F=EF=BC=8C?= =?UTF-8?q?=E4=BB=A5=E9=80=82=E9=85=8D=E6=96=87=E5=AD=97=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer-base/src/main/java/com/fr/env/RemoteEnvPane.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer-base/src/main/java/com/fr/env/RemoteEnvPane.java b/designer-base/src/main/java/com/fr/env/RemoteEnvPane.java index d2953eeb6..b0f3e9dd4 100644 --- a/designer-base/src/main/java/com/fr/env/RemoteEnvPane.java +++ b/designer-base/src/main/java/com/fr/env/RemoteEnvPane.java @@ -597,7 +597,7 @@ public class RemoteEnvPane extends BasicBeanPane { dialog = new JDialog((Dialog) SwingUtilities.getWindowAncestor(RemoteEnvPane.this), UIManager.getString("OptionPane.messageDialogTitle"), true); - dialog.setSize(new Dimension(268, 118)); + dialog.setSize(new Dimension(308, 132)); okButton.setEnabled(false); JPanel jp = new JPanel(); JPanel upPane = new JPanel(); From 1ec6b56501b6075a7b2969255946bfb1864167b2 Mon Sep 17 00:00:00 2001 From: neil <459208047@qq.com> Date: Sat, 29 Dec 2018 14:08:51 +0800 Subject: [PATCH 06/10] =?UTF-8?q?REPORT-13999=20=E5=85=AC=E5=BC=8F?= =?UTF-8?q?=E5=A2=9E=E5=BC=BA=E7=BC=96=E8=BE=91=E6=8F=92=E4=BB=B6=E5=85=BC?= =?UTF-8?q?=E5=AE=B9.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/formula/FunctionConstants.java | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/formula/FunctionConstants.java b/designer-base/src/main/java/com/fr/design/formula/FunctionConstants.java index eee75a222..6e47237d8 100644 --- a/designer-base/src/main/java/com/fr/design/formula/FunctionConstants.java +++ b/designer-base/src/main/java/com/fr/design/formula/FunctionConstants.java @@ -12,7 +12,6 @@ import com.fr.function.RANGE; import com.fr.function.SUM; import com.fr.function.TIME; import com.fr.general.ComparatorUtils; - import com.fr.general.GeneralUtils; import com.fr.log.FineLoggerFactory; import com.fr.plugin.ExtraClassManager; @@ -25,23 +24,28 @@ import com.fr.stable.fun.mark.Mutable; import com.fr.stable.script.Function; import com.fr.stable.script.FunctionDef; +import javax.swing.DefaultListModel; import java.io.File; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URL; import java.net.URLDecoder; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.Comparator; +import java.util.Enumeration; +import java.util.List; +import java.util.Set; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; -import javax.swing.DefaultListModel; - public final class FunctionConstants { public static FunctionGroup PLUGIN = getPluginFunctionGroup(); public static FunctionGroup CUSTOM = getCustomFunctionGroup(); - static NameAndFunctionList COMMON = getCommonFunctionList(); - static NameAndTypeAndFunctionList[] EMBFUNCTIONS = getEmbededFunctionListArray(); + public static NameAndFunctionList COMMON = getCommonFunctionList(); + public static NameAndTypeAndFunctionList[] EMBFUNCTIONS = getEmbededFunctionListArray(); public static FunctionGroup ALL = getAllFunctionGroup(); static { @@ -117,7 +121,7 @@ public final class FunctionConstants { * 将函数分组插件中的函数添加到对应的列表中 * @param listModel */ - static void addFunctionGroupFromPlugins(DefaultListModel listModel){ + public static void addFunctionGroupFromPlugins(DefaultListModel listModel){ //hugh:自定义函数分组 Set containers = ExtraClassManager.getInstance().getArray(FunctionDefContainer.MARK_STRING); if(!containers.isEmpty()){ From cdcf8aedc2c02439cd53c76318bfe953a233fc00 Mon Sep 17 00:00:00 2001 From: "alex.sung" Date: Wed, 2 Jan 2019 16:35:42 +0800 Subject: [PATCH 07/10] =?UTF-8?q?=E5=90=88=E5=B9=B6=E5=8F=91=E9=80=81?= =?UTF-8?q?=EF=BC=8C=E5=8E=BB=E9=87=8D=EF=BC=9B=20=E6=AF=8F=E6=AC=A1query?= =?UTF-8?q?=20200=E6=9D=A1=EF=BC=8C=E6=94=BE=E5=85=A5=E5=86=85=E5=AD=98?= =?UTF-8?q?=EF=BC=8C=E5=8F=91=E9=80=81=E6=88=90=E5=8A=9F=E5=86=8D=E8=BF=9B?= =?UTF-8?q?=E8=A1=8C=E6=96=B0=E7=9A=84=E8=AF=B7=E6=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mainframe/InformationCollector.java | 187 ++++++++++-------- 1 file changed, 106 insertions(+), 81 deletions(-) diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/InformationCollector.java b/designer-realize/src/main/java/com/fr/design/mainframe/InformationCollector.java index 61b583c61..e6ef66e00 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/InformationCollector.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/InformationCollector.java @@ -89,11 +89,15 @@ public class InformationCollector implements XMLReadable, XMLWriter { private static final String ATTR_TEXT = "text"; private static final String ATTR_SOURCE = "source"; private static final String ATTR_TIME = "time"; + private static final String ATTR_TIMES = "times"; private static final String ATTR_TITLE = "title"; private static final String ATTR_USER_NAME = "username"; private static final String ATTR_UUID = "uuid"; + private static final String ATTR_ITEMS = "items"; private static final String ATTR_FUNCTION_ARRAY = "functionArray"; private static final int MAX_EACH_REQUEST_RECORD_COUNT = 200; + private static final int PAGE_SIZE = 200; + private long totalCount = -1; private static InformationCollector collector; @@ -214,24 +218,17 @@ public class InformationCollector implements XMLReadable, XMLWriter { if (currentTime - lastTime <= DELTA) { return; } - JSONArray content = getFunctionsContent(currentTime, lastTime); - boolean success = false; + boolean success; FineLoggerFactory.getLogger().info("Start sent function records to the cloud center..."); - String url = CloudCenter.getInstance().acquireUrlByKind(TABLE_FUNCTION_RECORD); - try { - for(int i=0;i 0){ - success = sendFunctionRecord(url, functionArray); - } - } - //服务器返回true, 说明已经获取成功, 更新最后一次发送时间 - if (success) { - this.lastTime = dateToString(); - FineLoggerFactory.getLogger().info("Function records successfully sent to the cloud center."); - } - }catch (Exception e) { - FineLoggerFactory.getLogger().error(e.getMessage(), e); + success = queryAndSendOnePageFunctionContent(currentTime, lastTime, 0); + long page = (totalCount/PAGE_SIZE) + 1; + for(int i=1; i focusPoints = MetricRegistry.getMetric().find(FocusPoint.class,condition); + //第一次查询获取总记录数 + if(page == 0){ + totalCount = focusPoints.getTotalCount(); + } + return sendThisPageFunctionContent(focusPoints); + } catch (Exception e) { + FineLoggerFactory.getLogger().error(e.getMessage(), e); + } + return false; + } + + private boolean sendThisPageFunctionContent(DataList focusPoints) { + String url = CloudCenter.getInstance().acquireUrlByKind(TABLE_FUNCTION_RECORD); + try { + JSONObject jsonObject = dealWithSendFunctionContent(focusPoints); + return sendFunctionRecord(url, jsonObject); + } catch (JSONException e) { + FineLoggerFactory.getLogger().error(e.getMessage(), e); + } + return false; + } + + private JSONObject dealWithSendFunctionContent(DataList focusPoints) throws JSONException { + JSONObject jsonObject = new JSONObject(); + Map map = new HashMap<>(); + if(!focusPoints.isEmpty()){ + DesignerEnvManager envManager = DesignerEnvManager.getEnvManager(); + String bbsUserName = MarketConfig.getInstance().getBbsUsername(); + String uuid = envManager.getUUID(); + jsonObject.put(ATTR_UUID, uuid); + jsonObject.put(ATTR_USER_NAME, bbsUserName); + for(FocusPoint focusPoint : focusPoints.getList()) { + FunctionRecord functionRecord = getOneRecord(focusPoint); + if (map.containsKey(focusPoint.getId())) { + functionRecord.setTimes(functionRecord.getTimes() + 1); + map.put(focusPoint.getId(), functionRecord); + } else { + map.put(focusPoint.getId(), functionRecord); + } + } + jsonObject.put(ATTR_ITEMS, mapToJSONArray(map)); + } + return jsonObject; + } + + private JSONArray mapToJSONArray(Map map) throws JSONException { + JSONArray jsonArray = new JSONArray(); + for(String keys : map.keySet()){ + FunctionRecord functionRecord = (FunctionRecord)map.get(keys); + JSONObject jo = new JSONObject(); + jo.put(ATTR_ID, functionRecord.getId()); + jo.put(ATTR_TEXT, functionRecord.getText()); + jo.put(ATTR_SOURCE, functionRecord.getSource()); + jo.put(ATTR_TIME, functionRecord.getTime()); + jo.put(ATTR_TITLE, functionRecord.getTitle()); + jo.put(ATTR_TIMES, functionRecord.getTimes()); + jsonArray.put(jo); + } + return jsonArray; + } + + private boolean sendFunctionRecord(String url, JSONObject record) { boolean success = false; try { HashMap para = new HashMap<>(); @@ -266,6 +333,18 @@ public class InformationCollector implements XMLReadable, XMLWriter { return success; } + private FunctionRecord getOneRecord(FocusPoint focusPoint) { + FunctionRecord functionRecord = new FunctionRecord(); + functionRecord.setId(focusPoint.getId() == null?StringUtils.EMPTY : focusPoint.getId()); + functionRecord.setText(focusPoint.getText() == null?StringUtils.EMPTY : focusPoint.getText()); + functionRecord.setSource(focusPoint.getSource()); + functionRecord.setTime(focusPoint.getTime().getTime()); + functionRecord.setTitle(focusPoint.getTitle() == null?StringUtils.EMPTY : focusPoint.getTitle()); + functionRecord.setUsername(MarketConfig.getInstance().getBbsUsername() == null?StringUtils.EMPTY : MarketConfig.getInstance().getBbsUsername()); + functionRecord.setUuid(DesignerEnvManager.getEnvManager().getUUID() == null?StringUtils.EMPTY : DesignerEnvManager.getEnvManager().getUUID()); + return functionRecord; + } + /** * 收集开始使用时间,发送信息 */ @@ -426,69 +505,6 @@ public class InformationCollector implements XMLReadable, XMLWriter { }); } - public JSONArray getFunctionsContent(long current, long last) { - //记录当前条数,达到200条合并成一个请求 - int count = 0; - JSONArray functionArray = new JSONArray(); - QueryCondition condition = QueryFactory.create() - .addRestriction(RestrictionFactory.lte(COLUMN_TIME, current)) - .addRestriction(RestrictionFactory.gte(COLUMN_TIME, last)); - try { - DataList focusPoints = MetricRegistry.getMetric().find(FocusPoint.class,condition); - TreeSet focusPointsList = new TreeSet<>(); - if(!focusPoints.isEmpty()){ - for(int i=0;i< focusPoints.getList().size();i++){ - FocusPoint focusPoint = focusPoints.getList().get(i); - if(focusPoint != null){ - if((++count <= MAX_EACH_REQUEST_RECORD_COUNT)){ - focusPointsList.add(getOneRecord(focusPoint)); - } else { - count = 0; - functionArray.put(setToJSONArray(focusPointsList)); - focusPointsList.add(getOneRecord(focusPoint)); - } - if(i == (focusPoints.getList().size() -1)){ - functionArray.put(setToJSONArray(focusPointsList)); - } - } - } - } - - } catch (Exception e) { - FineLoggerFactory.getLogger().error(e.getMessage(), e); - } - return functionArray; - } - - private FunctionRecord getOneRecord(FocusPoint focusPoint) { - FunctionRecord functionRecord = new FunctionRecord(); - functionRecord.setId(focusPoint.getId() == null?StringUtils.EMPTY : focusPoint.getId()); - functionRecord.setText(focusPoint.getText() == null?StringUtils.EMPTY : focusPoint.getText()); - functionRecord.setSource(focusPoint.getSource()); - functionRecord.setTime(focusPoint.getTime().getTime()); - functionRecord.setTitle(focusPoint.getTitle() == null?StringUtils.EMPTY : focusPoint.getTitle()); - functionRecord.setUsername(MarketConfig.getInstance().getBbsUsername() == null?StringUtils.EMPTY : MarketConfig.getInstance().getBbsUsername()); - functionRecord.setUuid(DesignerEnvManager.getEnvManager().getUUID() == null?StringUtils.EMPTY : DesignerEnvManager.getEnvManager().getUUID()); - return functionRecord; - } - - private JSONArray setToJSONArray(Set set) throws JSONException { - JSONArray jsonArray = new JSONArray(); - for(Iterator iter = set.iterator(); iter.hasNext(); ) { - FunctionRecord functionRecord = (FunctionRecord)iter.next(); - com.fr.json.JSONObject record = new com.fr.json.JSONObject(); - record.put(ATTR_ID, functionRecord.getId()); - record.put(ATTR_TEXT, functionRecord.getText()); - record.put(ATTR_SOURCE, functionRecord.getSource()); - record.put(ATTR_TIME, functionRecord.getTime()); - record.put(ATTR_TITLE, functionRecord.getTitle()); - record.put(ATTR_USER_NAME, functionRecord.getUsername()); - record.put(ATTR_UUID, functionRecord.getUuid()); - jsonArray.put(record); - } - return jsonArray; - } - private class StartStopTime implements XMLReadable, XMLWriter { private String startDate; @@ -533,6 +549,7 @@ public class InformationCollector implements XMLReadable, XMLWriter { private String text; private int source; private long time; + private int times = 1; private String title; private String username; private String uuid; @@ -548,6 +565,14 @@ public class InformationCollector implements XMLReadable, XMLWriter { this.id = id; } + public int getTimes() { + return times; + } + + public void setTimes(int times) { + this.times = times; + } + public String getText() { return text; } From 53750e77c5aa2af106de0bf2532b0febd08f4645 Mon Sep 17 00:00:00 2001 From: "alex.sung" Date: Wed, 2 Jan 2019 17:00:09 +0800 Subject: [PATCH 08/10] =?UTF-8?q?=E6=AF=8F=E9=A1=B5=E5=8F=91=E9=80=81?= =?UTF-8?q?=E6=88=90=E5=8A=9F=E5=90=8E=E6=9B=B4=E6=96=B0=E4=B8=8B=E6=9C=80?= =?UTF-8?q?=E5=90=8E=E5=8F=91=E9=80=81=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mainframe/InformationCollector.java | 29 +++++++++---------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/InformationCollector.java b/designer-realize/src/main/java/com/fr/design/mainframe/InformationCollector.java index e6ef66e00..49ad7d6a3 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/InformationCollector.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/InformationCollector.java @@ -218,19 +218,14 @@ public class InformationCollector implements XMLReadable, XMLWriter { if (currentTime - lastTime <= DELTA) { return; } - boolean success; FineLoggerFactory.getLogger().info("Start sent function records to the cloud center..."); - success = queryAndSendOnePageFunctionContent(currentTime, lastTime, 0); + queryAndSendOnePageFunctionContent(currentTime, lastTime, 0); long page = (totalCount/PAGE_SIZE) + 1; for(int i=1; i focusPoints) { + private void sendThisPageFunctionContent(DataList focusPoints) { String url = CloudCenter.getInstance().acquireUrlByKind(TABLE_FUNCTION_RECORD); try { JSONObject jsonObject = dealWithSendFunctionContent(focusPoints); - return sendFunctionRecord(url, jsonObject); + sendFunctionRecord(url, jsonObject); } catch (JSONException e) { FineLoggerFactory.getLogger().error(e.getMessage(), e); } - return false; } private JSONObject dealWithSendFunctionContent(DataList focusPoints) throws JSONException { @@ -319,7 +312,7 @@ public class InformationCollector implements XMLReadable, XMLWriter { return jsonArray; } - private boolean sendFunctionRecord(String url, JSONObject record) { + private void sendFunctionRecord(String url, JSONObject record) { boolean success = false; try { HashMap para = new HashMap<>(); @@ -327,10 +320,14 @@ public class InformationCollector implements XMLReadable, XMLWriter { para.put("content", record); String res = HttpToolbox.post(url, para); success = ComparatorUtils.equals(new JSONObject(res).get("status"), "success"); + if (success) { + this.lastTime = dateToString(); + } else { + FineLoggerFactory.getLogger().error("Error occured when sent function records to the cloud center."); + } } catch (Exception e) { FineLoggerFactory.getLogger().error(e.getMessage(), e); } - return success; } private FunctionRecord getOneRecord(FocusPoint focusPoint) { From 2c7094d2986e65302e0e66dde92df666cb2d6989 Mon Sep 17 00:00:00 2001 From: "alex.sung" Date: Wed, 2 Jan 2019 18:33:56 +0800 Subject: [PATCH 09/10] =?UTF-8?q?=E8=AE=B0=E5=BD=95=E6=AC=A1=E6=95=B0bugfi?= =?UTF-8?q?x?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/fr/design/mainframe/InformationCollector.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/InformationCollector.java b/designer-realize/src/main/java/com/fr/design/mainframe/InformationCollector.java index 49ad7d6a3..b71144774 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/InformationCollector.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/InformationCollector.java @@ -285,7 +285,8 @@ public class InformationCollector implements XMLReadable, XMLWriter { for(FocusPoint focusPoint : focusPoints.getList()) { FunctionRecord functionRecord = getOneRecord(focusPoint); if (map.containsKey(focusPoint.getId())) { - functionRecord.setTimes(functionRecord.getTimes() + 1); + int times = ((FunctionRecord)map.get(focusPoint.getId())).getTimes() + 1; + functionRecord.setTimes(times); map.put(focusPoint.getId(), functionRecord); } else { map.put(focusPoint.getId(), functionRecord); From afd800e1bba05accb36f05ce71ec70049a3ca5e0 Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Wed, 2 Jan 2019 19:00:12 +0800 Subject: [PATCH 10/10] =?UTF-8?q?REPORT-14020=20=E5=8F=AF=E4=BB=A5?= =?UTF-8?q?=E9=87=8D=E5=A4=8D=E6=89=93=E5=BC=80=E8=AE=BE=E8=AE=A1=E5=99=A8?= =?UTF-8?q?=20=E8=B0=83=E8=AF=95=E7=9A=84=E4=BB=A3=E7=A0=81=E4=B8=8A?= =?UTF-8?q?=E6=AC=A1=E8=AF=AF=E4=BC=A0=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/fr/design/utils/DesignUtils.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/utils/DesignUtils.java b/designer-base/src/main/java/com/fr/design/utils/DesignUtils.java index 77173cebb..240176eef 100644 --- a/designer-base/src/main/java/com/fr/design/utils/DesignUtils.java +++ b/designer-base/src/main/java/com/fr/design/utils/DesignUtils.java @@ -65,12 +65,12 @@ public class DesignUtils { * @return 启动了返回true */ public static boolean isStarted() { -// try { -// new Socket("localhost", port); -// return true; -// } catch (Exception exp) { -// -// } + try { + new Socket("localhost", port); + return true; + } catch (Exception exp) { + + } return false; }