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]