Repository: incubator-ignite Updated Branches: refs/heads/ignite-411-2 6f5944cca -> 8749696c1
# IGNITE-411 Fixed compatibility with java 8. Removed dependency from ignite-core. Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/8749696c Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/8749696c Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/8749696c Branch: refs/heads/ignite-411-2 Commit: 8749696c12202d4d0dd403266bddf478e3bf07c6 Parents: 6f5944c Author: AKuznetsov <akuznet...@gridgain.com> Authored: Fri Mar 13 14:33:00 2015 +0700 Committer: AKuznetsov <akuznet...@gridgain.com> Committed: Fri Mar 13 14:33:00 2015 +0700 ---------------------------------------------------------------------- bin/ignite-schema-import.bat | 25 ++------- bin/ignite-schema-import.sh | 13 +---- modules/schema-import/pom.xml | 6 --- .../schema-import/src/main/java/media/style.css | 1 + .../ignite/schema/generator/XmlGenerator.java | 28 +++++----- .../apache/ignite/schema/model/IndexItem.java | 54 ++++++++++++++++++++ .../ignite/schema/model/PojoDescriptor.java | 9 ++-- .../ignite/schema/ui/SchemaImportApp.java | 52 +++++++++++++------ .../schema/test/AbstractSchemaImportTest.java | 19 +++++-- 9 files changed, 130 insertions(+), 77 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8749696c/bin/ignite-schema-import.bat ---------------------------------------------------------------------- diff --git a/bin/ignite-schema-import.bat b/bin/ignite-schema-import.bat index d5fa644..7cac917 100644 --- a/bin/ignite-schema-import.bat +++ b/bin/ignite-schema-import.bat @@ -70,37 +70,18 @@ set IGNITE_HOME=%IGNITE_HOME:~0,-1% goto checkIgniteHome2 :checkIgniteHome3 -if exist "%IGNITE_HOME%\config" goto checkIgniteHome4 +if exist "%IGNITE_HOME%\config" goto run echo %0, ERROR: Ignite installation folder is not found or IGNITE_HOME environment variable is not valid. echo Please create IGNITE_HOME environment variable pointing to location of echo Ignite installation folder. goto error_finish -:checkIgniteHome4 - -:: -:: Set SCRIPTS_HOME - base path to scripts. -:: -set SCRIPTS_HOME=%IGNITE_HOME%\bin - -:: Remove trailing spaces -for /l %%a in (1,1,31) do if /i "%SCRIPTS_HOME:~-1%" == " " set SCRIPTS_HOME=%SCRIPTS_HOME:~0,-1% - -if /i "%SCRIPTS_HOME%\" == "%~dp0" goto run - echo %0, WARN: IGNITE_HOME environment variable may be pointing to wrong folder: %IGNITE_HOME% - :run :: -:: Set IGNITE_LIBS -:: -call "%SCRIPTS_HOME%\include\setenv.bat" -call "%SCRIPTS_HOME%\include\target-classpath.bat" &:: Will be removed in release. - -:: -:: Set CLASS PATH +:: Set CLASS PATH. :: -set CP=%JAVA_HOME%\jre\lib\jfxrt.jar;%IGNITE_LIBS%;%IGNITE_HOME%\bin\include\schema-import\* +set CP=%JAVA_HOME%\jre\lib\jfxrt.jar;%IGNITE_HOME%\bin\include\schema-import\* :: :: JVM options. See http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp for more details. http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8749696c/bin/ignite-schema-import.sh ---------------------------------------------------------------------- diff --git a/bin/ignite-schema-import.sh b/bin/ignite-schema-import.sh index cac38c4..b4a062c 100644 --- a/bin/ignite-schema-import.sh +++ b/bin/ignite-schema-import.sh @@ -29,13 +29,6 @@ if [ "${IGNITE_HOME}" = "" ]; fi # -# Set SCRIPTS_HOME - base path to scripts. -# -SCRIPTS_HOME="${IGNITE_HOME_TMP}/bin" - -source "${SCRIPTS_HOME}"/include/functions.sh - -# # Discover path to Java executable and check it's version. # checkJava @@ -46,11 +39,9 @@ checkJava setIgniteHome # -# Set IGNITE_LIBS. +# Set CLASS PATH. # -. "${SCRIPTS_HOME}"/include/setenv.sh -. "${SCRIPTS_HOME}"/include/target-classpath.sh # Will be removed in release. -CP="${JAVA_HOME}/jre/lib/jfxrt.jar${SEP}${IGNITE_LIBS}${SEP}${IGNITE_HOME}/bin/include/schema-import/*" +CP="${JAVA_HOME}/jre/lib/jfxrt.jar${SEP}${IGNITE_HOME}/bin/include/schema-import/*" # Mac OS specific support to display correct name in the dock. osname=`uname` http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8749696c/modules/schema-import/pom.xml ---------------------------------------------------------------------- diff --git a/modules/schema-import/pom.xml b/modules/schema-import/pom.xml index 8186fd3..3e8d32c 100644 --- a/modules/schema-import/pom.xml +++ b/modules/schema-import/pom.xml @@ -37,12 +37,6 @@ <dependencies> <dependency> - <groupId>org.apache.ignite</groupId> - <artifactId>ignite-core</artifactId> - <version>${ignite.version}</version> - </dependency> - - <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <version>1.3.175</version> http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8749696c/modules/schema-import/src/main/java/media/style.css ---------------------------------------------------------------------- diff --git a/modules/schema-import/src/main/java/media/style.css b/modules/schema-import/src/main/java/media/style.css index 94ba240..1a7bf2a 100644 --- a/modules/schema-import/src/main/java/media/style.css +++ b/modules/schema-import/src/main/java/media/style.css @@ -58,6 +58,7 @@ .table-view { -fx-focus-color: gray; + -fx-font-size: 14; } .table-view .table-row-cell:selected { http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8749696c/modules/schema-import/src/main/java/org/apache/ignite/schema/generator/XmlGenerator.java ---------------------------------------------------------------------- diff --git a/modules/schema-import/src/main/java/org/apache/ignite/schema/generator/XmlGenerator.java b/modules/schema-import/src/main/java/org/apache/ignite/schema/generator/XmlGenerator.java index f062dc2..0c9e78f 100644 --- a/modules/schema-import/src/main/java/org/apache/ignite/schema/generator/XmlGenerator.java +++ b/modules/schema-import/src/main/java/org/apache/ignite/schema/generator/XmlGenerator.java @@ -17,8 +17,6 @@ package org.apache.ignite.schema.generator; -import org.apache.ignite.cache.*; -import org.apache.ignite.lang.*; import org.apache.ignite.schema.model.*; import org.apache.ignite.schema.ui.*; import org.w3c.dom.*; @@ -67,12 +65,12 @@ public class XmlGenerator { * * @param doc XML document. * @param parent Parent XML node. - * @param clazz Bean class. + * @param cls Bean class name. */ - private static Element addBean(Document doc, Node parent, Class<?> clazz) { + private static Element addBean(Document doc, Node parent, String cls) { Element elem = doc.createElement("bean"); - elem.setAttribute("class", clazz.getName()); + elem.setAttribute("class", cls); parent.appendChild(elem); @@ -156,7 +154,7 @@ public class XmlGenerator { Element list = addElement(doc, prop, "list"); for (PojoField field : fields) { - Element item = addBean(doc, list, CacheTypeFieldMetadata.class); + Element item = addBean(doc, list, "org.apache.ignite.cache.CacheTypeFieldMetadata"); addProperty(doc, item, "databaseName", field.dbName()); Element dbType = addProperty(doc, item, "databaseType", null); @@ -194,28 +192,28 @@ public class XmlGenerator { * @param groups Map with indexes. */ private static void addQueryGroups(Document doc, Node parent, - Map<String, Map<String, IgniteBiTuple<String, Boolean>>> groups) { + Map<String, Map<String, IndexItem>> groups) { if (!groups.isEmpty()) { Element prop = addProperty(doc, parent, "groups", null); Element map = addElement(doc, prop, "map"); - for (Map.Entry<String, Map<String, IgniteBiTuple<String, Boolean>>> group : groups.entrySet()) { + for (Map.Entry<String, Map<String, IndexItem>> group : groups.entrySet()) { Element entry1 = addElement(doc, map, "entry", "key", group.getKey()); Element val1 = addElement(doc, entry1, "map"); - Map<String, IgniteBiTuple<String, Boolean>> fields = group.getValue(); + Map<String, IndexItem> fields = group.getValue(); - for (Map.Entry<String, IgniteBiTuple<String, Boolean>> field : fields.entrySet()) { + for (Map.Entry<String, IndexItem> field : fields.entrySet()) { Element entry2 = addElement(doc, val1, "entry", "key", field.getKey()); - Element val2 = addBean(doc, entry2, IgniteBiTuple.class); + Element val2 = addBean(doc, entry2, "org.apache.ignite.lang.IgniteBiTuple"); - IgniteBiTuple<String, Boolean> idx = field.getValue(); + IndexItem idx = field.getValue(); - addElement(doc, val2, "constructor-arg", null, null, "value", idx.get1()); - addElement(doc, val2, "constructor-arg", null, null, "value", String.valueOf(idx.get2())); + addElement(doc, val2, "constructor-arg", null, null, "value", idx.name()); + addElement(doc, val2, "constructor-arg", null, null, "value", String.valueOf(idx.descending())); } } } @@ -231,7 +229,7 @@ public class XmlGenerator { */ private static void addTypeMetadata(Document doc, Node parent, String pkg, PojoDescriptor pojo, boolean includeKeys) { - Element bean = addBean(doc, parent, CacheTypeMetadata.class); + Element bean = addBean(doc, parent, "org.apache.ignite.cache.CacheTypeMetadata"); addProperty(doc, bean, "databaseSchema", pojo.schema()); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8749696c/modules/schema-import/src/main/java/org/apache/ignite/schema/model/IndexItem.java ---------------------------------------------------------------------- diff --git a/modules/schema-import/src/main/java/org/apache/ignite/schema/model/IndexItem.java b/modules/schema-import/src/main/java/org/apache/ignite/schema/model/IndexItem.java new file mode 100644 index 0000000..1a0868d --- /dev/null +++ b/modules/schema-import/src/main/java/org/apache/ignite/schema/model/IndexItem.java @@ -0,0 +1,54 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.ignite.schema.model; + +/** + * Index item descriptor. + */ +public class IndexItem { + /** Column name. */ + private final String name; + + /** Sort direction. */ + private final Boolean desc; + + /** + * Constructor. + * + * @param name Column name. + * @param desc Sort direction. + */ + public IndexItem(String name, Boolean desc) { + this.name = name; + this.desc = desc; + } + + /** + * @return Column name. + */ + public String name() { + return name; + } + + /** + * @return Sort direction. + */ + public Boolean descending() { + return desc; + } +} http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8749696c/modules/schema-import/src/main/java/org/apache/ignite/schema/model/PojoDescriptor.java ---------------------------------------------------------------------- diff --git a/modules/schema-import/src/main/java/org/apache/ignite/schema/model/PojoDescriptor.java b/modules/schema-import/src/main/java/org/apache/ignite/schema/model/PojoDescriptor.java index 9f3322b..3807f4f 100644 --- a/modules/schema-import/src/main/java/org/apache/ignite/schema/model/PojoDescriptor.java +++ b/modules/schema-import/src/main/java/org/apache/ignite/schema/model/PojoDescriptor.java @@ -20,7 +20,6 @@ package org.apache.ignite.schema.model; import javafx.beans.property.*; import javafx.beans.value.*; import javafx.collections.*; -import org.apache.ignite.lang.*; import org.apache.ignite.schema.parser.*; import java.math.*; @@ -306,24 +305,24 @@ public class PojoDescriptor { /** * Gets indexes groups. */ - public Map<String, Map<String, IgniteBiTuple<String, Boolean>>> groups() { + public Map<String, Map<String, IndexItem>> groups() { Map<String, Map<String, Boolean>> idxs = tbl.indexes(); - Map<String, Map<String, IgniteBiTuple<String, Boolean>>> groups = new LinkedHashMap<>(idxs.size()); + Map<String, Map<String, IndexItem>> groups = new LinkedHashMap<>(idxs.size()); for (Map.Entry<String, Map<String, Boolean>> idx : idxs.entrySet()) { String idxName = idx.getKey(); Map<String, Boolean> idxCols = idx.getValue(); - Map<String, IgniteBiTuple<String, Boolean>> grp = new LinkedHashMap<>(); + Map<String, IndexItem> grp = new LinkedHashMap<>(); groups.put(idxName, grp); for (Map.Entry<String, Boolean> idxCol : idxCols.entrySet()) { PojoField fld = fieldsMap.get(idxCol.getKey()); - grp.put(fld.javaName(), new IgniteBiTuple<>(fld.javaTypeName(), idxCol.getValue())); + grp.put(fld.javaName(), new IndexItem(fld.javaTypeName(), idxCol.getValue())); } } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8749696c/modules/schema-import/src/main/java/org/apache/ignite/schema/ui/SchemaImportApp.java ---------------------------------------------------------------------- diff --git a/modules/schema-import/src/main/java/org/apache/ignite/schema/ui/SchemaImportApp.java b/modules/schema-import/src/main/java/org/apache/ignite/schema/ui/SchemaImportApp.java index 365ea07..bbd5f3f 100644 --- a/modules/schema-import/src/main/java/org/apache/ignite/schema/ui/SchemaImportApp.java +++ b/modules/schema-import/src/main/java/org/apache/ignite/schema/ui/SchemaImportApp.java @@ -1530,6 +1530,12 @@ public class SchemaImportApp extends Application { }; } + /** Previous POJO bound to cell. */ + private PojoDescriptor prevPojo; + + /** Previous cell graphic. */ + private Pane prevGraphic; + /** {@inheritDoc} */ @Override public void updateItem(Boolean item, boolean empty) { super.updateItem(item, empty); @@ -1543,20 +1549,25 @@ public class SchemaImportApp extends Application { final PojoDescriptor pojo = (PojoDescriptor)row.getItem(); if (pojo != null) { - boolean isTbl = pojo.parent() != null; + if (prevGraphic == null || pojo != prevPojo) { + boolean isTbl = pojo.parent() != null; - CheckBox ch = new CheckBox(); - ch.setAllowIndeterminate(false); - ch.indeterminateProperty().bindBidirectional(pojo.indeterminate()); - ch.selectedProperty().bindBidirectional(pojo.useProperty()); + CheckBox ch = new CheckBox(); + ch.setAllowIndeterminate(false); + ch.indeterminateProperty().bindBidirectional(pojo.indeterminate()); + ch.selectedProperty().bindBidirectional(pojo.useProperty()); - Label lb = new Label(isTbl ? pojo.table() : pojo.schema()); + Label lb = new Label(isTbl ? pojo.table() : pojo.schema()); - Pane pnl = new HBox(5); - pnl.setPadding(new Insets(0, 0, 0, isTbl ? 25 : 5)); - pnl.getChildren().addAll(ch, lb); + Pane pnl = new HBox(5); + pnl.setPadding(new Insets(0, 0, 0, isTbl ? 25 : 5)); + pnl.getChildren().addAll(ch, lb); + + prevPojo = pojo; + prevGraphic = pnl; + } - setGraphic(pnl); + setGraphic(prevGraphic); } } } @@ -1576,6 +1587,12 @@ public class SchemaImportApp extends Application { }; } + /** Previous POJO field bound to cell. */ + private PojoField prevField; + + /** Previous cell graphic. */ + private CheckBox prevGraphic; + /** {@inheritDoc} */ @Override public void updateItem(Boolean item, boolean empty) { super.updateItem(item, empty); @@ -1589,13 +1606,18 @@ public class SchemaImportApp extends Application { final PojoField field = (PojoField)row.getItem(); if (field != null) { - setAlignment(Pos.CENTER); + if (prevGraphic == null || prevField != field) { + setAlignment(Pos.CENTER); - CheckBox ch = new CheckBox(); - ch.setDisable(!field.nullable()); - ch.selectedProperty().bindBidirectional(field.useProperty()); + CheckBox ch = new CheckBox(); + ch.setDisable(!field.nullable()); + ch.selectedProperty().bindBidirectional(field.useProperty()); + + prevField = field; + prevGraphic = ch; + } - setGraphic(ch); + setGraphic(prevGraphic); } } } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8749696c/modules/schema-import/src/test/java/org/apache/ignite/schema/test/AbstractSchemaImportTest.java ---------------------------------------------------------------------- diff --git a/modules/schema-import/src/test/java/org/apache/ignite/schema/test/AbstractSchemaImportTest.java b/modules/schema-import/src/test/java/org/apache/ignite/schema/test/AbstractSchemaImportTest.java index 0c3ecb1..09b50c9 100644 --- a/modules/schema-import/src/test/java/org/apache/ignite/schema/test/AbstractSchemaImportTest.java +++ b/modules/schema-import/src/test/java/org/apache/ignite/schema/test/AbstractSchemaImportTest.java @@ -18,7 +18,6 @@ package org.apache.ignite.schema.test; import junit.framework.*; -import org.apache.ignite.internal.util.typedef.internal.*; import org.apache.ignite.schema.model.PojoDescriptor; import org.apache.ignite.schema.parser.DatabaseMetadataParser; import org.apache.ignite.schema.ui.*; @@ -49,6 +48,20 @@ public abstract class AbstractSchemaImportTest extends TestCase { /** List of generated for test database POJO objects. */ protected List<PojoDescriptor> pojos; + /** + * Quietly closes given resource ignoring possible checked exception. + * + * @param rsrc Resource to close. + */ + private void closeQuiet(AutoCloseable rsrc) { + try { + rsrc.close(); + } + catch (Exception ignored) { + // No-op. + } + } + /** {@inheritDoc} */ @Override public void setUp() throws Exception { Class.forName("org.h2.Driver"); @@ -91,11 +104,11 @@ public abstract class AbstractSchemaImportTest extends TestCase { conn.commit(); - U.closeQuiet(stmt); + closeQuiet(stmt); pojos = DatabaseMetadataParser.parse(conn, false); - U.closeQuiet(conn); + closeQuiet(conn); } /**