You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by jg...@apache.org on 2021/11/16 15:04:22 UTC

[tomee] branch master updated: TOMEE-3815 Adding logging messages

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

jgallimore pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tomee.git


The following commit(s) were added to refs/heads/master by this push:
     new dde3bd1  TOMEE-3815 Adding logging messages
dde3bd1 is described below

commit dde3bd155422fd388561dbf386a6ee78e3261f71
Author: Jonathan Gallimore <jo...@jrg.me.uk>
AuthorDate: Tue Nov 16 14:43:07 2021 +0000

    TOMEE-3815 Adding logging messages
---
 .../java/org/apache/openejb/cdi/CdiScanner.java    | 23 ++++++++++++++++++++++
 .../org/apache/openejb/cdi/OpenEJBLifecycle.java   |  7 ++++++-
 2 files changed, 29 insertions(+), 1 deletion(-)

diff --git a/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiScanner.java b/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiScanner.java
index dd37209..022ef86 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiScanner.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiScanner.java
@@ -61,6 +61,7 @@ import static java.util.Arrays.asList;
  * @version $Rev:$ $Date:$
  */
 public class CdiScanner implements BdaScannerService {
+    private static final Logger logger = Logger.getInstance(LogCategory.OPENEJB_CDI, OpenEJBLifecycle.class);
     public static final String OPENEJB_CDI_FILTER_CLASSLOADER = "openejb.cdi.filter.classloader";
 
     private static final Class<?>[] TRANSACTIONAL_INTERCEPTORS = new Class<?>[]{
@@ -310,6 +311,10 @@ public class CdiScanner implements BdaScannerService {
                     if (isBean(clazz)) {
                         classes.add(clazz);
                         if (beans.startupClasses.contains(name)) {
+                            logger.debug("Adding class " + clazz.getName()
+                                    + " from " + getLocation(clazz) + " to startup list. Scan mode="
+                                    + information.getBeanDiscoveryMode().toString() + ". EAR webapp=" + !isNotEarWebApp);
+
                             startupClasses.add(clazz);
                         }
                     }
@@ -322,6 +327,11 @@ public class CdiScanner implements BdaScannerService {
                             || ((loader.equals(scl) || loader == containerLoader) && isNotEarWebApp)) {
                         classes.add(clazz);
                         if (beans.startupClasses.contains(name)) {
+                            logger.debug("Adding class " + clazz.getName()
+                                    + " from " + getLocation(clazz)
+                                    + " to startup list. Scan mode=" + information.getBeanDiscoveryMode().toString()
+                                    + ". EAR webapp=" + !isNotEarWebApp);
+                            
                             startupClasses.add(clazz);
                         }
                     }
@@ -410,4 +420,17 @@ public class CdiScanner implements BdaScannerService {
     public Set<Class<?>> getStartupClasses() {
         return startupClasses;
     }
+
+    public static String getLocation(final Class<?> clazz) {
+
+        if (clazz != null
+                && clazz.getProtectionDomain() != null
+                && clazz.getProtectionDomain().getCodeSource() != null
+                && clazz.getProtectionDomain().getCodeSource().getLocation() != null) {
+
+            return clazz.getProtectionDomain().getCodeSource().getLocation().toString();
+        }
+
+        return "<not available>";
+    }
 }
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java b/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java
index 6fec759..cf84155 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java
@@ -262,8 +262,13 @@ public class OpenEJBLifecycle implements ContainerLifecycle {
 
     private void starts(final BeanManager beanManager, final Class<?> clazz) {
         final Bean<?> bean = beanManager.resolve(beanManager.getBeans(clazz));
+
+        logger.debug("Starting bean " + clazz.getName());
         if (!beanManager.isNormalScope(bean.getScope())) {
-            throw new IllegalStateException("Only normal scoped beans can use @Startup - likely @ApplicationScoped");
+            throw new IllegalStateException("Unable to start bean " + clazz.getName() +
+                    ", from " + CdiScanner.getLocation(clazz) +
+                    ", with scope " + bean.getScope().getName() +
+                    ". Only normal scoped beans can use @Startup (e.g. @ApplicationScoped)");
         }
 
         final CreationalContext<Object> creationalContext = beanManager.createCreationalContext(null);