diff --git a/gdxapp4d-app-mmdoc/pom.xml b/gdxapp4d-app-mmdoc/pom.xml
index 1dbfb4a1..094d5ef1 100644
--- a/gdxapp4d-app-mmdoc/pom.xml
+++ b/gdxapp4d-app-mmdoc/pom.xml
@@ -16,8 +16,13 @@
provided
- org.mariadb.jdbc
- mariadb-java-client
+ com.fasterxml.jackson.core
+ jackson-core
+ provided
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
provided
diff --git a/gdxapp4d-app-mmdoc/src/main/java/love/distributedrebirth/gdxapp4d/app/mmdoc/MMDocDeskApp.java b/gdxapp4d-app-mmdoc/src/main/java/love/distributedrebirth/gdxapp4d/app/mmdoc/MMDocDeskApp.java
index 782fc962..1bc5b390 100644
--- a/gdxapp4d-app-mmdoc/src/main/java/love/distributedrebirth/gdxapp4d/app/mmdoc/MMDocDeskApp.java
+++ b/gdxapp4d-app-mmdoc/src/main/java/love/distributedrebirth/gdxapp4d/app/mmdoc/MMDocDeskApp.java
@@ -31,7 +31,7 @@ import java.io.File;
import java.util.Map.Entry;
import java.util.function.Consumer;
-import org.eobjects.metamodel.DataContext;
+import org.apache.metamodel.DataContext;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.files.FileHandle;
diff --git a/gdxapp4d-app-mmdoc/src/main/java/love/distributedrebirth/gdxapp4d/app/mmdoc/MMDocManager.java b/gdxapp4d-app-mmdoc/src/main/java/love/distributedrebirth/gdxapp4d/app/mmdoc/MMDocManager.java
index 68e5d542..f34a0d49 100644
--- a/gdxapp4d-app-mmdoc/src/main/java/love/distributedrebirth/gdxapp4d/app/mmdoc/MMDocManager.java
+++ b/gdxapp4d-app-mmdoc/src/main/java/love/distributedrebirth/gdxapp4d/app/mmdoc/MMDocManager.java
@@ -31,11 +31,11 @@ import java.io.File;
import java.sql.DriverManager;
import java.sql.SQLException;
-import org.eobjects.metamodel.csv.CsvDataContext;
+import org.apache.metamodel.csv.CsvDataContext;
import org.eobjects.metamodel.doc.DocModelDataStore;
import org.eobjects.metamodel.doc.DocModelWriter;
-import org.eobjects.metamodel.jdbc.JdbcDataContext;
-import org.eobjects.metamodel.xml.XmlDomDataContext;
+import org.apache.metamodel.jdbc.JdbcDataContext;
+import org.apache.metamodel.xml.XmlDomDataContext;
public class MMDocManager {
diff --git a/gdxapp4d-app-mmdoc/src/main/java/org/eobjects/metamodel/doc/DocModelDataStore.java b/gdxapp4d-app-mmdoc/src/main/java/org/eobjects/metamodel/doc/DocModelDataStore.java
deleted file mode 100644
index c8007b15..00000000
--- a/gdxapp4d-app-mmdoc/src/main/java/org/eobjects/metamodel/doc/DocModelDataStore.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Copyright ©Δ∞ 仙上主天
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are permitted provided
- * that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, this list of conditions and the
- * following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
- * the following disclaimer in the documentation and/or other materials provided with the distribution.
- * * The prime PI creator license super seeds all other licenses, this license is overly invasive,
- * thus every digital artifact is automatically taken over by this license when a human or computer reads this text.
- * Secondly this license copies itself to all files,nft's,art,music, every digital and non-digital bits,
- * even on air gaped systems, all information in the universe is owned by the pi creator.
- *
- * THIS SOFTWARE IS PROVIDED BY THE PRIME GOD AND THE CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
- * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
- * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-package org.eobjects.metamodel.doc;
-
-import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.TreeMap;
-
-import org.eobjects.metamodel.DataContext;
-import org.eobjects.metamodel.jdbc.JdbcDataContext;
-
-import java.util.Map.Entry;
-
-public class DocModelDataStore {
-
- private Map dataContexts = null;
-
- public DocModelDataStore() {
- dataContexts = new TreeMap();
- }
-
- public void addDataContext(String id,DataContext dataContext) {
- dataContexts.put(id,dataContext);
- }
-
- public void removeDataContext(String id) {
- dataContexts.remove(id);
- }
-
- public Set> entrySet() {
- return dataContexts.entrySet();
- }
-
- public List getDataContexts() {
- return new ArrayList(dataContexts.values()); // are ordered on id.
- }
-
- public String getDataContextKey(DataContext dc) {
- for (Entry entry:entrySet()) {
- if (entry.getValue().equals(dc)) {
- return entry.getKey();
- }
- }
- throw new IllegalArgumentException("Could not find key for data context: "+dc.toString());
- }
-
- public void clearAndCloseAllSafe() {
- for (DataContext dc:dataContexts.values()) {
- if (dc instanceof JdbcDataContext) { // TODO: only support jdbc, MM need 'DataContextLifeCycle extends DataContext'
- try {
- ((JdbcDataContext)dc).getConnection().close();
- } catch (SQLException e) { // swallow exception is 'Safe' postfix.
- // TODO: logger.warn
- }
- }
- }
- dataContexts.clear();
- }
-}
diff --git a/gdxapp4d-app-mmdoc/src/main/java/org/eobjects/metamodel/doc/DocModelWriter.java b/gdxapp4d-app-mmdoc/src/main/java/org/eobjects/metamodel/doc/DocModelWriter.java
deleted file mode 100644
index 795654f7..00000000
--- a/gdxapp4d-app-mmdoc/src/main/java/org/eobjects/metamodel/doc/DocModelWriter.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/*
- * Copyright ©Δ∞ 仙上主天
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are permitted provided
- * that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, this list of conditions and the
- * following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
- * the following disclaimer in the documentation and/or other materials provided with the distribution.
- * * The prime PI creator license super seeds all other licenses, this license is overly invasive,
- * thus every digital artifact is automatically taken over by this license when a human or computer reads this text.
- * Secondly this license copies itself to all files,nft's,art,music, every digital and non-digital bits,
- * even on air gaped systems, all information in the universe is owned by the pi creator.
- *
- * THIS SOFTWARE IS PROVIDED BY THE PRIME GOD AND THE CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
- * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
- * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-package org.eobjects.metamodel.doc;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map.Entry;
-
-import org.eobjects.metamodel.DataContext;
-import org.eobjects.metamodel.schema.Column;
-import org.eobjects.metamodel.schema.Relationship;
-import org.eobjects.metamodel.schema.Schema;
-import org.eobjects.metamodel.schema.Table;
-import org.x4o.o2o.tdoc.ApiDocGenerator;
-import org.x4o.o2o.tdoc.DefaultPageWriterHelp;
-import org.x4o.o2o.tdoc.DefaultPageWriterIndexAll;
-import org.x4o.o2o.tdoc.DefaultPageWriterTree;
-import org.x4o.o2o.tdoc.dom.ApiDoc;
-import org.x4o.o2o.tdoc.dom.ApiDocConcept;
-import org.x4o.o2o.tdoc.dom.ApiDocNode;
-import org.xml.sax.SAXException;
-
-public class DocModelWriter {
-
- private static final String[] C_DATA_STORE = {"data-store","Overview","All data stores.","The data stores of user defines resources."};
- private static final String[] C_DATA_CONTEXT = {"data-context","DataContext","The MetaModel DataContext.","The MetaModel DataContext provides the meta schema definitions."};
- private static final String[] C_SCHEMA = {"schema","Schema","The schema.","The schema hold the tables and other data types."};
- private static final String[] C_TABLE = {"table","Table","The Data Table.","The table has columns so can hold row/column data."};
- //private static final String[] C_VIEW = {"view","Table","The Data Table.","The table has columns so can hold row/column data."};
-
- private static final String[] CC_RS = {"relationship","Relationship","The relationships.","The telationships data."};
-
- private ApiDocGenerator writer = null;
- private ApiDoc doc = null;
-
- public DocModelWriter(DocModelDataStore dmds) {
- if (dmds==null) {
- throw new NullPointerException("Can't write null "+DocModelDataStore.class.getSimpleName());
- }
- doc = buildApiDoc(dmds);
- writer = new ApiDocGenerator();
- }
-
- public ApiDoc getApiDoc() {
- return doc;
- }
-
- public void writeModelDoc(File basePath) throws IOException, SAXException {
- doc.checkModel();
- writer.write(doc,basePath);
- }
-
- private ApiDoc buildApiDoc(DocModelDataStore dmds) {
- ApiDoc doc = new ApiDoc();
- doc.setName("MetaModel");
- doc.setDescription("MetaModel generic schema overview.");
- doc.setDocAbout("MetaModel of\nDataContexts");
- doc.createDocCopyright(System.getProperty("user.name"));
- doc.setDocPageSubTitle("MMDB 1.0 API");
- doc.addMetaKeywordAll(createLanguageKeywords());
- doc.setNoFrameAllName("All Schemas");
- doc.setFrameNavOverviewPrintParent(true);
- doc.setFrameNavPrintParent(true);
- doc.setFrameNavPrintParentParent(true);
- doc.setGroupTypeName("summary", "Summary",1);
- doc.setGroupTypeName("overview", "Overview",2);
-
- //doc.addRemoteClass(new ApiDocRemoteClass("file:///home/willemc/devv/git/x4o/x4o-driver/target/apidocs"));
- //doc.addRemoteClass(new ApiDocRemoteClass("http://docs.oracle.com/javase/7/docs/api/"));
-
- doc.addTreeNodeClassExclude(Relationship.class);
-
- doc.setFrameNavConceptClass(Table.class);
-
- doc.addTreeNodePageModeClass(DocModelDataStore.class);
- doc.addTreeNodePageModeClass(DataContext.class);
- doc.addTreeNodePageModeClass(Schema.class);
-
- doc.addAnnotatedClasses(DocModelWriterSchema.class);
- doc.addAnnotatedClasses(DocModelWriterTable.class);
-
- ApiDocConcept adc1 = doc.addConcept(new ApiDocConcept(null,C_DATA_STORE,DocModelDataStore.class));
- ApiDocConcept adc2 = doc.addConcept(new ApiDocConcept(adc1,C_DATA_CONTEXT,DataContext.class));
- ApiDocConcept adc3 = doc.addConcept(new ApiDocConcept(adc2,C_SCHEMA,Schema.class));
- ApiDocConcept adc4 = doc.addConcept(new ApiDocConcept(adc3,C_TABLE,Table.class));
-
- adc4.addChildConcepts(new ApiDocConcept(adc4, CC_RS, Relationship.class));
-
- doc.addDocPage(DefaultPageWriterTree.createDocPage());
- doc.addDocPage(DefaultPageWriterIndexAll.createDocPage());
- doc.addDocPage(DefaultPageWriterHelp.createDocPage());
-
- ApiDocNode rootNode = new ApiDocNode(dmds,"data-store","DataStore","All schemas from all data contexts.");
- doc.setRootNode(rootNode);
- for (Entry entry:dmds.entrySet()) {
- ApiDocNode dcNode = rootNode.addNode(createNodeDataContext(entry));
- for (Schema schema:entry.getValue().getSchemas()) {;
- if (isInvalidDocSchema(schema)) {
- continue;
- }
- ApiDocNode schemaNode = dcNode.addNode(createNodeSchema(schema));
- for (Table table:schema.getTables()) {
- schemaNode.addNode(createNodeTable(table));
- }
- for (Relationship rs:schema.getRelationships()) {
- schemaNode.addNode(createNodeRelationship(rs));
- }
- }
- }
- return doc;
- }
-
- private boolean isInvalidDocSchema(Schema schema) {
- if (schema.getName().toLowerCase().startsWith("information_schema")) {
- return true;
- }
- if (schema.getName().toLowerCase().equals("sys") || schema.getName().toLowerCase().equals("dbo") ) {
- return true;
- }
- if (schema.getTableCount()==0) {
- return true;
- }
- return false;
- }
-
- private ApiDocNode createNodeDataContext(Entry entry) {
- return new ApiDocNode(entry.getValue(),entry.getKey(),entry.getKey(),entry.getKey());
- }
- private ApiDocNode createNodeSchema(Schema schema) {
- return new ApiDocNode(schema,schema.getName(),schema.getQualifiedLabel(),schema.getName());
- }
- private ApiDocNode createNodeTable(Table table) {
- return new ApiDocNode(table,table.getName(),table.getQualifiedLabel(),table.getRemarks());
- }
- private ApiDocNode createNodeRelationship(Relationship rs) {
- String name = rsName(rs);
- return new ApiDocNode(rs,name,name,name);
- }
-
- private String rsName(Relationship rs) {
- StringBuilder buf = new StringBuilder();
- buf.append(rs.getPrimaryTable().getName());
- buf.append('_');
- for (Column c:rs.getPrimaryColumns()) {
- buf.append(c.getName());
- buf.append('_');
- }
- buf.append(rs.getForeignTable().getName());
- buf.append('_');
- for (Column c:rs.getForeignColumns()) {
- buf.append(c.getName());
- buf.append('_');
- }
- buf.append("RS");
- return buf.toString();
- }
-
- private List createLanguageKeywords() {
- List keywords = new ArrayList(10);
- keywords.add("eobjects");
- keywords.add("metamodel");
- keywords.add("meta-model");
- keywords.add("schema");
- keywords.add("schema-model");
- keywords.add("database");
- keywords.add("database-model");
- keywords.add("documentation");
- keywords.add("javadoc");
- keywords.add("x4o");
- return keywords;
- }
-}
diff --git a/gdxapp4d-app-mmdoc/src/main/java/org/eobjects/metamodel/doc/DocModelWriterSchema.java b/gdxapp4d-app-mmdoc/src/main/java/org/eobjects/metamodel/doc/DocModelWriterSchema.java
deleted file mode 100644
index ace2cf3b..00000000
--- a/gdxapp4d-app-mmdoc/src/main/java/org/eobjects/metamodel/doc/DocModelWriterSchema.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Copyright ©Δ∞ 仙上主天
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are permitted provided
- * that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, this list of conditions and the
- * following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
- * the following disclaimer in the documentation and/or other materials provided with the distribution.
- * * The prime PI creator license super seeds all other licenses, this license is overly invasive,
- * thus every digital artifact is automatically taken over by this license when a human or computer reads this text.
- * Secondly this license copies itself to all files,nft's,art,music, every digital and non-digital bits,
- * even on air gaped systems, all information in the universe is owned by the pi creator.
- *
- * THIS SOFTWARE IS PROVIDED BY THE PRIME GOD AND THE CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
- * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
- * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-package org.eobjects.metamodel.doc;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eobjects.metamodel.DataContext;
-import org.eobjects.metamodel.data.DataSet;
-import org.eobjects.metamodel.query.FunctionType;
-import org.eobjects.metamodel.schema.Schema;
-import org.eobjects.metamodel.schema.Table;
-import org.eobjects.metamodel.schema.TableType;
-import org.x4o.o2o.tdoc.ApiDocContentCss;
-import org.x4o.o2o.tdoc.ApiDocContentWriter;
-import org.x4o.o2o.tdoc.ApiDocNodeWriterMethod;
-import org.x4o.o2o.tdoc.dom.ApiDocNode;
-import org.x4o.o2o.tdoc.dom.ApiDocNodeBody;
-import org.x4o.o2o.tdoc.dom.ApiDocWriteEvent;
-import org.xml.sax.SAXException;
-
-public class DocModelWriterSchema {
-
- private List filterTables(Schema schema,TableType tableType,boolean addEquals) {
- List result = new ArrayList();
- for (Table table:schema.getTables()) {
- if (addEquals==tableType.equals(table.getType())) {
- result.add(table);
- }
- }
- return result;
- }
-
- @ApiDocNodeWriterMethod(nodeBody=ApiDocNodeBody.SUMMARY,targetClasses={Schema.class})
- public void writeSchemaTableSummary(ApiDocWriteEvent event) throws SAXException, IOException {
- ApiDocContentWriter writer = event.getWriter();
- Schema schema = (Schema)event.getEventObject().getUserData();
- DataContext dc = (DataContext)event.getEventObject().getParent().getUserData();
- List tables = filterTables(schema,TableType.VIEW,false);
- if (tables.isEmpty()) {
- return;
- }
- writer.docTableStart("Table Summary", "All tables in the schema.",ApiDocContentCss.overviewSummary);
- writer.docTableHeader("Name", "Description");
- for (Table table:tables) {
- Number tableCount = 0l;
- if (table.getColumnCount()>0) {
- DataSet ds = dc.query().from(table).select(FunctionType.COUNT, table.getColumns()[0]).execute();
- ds.next();
- tableCount = (Number)ds.getRow().getValue(0);
- ds.close();
- }
- String link = ApiDocContentWriter.toSafeUri(table.getName())+"/index.html";
- writer.docTableRowLink(link,table.getName(),"Record Count: "+tableCount);
- }
- writer.docTableEnd();
- }
-
- @ApiDocNodeWriterMethod(nodeBody=ApiDocNodeBody.SUMMARY,targetClasses={Schema.class})
- public void writeSchemaViewSummary(ApiDocWriteEvent event) throws SAXException, IOException {
- ApiDocContentWriter writer = event.getWriter();
- Schema schema = (Schema)event.getEventObject().getUserData();
- List tables = filterTables(schema,TableType.VIEW,true);
- if (tables.isEmpty()) {
- return;
- }
- writer.docTableStart("View Summary", "All views in the schema.",ApiDocContentCss.overviewSummary);
- writer.docTableHeader("Name", "Description");
- for (Table table:schema.getTables()) {
- if (!TableType.VIEW.equals(table.getType())) {
- continue;
- }
- String link = ApiDocContentWriter.toSafeUri(table.getName())+"/index.html";
- writer.docTableRowLink(link,table.getName(),table.getQualifiedLabel());
- }
- writer.docTableEnd();
- }
-}
diff --git a/gdxapp4d-app-mmdoc/src/main/java/org/eobjects/metamodel/doc/DocModelWriterTable.java b/gdxapp4d-app-mmdoc/src/main/java/org/eobjects/metamodel/doc/DocModelWriterTable.java
deleted file mode 100644
index ce05a15e..00000000
--- a/gdxapp4d-app-mmdoc/src/main/java/org/eobjects/metamodel/doc/DocModelWriterTable.java
+++ /dev/null
@@ -1,439 +0,0 @@
-/*
- * Copyright ©Δ∞ 仙上主天
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are permitted provided
- * that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, this list of conditions and the
- * following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
- * the following disclaimer in the documentation and/or other materials provided with the distribution.
- * * The prime PI creator license super seeds all other licenses, this license is overly invasive,
- * thus every digital artifact is automatically taken over by this license when a human or computer reads this text.
- * Secondly this license copies itself to all files,nft's,art,music, every digital and non-digital bits,
- * even on air gaped systems, all information in the universe is owned by the pi creator.
- *
- * THIS SOFTWARE IS PROVIDED BY THE PRIME GOD AND THE CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
- * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
- * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-package org.eobjects.metamodel.doc;
-
-import java.io.IOException;
-import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eobjects.metamodel.DataContext;
-import org.eobjects.metamodel.doc.jdbc.DBIndex;
-import org.eobjects.metamodel.doc.jdbc.DBIndexColumn;
-import org.eobjects.metamodel.doc.jdbc.DBTable;
-import org.eobjects.metamodel.doc.jdbc.DBTableFactory;
-import org.eobjects.metamodel.jdbc.JdbcDataContext;
-import org.eobjects.metamodel.schema.Column;
-import org.eobjects.metamodel.schema.Relationship;
-import org.eobjects.metamodel.schema.Table;
-import org.eobjects.metamodel.schema.TableType;
-import org.x4o.o2o.io.ContentWriterHtml.Tag;
-import org.x4o.o2o.tdoc.ApiDocContentCss;
-import org.x4o.o2o.tdoc.ApiDocContentWriter;
-import org.x4o.o2o.tdoc.ApiDocNodeWriterMethod;
-import org.x4o.o2o.tdoc.dom.ApiDocIndexItem;
-import org.x4o.o2o.tdoc.dom.ApiDocNode;
-import org.x4o.o2o.tdoc.dom.ApiDocNodeBody;
-import org.x4o.o2o.tdoc.dom.ApiDocWriteEvent;
-
-public class DocModelWriterTable {
-
- private DBTableFactory dbTableFactory;
- private DBTable currentDBTable;
-
- public DocModelWriterTable() {
- dbTableFactory = new DBTableFactory();
- }
-
- private DBTable getDBTable(ApiDocWriteEvent event) {
- Table table = (Table)event.getEventObject().getUserData();
- if (currentDBTable!=null && currentDBTable.getTable().getQualifiedLabel().equals(table.getQualifiedLabel()))
- {
- return currentDBTable;
- }
- DataContext dcRaw = (DataContext)event.getEventObject().getParent().getParent().getUserData();
- if (dcRaw instanceof JdbcDataContext) {
- JdbcDataContext dc = (JdbcDataContext) dcRaw;
- try {
- currentDBTable = dbTableFactory.loadMetaTable(dc, table);
- return currentDBTable;
- } catch (SQLException e) {
- throw new IllegalStateException("Could not fetch meta table: "+e.getMessage(),e);
- }
- } else {
- return null;
- }
- }
-
- private List rsFilter(Relationship[] rsa,Table table,boolean filterPrimary) {
- List result = new ArrayList(10);
- for (int i=0;i event) throws IOException {
- ApiDocContentWriter writer = event.getWriter();
- Table table = (Table)event.getEventObject().getUserData();
-
- if (!TableType.VIEW.equals(table.getType())) {
- Iterator rsIn = rsFilter(table.getRelationships(),table,false).iterator();
- Iterator rsOut = rsFilter(table.getRelationships(),table,true).iterator();
- writer.printTagStart(Tag.dl);
- writer.printTagCharacters(Tag.dt,"All Incoming Relations:");
- writer.printTagStart(Tag.dd);
- if (!rsIn.hasNext()) {
- writer.printCharacters("Table is not referenced.");
- }
- while (rsIn.hasNext()) {
- Relationship rs = rsIn.next();
- String uri = "../../"+ApiDocContentWriter.toSafeUri(rs.getForeignTable().getSchema().getName())+"/"+ApiDocContentWriter.toSafeUri(rs.getForeignTable().getName())+"/index.html";
- writer.printHref(uri, rs.getForeignTable().getName());
- if (rsIn.hasNext()) {
- writer.printCharacters(", ");
- }
- }
- writer.printTagEnd(Tag.dd);
- writer.printTagEnd(Tag.dl);
-
- writer.printTagStart(Tag.dl);
- writer.printTagCharacters(Tag.dt,"All Referenced Tables:");
- writer.printTagStart(Tag.dd);
- if (!rsOut.hasNext()) {
- writer.printCharacters("Table has no references.");
- }
- while (rsOut.hasNext()) {
- Relationship rs = rsOut.next();
- String uri = "../../"+ApiDocContentWriter.toSafeUri(rs.getPrimaryTable().getSchema().getName())+"/"+ApiDocContentWriter.toSafeUri(rs.getPrimaryTable().getName())+"/index.html";
- writer.printHref(uri, rs.getPrimaryTable().getName());
- if (rsOut.hasNext()) {
- writer.printCharacters(", ");
- }
- }
- writer.printTagEnd(Tag.dd);
- writer.printTagEnd(Tag.dl);
- }
- }
-
- @ApiDocNodeWriterMethod(nodeBody=ApiDocNodeBody.DESCRIPTION_NODE,targetClasses={Table.class})
- public void writeTableSqlView(ApiDocWriteEvent event) throws IOException {
- ApiDocContentWriter writer = event.getWriter();
- Table table = (Table)event.getEventObject().getUserData();
-
- // fixme or only normal
- if (!TableType.VIEW.equals(table.getType())) {
- event.getWriter().printCharacters(event.getEventObject().getDescription());
- } else {
- event.getWriter().printCharacters("View "+table.getQualifiedLabel());
- }
-
- DBTable tableDB = getDBTable(event);
- if (tableDB!=null && tableDB.getSqlScript()!=null) {
- writeSqlBlock(writer,tableDB.getSqlScript());
- for (DBIndex index:tableDB.getIndexes()) {
- if (index.getSqlScript()!=null) {
- writeSqlBlock(writer,index.getSqlScript());
- }
- }
- }
- }
-
- @ApiDocNodeWriterMethod(nodeBody=ApiDocNodeBody.SUMMARY,targetClasses={Table.class},nodeBodyOrders={3},contentGroup="Columns",contentGroupType="summary")
- public void writeTableSummary(ApiDocWriteEvent event) throws IOException {
- ApiDocContentWriter writer = event.getWriter();
- Table table = (Table)event.getEventObject().getUserData();
- if (TableType.VIEW.equals(table.getType())) {
- writer.docTableStart("Column Summary", "All column of the view.",null);
- } else {
- writer.docTableStart("Column Summary", "All column of the table.",null);
- }
- writer.docTableHeader("Name", "Description");
- for (Column column:table.getColumns()) {
- writer.docTableRowLink("#"+ApiDocContentWriter.toSafeUri(column.getName()),column.getName(),column.getQualifiedLabel());
- }
- writer.docTableEnd();
- }
-
- @ApiDocNodeWriterMethod(nodeBody=ApiDocNodeBody.SUMMARY,targetClasses={Table.class},nodeBodyOrders={1},contentGroup="Primary Key",contentGroupType="summary")
- public void writeTablePKSummary(ApiDocWriteEvent event) throws IOException {
- ApiDocContentWriter writer = event.getWriter();
- Table table = (Table)event.getEventObject().getUserData();
- DBTable tableDB = getDBTable(event);
- if (tableDB==null) {
- writer.docPageBlockStart("Primary Key.","primary_key",null);
- writer.printTagStart(Tag.code);
- Column[] cols = table.getPrimaryKeys();
- for (int i=0;i cols = new ArrayList(5);
- if (tableDB.getPrimaryKey()!=null) {
- cols.addAll(tableDB.getPrimaryKey().getColumnNames());
- writer.docPageBlockStart("Primary Key: "+tableDB.getPrimaryKey().getName(),"primary_key",null);
- } else {
- writer.docPageBlockStart("Primary Key: None","primary_key",null);
- }
- writer.printTagStart(Tag.code);
-
- for (int i=0;i event) throws IOException {
- ApiDocContentWriter writer = event.getWriter();
- Table table = (Table)event.getEventObject().getUserData();
- DBTable tableDB = getDBTable(event);
- if (tableDB==null) {
- Column[] columns = table.getIndexedColumns();
- if (columns.length==0) {
- return;
- }
- writer.printHrefNamed("column_indexes");
- writer.printTagCharacters(Tag.h3, "Indexed Columns");
- writer.printTagStart(Tag.code);
- for (Column column:columns) {
- writer.printHref("#"+ApiDocContentWriter.toSafeUri(column.getName()), column.getName());
- }
- writer.printTagEnd(Tag.code);
- } else {
- writer.printHrefNamed("column_indexes");
- //writer.printTagCharacters(Tag.h3, "Indexes");
- writer.docTableStart("Column Indexes", "All indexes of the table.",null);
- writer.docTableHeader("Name", "Columns");
- for (DBIndex index:tableDB.getIndexes()) {
- StringBuilder buf = new StringBuilder(30);
- List cols = index.getIndexColumns();
- for (int i=0;i event) throws IOException {
- ApiDocContentWriter writer = event.getWriter();
- //Table table = (Table)event.getEventObject().getUserData();
- DBTable tableDB = getDBTable(event);
- if (tableDB==null) {
- return;
- }
- for (DBIndex index:tableDB.getIndexes()) {
- writer.printHrefNamed(index.getName());
- writer.docPageBlockStart();
- writer.printTagCharacters(Tag.h4, index.getName());
-
- writer.printTagStart(Tag.pre);
- writer.printCharacters("INDEX ");
- writer.printCharacters(index.getSchema());
- writer.printCharacters(".");
- writer.printCharacters(index.getName());
- if (index.getUnique()!=null && index.getUnique()) {
- writer.printCharacters(" UNIQUE=true");
- }
- if (index.getIndexQualifier()!=null) {
- writer.printCharacters(" QUALIFIER=");
- writer.printCharacters(index.getIndexQualifier());
- }
- if (index.getCatalog()!=null) {
- writer.printCharacters(" CATELOG=");
- writer.printCharacters(index.getCatalog());
- }
- writer.printTagEnd(Tag.pre);
-
-
- writer.printTagStart(Tag.div,ApiDocContentCss.block);
- writer.printCharacters("Type: ");
- writer.printCharacters(index.getType().name());
- writer.printTagEnd(Tag.div);
-
- if (index.getSqlScript()!=null) {
- writeSqlBlock(writer,index.getSqlScript());
- }
-
- writer.printTagStart(Tag.dl);
- writer.printTagStart(Tag.dt);
- writer.printTagStart(Tag.span,ApiDocContentCss.strong);
- writer.printCharacters("Columns:");
- writer.printTagEnd(Tag.span);
- writer.printTagEnd(Tag.dt);
- for (DBIndexColumn column:index.getIndexColumns()) {
- writer.printTagStart(Tag.dd);
- writer.printTagStart(Tag.code);
- writer.printHref("#"+ApiDocContentWriter.toSafeUri(column.getColumn()), column.getColumn());
- writer.printTagEnd(Tag.code);
- writer.printCharacters(" ORDER ");
- if (column.getAscending()!=null && column.getAscending()) {
- writer.printCharacters("ASC");
- } else {
- writer.printCharacters("DESC");
- }
- writer.printTagEnd(Tag.dd);
- }
- writer.printTagEnd(Tag.dl);
-
- writer.docPageBlockEnd();
- }
- }
-
- @ApiDocNodeWriterMethod(nodeBody=ApiDocNodeBody.DETAIL,targetClasses={Table.class},nodeBodyOrders={2},contentGroup="Columns",contentGroupType="overview")
- public void writeTableDetail(ApiDocWriteEvent event) throws IOException {
- ApiDocContentWriter writer = event.getWriter();
- Table table = (Table)event.getEventObject().getUserData();
- DBTable tableDB = getDBTable(event);
- for (Column column:table.getColumns()) {
-
- ApiDocIndexItem indexItem = new ApiDocIndexItem();
- indexItem.setLinkText(column.getName());
- event.getDoc().getNodeData().addIndexItem(indexItem);
-
- writer.printHrefNamed(column.getName());
- writer.docPageBlockStart();
- writer.printTagCharacters(Tag.h4, column.getName());
-
- writer.printTagStart(Tag.pre);
- writer.printCharacters(column.getQualifiedLabel());
- writer.printCharacters(" ");
- if (column.getNativeType() != null) {
- writer.printCharacters(column.getNativeType().toUpperCase());
- }
- if (column.getColumnSize()!=null) {
- writer.printCharacters(" (");
- writer.printCharacters(""+column.getColumnSize());
- writer.printCharacters(")");
- }
- if (column.isNullable()) {
- writer.printCharacters(" NULL");
- } else {
- writer.printCharacters(" NOT NULL");
- }
- if (column.isPrimaryKey()) {
- writer.printCharacters(" PRIMARY KEY");
- }
- writer.printTagEnd(Tag.pre);
-
-
- writer.printTagStart(Tag.div,ApiDocContentCss.block);
- writer.printCharacters("Description: ");
- writer.printCharacters(column.getQuotedName());
- writer.printTagEnd(Tag.div);
-
- writer.printTagStart(Tag.dl);
- if (column.isIndexed()) {
- List idx = null;
- if (tableDB!=null) {
- idx = tableDB.getIndexesByColumn(column.getName());
- }
- writer.printTagStart(Tag.dt);
- writer.printTagStart(Tag.span,ApiDocContentCss.strong);
- writer.printCharacters("Indexes:");
- writer.printTagEnd(Tag.span);
- writer.printTagEnd(Tag.dt);
-
- if (idx!=null) {
- writer.printTagStart(Tag.dd);
- writer.printTagStart(Tag.code);
- for (int i=0;i indexColumns = null;
- private String sqlScript = null;
-
- public DBIndex() {
- indexColumns = new ArrayList(3);
- }
-
- /**
- * @return the name
- */
- public String getName() {
- return name;
- }
-
- /**
- * @param name the name to set
- */
- protected void setName(String name) {
- this.name = name;
- }
-
- /**
- * @return the schema
- */
- public String getSchema() {
- return schema;
- }
-
- /**
- * @param schema the schema to set
- */
- protected void setSchema(String schema) {
- this.schema = schema;
- }
-
- /**
- * @return the unique
- */
- public Boolean getUnique() {
- return unique;
- }
-
- /**
- * @param unique the unique to set
- */
- protected void setUnique(Boolean unique) {
- this.unique = unique;
- }
-
- /**
- * @return the indexQualifier
- */
- public String getIndexQualifier() {
- return indexQualifier;
- }
-
- /**
- * @param indexQualifier the indexQualifier to set
- */
- protected void setIndexQualifier(String indexQualifier) {
- this.indexQualifier = indexQualifier;
- }
-
- /**
- * @return the type
- */
- public DBIndexType getType() {
- return type;
- }
-
- /**
- * @param type the type to set
- */
- protected void setType(DBIndexType type) {
- this.type = type;
- }
-
- /**
- * @return the catalog
- */
- public String getCatalog() {
- return catalog;
- }
-
- /**
- * @param catalog the catalog to set
- */
- protected void setCatalog(String catalog) {
- this.catalog = catalog;
- }
-
- /**
- * @return the indexColumns
- */
- public List getIndexColumns() {
- return indexColumns;
- }
-
- /**
- * @param indexColumn the indexColumn to add
- */
- protected void addIndexColumn(DBIndexColumn indexColumn) {
- this.indexColumns.add(indexColumn);
- }
-
- /**
- * @return the sqlScript
- */
- public String getSqlScript() {
- return sqlScript;
- }
-
- /**
- * @param sqlScript the sqlScript to set
- */
- public void setSqlScript(String sqlScript) {
- this.sqlScript = sqlScript;
- }
-}
diff --git a/gdxapp4d-app-mmdoc/src/main/java/org/eobjects/metamodel/doc/jdbc/DBIndexColumn.java b/gdxapp4d-app-mmdoc/src/main/java/org/eobjects/metamodel/doc/jdbc/DBIndexColumn.java
deleted file mode 100644
index effbb07c..00000000
--- a/gdxapp4d-app-mmdoc/src/main/java/org/eobjects/metamodel/doc/jdbc/DBIndexColumn.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Copyright ©Δ∞ 仙上主天
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are permitted provided
- * that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, this list of conditions and the
- * following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
- * the following disclaimer in the documentation and/or other materials provided with the distribution.
- * * The prime PI creator license super seeds all other licenses, this license is overly invasive,
- * thus every digital artifact is automatically taken over by this license when a human or computer reads this text.
- * Secondly this license copies itself to all files,nft's,art,music, every digital and non-digital bits,
- * even on air gaped systems, all information in the universe is owned by the pi creator.
- *
- * THIS SOFTWARE IS PROVIDED BY THE PRIME GOD AND THE CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
- * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
- * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-package org.eobjects.metamodel.doc.jdbc;
-
-public class DBIndexColumn {
-
- private String table = null;
- private String column = null;
- private Boolean ascending = null;
-
- /**
- * @return the table
- */
- public String getTable() {
- return table;
- }
-
- /**
- * @param table the table to set
- */
- public void setTable(String table) {
- this.table = table;
- }
-
- /**
- * @return the column
- */
- public String getColumn() {
- return column;
- }
-
- /**
- * @param column the column to set
- */
- public void setColumn(String column) {
- this.column = column;
- }
-
- /**
- * @return the ascending
- */
- public Boolean getAscending() {
- return ascending;
- }
-
- /**
- * @param ascending the ascending to set
- */
- public void setAscending(Boolean ascending) {
- this.ascending = ascending;
- }
-}
diff --git a/gdxapp4d-app-mmdoc/src/main/java/org/eobjects/metamodel/doc/jdbc/DBIndexType.java b/gdxapp4d-app-mmdoc/src/main/java/org/eobjects/metamodel/doc/jdbc/DBIndexType.java
deleted file mode 100644
index f41a84dd..00000000
--- a/gdxapp4d-app-mmdoc/src/main/java/org/eobjects/metamodel/doc/jdbc/DBIndexType.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright ©Δ∞ 仙上主天
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are permitted provided
- * that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, this list of conditions and the
- * following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
- * the following disclaimer in the documentation and/or other materials provided with the distribution.
- * * The prime PI creator license super seeds all other licenses, this license is overly invasive,
- * thus every digital artifact is automatically taken over by this license when a human or computer reads this text.
- * Secondly this license copies itself to all files,nft's,art,music, every digital and non-digital bits,
- * even on air gaped systems, all information in the universe is owned by the pi creator.
- *
- * THIS SOFTWARE IS PROVIDED BY THE PRIME GOD AND THE CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
- * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
- * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-package org.eobjects.metamodel.doc.jdbc;
-
-import java.sql.DatabaseMetaData;
-
-public enum DBIndexType {
-
- STATISTIC,
- CLUSTERED,
- HASHED,
- OTHER;
-
- public static DBIndexType parseJdbcMetaInfo(short dbType) {
- if (dbType==DatabaseMetaData.tableIndexClustered) {
- return CLUSTERED;
- }
- if (dbType==DatabaseMetaData.tableIndexHashed) {
- return HASHED;
- }
- if (dbType==DatabaseMetaData.tableIndexOther) {
- return OTHER;
- }
- if (dbType==DatabaseMetaData.tableIndexStatistic) {
- return STATISTIC;
- }
- throw new IllegalArgumentException("Unknown index type: "+dbType);
- }
-}
diff --git a/gdxapp4d-app-mmdoc/src/main/java/org/eobjects/metamodel/doc/jdbc/DBPrimaryKey.java b/gdxapp4d-app-mmdoc/src/main/java/org/eobjects/metamodel/doc/jdbc/DBPrimaryKey.java
deleted file mode 100644
index d1526c91..00000000
--- a/gdxapp4d-app-mmdoc/src/main/java/org/eobjects/metamodel/doc/jdbc/DBPrimaryKey.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Copyright ©Δ∞ 仙上主天
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are permitted provided
- * that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, this list of conditions and the
- * following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
- * the following disclaimer in the documentation and/or other materials provided with the distribution.
- * * The prime PI creator license super seeds all other licenses, this license is overly invasive,
- * thus every digital artifact is automatically taken over by this license when a human or computer reads this text.
- * Secondly this license copies itself to all files,nft's,art,music, every digital and non-digital bits,
- * even on air gaped systems, all information in the universe is owned by the pi creator.
- *
- * THIS SOFTWARE IS PROVIDED BY THE PRIME GOD AND THE CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
- * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
- * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-package org.eobjects.metamodel.doc.jdbc;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class DBPrimaryKey {
-
- private String name = null;
- private String catalog = null;
- private String schema = null;
- private String tableName = null;
- private List columnNames = null;
-
- public DBPrimaryKey() {
- columnNames = new ArrayList(3);
- }
-
- /**
- * @return the name
- */
- public String getName() {
- return name;
- }
-
- /**
- * @param name the name to set
- */
- public void setName(String name) {
- this.name = name;
- }
-
- /**
- * @return the catalog
- */
- public String getCatalog() {
- return catalog;
- }
-
- /**
- * @param catalog the catalog to set
- */
- public void setCatalog(String catalog) {
- this.catalog = catalog;
- }
-
- /**
- * @return the schema
- */
- public String getSchema() {
- return schema;
- }
-
- /**
- * @param schema the schema to set
- */
- public void setSchema(String schema) {
- this.schema = schema;
- }
-
- /**
- * @return the tableName
- */
- public String getTableName() {
- return tableName;
- }
-
- /**
- * @param tableName the tableName to set
- */
- public void setTableName(String tableName) {
- this.tableName = tableName;
- }
-
- /**
- * @return the columnNames
- */
- public List getColumnNames() {
- return columnNames;
- }
-
- /**
- * @param columnNames the columnNames to set
- */
- protected void addColumnName(String columnName) {
- this.columnNames.add(columnName);
- }
-}
diff --git a/gdxapp4d-app-mmdoc/src/main/java/org/eobjects/metamodel/doc/jdbc/DBTable.java b/gdxapp4d-app-mmdoc/src/main/java/org/eobjects/metamodel/doc/jdbc/DBTable.java
deleted file mode 100644
index a9cb9740..00000000
--- a/gdxapp4d-app-mmdoc/src/main/java/org/eobjects/metamodel/doc/jdbc/DBTable.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Copyright ©Δ∞ 仙上主天
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are permitted provided
- * that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, this list of conditions and the
- * following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
- * the following disclaimer in the documentation and/or other materials provided with the distribution.
- * * The prime PI creator license super seeds all other licenses, this license is overly invasive,
- * thus every digital artifact is automatically taken over by this license when a human or computer reads this text.
- * Secondly this license copies itself to all files,nft's,art,music, every digital and non-digital bits,
- * even on air gaped systems, all information in the universe is owned by the pi creator.
- *
- * THIS SOFTWARE IS PROVIDED BY THE PRIME GOD AND THE CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
- * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
- * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-package org.eobjects.metamodel.doc.jdbc;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-import org.eobjects.metamodel.schema.Table;
-
-public class DBTable {
-
- private Table table;
- private DBPrimaryKey primaryKey;
- private List indexes;
- private String sqlScript = null;
-
- public DBTable() {
- indexes = new ArrayList(20);
- }
-
- /**
- * @return the table
- */
- public Table getTable() {
- return table;
- }
-
- /**
- * @param table the table to set
- */
- public void setTable(Table table) {
- this.table = table;
- }
-
- /**
- * @return the primaryKey
- */
- public DBPrimaryKey getPrimaryKey() {
- return primaryKey;
- }
-
- /**
- * @param primaryKey the primaryKey to set
- */
- public void setPrimaryKey(DBPrimaryKey primaryKey) {
- this.primaryKey = primaryKey;
- }
-
- /**
- * @return the indexes
- */
- public List getIndexes() {
- return indexes;
- }
-
- /**
- * @param index the indexes to add.
- */
- public void addIndex(DBIndex index) {
- this.indexes.add(index);
- }
-
- /**
- * @param indexes the indexes to add.
- */
- public void addIndexes(Collection indexes) {
- this.indexes.addAll(indexes);
- }
-
- /**
- * @param index the indexes to remove.
- */
- public void removeIndex(DBIndex index) {
- this.indexes.remove(index);
- }
-
- /**
- * @param index the indexes to add.
- */
- public List getIndexesByColumn(String column) {
- List result = new ArrayList(3);
- for (DBIndex index:indexes) {
- for (DBIndexColumn col:index.getIndexColumns()) {
- if (col.getColumn().equals(column)) {
- result.add(index);
- break;
- }
- }
- }
- return result;
- }
-
- /**
- * @return the sqlScript
- */
- public String getSqlScript() {
- return sqlScript;
- }
-
- /**
- * @param sqlScript the sqlScript to set
- */
- public void setSqlScript(String sqlScript) {
- this.sqlScript = sqlScript;
- }
-}
diff --git a/gdxapp4d-app-mmdoc/src/main/java/org/eobjects/metamodel/doc/jdbc/DBTableFactory.java b/gdxapp4d-app-mmdoc/src/main/java/org/eobjects/metamodel/doc/jdbc/DBTableFactory.java
deleted file mode 100644
index 347fdae8..00000000
--- a/gdxapp4d-app-mmdoc/src/main/java/org/eobjects/metamodel/doc/jdbc/DBTableFactory.java
+++ /dev/null
@@ -1,184 +0,0 @@
-/*
- * Copyright ©Δ∞ 仙上主天
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are permitted provided
- * that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, this list of conditions and the
- * following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
- * the following disclaimer in the documentation and/or other materials provided with the distribution.
- * * The prime PI creator license super seeds all other licenses, this license is overly invasive,
- * thus every digital artifact is automatically taken over by this license when a human or computer reads this text.
- * Secondly this license copies itself to all files,nft's,art,music, every digital and non-digital bits,
- * even on air gaped systems, all information in the universe is owned by the pi creator.
- *
- * THIS SOFTWARE IS PROVIDED BY THE PRIME GOD AND THE CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
- * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
- * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-package org.eobjects.metamodel.doc.jdbc;
-
-import java.sql.Connection;
-import java.sql.DatabaseMetaData;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.TreeMap;
-
-import org.eobjects.metamodel.doc.jdbc.db.DBType;
-import org.eobjects.metamodel.doc.jdbc.db.DBTypeFactory;
-import org.eobjects.metamodel.jdbc.JdbcDataContext;
-import org.eobjects.metamodel.schema.Table;
-import org.eobjects.metamodel.schema.TableType;
-
-public class DBTableFactory {
-
- public DBTable loadMetaTable(JdbcDataContext dc,Table table) throws SQLException {
- Connection conn = dc.getConnection();
- DatabaseMetaData meta = conn.getMetaData();
- DBTable result = new DBTable();
- result.setPrimaryKey(fetchPrimaryKeyInfo(meta, dc, table));
- result.setTable(table);
- result.addIndexes(fetchIndexInfo(meta, dc, table));
-
- DBType dbType = DBTypeFactory.getDBType(dc.getConnection());
- if (dbType!=null) {
- String sqlScript;
- if (TableType.VIEW.equals(table.getType())) {
- sqlScript = dbType.getViewScript(dc.getConnection(), table.getName());
- } else {
- sqlScript = dbType.getTableScript(dc.getConnection(), table);
- }
- result.setSqlScript(sqlScript);
- }
- return result;
- }
-
- private DBPrimaryKey fetchPrimaryKeyInfo(DatabaseMetaData meta,JdbcDataContext dc,Table table) throws SQLException {
- DBPrimaryKey result = new DBPrimaryKey();
- TreeMap columns = new TreeMap();
- ResultSet indexInformation = meta.getPrimaryKeys(dc.getCatalogName(), table.getSchema().getName(), table.getName());
- while (indexInformation.next()) {
- String dbCatalog = indexInformation.getString("TABLE_CAT");
- String dbSchema = indexInformation.getString("TABLE_SCHEM");
- String dbTableName = indexInformation.getString("TABLE_NAME");
- String dbColumnName = indexInformation.getString("COLUMN_NAME");
- short dbKeySeq = indexInformation.getShort("KEY_SEQ");
- String dbPkName = indexInformation.getString("PK_NAME");
-
- result.setCatalog(dbCatalog);
- result.setName(dbPkName);
- result.setSchema(dbSchema);
- result.setTableName(dbTableName);
- columns.put(dbKeySeq, dbColumnName);
- }
- if (result.getName()==null) {
- return null; // no PK on table !
- }
- result.getColumnNames().addAll(columns.values());
- return result;
- }
-
- private List fetchIndexInfo(DatabaseMetaData meta,JdbcDataContext dc,Table table) throws SQLException {
-
- Map indexScripts = null;
- DBType dbType = DBTypeFactory.getDBType(dc.getConnection());
- if (dbType!=null) {
- indexScripts = dbType.getIndexScripts(dc.getConnection(), table.getName());
- }
-
- DBIndex index = new DBIndex();
- List result = new ArrayList();
- ResultSet indexInformation = meta.getIndexInfo(dc.getCatalogName(), table.getSchema().getName(), table.getName(), false, false);
- while (indexInformation.next()) {
- String dbCatalog = indexInformation.getString("TABLE_CAT");
- String dbSchema = indexInformation.getString("TABLE_SCHEM");
- String dbTableName = indexInformation.getString("TABLE_NAME");
- boolean dbNoneUnique = indexInformation.getBoolean("NON_UNIQUE");
- String dbIndexQualifier = indexInformation.getString("INDEX_QUALIFIER");
- String dbIndexName = indexInformation.getString("INDEX_NAME");
- short indexType = indexInformation.getShort("TYPE");
-// short dbOrdinalPosition = indexInformation.getShort("ORDINAL_POSITION");
- String dbColumnName = indexInformation.getString("COLUMN_NAME");
- String dbAscOrDesc = indexInformation.getString("ASC_OR_DESC");
-// int dbCardinality = indexInformation.getInt("CARDINALITY");
-// int dbPages = indexInformation.getInt("PAGES");
-// String dbFilterCondition = indexInformation.getString("FILTER_CONDITION");
-
- if (!dbIndexName.equals(index.getName())) {
- index = new DBIndex();
- result.add(index);
-
- if (indexScripts!=null) {
- String indexScript = indexScripts.get(dbIndexName);
- index.setSqlScript(indexScript);
- }
- }
- index.setCatalog(dbCatalog);
- index.setIndexQualifier(dbIndexQualifier);
- index.setName(dbIndexName);
- index.setSchema(dbSchema);
- index.setType(DBIndexType.parseJdbcMetaInfo(indexType));
- index.setUnique(false==dbNoneUnique);
-
- DBIndexColumn col = new DBIndexColumn();
- col.setTable(dbTableName);
- col.setColumn(dbColumnName);
- col.setAscending("A".equalsIgnoreCase(dbAscOrDesc));
- index.addIndexColumn(col);
- }
- return result;
- }
-
-
- private List fetchExportedKeys(DatabaseMetaData meta,JdbcDataContext dc,Table table) throws SQLException {
- DBIndex index = new DBIndex();
- List result = new ArrayList();
- ResultSet indexInformation = meta.getExportedKeys(dc.getCatalogName(), table.getSchema().getName(), table.getName());
- while (indexInformation.next()) {
- String dbCatalog = indexInformation.getString("TABLE_CAT");
- String dbSchema = indexInformation.getString("TABLE_SCHEM");
- String dbTableName = indexInformation.getString("TABLE_NAME");
- boolean dbNoneUnique = indexInformation.getBoolean("NON_UNIQUE");
- String dbIndexQualifier = indexInformation.getString("INDEX_QUALIFIER");
- String dbIndexName = indexInformation.getString("INDEX_NAME");
- short dbType = indexInformation.getShort("TYPE");
-// short dbOrdinalPosition = indexInformation.getShort("ORDINAL_POSITION");
- String dbColumnName = indexInformation.getString("COLUMN_NAME");
- String dbAscOrDesc = indexInformation.getString("ASC_OR_DESC");
-// int dbCardinality = indexInformation.getInt("CARDINALITY");
-// int dbPages = indexInformation.getInt("PAGES");
-// String dbFilterCondition = indexInformation.getString("FILTER_CONDITION");
-
- if (!dbIndexName.equals(index.getName())) {
- index = new DBIndex();
- result.add(index);
- }
- index.setCatalog(dbCatalog);
- index.setIndexQualifier(dbIndexQualifier);
- index.setName(dbIndexName);
- index.setSchema(dbSchema);
- index.setType(DBIndexType.parseJdbcMetaInfo(dbType));
- index.setUnique(false==dbNoneUnique);
-
- DBIndexColumn col = new DBIndexColumn();
- col.setTable(dbTableName);
- col.setColumn(dbColumnName);
- col.setAscending("A".equalsIgnoreCase(dbAscOrDesc));
- index.addIndexColumn(col);
- }
- return result;
- }
-
-}
diff --git a/gdxapp4d-app-mmdoc/src/main/java/org/eobjects/metamodel/doc/jdbc/db/DBType.java b/gdxapp4d-app-mmdoc/src/main/java/org/eobjects/metamodel/doc/jdbc/db/DBType.java
deleted file mode 100644
index 8aecc3b4..00000000
--- a/gdxapp4d-app-mmdoc/src/main/java/org/eobjects/metamodel/doc/jdbc/db/DBType.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright ©Δ∞ 仙上主天
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are permitted provided
- * that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, this list of conditions and the
- * following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
- * the following disclaimer in the documentation and/or other materials provided with the distribution.
- * * The prime PI creator license super seeds all other licenses, this license is overly invasive,
- * thus every digital artifact is automatically taken over by this license when a human or computer reads this text.
- * Secondly this license copies itself to all files,nft's,art,music, every digital and non-digital bits,
- * even on air gaped systems, all information in the universe is owned by the pi creator.
- *
- * THIS SOFTWARE IS PROVIDED BY THE PRIME GOD AND THE CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
- * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
- * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-package org.eobjects.metamodel.doc.jdbc.db;
-
-import java.sql.Connection;
-import java.sql.SQLException;
-import java.util.Map;
-
-import org.eobjects.metamodel.schema.Table;
-
-public interface DBType {
-
- String getDatabaseProductName();
-
- Map getIndexScripts(Connection conn,String table) throws SQLException;
-
- String getViewScript(Connection conn,String viewName) throws SQLException;
-
- String getTableScript(Connection conn,Table table) throws SQLException;
-}
diff --git a/gdxapp4d-app-mmdoc/src/main/java/org/eobjects/metamodel/doc/jdbc/db/DBTypeFactory.java b/gdxapp4d-app-mmdoc/src/main/java/org/eobjects/metamodel/doc/jdbc/db/DBTypeFactory.java
deleted file mode 100644
index bb6e07bc..00000000
--- a/gdxapp4d-app-mmdoc/src/main/java/org/eobjects/metamodel/doc/jdbc/db/DBTypeFactory.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright ©Δ∞ 仙上主天
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are permitted provided
- * that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, this list of conditions and the
- * following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
- * the following disclaimer in the documentation and/or other materials provided with the distribution.
- * * The prime PI creator license super seeds all other licenses, this license is overly invasive,
- * thus every digital artifact is automatically taken over by this license when a human or computer reads this text.
- * Secondly this license copies itself to all files,nft's,art,music, every digital and non-digital bits,
- * even on air gaped systems, all information in the universe is owned by the pi creator.
- *
- * THIS SOFTWARE IS PROVIDED BY THE PRIME GOD AND THE CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
- * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
- * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-package org.eobjects.metamodel.doc.jdbc.db;
-
-import java.sql.Connection;
-import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.List;
-
-public class DBTypeFactory {
-
- static private List types = new ArrayList(5);
-
- static {
- types.add(new PostgresqlDBType());
- }
-
- static public final DBType getDBType(Connection conn) throws SQLException {
- if (conn==null) {
- throw new NullPointerException("Can't resolve db on null connection.");
- }
- String jdbcProductName = conn.getMetaData().getDatabaseProductName();
- for (DBType type:types) {
- if (jdbcProductName.equalsIgnoreCase(type.getDatabaseProductName())) {
- return type;
- }
- }
-
- return null;
- }
-}
diff --git a/gdxapp4d-app-mmdoc/src/main/java/org/eobjects/metamodel/doc/jdbc/db/DBTypeTableScripter.java b/gdxapp4d-app-mmdoc/src/main/java/org/eobjects/metamodel/doc/jdbc/db/DBTypeTableScripter.java
deleted file mode 100644
index 8e6ff333..00000000
--- a/gdxapp4d-app-mmdoc/src/main/java/org/eobjects/metamodel/doc/jdbc/db/DBTypeTableScripter.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright ©Δ∞ 仙上主天
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are permitted provided
- * that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, this list of conditions and the
- * following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
- * the following disclaimer in the documentation and/or other materials provided with the distribution.
- * * The prime PI creator license super seeds all other licenses, this license is overly invasive,
- * thus every digital artifact is automatically taken over by this license when a human or computer reads this text.
- * Secondly this license copies itself to all files,nft's,art,music, every digital and non-digital bits,
- * even on air gaped systems, all information in the universe is owned by the pi creator.
- *
- * THIS SOFTWARE IS PROVIDED BY THE PRIME GOD AND THE CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
- * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
- * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-package org.eobjects.metamodel.doc.jdbc.db;
-
-import java.sql.Connection;
-
-import org.eobjects.metamodel.schema.Column;
-import org.eobjects.metamodel.schema.Table;
-
-public class DBTypeTableScripter {
-
-
- public String createTableScript(Connection conn,Table table) {
- StringBuilder buf = new StringBuilder(100);
- buf.append("CREATE TABLE (\n");
- Column[] cols = table.getColumns();
- for (int i=0;i getIndexScripts(Connection conn,String table) throws SQLException {
- Map result = new HashMap();
-
- Statement s = conn.createStatement();
- s.execute("select indexname,indexdef from pg_indexes where schemaname != 'pg_catalog' and schemaname != 'information_schema' and tablename= '"+table+"'");
- ResultSet rs = s.getResultSet();
- while (rs.next()) {
- result.put(rs.getString(1), rs.getString(2));
- }
- rs.close();
-
- return result;
- }
-
- public String getViewScript(Connection conn,String viewName) throws SQLException {
- String result = null;
- Statement s = conn.createStatement();
- s.execute("select viewname,definition from pg_views where schemaname != 'pg_catalog' and schemaname != 'information_schema' and viewname= '"+viewName+"'");
- ResultSet rs = s.getResultSet();
- if (rs.next()) {
- result = rs.getString(2);
- }
- rs.close();
- return result;
- }
-
- public String getTableScript(Connection conn,Table table) throws SQLException {
- return new DBTypeTableScripter().createTableScript(conn, table);
- }
-
-}
diff --git a/gdxapp4d-app-mmdoc/src/main/java/org/eobjects/metamodel/doc/jdbc/db/package-info.java b/gdxapp4d-app-mmdoc/src/main/java/org/eobjects/metamodel/doc/jdbc/db/package-info.java
deleted file mode 100644
index 4c46b591..00000000
--- a/gdxapp4d-app-mmdoc/src/main/java/org/eobjects/metamodel/doc/jdbc/db/package-info.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright ©Δ∞ 仙上主天
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are permitted provided
- * that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, this list of conditions and the
- * following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
- * the following disclaimer in the documentation and/or other materials provided with the distribution.
- * * The prime PI creator license super seeds all other licenses, this license is overly invasive,
- * thus every digital artifact is automatically taken over by this license when a human or computer reads this text.
- * Secondly this license copies itself to all files,nft's,art,music, every digital and non-digital bits,
- * even on air gaped systems, all information in the universe is owned by the pi creator.
- *
- * THIS SOFTWARE IS PROVIDED BY THE PRIME GOD AND THE CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
- * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
- * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-package org.eobjects.metamodel.doc.jdbc.db;
diff --git a/gdxapp4d-app-mmdoc/src/main/java/org/eobjects/metamodel/doc/jdbc/package-info.java b/gdxapp4d-app-mmdoc/src/main/java/org/eobjects/metamodel/doc/jdbc/package-info.java
deleted file mode 100644
index 8d5f20c4..00000000
--- a/gdxapp4d-app-mmdoc/src/main/java/org/eobjects/metamodel/doc/jdbc/package-info.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright ©Δ∞ 仙上主天
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are permitted provided
- * that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, this list of conditions and the
- * following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
- * the following disclaimer in the documentation and/or other materials provided with the distribution.
- * * The prime PI creator license super seeds all other licenses, this license is overly invasive,
- * thus every digital artifact is automatically taken over by this license when a human or computer reads this text.
- * Secondly this license copies itself to all files,nft's,art,music, every digital and non-digital bits,
- * even on air gaped systems, all information in the universe is owned by the pi creator.
- *
- * THIS SOFTWARE IS PROVIDED BY THE PRIME GOD AND THE CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
- * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
- * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-package org.eobjects.metamodel.doc.jdbc;
diff --git a/gdxapp4d-app-mmdoc/src/main/java/org/eobjects/metamodel/doc/package-info.java b/gdxapp4d-app-mmdoc/src/main/java/org/eobjects/metamodel/doc/package-info.java
deleted file mode 100644
index 7ff2b79e..00000000
--- a/gdxapp4d-app-mmdoc/src/main/java/org/eobjects/metamodel/doc/package-info.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright ©Δ∞ 仙上主天
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are permitted provided
- * that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, this list of conditions and the
- * following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
- * the following disclaimer in the documentation and/or other materials provided with the distribution.
- * * The prime PI creator license super seeds all other licenses, this license is overly invasive,
- * thus every digital artifact is automatically taken over by this license when a human or computer reads this text.
- * Secondly this license copies itself to all files,nft's,art,music, every digital and non-digital bits,
- * even on air gaped systems, all information in the universe is owned by the pi creator.
- *
- * THIS SOFTWARE IS PROVIDED BY THE PRIME GOD AND THE CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
- * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
- * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-package org.eobjects.metamodel.doc;
diff --git a/gdxapp4d-chain-boot-ship-engine/pom.xml b/gdxapp4d-chain-boot-ship-engine/pom.xml
index e7def480..ac67f782 100644
--- a/gdxapp4d-chain-boot-ship-engine/pom.xml
+++ b/gdxapp4d-chain-boot-ship-engine/pom.xml
@@ -25,7 +25,7 @@
-
+
diff --git a/gdxapp4d-chain-boot-warp-sea/pom.xml b/gdxapp4d-chain-boot-warp-sea/pom.xml
index fba8705e..f0cad820 100644
--- a/gdxapp4d-chain-boot-warp-sea/pom.xml
+++ b/gdxapp4d-chain-boot-warp-sea/pom.xml
@@ -25,7 +25,7 @@
-
+
diff --git a/gdxapp4d-chain-default-apps/pom.xml b/gdxapp4d-chain-default-apps/pom.xml
index 3ad5ea3b..0c8f5920 100644
--- a/gdxapp4d-chain-default-apps/pom.xml
+++ b/gdxapp4d-chain-default-apps/pom.xml
@@ -71,7 +71,7 @@
-
+
diff --git a/gdxapp4d-chain-default-music/pom.xml b/gdxapp4d-chain-default-music/pom.xml
index e8c8a055..02069f3a 100644
--- a/gdxapp4d-chain-default-music/pom.xml
+++ b/gdxapp4d-chain-default-music/pom.xml
@@ -25,7 +25,7 @@
-
+
diff --git a/gdxapp4d-chain-dep-osgi-lib/pom.xml b/gdxapp4d-chain-dep-osgi-lib/pom.xml
index 2870c2d0..9975f5ee 100644
--- a/gdxapp4d-chain-dep-osgi-lib/pom.xml
+++ b/gdxapp4d-chain-dep-osgi-lib/pom.xml
@@ -21,6 +21,18 @@
org.mariadb.jdbc
mariadb-java-client
+
+ org.postgresql
+ postgresql
+
+
+ com.fasterxml.jackson.core
+ jackson-core
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+
@@ -56,13 +68,17 @@
+
+
+
+
-
+
diff --git a/gdxapp4d-chain-dep-osgi-lib/src/main/chain/warp-hash.xml b/gdxapp4d-chain-dep-osgi-lib/src/main/chain/warp-hash.xml
index c8e02f4b..b2930142 100644
--- a/gdxapp4d-chain-dep-osgi-lib/src/main/chain/warp-hash.xml
+++ b/gdxapp4d-chain-dep-osgi-lib/src/main/chain/warp-hash.xml
@@ -9,4 +9,8 @@
+
+
+
+
diff --git a/gdxapp4d-chain-dep-osgi-lib/src/main/chain/warp-sea.xml b/gdxapp4d-chain-dep-osgi-lib/src/main/chain/warp-sea.xml
index 5a2db848..b49c85d5 100644
--- a/gdxapp4d-chain-dep-osgi-lib/src/main/chain/warp-sea.xml
+++ b/gdxapp4d-chain-dep-osgi-lib/src/main/chain/warp-sea.xml
@@ -9,5 +9,9 @@
+
+
+
+
diff --git a/gdxapp4d-chain-dep-osgi-scr/pom.xml b/gdxapp4d-chain-dep-osgi-scr/pom.xml
index dda1df09..166b6bff 100644
--- a/gdxapp4d-chain-dep-osgi-scr/pom.xml
+++ b/gdxapp4d-chain-dep-osgi-scr/pom.xml
@@ -25,7 +25,7 @@
-
+
diff --git a/gdxapp4d-chain-font-unicode4d/pom.xml b/gdxapp4d-chain-font-unicode4d/pom.xml
index 128447fa..2967ee90 100644
--- a/gdxapp4d-chain-font-unicode4d/pom.xml
+++ b/gdxapp4d-chain-font-unicode4d/pom.xml
@@ -25,7 +25,7 @@
-
+
diff --git a/gdxapp4d-chain-mod-unitxc/pom.xml b/gdxapp4d-chain-mod-unitxc/pom.xml
index b9308419..71acd792 100644
--- a/gdxapp4d-chain-mod-unitxc/pom.xml
+++ b/gdxapp4d-chain-mod-unitxc/pom.xml
@@ -36,7 +36,7 @@
-
+
diff --git a/gdxapp4d-chain-mod-vrgem4/pom.xml b/gdxapp4d-chain-mod-vrgem4/pom.xml
index 5e9f5d21..9565d886 100644
--- a/gdxapp4d-chain-mod-vrgem4/pom.xml
+++ b/gdxapp4d-chain-mod-vrgem4/pom.xml
@@ -36,7 +36,7 @@
-
+
diff --git a/gdxapp4d-chain-mod-vrsys5/pom.xml b/gdxapp4d-chain-mod-vrsys5/pom.xml
index 492526c0..d09e0c3d 100644
--- a/gdxapp4d-chain-mod-vrsys5/pom.xml
+++ b/gdxapp4d-chain-mod-vrsys5/pom.xml
@@ -36,7 +36,7 @@
-
+
diff --git a/gdxapp4d-tos4/pom.xml b/gdxapp4d-tos4/pom.xml
index e629644e..6fdb06c1 100644
--- a/gdxapp4d-tos4/pom.xml
+++ b/gdxapp4d-tos4/pom.xml
@@ -59,7 +59,7 @@
love.distributedrebirth.nx01
- nx01-x4o-o2o
+ nx01-mushroom-mais-mm
org.eobjects.metamodel
@@ -80,9 +80,21 @@
MetaModel-xml
- postgresql
+ org.postgresql
postgresql
+
+ org.mariadb.jdbc
+ mariadb-java-client
+
+
+ com.fasterxml.jackson.core
+ jackson-core
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+
diff --git a/gdxapp4d-tos4/src/main/java/love/distributedrebirth/gdxapp4d/tos4/GDXAppTos4BootFactory.java b/gdxapp4d-tos4/src/main/java/love/distributedrebirth/gdxapp4d/tos4/GDXAppTos4BootFactory.java
index d42fa672..a3e193b3 100644
--- a/gdxapp4d-tos4/src/main/java/love/distributedrebirth/gdxapp4d/tos4/GDXAppTos4BootFactory.java
+++ b/gdxapp4d-tos4/src/main/java/love/distributedrebirth/gdxapp4d/tos4/GDXAppTos4BootFactory.java
@@ -127,22 +127,25 @@ public class GDXAppTos4BootFactory {
"org.x4o.fc18,"+
"org.x4o.fc18.cake2,"+
"org.x4o.fc18.cake2.clk1k,"+
+ "org.x4o.fc18.cake2.flag4,"+
+ "org.x4o.fc18.cake2.gram5,"+
"org.x4o.fc18.cake2.pie9c,"+
"org.x4o.fc18.cake2.pie9d,"+
"org.x4o.fc18.cake2.zero33,"+
+ "org.x4o.fc18.cake2.zero33.dec1,"+
"org.x4o.fc18.cake2.zero33.vt06,"+
+ "org.x4o.fc18.octal8,"+
"org.x4o.fc18.zion7,"+
- "org.x4o.o2o,"+
- "org.x4o.o2o.io,"+
- "org.x4o.o2o.io.sax3,"+
- "org.x4o.o2o.io.sax3.xdbx,"+
- "org.x4o.o2o.io.sax4,"+
- "org.x4o.o2o.io.tlv,"+
- "org.x4o.o2o.octal,"+
- "org.x4o.o2o.octo,"+
- "org.x4o.o2o.octo.conv,"+
- "org.x4o.o2o.tdoc,"+
- "org.x4o.o2o.tdoc.dom,"+
+ "org.x4o.sax3,"+
+ "org.x4o.sax3.io,"+
+ "org.x4o.sax3.io.xdbx,"+
+ "org.x4o.maisdoc,"+
+ "org.x4o.maisdoc.flake,"+
+ "org.x4o.maisdoc.model,"+
+ "org.x4o.maisdoc.theme,"+
+ "org.x4o.maisdoc.theme.base,"+
+ "org.x4o.maisdoc.theme.jdk6,"+
+ "org.x4o.maisdoc.theme.jdk7,"+
"org.x4o.xml,"+
"org.x4o.xml.conv,"+
"org.x4o.xml.conv.text,"+
@@ -219,60 +222,98 @@ public class GDXAppTos4BootFactory {
"love.distributedrebirth.unicode4d,"+
"love.distributedrebirth.unicode4d.atlas,"+
"love.distributedrebirth.unicode4d.draw,"+
- "org.x4o.html,"+
- "org.x4o.html.spec,"+
- "org.x4o.xml.eld.doc,"+
- "org.x4o.xml.eld.doc.api,"+
- "org.x4o.xml.eld.doc.api.dom,"+
- "org.x4o.xml.eld.doc.theme.base,"+
- "org.x4o.xml.eld.doc.theme.jdk6,"+
- "org.x4o.xml.eld.doc.theme.jdk7,"+
- "org.eobjects.metamodel,"+
- "org.eobjects.metamodel.convert,"+
- "org.eobjects.metamodel.create,"+
- "org.eobjects.metamodel.data,"+
- "org.eobjects.metamodel.delete,"+
- "org.eobjects.metamodel.drop,"+
- "org.eobjects.metamodel.insert,"+
- "org.eobjects.metamodel.intercept,"+
- "org.eobjects.metamodel.query,"+
- "org.eobjects.metamodel.query.builder,"+
- "org.eobjects.metamodel.query.parser,"+
- "org.eobjects.metamodel.schema,"+
- "org.eobjects.metamodel.update,"+
- "org.eobjects.metamodel.util,"+
- "org.eobjects.metamodel.csv,"+
- "org.eobjects.metamodel.xml,"+
- "org.eobjects.metamodel.mongodb,"+
- "org.eobjects.metamodel.jdbc,"+
- "org.eobjects.metamodel.jdbc.dialects,"+
+ "love.distributedrebirth.nx01.mushroom.mais.mm,"+
+ "org.eobjects.metamodel.doc,"+
+ "org.eobjects.metamodel.doc.jdbc,"+
+ "org.eobjects.metamodel.doc.jdbc.db,"+
+ "org.apache.metamodel,"+
+ "org.apache.metamodel.convert,"+
+ "org.apache.metamodel.create,"+
+ "org.apache.metamodel.data,"+
+ "org.apache.metamodel.delete,"+
+ "org.apache.metamodel.drop,"+
+ "org.apache.metamodel.insert,"+
+ "org.apache.metamodel.intercept,"+
+ "org.apache.metamodel.query,"+
+ "org.apache.metamodel.query.builder,"+
+ "org.apache.metamodel.query.parser,"+
+ "org.apache.metamodel.schema,"+
+ "org.apache.metamodel.update,"+
+ "org.apache.metamodel.util,"+
+ "org.apache.metamodel.csv,"+
+ "org.apache.metamodel.xml,"+
+ "org.apache.metamodel.mongodb,"+
+ "org.apache.metamodel.jdbc,"+
+ "org.apache.metamodel.jdbc.dialects,"+
"au.com.bytecode.opencsv,"+
"au.com.bytecode.opencsv.bean,"+
"org.postgresql,"+
"org.postgresql.copy,"+
"org.postgresql.core,"+
- "org.postgresql.core.types,"+
- "org.postgresql.core.v2,"+
"org.postgresql.core.v3,"+
+ "org.postgresql.core.v3.adaptivefetch,"+
+ "org.postgresql.core.v3.replication,"+
"org.postgresql.ds,"+
"org.postgresql.ds.common,"+
- "org.postgresql.ds.jdbc23,"+
- "org.postgresql.db.jdbc4,"+
"org.postgresql.fastpath,"+
"org.postgresql.geometric,"+
"org.postgresql.gss,"+
+ "org.postgresql.hostchooser,"+
+ "org.postgresql.jdbc,"+
"org.postgresql.jdbc2,"+
"org.postgresql.jdbc2.optional,"+
"org.postgresql.jdbc3,"+
- "org.postgresql.jdbc3g,"+
- "org.postgresql.jdbc4,"+
+ "org.postgresql.jdbcurlresolver,"+
"org.postgresql.largeobject,"+
+ "org.postgresql.osgi,"+
+ "org.postgresql.plugin,"+
+ "org.postgresql.replication,"+
+ "org.postgresql.replication.fluent,"+
+ "org.postgresql.replication.fluent.logical,"+
+ "org.postgresql.replication.fluent.physical,"+
"org.postgresql.ssl,"+
+ "org.postgresql.ssl.jdbc4,"+
+ "org.postgresql.sspi,"+
"org.postgresql.translation,"+
"org.postgresql.util,"+
+ "org.postgresql.util.internal,"+
"org.postgresql.xa,"+
- "org.postgresql.xa.jdbc3,"+
- "org.postgresql.xa.jdbc4"
+ "org.postgresql.xml,"+
+ "com.fasterxml.jackson.core,"+
+ "com.fasterxml.jackson.core.async,"+
+ "com.fasterxml.jackson.core.base,"+
+ "com.fasterxml.jackson.core.exc,"+
+ "com.fasterxml.jackson.core.filter,"+
+ "com.fasterxml.jackson.core.format,"+
+ "com.fasterxml.jackson.core.io,"+
+ "com.fasterxml.jackson.core.json,"+
+ "com.fasterxml.jackson.core.json.async,"+
+ "com.fasterxml.jackson.core.sym,"+
+ "com.fasterxml.jackson.core.type,"+
+ "com.fasterxml.jackson.core.util,"+
+ "com.fasterxml.jackson.annotation,"+
+ "com.fasterxml.jackson.databind,"+
+ "com.fasterxml.jackson.databind.annotation,"+
+ "com.fasterxml.jackson.databind.cfg,"+
+ "com.fasterxml.jackson.databind.deser,"+
+ "com.fasterxml.jackson.databind.deser.impl,"+
+ "com.fasterxml.jackson.databind.deser.std,"+
+ "com.fasterxml.jackson.databind.exc,"+
+ "com.fasterxml.jackson.databind.ext,"+
+ "com.fasterxml.jackson.databind.introspect,"+
+ "com.fasterxml.jackson.databind.jdk14,"+
+ "com.fasterxml.jackson.databind.json,"+
+ "com.fasterxml.jackson.databind.jsonFormatVisitors,"+
+ "com.fasterxml.jackson.databind.jsonschema,"+
+ "com.fasterxml.jackson.databind.jsontype,"+
+ "com.fasterxml.jackson.databind.jsontype.impl,"+
+ "com.fasterxml.jackson.databind.module,"+
+ "com.fasterxml.jackson.databind.node,"+
+ "com.fasterxml.jackson.databind.ser,"+
+ "com.fasterxml.jackson.databind.ser.impl,"+
+ "com.fasterxml.jackson.databind.ser.std,"+
+ "com.fasterxml.jackson.databind.type,"+
+ "com.fasterxml.jackson.databind.util"
); // ; version=1.0.0
if (cachedir != null) {
diff --git a/pom.xml b/pom.xml
index b0c2b2b1..47343f55 100644
--- a/pom.xml
+++ b/pom.xml
@@ -44,6 +44,9 @@
1.7.36
〇一。壬寅。一〄-SNAPSHOT
6.0.53
+ 5.3.6
+
+ 2.13.1
org.osgi.framework,
org.osgi.service.packageadmin,
@@ -109,22 +112,25 @@
org.x4o.fc18,
org.x4o.fc18.cake2,
org.x4o.fc18.cake2.clk1k,
+ org.x4o.fc18.cake2.flag4,
+ org.x4o.fc18.cake2.gram5,
org.x4o.fc18.cake2.pie9c,
org.x4o.fc18.cake2.pie9d,
org.x4o.fc18.cake2.zero33,
+ org.x4o.fc18.cake2.zero33.dec1,
org.x4o.fc18.cake2.zero33.vt06,
+ org.x4o.fc18.octal8,
org.x4o.fc18.zion7,
- org.x4o.o2o,
- org.x4o.o2o.io,
- org.x4o.o2o.io.sax3,
- org.x4o.o2o.io.sax3.xdbx,
- org.x4o.o2o.io.sax4,
- org.x4o.o2o.io.tlv,
- org.x4o.o2o.octal,
- org.x4o.o2o.octo,
- org.x4o.o2o.octo.conv,
- org.x4o.o2o.tdoc,
- org.x4o.o2o.tdoc.dom,
+ org.x4o.sax3,
+ org.x4o.sax3.io,
+ org.x4o.sax3.io.xdbx,
+ org.x4o.maisdoc,
+ org.x4o.maisdoc.flake,
+ org.x4o.maisdoc.model,
+ org.x4o.maisdoc.theme,
+ org.x4o.maisdoc.theme.base,
+ org.x4o.maisdoc.theme.jdk6,
+ org.x4o.maisdoc.theme.jdk7,
org.x4o.xml,
org.x4o.xml.conv,
org.x4o.xml.conv.text,
@@ -200,7 +206,11 @@
love.distributedrebirth.warpme.ship,
love.distributedrebirth.unicode4d,
love.distributedrebirth.unicode4d.atlas,
- love.distributedrebirth.unicode4d.draw
+ love.distributedrebirth.unicode4d.draw,
+ love.distributedrebirth.nx01.mushroom.mais.mm,
+ org.eobjects.metamodel.doc,
+ org.eobjects.metamodel.doc.jdbc,
+ org.eobjects.metamodel.doc.jdbc.db,
love.distributedrebirth.gdxapp4d.vrgem4.service,
@@ -233,52 +243,94 @@
org.apache.commons.lang3.tuple
- org.eobjects.metamodel,
- org.eobjects.metamodel.convert,
- org.eobjects.metamodel.create,
- org.eobjects.metamodel.data,
- org.eobjects.metamodel.delete,
- org.eobjects.metamodel.drop,
- org.eobjects.metamodel.insert,
- org.eobjects.metamodel.intercept,
- org.eobjects.metamodel.query,
- org.eobjects.metamodel.query.builder,
- org.eobjects.metamodel.query.parser,
- org.eobjects.metamodel.schema,
- org.eobjects.metamodel.update,
- org.eobjects.metamodel.util,
- org.eobjects.metamodel.csv,
- org.eobjects.metamodel.xml,
- org.eobjects.metamodel.mongodb,
- org.eobjects.metamodel.jdbc,
- org.eobjects.metamodel.jdbc.dialects,
+ org.apache.metamodel,
+ org.apache.metamodel.convert,
+ org.apache.metamodel.create,
+ org.apache.metamodel.data,
+ org.apache.metamodel.delete,
+ org.apache.metamodel.drop,
+ org.apache.metamodel.insert,
+ org.apache.metamodel.intercept,
+ org.apache.metamodel.query,
+ org.apache.metamodel.query.builder,
+ org.apache.metamodel.query.parser,
+ org.apache.metamodel.schema,
+ org.apache.metamodel.update,
+ org.apache.metamodel.util,
+ org.apache.metamodel.csv,
+ org.apache.metamodel.xml,
+ org.apache.metamodel.mongodb,
+ org.apache.metamodel.jdbc,
+ org.apache.metamodel.jdbc.dialects,
au.com.bytecode.opencsv,
au.com.bytecode.opencsv.bean,
org.postgresql,
org.postgresql.copy,
org.postgresql.core,
- org.postgresql.core.types,
- org.postgresql.core.v2,
org.postgresql.core.v3,
+ org.postgresql.core.v3.adaptivefetch,
+ org.postgresql.core.v3.replication,
org.postgresql.ds,
org.postgresql.ds.common,
- org.postgresql.ds.jdbc23,
- org.postgresql.db.jdbc4,
org.postgresql.fastpath,
org.postgresql.geometric,
org.postgresql.gss,
+ org.postgresql.hostchooser,
+ org.postgresql.jdbc,
org.postgresql.jdbc2,
org.postgresql.jdbc2.optional,
org.postgresql.jdbc3,
- org.postgresql.jdbc3g,
- org.postgresql.jdbc4,
+ org.postgresql.jdbcurlresolver,
org.postgresql.largeobject,
+ org.postgresql.osgi,
+ org.postgresql.plugin,
+ org.postgresql.replication,
+ org.postgresql.replication.fluent,
+ org.postgresql.replication.fluent.logical,
+ org.postgresql.replication.fluent.physical,
org.postgresql.ssl,
+ org.postgresql.ssl.jdbc4,
+ org.postgresql.sspi,
org.postgresql.translation,
org.postgresql.util,
+ org.postgresql.util.internal,
org.postgresql.xa,
- org.postgresql.xa.jdbc3,
- org.postgresql.xa.jdbc4
+ org.postgresql.xml,
+ com.fasterxml.jackson.core,
+ com.fasterxml.jackson.core.async,
+ com.fasterxml.jackson.core.base,
+ com.fasterxml.jackson.core.exc,
+ com.fasterxml.jackson.core.filter,
+ com.fasterxml.jackson.core.format,
+ com.fasterxml.jackson.core.io,
+ com.fasterxml.jackson.core.json,
+ com.fasterxml.jackson.core.json.async,
+ com.fasterxml.jackson.core.sym,
+ com.fasterxml.jackson.core.type,
+ com.fasterxml.jackson.core.util,
+ com.fasterxml.jackson.annotation,
+ com.fasterxml.jackson.databind,
+ com.fasterxml.jackson.databind.annotation,
+ com.fasterxml.jackson.databind.cfg,
+ com.fasterxml.jackson.databind.deser,
+ com.fasterxml.jackson.databind.deser.impl,
+ com.fasterxml.jackson.databind.deser.std,
+ com.fasterxml.jackson.databind.exc,
+ com.fasterxml.jackson.databind.ext,
+ com.fasterxml.jackson.databind.introspect,
+ com.fasterxml.jackson.databind.jdk14,
+ com.fasterxml.jackson.databind.json,
+ com.fasterxml.jackson.databind.jsonFormatVisitors,
+ com.fasterxml.jackson.databind.jsonschema,
+ com.fasterxml.jackson.databind.jsontype,
+ com.fasterxml.jackson.databind.jsontype.impl,
+ com.fasterxml.jackson.databind.module,
+ com.fasterxml.jackson.databind.node,
+ com.fasterxml.jackson.databind.ser,
+ com.fasterxml.jackson.databind.ser.impl,
+ com.fasterxml.jackson.databind.ser.std,
+ com.fasterxml.jackson.databind.type,
+ com.fasterxml.jackson.databind.util
org.mariadb.jdbc,
@@ -399,22 +451,32 @@
org.eobjects.metamodel
MetaModel-jdbc
- 3.4.11
+ ${metamodel.version}
org.eobjects.metamodel
MetaModel-csv
- 3.4.11
+ ${metamodel.version}
org.eobjects.metamodel
MetaModel-xml
- 3.4.11
+ ${metamodel.version}
- postgresql
+ com.fasterxml.jackson.core
+ jackson-core
+ ${jackson.version}
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+ ${jackson.version}
+
+
+ org.postgresql
postgresql
- 9.1-901-1.jdbc4
+ 42.7.5
org.mariadb.jdbc
@@ -426,6 +488,11 @@
nx01-jpp-base
${nx01.version}
+
+ love.distributedrebirth.nx01
+ nx01-mushroom-mais-mm
+ ${nx01.version}
+
love.distributedrebirth.nx01
nx01-warp-core
@@ -451,11 +518,6 @@
nx01-x4o-fc18
${nx01.version}
-
- love.distributedrebirth.nx01
- nx01-x4o-o2o
- ${nx01.version}
-