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


The following commit(s) were added to refs/heads/master by this push:
     new 181c070ed Deprecated PerAdapterProvider - not very useful
181c070ed is described below

commit 181c070ed35d920dc51ba8f68a3f36c3b1875bed
Author: Andrus Adamchik <[email protected]>
AuthorDate: Fri May 15 17:35:41 2026 -0400

    Deprecated PerAdapterProvider - not very useful
---
 .../merge/factory/MergerTokenFactoryProvider.java  | 16 +++-
 .../runtime/PkGeneratorFactoryProvider.java        | 16 +++-
 .../org/apache/cayenne/dba/PerAdapterProvider.java |  2 +
 .../apache/cayenne/dba/PerAdapterProviderTest.java | 85 ----------------------
 4 files changed, 28 insertions(+), 91 deletions(-)

diff --git 
a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/factory/MergerTokenFactoryProvider.java
 
b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/factory/MergerTokenFactoryProvider.java
index 26a078a7b..efc68f49a 100644
--- 
a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/factory/MergerTokenFactoryProvider.java
+++ 
b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/factory/MergerTokenFactoryProvider.java
@@ -18,21 +18,31 @@
  ****************************************************************/
 package org.apache.cayenne.dbsync.merge.factory;
 
-import org.apache.cayenne.dba.PerAdapterProvider;
+import org.apache.cayenne.dba.DbAdapter;
 import org.apache.cayenne.dbsync.DbSyncModule;
+import org.apache.cayenne.di.DIRuntimeException;
 import org.apache.cayenne.di.Inject;
 
 import java.util.Map;
+import java.util.Objects;
 
 /**
  * @since 4.0
  */
-public class MergerTokenFactoryProvider extends 
PerAdapterProvider<MergerTokenFactory> {
+public class MergerTokenFactoryProvider {
+
+    private final Map<String, MergerTokenFactory> perAdapterValues;
+    private final MergerTokenFactory defaultValue;
 
     public MergerTokenFactoryProvider(
             @Inject(DbSyncModule.MERGER_FACTORIES_MAP) Map<String, 
MergerTokenFactory> perAdapterValues,
             @Inject MergerTokenFactory defaultValue) {
 
-        super(perAdapterValues, defaultValue);
+        this.perAdapterValues = Objects.requireNonNull(perAdapterValues);
+        this.defaultValue = Objects.requireNonNull(defaultValue);
+    }
+
+    public MergerTokenFactory get(DbAdapter adapter) throws DIRuntimeException 
{
+        return 
perAdapterValues.getOrDefault(adapter.unwrap().getClass().getName(), 
defaultValue);
     }
 }
diff --git 
a/cayenne/src/main/java/org/apache/cayenne/configuration/runtime/PkGeneratorFactoryProvider.java
 
b/cayenne/src/main/java/org/apache/cayenne/configuration/runtime/PkGeneratorFactoryProvider.java
index f3cfcc8e2..9c3682e57 100644
--- 
a/cayenne/src/main/java/org/apache/cayenne/configuration/runtime/PkGeneratorFactoryProvider.java
+++ 
b/cayenne/src/main/java/org/apache/cayenne/configuration/runtime/PkGeneratorFactoryProvider.java
@@ -19,22 +19,32 @@
 
 package org.apache.cayenne.configuration.runtime;
 
-import org.apache.cayenne.dba.PerAdapterProvider;
+import org.apache.cayenne.dba.DbAdapter;
 import org.apache.cayenne.dba.PkGenerator;
+import org.apache.cayenne.di.DIRuntimeException;
 import org.apache.cayenne.di.Inject;
 
 import java.util.Map;
+import java.util.Objects;
 
 /**
  * Per-adapter provider of PkGenerators
  *
  * @since 4.1
  */
-public class PkGeneratorFactoryProvider extends 
PerAdapterProvider<PkGenerator> {
+public class PkGeneratorFactoryProvider {
+
+    private final Map<String, PkGenerator> perAdapterValues;
+    private final PkGenerator defaultValue;
 
     public PkGeneratorFactoryProvider(
             @Inject Map<String, PkGenerator> perAdapterValues,
             @Inject PkGenerator defaultValue) {
-        super(perAdapterValues, defaultValue);
+        this.perAdapterValues = Objects.requireNonNull(perAdapterValues);
+        this.defaultValue = Objects.requireNonNull(defaultValue);
+    }
+
+    public PkGenerator get(DbAdapter adapter) throws DIRuntimeException {
+        return 
perAdapterValues.getOrDefault(adapter.unwrap().getClass().getName(), 
defaultValue);
     }
 }
diff --git 
a/cayenne/src/main/java/org/apache/cayenne/dba/PerAdapterProvider.java 
b/cayenne/src/main/java/org/apache/cayenne/dba/PerAdapterProvider.java
index 54ac8749f..379779a2a 100644
--- a/cayenne/src/main/java/org/apache/cayenne/dba/PerAdapterProvider.java
+++ b/cayenne/src/main/java/org/apache/cayenne/dba/PerAdapterProvider.java
@@ -28,7 +28,9 @@ import java.util.Objects;
  * This allows modules to create adapter-specific extensions without altering 
DbAdapter API.
  *
  * @since 4.0
+ * @deprecated unused, it is trivial to create per-adapter classes without the 
common superclass
  */
+@Deprecated(since = "5.0", forRemoval = true)
 public class PerAdapterProvider<T> {
 
     private Map<String, T> perAdapterValues;
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/dba/PerAdapterProviderTest.java 
b/cayenne/src/test/java/org/apache/cayenne/dba/PerAdapterProviderTest.java
deleted file mode 100644
index e5c7ca32c..000000000
--- a/cayenne/src/test/java/org/apache/cayenne/dba/PerAdapterProviderTest.java
+++ /dev/null
@@ -1,85 +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.dba;
-
-import org.apache.cayenne.access.types.ExtendedType;
-import org.apache.cayenne.access.types.ExtendedTypeFactory;
-import org.apache.cayenne.access.types.ValueObjectTypeRegistry;
-import org.apache.cayenne.configuration.RuntimeProperties;
-import org.apache.cayenne.dba.derby.DerbyAdapter;
-import org.apache.cayenne.dba.oracle.OracleAdapter;
-import org.apache.cayenne.di.DIRuntimeException;
-import org.apache.cayenne.di.Provider;
-import org.apache.cayenne.di.spi.DefaultClassLoaderManager;
-import org.apache.cayenne.log.Slf4jJdbcEventLogger;
-import org.apache.cayenne.resource.ClassLoaderResourceLocator;
-import org.apache.cayenne.resource.ResourceLocator;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-
-import java.util.Collections;
-import java.util.Map;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.mockito.Mockito.mock;
-
-public class PerAdapterProviderTest {
-
-    private OracleAdapter oracleAdapter;
-    private DerbyAdapter derbyAdapter;
-    private AutoAdapter autoDerbyAdapter;
-
-    @BeforeEach
-    public void before() {
-
-        ResourceLocator locator = new ClassLoaderResourceLocator(new 
DefaultClassLoaderManager());
-        RuntimeProperties runtimeProperties = mock(RuntimeProperties.class);
-        ValueObjectTypeRegistry valueObjectTypeRegistry = 
mock(ValueObjectTypeRegistry.class);
-
-        this.oracleAdapter = new OracleAdapter(runtimeProperties,
-                Collections.<ExtendedType>emptyList(),
-                Collections.<ExtendedType>emptyList(),
-                Collections.<ExtendedTypeFactory>emptyList(),
-                locator, valueObjectTypeRegistry);
-
-        this.derbyAdapter = new DerbyAdapter(runtimeProperties,
-                Collections.<ExtendedType>emptyList(),
-                Collections.<ExtendedType>emptyList(),
-                Collections.<ExtendedTypeFactory>emptyList(),
-                locator, valueObjectTypeRegistry);
-
-        this.autoDerbyAdapter = new AutoAdapter(new Provider<DbAdapter>() {
-            @Override
-            public DbAdapter get() throws DIRuntimeException {
-                return derbyAdapter;
-            }
-        }, new Slf4jJdbcEventLogger(runtimeProperties));
-    }
-
-    @Test
-    public void get() {
-
-        Map<String, String> map = 
Collections.singletonMap(DerbyAdapter.class.getName(), "x");
-        PerAdapterProvider<String> provider = new PerAdapterProvider<>(map, 
"default");
-
-        assertEquals("default", provider.get(oracleAdapter));
-        assertEquals("x", provider.get(derbyAdapter));
-        assertEquals("x", provider.get(autoDerbyAdapter));
-    }
-}

Reply via email to