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

[14/16] cayenne git commit: Merge branch '155'

Merge branch '155'


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

Branch: refs/heads/master
Commit: ebc71c82311a53311a9401d03c46d2f4a5e97687
Parents: e187caa 487a410
Author: Andrus Adamchik <an...@objectstyle.com>
Authored: Wed Dec 14 22:01:25 2016 +0300
Committer: Andrus Adamchik <an...@objectstyle.com>
Committed: Wed Dec 14 22:01:25 2016 +0300

----------------------------------------------------------------------
 .../cayenne/dbsync/merge/AbstractMerger.java    |  91 ++++
 .../cayenne/dbsync/merge/AbstractToDbToken.java | 130 -----
 .../dbsync/merge/AbstractToModelToken.java      | 125 -----
 .../cayenne/dbsync/merge/AddColumnToDb.java     |  74 ---
 .../cayenne/dbsync/merge/AddColumnToModel.java  |  52 --
 .../dbsync/merge/AddRelationshipToDb.java       |  87 ----
 .../dbsync/merge/AddRelationshipToModel.java    |  89 ----
 .../cayenne/dbsync/merge/ChainMerger.java       |  71 +++
 .../cayenne/dbsync/merge/CreateTableToDb.java   |  86 ----
 .../dbsync/merge/CreateTableToModel.java        |  98 ----
 .../cayenne/dbsync/merge/DataMapMerger.java     | 155 ++++++
 .../dbsync/merge/DbAttributeDictionary.java     |  44 ++
 .../cayenne/dbsync/merge/DbAttributeMerger.java | 168 ++++++
 .../dbsync/merge/DbEntityDictionary.java        |  66 +++
 .../cayenne/dbsync/merge/DbEntityMerger.java    | 127 +++++
 .../apache/cayenne/dbsync/merge/DbMerger.java   | 396 --------------
 .../dbsync/merge/DbRelationshipDictionary.java  |  83 +++
 .../dbsync/merge/DbRelationshipMerger.java      | 133 +++++
 .../dbsync/merge/DefaultModelMergeDelegate.java |  89 ----
 .../merge/DefaultValueForNullProvider.java      |  62 ---
 .../cayenne/dbsync/merge/DropColumnToDb.java    |  61 ---
 .../cayenne/dbsync/merge/DropColumnToModel.java |  77 ---
 .../dbsync/merge/DropRelationshipToDb.java      |  83 ---
 .../dbsync/merge/DropRelationshipToModel.java   |  49 --
 .../cayenne/dbsync/merge/DropTableToDb.java     |  51 --
 .../cayenne/dbsync/merge/DropTableToModel.java  |  51 --
 .../cayenne/dbsync/merge/DummyReverseToken.java |  65 ---
 .../dbsync/merge/EmptyValueForNullProvider.java |  40 --
 .../dbsync/merge/EntityMergeSupport.java        | 515 ------------------
 .../cayenne/dbsync/merge/MergeDirection.java    |  70 ---
 .../org/apache/cayenne/dbsync/merge/Merger.java |  30 ++
 .../cayenne/dbsync/merge/MergerContext.java     | 170 ------
 .../cayenne/dbsync/merge/MergerDictionary.java  |  54 ++
 .../dbsync/merge/MergerDictionaryDiff.java      | 117 +++++
 .../cayenne/dbsync/merge/MergerDiffPair.java    |  39 ++
 .../cayenne/dbsync/merge/MergerToken.java       |  57 --
 .../dbsync/merge/ModelMergeDelegate.java        |  62 ---
 .../dbsync/merge/ProxyModelMergeDelegate.java   | 108 ----
 .../cayenne/dbsync/merge/SetAllowNullToDb.java  |  58 ---
 .../dbsync/merge/SetAllowNullToModel.java       |  45 --
 .../cayenne/dbsync/merge/SetColumnTypeToDb.java | 111 ----
 .../dbsync/merge/SetColumnTypeToModel.java      |  95 ----
 .../cayenne/dbsync/merge/SetNotNullToDb.java    |  52 --
 .../cayenne/dbsync/merge/SetNotNullToModel.java |  45 --
 .../cayenne/dbsync/merge/SetPrimaryKeyToDb.java |  87 ----
 .../dbsync/merge/SetPrimaryKeyToModel.java      |  80 ---
 .../dbsync/merge/SetValueForNullToDb.java       |  48 --
 .../cayenne/dbsync/merge/TokenComparator.java   |  46 --
 .../dbsync/merge/ValueForNullProvider.java      |  41 --
 .../merge/context/EntityMergeSupport.java       | 516 +++++++++++++++++++
 .../dbsync/merge/context/MergeDirection.java    |  71 +++
 .../dbsync/merge/context/MergerContext.java     | 174 +++++++
 .../merge/factory/DB2MergerTokenFactory.java    |   4 +-
 .../factory/DefaultMergerTokenFactory.java      |  46 +-
 .../merge/factory/DerbyMergerTokenFactory.java  |   8 +-
 .../factory/FirebirdMergerTokenFactory.java     |  10 +-
 .../merge/factory/H2MergerTokenFactory.java     |   8 +-
 .../merge/factory/HSQLMergerTokenFactory.java   |  10 +-
 .../merge/factory/IngresMergerTokenFactory.java |  14 +-
 .../merge/factory/MergerTokenFactory.java       |   4 +-
 .../merge/factory/MySQLMergerTokenFactory.java  |  12 +-
 .../factory/OpenBaseMergerTokenFactory.java     |  12 +-
 .../merge/factory/OracleMergerTokenFactory.java |  10 +-
 .../factory/PostgresMergerTokenFactory.java     |   4 +-
 .../factory/SQLServerMergerTokenFactory.java    |  10 +-
 .../merge/factory/SybaseMergerTokenFactory.java |  12 +-
 .../token/DefaultValueForNullProvider.java      |  63 +++
 .../dbsync/merge/token/DummyReverseToken.java   |  68 +++
 .../merge/token/EmptyValueForNullProvider.java  |  41 ++
 .../cayenne/dbsync/merge/token/MergerToken.java |  58 +++
 .../dbsync/merge/token/TokenComparator.java     |  58 +++
 .../merge/token/ValueForNullProvider.java       |  42 ++
 .../merge/token/db/AbstractToDbToken.java       | 134 +++++
 .../dbsync/merge/token/db/AddColumnToDb.java    |  76 +++
 .../merge/token/db/AddRelationshipToDb.java     |  84 +++
 .../dbsync/merge/token/db/CreateTableToDb.java  |  89 ++++
 .../dbsync/merge/token/db/DropColumnToDb.java   |  63 +++
 .../merge/token/db/DropRelationshipToDb.java    |  85 +++
 .../dbsync/merge/token/db/DropTableToDb.java    |  53 ++
 .../dbsync/merge/token/db/SetAllowNullToDb.java |  60 +++
 .../merge/token/db/SetColumnTypeToDb.java       | 113 ++++
 .../dbsync/merge/token/db/SetNotNullToDb.java   |  54 ++
 .../merge/token/db/SetPrimaryKeyToDb.java       |  89 ++++
 .../merge/token/db/SetValueForNullToDb.java     |  52 ++
 .../merge/token/model/AbstractToModelToken.java | 129 +++++
 .../merge/token/model/AddColumnToModel.java     |  56 ++
 .../token/model/AddRelationshipToModel.java     |  92 ++++
 .../merge/token/model/CreateTableToModel.java   | 101 ++++
 .../merge/token/model/DropColumnToModel.java    |  80 +++
 .../token/model/DropRelationshipToModel.java    |  52 ++
 .../merge/token/model/DropTableToModel.java     |  54 ++
 .../merge/token/model/SetAllowNullToModel.java  |  48 ++
 .../merge/token/model/SetColumnTypeToModel.java |  98 ++++
 .../merge/token/model/SetNotNullToModel.java    |  48 ++
 .../merge/token/model/SetPrimaryKeyToModel.java |  83 +++
 .../dbload/DefaultModelMergeDelegate.java       |  90 ++++
 .../reverse/dbload/ModelMergeDelegate.java      |  65 +++
 .../reverse/dbload/ProxyModelMergeDelegate.java | 109 ++++
 .../dbsync/merge/AddColumnToModelIT.java        |  98 ----
 .../dbsync/merge/CreateTableToModelIT.java      |  97 ----
 .../cayenne/dbsync/merge/DataMapMergerTest.java | 400 ++++++++++++++
 .../cayenne/dbsync/merge/DbMergerTest.java      | 334 ------------
 .../dbsync/merge/DropColumnToModelIT.java       | 235 ---------
 .../dbsync/merge/DropRelationshipToModelIT.java | 190 -------
 .../dbsync/merge/DropTableToModelIT.java        |  94 ----
 .../dbsync/merge/EntityMergeSupportIT.java      |   1 +
 .../apache/cayenne/dbsync/merge/MergeCase.java  |   7 +-
 .../dbsync/merge/SetAllowNullToDbIT.java        |  66 ---
 .../cayenne/dbsync/merge/SetNotNullToDbIT.java  |  62 ---
 .../dbsync/merge/SetPrimaryKeyToDbIT.java       |  58 ---
 .../dbsync/merge/TokenComparatorTest.java       | 101 ----
 .../cayenne/dbsync/merge/TokensReverseTest.java |  90 ----
 .../merge/TokensToModelExecutionTest.java       |  80 ---
 .../cayenne/dbsync/merge/ValueForNullIT.java    | 126 -----
 .../dbsync/merge/token/TokenComparatorTest.java | 113 ++++
 .../dbsync/merge/token/TokensReverseTest.java   |  90 ++++
 .../merge/token/TokensToModelExecutionTest.java |  82 +++
 .../dbsync/merge/token/ValueForNullIT.java      | 129 +++++
 .../merge/token/db/SetAllowNullToDbIT.java      |  68 +++
 .../dbsync/merge/token/db/SetNotNullToDbIT.java |  64 +++
 .../merge/token/db/SetPrimaryKeyToDbIT.java     |  60 +++
 .../merge/token/model/AddColumnToModelIT.java   | 101 ++++
 .../merge/token/model/CreateTableToModelIT.java | 100 ++++
 .../merge/token/model/DropColumnToModelIT.java  | 238 +++++++++
 .../token/model/DropRelationshipToModelIT.java  | 192 +++++++
 .../merge/token/model/DropTableToModelIT.java   |  97 ++++
 .../java/org/apache/cayenne/map/DbEntity.java   |   4 +-
 .../tools/dbimport/DbImportConfiguration.java   |   4 +-
 .../tools/dbimport/DefaultDbImportAction.java   |  16 +-
 .../dbimport/DefaultDbImportActionTest.java     |  12 +-
 .../modeler/action/CreateObjEntityAction.java   |   2 +-
 .../modeler/action/DbEntitySyncAction.java      |   2 +-
 .../modeler/action/ObjEntitySyncAction.java     |   2 +-
 .../modeler/dialog/db/MergerOptions.java        |  18 +-
 .../db/MergerTokenSelectorController.java       |   6 +-
 .../dialog/db/MergerTokenTableModel.java        |   4 +-
 .../dialog/objentity/EntitySyncController.java  |   2 +-
 137 files changed, 6184 insertions(+), 5206 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/ebc71c82/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/token/db/DropRelationshipToDb.java
----------------------------------------------------------------------
diff --cc cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/token/db/DropRelationshipToDb.java
index 0000000,f58ae59..2e2e540
mode 000000,100644..100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/token/db/DropRelationshipToDb.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/token/db/DropRelationshipToDb.java
@@@ -1,0 -1,85 +1,85 @@@
+ /*****************************************************************
+  *   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.db;
+ 
+ import org.apache.cayenne.dba.DbAdapter;
+ import org.apache.cayenne.dba.QuotingStrategy;
+ import org.apache.cayenne.dbsync.merge.factory.MergerTokenFactory;
+ import org.apache.cayenne.dbsync.merge.token.MergerToken;
+ import org.apache.cayenne.map.DbEntity;
+ import org.apache.cayenne.map.DbRelationship;
 -import org.apache.cayenne.dbsync.reverse.db.DbRelationshipDetected;
++import org.apache.cayenne.dbsync.reverse.dbload.DbRelationshipDetected;
+ 
+ import java.util.Collections;
+ import java.util.List;
+ 
+ public class DropRelationshipToDb extends AbstractToDbToken.Entity {
+ 
+     private DbRelationship relationship;
+ 
+     public DropRelationshipToDb(DbEntity entity, DbRelationship relationship) {
+         super("Drop foreign key", entity);
+         this.relationship = relationship;
+     }
+     
+     public String getFkName() {
+         if (relationship instanceof DbRelationshipDetected) {
+             return ((DbRelationshipDetected) relationship).getFkName();
+         }
+         return null;
+     }
+ 
+     @Override
+     public List<String> createSql(DbAdapter adapter) {
+         if (isEmpty()) {
+             return Collections.emptyList();
+         }
+ 
+         QuotingStrategy context = adapter.getQuotingStrategy();
+         return Collections.singletonList(
+                 "ALTER TABLE " + context.quotedFullyQualifiedName(getEntity()) + " DROP CONSTRAINT " + getFkName());
+     }
+ 
+     public MergerToken createReverse(MergerTokenFactory factory) {
+         return factory.createAddRelationshipToModel(getEntity(), relationship);
+     }
+ 
+     @Override
+     public boolean isEmpty() {
+         return getFkName() == null || relationship.isToMany();
+     }
+ 
+     @Override
+     public String getTokenValue() {
+         if(relationship.isToMany()) {
+             return "Skip. No sql representation.";
+         }
+         return relationship.getSourceEntity().getName() + "->" + relationship.getTargetEntityName();
+     }
+ 
+     @Override
+     public int compareTo(MergerToken o) {
+         // add all AddRelationshipToDb to the end.
+         if (o instanceof DropRelationshipToDb) {
+             return super.compareTo(o);
+         }
+         return -1;
+     }
+ }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/ebc71c82/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/merge/MergeCase.java
----------------------------------------------------------------------
diff --cc cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/merge/MergeCase.java
index 65afa21,a722856..5c6053e
--- a/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/merge/MergeCase.java
+++ b/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/merge/MergeCase.java
@@@ -22,13 -22,16 +22,16 @@@ import org.apache.cayenne.CayenneRuntim
  import org.apache.cayenne.access.DataNode;
  import org.apache.cayenne.configuration.server.ServerRuntime;
  import org.apache.cayenne.dba.DbAdapter;
+ import org.apache.cayenne.dbsync.merge.context.MergerContext;
  import org.apache.cayenne.dbsync.merge.factory.MergerTokenFactory;
  import org.apache.cayenne.dbsync.merge.factory.MergerTokenFactoryProvider;
+ import org.apache.cayenne.dbsync.merge.token.db.AbstractToDbToken;
+ import org.apache.cayenne.dbsync.merge.token.MergerToken;
  import org.apache.cayenne.dbsync.naming.DefaultObjectNameGenerator;
  import org.apache.cayenne.dbsync.naming.NoStemStemmer;
 -import org.apache.cayenne.dbsync.reverse.db.DbLoader;
 -import org.apache.cayenne.dbsync.reverse.db.DbLoaderConfiguration;
 -import org.apache.cayenne.dbsync.reverse.db.LoggingDbLoaderDelegate;
 +import org.apache.cayenne.dbsync.reverse.dbload.DbLoader;
 +import org.apache.cayenne.dbsync.reverse.dbload.DbLoaderConfiguration;
 +import org.apache.cayenne.dbsync.reverse.dbload.LoggingDbLoaderDelegate;
  import org.apache.cayenne.dbsync.reverse.filters.FiltersConfig;
  import org.apache.cayenne.dbsync.reverse.filters.PatternFilter;
  import org.apache.cayenne.dbsync.reverse.filters.TableFilter;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/ebc71c82/cayenne-tools/src/main/java/org/apache/cayenne/tools/dbimport/DbImportConfiguration.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cayenne/blob/ebc71c82/cayenne-tools/src/main/java/org/apache/cayenne/tools/dbimport/DefaultDbImportAction.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cayenne/blob/ebc71c82/cayenne-tools/src/test/java/org/apache/cayenne/tools/dbimport/DefaultDbImportActionTest.java
----------------------------------------------------------------------
diff --cc cayenne-tools/src/test/java/org/apache/cayenne/tools/dbimport/DefaultDbImportActionTest.java
index 855d3ee,be12e06..f17db1c
--- a/cayenne-tools/src/test/java/org/apache/cayenne/tools/dbimport/DefaultDbImportActionTest.java
+++ b/cayenne-tools/src/test/java/org/apache/cayenne/tools/dbimport/DefaultDbImportActionTest.java
@@@ -37,9 -36,10 +36,10 @@@ import org.apache.cayenne.dbsync.merge.
  import org.apache.cayenne.dbsync.naming.DefaultObjectNameGenerator;
  import org.apache.cayenne.dbsync.naming.NoStemStemmer;
  import org.apache.cayenne.dbsync.naming.ObjectNameGenerator;
 -import org.apache.cayenne.dbsync.reverse.db.DbLoader;
 -import org.apache.cayenne.dbsync.reverse.db.DbLoaderConfiguration;
 -import org.apache.cayenne.dbsync.reverse.db.DbLoaderDelegate;
 +import org.apache.cayenne.dbsync.reverse.dbload.DbLoader;
 +import org.apache.cayenne.dbsync.reverse.dbload.DbLoaderConfiguration;
 +import org.apache.cayenne.dbsync.reverse.dbload.DbLoaderDelegate;
+ import org.apache.cayenne.dbsync.reverse.dbload.DefaultModelMergeDelegate;
  import org.apache.cayenne.di.DIBootstrap;
  import org.apache.cayenne.di.Injector;
  import org.apache.cayenne.map.DataMap;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/ebc71c82/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/MergerOptions.java
----------------------------------------------------------------------