From ed01e3d40e200fffb5297d526213e202563b253b Mon Sep 17 00:00:00 2001 From: Alfonso Altamirano Date: Thu, 30 May 2024 19:16:13 -0600 Subject: [PATCH] FISH-8309: fixing issue from TCK with changes of the persistence context cdi issue --- .../deployment/BundleDescriptor.java | 10 ++++- .../deployment/archivist/Archivist.java | 3 +- .../descriptor/EjbBundleDescriptorImpl.java | 11 +++++- .../deployment/descriptor/EjbDescriptor.java | 39 ++++++++++++++++++- 4 files changed, 59 insertions(+), 4 deletions(-) diff --git a/appserver/deployment/dol/src/main/java/com/sun/enterprise/deployment/BundleDescriptor.java b/appserver/deployment/dol/src/main/java/com/sun/enterprise/deployment/BundleDescriptor.java index c62afcd7a89..c9fb263526f 100644 --- a/appserver/deployment/dol/src/main/java/com/sun/enterprise/deployment/BundleDescriptor.java +++ b/appserver/deployment/dol/src/main/java/com/sun/enterprise/deployment/BundleDescriptor.java @@ -37,7 +37,7 @@ * only if the new code is made subject to such option by the copyright * holder. */ -// Portions Copyright [2016-2021] [Payara Foundation and/or its affiliates] +// Portions Copyright [2016-2024] [Payara Foundation and/or its affiliates] package com.sun.enterprise.deployment; @@ -604,6 +604,14 @@ public void print(StringBuilder toStringBuilder) { @Override public abstract ArchiveType getModuleType(); + /** + * Processes the bundle descriptor. + * This method should be overridden in subclasses to provide specific processing logic + * for the bundle descriptor. + */ + public void processBundleDescriptor() { + } + /** * @return the visitor for this bundle descriptor */ diff --git a/appserver/deployment/dol/src/main/java/com/sun/enterprise/deployment/archivist/Archivist.java b/appserver/deployment/dol/src/main/java/com/sun/enterprise/deployment/archivist/Archivist.java index 00ceebdf2f8..e9d7b1c8d7a 100644 --- a/appserver/deployment/dol/src/main/java/com/sun/enterprise/deployment/archivist/Archivist.java +++ b/appserver/deployment/dol/src/main/java/com/sun/enterprise/deployment/archivist/Archivist.java @@ -37,7 +37,7 @@ * only if the new code is made subject to such option by the copyright * holder. */ -// Portions Copyright [2020-2021] [Payara Foundation and/or its affiliates.] +// Portions Copyright [2020-2024] [Payara Foundation and/or its affiliates.] package com.sun.enterprise.deployment.archivist; @@ -375,6 +375,7 @@ public void postRuntimeDDsRead(T descriptor, */ protected void postOpen(T descriptor, ReadableArchive archive) throws IOException { + descriptor.processBundleDescriptor(); } /** diff --git a/appserver/ejb/ejb-container/src/main/java/org/glassfish/ejb/deployment/descriptor/EjbBundleDescriptorImpl.java b/appserver/ejb/ejb-container/src/main/java/org/glassfish/ejb/deployment/descriptor/EjbBundleDescriptorImpl.java index a6c43014e30..8f762deb456 100644 --- a/appserver/ejb/ejb-container/src/main/java/org/glassfish/ejb/deployment/descriptor/EjbBundleDescriptorImpl.java +++ b/appserver/ejb/ejb-container/src/main/java/org/glassfish/ejb/deployment/descriptor/EjbBundleDescriptorImpl.java @@ -37,7 +37,7 @@ * only if the new code is made subject to such option by the copyright * holder. */ -// Portions Copyright [2016-2019] [Payara Foundation and/or its affiliates] +// Portions Copyright [2016-2024] [Payara Foundation and/or its affiliates] package org.glassfish.ejb.deployment.descriptor; @@ -355,6 +355,15 @@ public Collection getDescriptorIds() { return ejbIDs; } + /** + * Processes the bundle descriptor by invoking the processing of each EjbDescriptor. + * It is assumed that the ejbs collection is already populated with EjbDescriptor instances. + */ + public void processBundleDescriptor() { + for (EjbDescriptor ejbDescriptor : ejbs) { + ejbDescriptor.processDescriptor(); + } + } public void addEjb(EjbDescriptor ejbDescriptor) { ejbDescriptor.setEjbBundleDescriptor(this); ejbs.add(ejbDescriptor); diff --git a/appserver/ejb/ejb-container/src/main/java/org/glassfish/ejb/deployment/descriptor/EjbDescriptor.java b/appserver/ejb/ejb-container/src/main/java/org/glassfish/ejb/deployment/descriptor/EjbDescriptor.java index 9b77c9010e9..2979c8becd2 100644 --- a/appserver/ejb/ejb-container/src/main/java/org/glassfish/ejb/deployment/descriptor/EjbDescriptor.java +++ b/appserver/ejb/ejb-container/src/main/java/org/glassfish/ejb/deployment/descriptor/EjbDescriptor.java @@ -37,7 +37,7 @@ * only if the new code is made subject to such option by the copyright * holder. */ -// Portions Copyright [2019-2021] [Payara Foundation and/or its affiliates] +// Portions Copyright [2019-2024] [Payara Foundation and/or its affiliates] package org.glassfish.ejb.deployment.descriptor; @@ -2373,6 +2373,43 @@ public void setEjbBundleDescriptor(EjbBundleDescriptorImpl bundleDescriptor) { this.bundleDescriptor = bundleDescriptor; } + /** + * Processes the descriptor by adding various descriptors and properties + * from the root bundle descriptor. + * It is expected that the bundle descriptor is already set before calling this method. + */ + public void processDescriptor() { + if (this.bundleDescriptor != null) { + for (Object msgDestRefObj : this.bundleDescriptor.getMessageDestinationReferenceDescriptors()) { + addMessageDestinationReferenceDescriptor((MessageDestinationReferenceDescriptor) msgDestRefObj); + } + + for (Object envPropObj : this.bundleDescriptor.getEnvironmentProperties()) { + addOrMergeEnvironmentProperty((EnvironmentProperty) envPropObj); + } + + for (Object servRefObj : this.bundleDescriptor.getServiceReferenceDescriptors()) { + addServiceReferenceDescriptor((ServiceReferenceDescriptor) servRefObj); + } + + for (Object resRefObj : this.bundleDescriptor.getResourceReferenceDescriptors()) { + addResourceReferenceDescriptor((ResourceReferenceDescriptor) resRefObj); + } + + for (Object resourceEnvRefObj : this.bundleDescriptor.getResourceEnvReferenceDescriptors()) { + addResourceEnvReferenceDescriptor((ResourceEnvReferenceDescriptor) resourceEnvRefObj); + } + + for (EntityManagerFactoryReferenceDescriptor entMgrFacRef : this.bundleDescriptor.getEntityManagerFactoryReferenceDescriptors()) { + addEntityManagerFactoryReferenceDescriptor(entMgrFacRef); + } + + for (EntityManagerReferenceDescriptor entMgrRef : this.bundleDescriptor.getEntityManagerReferenceDescriptors()) { + addEntityManagerReferenceDescriptor(entMgrRef); + } + } + } + /** * Called by WebArchivist to notify this EjbDescriptor that it has been associated with a web bundle. *