From f54ecd3af9c11dd5a2f45e04cfcae0ebed660e51 Mon Sep 17 00:00:00 2001 From: Scott Marlow Date: Tue, 26 Nov 2024 09:02:44 -0500 Subject: [PATCH 1/6] [WFLY-20005] Persistence/JPA subsystem should remove non-breaking use of ModuleIdentifier Signed-off-by: Scott Marlow --- .../org/jboss/as/jpa/messages/JpaLogger.java | 12 ------ .../PersistenceProviderLoader.java | 3 +- .../jpa/processor/JPADependencyProcessor.java | 40 +++++++------------ .../PersistenceProviderAdaptorLoader.java | 3 +- 4 files changed, 17 insertions(+), 41 deletions(-) diff --git a/jpa/subsystem/src/main/java/org/jboss/as/jpa/messages/JpaLogger.java b/jpa/subsystem/src/main/java/org/jboss/as/jpa/messages/JpaLogger.java index f717bb240259..eab63b50447e 100644 --- a/jpa/subsystem/src/main/java/org/jboss/as/jpa/messages/JpaLogger.java +++ b/jpa/subsystem/src/main/java/org/jboss/as/jpa/messages/JpaLogger.java @@ -298,18 +298,6 @@ public interface JpaLogger extends BasicLogger { @Message(id = 25, value = "Couldn't load %s from Jakarta Persistence modules classloader") RuntimeException cannotLoadFromJpa(@Cause Throwable cause, String injectionTypeName); -// /** -// * Creates an exception indicating the module, represented by the {@code moduleId} parameter, could not be loaded -// * for the adapter, represented by the {@code name} parameter. -// * -// * @param cause the cause of the error. -// * @param moduleId the module id that was attempting to be loaded. -// * @param name the name of the adapter. -// * @return a {@link RuntimeException} for the error. -// */ - //@Message(id = 26, value = "Could not load module %s to add %s adapter to deployment") - //RuntimeException cannotLoadModule(@Cause Throwable cause, ModuleIdentifier moduleId, String name); - /** * Creates an exception indicating the persistence provider module, represented by the * {@code persistenceProviderModule} parameter, had an error loading. diff --git a/jpa/subsystem/src/main/java/org/jboss/as/jpa/persistenceprovider/PersistenceProviderLoader.java b/jpa/subsystem/src/main/java/org/jboss/as/jpa/persistenceprovider/PersistenceProviderLoader.java index 12aec5e8233d..1c83c01a89f7 100644 --- a/jpa/subsystem/src/main/java/org/jboss/as/jpa/persistenceprovider/PersistenceProviderLoader.java +++ b/jpa/subsystem/src/main/java/org/jboss/as/jpa/persistenceprovider/PersistenceProviderLoader.java @@ -13,7 +13,6 @@ import org.jboss.as.jpa.config.Configuration; import org.jboss.modules.Module; -import org.jboss.modules.ModuleIdentifier; import org.jboss.modules.ModuleLoadException; import org.jboss.modules.ModuleLoader; @@ -45,7 +44,7 @@ public static void loadDefaultProvider() throws ModuleLoadException { */ public static List loadProviderModuleByName(String moduleName) throws ModuleLoadException { final ModuleLoader moduleLoader = Module.getBootModuleLoader(); - Module module = moduleLoader.loadModule(ModuleIdentifier.fromString(moduleName)); + Module module = moduleLoader.loadModule(moduleName); final ServiceLoader serviceLoader = module.loadService(PersistenceProvider.class); List result = new ArrayList<>(); diff --git a/jpa/subsystem/src/main/java/org/jboss/as/jpa/processor/JPADependencyProcessor.java b/jpa/subsystem/src/main/java/org/jboss/as/jpa/processor/JPADependencyProcessor.java index 328f1743c8b7..730a592fe07c 100644 --- a/jpa/subsystem/src/main/java/org/jboss/as/jpa/processor/JPADependencyProcessor.java +++ b/jpa/subsystem/src/main/java/org/jboss/as/jpa/processor/JPADependencyProcessor.java @@ -33,7 +33,6 @@ import org.jboss.metadata.ear.spec.EarMetaData; import org.jboss.metadata.ear.spec.ModuleMetaData; import org.jboss.modules.Module; -import org.jboss.modules.ModuleIdentifier; import org.jboss.modules.ModuleLoader; import org.jboss.msc.service.ServiceName; import org.jipijapa.plugin.spi.PersistenceUnitMetadata; @@ -45,9 +44,9 @@ */ public class JPADependencyProcessor implements DeploymentUnitProcessor { - private static final ModuleIdentifier JAVAX_PERSISTENCE_API_ID = ModuleIdentifier.create("jakarta.persistence.api"); - private static final ModuleIdentifier JBOSS_AS_JPA_ID = ModuleIdentifier.create("org.jboss.as.jpa"); - private static final ModuleIdentifier JBOSS_AS_JPA_SPI_ID = ModuleIdentifier.create("org.jboss.as.jpa.spi"); + private static final String JAVAX_PERSISTENCE_API_ID = "jakarta.persistence.api"; + private static final String JBOSS_AS_JPA_ID = "org.jboss.as.jpa"; + private static final String JBOSS_AS_JPA_SPI_ID = "org.jboss.as.jpa.spi"; private static final String JAR_FILE_EXTENSION = ".jar"; private static final String LIB_FOLDER = "lib"; @@ -59,30 +58,18 @@ public void deploy(DeploymentPhaseContext phaseContext) throws DeploymentUnitPro final ModuleSpecification moduleSpecification = deploymentUnit.getAttachment(Attachments.MODULE_SPECIFICATION); final ModuleLoader moduleLoader = Module.getBootModuleLoader(); - // all applications get the jakarta.persistence module added to their deplyoment by default - addDependency(moduleSpecification, moduleLoader, deploymentUnit, JAVAX_PERSISTENCE_API_ID); + // all applications get the jakarta.persistence SPEC API module added to their deployment by default + moduleSpecification.addSystemDependency(new ModuleDependency(moduleLoader, JAVAX_PERSISTENCE_API_ID, false, false, true, false)); + ROOT_LOGGER.debugf("added %s dependency to %s", JAVAX_PERSISTENCE_API_ID, deploymentUnit.getName()); if (!JPADeploymentMarker.isJPADeployment(deploymentUnit)) { return; // Skip if there are no persistence use in the deployment } - addDependency(moduleSpecification, moduleLoader, deploymentUnit, JBOSS_AS_JPA_ID, JBOSS_AS_JPA_SPI_ID); - addPersistenceProviderModuleDependencies(phaseContext, moduleSpecification, moduleLoader); - } - - private void addDependency(ModuleSpecification moduleSpecification, ModuleLoader moduleLoader, - DeploymentUnit deploymentUnit, ModuleIdentifier... moduleIdentifiers) { - for ( ModuleIdentifier moduleIdentifier : moduleIdentifiers) { + for ( String moduleIdentifier : new String[]{JBOSS_AS_JPA_ID, JBOSS_AS_JPA_SPI_ID}) { moduleSpecification.addSystemDependency(new ModuleDependency(moduleLoader, moduleIdentifier, false, false, true, false)); ROOT_LOGGER.debugf("added %s dependency to %s", moduleIdentifier, deploymentUnit.getName()); } - } - - private void addOptionalDependency(ModuleSpecification moduleSpecification, ModuleLoader moduleLoader, - DeploymentUnit deploymentUnit, ModuleIdentifier... moduleIdentifiers) { - for ( ModuleIdentifier moduleIdentifier : moduleIdentifiers) { - moduleSpecification.addSystemDependency(new ModuleDependency(moduleLoader, moduleIdentifier, true, false, false, false)); - ROOT_LOGGER.debugf("added %s dependency to %s", moduleIdentifier, deploymentUnit.getName()); - } + addPersistenceProviderModuleDependencies(phaseContext, moduleSpecification, moduleLoader); } private void addPersistenceProviderModuleDependencies(DeploymentPhaseContext phaseContext, ModuleSpecification moduleSpecification, ModuleLoader moduleLoader) throws @@ -111,7 +98,8 @@ private void addPersistenceProviderModuleDependencies(DeploymentPhaseContext pha // add persistence provider dependency for (String dependency : moduleDependencies) { - addDependency(moduleSpecification, moduleLoader, deploymentUnit, ModuleIdentifier.fromString(dependency)); + moduleSpecification.addSystemDependency(new ModuleDependency(moduleLoader, dependency, false, false, true, false)); + ROOT_LOGGER.debugf("added %s dependency to %s", dependency, deploymentUnit.getName()); } // add the PU service as a dependency to all EE components in this scope @@ -229,10 +217,12 @@ private int loadPersistenceUnits(final ModuleSpecification moduleSpecification, // doesn't exist). String providerModuleName = Configuration.getProviderModuleNameFromProviderClassName(pu.getPersistenceProviderClassName()); if (providerModuleName != null) { - addOptionalDependency(moduleSpecification, moduleLoader, deploymentUnit, ModuleIdentifier.fromString(providerModuleName)); - ROOT_LOGGER.debugf("%s is configured to use persistence provider '%s', adding an optional dependency on module '%s'", - pu.getPersistenceUnitName(), pu.getPersistenceProviderClassName(), providerModuleName); + String moduleIdentifier = providerModuleName; + moduleSpecification.addSystemDependency(new ModuleDependency(moduleLoader, moduleIdentifier, true, false, false, false)); + ROOT_LOGGER.debugf("added %s dependency to %s", moduleIdentifier, deploymentUnit.getName()); } + ROOT_LOGGER.debugf("%s is configured to use persistence provider '%s', adding an optional dependency on module '%s'", + pu.getPersistenceUnitName(), pu.getPersistenceProviderClassName(), providerModuleName); } } } diff --git a/jpa/subsystem/src/main/java/org/jboss/as/jpa/processor/PersistenceProviderAdaptorLoader.java b/jpa/subsystem/src/main/java/org/jboss/as/jpa/processor/PersistenceProviderAdaptorLoader.java index 05b885cf26d1..f2839e39b355 100644 --- a/jpa/subsystem/src/main/java/org/jboss/as/jpa/processor/PersistenceProviderAdaptorLoader.java +++ b/jpa/subsystem/src/main/java/org/jboss/as/jpa/processor/PersistenceProviderAdaptorLoader.java @@ -20,7 +20,6 @@ import org.jboss.as.jpa.transaction.JtaManagerImpl; import org.jboss.jandex.Index; import org.jboss.modules.Module; -import org.jboss.modules.ModuleIdentifier; import org.jboss.modules.ModuleLoadException; import org.jboss.modules.ModuleLoader; import org.jipijapa.plugin.spi.JtaManager; @@ -106,7 +105,7 @@ public static PersistenceProviderAdaptor loadPersistenceAdapterModule(final Stri PersistenceProviderAdaptor persistenceProviderAdaptor=null; - Module module = moduleLoader.loadModule(ModuleIdentifier.fromString(adapterModule)); + Module module = moduleLoader.loadModule(adapterModule); final ServiceLoader serviceLoader = module.loadService(PersistenceProviderAdaptor.class); if (serviceLoader != null) { From 87dc2670db49d2d70cd9c53803ac8c990f3d3d93 Mon Sep 17 00:00:00 2001 From: Scott Marlow Date: Tue, 26 Nov 2024 16:09:37 -0500 Subject: [PATCH 2/6] [WFLY-20005] also update HibernateSearch processor to remove non-breaking use of ModuleIdentifier Signed-off-by: Scott Marlow --- .../processor/HibernateSearchProcessor.java | 41 ++++++++----------- 1 file changed, 17 insertions(+), 24 deletions(-) diff --git a/jpa/subsystem/src/main/java/org/jboss/as/jpa/processor/HibernateSearchProcessor.java b/jpa/subsystem/src/main/java/org/jboss/as/jpa/processor/HibernateSearchProcessor.java index 4b042dfd68fd..5d4a37998acc 100644 --- a/jpa/subsystem/src/main/java/org/jboss/as/jpa/processor/HibernateSearchProcessor.java +++ b/jpa/subsystem/src/main/java/org/jboss/as/jpa/processor/HibernateSearchProcessor.java @@ -22,7 +22,6 @@ import org.jboss.jandex.AnnotationInstance; import org.jboss.jandex.DotName; import org.jboss.modules.Module; -import org.jboss.modules.ModuleIdentifier; import org.jboss.modules.ModuleLoader; import org.jipijapa.plugin.spi.PersistenceUnitMetadata; @@ -38,17 +37,6 @@ public class HibernateSearchProcessor implements DeploymentUnitProcessor { private static final DotName ANNOTATION_INDEXED_NAME = DotName.createSimple("org.hibernate.search.mapper.pojo.mapping.definition.annotation.Indexed"); - private static final ModuleIdentifier MODULE_MAPPER_ORM_DEFAULT = - ModuleIdentifier.fromString(Configuration.HIBERNATE_SEARCH_MODULE_MAPPER_ORM); - - private static final ModuleIdentifier MODULE_MAPPER_ORM_OUTBOXPOLLING = - ModuleIdentifier.fromString(Configuration.HIBERNATE_SEARCH_MODULE_MAPPER_ORM_OUTBOXPOLLING); - private static final ModuleIdentifier MODULE_BACKEND_LUCENE = - ModuleIdentifier.fromString(Configuration.HIBERNATE_SEARCH_MODULE_BACKEND_LUCENE); - private static final ModuleIdentifier MODULE_BACKEND_ELASTICSEARCH = - ModuleIdentifier.fromString(Configuration.HIBERNATE_SEARCH_MODULE_BACKEND_ELASTICSEARCH); - - private static final String NONE = "none"; private static final String IGNORE = "auto"; // if set to `auto`, will behave like not having set the property @@ -93,18 +81,20 @@ else if (!providerModule.equals(searchMapperModuleName)) { // use Search module name specified in persistence unit definition if (searchMapperModuleName != null && !IGNORE.equals(searchMapperModuleName)) { - ModuleIdentifier moduleIdentifier = ModuleIdentifier.fromString(searchMapperModuleName); - moduleSpecification.addSystemDependency(new ModuleDependency(moduleLoader, moduleIdentifier, false, true, true, false)); - ROOT_LOGGER.debugf("added %s dependency to %s", moduleIdentifier, deploymentUnit.getName()); + moduleSpecification.addSystemDependency(ModuleDependency.Builder.of(moduleLoader, searchMapperModuleName). + setOptional(false).setExport(true).setImportServices(true).setUserSpecified(false).build()); + + ROOT_LOGGER.debugf("added %s dependency to %s", searchMapperModuleName, deploymentUnit.getName()); } else { // add Hibernate Search module dependency if application is using the Hibernate Search Indexed annotation final CompositeIndex index = deploymentUnit.getAttachment(org.jboss.as.server.deployment.Attachments.COMPOSITE_ANNOTATION_INDEX); List annotations = index.getAnnotations(ANNOTATION_INDEXED_NAME); if (annotations != null && !annotations.isEmpty()) { - moduleSpecification.addSystemDependency(new ModuleDependency(moduleLoader, MODULE_MAPPER_ORM_DEFAULT, - false, true, true, false)); + moduleSpecification.addSystemDependency( + ModuleDependency.Builder.of(moduleLoader, Configuration.HIBERNATE_SEARCH_MODULE_MAPPER_ORM). + setOptional(false).setExport(true).setImportServices(true).setUserSpecified(false).build()); ROOT_LOGGER.debugf("deployment %s contains %s annotation, added %s dependency", deploymentUnit.getName(), - ANNOTATION_INDEXED_NAME, MODULE_MAPPER_ORM_DEFAULT); + ANNOTATION_INDEXED_NAME, Configuration.HIBERNATE_SEARCH_MODULE_MAPPER_ORM); } } @@ -116,20 +106,23 @@ else if (!providerModule.equals(searchMapperModuleName)) { List backendTypes = HibernateSearchDeploymentMarker.getBackendTypes(deploymentUnit); if (backendTypes != null) { if (backendTypes.contains(Configuration.HIBERNATE_SEARCH_BACKEND_TYPE_VALUE_LUCENE)) { - moduleSpecification.addSystemDependency(new ModuleDependency(moduleLoader, MODULE_BACKEND_LUCENE, - false, true, true, false)); + moduleSpecification.addSystemDependency( + ModuleDependency.Builder.of(moduleLoader, Configuration.HIBERNATE_SEARCH_MODULE_BACKEND_LUCENE). + setOptional(false).setExport(true).setImportServices(true).setUserSpecified(false).build()); } if (backendTypes.contains(Configuration.HIBERNATE_SEARCH_BACKEND_TYPE_VALUE_ELASTICSEARCH)) { - moduleSpecification.addSystemDependency(new ModuleDependency(moduleLoader, MODULE_BACKEND_ELASTICSEARCH, - false, true, true, false)); + moduleSpecification.addSystemDependency( + ModuleDependency.Builder.of(moduleLoader, Configuration.HIBERNATE_SEARCH_MODULE_BACKEND_ELASTICSEARCH). + setOptional(false).setExport(true).setImportServices(true).setUserSpecified(false).build()); } } List coordinationStrategies = HibernateSearchDeploymentMarker.getCoordinationStrategies(deploymentUnit); if (coordinationStrategies != null) { if (coordinationStrategies.contains(Configuration.HIBERNATE_SEARCH_COORDINATION_STRATEGY_VALUE_OUTBOX_POLLING)) { - moduleSpecification.addSystemDependency(new ModuleDependency(moduleLoader, MODULE_MAPPER_ORM_OUTBOXPOLLING, - false, true, true, false)); + moduleSpecification.addSystemDependency( + ModuleDependency.Builder.of(moduleLoader, Configuration.HIBERNATE_SEARCH_MODULE_MAPPER_ORM_OUTBOXPOLLING). + setOptional(false).setExport(true).setExport(true).setImportServices(true).setUserSpecified(false).build()); } } } From ea1a4ebb4e0a66ce968399274555944d58c404e1 Mon Sep 17 00:00:00 2001 From: Scott Marlow Date: Wed, 4 Dec 2024 14:48:59 -0500 Subject: [PATCH 3/6] [WFLY-20005] only log output if PersistenceProviderModuleName is not null Signed-off-by: Scott Marlow --- .../jpa/processor/JPADependencyProcessor.java | 26 +++++++------------ 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/jpa/subsystem/src/main/java/org/jboss/as/jpa/processor/JPADependencyProcessor.java b/jpa/subsystem/src/main/java/org/jboss/as/jpa/processor/JPADependencyProcessor.java index 730a592fe07c..606ef3692e6c 100644 --- a/jpa/subsystem/src/main/java/org/jboss/as/jpa/processor/JPADependencyProcessor.java +++ b/jpa/subsystem/src/main/java/org/jboss/as/jpa/processor/JPADependencyProcessor.java @@ -22,7 +22,6 @@ import org.jboss.as.server.deployment.Attachments; import org.jboss.as.server.deployment.DeploymentPhaseContext; import org.jboss.as.server.deployment.DeploymentUnit; -import org.jboss.as.server.deployment.DeploymentUnitProcessingException; import org.jboss.as.server.deployment.DeploymentUnitProcessor; import org.jboss.as.server.deployment.DeploymentUtils; import org.jboss.as.server.deployment.JPADeploymentMarker; @@ -47,13 +46,11 @@ public class JPADependencyProcessor implements DeploymentUnitProcessor { private static final String JAVAX_PERSISTENCE_API_ID = "jakarta.persistence.api"; private static final String JBOSS_AS_JPA_ID = "org.jboss.as.jpa"; private static final String JBOSS_AS_JPA_SPI_ID = "org.jboss.as.jpa.spi"; - private static final String JAR_FILE_EXTENSION = ".jar"; - private static final String LIB_FOLDER = "lib"; /** * Add dependencies for modules required for Jakarta Persistence deployments */ - public void deploy(DeploymentPhaseContext phaseContext) throws DeploymentUnitProcessingException { + public void deploy(DeploymentPhaseContext phaseContext) { final DeploymentUnit deploymentUnit = phaseContext.getDeploymentUnit(); final ModuleSpecification moduleSpecification = deploymentUnit.getAttachment(Attachments.MODULE_SPECIFICATION); final ModuleLoader moduleLoader = Module.getBootModuleLoader(); @@ -72,8 +69,7 @@ public void deploy(DeploymentPhaseContext phaseContext) throws DeploymentUnitPro addPersistenceProviderModuleDependencies(phaseContext, moduleSpecification, moduleLoader); } - private void addPersistenceProviderModuleDependencies(DeploymentPhaseContext phaseContext, ModuleSpecification moduleSpecification, ModuleLoader moduleLoader) throws - DeploymentUnitProcessingException { + private void addPersistenceProviderModuleDependencies(DeploymentPhaseContext phaseContext, ModuleSpecification moduleSpecification, ModuleLoader moduleLoader) { final DeploymentUnit deploymentUnit = phaseContext.getDeploymentUnit(); @@ -182,12 +178,10 @@ private static void addPUServiceDependencyToComponents(final Collection moduleDependencies, final PersistenceUnitMetadataHolder holder) throws - DeploymentUnitProcessingException { + private int loadPersistenceUnits(final ModuleSpecification moduleSpecification, final ModuleLoader moduleLoader, final DeploymentUnit deploymentUnit, final Set moduleDependencies, final PersistenceUnitMetadataHolder holder) { int defaultProviderCount = 0; if (holder != null) { for (PersistenceUnitMetadata pu : holder.getPersistenceUnits()) { - String providerModule = pu.getProperties().getProperty(Configuration.PROVIDER_MODULE); String adapterModule = pu.getProperties().getProperty(Configuration.ADAPTER_MODULE); String adapterClass = pu.getProperties().getProperty(Configuration.ADAPTER_CLASS); @@ -215,14 +209,14 @@ private int loadPersistenceUnits(final ModuleSpecification moduleSpecification, // since we don't know (until after PersistenceProviderProcessor runs in a later phase) if the provider // is packaged with the app or will be accessed as a module, make the module dependency optional (in case it // doesn't exist). - String providerModuleName = Configuration.getProviderModuleNameFromProviderClassName(pu.getPersistenceProviderClassName()); - if (providerModuleName != null) { - String moduleIdentifier = providerModuleName; - moduleSpecification.addSystemDependency(new ModuleDependency(moduleLoader, moduleIdentifier, true, false, false, false)); - ROOT_LOGGER.debugf("added %s dependency to %s", moduleIdentifier, deploymentUnit.getName()); + String persistenceProviderModule = Configuration.getProviderModuleNameFromProviderClassName(pu.getPersistenceProviderClassName()); + if (persistenceProviderModule != null) { + moduleSpecification.addSystemDependency(new ModuleDependency(moduleLoader, persistenceProviderModule, true, false, false, false)); + ROOT_LOGGER.debugf("Adding %s dependency to %s. " + + "Persistence Unit %s is configured to use Persistence Provider '%s', adding an optional dependency on Persistence Provider Module '%s'", + persistenceProviderModule, deploymentUnit.getName(), + pu.getPersistenceUnitName(), pu.getPersistenceProviderClassName(), persistenceProviderModule); } - ROOT_LOGGER.debugf("%s is configured to use persistence provider '%s', adding an optional dependency on module '%s'", - pu.getPersistenceUnitName(), pu.getPersistenceProviderClassName(), providerModuleName); } } } From 713204532907cd8759ac20db9701e3a96b4328ca Mon Sep 17 00:00:00 2001 From: Scott Marlow Date: Sun, 8 Dec 2024 09:44:38 -0500 Subject: [PATCH 4/6] [WFLY-20005] restore removed logger message Signed-off-by: Scott Marlow --- .../java/org/jboss/as/jpa/messages/JpaLogger.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/jpa/subsystem/src/main/java/org/jboss/as/jpa/messages/JpaLogger.java b/jpa/subsystem/src/main/java/org/jboss/as/jpa/messages/JpaLogger.java index eab63b50447e..f717bb240259 100644 --- a/jpa/subsystem/src/main/java/org/jboss/as/jpa/messages/JpaLogger.java +++ b/jpa/subsystem/src/main/java/org/jboss/as/jpa/messages/JpaLogger.java @@ -298,6 +298,18 @@ public interface JpaLogger extends BasicLogger { @Message(id = 25, value = "Couldn't load %s from Jakarta Persistence modules classloader") RuntimeException cannotLoadFromJpa(@Cause Throwable cause, String injectionTypeName); +// /** +// * Creates an exception indicating the module, represented by the {@code moduleId} parameter, could not be loaded +// * for the adapter, represented by the {@code name} parameter. +// * +// * @param cause the cause of the error. +// * @param moduleId the module id that was attempting to be loaded. +// * @param name the name of the adapter. +// * @return a {@link RuntimeException} for the error. +// */ + //@Message(id = 26, value = "Could not load module %s to add %s adapter to deployment") + //RuntimeException cannotLoadModule(@Cause Throwable cause, ModuleIdentifier moduleId, String name); + /** * Creates an exception indicating the persistence provider module, represented by the * {@code persistenceProviderModule} parameter, had an error loading. From 00e6180836ff5b169f242d9114a9728fe9fd9ab6 Mon Sep 17 00:00:00 2001 From: Scott Marlow Date: Wed, 11 Dec 2024 09:35:45 -0500 Subject: [PATCH 5/6] [WFLY-20005] Use ModuleIdentifierUtil.canonicalModuleIdentifier to address org.jboss.as.test.integration.jpa.jarfile.JpaJarFileTestCase test failure Signed-off-by: Scott Marlow --- .../as/jpa/persistenceprovider/PersistenceProviderLoader.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/jpa/subsystem/src/main/java/org/jboss/as/jpa/persistenceprovider/PersistenceProviderLoader.java b/jpa/subsystem/src/main/java/org/jboss/as/jpa/persistenceprovider/PersistenceProviderLoader.java index 1c83c01a89f7..2b2ebd22944b 100644 --- a/jpa/subsystem/src/main/java/org/jboss/as/jpa/persistenceprovider/PersistenceProviderLoader.java +++ b/jpa/subsystem/src/main/java/org/jboss/as/jpa/persistenceprovider/PersistenceProviderLoader.java @@ -11,6 +11,7 @@ import jakarta.persistence.spi.PersistenceProvider; +import org.jboss.as.controller.ModuleIdentifierUtil; import org.jboss.as.jpa.config.Configuration; import org.jboss.modules.Module; import org.jboss.modules.ModuleLoadException; @@ -43,6 +44,7 @@ public static void loadDefaultProvider() throws ModuleLoadException { * Note: side effect of saving loaded persistence providers to static api in jakarta.persistence.spi.PersistenceProvider. */ public static List loadProviderModuleByName(String moduleName) throws ModuleLoadException { + moduleName = ModuleIdentifierUtil.canonicalModuleIdentifier(moduleName); final ModuleLoader moduleLoader = Module.getBootModuleLoader(); Module module = moduleLoader.loadModule(moduleName); final ServiceLoader serviceLoader = From 2bcf75bb2663c24cd3063d219eaae2b7029d0ffa Mon Sep 17 00:00:00 2001 From: Scott Marlow Date: Wed, 11 Dec 2024 09:43:37 -0500 Subject: [PATCH 6/6] [WFLY-20005] Use ModuleIdentifierUtil.canonicalModuleIdentifier with Hibernate Search (adaptor) module loading Signed-off-by: Scott Marlow --- .../as/jpa/processor/PersistenceProviderAdaptorLoader.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/jpa/subsystem/src/main/java/org/jboss/as/jpa/processor/PersistenceProviderAdaptorLoader.java b/jpa/subsystem/src/main/java/org/jboss/as/jpa/processor/PersistenceProviderAdaptorLoader.java index f2839e39b355..0626541d858c 100644 --- a/jpa/subsystem/src/main/java/org/jboss/as/jpa/processor/PersistenceProviderAdaptorLoader.java +++ b/jpa/subsystem/src/main/java/org/jboss/as/jpa/processor/PersistenceProviderAdaptorLoader.java @@ -16,6 +16,7 @@ import jakarta.enterprise.inject.spi.BeanManager; import jakarta.persistence.spi.PersistenceProvider; +import org.jboss.as.controller.ModuleIdentifierUtil; import org.jboss.as.jpa.messages.JpaLogger; import org.jboss.as.jpa.transaction.JtaManagerImpl; import org.jboss.jandex.Index; @@ -95,7 +96,7 @@ public void markPersistenceUnitAvailable(Object wrapperBeanManagerLifeCycle) { * @return the persistence provider adaptor for the provider class * @throws ModuleLoadException */ - public static PersistenceProviderAdaptor loadPersistenceAdapterModule(final String adapterModule, final Platform platform, JtaManagerImpl manager) throws + public static PersistenceProviderAdaptor loadPersistenceAdapterModule(String adapterModule, final Platform platform, JtaManagerImpl manager) throws ModuleLoadException { final ModuleLoader moduleLoader = Module.getBootModuleLoader(); @@ -104,7 +105,7 @@ public static PersistenceProviderAdaptor loadPersistenceAdapterModule(final Stri } PersistenceProviderAdaptor persistenceProviderAdaptor=null; - + adapterModule = ModuleIdentifierUtil.canonicalModuleIdentifier(adapterModule); Module module = moduleLoader.loadModule(adapterModule); final ServiceLoader serviceLoader = module.loadService(PersistenceProviderAdaptor.class); @@ -171,7 +172,7 @@ public static List loadPersistenceProvider final ModuleLoader moduleLoader = Module.getBootModuleLoader(); List persistenceProviderAdaptors = new ArrayList<>(); - + adapterModule = ModuleIdentifierUtil.canonicalModuleIdentifier(adapterModule); Module module = moduleLoader.loadModule(adapterModule); final ServiceLoader serviceLoader = module.loadService(PersistenceProviderIntegratorAdaptor.class);