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