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/11/03 17:53:31 UTC

[1/6] cayenne git commit: [CAY-2128] Modeler stored procedures are not imported

Repository: cayenne
Updated Branches:
  refs/heads/master 0e1912c20 -> 4d7433bff


[CAY-2128] Modeler stored procedures are not imported


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

Branch: refs/heads/master
Commit: 5cbbda0a56ad7833ac445d165dfdcba0b7af3585
Parents: 513acc4
Author: Nikita Timofeev <st...@gmail.com>
Authored: Wed Nov 2 15:33:32 2016 +0300
Committer: Nikita Timofeev <st...@gmail.com>
Committed: Wed Nov 2 15:33:32 2016 +0300

----------------------------------------------------------------------
 .../cayenne/dbsync/reverse/db/DbLoader.java     |  6 ++--
 .../java/org/apache/cayenne/map/Procedure.java  |  7 +++++
 .../tools/dbimport/DefaultDbImportAction.java   | 31 ++++++++++++++++++++
 3 files changed, 41 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/5cbbda0a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/db/DbLoader.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/db/DbLoader.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/db/DbLoader.java
index 7f9b780..f1fa5fd 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/db/DbLoader.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/db/DbLoader.java
@@ -446,10 +446,10 @@ public class DbLoader {
 
         try (ResultSet columnsRS = getMetaData().getProcedureColumns(catalog, schema, null, null);) {
             while (columnsRS.next()) {
-
-                String s = columnsRS.getString("PROCEDURE_SCHEM");
+                String procSchema = columnsRS.getString("PROCEDURE_SCHEM");
+                String procCatalog = columnsRS.getString("PROCEDURE_CAT");
                 String name = columnsRS.getString("PROCEDURE_NAME");
-                String key = (s == null ? "" : s + '.') + name;
+                String key = Procedure.generateFullyQualifiedName(procCatalog, procSchema, name);
                 Procedure procedure = procedures.get(key);
                 if (procedure == null) {
                     continue;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5cbbda0a/cayenne-server/src/main/java/org/apache/cayenne/map/Procedure.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/map/Procedure.java b/cayenne-server/src/main/java/org/apache/cayenne/map/Procedure.java
index d411f58..a40a22e 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/Procedure.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/map/Procedure.java
@@ -124,6 +124,13 @@ public class Procedure implements ConfigurationNode, CayenneMapEntry, XMLSeriali
      * Returns procedure name including schema and catalog, if present.
      */
     public String getFullyQualifiedName() {
+        return generateFullyQualifiedName(catalog, schema, name);
+    }
+
+    /**
+    * Utility function to generate fully qualified name for procedure
+    */
+    public static String generateFullyQualifiedName(String catalog, String schema, String name) {
         return (catalog != null ? catalog + '.' : "")
                 + (schema != null ? schema + '.' : "")
                 + name;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5cbbda0a/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 df548c3..e417f2a 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
@@ -36,12 +36,15 @@ import org.apache.cayenne.dbsync.merge.factory.MergerTokenFactoryProvider;
 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.filters.FiltersConfig;
+import org.apache.cayenne.dbsync.reverse.filters.PatternFilter;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.map.EntityResolver;
 import org.apache.cayenne.map.MapLoader;
 import org.apache.cayenne.map.ObjEntity;
 import org.apache.cayenne.map.ObjRelationship;
+import org.apache.cayenne.map.Procedure;
 import org.apache.cayenne.project.Project;
 import org.apache.cayenne.project.ProjectSaver;
 import org.apache.cayenne.resource.URLResource;
@@ -162,6 +165,7 @@ public class DefaultDbImportAction implements DbImportAction {
                 config.getNameGenerator(),
                 config.getMeaningfulPKFilter(),
                 config.isUsePrimitives());
+        hasChanges |= syncProcedures(targetDataMap, loadedFomDb, loaderConfig.getFiltersConfig());
 
         if (hasChanges) {
             saveLoaded(targetDataMap);
@@ -295,6 +299,33 @@ public class DefaultDbImportAction implements DbImportAction {
         return true;
     }
 
+    private boolean syncProcedures(DataMap targetDataMap, DataMap loadedDataMap, FiltersConfig filters) {
+        Collection<Procedure> procedures = loadedDataMap.getProcedures();
+        if (procedures.isEmpty()) {
+            return false;
+        }
+
+        boolean hasChanges = false;
+        for (Procedure procedure : procedures) {
+            PatternFilter proceduresFilter = filters.proceduresFilter(procedure.getCatalog(), procedure.getSchema());
+            if (proceduresFilter == null || !proceduresFilter.isIncluded(procedure.getName())) {
+                continue;
+            }
+
+            Procedure oldProcedure = targetDataMap.getProcedure(procedure.getName());
+            // maybe we need to compare oldProcedure's and procedure's fully qualified names?
+            if (oldProcedure != null) {
+                targetDataMap.removeProcedure(procedure.getName());
+                logger.info("Replace procedure " + procedure.getName());
+            } else {
+                logger.info("Add new procedure " + procedure.getName());
+            }
+            targetDataMap.addProcedure(procedure);
+            hasChanges = true;
+        }
+        return hasChanges;
+    }
+
     protected void saveLoaded(DataMap dataMap) throws FileNotFoundException {
         ConfigurationTree<DataMap> projectRoot = new ConfigurationTree<>(dataMap);
         Project project = new Project(projectRoot);


[6/6] cayenne git commit: Merge branch '116'

Posted by aa...@apache.org.
Merge branch '116'


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

Branch: refs/heads/master
Commit: 4d7433bff239e99089fe3c72d35f1361450a4255
Parents: 0e1912c b292c42
Author: Andrus Adamchik <an...@objectstyle.com>
Authored: Thu Nov 3 20:47:14 2016 +0300
Committer: Andrus Adamchik <an...@objectstyle.com>
Committed: Thu Nov 3 20:49:53 2016 +0300

----------------------------------------------------------------------
 .../cayenne/dbsync/reverse/db/DbLoader.java     |  6 ++--
 .../java/org/apache/cayenne/map/Procedure.java  |  7 +++++
 .../tools/dbimport/DefaultDbImportAction.java   | 31 ++++++++++++++++++++
 docs/doc/src/main/resources/RELEASE-NOTES.txt   |  1 +
 4 files changed, 42 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/4d7433bf/cayenne-tools/src/main/java/org/apache/cayenne/tools/dbimport/DefaultDbImportAction.java
----------------------------------------------------------------------
diff --cc cayenne-tools/src/main/java/org/apache/cayenne/tools/dbimport/DefaultDbImportAction.java
index 4d6fffb,e417f2a..1e681a9
--- 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
@@@ -36,7 -36,8 +36,9 @@@ import org.apache.cayenne.dbsync.merge.
  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.filters.CatalogFilter;
+ import org.apache.cayenne.dbsync.reverse.filters.FiltersConfig;
+ import org.apache.cayenne.dbsync.reverse.filters.PatternFilter;
  import org.apache.cayenne.di.Inject;
  import org.apache.cayenne.map.DataMap;
  import org.apache.cayenne.map.EntityResolver;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/4d7433bf/docs/doc/src/main/resources/RELEASE-NOTES.txt
----------------------------------------------------------------------


[4/6] cayenne git commit: [CAY-2128] Modeler stored procedures are not imported

Posted by aa...@apache.org.
[CAY-2128] Modeler stored procedures are not imported


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

Branch: refs/heads/master
Commit: 45788d3196099786b382b522d937c41b94fcb7d2
Parents: 988835a
Author: Nikita Timofeev <st...@gmail.com>
Authored: Wed Nov 2 15:35:23 2016 +0300
Committer: Nikita Timofeev <st...@gmail.com>
Committed: Wed Nov 2 16:00:38 2016 +0300

----------------------------------------------------------------------
 docs/doc/src/main/resources/RELEASE-NOTES.txt | 1 +
 1 file changed, 1 insertion(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/45788d31/docs/doc/src/main/resources/RELEASE-NOTES.txt
----------------------------------------------------------------------
diff --git a/docs/doc/src/main/resources/RELEASE-NOTES.txt b/docs/doc/src/main/resources/RELEASE-NOTES.txt
index 59845ad..a8b4f71 100644
--- a/docs/doc/src/main/resources/RELEASE-NOTES.txt
+++ b/docs/doc/src/main/resources/RELEASE-NOTES.txt
@@ -58,6 +58,7 @@ CAY-2119 ProjectUpgrader test failure (Windows)
 CAY-2122 Vertical Inheritance: Cannot Insert Record For Implementing Class with Attribute And Relationship
 CAY-2125 SchemaUpdateStrategy doesn't work with multiple DataNodes
 CAY-2126 Modeler cannot upgrade project from v7 to v9
+CAY-2128 Modeler stored procedures are not imported
 
 ----------------------------------
 Release: 4.0.M3


[2/6] cayenne git commit: [CAY-2128] Modeler stored procedures are not imported

Posted by aa...@apache.org.
[CAY-2128] Modeler stored procedures are not imported


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

Branch: refs/heads/master
Commit: c80ab6e3272e3e787348fa158d768336320a8196
Parents: 5cbbda0
Author: Nikita Timofeev <st...@gmail.com>
Authored: Wed Nov 2 15:35:23 2016 +0300
Committer: Nikita Timofeev <st...@gmail.com>
Committed: Wed Nov 2 15:35:23 2016 +0300

----------------------------------------------------------------------
 docs/doc/src/main/resources/RELEASE-NOTES.txt | 1 +
 1 file changed, 1 insertion(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/c80ab6e3/docs/doc/src/main/resources/RELEASE-NOTES.txt
----------------------------------------------------------------------
diff --git a/docs/doc/src/main/resources/RELEASE-NOTES.txt b/docs/doc/src/main/resources/RELEASE-NOTES.txt
index de5376d..16eb9da 100644
--- a/docs/doc/src/main/resources/RELEASE-NOTES.txt
+++ b/docs/doc/src/main/resources/RELEASE-NOTES.txt
@@ -57,6 +57,7 @@ CAY-2110 Obfuscated exception when processing iterated results
 CAY-2119 ProjectUpgrader test failure (Windows)
 CAY-2122 Vertical Inheritance: Cannot Insert Record For Implementing Class with Attribute And Relationship
 CAY-2125 SchemaUpdateStrategy doesn't work with multiple DataNodes
+CAY-2128 Modeler stored procedures are not imported
 
 ----------------------------------
 Release: 4.0.M3


[3/6] cayenne git commit: [CAY-2128] Modeler stored procedures are not imported

Posted by aa...@apache.org.
[CAY-2128] Modeler stored procedures are not imported


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

Branch: refs/heads/master
Commit: 988835afe6c102bd87e96d5641fe9cc2ba863f83
Parents: ebeb86f
Author: Nikita Timofeev <st...@gmail.com>
Authored: Wed Nov 2 15:33:32 2016 +0300
Committer: Nikita Timofeev <st...@gmail.com>
Committed: Wed Nov 2 15:59:01 2016 +0300

----------------------------------------------------------------------
 .../cayenne/dbsync/reverse/db/DbLoader.java     |  6 ++--
 .../java/org/apache/cayenne/map/Procedure.java  |  7 +++++
 .../tools/dbimport/DefaultDbImportAction.java   | 31 ++++++++++++++++++++
 3 files changed, 41 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/988835af/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/db/DbLoader.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/db/DbLoader.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/db/DbLoader.java
index 89f5f5e..9e447c6 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/db/DbLoader.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/db/DbLoader.java
@@ -446,10 +446,10 @@ public class DbLoader {
 
         try (ResultSet columnsRS = getMetaData().getProcedureColumns(catalog, schema, null, null);) {
             while (columnsRS.next()) {
-
-                String s = columnsRS.getString("PROCEDURE_SCHEM");
+                String procSchema = columnsRS.getString("PROCEDURE_SCHEM");
+                String procCatalog = columnsRS.getString("PROCEDURE_CAT");
                 String name = columnsRS.getString("PROCEDURE_NAME");
-                String key = (s == null ? "" : s + '.') + name;
+                String key = Procedure.generateFullyQualifiedName(procCatalog, procSchema, name);
                 Procedure procedure = procedures.get(key);
                 if (procedure == null) {
                     continue;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/988835af/cayenne-server/src/main/java/org/apache/cayenne/map/Procedure.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/map/Procedure.java b/cayenne-server/src/main/java/org/apache/cayenne/map/Procedure.java
index d411f58..a40a22e 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/Procedure.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/map/Procedure.java
@@ -124,6 +124,13 @@ public class Procedure implements ConfigurationNode, CayenneMapEntry, XMLSeriali
      * Returns procedure name including schema and catalog, if present.
      */
     public String getFullyQualifiedName() {
+        return generateFullyQualifiedName(catalog, schema, name);
+    }
+
+    /**
+    * Utility function to generate fully qualified name for procedure
+    */
+    public static String generateFullyQualifiedName(String catalog, String schema, String name) {
         return (catalog != null ? catalog + '.' : "")
                 + (schema != null ? schema + '.' : "")
                 + name;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/988835af/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 df548c3..e417f2a 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
@@ -36,12 +36,15 @@ import org.apache.cayenne.dbsync.merge.factory.MergerTokenFactoryProvider;
 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.filters.FiltersConfig;
+import org.apache.cayenne.dbsync.reverse.filters.PatternFilter;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.map.EntityResolver;
 import org.apache.cayenne.map.MapLoader;
 import org.apache.cayenne.map.ObjEntity;
 import org.apache.cayenne.map.ObjRelationship;
+import org.apache.cayenne.map.Procedure;
 import org.apache.cayenne.project.Project;
 import org.apache.cayenne.project.ProjectSaver;
 import org.apache.cayenne.resource.URLResource;
@@ -162,6 +165,7 @@ public class DefaultDbImportAction implements DbImportAction {
                 config.getNameGenerator(),
                 config.getMeaningfulPKFilter(),
                 config.isUsePrimitives());
+        hasChanges |= syncProcedures(targetDataMap, loadedFomDb, loaderConfig.getFiltersConfig());
 
         if (hasChanges) {
             saveLoaded(targetDataMap);
@@ -295,6 +299,33 @@ public class DefaultDbImportAction implements DbImportAction {
         return true;
     }
 
+    private boolean syncProcedures(DataMap targetDataMap, DataMap loadedDataMap, FiltersConfig filters) {
+        Collection<Procedure> procedures = loadedDataMap.getProcedures();
+        if (procedures.isEmpty()) {
+            return false;
+        }
+
+        boolean hasChanges = false;
+        for (Procedure procedure : procedures) {
+            PatternFilter proceduresFilter = filters.proceduresFilter(procedure.getCatalog(), procedure.getSchema());
+            if (proceduresFilter == null || !proceduresFilter.isIncluded(procedure.getName())) {
+                continue;
+            }
+
+            Procedure oldProcedure = targetDataMap.getProcedure(procedure.getName());
+            // maybe we need to compare oldProcedure's and procedure's fully qualified names?
+            if (oldProcedure != null) {
+                targetDataMap.removeProcedure(procedure.getName());
+                logger.info("Replace procedure " + procedure.getName());
+            } else {
+                logger.info("Add new procedure " + procedure.getName());
+            }
+            targetDataMap.addProcedure(procedure);
+            hasChanges = true;
+        }
+        return hasChanges;
+    }
+
     protected void saveLoaded(DataMap dataMap) throws FileNotFoundException {
         ConfigurationTree<DataMap> projectRoot = new ConfigurationTree<>(dataMap);
         Project project = new Project(projectRoot);


[5/6] cayenne git commit: Merge branch 'modeler-reengineering-stored-procedures-fix' of github.com:stariy95/cayenne into modeler-reengineering-stored-procedures-fix

Posted by aa...@apache.org.
Merge branch 'modeler-reengineering-stored-procedures-fix' of github.com:stariy95/cayenne into modeler-reengineering-stored-procedures-fix


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

Branch: refs/heads/master
Commit: b292c42c7886373c802549d2aebe9710d1d57583
Parents: 45788d3 c80ab6e
Author: Nikita Timofeev <st...@gmail.com>
Authored: Wed Nov 2 16:04:08 2016 +0300
Committer: Nikita Timofeev <st...@gmail.com>
Committed: Wed Nov 2 16:04:08 2016 +0300

----------------------------------------------------------------------

----------------------------------------------------------------------