This is an automated email from the ASF dual-hosted git repository. asf-gitbox-commits pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/cayenne.git
commit 7704285eff2852f783ff4f983dea4e1dcb392a91 Author: Andrus Adamchik <[email protected]> AuthorDate: Thu May 14 10:40:24 2026 -0400 tests cleanup - unwinding DI --- .../org/apache/cayenne/unit/CayenneTestsEnv.java | 35 ++++++---- .../org/apache/cayenne/unit/RuntimeTelemetry.java | 5 +- ...DataNode.java => RuntimeTelemetryDataNode.java} | 6 +- .../unit/runtime/CayenneTestDataNodeFactory.java | 74 ---------------------- 4 files changed, 28 insertions(+), 92 deletions(-) diff --git a/cayenne/src/test/java/org/apache/cayenne/unit/CayenneTestsEnv.java b/cayenne/src/test/java/org/apache/cayenne/unit/CayenneTestsEnv.java index 431f5bee1..53903f993 100644 --- a/cayenne/src/test/java/org/apache/cayenne/unit/CayenneTestsEnv.java +++ b/cayenne/src/test/java/org/apache/cayenne/unit/CayenneTestsEnv.java @@ -21,12 +21,15 @@ package org.apache.cayenne.unit; import org.apache.cayenne.access.DataContext; import org.apache.cayenne.access.DataDomain; import org.apache.cayenne.access.DataNode; +import org.apache.cayenne.access.dbsync.SkipSchemaUpdateStrategy; +import org.apache.cayenne.access.jdbc.SQLTemplateProcessor; +import org.apache.cayenne.access.jdbc.reader.RowReaderFactory; +import org.apache.cayenne.access.translator.batch.BatchTranslatorFactory; +import org.apache.cayenne.access.translator.select.SelectTranslatorFactory; import org.apache.cayenne.configuration.Constants; import org.apache.cayenne.configuration.DataMapLoader; -import org.apache.cayenne.configuration.DataNodeDescriptor; import org.apache.cayenne.configuration.DataSourceDescriptor; import org.apache.cayenne.configuration.runtime.CoreModule; -import org.apache.cayenne.configuration.runtime.DataNodeFactory; import org.apache.cayenne.dba.DbAdapter; import org.apache.cayenne.di.AdhocObjectFactory; import org.apache.cayenne.di.Binder; @@ -44,7 +47,6 @@ import org.apache.cayenne.unit.dba.UnitDbAdapter; import org.apache.cayenne.unit.runtime.AllTestsSchemaManager; import org.apache.cayenne.unit.runtime.DbCleaner; import org.apache.cayenne.unit.runtime.FlavoredDbHelper; -import org.apache.cayenne.unit.runtime.CayenneTestDataNodeFactory; import org.apache.cayenne.unit.runtime.RuntimeCaseDataSourceFactory; import org.apache.cayenne.unit.runtime.RuntimeCaseModule; import org.apache.cayenne.unit.util.SQLTemplateCustomizer; @@ -176,18 +178,28 @@ public class CayenneTestsEnv implements BeforeEachCallback, AfterEachCallback { UnitDbAdapter unitDbAdapter = unitDbAdapter(); DataDomain domain = runtime.getDataDomain(); - DataNodeFactory dataNodeFactory = runtime.getInjector().getInstance(DataNodeFactory.class); + Injector runtimeInjector = runtime.getInjector(); + + JdbcEventLogger jdbcEventLogger = runtimeInjector.getInstance(JdbcEventLogger.class); + RowReaderFactory rowReaderFactory = runtimeInjector.getInstance(RowReaderFactory.class); + BatchTranslatorFactory batchTranslatorFactory = runtimeInjector.getInstance(BatchTranslatorFactory.class); + SelectTranslatorFactory selectTranslatorFactory = runtimeInjector.getInstance(SelectTranslatorFactory.class); + SQLTemplateProcessor sqlTemplateProcessor = runtimeInjector.getInstance(SQLTemplateProcessor.class); + DbAdapter adapter = runtimeInjector.getInstance(DbAdapter.class); DataNode lastNode = null; for (DataMap dataMap : domain.getDataMaps()) { - DataNodeDescriptor descriptor = new DataNodeDescriptor(dataMap.getName()); + DataNode node = new RuntimeTelemetryDataNode(dataMap.getName()); + + node.setJdbcEventLogger(jdbcEventLogger); + node.setRowReaderFactory(rowReaderFactory); + node.setBatchTranslatorFactory(batchTranslatorFactory); + node.setSelectTranslatorFactory(selectTranslatorFactory); + node.setDataSource(DATA_SOURCE_FACTORY.getDataSource(dataMap.getName())); + node.setAdapter(adapter); + node.setSchemaUpdateStrategy(new SkipSchemaUpdateStrategy()); + node.setSqlTemplateProcessor(sqlTemplateProcessor); - DataNode node; - try { - node = dataNodeFactory.createDataNode(descriptor); - } catch (Exception e) { - throw new RuntimeException("Failed to create test DataNode for map " + dataMap.getName(), e); - } node.addDataMap(dataMap); for (Procedure proc : dataMap.getProcedures()) { @@ -284,7 +296,6 @@ public class CayenneTestsEnv implements BeforeEachCallback, AfterEachCallback { // a fresh DbAdapter per call — RuntimeCaseDbAdapterProvider is unscoped in the test injector binder.bind(DbAdapter.class).toProviderInstance(() -> INJECTOR.getInstance(DbAdapter.class)); - binder.bind(DataNodeFactory.class).to(CayenneTestDataNodeFactory.class); binder.bind(UnitDbAdapter.class).toInstance(INJECTOR.getInstance(UnitDbAdapter.class)); binder.bind(RuntimeCaseDataSourceFactory.class).toInstance(DATA_SOURCE_FACTORY); diff --git a/cayenne/src/test/java/org/apache/cayenne/unit/RuntimeTelemetry.java b/cayenne/src/test/java/org/apache/cayenne/unit/RuntimeTelemetry.java index 2f94d02fa..19ab38458 100644 --- a/cayenne/src/test/java/org/apache/cayenne/unit/RuntimeTelemetry.java +++ b/cayenne/src/test/java/org/apache/cayenne/unit/RuntimeTelemetry.java @@ -20,7 +20,6 @@ package org.apache.cayenne.unit; import org.apache.cayenne.access.DataNode; import org.apache.cayenne.runtime.CayenneRuntime; -import org.apache.cayenne.unit.runtime.CayenneTestDataNode; import java.util.Collection; @@ -38,7 +37,7 @@ class RuntimeTelemetry { } public static int runWithQueryCounter(CayenneRuntime runtime, Runnable task) { - CayenneTestDataNode node = (CayenneTestDataNode) runtime.getDataDomain().getDataNodes().iterator().next(); + RuntimeTelemetryDataNode node = (RuntimeTelemetryDataNode) runtime.getDataDomain().getDataNodes().iterator().next(); int start = node.getQueriesCount(); int end; @@ -52,7 +51,7 @@ class RuntimeTelemetry { private static void setBlockingQueries(Collection<DataNode> nodes, boolean blocking) { for (DataNode node : nodes) { - ((CayenneTestDataNode) node).setBlockingQueries(blocking); + ((RuntimeTelemetryDataNode) node).setBlockingQueries(blocking); } } } diff --git a/cayenne/src/test/java/org/apache/cayenne/unit/runtime/CayenneTestDataNode.java b/cayenne/src/test/java/org/apache/cayenne/unit/RuntimeTelemetryDataNode.java similarity index 93% rename from cayenne/src/test/java/org/apache/cayenne/unit/runtime/CayenneTestDataNode.java rename to cayenne/src/test/java/org/apache/cayenne/unit/RuntimeTelemetryDataNode.java index 29e7f1956..7c58806c7 100644 --- a/cayenne/src/test/java/org/apache/cayenne/unit/runtime/CayenneTestDataNode.java +++ b/cayenne/src/test/java/org/apache/cayenne/unit/RuntimeTelemetryDataNode.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. ****************************************************************/ -package org.apache.cayenne.unit.runtime; +package org.apache.cayenne.unit; import org.apache.cayenne.access.DataNode; import org.apache.cayenne.access.OperationObserver; @@ -26,12 +26,12 @@ import org.junit.jupiter.api.Assertions; import java.util.Collection; import java.util.concurrent.atomic.AtomicInteger; -public class CayenneTestDataNode extends DataNode { +class RuntimeTelemetryDataNode extends DataNode { private final AtomicInteger queryCounter = new AtomicInteger(); private volatile boolean blockingQueries; - public CayenneTestDataNode(String name) { + public RuntimeTelemetryDataNode(String name) { super(name); } diff --git a/cayenne/src/test/java/org/apache/cayenne/unit/runtime/CayenneTestDataNodeFactory.java b/cayenne/src/test/java/org/apache/cayenne/unit/runtime/CayenneTestDataNodeFactory.java deleted file mode 100644 index 321ffc3a2..000000000 --- a/cayenne/src/test/java/org/apache/cayenne/unit/runtime/CayenneTestDataNodeFactory.java +++ /dev/null @@ -1,74 +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.unit.runtime; - -import org.apache.cayenne.access.DataNode; -import org.apache.cayenne.access.dbsync.SkipSchemaUpdateStrategy; -import org.apache.cayenne.access.jdbc.SQLTemplateProcessor; -import org.apache.cayenne.access.jdbc.reader.RowReaderFactory; -import org.apache.cayenne.access.translator.batch.BatchTranslatorFactory; -import org.apache.cayenne.access.translator.select.SelectTranslatorFactory; -import org.apache.cayenne.configuration.DataNodeDescriptor; -import org.apache.cayenne.configuration.runtime.DataNodeFactory; -import org.apache.cayenne.dba.DbAdapter; -import org.apache.cayenne.di.Inject; -import org.apache.cayenne.log.JdbcEventLogger; - -public class CayenneTestDataNodeFactory implements DataNodeFactory { - - @Inject - private JdbcEventLogger jdbcEventLogger; - - @Inject - protected RowReaderFactory rowReaderFactory; - - @Inject - protected BatchTranslatorFactory batchTranslatorFactory; - - @Inject - protected SelectTranslatorFactory selectTranslatorFactory; - - @Inject - private RuntimeCaseDataSourceFactory dataSourceFactory; - - @Inject - private DbAdapter adapter; - - @Inject - protected SQLTemplateProcessor sqlTemplateProcessor; - - @Override - public DataNode createDataNode(DataNodeDescriptor nodeDescriptor) { - DataNode dataNode = new CayenneTestDataNode(nodeDescriptor.getName()); - - dataNode.setJdbcEventLogger(jdbcEventLogger); - dataNode.setRowReaderFactory(rowReaderFactory); - dataNode.setBatchTranslatorFactory(batchTranslatorFactory); - dataNode.setSelectTranslatorFactory(selectTranslatorFactory); - - // shared or dedicated DataSources can be mapped per DataMap - dataNode.setDataSource(dataSourceFactory.getDataSource(nodeDescriptor.getName())); - dataNode.setAdapter(adapter); - dataNode.setSchemaUpdateStrategy(new SkipSchemaUpdateStrategy()); - dataNode.setSqlTemplateProcessor(sqlTemplateProcessor); - - return dataNode; - } - -}
