This is an automated email from the ASF dual-hosted git repository.
ntimofeev pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cayenne.git
The following commit(s) were added to refs/heads/master by this push:
new 3405e7f79 CAY-2834 v11 upgrade handler should update
XMLPoolingDataSourceFactory package
3405e7f79 is described below
commit 3405e7f79dc65436a96be87ff6d05cf3c95155ec
Author: stariy95 <[email protected]>
AuthorDate: Mon Dec 25 15:55:02 2023 +0400
CAY-2834 v11 upgrade handler should update XMLPoolingDataSourceFactory
package
---
RELEASE-NOTES.txt | 1 +
.../project/upgrade/handlers/UpgradeHandler_V11.java | 20 ++++++++++++++++++++
.../upgrade/handlers/UpgradeHandler_V11Test.java | 6 ++++++
.../project/upgrade/handlers/cayenne-project-v10.xml | 3 ++-
.../runtime/XMLPoolingDataSourceFactory.java | 3 +--
5 files changed, 30 insertions(+), 3 deletions(-)
diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index 5a6bafb7f..b821ee904 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -54,6 +54,7 @@ CAY-2828 Rename values in
`org.apache.cayenne.configuration.Constants`
CAY-2829 Merge `BaseContext` with `DataContext` and deprecate it
CAY-2830 Cleanup `DataContext` code
CAY-2831 Upgrade Gradle to 8.5
+CAY-2834 v11 upgrade handler should update XMLPoolingDataSourceFactory package
Bug Fixes:
diff --git
a/cayenne-project/src/main/java/org/apache/cayenne/project/upgrade/handlers/UpgradeHandler_V11.java
b/cayenne-project/src/main/java/org/apache/cayenne/project/upgrade/handlers/UpgradeHandler_V11.java
index efa19727f..414befca8 100644
---
a/cayenne-project/src/main/java/org/apache/cayenne/project/upgrade/handlers/UpgradeHandler_V11.java
+++
b/cayenne-project/src/main/java/org/apache/cayenne/project/upgrade/handlers/UpgradeHandler_V11.java
@@ -71,6 +71,7 @@ public class UpgradeHandler_V11 implements UpgradeHandler {
@Override
public void processProjectDom(UpgradeUnit upgradeUnit) {
updateDomainSchemaAndVersion(upgradeUnit);
+ updateDataNodeConnectionPool(upgradeUnit);
}
@Override
@@ -167,6 +168,25 @@ public class UpgradeHandler_V11 implements UpgradeHandler {
updateTemplates(upgradeUnit);
}
+ private void updateDataNodeConnectionPool(UpgradeUnit upgradeUnit) {
+ XPath xpath = XPathFactory.newInstance().newXPath();
+ NodeList nodes;
+ try {
+ nodes = (NodeList) xpath.evaluate("/domain/node",
+ upgradeUnit.getDocument(), XPathConstants.NODESET);
+ } catch (Exception e) {
+ return;
+ }
+
+ for (int j = 0; j < nodes.getLength(); j++) {
+ Element propertyElement = (Element) nodes.item(j);
+ String factory = propertyElement.getAttribute("factory");
+
if("org.apache.cayenne.configuration.server.XMLPoolingDataSourceFactory".equals(factory))
{
+ propertyElement.setAttribute("factory",
"org.apache.cayenne.configuration.runtime.XMLPoolingDataSourceFactory");
+ }
+ }
+ }
+
private void renameQueryTemplates(UpgradeUnit upgradeUnit) {
XPath xpath = XPathFactory.newInstance().newXPath();
NodeList queryTemplates;
diff --git
a/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/handlers/UpgradeHandler_V11Test.java
b/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/handlers/UpgradeHandler_V11Test.java
index b5419295d..ad92cee79 100644
---
a/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/handlers/UpgradeHandler_V11Test.java
+++
b/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/handlers/UpgradeHandler_V11Test.java
@@ -50,6 +50,12 @@ public class UpgradeHandler_V11Test extends
BaseUpgradeHandlerTest {
assertEquals("11", root.getAttribute("project-version"));
assertEquals("http://cayenne.apache.org/schema/11/domain",
root.getAttribute("xmlns"));
assertEquals(2, root.getElementsByTagName("map").getLength());
+
+ NodeList nodes = document.getElementsByTagName("node");
+ assertEquals(1, nodes.getLength());
+
+ Element node = (Element)nodes.item(0);
+
assertEquals("org.apache.cayenne.configuration.runtime.XMLPoolingDataSourceFactory",
node.getAttribute("factory"));
}
@Test
diff --git
a/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/cayenne-project-v10.xml
b/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/cayenne-project-v10.xml
index b81eb7516..d9d556d5d 100644
---
a/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/cayenne-project-v10.xml
+++
b/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/cayenne-project-v10.xml
@@ -8,7 +8,8 @@
<map name="testProjectMap1_2" />
<node name="testProjectNode1"
- adapter="org.example.test.Adapter"
factory="org.example.test.DataSourceFactory">
+ adapter="org.example.test.Adapter"
+
factory="org.apache.cayenne.configuration.server.XMLPoolingDataSourceFactory">
<data-source>
<connectionPool min="1" max="1" />
<login />
diff --git
a/cayenne/src/main/java/org/apache/cayenne/configuration/runtime/XMLPoolingDataSourceFactory.java
b/cayenne/src/main/java/org/apache/cayenne/configuration/runtime/XMLPoolingDataSourceFactory.java
index e51520d60..bd89170b8 100644
---
a/cayenne/src/main/java/org/apache/cayenne/configuration/runtime/XMLPoolingDataSourceFactory.java
+++
b/cayenne/src/main/java/org/apache/cayenne/configuration/runtime/XMLPoolingDataSourceFactory.java
@@ -41,8 +41,7 @@ import org.slf4j.LoggerFactory;
*
* @since 3.1
*/
-// TODO: this factory does not read XML anymore, should we rename it to
-// something else?
+// TODO: this factory does not read XML anymore, should we rename it to
something else?
public class XMLPoolingDataSourceFactory implements DataSourceFactory {
private static final Logger logger =
LoggerFactory.getLogger(XMLPoolingDataSourceFactory.class);