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