From e2b6841f2229a43a72951c0b41d2525b77642410 Mon Sep 17 00:00:00 2001 From: Torsten Krause Date: Mon, 16 Mar 2026 15:32:15 +0100 Subject: [PATCH 1/4] MCR-3650 refactor MCRConfigurableInstanceHelper into multiple classes --- .../config/MCRConfigurableInstanceHelper.java | 1746 +---------------- .../common/config/MCRConfiguration2.java | 14 +- .../config/MCRConfigurationException.java | 4 +- .../config/MCRInstanceConfiguration.java | 28 + .../common/config/annotation/MCRProperty.java | 2 +- .../config/annotation/MCRPropertyList.java | 2 +- .../config/annotation/MCRRawProperties.java | 4 +- .../config/instantiator/MCRInstantiator.java | 394 ++++ .../instantiator/MCRInstantiatorUtils.java | 224 +++ .../injectable/MCRFieldInjectable.java | 49 + .../injectable/MCRInjectable.java | 39 + .../injectable/MCRMethodInjectable.java | 49 + .../source/MCRInstanceListSource.java | 115 ++ .../source/MCRInstanceMapSource.java | 110 ++ .../source/MCRInstanceSource.java | 103 + .../source/MCRPostConstructionSource.java | 71 + .../source/MCRPropertyListSource.java | 199 ++ .../source/MCRPropertyMapSource.java | 190 ++ .../source/MCRPropertySource.java | 141 ++ .../source/MCRRawPropertiesSource.java | 108 + .../config/instantiator/source/MCRSource.java | 138 ++ .../instantiator/target/MCRFieldTarget.java | 66 + .../instantiator/target/MCRMethodTarget.java | 79 + .../config/instantiator/target/MCRTarget.java | 68 + ...CRConfigurableInstanceHelperBasicTest.java | 3 +- ...figurableInstanceHelperCollectionTest.java | 5 +- .../common/events/MCREventManagerTest.java | 2 +- .../queuedjob/MCRSimpleJobSelector.java | 2 +- 28 files changed, 2207 insertions(+), 1748 deletions(-) create mode 100644 mycore-base/src/main/java/org/mycore/common/config/instantiator/MCRInstantiator.java create mode 100644 mycore-base/src/main/java/org/mycore/common/config/instantiator/MCRInstantiatorUtils.java create mode 100644 mycore-base/src/main/java/org/mycore/common/config/instantiator/injectable/MCRFieldInjectable.java create mode 100644 mycore-base/src/main/java/org/mycore/common/config/instantiator/injectable/MCRInjectable.java create mode 100644 mycore-base/src/main/java/org/mycore/common/config/instantiator/injectable/MCRMethodInjectable.java create mode 100644 mycore-base/src/main/java/org/mycore/common/config/instantiator/source/MCRInstanceListSource.java create mode 100644 mycore-base/src/main/java/org/mycore/common/config/instantiator/source/MCRInstanceMapSource.java create mode 100644 mycore-base/src/main/java/org/mycore/common/config/instantiator/source/MCRInstanceSource.java create mode 100644 mycore-base/src/main/java/org/mycore/common/config/instantiator/source/MCRPostConstructionSource.java create mode 100644 mycore-base/src/main/java/org/mycore/common/config/instantiator/source/MCRPropertyListSource.java create mode 100644 mycore-base/src/main/java/org/mycore/common/config/instantiator/source/MCRPropertyMapSource.java create mode 100644 mycore-base/src/main/java/org/mycore/common/config/instantiator/source/MCRPropertySource.java create mode 100644 mycore-base/src/main/java/org/mycore/common/config/instantiator/source/MCRRawPropertiesSource.java create mode 100644 mycore-base/src/main/java/org/mycore/common/config/instantiator/source/MCRSource.java create mode 100644 mycore-base/src/main/java/org/mycore/common/config/instantiator/target/MCRFieldTarget.java create mode 100644 mycore-base/src/main/java/org/mycore/common/config/instantiator/target/MCRMethodTarget.java create mode 100644 mycore-base/src/main/java/org/mycore/common/config/instantiator/target/MCRTarget.java diff --git a/mycore-base/src/main/java/org/mycore/common/config/MCRConfigurableInstanceHelper.java b/mycore-base/src/main/java/org/mycore/common/config/MCRConfigurableInstanceHelper.java index bba78b98f0..e49448ac33 100644 --- a/mycore-base/src/main/java/org/mycore/common/config/MCRConfigurableInstanceHelper.java +++ b/mycore-base/src/main/java/org/mycore/common/config/MCRConfigurableInstanceHelper.java @@ -18,47 +18,15 @@ package org.mycore.common.config; -import java.lang.annotation.Annotation; -import java.lang.reflect.Constructor; -import java.lang.reflect.Field; -import java.lang.reflect.Method; -import java.lang.reflect.Modifier; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.EnumSet; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.Objects; import java.util.Optional; import java.util.Set; -import java.util.SortedMap; -import java.util.TreeMap; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; -import java.util.concurrent.atomic.AtomicBoolean; -import java.util.function.Supplier; -import java.util.function.ToIntFunction; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.mycore.common.MCRClassTools; -import org.mycore.common.config.annotation.MCRConfigurationProxy; -import org.mycore.common.config.annotation.MCRFactory; -import org.mycore.common.config.annotation.MCRInstance; -import org.mycore.common.config.annotation.MCRInstanceList; -import org.mycore.common.config.annotation.MCRInstanceMap; -import org.mycore.common.config.annotation.MCRPostConstruction; -import org.mycore.common.config.annotation.MCRProperty; -import org.mycore.common.config.annotation.MCRPropertyList; -import org.mycore.common.config.annotation.MCRPropertyMap; -import org.mycore.common.config.annotation.MCRRawProperties; -import org.mycore.common.config.annotation.MCRSentinel; +import org.mycore.common.config.MCRInstanceConfiguration.Option; +import org.mycore.common.config.MCRInstanceConfiguration.Options; +import org.mycore.common.config.instantiator.MCRInstantiator; +import org.mycore.common.config.instantiator.MCRInstantiatorUtils; import jakarta.inject.Singleton; @@ -67,21 +35,11 @@ * * @author Sebastian Hofmann */ -@SuppressWarnings({ "PMD.AvoidDuplicateLiterals", "PMD.SingleMethodSingleton", - "PMD.MCR.Singleton.MethodModifiers", "PMD.MCR.Singleton.MethodReturnType", - "PMD.MCR.Singleton.ClassModifiers", "PMD.MCR.Singleton.PrivateConstructor", - "PMD.MCR.Singleton.NonPrivateConstructors", -}) -class MCRConfigurableInstanceHelper { - - private static final Logger LOGGER = LogManager.getLogger(); - - public static final Set