You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by sk...@apache.org on 2016/12/19 12:03:11 UTC

[2/3] cayenne git commit: Remove TokenComparator as MergerTokens are now directly comparable

Remove TokenComparator as MergerTokens are now directly comparable


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/a026d830
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/a026d830
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/a026d830

Branch: refs/heads/master
Commit: a026d83049b9b6918f017a6acea1ee4d2a557b16
Parents: 67e951b
Author: Nikita Timofeev <st...@gmail.com>
Authored: Thu Dec 15 18:13:08 2016 +0300
Committer: Nikita Timofeev <st...@gmail.com>
Committed: Thu Dec 15 18:13:08 2016 +0300

----------------------------------------------------------------------
 .../cayenne/dbsync/merge/DataMapMerger.java     |   3 +-
 .../dbsync/merge/token/TokenComparator.java     |  35 -----
 .../dbsync/merge/token/TokenComparatorTest.java | 157 -------------------
 .../dbsync/merge/token/TokenSortTest.java       | 150 ++++++++++++++++++
 .../tools/dbimport/DefaultDbImportAction.java   |   3 +-
 .../db/MergerTokenSelectorController.java       |   3 +-
 .../tools/dbimport/testComplexChangeOrder.sql   |  12 +-
 7 files changed, 157 insertions(+), 206 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/a026d830/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DataMapMerger.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DataMapMerger.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DataMapMerger.java
index b5bfd40..7b78321 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DataMapMerger.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DataMapMerger.java
@@ -22,7 +22,6 @@ package org.apache.cayenne.dbsync.merge;
 import org.apache.cayenne.dbsync.merge.factory.MergerTokenFactory;
 import org.apache.cayenne.dbsync.merge.token.EmptyValueForNullProvider;
 import org.apache.cayenne.dbsync.merge.token.MergerToken;
-import org.apache.cayenne.dbsync.merge.token.TokenComparator;
 import org.apache.cayenne.dbsync.merge.token.ValueForNullProvider;
 import org.apache.cayenne.dbsync.reverse.filters.FiltersConfig;
 import org.apache.cayenne.dbsync.reverse.filters.PatternFilter;
@@ -76,7 +75,7 @@ public class DataMapMerger implements Merger<DataMap> {
         for(AbstractMerger<?, ?> merger : mergerList) {
             tokens.addAll(merger.createMergeTokens());
         }
-        Collections.sort(tokens, new TokenComparator());
+        Collections.sort(tokens);
         return tokens;
     }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/a026d830/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/token/TokenComparator.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/token/TokenComparator.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/token/TokenComparator.java
deleted file mode 100644
index abbdb77..0000000
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/token/TokenComparator.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*****************************************************************
- *   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.cayenne.dbsync.merge.token;
-
-import java.util.Comparator;
-
-/**
- * Simple sort of merge tokens.
- * Just move all relationships creation tokens to the end of the list.
- * @since 4.0
- */
-public class TokenComparator implements Comparator<MergerToken> {
-
-    @Override
-    public int compare(MergerToken o1, MergerToken o2) {
-        return o1.compareTo(o2);
-    }
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/a026d830/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/merge/token/TokenComparatorTest.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/merge/token/TokenComparatorTest.java b/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/merge/token/TokenComparatorTest.java
deleted file mode 100644
index d731f2f..0000000
--- a/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/merge/token/TokenComparatorTest.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*****************************************************************
- *   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.cayenne.dbsync.merge.token;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-import org.apache.cayenne.dbsync.merge.token.db.AddColumnToDb;
-import org.apache.cayenne.dbsync.merge.token.db.AddRelationshipToDb;
-import org.apache.cayenne.dbsync.merge.token.db.CreateTableToDb;
-import org.apache.cayenne.dbsync.merge.token.db.DropColumnToDb;
-import org.apache.cayenne.dbsync.merge.token.db.DropRelationshipToDb;
-import org.apache.cayenne.dbsync.merge.token.db.DropTableToDb;
-import org.apache.cayenne.dbsync.merge.token.model.AddColumnToModel;
-import org.apache.cayenne.dbsync.merge.token.model.AddRelationshipToModel;
-import org.apache.cayenne.dbsync.merge.token.model.CreateTableToModel;
-import org.apache.cayenne.dbsync.merge.token.model.DropColumnToModel;
-import org.apache.cayenne.dbsync.merge.token.model.DropRelationshipToModel;
-import org.apache.cayenne.dbsync.merge.token.model.DropTableToModel;
-import org.junit.Before;
-import org.junit.Test;
-
-import static org.junit.Assert.assertEquals;
-
-public class TokenComparatorTest {
-
-    TokenComparator comparator;
-
-    @Before
-    public void setUp() {
-        comparator = new TokenComparator();
-    }
-
-    private List<String> toClassesNames(List<MergerToken> sort) {
-        List<String> res = new ArrayList<String>(sort.size());
-        for (MergerToken mergerToken : sort) {
-            res.add(mergerToken.getClass().getSimpleName());
-        }
-        return res;
-    }
-
-    @Test
-    public void testSortStability() throws Exception {
-        List<MergerToken> tokens = Arrays.<MergerToken>asList(
-                new AddRelationshipToModel(null, null),
-                new AddColumnToModel(null, null),
-                new AddColumnToDb(null, null),
-                new CreateTableToModel(null),
-                new DropTableToModel(null),
-                new DropColumnToModel(null, null),
-                new DropRelationshipToModel(null, null)
-        );
-        Collections.sort(tokens, comparator);
-        List<String> actual = toClassesNames(tokens);
-
-        List<String> expected = Arrays.asList(
-                "DropRelationshipToModel",
-                "DropColumnToModel",
-                "DropTableToModel",
-                "CreateTableToModel",
-                "AddColumnToDb",
-                "AddColumnToModel",
-                "AddRelationshipToModel"
-        );
-
-        assertEquals(expected, actual);
-
-        Collections.sort(tokens, comparator);
-        actual = toClassesNames(tokens);
-        assertEquals(expected, actual);
-
-        List<MergerToken> tokens2 = Arrays.<MergerToken>asList(
-                new AddColumnToModel(null, null),
-                new AddRelationshipToModel(null, null),
-                new CreateTableToModel(null),
-                new AddColumnToDb(null, null),
-                new DropColumnToModel(null, null),
-                new DropRelationshipToModel(null, null),
-                new DropTableToModel(null)
-        );
-        Collections.sort(tokens2, comparator);
-        actual = toClassesNames(tokens);
-        assertEquals(expected, actual);
-    }
-
-    @Test
-    public void testToModelTokensCompare() throws Exception {
-        List<MergerToken> tokens = Arrays.<MergerToken>asList(
-                new DropColumnToModel(null, null),
-                new DropRelationshipToModel(null, null),
-                new DropTableToModel(null),
-                new AddColumnToDb(null, null),
-                new AddRelationshipToModel(null, null),
-                new AddColumnToModel(null, null),
-                new CreateTableToModel(null));
-        Collections.sort(tokens, comparator);
-
-        List<String> actual = toClassesNames(tokens);
-        List<String> expected = Arrays.asList(
-                "DropRelationshipToModel",
-                "DropColumnToModel",
-                "DropTableToModel",
-                "CreateTableToModel",
-                "AddColumnToDb",
-                "AddColumnToModel",
-                "AddRelationshipToModel"
-        );
-
-        assertEquals(expected, actual);
-    }
-
-    @Test
-    public void testToDbTokensCompare() throws Exception {
-        List<MergerToken> tokens = Arrays.<MergerToken>asList(
-                new DropColumnToDb(null, null),
-                new DropRelationshipToDb(null, null),
-                new DropTableToDb(null),
-                new AddColumnToModel(null, null),
-                new AddRelationshipToDb(null, null),
-                new AddColumnToDb(null, null),
-                new CreateTableToDb(null));
-        Collections.sort(tokens, comparator);
-
-        List<String> actual = toClassesNames(tokens);
-        List<String> expected = Arrays.asList(
-                "DropRelationshipToDb",
-                "DropColumnToDb",
-                "DropTableToDb",
-                "CreateTableToDb",
-                "AddColumnToDb",
-                "AddColumnToModel",
-                "AddRelationshipToDb"
-        );
-
-        assertEquals(expected, actual);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/a026d830/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/merge/token/TokenSortTest.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/merge/token/TokenSortTest.java b/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/merge/token/TokenSortTest.java
new file mode 100644
index 0000000..27703a2
--- /dev/null
+++ b/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/merge/token/TokenSortTest.java
@@ -0,0 +1,150 @@
+/*****************************************************************
+ *   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.cayenne.dbsync.merge.token;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.apache.cayenne.dbsync.merge.token.db.AddColumnToDb;
+import org.apache.cayenne.dbsync.merge.token.db.AddRelationshipToDb;
+import org.apache.cayenne.dbsync.merge.token.db.CreateTableToDb;
+import org.apache.cayenne.dbsync.merge.token.db.DropColumnToDb;
+import org.apache.cayenne.dbsync.merge.token.db.DropRelationshipToDb;
+import org.apache.cayenne.dbsync.merge.token.db.DropTableToDb;
+import org.apache.cayenne.dbsync.merge.token.model.AddColumnToModel;
+import org.apache.cayenne.dbsync.merge.token.model.AddRelationshipToModel;
+import org.apache.cayenne.dbsync.merge.token.model.CreateTableToModel;
+import org.apache.cayenne.dbsync.merge.token.model.DropColumnToModel;
+import org.apache.cayenne.dbsync.merge.token.model.DropRelationshipToModel;
+import org.apache.cayenne.dbsync.merge.token.model.DropTableToModel;
+import org.junit.Before;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+
+public class TokenSortTest {
+
+    private List<String> toClassesNames(List<MergerToken> sort) {
+        List<String> res = new ArrayList<String>(sort.size());
+        for (MergerToken mergerToken : sort) {
+            res.add(mergerToken.getClass().getSimpleName());
+        }
+        return res;
+    }
+
+    @Test
+    public void testSortStability() throws Exception {
+        List<MergerToken> tokens = Arrays.<MergerToken>asList(
+                new AddRelationshipToModel(null, null),
+                new AddColumnToModel(null, null),
+                new AddColumnToDb(null, null),
+                new CreateTableToModel(null),
+                new DropTableToModel(null),
+                new DropColumnToModel(null, null),
+                new DropRelationshipToModel(null, null)
+        );
+        Collections.sort(tokens);
+        List<String> actual = toClassesNames(tokens);
+
+        List<String> expected = Arrays.asList(
+                "DropRelationshipToModel",
+                "DropColumnToModel",
+                "DropTableToModel",
+                "CreateTableToModel",
+                "AddColumnToDb",
+                "AddColumnToModel",
+                "AddRelationshipToModel"
+        );
+
+        assertEquals(expected, actual);
+
+        Collections.sort(tokens);
+        actual = toClassesNames(tokens);
+        assertEquals(expected, actual);
+
+        List<MergerToken> tokens2 = Arrays.<MergerToken>asList(
+                new AddColumnToModel(null, null),
+                new AddRelationshipToModel(null, null),
+                new CreateTableToModel(null),
+                new AddColumnToDb(null, null),
+                new DropColumnToModel(null, null),
+                new DropRelationshipToModel(null, null),
+                new DropTableToModel(null)
+        );
+        Collections.sort(tokens2);
+        actual = toClassesNames(tokens);
+        assertEquals(expected, actual);
+    }
+
+    @Test
+    public void testToModelTokensCompare() throws Exception {
+        List<MergerToken> tokens = Arrays.<MergerToken>asList(
+                new DropColumnToModel(null, null),
+                new DropRelationshipToModel(null, null),
+                new DropTableToModel(null),
+                new AddColumnToDb(null, null),
+                new AddRelationshipToModel(null, null),
+                new AddColumnToModel(null, null),
+                new CreateTableToModel(null));
+        Collections.sort(tokens);
+
+        List<String> actual = toClassesNames(tokens);
+        List<String> expected = Arrays.asList(
+                "DropRelationshipToModel",
+                "DropColumnToModel",
+                "DropTableToModel",
+                "CreateTableToModel",
+                "AddColumnToDb",
+                "AddColumnToModel",
+                "AddRelationshipToModel"
+        );
+
+        assertEquals(expected, actual);
+    }
+
+    @Test
+    public void testToDbTokensCompare() throws Exception {
+        List<MergerToken> tokens = Arrays.<MergerToken>asList(
+                new DropColumnToDb(null, null),
+                new DropRelationshipToDb(null, null),
+                new DropTableToDb(null),
+                new AddColumnToModel(null, null),
+                new AddRelationshipToDb(null, null),
+                new AddColumnToDb(null, null),
+                new CreateTableToDb(null));
+        Collections.sort(tokens);
+
+        List<String> actual = toClassesNames(tokens);
+        List<String> expected = Arrays.asList(
+                "DropRelationshipToDb",
+                "DropColumnToDb",
+                "DropTableToDb",
+                "CreateTableToDb",
+                "AddColumnToDb",
+                "AddColumnToModel",
+                "AddRelationshipToDb"
+        );
+
+        assertEquals(expected, actual);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/a026d830/cayenne-tools/src/main/java/org/apache/cayenne/tools/dbimport/DefaultDbImportAction.java
----------------------------------------------------------------------
diff --git a/cayenne-tools/src/main/java/org/apache/cayenne/tools/dbimport/DefaultDbImportAction.java b/cayenne-tools/src/main/java/org/apache/cayenne/tools/dbimport/DefaultDbImportAction.java
index bee2de1..575b0a4 100644
--- a/cayenne-tools/src/main/java/org/apache/cayenne/tools/dbimport/DefaultDbImportAction.java
+++ b/cayenne-tools/src/main/java/org/apache/cayenne/tools/dbimport/DefaultDbImportAction.java
@@ -30,7 +30,6 @@ import org.apache.cayenne.dbsync.merge.context.MergerContext;
 import org.apache.cayenne.dbsync.merge.token.MergerToken;
 import org.apache.cayenne.dbsync.reverse.dbload.ModelMergeDelegate;
 import org.apache.cayenne.dbsync.reverse.dbload.ProxyModelMergeDelegate;
-import org.apache.cayenne.dbsync.merge.token.TokenComparator;
 import org.apache.cayenne.dbsync.merge.factory.MergerTokenFactory;
 import org.apache.cayenne.dbsync.merge.factory.MergerTokenFactoryProvider;
 import org.apache.cayenne.dbsync.naming.ObjectNameGenerator;
@@ -96,7 +95,7 @@ public class DefaultDbImportAction implements DbImportAction {
     }
 
     protected static List<MergerToken> sort(List<MergerToken> reverse) {
-        Collections.sort(reverse, new TokenComparator());
+        Collections.sort(reverse);
         return reverse;
     }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/a026d830/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/MergerTokenSelectorController.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/MergerTokenSelectorController.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/MergerTokenSelectorController.java
index 20e31e3..14112c1 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/MergerTokenSelectorController.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/MergerTokenSelectorController.java
@@ -20,7 +20,6 @@ package org.apache.cayenne.modeler.dialog.db;
 
 import org.apache.cayenne.dbsync.merge.context.MergeDirection;
 import org.apache.cayenne.dbsync.merge.token.MergerToken;
-import org.apache.cayenne.dbsync.merge.token.TokenComparator;
 import org.apache.cayenne.dbsync.merge.factory.MergerTokenFactory;
 import org.apache.cayenne.modeler.Application;
 import org.apache.cayenne.modeler.util.CayenneController;
@@ -232,7 +231,7 @@ public class MergerTokenSelectorController extends CayenneController {
             }
         }
 
-        Collections.sort(selectableTokensList, new TokenComparator());
+        Collections.sort(selectableTokensList);
         AbstractTableModel model = (AbstractTableModel) view.getTokens().getModel();
         model.fireTableDataChanged();
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/a026d830/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testComplexChangeOrder.sql
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testComplexChangeOrder.sql b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testComplexChangeOrder.sql
index 583e1db..9885bc7 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testComplexChangeOrder.sql
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testComplexChangeOrder.sql
@@ -24,15 +24,11 @@ CREATE TABLE schema_01.address (
     PRIMARY KEY (id)
 );
 
-CREATE TABLE schema_01.parent (
-    id INTEGER  NOT NULL,
-    PRIMARY KEY (id)
-);
-
 CREATE TABLE schema_01.child (
     address_id INTEGER ,
+    "date" DATE,
     id INTEGER ,
-    parent_id INTEGER,
-    CONSTRAINT fk_address FOREIGN KEY (address_id) REFERENCES schema_01.address (id),
-    CONSTRAINT fk_parent FOREIGN KEY (parent_id) REFERENCES schema_01.parent (id)
+    name VARCHAR(30) NOT NULL,
+    parent_id INTEGER ,
+    CONSTRAINT fk_address FOREIGN KEY (address_id) REFERENCES schema_01.address (id)
 );
\ No newline at end of file