Author: norman
Date: Sat Nov 27 12:56:21 2010
New Revision: 1039668

URL: http://svn.apache.org/viewvc?rev=1039668&view=rev
Log:
Allow to configure jmxpath for Hooks. See JAMES-1057

Modified:
    
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/jmx/HookResultJMXMonitor.java
    
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/jmx/HookStats.java

Modified: 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/jmx/HookResultJMXMonitor.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/jmx/HookResultJMXMonitor.java?rev=1039668&r1=1039667&r2=1039668&view=diff
==============================================================================
--- 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/jmx/HookResultJMXMonitor.java
 (original)
+++ 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/jmx/HookResultJMXMonitor.java
 Sat Nov 27 12:56:21 2010
@@ -26,6 +26,9 @@ import java.util.Map;
 
 import javax.annotation.PreDestroy;
 
+import org.apache.commons.configuration.ConfigurationException;
+import org.apache.commons.configuration.HierarchicalConfiguration;
+import org.apache.james.lifecycle.Configurable;
 import org.apache.james.protocols.api.ExtensibleHandler;
 import org.apache.james.protocols.api.WiringException;
 import org.apache.james.protocols.smtp.SMTPSession;
@@ -37,9 +40,10 @@ import org.apache.james.protocols.smtp.h
  * {...@link HookResultHook} implementation which will register a {...@link 
HookStatsMBean} under JMX for every Hook it processed 
  *
  */
-public class HookResultJMXMonitor implements HookResultHook, ExtensibleHandler 
{
+public class HookResultJMXMonitor implements HookResultHook, 
ExtensibleHandler,Configurable {
 
     private Map<String, HookStats> hookStats = new HashMap<String, 
HookStats>();
+    private String jmxPath;
 
     /*
      * (non-Javadoc)
@@ -92,7 +96,7 @@ public class HookResultJMXMonitor implem
                 if (equals(hook) == false) {
                     String hookName = hook.getClass().getName();
                     try {
-                        hookStats.put(hookName, new HookStats(hookName));
+                        hookStats.put(hookName, new HookStats(jmxPath, 
hookName));
                     } catch (Exception e) {
                         throw new WiringException("Unable to wire Hooks",  e);
                     }
@@ -101,4 +105,17 @@ public class HookResultJMXMonitor implem
         }
         
     }
+    
+
+    /*
+     * (non-Javadoc)
+     * @see 
org.apache.james.lifecycle.Configurable#configure(org.apache.commons.configuration.HierarchicalConfiguration)
+     */
+    public void configure(HierarchicalConfiguration config) throws 
ConfigurationException {
+        this.jmxPath = config.getString("jmxPath", getDefaultJMXPath());
+    }
+    
+    protected String getDefaultJMXPath() {
+        return "org.apache.james:type=server,name=smtpserver";
+    }
 }

Modified: 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/jmx/HookStats.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/jmx/HookStats.java?rev=1039668&r1=1039667&r2=1039668&view=diff
==============================================================================
--- 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/jmx/HookStats.java
 (original)
+++ 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/jmx/HookStats.java
 Sat Nov 27 12:56:21 2010
@@ -49,10 +49,10 @@ public class HookStats extends StandardM
     private MBeanServer mbeanserver;
     private String hookname;
 
-    public HookStats(String hookname) throws InstanceAlreadyExistsException, 
MBeanRegistrationException, NotCompliantMBeanException, 
MalformedObjectNameException, NullPointerException {
+    public HookStats(String jmxPath, String hookname) throws 
InstanceAlreadyExistsException, MBeanRegistrationException, 
NotCompliantMBeanException, MalformedObjectNameException, NullPointerException {
         super(HookStatsMBean.class);
         this.hookname = hookname;
-        name = 
"org.apache.james:type=server,name=smtpserver,handler=hook,hook=" + hookname;
+        name = jmxPath + ",handler=hook,hook=" + hookname;
         mbeanserver = ManagementFactory.getPlatformMBeanServer();
         ObjectName baseObjectName = new ObjectName(name);
         mbeanserver.registerMBean(this, baseObjectName);



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to