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