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 dee9fab7fda8cfba747b2295d9c2d4029610fc76
Author: Andrus Adamchik <[email protected]>
AuthorDate: Wed May 13 18:41:21 2026 -0400

    Unwinding CayenneTestsEnv.getInstance() to specific getters
    
    ... test-scoped stack elements can be taken diretcly from "runtime"
---
 .../cayenne/access/jdbc/SQLTemplateActionIT.java   | 29 ++++++++---------
 .../cayenne/unit/di/runtime/CayenneTestsEnv.java   | 23 ++++++-------
 .../di/runtime/RuntimeCaseDataContextProvider.java | 36 --------------------
 .../di/runtime/RuntimeCaseDataNodeProvider.java    | 38 ----------------------
 .../runtime/RuntimeCaseEntityResolverProvider.java | 36 --------------------
 .../cayenne/unit/di/runtime/RuntimeCaseModule.java |  8 -----
 6 files changed, 23 insertions(+), 147 deletions(-)

diff --git 
a/cayenne/src/test/java/org/apache/cayenne/access/jdbc/SQLTemplateActionIT.java 
b/cayenne/src/test/java/org/apache/cayenne/access/jdbc/SQLTemplateActionIT.java
index da4b13133..371a170fa 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/access/jdbc/SQLTemplateActionIT.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/access/jdbc/SQLTemplateActionIT.java
@@ -19,23 +19,11 @@
 
 package org.apache.cayenne.access.jdbc;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertSame;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
-import java.sql.Connection;
-import java.sql.Date;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
 import org.apache.cayenne.DataRow;
 import org.apache.cayenne.ObjectContext;
 import org.apache.cayenne.access.DataNode;
 import org.apache.cayenne.access.MockOperationObserver;
-import org.apache.cayenne.dba.JdbcAdapter;
+import org.apache.cayenne.dba.DbAdapter;
 import org.apache.cayenne.query.CapsStrategy;
 import org.apache.cayenne.query.ObjectSelect;
 import org.apache.cayenne.query.SQLAction;
@@ -46,11 +34,20 @@ import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.unit.UnitDbAdapter;
 import org.apache.cayenne.unit.di.runtime.CayenneProjects;
 import org.apache.cayenne.unit.di.runtime.CayenneTestsEnv;
-import org.junit.jupiter.api.extension.RegisterExtension;
 import org.apache.cayenne.unit.di.runtime.RuntimeCaseDataSourceFactory;
 import org.apache.cayenne.unit.util.SQLTemplateCustomizer;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
+
+import java.sql.Connection;
+import java.sql.Date;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import static org.junit.jupiter.api.Assertions.*;
 
 @SuppressWarnings("deprecation")
 public class SQLTemplateActionIT {
@@ -60,7 +57,7 @@ public class SQLTemplateActionIT {
 
        protected RuntimeCaseDataSourceFactory dataSourceFactory;
        protected DataNode node;
-       protected JdbcAdapter adapter;
+       protected DbAdapter adapter;
        protected UnitDbAdapter unitDbAdapter;
        protected ObjectContext objectContext;
        protected SQLTemplateCustomizer sqlTemplateCustomizer;
@@ -71,7 +68,7 @@ public class SQLTemplateActionIT {
        public void setUp() throws Exception {
                dataSourceFactory = env.dataSourceFactory();
                node = env.dataNode();
-               adapter = env.jdbcAdapter();
+               adapter = env.dbAdapter();
                unitDbAdapter = env.unitDbAdapter();
                objectContext = env.context();
                sqlTemplateCustomizer = env.sqlTemplateCustomizer();
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/unit/di/runtime/CayenneTestsEnv.java 
b/cayenne/src/test/java/org/apache/cayenne/unit/di/runtime/CayenneTestsEnv.java
index db2efe96e..bdad866ac 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/unit/di/runtime/CayenneTestsEnv.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/unit/di/runtime/CayenneTestsEnv.java
@@ -19,12 +19,12 @@
 package org.apache.cayenne.unit.di.runtime;
 
 import org.apache.cayenne.access.DataContext;
+import org.apache.cayenne.access.DataDomain;
 import org.apache.cayenne.access.DataNode;
 import org.apache.cayenne.configuration.Constants;
 import org.apache.cayenne.configuration.DataSourceDescriptor;
 import org.apache.cayenne.configuration.runtime.CoreModule;
 import org.apache.cayenne.dba.DbAdapter;
-import org.apache.cayenne.dba.JdbcAdapter;
 import org.apache.cayenne.di.AdhocObjectFactory;
 import org.apache.cayenne.di.Binder;
 import org.apache.cayenne.di.DIBootstrap;
@@ -114,9 +114,9 @@ public class CayenneTestsEnv implements BeforeEachCallback, 
AfterEachCallback {
         }
         
INJECTOR.getInstance(RuntimeCaseExtraModules.class).setExtraModules(effectiveExtras);
 
-        runtime = INJECTOR.getInstance(CayenneRuntime.class);
-        context = INJECTOR.getInstance(DataContext.class);
-        dbHelper = INJECTOR.getInstance(DBHelper.class);
+        this.runtime = INJECTOR.getInstance(CayenneRuntime.class);
+        this.context = (DataContext) runtime.newContext();
+        this.dbHelper = INJECTOR.getInstance(DBHelper.class);
 
         if (autoClean) {
             DBCleaner cleaner = dbCleaner();
@@ -131,9 +131,9 @@ public class CayenneTestsEnv implements BeforeEachCallback, 
AfterEachCallback {
     @Override
     public void afterEach(ExtensionContext ctx) {
         TEST_SCOPE.shutdown();
-        context = null;
-        dbHelper = null;
-        runtime = null;
+        this.context = null;
+        this.dbHelper = null;
+        this.runtime = null;
     }
 
     public DataContext context() {
@@ -160,16 +160,13 @@ public class CayenneTestsEnv implements 
BeforeEachCallback, AfterEachCallback {
         return INJECTOR.getInstance(DbAdapter.class);
     }
 
-    public JdbcAdapter jdbcAdapter() {
-        return INJECTOR.getInstance(JdbcAdapter.class);
-    }
-
     public EntityResolver entityResolver() {
-        return INJECTOR.getInstance(EntityResolver.class);
+        return runtime.getDataDomain().getEntityResolver();
     }
 
     public DataNode dataNode() {
-        return INJECTOR.getInstance(DataNode.class);
+        DataDomain channel = runtime.getDataDomain();
+        return channel.getDataNodes().iterator().next();
     }
 
     public DataChannelInterceptor dataChannelInterceptor() {
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/unit/di/runtime/RuntimeCaseDataContextProvider.java
 
b/cayenne/src/test/java/org/apache/cayenne/unit/di/runtime/RuntimeCaseDataContextProvider.java
deleted file mode 100644
index 3b98873f0..000000000
--- 
a/cayenne/src/test/java/org/apache/cayenne/unit/di/runtime/RuntimeCaseDataContextProvider.java
+++ /dev/null
@@ -1,36 +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.di.runtime;
-
-import org.apache.cayenne.ConfigurationException;
-import org.apache.cayenne.access.DataContext;
-import org.apache.cayenne.di.Inject;
-import org.apache.cayenne.di.Provider;
-import org.apache.cayenne.runtime.CayenneRuntime;
-
-public class RuntimeCaseDataContextProvider implements Provider<DataContext> {
-
-    @Inject
-    // injecting provider to make this provider independent from scoping of 
CayenneRuntime
-    protected Provider<CayenneRuntime> runtimeProvider;
-
-    public DataContext get() throws ConfigurationException {
-        return (DataContext) runtimeProvider.get().newContext();
-    }
-}
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/unit/di/runtime/RuntimeCaseDataNodeProvider.java
 
b/cayenne/src/test/java/org/apache/cayenne/unit/di/runtime/RuntimeCaseDataNodeProvider.java
deleted file mode 100644
index 533c3aeb2..000000000
--- 
a/cayenne/src/test/java/org/apache/cayenne/unit/di/runtime/RuntimeCaseDataNodeProvider.java
+++ /dev/null
@@ -1,38 +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.di.runtime;
-
-import org.apache.cayenne.ConfigurationException;
-import org.apache.cayenne.access.DataDomain;
-import org.apache.cayenne.access.DataNode;
-import org.apache.cayenne.di.Inject;
-import org.apache.cayenne.di.Provider;
-import org.apache.cayenne.runtime.CayenneRuntime;
-
-public class RuntimeCaseDataNodeProvider implements Provider<DataNode> {
-
-    @Inject
-    // injecting provider to make this provider independent from scoping of 
CayenneRuntime
-    protected Provider<CayenneRuntime> runtimeProvider;
-
-    public DataNode get() throws ConfigurationException {
-        DataDomain channel = (DataDomain) runtimeProvider.get().getChannel();
-        return channel.getDataNodes().iterator().next();
-    }
-}
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/unit/di/runtime/RuntimeCaseEntityResolverProvider.java
 
b/cayenne/src/test/java/org/apache/cayenne/unit/di/runtime/RuntimeCaseEntityResolverProvider.java
deleted file mode 100644
index 352edea96..000000000
--- 
a/cayenne/src/test/java/org/apache/cayenne/unit/di/runtime/RuntimeCaseEntityResolverProvider.java
+++ /dev/null
@@ -1,36 +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.di.runtime;
-
-import org.apache.cayenne.ConfigurationException;
-import org.apache.cayenne.di.Inject;
-import org.apache.cayenne.di.Provider;
-import org.apache.cayenne.map.EntityResolver;
-import org.apache.cayenne.runtime.CayenneRuntime;
-
-public class RuntimeCaseEntityResolverProvider implements 
Provider<EntityResolver> {
-
-    @Inject
-    // injecting provider to make this provider independent from scoping of 
CayenneRuntime
-    protected Provider<CayenneRuntime> runtimeProvider;
-
-    public EntityResolver get() throws ConfigurationException {
-        return runtimeProvider.get().getDataDomain().getEntityResolver();
-    }
-}
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/unit/di/runtime/RuntimeCaseModule.java
 
b/cayenne/src/test/java/org/apache/cayenne/unit/di/runtime/RuntimeCaseModule.java
index 2aa245068..3e4da7384 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/unit/di/runtime/RuntimeCaseModule.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/unit/di/runtime/RuntimeCaseModule.java
@@ -18,8 +18,6 @@
  ****************************************************************/
 package org.apache.cayenne.unit.di.runtime;
 
-import org.apache.cayenne.access.DataContext;
-import org.apache.cayenne.access.DataNode;
 import org.apache.cayenne.access.DefaultObjectMapRetainStrategy;
 import org.apache.cayenne.access.ObjectMapRetainStrategy;
 import org.apache.cayenne.access.translator.batch.BatchTranslatorFactory;
@@ -43,7 +41,6 @@ import 
org.apache.cayenne.configuration.xml.NoopDataChannelMetaData;
 import org.apache.cayenne.configuration.xml.XMLDataMapLoader;
 import org.apache.cayenne.configuration.xml.XMLReaderProvider;
 import org.apache.cayenne.dba.DbAdapter;
-import org.apache.cayenne.dba.JdbcAdapter;
 import org.apache.cayenne.dba.JdbcPkGenerator;
 import org.apache.cayenne.dba.PkGenerator;
 import org.apache.cayenne.dba.db2.DB2Adapter;
@@ -82,7 +79,6 @@ import org.apache.cayenne.di.spi.DefaultClassLoaderManager;
 import org.apache.cayenne.di.spi.DefaultScope;
 import org.apache.cayenne.log.JdbcEventLogger;
 import org.apache.cayenne.log.Slf4jJdbcEventLogger;
-import org.apache.cayenne.map.EntityResolver;
 import 
org.apache.cayenne.reflect.generic.DefaultValueComparisonStrategyFactory;
 import org.apache.cayenne.reflect.generic.ValueComparisonStrategyFactory;
 import org.apache.cayenne.resource.ClassLoaderResourceLocator;
@@ -231,7 +227,6 @@ public class RuntimeCaseModule implements Module {
         });
         
binder.bind(DataSourceFactory.class).to(RuntimeCaseSharedDataSourceFactory.class);
         
binder.bind(DbAdapter.class).toProvider(RuntimeCaseDbAdapterProvider.class);
-        
binder.bind(JdbcAdapter.class).toProvider(RuntimeCaseDbAdapterProvider.class);
         
binder.bind(UnitDbAdapter.class).toProvider(UnitDbAdapterProvider.class);
 
         // this factory is a hack that allows to inject to DbAdapters loaded 
outside of
@@ -254,12 +249,9 @@ public class RuntimeCaseModule implements Module {
         binder.bind(XMLReader.class).toProviderInstance(new 
XMLReaderProvider(false)).withoutScope();
 
         // test-scoped objects
-        
binder.bind(EntityResolver.class).toProvider(RuntimeCaseEntityResolverProvider.class).in(testScope);
-        
binder.bind(DataNode.class).toProvider(RuntimeCaseDataNodeProvider.class).in(testScope);
         
binder.bind(RuntimeCaseProperties.class).to(RuntimeCaseProperties.class).in(testScope);
         
binder.bind(RuntimeCaseExtraModules.class).to(RuntimeCaseExtraModules.class).in(testScope);
         
binder.bind(CayenneRuntime.class).toProvider(CayenneRuntimeProvider.class).in(testScope);
-        
binder.bind(DataContext.class).toProvider(RuntimeCaseDataContextProvider.class).withoutScope();
         
binder.bind(DBHelper.class).toProvider(FlavoredDBHelperProvider.class).in(testScope);
         
binder.bind(DBCleaner.class).toProvider(DBCleanerProvider.class).in(testScope);
     }

Reply via email to