This is an automated email from the ASF dual-hosted git repository.

ntimofeev 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 45c75e3d9 CAY-2737 Cayenne 4.3: cleanup deprecated code   - some more 
deprecated code deleted
45c75e3d9 is described below

commit 45c75e3d99f292432c09853fd42e7bfec4bf5815
Author: Nikita Timofeev <[email protected]>
AuthorDate: Wed Jul 13 13:28:21 2022 +0300

    CAY-2737 Cayenne 4.3: cleanup deprecated code
      - some more deprecated code deleted
---
 .../tools/GradlePluginClassLoaderManager.java      | 97 ----------------------
 .../configuration/server/DataDomainProvider.java   | 15 +---
 .../xml/XMLDataChannelDescriptorLoader.java        | 52 ------------
 .../org/apache/cayenne/graph/ChildDiffLoader.java  |  3 +-
 .../org/apache/cayenne/map/EntityResolver.java     | 24 +++++-
 .../java/org/apache/cayenne/map/ObjEntity.java     | 23 -----
 .../reflect/LazyClassDescriptorDecorator.java      |  2 +-
 .../cayenne/reflect/LifecycleCallbackRegistry.java |  8 +-
 .../reflect/PersistentDescriptorFactory.java       |  2 +-
 .../cayenne/access/DataContextQueryChainIT.java    |  1 -
 .../cayenne/access/VerticalInheritanceIT.java      |  1 -
 .../select/DescriptorColumnExtractorTest.java      |  5 +-
 .../cayenne/dba/ConcurrentPkGeneratorIT.java       |  6 +-
 13 files changed, 39 insertions(+), 200 deletions(-)

diff --git 
a/cayenne-gradle-plugin/src/main/java/org/apache/cayenne/tools/GradlePluginClassLoaderManager.java
 
b/cayenne-gradle-plugin/src/main/java/org/apache/cayenne/tools/GradlePluginClassLoaderManager.java
deleted file mode 100644
index 6c49be9bc..000000000
--- 
a/cayenne-gradle-plugin/src/main/java/org/apache/cayenne/tools/GradlePluginClassLoaderManager.java
+++ /dev/null
@@ -1,97 +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.tools;
-
-import org.apache.cayenne.di.ClassLoaderManager;
-
-import java.io.File;
-import java.net.URL;
-import java.net.URLClassLoader;
-import java.util.ArrayList;
-import java.util.List;
-import org.gradle.api.Project;
-import org.gradle.api.artifacts.Configuration;
-import org.gradle.api.artifacts.ConfigurationContainer;
-import org.gradle.api.artifacts.Dependency;
-import org.gradle.api.artifacts.DependencySet;
-
-/**
- * Gradle class loader manager to update class loader urls with project 
dependencies.
- *
- * @since 4.1
- *
- * @deprecated
- * Class supports only compile gradle configuration, which is removed in 
gradle 7.0
- * replaced with org.apache.cayenne.di.spi.DefaultClassLoaderManager
- *
- * Class will be removed in next updates
- * @since 4.2.M4
- */
-@Deprecated
-public class GradlePluginClassLoaderManager implements ClassLoaderManager {
-
-    private Project project;
-    private List<URL> urls = new ArrayList<>();
-
-    public GradlePluginClassLoaderManager(final Project project) {
-        this.project = project;
-    }
-
-    @Override
-    public ClassLoader getClassLoader(final String resourceName) {
-        return buildClassLoader();
-    }
-
-    private void addUrlFromDependency(final Dependency dependency, final 
Configuration configuration) {
-
-        if(dependency == null) {
-            return;
-        }
-
-        configuration.files(dependency).forEach(this::addUrlFromFile);
-    }
-
-    private void addUrlFromFile(final File file) {
-        try {
-            urls.add(file.toURI().toURL());
-        } catch (Exception ignored) {
-        }
-    }
-
-    private ClassLoader buildClassLoader() {
-        ClassLoader classLoader = getClass().getClassLoader();
-        ConfigurationContainer configurations = project.getConfigurations();
-
-        if (configurations == null || configurations.isEmpty()) {
-            return classLoader;
-        }
-
-        Configuration configuration = configurations.getByName("compile");
-        DependencySet dependencies = configuration.getDependencies();
-        if(dependencies == null || dependencies.isEmpty()) {
-            return classLoader;
-        }
-
-        dependencies.forEach(dependency -> addUrlFromDependency(dependency, 
configuration));
-
-        return new URLClassLoader(urls.toArray(new URL[0]), 
getClass().getClassLoader());
-    }
-
-}
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/DataDomainProvider.java
 
b/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/DataDomainProvider.java
index e948c8355..f7aeb038e 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/DataDomainProvider.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/DataDomainProvider.java
@@ -35,6 +35,7 @@ import 
org.apache.cayenne.configuration.DataChannelDescriptorLoader;
 import org.apache.cayenne.configuration.DataChannelDescriptorMerger;
 import org.apache.cayenne.configuration.DataNodeDescriptor;
 import org.apache.cayenne.configuration.RuntimeProperties;
+import org.apache.cayenne.di.AdhocObjectFactory;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.di.Injector;
 import org.apache.cayenne.di.Provider;
@@ -100,15 +101,6 @@ public class DataDomainProvider implements 
Provider<DataDomain> {
        @Inject
        protected DataNodeFactory dataNodeFactory;
 
-       @Inject
-       protected ValueObjectTypeRegistry valueObjectTypeRegistry;
-
-       /**
-        * @since 4.2
-        */
-       @Inject
-       protected ValueComparisonStrategyFactory valueComparisonStrategyFactory;
-
        @Override
        public DataDomain get() throws ConfigurationException {
 
@@ -148,8 +140,9 @@ public class DataDomainProvider implements 
Provider<DataDomain> {
                }
 
                dataDomain.getEntityResolver().applyDBLayerDefaults();
-               
dataDomain.getEntityResolver().setValueObjectTypeRegistry(valueObjectTypeRegistry);
-               
dataDomain.getEntityResolver().setValueComparisionStrategyFactory(valueComparisonStrategyFactory);
+               
dataDomain.getEntityResolver().setValueObjectTypeRegistry(injector.getInstance(ValueObjectTypeRegistry.class));
+               
dataDomain.getEntityResolver().setValueComparisonStrategyFactory(injector.getInstance(ValueComparisonStrategyFactory.class));
+               
dataDomain.getEntityResolver().setObjectFactory(injector.getInstance(AdhocObjectFactory.class));
 
                for (DataNodeDescriptor nodeDescriptor : 
descriptor.getNodeDescriptors()) {
                        addDataNode(dataDomain, nodeDescriptor);
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/XMLDataChannelDescriptorLoader.java
 
b/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/XMLDataChannelDescriptorLoader.java
index fbb56ce41..1de65aa5a 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/XMLDataChannelDescriptorLoader.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/XMLDataChannelDescriptorLoader.java
@@ -27,18 +27,13 @@ import org.apache.cayenne.configuration.DataMapLoader;
 import org.apache.cayenne.di.AdhocObjectFactory;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.di.Provider;
-import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.resource.Resource;
-import org.apache.cayenne.util.Util;
 import org.slf4j.LoggerFactory;
 import org.slf4j.Logger;
 import org.xml.sax.InputSource;
 import org.xml.sax.XMLReader;
 
-import java.io.BufferedReader;
-import java.io.IOException;
 import java.io.InputStream;
-import java.io.InputStreamReader;
 import java.net.URL;
 import java.util.Arrays;
 
@@ -58,53 +53,6 @@ public class XMLDataChannelDescriptorLoader implements 
DataChannelDescriptorLoad
                Arrays.sort(SUPPORTED_PROJECT_VERSIONS);
        }
 
-       /**
-        * @deprecated the caller should use password resolving strategy 
instead of
-        *             resolving the password on the spot. For one thing this 
can be
-        *             used in the Modeler and no password may be available.
-        */
-       @Deprecated
-       static String passwordFromURL(URL url) {
-               InputStream inputStream;
-               String password = null;
-
-               try {
-                       inputStream = url.openStream();
-                       password = passwordFromInputStream(inputStream);
-               } catch (IOException exception) {
-                       // Log the error while trying to open the stream. A null
-                       // password will be returned as a result.
-                       logger.warn(exception.getMessage(), exception);
-               }
-
-               return password;
-       }
-
-       /**
-        * @deprecated the caller should use password resolving strategy 
instead of
-        *             resolving the password on the spot. For one thing this 
can be
-        *             used in the Modeler and no password may be available.
-        */
-       @Deprecated
-       static String passwordFromInputStream(InputStream inputStream) {
-               String password = null;
-
-               try (BufferedReader bufferedReader = new BufferedReader(new 
InputStreamReader(inputStream));) {
-
-                       password = bufferedReader.readLine();
-               } catch (IOException exception) {
-                       logger.warn(exception.getMessage(), exception);
-               } finally {
-
-                       try {
-                               inputStream.close();
-                       } catch (IOException ignored) {
-                       }
-               }
-
-               return password;
-       }
-
        @Inject
        protected Provider<XMLReader> xmlReaderProvider;
 
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/graph/ChildDiffLoader.java 
b/cayenne-server/src/main/java/org/apache/cayenne/graph/ChildDiffLoader.java
index 6c6889932..8bfd9a1de 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/graph/ChildDiffLoader.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/graph/ChildDiffLoader.java
@@ -96,8 +96,9 @@ public class ChildDiffLoader implements GraphChangeHandler {
                        }
 
                        Persistent dataObject;
+                       Class<?> javaClass = 
context.getEntityResolver().getObjectFactory().getJavaClass(entity.getJavaClassName());
                        try {
-                               dataObject = (Persistent) 
entity.getJavaClass().getDeclaredConstructor().newInstance();
+                               dataObject = (Persistent) 
javaClass.getDeclaredConstructor().newInstance();
                        } catch (Exception ex) {
                                throw new CayenneRuntimeException("Error 
instantiating object.", ex);
                        }
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/map/EntityResolver.java 
b/cayenne-server/src/main/java/org/apache/cayenne/map/EntityResolver.java
index 09d31b12e..55f98e110 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/EntityResolver.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/map/EntityResolver.java
@@ -43,6 +43,7 @@ import org.apache.cayenne.annotation.PostUpdate;
 import org.apache.cayenne.annotation.PrePersist;
 import org.apache.cayenne.annotation.PreRemove;
 import org.apache.cayenne.annotation.PreUpdate;
+import org.apache.cayenne.di.AdhocObjectFactory;
 import org.apache.cayenne.reflect.ClassDescriptor;
 import org.apache.cayenne.reflect.ClassDescriptorMap;
 import org.apache.cayenne.reflect.FaultFactory;
@@ -104,6 +105,11 @@ public class EntityResolver implements MappingNamespace, 
Serializable {
      */
     protected transient EntitySorter entitySorter;
 
+    /**
+     * @since 4.3
+     */
+    protected transient AdhocObjectFactory objectFactory;
+
 
     /**
      * Creates new empty EntityResolver.
@@ -174,7 +180,7 @@ public class EntityResolver implements MappingNamespace, 
Serializable {
 
             // load entity callbacks
             for (ObjEntity entity : getObjEntities()) {
-                Class<?> entityClass = entity.getJavaClass();
+                Class<?> entityClass = 
objectFactory.getJavaClass(entity.getJavaClassName());
 
                 // load annotated methods
                 for (Method m : entityClass.getDeclaredMethods()) {
@@ -538,7 +544,7 @@ public class EntityResolver implements MappingNamespace, 
Serializable {
     /**
      * @since 4.2
      */
-    public void 
setValueComparisionStrategyFactory(ValueComparisonStrategyFactory 
valueComparisonStrategyFactory) {
+    public void 
setValueComparisonStrategyFactory(ValueComparisonStrategyFactory 
valueComparisonStrategyFactory) {
         this.valueComparisonStrategyFactory = valueComparisonStrategyFactory;
     }
 
@@ -555,4 +561,18 @@ public class EntityResolver implements MappingNamespace, 
Serializable {
     public EntitySorter getEntitySorter() {
         return entitySorter;
     }
+
+    /**
+     * @since 4.3
+     */
+    public void setObjectFactory(AdhocObjectFactory objectFactory) {
+        this.objectFactory = objectFactory;
+    }
+
+    /**
+     * @since 4.3
+     */
+    public AdhocObjectFactory getObjectFactory() {
+        return objectFactory;
+    }
 }
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/map/ObjEntity.java 
b/cayenne-server/src/main/java/org/apache/cayenne/map/ObjEntity.java
index b12e27390..117cdcfca 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/ObjEntity.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/map/ObjEntity.java
@@ -178,29 +178,6 @@ public class ObjEntity extends Entity implements 
ObjEntityListener, Configuratio
         return name;
     }
 
-    /**
-     * Returns Java class of persistent objects described by this entity. For
-     * generic entities with no class specified explicitly, default DataMap
-     * superclass is used, and if it is not set - CayenneDataObject is used.
-     * Casts any thrown exceptions into CayenneRuntimeException.
-     * 
-     * @since 1.2
-     * @deprecated since 4.0 this method based on statically defined class
-     *             loading algorithm is not going to work in environments like
-     *             OSGi. {@link AdhocObjectFactory} should be used as it can
-     *             provide the environment-specific class loading policy. 
-     */
-    @Deprecated
-    public Class<?> getJavaClass() {
-        String name = getJavaClassName();
-
-        try {
-            return Util.getJavaClass(name);
-        } catch (ClassNotFoundException e) {
-            throw new CayenneRuntimeException("Failed to doLoad class " + name 
+ ": " + e.getMessage(), e);
-        }
-    }
-
     /**
      * Returns an object that stores callback methods of this entity.
      * 
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/reflect/LazyClassDescriptorDecorator.java
 
b/cayenne-server/src/main/java/org/apache/cayenne/reflect/LazyClassDescriptorDecorator.java
index 821334e8a..9a7576e9a 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/reflect/LazyClassDescriptorDecorator.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/reflect/LazyClassDescriptorDecorator.java
@@ -113,7 +113,7 @@ public class LazyClassDescriptorDecorator implements 
ClassDescriptor {
 
             ObjEntity entity = 
descriptorMap.getResolver().getObjEntity(entityName);
             if (entity != null) {
-                return entity.getJavaClass();
+                return 
descriptorMap.getResolver().getObjectFactory().getJavaClass(entity.getJavaClassName());
             }
         }
 
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/reflect/LifecycleCallbackRegistry.java
 
b/cayenne-server/src/main/java/org/apache/cayenne/reflect/LifecycleCallbackRegistry.java
index c8af4c83b..642a8d518 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/reflect/LifecycleCallbackRegistry.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/reflect/LifecycleCallbackRegistry.java
@@ -403,13 +403,7 @@ public class LifecycleCallbackRegistry {
                        entities = new HashSet<>();
 
                        for (ObjEntity entity : 
entityResolver.getObjEntities()) {
-                               Class<?> entityType;
-                               try {
-                                       entityType = 
Util.getJavaClass(entity.getClassName());
-                               } catch (ClassNotFoundException e) {
-                                       throw new 
CayenneRuntimeException("Class not found: " + entity.getClassName(), e);
-                               }
-
+                               Class<?> entityType = 
entityResolver.getObjectFactory().getJavaClass(entity.getJavaClassName());
                                // ensure that we don't register the same 
callback for multiple
                                // classes in the same hierarchy, so find the 
topmost type using
                                // a given annotation and register it once
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/reflect/PersistentDescriptorFactory.java
 
b/cayenne-server/src/main/java/org/apache/cayenne/reflect/PersistentDescriptorFactory.java
index 3ff91b4ea..83eaf7aa0 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/reflect/PersistentDescriptorFactory.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/reflect/PersistentDescriptorFactory.java
@@ -56,7 +56,7 @@ public abstract class PersistentDescriptorFactory implements 
ClassDescriptorFact
             throw new CayenneRuntimeException("Unmapped entity: %s", 
entityName);
         }
 
-        Class<?> entityClass = entity.getJavaClass();
+        Class<?> entityClass = 
descriptorMap.getResolver().getObjectFactory().getJavaClass(entity.getJavaClassName());
         return getDescriptor(entity, entityClass);
     }
 
diff --git 
a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQueryChainIT.java
 
b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQueryChainIT.java
index 51a2362c8..7394fc747 100644
--- 
a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQueryChainIT.java
+++ 
b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQueryChainIT.java
@@ -41,7 +41,6 @@ public class DataContextQueryChainIT extends ServerCase {
     private DataContext context;
 
     @Test
-    @Deprecated
     public void testSelectQuery() {
         Artist a1 = context.newObject(Artist.class);
         a1.setArtistName("X");
diff --git 
a/cayenne-server/src/test/java/org/apache/cayenne/access/VerticalInheritanceIT.java
 
b/cayenne-server/src/test/java/org/apache/cayenne/access/VerticalInheritanceIT.java
index 4a83c8392..7bcbff3ea 100644
--- 
a/cayenne-server/src/test/java/org/apache/cayenne/access/VerticalInheritanceIT.java
+++ 
b/cayenne-server/src/test/java/org/apache/cayenne/access/VerticalInheritanceIT.java
@@ -526,7 +526,6 @@ public class VerticalInheritanceIT extends ServerCase {
        }
 
     @Test
-       @Deprecated
        public void testSelectQuery_AttributeOverrides() throws Exception {
 
                TableHelper iv1RootTable = new TableHelper(dbHelper, 
"IV1_ROOT");
diff --git 
a/cayenne-server/src/test/java/org/apache/cayenne/access/translator/select/DescriptorColumnExtractorTest.java
 
b/cayenne-server/src/test/java/org/apache/cayenne/access/translator/select/DescriptorColumnExtractorTest.java
index 523d1fee2..a6ad6c117 100644
--- 
a/cayenne-server/src/test/java/org/apache/cayenne/access/translator/select/DescriptorColumnExtractorTest.java
+++ 
b/cayenne-server/src/test/java/org/apache/cayenne/access/translator/select/DescriptorColumnExtractorTest.java
@@ -23,6 +23,8 @@ import java.sql.Types;
 
 import org.apache.cayenne.access.sqlbuilder.sqltree.ColumnNode;
 import org.apache.cayenne.access.types.ValueObjectTypeRegistry;
+import org.apache.cayenne.di.spi.DefaultAdhocObjectFactory;
+import org.apache.cayenne.di.spi.DefaultClassLoaderManager;
 import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.map.DbEntity;
 import org.apache.cayenne.map.EntityResolver;
@@ -69,7 +71,8 @@ public class DescriptorColumnExtractorTest extends 
BaseColumnExtractorTest {
 
         EntityResolver resolver = new EntityResolver();
         resolver.addDataMap(dataMap);
-        resolver.setValueComparisionStrategyFactory(new 
DefaultValueComparisonStrategyFactory(mock(ValueObjectTypeRegistry.class)));
+        resolver.setValueComparisonStrategyFactory(new 
DefaultValueComparisonStrategyFactory(mock(ValueObjectTypeRegistry.class)));
+        resolver.setObjectFactory(new DefaultAdhocObjectFactory(null, new 
DefaultClassLoaderManager()));
 
         DescriptorColumnExtractor extractor = new 
DescriptorColumnExtractor(context, resolver.getClassDescriptor("mock"));
         extractor.extract();
diff --git 
a/cayenne-server/src/test/java/org/apache/cayenne/dba/ConcurrentPkGeneratorIT.java
 
b/cayenne-server/src/test/java/org/apache/cayenne/dba/ConcurrentPkGeneratorIT.java
index b21807e5f..68b91af46 100644
--- 
a/cayenne-server/src/test/java/org/apache/cayenne/dba/ConcurrentPkGeneratorIT.java
+++ 
b/cayenne-server/src/test/java/org/apache/cayenne/dba/ConcurrentPkGeneratorIT.java
@@ -23,6 +23,7 @@ import org.apache.cayenne.ObjectContext;
 import org.apache.cayenne.configuration.server.ServerRuntime;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.map.DataMap;
+import org.apache.cayenne.map.EntityResolver;
 import org.apache.cayenne.map.ObjEntity;
 import org.apache.cayenne.query.ObjectSelect;
 import org.apache.cayenne.testdo.qualified.Qualified1;
@@ -96,8 +97,9 @@ public class ConcurrentPkGeneratorIT extends ServerCase {
                Runnable task = () -> {
             try {
                 ObjectContext context1 = runtime.newContext();
-                for (ObjEntity entity : dataMap.getObjEntities()) {
-                    context1.newObject(entity.getJavaClass());
+                               EntityResolver entityResolver = 
context1.getEntityResolver();
+                               for (ObjEntity entity : 
dataMap.getObjEntities()) {
+                    
context1.newObject(entityResolver.getObjectFactory().getJavaClass(entity.getJavaClassName()));
                 }
                 context1.commitChanges();
             } catch (Exception e) {

Reply via email to