Author: markt
Date: Mon May  3 22:50:52 2010
New Revision: 940660

URL: http://svn.apache.org/viewvc?rev=940660&view=rev
Log:
Move ManagerBase to new Lifecycle/MBean implementation
Fix a bunch of Eclipse/FindBugs warnings

Modified:
    tomcat/trunk/java/org/apache/catalina/session/ManagerBase.java

Modified: tomcat/trunk/java/org/apache/catalina/session/ManagerBase.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/session/ManagerBase.java?rev=940660&r1=940659&r2=940660&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/session/ManagerBase.java (original)
+++ tomcat/trunk/java/org/apache/catalina/session/ManagerBase.java Mon May  3 
22:50:52 2010
@@ -38,23 +38,19 @@ import java.util.Map;
 import java.util.Random;
 import java.util.concurrent.ConcurrentHashMap;
 
-import javax.management.MBeanRegistration;
-import javax.management.MBeanServer;
-import javax.management.ObjectName;
-
 import org.apache.catalina.Container;
+import org.apache.catalina.Context;
 import org.apache.catalina.Engine;
 import org.apache.catalina.Globals;
+import org.apache.catalina.LifecycleException;
 import org.apache.catalina.Manager;
 import org.apache.catalina.Session;
-import org.apache.catalina.core.StandardContext;
-import org.apache.catalina.core.StandardHost;
-import org.apache.catalina.util.LifecycleBase;
+import org.apache.catalina.mbeans.MBeanUtils;
+import org.apache.catalina.util.LifecycleMBeanBase;
 import org.apache.tomcat.util.ExceptionUtils;
 import org.apache.tomcat.util.res.StringManager;
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
-import org.apache.tomcat.util.modeler.Registry;
 
 
 /**
@@ -66,8 +62,8 @@ import org.apache.tomcat.util.modeler.Re
  * @version $Id$
  */
 
-public abstract class ManagerBase extends LifecycleBase
-        implements Manager, MBeanRegistration {
+public abstract class ManagerBase extends LifecycleMBeanBase
+        implements Manager {
 
     private final Log log = LogFactory.getLog(ManagerBase.class); // must not 
be static
 
@@ -189,7 +185,7 @@ public abstract class ManagerBase extend
     private final Object maxActiveUpdateLock = new Object();
 
     // number of duplicated session ids - anything >0 means we have problems
-    protected int duplicates=0;
+    protected volatile int duplicates=0;
 
     /**
      * Processing time during session expiration.
@@ -371,9 +367,8 @@ public abstract class ManagerBase extend
         boolean oldDistributable = this.distributable;
         this.distributable = distributable;
         support.firePropertyChange("distributable",
-                                   new Boolean(oldDistributable),
-                                   new Boolean(this.distributable));
-
+                                   Boolean.valueOf(oldDistributable),
+                                   Boolean.valueOf(this.distributable));
     }
 
 
@@ -395,7 +390,7 @@ public abstract class ManagerBase extend
                 paramTypes[1] = int.class;
                 Object paramValues[] = new Object[2];
                 paramValues[0] = result;
-                paramValues[1] = new Integer(32);
+                paramValues[1] = Integer.valueOf(32);
                 Method method = Class.forName("org.apache.tomcat.jni.OS")
                     .getMethod(methodName, paramTypes);
                 method.invoke(null, paramValues);
@@ -463,8 +458,8 @@ public abstract class ManagerBase extend
         int oldMaxInactiveInterval = this.maxInactiveInterval;
         this.maxInactiveInterval = interval;
         support.firePropertyChange("maxInactiveInterval",
-                                   new Integer(oldMaxInactiveInterval),
-                                   new Integer(this.maxInactiveInterval));
+                                   Integer.valueOf(oldMaxInactiveInterval),
+                                   Integer.valueOf(this.maxInactiveInterval));
 
     }
 
@@ -493,8 +488,8 @@ public abstract class ManagerBase extend
         int oldSessionIdLength = this.sessionIdLength;
         this.sessionIdLength = idLength;
         support.firePropertyChange("sessionIdLength",
-                                   new Integer(oldSessionIdLength),
-                                   new Integer(this.sessionIdLength));
+                                   Integer.valueOf(oldSessionIdLength),
+                                   Integer.valueOf(this.sessionIdLength));
 
     }
 
@@ -671,8 +666,8 @@ public abstract class ManagerBase extend
         int oldProcessExpiresFrequency = this.processExpiresFrequency;
         this.processExpiresFrequency = processExpiresFrequency;
         support.firePropertyChange("processExpiresFrequency",
-                                   new Integer(oldProcessExpiresFrequency),
-                                   new Integer(this.processExpiresFrequency));
+                                   Integer.valueOf(oldProcessExpiresFrequency),
+                                   
Integer.valueOf(this.processExpiresFrequency));
 
     }
     // --------------------------------------------------------- Public Methods
@@ -711,9 +706,8 @@ public abstract class ManagerBase extend
     }
 
     @Override
-    protected void destroyInternal() {
-        if( oname != null )
-            Registry.getRegistry(null, null).unregisterComponent(oname);
+    protected void destroyInternal() throws LifecycleException {
+
         if (randomIS!=null) {
             try {
                 randomIS.close();
@@ -722,37 +716,19 @@ public abstract class ManagerBase extend
             }
             randomIS=null;
         }
-
-        oname = null;
+        
+        super.destroyInternal();
     }
     
     @Override
-    protected void initInternal() {
+    protected void initInternal() throws LifecycleException {
         
-        if( oname==null ) {
-            try {
-                StandardContext ctx=(StandardContext)this.getContainer();
-                domain=ctx.getEngineName();
-                distributable = ctx.getDistributable();
-                StandardHost hst=(StandardHost)ctx.getParent();
-                String path = ctx.getPath();
-                if (path.equals("")) {
-                    path = "/";
-                }   
-                oname=new ObjectName(domain + ":type=Manager,path="
-                + path + ",host=" + hst.getName());
-                Registry.getRegistry(null, null).registerComponent(this, 
oname, null );
-            } catch (Exception e) {
-                log.error("Error registering ",e);
-            }
-        }
+        super.initInternal();
         
+        setDistributable(((Context) getContainer()).getDistributable());
+
         // Initialize random number generation
         getRandomBytes(new byte[16]);
-        
-        if(log.isDebugEnabled())
-            log.debug("Registering " + oname );
-               
     }
 
     /**
@@ -1289,36 +1265,35 @@ public abstract class ManagerBase extend
     
     
     // -------------------- JMX and Registration  --------------------
-    protected String domain;
-    protected ObjectName oname;
-    protected MBeanServer mserver;
-
-    public ObjectName getObjectName() {
-        return oname;
-    }
-
-    public String getDomain() {
-        return domain;
-    }
-
-    public ObjectName preRegister(MBeanServer server,
-                                  ObjectName name) throws Exception {
-        oname=name;
-        mserver=server;
-        domain=name.getDomain();
-        return name;
-    }
-
-    public void postRegister(Boolean registrationDone) {
-        // NOOP
-    }
+    @Override
+    public String getObjectNameKeyProperties() {
+        
+        StringBuilder name = new StringBuilder("type=Manager");
+        
+        if (container instanceof Context) {
+            name.append(",path=");
+            Context context = (Context) container;
+            
+            String path = context.getPath();
+            if (path.equals("")) {
+                path = "/";
+            }   
+            name.append(path);
+            
+            name.append(",host=");
+            name.append(context.getParent().getName());
+        } else {
+            // Unlikely / impossible? Handle it to be safe
+            name.append(",container=");
+            name.append(container.getName());
+        }
 
-    public void preDeregister() throws Exception {
-        // NOOP
+        return name.toString();
     }
 
-    public void postDeregister() {
-        // NOOP
+    @Override
+    public String getDomainInternal() {
+        return MBeanUtils.getDomain(container);
     }
 
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to