Author: kfujino
Date: Thu Aug  2 09:36:07 2018
New Revision: 1837285

URL: http://svn.apache.org/viewvc?rev=1837285&view=rev
Log:
Add JMX support for StaticMembershipService.

Added:
    
tomcat/trunk/java/org/apache/catalina/tribes/membership/StaticMembershipServiceMBean.java
   (with props)
Modified:
    
tomcat/trunk/java/org/apache/catalina/tribes/membership/StaticMembershipService.java

Modified: 
tomcat/trunk/java/org/apache/catalina/tribes/membership/StaticMembershipService.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/tribes/membership/StaticMembershipService.java?rev=1837285&r1=1837284&r2=1837285&view=diff
==============================================================================
--- 
tomcat/trunk/java/org/apache/catalina/tribes/membership/StaticMembershipService.java
 (original)
+++ 
tomcat/trunk/java/org/apache/catalina/tribes/membership/StaticMembershipService.java
 Thu Aug  2 09:36:07 2018
@@ -21,13 +21,18 @@ import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Properties;
 
+import javax.management.ObjectName;
+
 import org.apache.catalina.tribes.Member;
 import org.apache.catalina.tribes.MembershipProvider;
+import org.apache.catalina.tribes.jmx.JmxRegistry;
 import org.apache.catalina.tribes.util.StringManager;
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
 
-public class StaticMembershipService extends MembershipServiceBase {
+public class StaticMembershipService extends MembershipServiceBase
+        implements StaticMembershipServiceMBean {
+
     private static final Log log = 
LogFactory.getLog(StaticMembershipService.class);
     protected static final StringManager sm = 
StringManager.getManager(Constants.Package);
 
@@ -35,6 +40,11 @@ public class StaticMembershipService ext
     private StaticMember localMember;
     private StaticMembershipProvider provider;
 
+    /**
+     * the ObjectName of this McastService.
+     */
+    private ObjectName oname = null;
+
     public StaticMembershipService() {
         //default values
         setDefaults(this.properties);
@@ -53,7 +63,10 @@ public class StaticMembershipService ext
             provider = buildMembershipProvider();
         }
         provider.start(level);
-        // TODO JMX register
+        JmxRegistry jmxRegistry = JmxRegistry.getRegistry(channel);
+        if (jmxRegistry != null) {
+            this.oname = jmxRegistry.registerJmx(",component=Membership", 
this);
+        }
     }
 
     protected StaticMembershipProvider buildMembershipProvider() throws 
Exception {
@@ -71,7 +84,10 @@ public class StaticMembershipService ext
     public void stop(int level) {
         try {
             if (provider != null && provider.stop(level)) {
-                // TODO JMX unregister
+                if (oname != null) {
+                    JmxRegistry.getRegistry(channel).unregisterJmx(oname);
+                    oname = null;
+                }
                 provider = null;
                 channel = null;
             }
@@ -134,24 +150,27 @@ public class StaticMembershipService ext
         localMember.setLocal(true);
     }
 
-     public long getExpirationTime() {
-         String expirationTime = properties.getProperty("expirationTime");
-         return Long.parseLong(expirationTime);
-     }
+    @Override
+    public long getExpirationTime() {
+        String expirationTime = properties.getProperty("expirationTime");
+        return Long.parseLong(expirationTime);
+    }
 
     public void setExpirationTime(long expirationTime) {
         properties.setProperty("expirationTime", 
String.valueOf(expirationTime));
     }
 
-     public int getConnectTimeout() {
-         String connectTimeout = properties.getProperty("connectTimeout");
-         return Integer.parseInt(connectTimeout);
-     }
+    @Override
+    public int getConnectTimeout() {
+        String connectTimeout = properties.getProperty("connectTimeout");
+        return Integer.parseInt(connectTimeout);
+    }
 
     public void setConnectTimeout(int connectTimeout) {
         properties.setProperty("connectTimeout", 
String.valueOf(connectTimeout));
     }
 
+    @Override
     public long getRpcTimeout() {
         String rpcTimeout = properties.getProperty("rpcTimeout");
         return Long.parseLong(rpcTimeout);
@@ -161,6 +180,7 @@ public class StaticMembershipService ext
         properties.setProperty("rpcTimeout", String.valueOf(rpcTimeout));
     }
 
+    @Override
     public boolean getUseThread() {
         String useThread = properties.getProperty("useThread");
         return Boolean.parseBoolean(useThread);
@@ -170,6 +190,7 @@ public class StaticMembershipService ext
         properties.setProperty("useThread", String.valueOf(useThread));
     }
 
+    @Override
     public long getPingInterval() {
         String pingInterval = properties.getProperty("pingInterval");
         return Long.parseLong(pingInterval);

Added: 
tomcat/trunk/java/org/apache/catalina/tribes/membership/StaticMembershipServiceMBean.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/tribes/membership/StaticMembershipServiceMBean.java?rev=1837285&view=auto
==============================================================================
--- 
tomcat/trunk/java/org/apache/catalina/tribes/membership/StaticMembershipServiceMBean.java
 (added)
+++ 
tomcat/trunk/java/org/apache/catalina/tribes/membership/StaticMembershipServiceMBean.java
 Thu Aug  2 09:36:07 2018
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.catalina.tribes.membership;
+
+import java.util.Properties;
+
+import org.apache.catalina.tribes.Member;
+
+public interface StaticMembershipServiceMBean {
+
+    // Attributes
+    public long getExpirationTime();
+
+    public int getConnectTimeout();
+
+    public long getRpcTimeout();
+
+    public boolean getUseThread();
+
+    public long getPingInterval();
+
+    // Operation
+    public Properties getProperties();
+
+    public boolean hasMembers();
+
+    public String[] getMembersByName();
+
+    public Member findMemberByName(String name);
+}

Propchange: 
tomcat/trunk/java/org/apache/catalina/tribes/membership/StaticMembershipServiceMBean.java
------------------------------------------------------------------------------
    svn:eol-style = native



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

Reply via email to