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/11/24 14:47:14 UTC

[1/2] cayenne git commit: CAY-2148 Failure upgrading from 3.1 to M4 Fix notes: this is a hot-fix for exact problem converting queries from v6 directly to v9 format. Actually whole upgrade system should be redesigned, see some thoughts at https://issues.a

Repository: cayenne
Updated Branches:
  refs/heads/master ac1c8c5d7 -> 00b8d3204


CAY-2148
Failure upgrading from 3.1 to M4
Fix notes: this is a hot-fix for exact problem converting queries from v6 directly to v9 format.
Actually whole upgrade system should be redesigned, see some thoughts at https://issues.apache.org/jira/browse/CAY-2152


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

Branch: refs/heads/master
Commit: 7cfd28624c19a76907cdc9e73a509b0929ba12d8
Parents: f527275
Author: Nikita Timofeev <st...@gmail.com>
Authored: Wed Nov 23 14:45:38 2016 +0300
Committer: Nikita Timofeev <st...@gmail.com>
Committed: Wed Nov 23 14:45:38 2016 +0300

----------------------------------------------------------------------
 .../project/upgrade/v8/UpgradeHandler_V8.java   |  3 +++
 .../java/org/apache/cayenne/map/MapLoader.java  |  8 ++++--
 .../cayenne/map/QueryDescriptorLoader.java      | 26 ++++++++++++++++++++
 docs/doc/src/main/resources/RELEASE-NOTES.txt   |  1 +
 4 files changed, 36 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/7cfd2862/cayenne-project/src/main/java/org/apache/cayenne/project/upgrade/v8/UpgradeHandler_V8.java
----------------------------------------------------------------------
diff --git a/cayenne-project/src/main/java/org/apache/cayenne/project/upgrade/v8/UpgradeHandler_V8.java b/cayenne-project/src/main/java/org/apache/cayenne/project/upgrade/v8/UpgradeHandler_V8.java
index 2782bf5..2e39599 100644
--- a/cayenne-project/src/main/java/org/apache/cayenne/project/upgrade/v8/UpgradeHandler_V8.java
+++ b/cayenne-project/src/main/java/org/apache/cayenne/project/upgrade/v8/UpgradeHandler_V8.java
@@ -113,6 +113,9 @@ public class UpgradeHandler_V8 extends BaseUpgradeHandler {
                 for (int j = 0; j < queryNodes.getLength(); j++) {
                     Element queryElement = (Element) queryNodes.item(j);
                     String factory = queryElement.getAttribute("factory");
+                    if(factory == null || factory.isEmpty()) {
+                        continue;
+                    }
 
                     String queryType;
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/7cfd2862/cayenne-server/src/main/java/org/apache/cayenne/map/MapLoader.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/map/MapLoader.java b/cayenne-server/src/main/java/org/apache/cayenne/map/MapLoader.java
index f3164ab..64376f4 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/MapLoader.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/map/MapLoader.java
@@ -1029,8 +1029,12 @@ public class MapLoader extends DefaultHandler {
 		this.queryBuilder = new QueryDescriptorLoader();
 
 		String type = attributes.getValue("", "type");
-
-		queryBuilder.setQueryType(type);
+		// Legacy format support (v7 and older)
+		if(type == null) {
+			queryBuilder.setLegacyFactory(attributes.getValue("", "factory"));
+		} else {
+			queryBuilder.setQueryType(type);
+		}
 
 		String rootType = attributes.getValue("", "root");
 		String rootName = attributes.getValue("", "root-name");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/7cfd2862/cayenne-server/src/main/java/org/apache/cayenne/map/QueryDescriptorLoader.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/map/QueryDescriptorLoader.java b/cayenne-server/src/main/java/org/apache/cayenne/map/QueryDescriptorLoader.java
index 83c7fdb..90bcfc7 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/QueryDescriptorLoader.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/map/QueryDescriptorLoader.java
@@ -19,6 +19,7 @@
 package org.apache.cayenne.map;
 
 import org.apache.cayenne.CayenneRuntimeException;
+import org.apache.cayenne.ConfigurationException;
 import org.apache.cayenne.exp.Expression;
 import org.apache.cayenne.query.*;
 
@@ -89,6 +90,31 @@ public class QueryDescriptorLoader {
         this.name = name;
     }
 
+    /**
+     * It's better be handled by project upgrade handler and actually it is.
+     * But upgrade logic is faulty when project is several versions away
+     * and can't be changed without complete upgrade system rewrite
+     * @param factory old style query factory class
+     */
+    void setLegacyFactory(String factory) {
+        switch (factory) {
+            case "org.apache.cayenne.map.SelectQueryBuilder":
+                queryType = QueryDescriptor.SELECT_QUERY;
+                break;
+            case "org.apache.cayenne.map.SQLTemplateBuilder":
+                queryType = QueryDescriptor.SQL_TEMPLATE;
+                break;
+            case "org.apache.cayenne.map.EjbqlBuilder":
+                queryType = QueryDescriptor.EJBQL_QUERY;
+                break;
+            case "org.apache.cayenne.map.ProcedureQueryBuilder":
+                queryType = QueryDescriptor.PROCEDURE_QUERY;
+                break;
+            default:
+                throw new ConfigurationException("Unknown query factory: " + factory);
+        }
+    }
+
     void setQueryType(String queryType) {
         this.queryType = queryType;
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/7cfd2862/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 b6e2f8b..de69496 100644
--- a/docs/doc/src/main/resources/RELEASE-NOTES.txt
+++ b/docs/doc/src/main/resources/RELEASE-NOTES.txt
@@ -69,6 +69,7 @@ CAY-2131 Modeler NullPointerException in reverse engineering when importing diff
 CAY-2138 NVARCHAR, LONGNVARCHAR and NCLOB types are missing from Firebird types.xml
 CAY-2143 NPE in BaseSchemaUpdateStrategy
 CAY-2144 cdbimport always fails for databases which don't support catalogs
+CAY-2148 Failure upgrading from 3.1 to M4
 
 ----------------------------------
 Release: 4.0.M3


[2/2] cayenne git commit: Merge branch '140'

Posted by sk...@apache.org.
Merge branch '140'


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

Branch: refs/heads/master
Commit: 00b8d32046a68c6880e1c55f998d0e162fa9a809
Parents: ac1c8c5 7cfd286
Author: Savva Kolbachev <s....@gmail.com>
Authored: Thu Nov 24 17:46:56 2016 +0300
Committer: Savva Kolbachev <s....@gmail.com>
Committed: Thu Nov 24 17:46:56 2016 +0300

----------------------------------------------------------------------
 .../project/upgrade/v8/UpgradeHandler_V8.java   |  3 +++
 .../java/org/apache/cayenne/map/MapLoader.java  |  8 ++++--
 .../cayenne/map/QueryDescriptorLoader.java      | 26 ++++++++++++++++++++
 docs/doc/src/main/resources/RELEASE-NOTES.txt   |  1 +
 4 files changed, 36 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/00b8d320/docs/doc/src/main/resources/RELEASE-NOTES.txt
----------------------------------------------------------------------
diff --cc docs/doc/src/main/resources/RELEASE-NOTES.txt
index 3eddba9,de69496..7898cc9
--- a/docs/doc/src/main/resources/RELEASE-NOTES.txt
+++ b/docs/doc/src/main/resources/RELEASE-NOTES.txt
@@@ -69,7 -69,7 +69,8 @@@ CAY-2131 Modeler NullPointerException i
  CAY-2138 NVARCHAR, LONGNVARCHAR and NCLOB types are missing from Firebird types.xml
  CAY-2143 NPE in BaseSchemaUpdateStrategy
  CAY-2144 cdbimport always fails for databases which don't support catalogs
+ CAY-2148 Failure upgrading from 3.1 to M4
 +CAY-2150 UI bug: PK generation custom sequence is getting reset
  
  ----------------------------------
  Release: 4.0.M3