This is an automated email from the ASF dual-hosted git repository.

asf-gitbox-commits pushed a commit to branch past-M2
in repository https://gitbox.apache.org/repos/asf/cayenne.git

commit 987406f349b43faec30f1cc5326821d63e799e31
Author: Andrus Adamchik <[email protected]>
AuthorDate: Sun May 31 09:47:40 2026 -0400

    CAY-2955 Get rid of QueryEngine abstraction
    
    actually removing DataDomain.performQuery(..)... No need to carry it around
---
 .../java/org/apache/cayenne/access/DataDomain.java |  14 --
 .../access/DataDomainLegacyQueryAction.java        | 194 ---------------------
 .../sqltemplate/directive/ResultDirectiveIT.java   |  15 +-
 3 files changed, 7 insertions(+), 216 deletions(-)

diff --git a/cayenne/src/main/java/org/apache/cayenne/access/DataDomain.java 
b/cayenne/src/main/java/org/apache/cayenne/access/DataDomain.java
index 4fe3fc292..e4d33513a 100644
--- a/cayenne/src/main/java/org/apache/cayenne/access/DataDomain.java
+++ b/cayenne/src/main/java/org/apache/cayenne/access/DataDomain.java
@@ -42,7 +42,6 @@ import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.map.EntityResolver;
 import org.apache.cayenne.map.EntitySorter;
 import org.apache.cayenne.query.Query;
-import org.apache.cayenne.query.QueryChain;
 import org.apache.cayenne.tx.BaseTransaction;
 import org.apache.cayenne.tx.Transaction;
 import org.apache.cayenne.tx.TransactionManager;
@@ -528,19 +527,6 @@ public class DataDomain implements DataChannel {
         }
     }
 
-    /**
-     * Routes queries to appropriate DataNodes for execution
-     *
-     * @deprecated use {@link #onQuery(ObjectContext, Query)} instead.
-     */
-    @Deprecated(since = "5.0", forRemoval = true)
-    public void performQueries(Collection<? extends Query> queries, 
OperationObserver callback) {
-        transactionManager.performInTransaction(() -> {
-            new DataDomainLegacyQueryAction(DataDomain.this, new 
QueryChain(queries), callback).execute();
-            return null;
-        });
-    }
-
     /**
      * Runs query returning generic QueryResponse.
      *
diff --git 
a/cayenne/src/main/java/org/apache/cayenne/access/DataDomainLegacyQueryAction.java
 
b/cayenne/src/main/java/org/apache/cayenne/access/DataDomainLegacyQueryAction.java
deleted file mode 100644
index f8cd0d290..000000000
--- 
a/cayenne/src/main/java/org/apache/cayenne/access/DataDomainLegacyQueryAction.java
+++ /dev/null
@@ -1,194 +0,0 @@
-/*****************************************************************
- *   Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *    https://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- ****************************************************************/
-
-package org.apache.cayenne.access;
-
-import org.apache.cayenne.CayenneRuntimeException;
-import org.apache.cayenne.ObjectId;
-import org.apache.cayenne.ResultIterator;
-import org.apache.cayenne.map.DataMap;
-import org.apache.cayenne.query.Query;
-import org.apache.cayenne.query.QueryMetadata;
-import org.apache.cayenne.query.QueryRouter;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-@Deprecated
-class DataDomainLegacyQueryAction implements QueryRouter, OperationObserver {
-
-    DataDomain domain;
-    OperationObserver callback;
-    Query query;
-    QueryMetadata metadata;
-
-    Map<DataNode, List<Query>> queriesByNode;
-    Map<Query, Query> queriesByExecutedQueries;
-
-    DataDomainLegacyQueryAction(DataDomain domain, Query query, 
OperationObserver callback) {
-        this.domain = domain;
-        this.query = query;
-        this.metadata = query.getMetaData(domain.getEntityResolver());
-        this.callback = callback;
-    }
-
-    /*
-     * Gets response from the underlying DataNodes.
-     */
-    final void execute() {
-
-        // reset
-        queriesByNode = null;
-        queriesByExecutedQueries = null;
-
-        // categorize queries by node and by "executable" query...
-        query.route(this, domain.getEntityResolver(), null);
-
-        // run categorized queries
-        if (queriesByNode != null) {
-            for (final Map.Entry<DataNode, List<Query>> entry : queriesByNode
-                    .entrySet()) {
-                DataNode nextNode = entry.getKey();
-                Collection<Query> nodeQueries = entry.getValue();
-                nextNode.performQueries(nodeQueries, this);
-            }
-        }
-    }
-
-    @Override
-    public void route(DataNode node, Query query, Query substitutedQuery) {
-
-        List<Query> queries = null;
-        if (queriesByNode == null) {
-            queriesByNode = new HashMap<>();
-        }
-        else {
-            queries = queriesByNode.get(node);
-        }
-
-        if (queries == null) {
-            queries = new ArrayList<>(5);
-            queriesByNode.put(node, queries);
-        }
-
-        queries.add(query);
-
-        // handle case when routing resuled in an "executable" query different 
from the
-        // original query.
-        if (substitutedQuery != null && substitutedQuery != query) {
-
-            if (queriesByExecutedQueries == null) {
-                queriesByExecutedQueries = new HashMap<>();
-            }
-
-            queriesByExecutedQueries.put(query, substitutedQuery);
-        }
-    }
-
-    @Override
-    public DataNode nodeForDataMap(DataMap map) {
-        if (map == null) {
-            throw new NullPointerException("Null DataMap, can't determine 
DataNode.");
-        }
-
-        DataNode node = domain.lookupDataNode(map);
-
-        if (node == null) {
-            throw new CayenneRuntimeException("No DataNode exists for DataMap 
%s", map);
-        }
-
-        return node;
-    }
-    
-    /**
-     * @since 5.0
-     */
-    @Override
-    public DataNode nodeForName(String name) {
-
-        DataNode node;
-
-        if (name != null) {
-            node = domain.getDataNode(name);
-            if (node == null) {
-                throw new CayenneRuntimeException("No DataNode exists for name 
%s", name);
-            }
-        } else {
-            node = domain.getDefaultNode();
-            if (node == null) {
-                throw new CayenneRuntimeException("No default DataNode 
exists.");
-            }
-        }
-
-        return node;
-    }
-
-    @Override
-    public void nextCount(Query query, int resultCount) {
-        callback.nextCount(queryForExecutedQuery(query), resultCount);
-    }
-
-    @Override
-    public void nextBatchCount(Query query, int[] resultCount) {
-        callback.nextBatchCount(queryForExecutedQuery(query), resultCount);
-    }
-
-    @Override
-    public void nextRows(Query query, List<?> dataRows) {
-        callback.nextRows(queryForExecutedQuery(query), dataRows);
-    }
-
-    @Override
-    public void nextRows(Query q, ResultIterator it) {
-        callback.nextRows(queryForExecutedQuery(q), it);
-    }
-
-    @Override
-    public void nextGeneratedRows(Query query, ResultIterator<?> keys, 
List<ObjectId> idsToUpdate) {
-        callback.nextGeneratedRows(queryForExecutedQuery(query), keys, 
idsToUpdate);
-    }
-
-    @Override
-    public void nextQueryException(Query query, Exception ex) {
-        callback.nextQueryException(queryForExecutedQuery(query), ex);
-    }
-
-    @Override
-    public void nextGlobalException(Exception e) {
-        callback.nextGlobalException(e);
-    }
-
-    @Override
-    public boolean isIteratedResult() {
-        return callback.isIteratedResult();
-    }
-
-    Query queryForExecutedQuery(Query executedQuery) {
-        Query q = null;
-
-        if (queriesByExecutedQueries != null) {
-            q = queriesByExecutedQueries.get(executedQuery);
-        }
-
-        return q != null ? q : executedQuery;
-    }
-}
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/access/translator/sqltemplate/directive/ResultDirectiveIT.java
 
b/cayenne/src/test/java/org/apache/cayenne/access/translator/sqltemplate/directive/ResultDirectiveIT.java
index 387f5881d..76c3b504b 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/access/translator/sqltemplate/directive/ResultDirectiveIT.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/access/translator/sqltemplate/directive/ResultDirectiveIT.java
@@ -18,11 +18,6 @@
  ****************************************************************/
 package org.apache.cayenne.access.translator.sqltemplate.directive;
 
-import java.sql.SQLException;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-
 import org.apache.cayenne.access.MockOperationObserver;
 import org.apache.cayenne.query.CapsStrategy;
 import org.apache.cayenne.query.SQLTemplate;
@@ -34,11 +29,15 @@ import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.RegisterExtension;
 
+import java.sql.SQLException;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 /**
- * Test for Result directive to check if we could use ResultDirective
- * optionally.
+ * Test for Result directive to check if we could use ResultDirective 
optionally.
  */
 public class ResultDirectiveIT {
 
@@ -96,7 +95,7 @@ public class ResultDirectiveIT {
                SQLTemplate template = new SQLTemplate(Artist.class, sql);
                template.setColumnNamesCapitalization(CapsStrategy.UPPER);
                MockOperationObserver observer = new MockOperationObserver();
-               
runtime.getDataDomain().performQueries(Collections.singletonList(template), 
observer);
+               
runtime.getDataDomain().getDefaultNode().performQueries(Collections.singletonList(template),
 observer);
 
                @SuppressWarnings("unchecked")
                List<Map<String, Object>> data = 
observer.rowsForQuery(template);

Reply via email to