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); }
