You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2011/12/01 07:18:56 UTC

svn commit: r1208963 - in /openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb: api/ api/internal/ api/internal/Internal.java assembler/classic/ReloadableEntityManagerFactory.java config/MBeanDeployer.java

Author: rmannibucau
Date: Thu Dec  1 06:18:55 2011
New Revision: 1208963

URL: http://svn.apache.org/viewvc?rev=1208963&view=rev
Log:
ability to mark Ignore an internal object to avoid to re-deploy it or to show it (used for internal @Mbeans today)

Added:
    openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/api/
    openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/api/internal/
    openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/api/internal/Internal.java
Modified:
    openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ReloadableEntityManagerFactory.java
    openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/MBeanDeployer.java

Added: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/api/internal/Internal.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/api/internal/Internal.java?rev=1208963&view=auto
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/api/internal/Internal.java (added)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/api/internal/Internal.java Thu Dec  1 06:18:55 2011
@@ -0,0 +1,18 @@
+package org.apache.openejb.api.internal;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Can be used as a marker to specify than an object is internal.
+ *
+ * Used for instance for internal @Mbeans.
+ *
+ * @author rmannibucau
+ */
+@Target({ ElementType.TYPE, ElementType.METHOD, ElementType.FIELD })
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Internal {
+}

Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ReloadableEntityManagerFactory.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ReloadableEntityManagerFactory.java?rev=1208963&r1=1208962&r2=1208963&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ReloadableEntityManagerFactory.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ReloadableEntityManagerFactory.java Thu Dec  1 06:18:55 2011
@@ -1,6 +1,7 @@
 package org.apache.openejb.assembler.classic;
 
 import org.apache.openejb.OpenEJBException;
+import org.apache.openejb.api.internal.Internal;
 import org.apache.openejb.jee.JAXBContextFactory;
 import org.apache.openejb.jee.Persistence;
 import org.apache.openejb.jee.PersistenceUnitCaching;
@@ -284,6 +285,7 @@ public class ReloadableEntityManagerFact
     }
 
     @MBean
+    @Internal
     @Description("represents a persistence unit managed by OpenEJB")
     public static class JMXReloadableEntityManagerFactory {
         private ReloadableEntityManagerFactory reloadableEntityManagerFactory;

Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/MBeanDeployer.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/MBeanDeployer.java?rev=1208963&r1=1208962&r2=1208963&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/MBeanDeployer.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/MBeanDeployer.java Thu Dec  1 06:18:55 2011
@@ -32,10 +32,12 @@ import javax.management.MBeanServer;
 import javax.management.ObjectName;
 import org.apache.openejb.OpenEJB;
 import org.apache.openejb.OpenEJBException;
+import org.apache.openejb.api.internal.Internal;
 import org.apache.openejb.loader.SystemInstance;
 import org.apache.openejb.monitoring.DynamicMBeanWrapper;
 import org.apache.openejb.monitoring.LocalMBeanServer;
 import org.apache.openejb.monitoring.ObjectNameBuilder;
+import org.apache.openejb.util.AnnotationUtil;
 import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.Logger;
 import org.apache.xbean.finder.ClassFinder;
@@ -143,7 +145,9 @@ public class MBeanDeployer implements Dy
             }
 
             for (Class<?> clazz : list) {
-                mbeans.put(clazz, getObjectName(clazz, id));
+                if (AnnotationUtil.getAnnotation(Internal.class, clazz) == null) {
+                    mbeans.put(clazz, getObjectName(clazz, id));
+                }
             }
         } else if (listProp != null) {
             for (String name : listProp.replace(" ", "").split(OPENEJB_MBEAN_CLASSES_SPLIT)) {