commit 498fe0d353788ca59d1598bc001b73427bf91751 Author: richie Date: Tue Dec 31 14:59:14 2019 +0800 ES数据集 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..11e939f --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +*.iml +.idea/ +lib/report/* +.classpath +*.rdb \ No newline at end of file diff --git a/build.xml b/build.xml new file mode 100644 index 0000000..6affa3a --- /dev/null +++ b/build.xml @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/lib/finekit-10.0.jar b/lib/finekit-10.0.jar new file mode 100644 index 0000000..546f2f5 Binary files /dev/null and b/lib/finekit-10.0.jar differ diff --git a/plugin.xml b/plugin.xml new file mode 100644 index 0000000..c18d224 --- /dev/null +++ b/plugin.xml @@ -0,0 +1,23 @@ + + + com.fr.plugin.db.es.v10 + + yes + 1.0 + 10.0 + 2019-10-25 + fanruan.richie + + + ]]> + + + + + + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..fcc20c9 --- /dev/null +++ b/pom.xml @@ -0,0 +1,54 @@ + + + 4.0.0 + + com.fr.plugin + starter + 10.0 + + + jar + com.fr.plugin.db.es.v10 + + + com.fanruan.api + finekit + 10.0 + system + ${project.basedir}/lib/finekit-10.0.jar + + + org.elasticsearch.client + transport + 7.5.1 + + + org.elasticsearch + elasticsearch + 7.5.1 + + + org.elasticsearch.client + elasticsearch-rest-high-level-client + 7.5.1 + + + + + + ${project.basedir}/../webroot/WEB-INF/plugins/plugin-com.fr.plugin.db.es.v10-1.0/classes + + + + org.apache.maven.plugins + maven-compiler-plugin + + 6 + 6 + + + + + \ No newline at end of file diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..f424a57 --- /dev/null +++ b/readme.md @@ -0,0 +1 @@ +# elasticsearch数据集插件 \ No newline at end of file diff --git a/src/main/java/com/fr/plugin/db/es/ConnectionBridge.java b/src/main/java/com/fr/plugin/db/es/ConnectionBridge.java new file mode 100644 index 0000000..8b23b80 --- /dev/null +++ b/src/main/java/com/fr/plugin/db/es/ConnectionBridge.java @@ -0,0 +1,34 @@ +package com.fr.plugin.db.es; + +import com.fr.data.impl.Connection; +import com.fr.design.beans.BasicBeanPane; +import com.fr.design.fun.impl.AbstractConnectionProvider; +import com.fr.plugin.db.es.fun.ElasticsearchConnection; +import com.fr.plugin.db.es.ui.ElasticsearchConnectionPane; + +/** + * @author richie + * @version 10.0 + * Created by richie on 2019/12/31 + */ +public class ConnectionBridge extends AbstractConnectionProvider { + @Override + public String nameForConnection() { + return "ES"; + } + + @Override + public String iconPathForConnection() { + return "/com/fr/plugin/db/es/images/es.png"; + } + + @Override + public Class classForConnection() { + return ElasticsearchConnection.class; + } + + @Override + public Class> appearanceForConnection() { + return ElasticsearchConnectionPane.class; + } +} diff --git a/src/main/java/com/fr/plugin/db/es/LocaleBridge.java b/src/main/java/com/fr/plugin/db/es/LocaleBridge.java new file mode 100644 index 0000000..8f4e9b6 --- /dev/null +++ b/src/main/java/com/fr/plugin/db/es/LocaleBridge.java @@ -0,0 +1,16 @@ +package com.fr.plugin.db.es; + +import com.fr.stable.fun.impl.AbstractLocaleFinder; + +/** + * @author richie + * @version 10.0 + * Created by richie on 2019/12/31 + */ +public class LocaleBridge extends AbstractLocaleFinder { + + @Override + public String find() { + return "com/fr/plugin/db/es/locale/es"; + } +} diff --git a/src/main/java/com/fr/plugin/db/es/TableDataBridge.java b/src/main/java/com/fr/plugin/db/es/TableDataBridge.java new file mode 100644 index 0000000..dc0abc7 --- /dev/null +++ b/src/main/java/com/fr/plugin/db/es/TableDataBridge.java @@ -0,0 +1,46 @@ +package com.fr.plugin.db.es; + +import com.fanruan.api.i18n.I18nKit; +import com.fr.base.TableData; +import com.fr.design.data.tabledata.tabledatapane.AbstractTableDataPane; +import com.fr.design.fun.impl.AbstractTableDataDefineProvider; +import com.fr.plugin.db.es.fun.ElasticsearchTableData; +import com.fr.plugin.db.es.ui.ElasticsearchTableDataPane; + +/** + * @author richie + * @version 10.0 + * Created by richie on 2019/12/31 + */ +public class TableDataBridge extends AbstractTableDataDefineProvider { + + @Override + public Class classForTableData() { + return ElasticsearchTableData.class; + } + + @Override + public Class classForInitTableData() { + return ElasticsearchTableData.class; + } + + @Override + public Class appearanceForTableData() { + return ElasticsearchTableDataPane.class; + } + + @Override + public String nameForTableData() { + return I18nKit.getLocText("Plugin_Elasticsearch_Table_Data"); + } + + @Override + public String prefixForTableData() { + return "es"; + } + + @Override + public String iconPathForTableData() { + return "/com/fr/plugin/db/es/images/es.png"; + } +} diff --git a/src/main/java/com/fr/plugin/db/es/fun/ElasticsearchConnection.java b/src/main/java/com/fr/plugin/db/es/fun/ElasticsearchConnection.java new file mode 100644 index 0000000..c23a556 --- /dev/null +++ b/src/main/java/com/fr/plugin/db/es/fun/ElasticsearchConnection.java @@ -0,0 +1,26 @@ +package com.fr.plugin.db.es.fun; + +import com.fanruan.api.data.open.BaseConnection; + +/** + * @author richie + * @version 10.0 + * Created by richie on 2019/12/31 + */ +public class ElasticsearchConnection extends BaseConnection { + + @Override + public void testConnection() throws Exception { + + } + + @Override + public String connectMessage(boolean b) { + return null; + } + + @Override + public String getDriver() { + return null; + } +} diff --git a/src/main/java/com/fr/plugin/db/es/fun/ElasticsearchDataModel.java b/src/main/java/com/fr/plugin/db/es/fun/ElasticsearchDataModel.java new file mode 100644 index 0000000..de4e824 --- /dev/null +++ b/src/main/java/com/fr/plugin/db/es/fun/ElasticsearchDataModel.java @@ -0,0 +1,45 @@ +package com.fr.plugin.db.es.fun; + +import com.fanruan.api.data.open.BaseDataModel; +import com.fanruan.api.err.TableDataException; + +/** + * @author richie + * @version 10.0 + * Created by richie on 2019/12/31 + */ +public class ElasticsearchDataModel extends BaseDataModel { + + public ElasticsearchDataModel() { + + } + + private void initData() throws Exception { + + } + + @Override + public int getColumnCount() throws TableDataException { + return 0; + } + + @Override + public String getColumnName(int i) throws TableDataException { + return null; + } + + @Override + public int getRowCount() throws TableDataException { + return 0; + } + + @Override + public Object getValueAt(int i, int i1) throws TableDataException { + return null; + } + + @Override + public void release() throws Exception { + + } +} diff --git a/src/main/java/com/fr/plugin/db/es/fun/ElasticsearchTableData.java b/src/main/java/com/fr/plugin/db/es/fun/ElasticsearchTableData.java new file mode 100644 index 0000000..924b578 --- /dev/null +++ b/src/main/java/com/fr/plugin/db/es/fun/ElasticsearchTableData.java @@ -0,0 +1,104 @@ +package com.fr.plugin.db.es.fun; + +import com.fanruan.api.conf.HolderKit; +import com.fanruan.api.data.ConnectionKit; +import com.fanruan.api.data.open.BaseTableData; +import com.fanruan.api.util.AssistKit; +import com.fanruan.api.xml.XmlKit; +import com.fr.base.TableData; +import com.fr.config.holder.Conf; +import com.fr.data.impl.Connection; +import com.fr.general.data.DataModel; +import com.fr.intelli.record.Focus; +import com.fr.record.analyzer.EnableMetrics; +import com.fr.script.Calculator; +import com.fr.stable.Nameable; +import com.fr.stable.xml.XMLPrintWriter; +import com.fr.stable.xml.XMLableReader; + +/** + * @author richie + * @version 10.0 + * Created by richie on 2019/12/31 + */ +@EnableMetrics +public class ElasticsearchTableData extends BaseTableData { + + private Conf database = HolderKit.obj(null, Connection.class); + + public ElasticsearchTableData() { + + } + + public Connection getDatabase() { + return database.get(); + } + + public void setDatabase(Connection database) { + this.database.set(database); + } + + @Override + public DataModel createDataModel(Calculator calculator) { + return createDataModel(calculator, TableData.RESULT_ALL); + } + + @Override + @Focus(id = "com.fr.plugin.db.es.v10", text = "Plugin_Elasticsearch_Table_Data") + public DataModel createDataModel(Calculator calculator, int rowCount) { + ElasticsearchConnection connection = getConnection(); + if (connection != null) { + return new ElasticsearchDataModel(); + } + return null; + } + + private ElasticsearchConnection getConnection() { + if (database.get() instanceof Nameable) { + String name = ((Nameable) database.get()).getName(); + return ConnectionKit.getConnection(name, ElasticsearchConnection.class); + } + return null; + } + + @Override + public void readXML(XMLableReader reader) { + super.readXML(reader); + if (reader.isChildNode()) { + String tmpName = reader.getTagName(); + String tmpVal; + if (Connection.XML_TAG.equals(tmpName)) { + if (reader.getAttrAsString("class", null) != null) { + Connection con = XmlKit.readXMLConnection(reader); + this.setDatabase(con); + } + } + } + } + + @Override + public void writeXML(XMLPrintWriter writer) { + super.writeXML(writer); + if (this.database.get() != null) { + XmlKit.writeXMLConnection(writer, this.database.get()); + } + } + + @Override + public Object clone() throws CloneNotSupportedException { + ElasticsearchTableData cloned = (ElasticsearchTableData) super.clone(); + cloned.database = (Conf) database.clone(); + return cloned; + } + + @Override + public boolean equals(Object obj) { + return obj instanceof ElasticsearchTableData + && AssistKit.equals(database, ((ElasticsearchTableData) obj).database); + } + + @Override + public int hashCode() { + return AssistKit.hashCode(database.get()); + } +} diff --git a/src/main/java/com/fr/plugin/db/es/ui/ElasticsearchConnectionPane.java b/src/main/java/com/fr/plugin/db/es/ui/ElasticsearchConnectionPane.java new file mode 100644 index 0000000..d40df38 --- /dev/null +++ b/src/main/java/com/fr/plugin/db/es/ui/ElasticsearchConnectionPane.java @@ -0,0 +1,34 @@ +package com.fr.plugin.db.es.ui; + +import com.fanruan.api.design.work.DatabaseConnectionPane; +import com.fr.plugin.db.es.fun.ElasticsearchConnection; + +import javax.swing.*; + +/** + * @author richie + * @version 10.0 + * Created by richie on 2019/12/31 + */ +public class ElasticsearchConnectionPane extends DatabaseConnectionPane { + + @Override + protected JPanel mainPanel() { + return null; + } + + @Override + protected void populateSubDatabaseConnectionBean(ElasticsearchConnection elasticsearchConnection) { + + } + + @Override + protected ElasticsearchConnection updateSubDatabaseConnectionBean() { + return null; + } + + @Override + protected String title4PopupWindow() { + return null; + } +} diff --git a/src/main/java/com/fr/plugin/db/es/ui/ElasticsearchTableDataPane.java b/src/main/java/com/fr/plugin/db/es/ui/ElasticsearchTableDataPane.java new file mode 100644 index 0000000..df47efd --- /dev/null +++ b/src/main/java/com/fr/plugin/db/es/ui/ElasticsearchTableDataPane.java @@ -0,0 +1,27 @@ +package com.fr.plugin.db.es.ui; + +import com.fanruan.api.design.work.BaseTableDataPane; +import com.fr.plugin.db.es.fun.ElasticsearchTableData; + +/** + * @author richie + * @version 10.0 + * Created by richie on 2019/12/31 + */ +public class ElasticsearchTableDataPane extends BaseTableDataPane { + + @Override + public void populateBean(ElasticsearchTableData elasticsearchTableData) { + + } + + @Override + public ElasticsearchTableData updateBean() { + return null; + } + + @Override + protected String title4PopupWindow() { + return null; + } +} diff --git a/src/main/resources/com/fr/plugin/db/es/images/es.png b/src/main/resources/com/fr/plugin/db/es/images/es.png new file mode 100644 index 0000000..5c21e96 Binary files /dev/null and b/src/main/resources/com/fr/plugin/db/es/images/es.png differ diff --git a/src/main/resources/com/fr/plugin/db/es/locale/es.properties b/src/main/resources/com/fr/plugin/db/es/locale/es.properties new file mode 100644 index 0000000..3223e88 --- /dev/null +++ b/src/main/resources/com/fr/plugin/db/es/locale/es.properties @@ -0,0 +1 @@ +Plugin_Elasticsearch_Table_Data=Elasticsearch \ No newline at end of file diff --git a/src/main/resources/com/fr/plugin/db/es/locale/es_en_US.properties b/src/main/resources/com/fr/plugin/db/es/locale/es_en_US.properties new file mode 100644 index 0000000..3223e88 --- /dev/null +++ b/src/main/resources/com/fr/plugin/db/es/locale/es_en_US.properties @@ -0,0 +1 @@ +Plugin_Elasticsearch_Table_Data=Elasticsearch \ No newline at end of file diff --git a/src/main/resources/com/fr/plugin/db/es/locale/es_zh_CN.properties b/src/main/resources/com/fr/plugin/db/es/locale/es_zh_CN.properties new file mode 100644 index 0000000..0ad3b6e --- /dev/null +++ b/src/main/resources/com/fr/plugin/db/es/locale/es_zh_CN.properties @@ -0,0 +1 @@ +Plugin_Elasticsearch_Table_Data=Elasticsearch\u6570\u636E\u96C6 \ No newline at end of file