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
----------------------------------------------------------------------
----------------------------------------------------------------------