You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2014/12/24 10:19:12 UTC
[1/2] incubator-ignite git commit: # ignite-32 WIP: Generation of key
type.
Repository: incubator-ignite
Updated Branches:
refs/heads/ignite-32 5eb96c399 -> 55370e2e1
# ignite-32 WIP: Generation of key type.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/7619eedd
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/7619eedd
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/7619eedd
Branch: refs/heads/ignite-32
Commit: 7619eeddac39686ce180c9a441b7d4dcf146ca5e
Parents: 5eb96c3
Author: AKuznetsov <ak...@gridgain.com>
Authored: Wed Dec 24 16:18:12 2014 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Wed Dec 24 16:18:12 2014 +0700
----------------------------------------------------------------------
.../query/GridCacheQueryTypeDescriptor.java | 77 +++++++-----
.../cache/query/GridCacheQueryTypeMetadata.java | 84 +++++++++----
.../ignite/schema/db/DbMetadataParser.java | 38 +++---
.../ignite/schema/pojo/PojoCodeGenerator.java | 117 ++++++++++++-------
.../ignite/schema/xml/XmlTransformer.java | 34 +++---
5 files changed, 230 insertions(+), 120 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7619eedd/modules/core/src/main/java/org/gridgain/grid/cache/query/GridCacheQueryTypeDescriptor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/cache/query/GridCacheQueryTypeDescriptor.java b/modules/core/src/main/java/org/gridgain/grid/cache/query/GridCacheQueryTypeDescriptor.java
index fb1e6de..675795d 100644
--- a/modules/core/src/main/java/org/gridgain/grid/cache/query/GridCacheQueryTypeDescriptor.java
+++ b/modules/core/src/main/java/org/gridgain/grid/cache/query/GridCacheQueryTypeDescriptor.java
@@ -10,68 +10,87 @@
package org.gridgain.grid.cache.query;
/**
- * Type descriptor for field in database
+ * Type descriptor for field in java and database.
*/
public class GridCacheQueryTypeDescriptor {
/** Column name in database. */
- private String colName;
-
- /** Column JDBC type in database. */
- private int colJdbcType;
+ private String javaName;
/** Corresponding java type. */
private Class<?> javaType;
+ /** Column name in database. */
+ private String dbName;
+
+ /** Column JDBC type in database. */
+ private int dbType;
+
/**
- * @param colName Column name in database.
- * @param colJdbcType Column JDBC type in database.
- * @param javaType Corresponding java type.
+ * @param javaName Field name in java object.
+ * @param javaType Field java type.
+ * @param dbName Column name in database.
+ * @param dbType Column JDBC type in database.
*/
- public GridCacheQueryTypeDescriptor(String colName, int colJdbcType, Class<?> javaType) {
- this.colName = colName;
- this.colJdbcType = colJdbcType;
+ public GridCacheQueryTypeDescriptor(String javaName, Class<?> javaType, String dbName, int dbType) {
+ this.javaName = javaName;
this.javaType = javaType;
+ this.dbName = dbName;
+ this.dbType = dbType;
}
/**
- * @return Column name in database.
+ * @return Field name in java object.
*/
- public String getColumnName() {
- return colName;
+ public String getJavaName() {
+ return javaName;
}
/**
- * @param colName Column name in database.
+ * @param javaName Field name in java object.
*/
- public void setColumnName(String colName) {
- this.colName = colName;
+ public void setJavaName(String javaName) {
+ this.javaName = javaName;
}
/**
- * @return Column JDBC type in database.
+ * @return Field java type.
*/
- public int getColumnJdbcType() {
- return colJdbcType;
+ public Class<?> getJavaType() {
+ return javaType;
}
/**
- * @param colJdbcType Column JDBC type in database.
+ * @param javaType Corresponding java type.
*/
- public void setColumnJdbcType(int colJdbcType) {
- this.colJdbcType = colJdbcType;
+ public void setJavaType(Class<?> javaType) {
+ this.javaType = javaType;
}
/**
- * @return Corresponding java type.
+ * @return Column name in database.
*/
- public Class<?> getJavaType() {
- return javaType;
+ public String getDbName() {
+ return dbName;
}
/**
- * @param javaType Corresponding java type.
+ * @param dbName Column name in database.
*/
- public void setJavaType(Class<?> javaType) {
- this.javaType = javaType;
+ public void setDbName(String dbName) {
+ this.dbName = dbName;
+ }
+
+ /**
+ * @return Column JDBC type in database.
+ */
+ public int getDbType() {
+ return dbType;
+ }
+
+ /**
+ * @param dbType Column JDBC type in database.
+ */
+ public void setDbType(int dbType) {
+ this.dbType = dbType;
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7619eedd/modules/core/src/main/java/org/gridgain/grid/cache/query/GridCacheQueryTypeMetadata.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/cache/query/GridCacheQueryTypeMetadata.java b/modules/core/src/main/java/org/gridgain/grid/cache/query/GridCacheQueryTypeMetadata.java
index f8e8374..ea86574 100644
--- a/modules/core/src/main/java/org/gridgain/grid/cache/query/GridCacheQueryTypeMetadata.java
+++ b/modules/core/src/main/java/org/gridgain/grid/cache/query/GridCacheQueryTypeMetadata.java
@@ -28,16 +28,20 @@ public class GridCacheQueryTypeMetadata {
/** Table name in database. */
private String tbl;
- /** Fields to be queried, in addition to indexed fields. */
- @GridToStringInclude
- private Map<String, Class<?>> qryFlds;
+ /** Key class. */
+ private String keyType;
- /** Key name. */
- private String key;
+ /** Type descriptors. */
+ @GridToStringInclude
+ private Collection<GridCacheQueryTypeDescriptor> keyDescs;
/** Type descriptors. */
@GridToStringInclude
- private Map<String, GridCacheQueryTypeDescriptor> typeDescs;
+ private Collection<GridCacheQueryTypeDescriptor> valDescs;
+
+ /** Fields to be queried, in addition to indexed fields. */
+ @GridToStringInclude
+ private Map<String, Class<?>> qryFlds;
/** Fields to index in ascending order. */
@GridToStringInclude
@@ -59,11 +63,18 @@ public class GridCacheQueryTypeMetadata {
* Default constructor.
*/
public GridCacheQueryTypeMetadata() {
+ keyDescs = new ArrayList<>();
+
+ valDescs = new ArrayList<>();
+
qryFlds = new LinkedHashMap<>();
- typeDescs = new LinkedHashMap<>();
+
ascFlds = new LinkedHashMap<>();
+
descFlds = new LinkedHashMap<>();
+
txtFlds = new LinkedHashSet<>();
+
grps = new LinkedHashMap<>();
}
@@ -72,12 +83,15 @@ public class GridCacheQueryTypeMetadata {
*/
public GridCacheQueryTypeMetadata(GridCacheQueryTypeMetadata src) {
type = src.getType();
+ keyType = src.getKeyType();
+
schema = src.getSchema();
tbl = src.getTableName();
- key = src.getKey();
+
+ keyDescs = new ArrayList<>(src.getKeyDescriptors());
+ valDescs = new ArrayList<>(src.getValueDescriptors());
qryFlds = new LinkedHashMap<>(src.getQueryFields());
- typeDescs = new LinkedHashMap<>(src.getTypeDescriptors());
ascFlds = new LinkedHashMap<>(src.getAscendingFields());
descFlds = new LinkedHashMap<>(src.getDescendingFields());
txtFlds = new LinkedHashSet<>(src.getTextFields());
@@ -148,30 +162,58 @@ public class GridCacheQueryTypeMetadata {
this.tbl = tbl;
}
- public String getKey() {
- return key;
+ /**
+ * Gets key type.
+ *
+ * @return Key type.
+ */
+ public String getKeyType() {
+ return keyType;
+ }
+
+ /**
+ * Sets key type.
+ *
+ * @param keyType Key type.
+ */
+ public void setKeyType(String keyType) {
+ this.keyType = keyType;
}
- public void setKey(String key) {
- this.key = key;
+ /**
+ * Gets key fields type descriptors.
+ *
+ * @return Key fields type descriptors.
+ */
+ public Collection<GridCacheQueryTypeDescriptor> getKeyDescriptors() {
+ return keyDescs;
+ }
+
+ /**
+ * Sets key fields type descriptors.
+ *
+ * @param keyDescs Key fields type descriptors.
+ */
+ public void setKeyDescriptors(Collection<GridCacheQueryTypeDescriptor> keyDescs) {
+ this.keyDescs = keyDescs;
}
/**
- * Gets database type descriptors.
+ * Gets value fields type descriptors.
*
- * @return Map of type descriptors.
+ * @return Key value type descriptors.
*/
- public Map<String, GridCacheQueryTypeDescriptor> getTypeDescriptors() {
- return typeDescs;
+ public Collection<GridCacheQueryTypeDescriptor> getValueDescriptors() {
+ return valDescs;
}
/**
- * Sets database types descriptors.
+ * Sets value fields type descriptors.
*
- * @param typeDescs Map of type descriptors.
+ * @param valDescs Value fields type descriptors.
*/
- public void setTypeDescriptors(Map<String, GridCacheQueryTypeDescriptor> typeDescs) {
- this.typeDescs = typeDescs;
+ public void setValueDescriptors(Collection<GridCacheQueryTypeDescriptor> valDescs) {
+ this.valDescs = valDescs;
}
/**
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7619eedd/modules/schema-load/src/main/java/org/apache/ignite/schema/db/DbMetadataParser.java
----------------------------------------------------------------------
diff --git a/modules/schema-load/src/main/java/org/apache/ignite/schema/db/DbMetadataParser.java b/modules/schema-load/src/main/java/org/apache/ignite/schema/db/DbMetadataParser.java
index 1d95176..c27d200 100644
--- a/modules/schema-load/src/main/java/org/apache/ignite/schema/db/DbMetadataParser.java
+++ b/modules/schema-load/src/main/java/org/apache/ignite/schema/db/DbMetadataParser.java
@@ -138,29 +138,41 @@ public class DbMetadataParser {
res.setSchema(schema);
res.setTableName(tbl);
+ res.setType(toJavaClassName(tbl));
+ res.setKeyType(res.getType() + "Key");
+
+ Collection<GridCacheQueryTypeDescriptor> keyDescs = res.getKeyDescriptors();
+ Collection<GridCacheQueryTypeDescriptor> valDescs = res.getValueDescriptors();
+
Map<String, Class<?>> qryFields = res.getQueryFields();
- Map<String, GridCacheQueryTypeDescriptor> typeDescs = res.getTypeDescriptors();
Map<String, Class<?>> ascFields = res.getAscendingFields();
Map<String, Class<?>> descFields = res.getDescendingFields();
Map<String, LinkedHashMap<String, IgniteBiTuple<Class<?>, Boolean>>> groups = res.getGroups();
- res.setType(toJavaClassName(tbl));
+ Set<String> pkFlds = new LinkedHashSet<>();
- ResultSet flds = meta.getColumns(catalog, schema, tbl, null);
+ try (ResultSet pk = meta.getPrimaryKeys(catalog, schema, tbl)) {
+ while (pk.next())
+ pkFlds.add(pk.getString(4));
+ }
+
+ try (ResultSet flds = meta.getColumns(catalog, schema, tbl, null)) {
+ while (flds.next()) {
+ String dbName = flds.getString(4);
+ int dbType = flds.getInt(5);
- while (flds.next()) {
- String dbName = flds.getString(4);
- int jdbcType = flds.getInt(5);
+ String javaName = toJavaFieldName(dbName);
+ Class<?> javaType = dataType(dbType);
- String col = toJavaFieldName(dbName);
- Class<?> type = dataType(jdbcType);
+ GridCacheQueryTypeDescriptor desc = new GridCacheQueryTypeDescriptor(javaName, javaType, dbName, dbType);
- // TODO: IGNITE-32 Get real key.
- if (res.getKey() == null)
- res.setKey(col);
+ if (pkFlds.contains(dbName))
+ keyDescs.add(desc);
- qryFields.put(col, type);
- typeDescs.put(col, new GridCacheQueryTypeDescriptor(dbName, jdbcType, type));
+ valDescs.add(desc);
+
+ qryFields.put(javaName, javaType);
+ }
}
ResultSet idxs = meta.getIndexInfo(catalog, schema, tbl, false, true);
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7619eedd/modules/schema-load/src/main/java/org/apache/ignite/schema/pojo/PojoCodeGenerator.java
----------------------------------------------------------------------
diff --git a/modules/schema-load/src/main/java/org/apache/ignite/schema/pojo/PojoCodeGenerator.java b/modules/schema-load/src/main/java/org/apache/ignite/schema/pojo/PojoCodeGenerator.java
index fbb5c42..963306c 100644
--- a/modules/schema-load/src/main/java/org/apache/ignite/schema/pojo/PojoCodeGenerator.java
+++ b/modules/schema-load/src/main/java/org/apache/ignite/schema/pojo/PojoCodeGenerator.java
@@ -24,11 +24,18 @@ public class PojoCodeGenerator {
private static final String TAB = " ";
/** */
- private final Collection<String> src = new ArrayList<>(256);
+ private final Collection<String> srcKey = new ArrayList<>(256);
/** */
- private int indent = 0;
+ private final Collection<String> srcVal = new ArrayList<>(256);
+ /** */
+ private int indent;
+
+ /**
+ *
+ * @return
+ */
private String indent() {
switch (indent) {
case 0: return "";
@@ -43,71 +50,101 @@ public class PojoCodeGenerator {
}
}
- private void line(String s) {
+ private void line(Collection<String> src, String s) {
src.add(indent() + s);
}
- private void empty() {
+ private void empty(Collection<String> src) {
src.add("");
}
- private void newLine(String s) {
- empty();
- line(s);
+ private void newLine(Collection<String> src, String s) {
+ empty(src);
+ line(src, s);
}
- public void generate(GridCacheQueryTypeMetadata meta, String outFolder, String pkg) throws IOException {
- src.clear();
+ /**
+ * Generate key declarations.
+ *
+ * @param src Source code.
+ * @param descs Type descriptor.
+ */
+ private void generateFields(Collection<String> src, Collection<GridCacheQueryTypeDescriptor> descs) {
+ for(GridCacheQueryTypeDescriptor desc : descs)
+ line(src, "private " + desc.getJavaType().getSimpleName() + " " + desc.getJavaName() + ";");
+ }
- File res = new File(outFolder, pkg.replace('.', File.separatorChar));
+ /**
+ * Generate key declarations.
+ *
+ * @param src Source code.
+ * @param descs Type descriptor.
+ */
+ private void generateMethods(Collection<String> src, Collection<GridCacheQueryTypeDescriptor> descs) {
+ for(GridCacheQueryTypeDescriptor desc : descs) {
+ String fldName = desc.getJavaName();
+ String fldType = desc.getJavaType().getSimpleName();
- res.mkdirs();
+ String mtdName = capitalize(fldName);
- res = new File(res, meta.getType() + ".java");
+ newLine(src, "public " + fldType + " get" + mtdName + "() {");
- line(pkg + ";");
+ indent++;
+ line(src, "return " + fldName + ";");
+ indent--;
- newLine("public class " + meta.getType() + " {");
+ line(src, "}");
- Set<Map.Entry<String, Class<?>>> fields = meta.getQueryFields().entrySet();
+ newLine(src, "public void set" + mtdName + "(" + fldName + ": " + fldType+ ") {");
- indent++;
+ indent++;
+ line(src, "this." + fldName + " = " + fldName + ";");
+ indent--;
- // Generate declarations.
- for(Map.Entry<String, Class<?>> field : fields)
- line("private " + field.getValue().getSimpleName() + " " + field.getKey() + ";");
+ line(src, "}");
+ }
+ }
- // Generate getters and setters.
- for(Map.Entry<String, Class<?>> field : fields) {
- String fldType = field.getValue().getSimpleName();
- String fldName = field.getKey();
- String mtdName = capitalize(fldName);
+ private void write(Collection<String> src, File res) throws IOException {
+ try (Writer writer = new BufferedWriter(new FileWriter(res))) {
+ for (String line : src)
+ writer.write(line + '\n');
+ }
+ }
- newLine("public " + fldType + " get" + mtdName + "() {");
+ public void generate(GridCacheQueryTypeMetadata meta, String outFolder, String pkg) throws IOException {
+ srcKey.clear();
+ srcVal.clear();
- indent++;
- line("return " + fldName + ";");
- indent--;
+ File res = new File(outFolder, pkg.replace('.', File.separatorChar));
- line("}");
+ res.mkdirs();
- newLine("public void set" + mtdName + "(" + fldName + ": " + fldType+ ") {");
+ String keyType = meta.getKeyType();
+ String valType = meta.getType();
- indent++;
- line("this." + fldName + " = " + fldName + ";");
- indent--;
+ line(srcKey, pkg + ";");
+ line(srcVal, pkg + ";");
- line("}");
- }
+ newLine(srcKey, "public class " + keyType + " {");
+ newLine(srcVal, "public class " + valType + " {");
+ indent++;
+
+ generateFields(srcKey, meta.getKeyDescriptors());
+
+ generateFields(srcVal, meta.getValueDescriptors());
+
+ generateMethods(srcKey, meta.getKeyDescriptors());
+
+ generateMethods(srcVal, meta.getValueDescriptors());
indent--;
- line("}");
+ line(srcKey, "}");
+ line(srcVal, "}");
- try (Writer writer = new BufferedWriter(new FileWriter(res))) {
- for (String line : src)
- writer.write(line + '\n');
- }
+ write(srcKey, new File(res, keyType + ".java"));
+ write(srcVal, new File(res, valType + ".java"));
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7619eedd/modules/schema-load/src/main/java/org/apache/ignite/schema/xml/XmlTransformer.java
----------------------------------------------------------------------
diff --git a/modules/schema-load/src/main/java/org/apache/ignite/schema/xml/XmlTransformer.java b/modules/schema-load/src/main/java/org/apache/ignite/schema/xml/XmlTransformer.java
index 4075c7b..994d554 100644
--- a/modules/schema-load/src/main/java/org/apache/ignite/schema/xml/XmlTransformer.java
+++ b/modules/schema-load/src/main/java/org/apache/ignite/schema/xml/XmlTransformer.java
@@ -159,24 +159,22 @@ public class XmlTransformer {
* Add type descriptors to XML document.
*
* @param parent Parent XML node.
- * @param typeDescs Map with type descriptors.
+ * @param name Property name.
+ * @param descs Map with type descriptors.
*/
- private void addTypeDescriptors(Node parent, Map<String, GridCacheQueryTypeDescriptor> typeDescs) {
- if (!typeDescs.isEmpty()) {
- Element prop = addProperty(parent, "typeDescriptors");
-
- Element map = addElement(prop, "map");
-
- for (Map.Entry<String, GridCacheQueryTypeDescriptor> typeDesc : typeDescs.entrySet()) {
- Element entry = addElement(map, "entry", typeDesc.getKey(), null);
+ private void addTypeDescriptors(Node parent, String name, Collection<GridCacheQueryTypeDescriptor> descs) {
+ if (!descs.isEmpty()) {
+ Element prop = addProperty(parent, name);
- Element val = addBean(entry, GridCacheQueryTypeDescriptor.class);
+ Element list = addElement(prop, "list");
- GridCacheQueryTypeDescriptor desc = typeDesc.getValue();
+ for (GridCacheQueryTypeDescriptor desc : descs) {
+ Element item = addBean(list, GridCacheQueryTypeDescriptor.class);
- addProperty(val, "columnName", desc.getColumnName());
- addProperty(val, "columnJdbcType", String.valueOf(desc.getColumnJdbcType()));
- addProperty(val, "javaType", desc.getJavaType().getName());
+ addProperty(item, "javaName", desc.getJavaName());
+ addProperty(item, "javaType", desc.getJavaType().getName());
+ addProperty(item, "dbName", desc.getDbName());
+ addProperty(item, "dbType", String.valueOf(desc.getDbType()));
}
}
}
@@ -242,15 +240,17 @@ public class XmlTransformer {
addProperty(bean, "type", meta.getType());
+ addProperty(bean, "keyType", meta.getKeyType());
+
addProperty(bean, "schema", meta.getSchema());
addProperty(bean, "tableName", meta.getTableName());
- addProperty(bean, "key", meta.getKey());
+ addTypeDescriptors(bean, "keyDescriptors", meta.getKeyDescriptors());
- addFields(bean, "queryFields", meta.getQueryFields());
+ addTypeDescriptors(bean, "valueDescriptors", meta.getValueDescriptors());
- addTypeDescriptors(bean, meta.getTypeDescriptors());
+ addFields(bean, "queryFields", meta.getQueryFields());
addFields(bean, "ascendingFields", meta.getAscendingFields());
[2/2] incubator-ignite git commit: # ignite-32 WIP: Working on UI.
Posted by sb...@apache.org.
# ignite-32 WIP: Working on UI.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/55370e2e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/55370e2e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/55370e2e
Branch: refs/heads/ignite-32
Commit: 55370e2e1b546e4970bf55d154b49659d49ab5fc
Parents: 7619eed
Author: AKuznetsov <ak...@gridgain.com>
Authored: Wed Dec 24 16:19:09 2014 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Wed Dec 24 16:19:09 2014 +0700
----------------------------------------------------------------------
.../src/main/java/media/branch_128x128.png | Bin 0 -> 3766 bytes
.../src/main/java/media/branch_16x16.png | Bin 0 -> 411 bytes
.../src/main/java/media/branch_32x32.png | Bin 0 -> 775 bytes
.../src/main/java/media/branch_48x48.png | Bin 0 -> 1139 bytes
.../src/main/java/media/error_48x48.png | Bin 0 -> 4349 bytes
.../src/main/java/media/information_48x48.png | Bin 0 -> 4102 bytes
.../src/main/java/media/question_48x48.png | Bin 0 -> 3857 bytes
.../apache/ignite/schema/db/DbConnection.java | 4 +-
.../org/apache/ignite/schema/ui/MessageBox.java | 128 ++++++++++++++++++
.../apache/ignite/schema/ui/SchemaLoadApp.java | 129 ++++++++++++-------
.../ignite/schema/ui/media/branch_128x128.png | Bin 3766 -> 0 bytes
.../ignite/schema/ui/media/branch_16x16.png | Bin 411 -> 0 bytes
.../ignite/schema/ui/media/branch_32x32.png | Bin 775 -> 0 bytes
.../ignite/schema/ui/media/branch_48x48.png | Bin 1139 -> 0 bytes
.../apache/ignite/schema/util/SchemaUtils.java | 46 +++++++
15 files changed, 256 insertions(+), 51 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/55370e2e/modules/schema-load/src/main/java/media/branch_128x128.png
----------------------------------------------------------------------
diff --git a/modules/schema-load/src/main/java/media/branch_128x128.png b/modules/schema-load/src/main/java/media/branch_128x128.png
new file mode 100644
index 0000000..dacee19
Binary files /dev/null and b/modules/schema-load/src/main/java/media/branch_128x128.png differ
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/55370e2e/modules/schema-load/src/main/java/media/branch_16x16.png
----------------------------------------------------------------------
diff --git a/modules/schema-load/src/main/java/media/branch_16x16.png b/modules/schema-load/src/main/java/media/branch_16x16.png
new file mode 100644
index 0000000..9764668
Binary files /dev/null and b/modules/schema-load/src/main/java/media/branch_16x16.png differ
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/55370e2e/modules/schema-load/src/main/java/media/branch_32x32.png
----------------------------------------------------------------------
diff --git a/modules/schema-load/src/main/java/media/branch_32x32.png b/modules/schema-load/src/main/java/media/branch_32x32.png
new file mode 100644
index 0000000..8f39620
Binary files /dev/null and b/modules/schema-load/src/main/java/media/branch_32x32.png differ
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/55370e2e/modules/schema-load/src/main/java/media/branch_48x48.png
----------------------------------------------------------------------
diff --git a/modules/schema-load/src/main/java/media/branch_48x48.png b/modules/schema-load/src/main/java/media/branch_48x48.png
new file mode 100644
index 0000000..a956f2c
Binary files /dev/null and b/modules/schema-load/src/main/java/media/branch_48x48.png differ
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/55370e2e/modules/schema-load/src/main/java/media/error_48x48.png
----------------------------------------------------------------------
diff --git a/modules/schema-load/src/main/java/media/error_48x48.png b/modules/schema-load/src/main/java/media/error_48x48.png
new file mode 100644
index 0000000..e341b8a
Binary files /dev/null and b/modules/schema-load/src/main/java/media/error_48x48.png differ
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/55370e2e/modules/schema-load/src/main/java/media/information_48x48.png
----------------------------------------------------------------------
diff --git a/modules/schema-load/src/main/java/media/information_48x48.png b/modules/schema-load/src/main/java/media/information_48x48.png
new file mode 100644
index 0000000..8712a1b
Binary files /dev/null and b/modules/schema-load/src/main/java/media/information_48x48.png differ
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/55370e2e/modules/schema-load/src/main/java/media/question_48x48.png
----------------------------------------------------------------------
diff --git a/modules/schema-load/src/main/java/media/question_48x48.png b/modules/schema-load/src/main/java/media/question_48x48.png
new file mode 100644
index 0000000..84683f9
Binary files /dev/null and b/modules/schema-load/src/main/java/media/question_48x48.png differ
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/55370e2e/modules/schema-load/src/main/java/org/apache/ignite/schema/db/DbConnection.java
----------------------------------------------------------------------
diff --git a/modules/schema-load/src/main/java/org/apache/ignite/schema/db/DbConnection.java b/modules/schema-load/src/main/java/org/apache/ignite/schema/db/DbConnection.java
index 86c7f2d..d62f98d 100644
--- a/modules/schema-load/src/main/java/org/apache/ignite/schema/db/DbConnection.java
+++ b/modules/schema-load/src/main/java/org/apache/ignite/schema/db/DbConnection.java
@@ -35,8 +35,8 @@ public class DbConnection {
Statement stmt = conn.createStatement();
- stmt.executeUpdate("CREATE TABLE Organization (id integer, name varchar(50), city varchar(50))");
- stmt.executeUpdate("CREATE TABLE Person (id integer, org_id integer, name varchar(50))");
+ stmt.executeUpdate("CREATE TABLE Organization (id integer PRIMARY KEY, name varchar(50), city varchar(50))");
+ stmt.executeUpdate("CREATE TABLE Person (id integer PRIMARY KEY, org_id integer, name varchar(50))");
stmt.executeUpdate("CREATE INDEX Org_Name_IDX On Organization (name)");
stmt.executeUpdate("CREATE INDEX Org_Name_City_IDX On Organization (name, city)");
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/55370e2e/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/MessageBox.java
----------------------------------------------------------------------
diff --git a/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/MessageBox.java b/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/MessageBox.java
new file mode 100644
index 0000000..5d58e22
--- /dev/null
+++ b/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/MessageBox.java
@@ -0,0 +1,128 @@
+/* @java.file.header */
+
+/* _________ _____ __________________ _____
+ * __ ____/___________(_)______ /__ ____/______ ____(_)_______
+ * _ / __ __ ___/__ / _ __ / _ / __ _ __ `/__ / __ __ \
+ * / /_/ / _ / _ / / /_/ / / /_/ / / /_/ / _ / _ / / /
+ * \____/ /_/ /_/ \_,__/ \____/ \__,_/ /_/ /_/ /_/
+ */
+
+package org.apache.ignite.schema.ui;
+
+import javafx.event.*;
+import javafx.geometry.*;
+import javafx.scene.*;
+import javafx.scene.control.*;
+import javafx.scene.image.*;
+import javafx.scene.layout.*;
+import javafx.scene.text.*;
+import javafx.stage.*;
+
+import static org.apache.ignite.schema.util.SchemaUtils.*;
+
+/**
+ * TODO: Add class description.
+ */
+public class MessageBox {
+
+ public enum Option {NO, YES, CANCEL}
+
+ private static Option result = Option.CANCEL;
+
+ private static ImageView icon = new ImageView();
+
+ static class Dialog extends Stage {
+ public Dialog(String title, Stage owner, Scene scene, String iconFile) {
+ setTitle(title);
+ initStyle(StageStyle.UTILITY);
+ initModality(Modality.APPLICATION_MODAL);
+ initOwner(owner);
+ setResizable(false);
+ setScene(scene);
+ icon.setImage(image(iconFile, 48));
+ }
+
+ public void showDialog() {
+ sizeToScene();
+ centerOnScreen();
+ showAndWait();
+ }
+ }
+
+ static class Message extends Text {
+ public Message(String msg) {
+ super(msg);
+ setWrappingWidth(250);
+ }
+ }
+
+ public static Option showConfirmDialog(Stage owner, String message, String title) {
+ VBox vb = newVBox(10);
+
+ Scene scene = new Scene(vb);
+
+ final Dialog dial = new Dialog(title, owner, scene, "question");
+
+ Button yesButton = new Button("Yes");
+ yesButton.setOnAction(new EventHandler<ActionEvent>() {
+ @Override public void handle(ActionEvent e) {
+ dial.close();
+ result = Option.YES;
+ }
+ });
+
+ Button noButton = new Button("No");
+ noButton.setOnAction(new EventHandler<ActionEvent>() {
+ @Override public void handle(ActionEvent e) {
+ dial.close();
+ result = Option.NO;
+ }
+ });
+
+ BorderPane bp = new BorderPane();
+ HBox buttons = new HBox();
+ buttons.setAlignment(Pos.CENTER);
+ buttons.setSpacing(10);
+ buttons.getChildren().addAll(yesButton, noButton);
+ bp.setCenter(buttons);
+ HBox msg = new HBox();
+ msg.setSpacing(5);
+ msg.getChildren().addAll(icon, new Message(message));
+ vb.getChildren().addAll(msg, bp);
+ dial.showDialog();
+
+ return result;
+ }
+
+ private static void showDialog(Stage owner, String title, String message, String iconFile) {
+ VBox vb = newVBox(10);
+ Scene scene = new Scene(vb);
+
+ final Dialog dial = new Dialog(title, owner, scene, iconFile);
+
+ Button okButton = new Button("OK");
+ okButton.setAlignment(Pos.CENTER);
+ okButton.setOnAction(new EventHandler<ActionEvent>() {
+ @Override public void handle(ActionEvent e) {
+ dial.close();
+ }
+ });
+
+ BorderPane bp = new BorderPane();
+ bp.setCenter(okButton);
+ HBox msg = new HBox();
+ msg.setSpacing(5);
+ msg.getChildren().addAll(icon, new Message(message));
+ vb.getChildren().addAll(msg, bp);
+
+ dial.showDialog();
+ }
+
+ public static void showInformationDialog(Stage owner, String title, String message) {
+ showDialog(owner, title, message, "information");
+ }
+
+ public static void showErrorDialog(Stage owner, String title, String message) {
+ showDialog(owner, title, message, "error");
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/55370e2e/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/SchemaLoadApp.java
----------------------------------------------------------------------
diff --git a/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/SchemaLoadApp.java b/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/SchemaLoadApp.java
index e53bd56..7d429e8 100644
--- a/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/SchemaLoadApp.java
+++ b/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/SchemaLoadApp.java
@@ -10,29 +10,27 @@
package org.apache.ignite.schema.ui;
import javafx.application.*;
-import javafx.collections.*;
import javafx.event.*;
import javafx.geometry.*;
import javafx.scene.*;
import javafx.scene.control.*;
import javafx.scene.control.cell.*;
-import javafx.scene.image.*;
import javafx.scene.layout.*;
import javafx.scene.text.*;
import javafx.stage.*;
import org.apache.ignite.schema.db.*;
import java.io.*;
+import java.sql.*;
import java.util.*;
+import static org.apache.ignite.schema.util.SchemaUtils.*;
+
/**
* Schema load application.
*/
public class SchemaLoadApp extends Application {
/** */
- private static final Insets DFLT_PADDING = new Insets(10, 10, 10, 10);
-
- /** */
private int step;
/** */
@@ -51,19 +49,6 @@ public class SchemaLoadApp extends Application {
private List<WizardPage> pages;
/**
- * Create new {@code HBox} with default padding.
- * @param spacing Amount of horizontal space between each child.
- * @return New {@code HBox} instance.
- */
- private static HBox newHBox(int spacing) {
- HBox hb = new HBox(spacing);
-
- hb.setPadding(DFLT_PADDING);
-
- return hb;
- }
-
- /**
* Base class for wizard pages.
*/
private abstract static class WizardPage {
@@ -102,12 +87,26 @@ public class SchemaLoadApp extends Application {
return contentPane;
}
+ /**
+ * @return {@code true} if wizard page complete.
+ */
+ public boolean complete() {
+ return true;
+ }
}
/**
* Wizard page for selecting DB settings.
*/
private static class DbChooserPage extends WizardPage {
+ private TextField jdbcTf;
+
+ private TextField urlTf;
+
+ private TextField userTf;
+
+ private PasswordField pwdTf;
+
/**
* Create page.
*/
@@ -121,23 +120,26 @@ public class SchemaLoadApp extends Application {
gp.addPercentColumns(30, 70);
- gp.addLabel("Alias:", 0, 0);
-
- ObservableList<String> options = FXCollections.observableArrayList("My Settings");
- ComboBox<String> aliasCb = new ComboBox<>(options);
- aliasCb.setPromptText("Schema load settings");
- aliasCb.setEditable(true);
- aliasCb.setMaxWidth(Double.MAX_VALUE);
-
- gp.add(aliasCb, 1, 0);
+// gp.addLabel("Alias:", 0, 0);
+//
+// ObservableList<String> options = FXCollections.observableArrayList("My Settings");
+// ComboBox<String> aliasCb = new ComboBox<>(options);
+// aliasCb.setPromptText("Schema load settings");
+// aliasCb.setEditable(true);
+// aliasCb.setMaxWidth(Double.MAX_VALUE);
+//
+// gp.add(aliasCb, 1, 0);
- TextField jdbcTf = gp.addTextField("JDBC Driver:", 0, 2);
+ jdbcTf = gp.addTextField("JDBC Driver:", 0, 2);
+ jdbcTf.setText("org.h2.Driver");
- TextField urlTf = gp.addTextField("URL:", 0, 3);
+ urlTf = gp.addTextField("URL:", 0, 3);
+ urlTf.setText("jdbc:h2:mem:test");
- TextField userTf = gp.addTextField("User:", 0, 4);
+ userTf = gp.addTextField("User:", 0, 4);
+ userTf.setText("sa");
- PasswordField pwdTf = gp.addLabeled("Password:", new PasswordField(), 0, 5);
+ pwdTf = gp.addLabeled("Password:", new PasswordField(), 0, 5);
return gp;
}
@@ -252,15 +254,6 @@ public class SchemaLoadApp extends Application {
}
/**
- * Schema load utility launcher.
- *
- * @param args Command line arguments passed to the application.
- */
- public static void main(String[] args) {
- launch(args);
- }
-
- /**
* @return Header pane with title label.
*/
private Pane createHeaderPane() {
@@ -321,15 +314,6 @@ public class SchemaLoadApp extends Application {
nextBtn.setDisable(step == pages.size() - 1);
}
- /**
- * Gets image by its filename.
- *
- * @param fname Image filename.
- */
- private Image image(String fname, int sz) {
- return new Image(getClass().getResourceAsStream(String.format("media/%1$s_%2$dx%2$d.png", fname, sz)));
- }
-
/** {@inheritDoc} */
@Override public void start(Stage primaryStage) {
primaryStage.getIcons()
@@ -364,4 +348,51 @@ public class SchemaLoadApp extends Application {
go(false);
}
+
+ /**
+ * Schema load utility launcher.
+ */
+ private static void sampleDb() {
+ try {
+ Class.forName("org.h2.Driver");
+ Connection conn = DriverManager.getConnection("jdbc:h2:mem:test", "sa", "");
+
+ Statement stmt = conn.createStatement();
+
+ stmt.executeUpdate("CREATE TABLE Organization (id integer, name varchar(50), city varchar(50))");
+ stmt.executeUpdate("CREATE TABLE Person (id integer, org_id integer, name varchar(50))");
+
+ stmt.executeUpdate("CREATE INDEX Org_Name_IDX On Organization (name)");
+ stmt.executeUpdate("CREATE INDEX Org_Name_City_IDX On Organization (name, city)");
+ stmt.executeUpdate("CREATE INDEX Person_Name_IDX1 On Person (name)");
+ stmt.executeUpdate("CREATE INDEX Person_Name_IDX2 On Person (name desc)");
+
+ conn.commit();
+
+ stmt.executeUpdate("INSERT INTO Organization(id, name) VALUES (1, 'GridGain')");
+ stmt.executeUpdate("INSERT INTO Organization(id, name) VALUES (2, 'Apache')");
+
+ stmt.executeUpdate("INSERT INTO Person(id, org_id, name) VALUES (1, 1, 'Kuznetsov')");
+ stmt.executeUpdate("INSERT INTO Person(id, org_id, name) VALUES (2, 2, 'Boudnik')");
+
+ conn.commit();
+
+ conn.close();
+ }
+ catch(Throwable e) {
+ e.printStackTrace();
+ }
+ }
+
+
+ /**
+ * Schema load utility launcher.
+ *
+ * @param args Command line arguments passed to the application.
+ */
+ public static void main(String[] args) {
+ sampleDb();
+
+ launch(args);
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/55370e2e/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/media/branch_128x128.png
----------------------------------------------------------------------
diff --git a/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/media/branch_128x128.png b/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/media/branch_128x128.png
deleted file mode 100644
index dacee19..0000000
Binary files a/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/media/branch_128x128.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/55370e2e/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/media/branch_16x16.png
----------------------------------------------------------------------
diff --git a/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/media/branch_16x16.png b/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/media/branch_16x16.png
deleted file mode 100644
index 9764668..0000000
Binary files a/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/media/branch_16x16.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/55370e2e/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/media/branch_32x32.png
----------------------------------------------------------------------
diff --git a/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/media/branch_32x32.png b/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/media/branch_32x32.png
deleted file mode 100644
index 8f39620..0000000
Binary files a/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/media/branch_32x32.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/55370e2e/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/media/branch_48x48.png
----------------------------------------------------------------------
diff --git a/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/media/branch_48x48.png b/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/media/branch_48x48.png
deleted file mode 100644
index a956f2c..0000000
Binary files a/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/media/branch_48x48.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/55370e2e/modules/schema-load/src/main/java/org/apache/ignite/schema/util/SchemaUtils.java
----------------------------------------------------------------------
diff --git a/modules/schema-load/src/main/java/org/apache/ignite/schema/util/SchemaUtils.java b/modules/schema-load/src/main/java/org/apache/ignite/schema/util/SchemaUtils.java
index 6e0e9f1..3f30158 100644
--- a/modules/schema-load/src/main/java/org/apache/ignite/schema/util/SchemaUtils.java
+++ b/modules/schema-load/src/main/java/org/apache/ignite/schema/util/SchemaUtils.java
@@ -9,10 +9,17 @@
package org.apache.ignite.schema.util;
+import javafx.geometry.*;
+import javafx.scene.image.*;
+import javafx.scene.layout.*;
+
/**
* TODO: Add class description.
*/
public class SchemaUtils {
+ /** */
+ public static final Insets DFLT_PADDING = new Insets(10, 10, 10, 10);
+
/**
* @param str Source string.
* @return String with each word first letters capitalized.
@@ -64,4 +71,43 @@ public class SchemaUtils {
public static String toJavaFieldName(String name) {
return uncapitalize(toJavaClassName(name));
}
+
+ /**
+ * Gets image by its filename.
+ *
+ * @param fname Image filename.
+ */
+ public static Image image(String fname, int sz) {
+ return new Image(SchemaUtils.class.getClassLoader()
+ .getResourceAsStream(String.format("media/%1$s_%2$dx%2$d.png", fname, sz)));
+ }
+
+ /**
+ * Create new {@code HBox} with default padding.
+ *
+ * @param spacing Amount of horizontal space between each child.
+ * @return New {@code HBox} instance.
+ */
+ public static HBox newHBox(int spacing) {
+ HBox hb = new HBox(spacing);
+
+ hb.setPadding(DFLT_PADDING);
+
+ return hb;
+ }
+
+ /**
+ * Create new {@code VBox} with default padding.
+ *
+ * @param spacing Amount of horizontal space between each child.
+ * @return New {@code VBox} instance.
+ */
+ public static VBox newVBox(int spacing) {
+ VBox vb = new VBox(spacing);
+
+ vb.setPadding(DFLT_PADDING);
+
+ return vb;
+ }
}
+