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/10/04 12:45:30 UTC

[2/7] cayenne git commit: CAY-2114 cdbimport: object layer settings are not respected

CAY-2114 cdbimport: object layer settings are not respected

* support for proper flags in EntityMergeSupport


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

Branch: refs/heads/master
Commit: 3a5f31d17e2a1cd2e108aa1b43ce8cbd468b421c
Parents: 6a1eb0f
Author: Andrus Adamchik <an...@objectstyle.com>
Authored: Tue Oct 4 13:51:07 2016 +0300
Committer: Andrus Adamchik <an...@objectstyle.com>
Committed: Tue Oct 4 13:51:07 2016 +0300

----------------------------------------------------------------------
 .../dbsync/merge/EntityMergeSupport.java        | 54 +++++++++-----------
 .../cayenne/dbsync/merge/MergerContext.java     | 16 +++++-
 .../dbsync/merge/EntityMergeSupportIT.java      |  2 +-
 .../modeler/action/CreateObjEntityAction.java   |  4 +-
 .../dialog/objentity/EntitySyncController.java  |  6 ++-
 5 files changed, 46 insertions(+), 36 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/3a5f31d1/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/EntityMergeSupport.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/EntityMergeSupport.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/EntityMergeSupport.java
index bf54dcc..c0d46d7 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/EntityMergeSupport.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/EntityMergeSupport.java
@@ -1,22 +1,21 @@
-/*****************************************************************
- *   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
+/*
+ * 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
+ *      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.
- ****************************************************************/
-
+ *    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;
 
 import org.apache.cayenne.dba.TypesMapping;
@@ -65,15 +64,20 @@ public class EntityMergeSupport {
 
     private final ObjectNameGenerator nameGenerator;
     private final List<EntityMergeListener> listeners;
-    protected boolean removingMeaningfulFKs;
-    protected boolean removingMeaningfulPKs;
-    protected boolean usingPrimitives;
+    private final boolean removingMeaningfulFKs;
+    private final boolean removingMeaningfulPKs;
+    private final boolean usingPrimitives;
+
+    public EntityMergeSupport(ObjectNameGenerator nameGenerator,
+                              boolean removingMeaningfulPKs,
+                              boolean removingMeaningfulFKs,
+                              boolean usingPrimitives) {
 
-    public EntityMergeSupport(ObjectNameGenerator nameGenerator, boolean removingMeaningfulPKs, boolean removingMeaningfulFKs) {
         this.listeners = new ArrayList<>();
         this.nameGenerator = nameGenerator;
         this.removingMeaningfulFKs = removingMeaningfulFKs;
         this.removingMeaningfulPKs = removingMeaningfulPKs;
+        this.usingPrimitives = usingPrimitives;
 
         // will ensure that all created ObjRelationships would have
         // default delete rule
@@ -487,12 +491,4 @@ public class EntityMergeSupport {
     public boolean isUsingPrimitives() {
         return usingPrimitives;
     }
-
-    /**
-     * @param usingPrimitives
-     * @since 4.0
-     */
-    public void setUsingPrimitives(boolean usingPrimitives) {
-        this.usingPrimitives = usingPrimitives;
-    }
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/3a5f31d1/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/MergerContext.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/MergerContext.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/MergerContext.java
index 57eab3e..53c5265 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/MergerContext.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/MergerContext.java
@@ -103,6 +103,8 @@ public class MergerContext {
     public static class Builder {
 
         private MergerContext context;
+        private ObjectNameGenerator nameGenerator;
+        private boolean usingPrimitives;
 
         private Builder(DataMap dataMap) {
             this.context = new MergerContext();
@@ -126,6 +128,12 @@ public class MergerContext {
                 dataNode(new DataNode());
             }
 
+            if(nameGenerator == null) {
+                nameGenerator = new DefaultObjectNameGenerator();
+            }
+
+            context.entityMergeSupport = new EntityMergeSupport(nameGenerator, true, true, usingPrimitives);
+
             return context;
         }
 
@@ -135,8 +143,12 @@ public class MergerContext {
         }
 
         public Builder nameGenerator(ObjectNameGenerator nameGenerator) {
-            // should the last argument also be a part of the builder?
-            context.entityMergeSupport = new EntityMergeSupport(Objects.requireNonNull(nameGenerator), true, true);
+            this.nameGenerator = Objects.requireNonNull(nameGenerator);
+            return this;
+        }
+
+        public Builder usingPrimitives(boolean flag) {
+            this.usingPrimitives = flag;
             return this;
         }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/3a5f31d1/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/merge/EntityMergeSupportIT.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/merge/EntityMergeSupportIT.java b/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/merge/EntityMergeSupportIT.java
index bc24100..b47ac20 100644
--- a/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/merge/EntityMergeSupportIT.java
+++ b/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/merge/EntityMergeSupportIT.java
@@ -87,7 +87,7 @@ public class EntityMergeSupportIT extends MergeCase {
 		objEntity2.setDbEntity(dbEntity2);
 		map.addObjEntity(objEntity2);
 
-		assertTrue(new EntityMergeSupport(new DefaultObjectNameGenerator(), true, true)
+		assertTrue(new EntityMergeSupport(new DefaultObjectNameGenerator(), true, true, true)
 				.synchronizeWithDbEntities(Arrays.asList(objEntity1, objEntity2)));
 		assertNotNull(objEntity1.getAttribute("name"));
 		assertNotNull(objEntity1.getRelationship("rel1To2"));

http://git-wip-us.apache.org/repos/asf/cayenne/blob/3a5f31d1/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateObjEntityAction.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateObjEntityAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateObjEntityAction.java
index af43556..8602415 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateObjEntityAction.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateObjEntityAction.java
@@ -111,8 +111,8 @@ public class CreateObjEntityAction extends CayenneAction {
 
         dataMap.addObjEntity(entity);
 
-        // perform the merge
-        EntityMergeSupport merger = new EntityMergeSupport(new DefaultObjectNameGenerator(), true, true);
+        // TODO: Modeler-controlled defaults for all the hardcoded boolean flags here.
+        EntityMergeSupport merger = new EntityMergeSupport(new DefaultObjectNameGenerator(), true, true, true);
         merger.addEntityMergeListener(DeleteRuleUpdater.getEntityMergeListener());
         merger.synchronizeWithDbEntity(entity);
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/3a5f31d1/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/objentity/EntitySyncController.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/objentity/EntitySyncController.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/objentity/EntitySyncController.java
index ce2193e..e02080c 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/objentity/EntitySyncController.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/objentity/EntitySyncController.java
@@ -68,7 +68,8 @@ public class EntitySyncController extends CayenneController {
             namingStrategy = NameGeneratorPreferences.defaultNameGenerator();
         }
 
-        EntityMergeSupport merger = new EntityMergeSupport(namingStrategy, true, true);
+        // TODO: Modeler-controlled defaults for all the hardcoded boolean flags here.
+        EntityMergeSupport merger = new EntityMergeSupport(namingStrategy, true, true, true);
 
         // see if we need to remove meaningful attributes...
         for (ObjEntity entity : entities) {
@@ -113,7 +114,8 @@ public class EntitySyncController extends CayenneController {
         makeCloseableOnEscape();
         view.setVisible(true);
 
-        return cancel[0] ? null : new EntityMergeSupport(namingStrategy, true, removeFKs[0]);
+        // TODO: Modeler-controlled defaults for all the hardcoded boolean flags here.
+        return cancel[0] ? null : new EntityMergeSupport(namingStrategy, true, removeFKs[0], true);
     }
 
     @Override