http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/c0221bed/geode-core/src/main/java/org/apache/geode/admin/jmx/internal/StatAlertsAggregator.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/main/java/org/apache/geode/admin/jmx/internal/StatAlertsAggregator.java
 
b/geode-core/src/main/java/org/apache/geode/admin/jmx/internal/StatAlertsAggregator.java
deleted file mode 100644
index b80b18b..0000000
--- 
a/geode-core/src/main/java/org/apache/geode/admin/jmx/internal/StatAlertsAggregator.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * 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.geode.admin.jmx.internal;
-
-import org.apache.geode.internal.admin.GemFireVM;
-import org.apache.geode.internal.admin.StatAlert;
-import org.apache.geode.internal.admin.StatAlertDefinition;
-
-/**
- * This interface represents an Aggregator entity and resides in JMXAgent.
- * Responsibilities are as follows:
- * <ol>
- * <li> set AlertsManager in the newly joined members
- * <li> create/update/remove alert
- * <li> manage refresh interval
- * <li> process notification from members
- * <li> Aggregate stats & make available for clients thro' JMXAgent
- * </ol>
- * 
- */
-public interface StatAlertsAggregator {
-
-  /**
-   * This method can be used to get an alert definition.
-   * 
-   * @param alertDefinition
-   *                StatAlertDefinition to retrieve
-   * @return StatAlertDefinition
-   */
-  public StatAlertDefinition getAlertDefinition(
-      StatAlertDefinition alertDefinition);
-
-  /**
-   * This method can be used to retrieve all available stat alert definitions.
-   * 
-   * @return An array of all available StatAlertDefinition objects
-   */
-  public StatAlertDefinition[] getAllStatAlertDefinitions();
-
-  /**
-   * This method can be used to update alert definition for the Stat mentioned.
-   * This method should update the collection maintained at the aggregator and
-   * should notify members for the newly added alert definitions.
-   * <p>
-   * A new alert definition will be created if matching one not found.
-   * 
-   * @param alertDefinition
-   *                alertDefinition to be updated
-   */
-  public void updateAlertDefinition(StatAlertDefinition alertDefinition);
-
-  /**
-   * This method can be used to remove alert definition for the Stat mentioned.
-   * <p>
-   * This method should update the collection maintained at the aggregator and
-   * should notify members for the newly added alert definitions.
-   * 
-   * @param defId
-   *                id of the alert definition to be removed
-   */
-  public void removeAlertDefinition(Integer defId);
-
-  /**
-   * Convenience method to check whether an alert definition is created.
-   * 
-   * @param alert
-   *                alert definition to check whether already created
-   * @return true if the alert definition is already created, false otherwise
-   */
-  public boolean isAlertDefinitionCreated(StatAlertDefinition alert);
-
-  /**
-   * This method can be used to set the AlertManager for the newly joined 
member
-   * VM.
-   * 
-   * @param memberVM
-   *                Member VM to set AlertsManager for
-   */
-  public void setAlertsManager(GemFireVM memberVM);
-
-  /**
-   * Returns the refresh interval for the Stats in seconds.
-   * 
-   * @return refresh interval for the Stats(in seconds)
-   */
-  public int getRefreshIntervalForStatAlerts();
-
-  /**
-   * This method is used to set the refresh interval for the Stats Alerts in
-   * seconds
-   * 
-   * @param refreshInterval
-   *                refresh interval for the Stats(in seconds)
-   */
-  public void setRefreshIntervalForStatAlerts(int refreshInterval);
-
-  /**
-   * This method can be used to process the notifications sent by the 
member(s).
-   * Actual aggregation of stats can occur here. The array contains alert
-   * objects with alert def. ID & value. AlertHelper class can be used to
-   * retrieve the corresponding alert definition.
-   * 
-   * @param alerts
-   *                array of Alert class(contains alert def. ID & value)
-   * @param remoteVM
-   */
-  public void processNotifications(StatAlert[] alerts, GemFireVM remoteVM);
-
-  public void processSystemwideNotifications();
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/c0221bed/geode-core/src/main/java/org/apache/geode/admin/jmx/internal/StatisticAttributeInfo.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/main/java/org/apache/geode/admin/jmx/internal/StatisticAttributeInfo.java
 
b/geode-core/src/main/java/org/apache/geode/admin/jmx/internal/StatisticAttributeInfo.java
deleted file mode 100755
index 92c6091..0000000
--- 
a/geode-core/src/main/java/org/apache/geode/admin/jmx/internal/StatisticAttributeInfo.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * 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.geode.admin.jmx.internal;
-
-import org.apache.geode.admin.Statistic;
-import org.apache.geode.internal.Assert;
-
-import javax.management.Descriptor;
-import javax.management.modelmbean.DescriptorSupport;
-import javax.management.modelmbean.ModelMBeanAttributeInfo;
-
-/** 
- * Subclass of AttributeInfo with {@link org.apache.geode.admin.Statistic} 
- * added for use as the {@link 
- * javax.management.modelmbean.ModelMBeanAttributeInfo} descriptor's 
- * <i>targetObject</i> value.
- *
- * @since GemFire     3.5
- *
- */
-class StatisticAttributeInfo extends org.apache.commons.modeler.AttributeInfo {
-  private static final long serialVersionUID = 28022387514935560L;
-    
-  private Statistic stat;
-  
-  public StatisticAttributeInfo() {
-    super();
-  }
-  
-  public Statistic getStat() {
-    return this.stat;
-  }
-  public void setStat(Statistic stat) {
-    //System.out.println(">> stat = " + stat);
-    Assert.assertTrue(stat != null, "Attempting to set stat to null");
-    this.stat = stat;
-  }
-  
-  @Override
-  public ModelMBeanAttributeInfo createAttributeInfo() {
-    Descriptor desc = new DescriptorSupport(
-        new String[] {
-        "name=" + this.displayName,
-        "descriptorType=attribute",
-        "currencyTimeLimit=-1", // always stale
-        "displayName=" + this.displayName,
-        "getMethod=getValue" });
-
-    Assert.assertTrue(this.stat != null, "Stat target object is null!");
-    desc.setField("targetObject", this.stat);
-
-    ModelMBeanAttributeInfo info = new ModelMBeanAttributeInfo(
-        this.displayName, // name
-        this.type,        // type
-        this.description, // description
-        this.readable,    // isReadable
-        this.writeable,   // isWritable
-        this.is,          // isIs
-        desc);
-        
-    return info;
-  }
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/c0221bed/geode-core/src/main/java/org/apache/geode/admin/jmx/internal/StatisticResourceJmxImpl.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/main/java/org/apache/geode/admin/jmx/internal/StatisticResourceJmxImpl.java
 
b/geode-core/src/main/java/org/apache/geode/admin/jmx/internal/StatisticResourceJmxImpl.java
deleted file mode 100755
index 3e04500..0000000
--- 
a/geode-core/src/main/java/org/apache/geode/admin/jmx/internal/StatisticResourceJmxImpl.java
+++ /dev/null
@@ -1,360 +0,0 @@
-/*
- * 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.geode.admin.jmx.internal;
-
-import javax.management.Notification;
-import javax.management.ObjectName;
-import javax.management.modelmbean.ModelMBean;
-import javax.naming.OperationNotSupportedException;
-
-import org.apache.commons.modeler.ManagedBean;
-import org.apache.logging.log4j.Logger;
-
-import org.apache.geode.CancelException;
-import org.apache.geode.LogWriter;
-import org.apache.geode.SystemFailure;
-import org.apache.geode.admin.AdminException;
-import org.apache.geode.admin.Statistic;
-import org.apache.geode.internal.admin.StatResource;
-import org.apache.geode.internal.i18n.LocalizedStrings;
-import org.apache.geode.internal.logging.LogService;
-
-/**
- * Provides MBean support for the monitoring of a statistic resource.
- *
- * @since GemFire     3.5
- *
- */
-public class StatisticResourceJmxImpl 
-extends org.apache.geode.admin.internal.StatisticResourceImpl
-implements javax.management.NotificationListener, 
-           org.apache.geode.admin.jmx.internal.ManagedResource {
-
-  private static final Logger logger = LogService.getLogger();
-  
-  /** 
-   * Interval in seconds between refreshes. Values less than one results in no 
-   * refreshing .
-   */
-  private int refreshInterval = 0;
-  
-  /** The JMX object name of this managed resource */
-  private ObjectName objectName;
-
-  /** A flag to indicate if time is inited. MBeanUtil lookup is costly */
-  private boolean timerInited = false;
-
-  // -------------------------------------------------------------------------
-  //   Constructor(s)
-  // -------------------------------------------------------------------------
-  
-  /**
-   * Constructor for the StatisticResource object
-   *
-   * @param statResource  the admin StatResource to manage/monitor
-   * @param member        the SystemMember owning this resource
-   * @exception org.apache.geode.admin.AdminException 
-   *            if unable to create this StatisticResource for administration
-   */
-  public StatisticResourceJmxImpl(StatResource statResource,
-                                  SystemMemberJmx member)
-                           throws org.apache.geode.admin.AdminException {
-    super(statResource, member);
-    initializeMBean();
-  }
-
-  /** Create and register the MBean to manage this resource */
-  private void initializeMBean() 
-  throws org.apache.geode.admin.AdminException {
-    this.mbeanName = new StringBuffer("GemFire.Statistic:")
-                      
.append("source=").append(MBeanUtil.makeCompliantMBeanNameProperty(this.member.getId()))
-                      
.append(",type=").append(MBeanUtil.makeCompliantMBeanNameProperty(getType()))
-                      
.append(",name=").append(MBeanUtil.makeCompliantMBeanNameProperty(getName()))
-                      .append(",uid=").append(getUniqueId()).toString();
-      
-    this.objectName =
-      MBeanUtil.createMBean(this, 
-        addDynamicAttributes(MBeanUtil.lookupManagedBean(this)));
-
-    // Refresh Interval
-    AdminDistributedSystemJmxImpl sysJmx = 
(AdminDistributedSystemJmxImpl)this.member.getDistributedSystem();
-    if (sysJmx.getRefreshInterval()>0)
-      this.refreshInterval = sysJmx.getRefreshInterval();
-  }
-
-  // -------------------------------------------------------------------------
-  //   MBean attributes - accessors/mutators
-  // -------------------------------------------------------------------------
-  
-  /**
-   * Gets the interval in seconds between statistics refreshes
-   *
-   * @return the current refresh interval in seconds
-   */
-  public int getRefreshInterval() {
-    return this.refreshInterval;
-  }
-
-  /**
-   * Sets interval in seconds between statistic refreshes; zero or less turns 
-   * off auto refreshing.  Manual refreshing has no effect on when the next
-   * scheduled refresh will occur.
-   *
-   * @param refreshInterval  the new refresh interval in seconds
-   */
-  private void _setRefreshInterval(int refreshInterval) {
-    boolean isRegistered = MBeanUtil.isRefreshNotificationRegistered(this,
-        RefreshNotificationType.STATISTIC_RESOURCE_STATISTICS);
-
-    if (isRegistered && (getRefreshInterval() == refreshInterval))
-      return;
-
-    try {
-      MBeanUtil.registerRefreshNotification(
-          this, // NotificationListener
-          getMBeanName(), // User Data as MBean Name
-          RefreshNotificationType.STATISTIC_RESOURCE_STATISTICS, 
-          refreshInterval); // int
-
-      this.refreshInterval = refreshInterval;
-      timerInited = true;
-    } catch (RuntimeException e) {
-      logger.warn(e.getMessage(), e); // dead in water, print, and then ignore
-      this.refreshInterval = 0; // zero out to avoid more exceptions
-    } catch (VirtualMachineError err) {
-      SystemFailure.initiateFailure(err);
-      // If this ever returns, rethrow the error. We're poisoned
-      // now, so don't let this thread continue.
-      throw err;
-    } catch (Error e) {
-      // Whenever you catch Error or Throwable, you must also
-      // catch VirtualMachineError (see above). However, there is
-      // _still_ a possibility that you are dealing with a cascading
-      // error condition, so you also need to check to see if the JVM
-      // is still usable:
-      SystemFailure.checkFailure();
-      logger.error(e.getMessage(), e); // dead in water, print, and then ignore
-      this.refreshInterval = 0; // zero out to avoid more exceptions
-    }
-  }
-  
-  /**
-   * RefreshInterval is now set only through the AdminDistributedSystem 
property
-   * refreshInterval. Attempt to set refreshInterval on StatisticResourceJmx
-   * MBean would result in an OperationNotSupportedException
-   * Auto-refresh is enabled on demand when a call to getStatistics is made
-   * 
-   * @param refreshInterval
-   *          the new refresh interval in seconds
-   * @deprecated since 6.0 use DistributedSystemConfig.refreshInterval instead
-   */
-  @Deprecated
-  public void setRefreshInterval(int refreshInterval)
-      throws OperationNotSupportedException {
-    throw new OperationNotSupportedException(
-        
LocalizedStrings.MANAGED_RESOURCE_REFRESH_INTERVAL_CANT_BE_SET_DIRECTLY.toLocalizedString());
-  }
-  
-  // -------------------------------------------------------------------------
-  //   JMX Notification listener
-  // -------------------------------------------------------------------------
-
-  /**
-   * Handles notification to refresh. Reacts by refreshing the values of this
-   * SystemMember's ConfigurationParamaters. Any other notification is ignored.
-   * Given notification is handled only if there is any JMX client connected 
to 
-   * the system.
-   * <p>
-   * TODO: investigate use of NotificationFilter instead of explicit check...
-   * 
-   * @param notification
-   *          the JMX notification being received
-   * @param hb
-   *          handback object is unused
-   */
-  public void handleNotification(Notification notification, Object hb) {
-    AdminDistributedSystemJmxImpl adminDSJmx = 
-      (AdminDistributedSystemJmxImpl) this.member.getDistributedSystem();
-    
-    String typeStatResourceStats = 
-              RefreshNotificationType.STATISTIC_RESOURCE_STATISTICS.getType();
-    
-    if (typeStatResourceStats.equals(notification.getType()) && 
-        getMBeanName().equals(notification.getUserData()) &&
-        !adminDSJmx.isRmiClientCountZero()) {
-      try {
-        refresh();
-
-      } catch (org.apache.geode.admin.AdminException e) {
-        logger.warn(e.getMessage(), e);
-      } catch (org.apache.geode.admin.OperationCancelledException e) {
-        // underlying resource is no longer reachable by remote admin
-        logger.warn(e.getMessage(), e);
-        _setRefreshInterval(0);
-      } catch (CancelException e) {
-        // shutting down - okay to ignore
-      } catch (java.lang.RuntimeException e) {
-        logger.debug(e.getMessage(), e); // dead in water, print, and then 
ignore
-        _setRefreshInterval(0); // zero out to avoid more exceptions
-      } catch (VirtualMachineError err) {
-        SystemFailure.initiateFailure(err);
-        // If this ever returns, rethrow the error.  We're poisoned
-        // now, so don't let this thread continue.
-        throw err;
-      } catch (java.lang.Error e) {
-        // Whenever you catch Error or Throwable, you must also
-        // catch VirtualMachineError (see above).  However, there is
-        // _still_ a possibility that you are dealing with a cascading
-        // error condition, so you also need to check to see if the JVM
-        // is still usable:
-        SystemFailure.checkFailure();
-        logger.error(e.getMessage(), e); // dead in water, print, and then 
ignore
-        this.refreshInterval = 0; // zero out to avoid more exceptions
-      }
-    }
-  }
-  
-  // -------------------------------------------------------------------------
-  //   Create MBean attributes for each Statistic
-  // -------------------------------------------------------------------------
-  
-  /**
-   * Add MBean attribute definitions for each Statistic.
-   *
-   * @param managed   the mbean definition to add attributes to
-   * @return a new instance of ManagedBean copied from <code>managed</code> 
but 
-   *         with the new attributes added
-   */
-  ManagedBean addDynamicAttributes(ManagedBean managed) 
-  throws org.apache.geode.admin.AdminException {
-    if (managed == null) {
-      throw new 
IllegalArgumentException(LocalizedStrings.StatisticResourceJmxImpl_MANAGEDBEAN_IS_NULL.toLocalizedString());
-    }
-    
-    refresh(); // to get the stats...
-    
-    // need to create a new instance of ManagedBean to clean the "slate"...
-    ManagedBean newManagedBean = new DynamicManagedBean(managed);
-    for (int i = 0; i < this.statistics.length; i++) {
-      StatisticAttributeInfo attrInfo = new StatisticAttributeInfo();
-
-      attrInfo.setName(this.statistics[i].getName());
-      attrInfo.setDisplayName(this.statistics[i].getName());
-      attrInfo.setDescription(this.statistics[i].getDescription());
-      attrInfo.setType("java.lang.Number");
-
-      attrInfo.setIs(false);
-      attrInfo.setReadable(true);
-      attrInfo.setWriteable(false);
-
-      attrInfo.setStat(this.statistics[i]);
-      
-      newManagedBean.addAttribute(attrInfo);
-    }
-    return newManagedBean;
-  }
-
-  public Statistic[] getStatistics() {
-    if (!timerInited) {
-      // 1st call to getStatistics would trigger
-      // the auto-refresh if an interval is set
-      if (this.refreshInterval>0) {
-        this._setRefreshInterval(this.refreshInterval);
-      }
-    }
-
-    if (this.statistics == null) {
-      try {
-        this.refresh();
-      }
-      catch (AdminException e) {
-        this.statistics = new Statistic[0];
-      }
-    }
-
-    return this.statistics;
-  }
-
-  // -------------------------------------------------------------------------
-  //   ManagedResource implementation
-  // -------------------------------------------------------------------------
-  
-  /** The name of the MBean that will manage this resource */
-  private String mbeanName;
-
-  /** The ModelMBean that is configured to manage this resource */
-  private ModelMBean modelMBean;
-  
-       public String getMBeanName() {
-               return this.mbeanName;
-       }
-  
-       public ModelMBean getModelMBean() {
-               return this.modelMBean;
-       }
-       public void setModelMBean(ModelMBean modelMBean) {
-               this.modelMBean = modelMBean;
-       }
-  
-  public ObjectName getObjectName() {
-    return this.objectName;
-  }
-
-  public ManagedResourceType getManagedResourceType() {
-    return ManagedResourceType.STATISTIC_RESOURCE;
-  }
-  
-  public void cleanupResource() {
-    this.modelMBean = null;
-    this.member = null;
-    this.statistics = null;
-    this.statResource = null;
-  }
-  
-  /**
-   * Checks equality of the given object with <code>this</code> based on the
-   * type (Class) and the MBean Name returned by <code>getMBeanName()</code>
-   * methods.
-   * 
-   * @param obj
-   *          object to check equality with
-   * @return true if the given object is if the same type and its MBean Name is
-   *         same as <code>this</code> object's MBean Name, false otherwise
-   */
-  @Override
-  public boolean equals(Object obj) {
-    if ( !(obj instanceof StatisticResourceJmxImpl) ) {
-      return false;
-    }
-    
-    StatisticResourceJmxImpl other = (StatisticResourceJmxImpl) obj;
-
-    return this.getMBeanName().equals(other.getMBeanName());
-  }
-
-  /**
-   * Returns hash code for <code>this</code> object which is based on the 
MBean 
-   * Name generated. 
-   * 
-   * @return hash code for <code>this</code> object
-   */
-  @Override
-  public int hashCode() {
-    return this.getMBeanName().hashCode();
-  }
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/c0221bed/geode-core/src/main/java/org/apache/geode/admin/jmx/internal/SystemMemberBridgeServerJmxImpl.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/main/java/org/apache/geode/admin/jmx/internal/SystemMemberBridgeServerJmxImpl.java
 
b/geode-core/src/main/java/org/apache/geode/admin/jmx/internal/SystemMemberBridgeServerJmxImpl.java
deleted file mode 100644
index 0040cb0..0000000
--- 
a/geode-core/src/main/java/org/apache/geode/admin/jmx/internal/SystemMemberBridgeServerJmxImpl.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * 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.geode.admin.jmx.internal;
-
-import org.apache.geode.admin.AdminException;
-import org.apache.geode.admin.internal.SystemMemberBridgeServerImpl;
-import org.apache.geode.admin.internal.SystemMemberCacheImpl;
-import org.apache.geode.internal.admin.AdminBridgeServer;
-import org.apache.geode.internal.admin.GemFireVM;
-
-import javax.management.ObjectName;
-import javax.management.modelmbean.ModelMBean;
-
-/**
- * MBean representation of a {@link
- * org.apache.geode.admin.SystemMemberBridgeServer}. 
- *
- * @since GemFire 4.0
- */
-public class SystemMemberBridgeServerJmxImpl
-  extends SystemMemberBridgeServerImpl implements ManagedResource {
-
-  /** The object name of this managed resource */
-  private ObjectName objectName;
-
-  /** The name of the MBean that will manage this resource */
-  private String mbeanName;
-
-  /** The ModelMBean that is configured to manage this resource */
-  private ModelMBean modelMBean;
-
-  //////////////////////  Constructors  //////////////////////
-
-  /**
-   * Creates a new <code>SystemMemberBridgeServerJmxImpl</code> that
-   * serves the contents of the given cache.
-   */
-  SystemMemberBridgeServerJmxImpl(SystemMemberCacheImpl cache,
-                                  AdminBridgeServer bridgeInfo) 
-    throws AdminException {
-
-    super(cache, bridgeInfo);
-    initializeMBean(cache);
-  }
-
-  //////////////////////  Instance Methods  //////////////////////
-
-  /** 
-   * Creates and registers the MBean to manage this resource
-   */
-  private void initializeMBean(SystemMemberCacheImpl cache)
-    throws AdminException {
-    
-    GemFireVM vm = cache.getVM();
-    this.mbeanName = new StringBuffer("GemFire.Cache:")
-        .append("name=")
-        .append(MBeanUtil.makeCompliantMBeanNameProperty(cache.getName()))
-        .append(",id=")
-        .append(this.getBridgeId())
-        .append(",owner=")
-        
.append(MBeanUtil.makeCompliantMBeanNameProperty(vm.getId().toString()))
-        .append(",type=CacheServer").toString();
-      
-    this.objectName = MBeanUtil.createMBean(this);
-  }
-
-  public String getMBeanName() {
-    return this.mbeanName;
-  }
-  
-  public ModelMBean getModelMBean() {
-    return this.modelMBean;
-  }
-  public void setModelMBean(ModelMBean modelMBean) {
-    this.modelMBean = modelMBean;
-  }
-  
-  public ObjectName getObjectName() {
-    return this.objectName;
-  }
-
-  public ManagedResourceType getManagedResourceType() {
-    return ManagedResourceType.SYSTEM_MEMBER_CACHE_SERVER;
-  }
-  
-  public void cleanupResource() {}
-  
-  /**
-   * Checks equality of the given object with <code>this</code> based on the
-   * type (Class) and the MBean Name returned by <code>getMBeanName()</code>
-   * methods.
-   * 
-   * @param obj
-   *          object to check equality with
-   * @return true if the given object is if the same type and its MBean Name is
-   *         same as <code>this</code> object's MBean Name, false otherwise
-   */
-  @Override
-  public boolean equals(Object obj) {
-    if ( !(obj instanceof SystemMemberBridgeServerJmxImpl) ) {
-      return false;
-    }
-    
-    SystemMemberBridgeServerJmxImpl other = 
-                                (SystemMemberBridgeServerJmxImpl) obj; 
-    
-    return this.getMBeanName().equals(other.getMBeanName());
-  }
-
-  /**
-   * Returns hash code for <code>this</code> object which is based on the 
MBean 
-   * Name generated. 
-   * 
-   * @return hash code for <code>this</code> object
-   */
-  @Override
-  public int hashCode() {
-    return this.getMBeanName().hashCode();
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/c0221bed/geode-core/src/main/java/org/apache/geode/admin/jmx/internal/SystemMemberCacheJmxImpl.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/main/java/org/apache/geode/admin/jmx/internal/SystemMemberCacheJmxImpl.java
 
b/geode-core/src/main/java/org/apache/geode/admin/jmx/internal/SystemMemberCacheJmxImpl.java
deleted file mode 100644
index b8cc255..0000000
--- 
a/geode-core/src/main/java/org/apache/geode/admin/jmx/internal/SystemMemberCacheJmxImpl.java
+++ /dev/null
@@ -1,473 +0,0 @@
-/*
- * 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.geode.admin.jmx.internal;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-
-import javax.management.MalformedObjectNameException;
-import javax.management.ObjectName;
-import javax.management.modelmbean.ModelMBean;
-
-import org.apache.commons.modeler.ManagedBean;
-import org.apache.logging.log4j.Level;
-
-import org.apache.geode.SystemFailure;
-import org.apache.geode.admin.AdminException;
-import org.apache.geode.admin.SystemMemberCacheServer;
-import org.apache.geode.admin.SystemMemberRegion;
-import org.apache.geode.admin.internal.SystemMemberBridgeServerImpl;
-import org.apache.geode.cache.Region;
-import org.apache.geode.internal.admin.AdminBridgeServer;
-import org.apache.geode.internal.admin.GemFireVM;
-import org.apache.geode.internal.i18n.LocalizedStrings;
-import org.apache.geode.internal.logging.InternalLogWriter;
-
-/**
- * MBean representation of {@link org.apache.geode.admin.SystemMemberCache}.
- *
- * @since GemFire     3.5
- */
-public class SystemMemberCacheJmxImpl 
-extends org.apache.geode.admin.internal.SystemMemberCacheImpl
-implements org.apache.geode.admin.jmx.internal.ManagedResource {
-
-  /** The object name of this managed resource */
-  private ObjectName objectName;
-  
-  /** collection to collect all the resources created for this member */
-  private Map<String, SystemMemberRegionJmxImpl> managedRegionResourcesMap = 
new HashMap<String, SystemMemberRegionJmxImpl>();
-  private Map<Number, SystemMemberBridgeServerJmxImpl> 
managedCacheServerResourcesMap = new HashMap<Number, 
SystemMemberBridgeServerJmxImpl>();
-
-  // -------------------------------------------------------------------------
-  //   Constructor(s)
-  // -------------------------------------------------------------------------
-  
-  /** 
-   * Constructs an instance of SystemMemberCacheJmxImpl.
-   *
-   * @param vm
-   *        The vm owning the cache this object will manage
-   */
-  public SystemMemberCacheJmxImpl(GemFireVM vm)
-  throws org.apache.geode.admin.AdminException { 
-    super(vm);
-    initializeMBean();
-  }
-
-  /** Create and register the MBean to manage this resource */
-  private void initializeMBean() 
-  throws org.apache.geode.admin.AdminException {
-    this.mbeanName = new StringBuffer("GemFire.Cache:")
-        .append("name=")
-        .append(MBeanUtil.makeCompliantMBeanNameProperty(getName()))
-        .append(",id=")
-        .append(getId())
-        .append(",owner=")
-        
.append(MBeanUtil.makeCompliantMBeanNameProperty(vm.getId().toString()))
-        .append(",type=Cache").toString();
-      
-    this.objectName = 
-      MBeanUtil.createMBean(this, 
-                            
addDynamicAttributes(MBeanUtil.lookupManagedBean(this)));
-  }
-  
-  // -------------------------------------------------------------------------
-  //   Template methods overriden from superclass...
-  // -------------------------------------------------------------------------
-
-  /**
-   * Override createSystemMemberRegion by instantiating
-   * SystemMemberRegionJmxImpl. This instance is also added to the
-   * managedResources collection.
-   * 
-   * @param r
-   *          reference to Region instance for which this JMX resource is to be
-   *          created
-   * @return SystemMemberRegionJmxImpl - JMX Implementation of
-   *         SystemMemberRegion
-   * @throws AdminException
-   *           if constructing SystemMemberRegionJmxImpl instance fails
-   */
-  @Override  
-  protected SystemMemberRegion createSystemMemberRegion(Region r)
-    throws org.apache.geode.admin.AdminException {
-    SystemMemberRegionJmxImpl managedSystemMemberRegion = null;
-    boolean needsRefresh = false;
-    synchronized (this.managedRegionResourcesMap) {
-      /* 
-       * Ensuring that a single instance of System Member Region is created 
-       * per Region.
-       */
-      SystemMemberRegionJmxImpl managedResource = 
managedRegionResourcesMap.get(r.getFullPath());
-      if (managedResource != null) {
-        managedSystemMemberRegion = managedResource;
-      } else {
-        managedSystemMemberRegion = new SystemMemberRegionJmxImpl(this, r);
-        managedRegionResourcesMap.put(r.getFullPath(), 
managedSystemMemberRegion);
-        needsRefresh = true;
-      }
-    }
-    if (needsRefresh) {
-      managedSystemMemberRegion.refresh();
-    }
-    return managedSystemMemberRegion;
-  }
-
-  /**
-   * Creates a SystemMemberBridgeServerJmxImpl instance. This instance is also
-   * added to the managedResources collection.
-   * 
-   * @param bridge
-   *          reference to AdminBridgeServer for which this JMX resource is to
-   *          be created
-   * @return SystemMemberBridgeServerJmxImpl - JMX Implementation of
-   *         SystemMemberBridgeServerImpl
-   * @throws AdminException
-   *           if constructing SystemMemberBridgeServerJmxImpl instance fails
-   */
-  @Override  
-  protected SystemMemberBridgeServerImpl
-    createSystemMemberBridgeServer(AdminBridgeServer bridge) 
-    throws AdminException {
-    SystemMemberBridgeServerJmxImpl managedSystemMemberBridgeServer = null;
-    synchronized (this.managedCacheServerResourcesMap) {
-      /* 
-       * Ensuring that a single instance of SystemMember BridgeServer is 
-       * created per AdminBridgeServer.
-       */
-      SystemMemberBridgeServerJmxImpl managedCacheServerResource = 
managedCacheServerResourcesMap.get(bridge.getId());
-      if (managedCacheServerResource != null) {
-        managedSystemMemberBridgeServer = managedCacheServerResource;
-      } else {
-        managedSystemMemberBridgeServer = new 
SystemMemberBridgeServerJmxImpl(this, bridge);
-        managedCacheServerResourcesMap.put(bridge.getId(), 
managedSystemMemberBridgeServer);
-      }
-    }
-    return managedSystemMemberBridgeServer;
-  }
-
-  // -------------------------------------------------------------------------
-  //   Create MBean attributes for each Statistic
-  // -------------------------------------------------------------------------
-  
-  /**
-   * Add MBean attribute definitions for each Statistic.
-   *
-   * @param managed   the mbean definition to add attributes to
-   * @return a new instance of ManagedBean copied from <code>managed</code> 
but 
-   *         with the new attributes added
-   */
-  ManagedBean addDynamicAttributes(ManagedBean managed)
-  throws org.apache.geode.admin.AdminException {
-    if (managed == null) {
-      throw new 
IllegalArgumentException(LocalizedStrings.SystemMemberCacheJmxImpl_MANAGEDBEAN_IS_NULL.toLocalizedString());
-    }
-    
-    refresh(); // to get the stats...
-    
-    // need to create a new instance of ManagedBean to clean the "slate"...
-    ManagedBean newManagedBean = new DynamicManagedBean(managed);
-    for (int i = 0; i < this.statistics.length; i++) {
-      StatisticAttributeInfo attrInfo = new StatisticAttributeInfo();
-
-      attrInfo.setName(this.statistics[i].getName());
-      attrInfo.setDisplayName(this.statistics[i].getName());
-      attrInfo.setDescription(this.statistics[i].getDescription());
-      attrInfo.setType("java.lang.Number");
-
-      attrInfo.setIs(false);
-      attrInfo.setReadable(true);
-      attrInfo.setWriteable(false);
-
-      attrInfo.setStat(this.statistics[i]);
-      
-      newManagedBean.addAttribute(attrInfo);
-    }
-
-    return newManagedBean;
-  }
-
-  // -------------------------------------------------------------------------
-  //   MBean Operations
-  // -------------------------------------------------------------------------
-
-  /** 
-   * Returns the ObjectName of the Region for the specified path.
-   *
-   * @throws AdminException
-   *         If no region with path <code>path</code> exists
-   */
-  public ObjectName manageRegion(String path)
-  throws AdminException, MalformedObjectNameException {
-    try {
-      SystemMemberRegionJmxImpl region = null;
-
-      try {
-        region = (SystemMemberRegionJmxImpl) getRegion(path);
-
-      } catch (AdminException e) {
-        MBeanUtil.logStackTrace(Level.WARN, e);
-        throw e;
-      }
-
-      if (region == null) {
-        throw new 
AdminException(LocalizedStrings.SystemMemberCacheJmxImpl_THIS_CACHE_DOES_NOT_CONTAIN_REGION_0.toLocalizedString(path));
-          
-      } else {
-        return ObjectName.getInstance(region.getMBeanName());
-      }
-    } catch (RuntimeException e) { 
-      MBeanUtil.logStackTrace(Level.WARN, e);
-      throw e; 
-    } catch (VirtualMachineError err) {
-      SystemFailure.initiateFailure(err);
-      // If this ever returns, rethrow the error.  We're poisoned
-      // now, so don't let this thread continue.
-      throw err;
-    } catch (Error e) { 
-      // Whenever you catch Error or Throwable, you must also
-      // catch VirtualMachineError (see above).  However, there is
-      // _still_ a possibility that you are dealing with a cascading
-      // error condition, so you also need to check to see if the JVM
-      // is still usable:
-      SystemFailure.checkFailure();
-      MBeanUtil.logStackTrace(Level.ERROR, e);
-      throw e; 
-    }
-  }
-
-  /**
-   * Creates a new cache server MBean and returns its
-   * <code>ObjectName</code>.
-   *
-   * @since GemFire 5.7
-   */
-  public ObjectName manageCacheServer()
-    throws AdminException, MalformedObjectNameException {
-
-    try {
-      SystemMemberBridgeServerJmxImpl bridge =
-        (SystemMemberBridgeServerJmxImpl) addCacheServer();
-      return ObjectName.getInstance(bridge.getMBeanName());
-    } catch (AdminException e) { 
-         MBeanUtil.logStackTrace(Level.WARN, e);
-         throw e; 
-    } catch (RuntimeException e) { 
-         MBeanUtil.logStackTrace(Level.WARN, e); 
-         throw e;
-    } catch (VirtualMachineError err) {
-      SystemFailure.initiateFailure(err);
-      // If this ever returns, rethrow the error.  We're poisoned
-      // now, so don't let this thread continue.
-      throw err;
-    } catch (Error e) { 
-      // Whenever you catch Error or Throwable, you must also
-      // catch VirtualMachineError (see above).  However, there is
-      // _still_ a possibility that you are dealing with a cascading
-      // error condition, so you also need to check to see if the JVM
-      // is still usable:
-      SystemFailure.checkFailure();
-      MBeanUtil.logStackTrace(Level.ERROR, e); 
-      throw e; 
-    }
-  }
-
-  /**
-   * Returns the MBean <code>ObjectName</code>s for all cache servers
-   * that serve this cache to clients.
-   *
-   * @since GemFire 4.0
-   */
-  public ObjectName[] manageCacheServers()
-    throws AdminException, MalformedObjectNameException {
-
-    try {
-      SystemMemberCacheServer[] bridges = getCacheServers();
-      ObjectName[] names = new ObjectName[bridges.length];
-      for (int i = 0; i < bridges.length; i++) {
-        SystemMemberBridgeServerJmxImpl bridge =
-          (SystemMemberBridgeServerJmxImpl) bridges[i];
-        names[i] = ObjectName.getInstance(bridge.getMBeanName());
-      }
-
-      return names;
-    } catch (AdminException e) { 
-         MBeanUtil.logStackTrace(Level.WARN, e); 
-         throw e;
-    } catch (RuntimeException e) { 
-      MBeanUtil.logStackTrace(Level.WARN, e); 
-      throw e; 
-    } catch (VirtualMachineError err) {
-      SystemFailure.initiateFailure(err);
-      // If this ever returns, rethrow the error.  We're poisoned
-      // now, so don't let this thread continue.
-      throw err;
-    } catch (Error e) { 
-      // Whenever you catch Error or Throwable, you must also
-      // catch VirtualMachineError (see above).  However, there is
-      // _still_ a possibility that you are dealing with a cascading
-      // error condition, so you also need to check to see if the JVM
-      // is still usable:
-      SystemFailure.checkFailure();
-      MBeanUtil.logStackTrace(Level.ERROR, e); 
-      throw e;
-    }
-  }
-
-  /**
-   * Returns the MBean <code>ObjectName</code>s for all bridge servers
-   * that serve this cache.
-   *
-   * @since GemFire 4.0
-   * @deprecated as of 5.7
-   */
-  @Deprecated
-  public ObjectName[] manageBridgeServers()
-    throws AdminException, MalformedObjectNameException {
-    return manageCacheServers();
-  }
-
-  // -------------------------------------------------------------------------
-  //   ManagedResource implementation
-  // -------------------------------------------------------------------------
-  
-  /** The name of the MBean that will manage this resource */
-  private String mbeanName;
-
-  /** The ModelMBean that is configured to manage this resource */
-  private ModelMBean modelMBean;
-  
-       public String getMBeanName() {
-               return this.mbeanName;
-       }
-  
-       public ModelMBean getModelMBean() {
-               return this.modelMBean;
-       }
-       public void setModelMBean(ModelMBean modelMBean) {
-               this.modelMBean = modelMBean;
-       }
-  
-  public ObjectName getObjectName() {
-    return this.objectName;
-  }
-
-  public ManagedResourceType getManagedResourceType() {
-    return ManagedResourceType.SYSTEM_MEMBER_CACHE;
-  }
-
-  
-  /**
-   * Un-registers all the statistics & cache managed resource created for this 
-   * member. After un-registering the resource MBean instances, clears 
-   * this.memberResources collection.
-   * 
-   * Creates ConfigurationParameterJmxImpl, StatisticResourceJmxImpl and 
-   * SystemMemberCacheJmxImpl. But cleans up only StatisticResourceJmxImpl and 
-   * SystemMemberCacheJmxImpl which are of type ManagedResource.  
-   */
-  public void cleanupResource() {
-    synchronized (this.managedRegionResourcesMap) {
-      Collection<SystemMemberRegionJmxImpl> values = 
managedRegionResourcesMap.values();
-      
-      for (SystemMemberRegionJmxImpl systemMemberRegionJmxImpl : values) {
-        MBeanUtil.unregisterMBean(systemMemberRegionJmxImpl);
-      }
-      
-      this.managedRegionResourcesMap.clear();
-    }
-    
-    synchronized (this.managedCacheServerResourcesMap) {
-      Collection<SystemMemberBridgeServerJmxImpl> values = 
managedCacheServerResourcesMap.values();
-      
-      for (SystemMemberBridgeServerJmxImpl SystemMemberBridgeServerJmxImpl : 
values) {
-        MBeanUtil.unregisterMBean(SystemMemberBridgeServerJmxImpl);
-      }
-      
-      this.managedCacheServerResourcesMap.clear();
-    }
-  }
-
-  /**
-   * Cleans up managed resources created for the region that was (created and)
-   * destroyed in a cache represented by this Managed Resource.
-   * 
-   * @param regionPath
-   *          path of the region that got destroyed
-   * @return a managed resource related to this region path
-   */
-  public ManagedResource cleanupRegionResources(String regionPath) {
-    ManagedResource cleaned = null;
-    
-    synchronized (this.managedRegionResourcesMap) {
-      Set<Entry<String, SystemMemberRegionJmxImpl>> entries = 
managedRegionResourcesMap.entrySet();
-      for (Iterator<Entry<String, SystemMemberRegionJmxImpl>> it = 
entries.iterator(); it.hasNext();) {
-        Entry<String, SystemMemberRegionJmxImpl> entry = it.next();
-        SystemMemberRegionJmxImpl managedResource = entry.getValue();
-        ObjectName                objName         = 
managedResource.getObjectName();
-        
-        String pathProp = objName.getKeyProperty("path");
-        if (pathProp != null && pathProp.equals(regionPath)) {
-          cleaned = managedResource;
-          it.remove();
-          
-          break;
-        }
-      }
-    }
-
-    return cleaned;
-  }
-  
-  /**
-   * Checks equality of the given object with <code>this</code> based on the
-   * type (Class) and the MBean Name returned by <code>getMBeanName()</code>
-   * methods.
-   * 
-   * @param obj
-   *          object to check equality with
-   * @return true if the given object is if the same type and its MBean Name is
-   *         same as <code>this</code> object's MBean Name, false otherwise
-   */
-  @Override
-  public boolean equals(Object obj) {
-    if ( !(obj instanceof SystemMemberCacheJmxImpl) ) {
-      return false;
-    }
-    
-    SystemMemberCacheJmxImpl other = (SystemMemberCacheJmxImpl) obj;
-
-    return this.getMBeanName().equals(other.getMBeanName());
-  }
-  
-  /**
-   * Returns hash code for <code>this</code> object which is based on the 
MBean 
-   * Name generated. 
-   * 
-   * @return hash code for <code>this</code> object
-   */
-  @Override
-  public int hashCode() {
-    return this.getMBeanName().hashCode();
-  }
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/c0221bed/geode-core/src/main/java/org/apache/geode/admin/jmx/internal/SystemMemberJmx.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/main/java/org/apache/geode/admin/jmx/internal/SystemMemberJmx.java
 
b/geode-core/src/main/java/org/apache/geode/admin/jmx/internal/SystemMemberJmx.java
deleted file mode 100644
index dd52a4e..0000000
--- 
a/geode-core/src/main/java/org/apache/geode/admin/jmx/internal/SystemMemberJmx.java
+++ /dev/null
@@ -1,494 +0,0 @@
-/*
- * 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.geode.admin.jmx.internal;
-
-import org.apache.geode.SystemFailure;
-import org.apache.geode.admin.*;
-import org.apache.geode.cache.Operation;
-import org.apache.geode.distributed.internal.DistributionConfig;
-import org.apache.geode.internal.admin.ClientMembershipMessage;
-import org.apache.geode.internal.i18n.LocalizedStrings;
-import org.apache.geode.internal.logging.LogService;
-import org.apache.geode.internal.logging.log4j.LocalizedMessage;
-import org.apache.commons.modeler.ManagedBean;
-import org.apache.logging.log4j.Logger;
-
-import javax.management.*;
-import javax.naming.OperationNotSupportedException;
-import java.util.concurrent.atomic.AtomicInteger;
-
-/**
- * Defines methods that all <code>SystemMember</code> MBeans should
- * implement.
- *
- * @since GemFire 4.0
- */
-public interface SystemMemberJmx
-  extends SystemMember, NotificationListener {
-  /** 
-   * Notification type for indicating a cache got created on a member of this 
-   * distributed system.
-   */
-  public static final String NOTIF_CACHE_CREATED =
-      DistributionConfig.GEMFIRE_PREFIX + "distributedsystem.cache.created";
-  /** 
-   * Notification type for indicating a cache is closed on a member of this 
-   * distributed system.
-   */
-  public static final String NOTIF_CACHE_CLOSED =
-      DistributionConfig.GEMFIRE_PREFIX + "distributedsystem.cache.closed";
-  /** 
-   * Notification type for indicating a region is created in a cache on a 
member 
-   * of this distributed system.
-   */
-  public static final String NOTIF_REGION_CREATED =
-      DistributionConfig.GEMFIRE_PREFIX + 
"distributedsystem.cache.region.created";
-  /** 
-   * Notification type for indicating a region was removed from a cache on a 
-   * member of this distributed system.
-   */
-  public static final String NOTIF_REGION_LOST =
-      DistributionConfig.GEMFIRE_PREFIX + 
"distributedsystem.cache.region.lost";
-  
-  /** Notification type for indicating client joined */
-  public static final String NOTIF_CLIENT_JOINED =
-      DistributionConfig.GEMFIRE_PREFIX + 
"distributedsystem.cache.client.joined";
-  
-  /** Notification type for indicating client left */
-  public static final String NOTIF_CLIENT_LEFT =
-      DistributionConfig.GEMFIRE_PREFIX + 
"distributedsystem.cache.client.left";
-  
-  /** Notification type for indicating client crashed */
-  public static final String NOTIF_CLIENT_CRASHED =
-      DistributionConfig.GEMFIRE_PREFIX + 
"distributedsystem.cache.client.crashed";
-
-  /**
-   * Gets the interval in seconds between config refreshes
-   *
-   * @return the current refresh interval in seconds
-   */
-  public int getRefreshInterval();
-
-  /**
-   * RefreshInterval is now set only through the AdminDistributedSystem 
property
-   * refreshInterval. Attempt to set refreshInterval on SystemMemberJmx MBean
-   * would result in an OperationNotSupportedException Auto-refresh is enabled
-   * on demand when a call to refreshConfig is made
-   *
-   * @param refreshInterval
-   *          the new refresh interval in seconds
-   * @deprecated since 6.0 use DistributedSystemConfig.refreshInterval instead
-   */
-  @Deprecated
-  public void setRefreshInterval(int refreshInterval) throws 
OperationNotSupportedException;
-
-  /**
-   * Sets the refresh interval field.
-   * Sets interval in seconds between config refreshes; zero or less turns 
-   * off auto refreshing.  Manual refreshing has no effect on when the next
-   * scheduled refresh will occur.
-   */
-  public void _setRefreshInterval(int refreshInterval);
-
-  /** 
-   * Gets this member's cache.
-   *
-   * @return <code>ObjectName</code> for this member's cache
-   *
-   * @throws AdminException
-   *         If this system member does not host a cache
-   */
-  public ObjectName manageCache() 
-    throws AdminException, MalformedObjectNameException;
-
-  /** 
-   * Gets all active StatisticResources for this manager.
-   *
-   * @return array of ObjectName instances
-   */
-  public ObjectName[] manageStats() 
-    throws AdminException, MalformedObjectNameException;
-
-  /** 
-   * Gets the active StatisticResources for this manager, based on the
-   * typeName as the key
-   *
-   * @return ObjectName of StatisticResourceJMX instance
-   */
-  public ObjectName[] manageStat(String statisticsTypeName) 
-    throws AdminException, MalformedObjectNameException;
-
-  /**
-   * Handles notification to refresh. Reacts by refreshing the values of this
-   * GemFireManager's ConfigurationParamaters.  Any other notification is
-   * ignored.
-   *
-   * @param notification  the JMX notification being received
-   * @param hb            handback object is unused
-   */
-  public void handleNotification(Notification notification, Object hb);
-
-  /**
-   * Add MBean attribute definitions for each ConfigurationParameter.
-   *
-   * @param managed the mbean definition to add attributes to
-   * @return a new instance of ManagedBean copied from <code>managed</code> 
but 
-   *         with the new attributes added
-   */
-  public ManagedBean addDynamicAttributes(ManagedBean managed) 
-    throws AdminException;
-
-
-  /**
-   * Implementation should handle creation of cache by extracting the details
-   * from the given event object.
-   * 
-   * @param event
-   *          event object corresponding to the creation of the cache
-   */
-  public void handleCacheCreate(SystemMemberCacheEvent event);
-
-  /**
-   * Implementation should handle closure of cache by extracting the details
-   * from the given event object.
-   * 
-   * @param event
-   *          event object corresponding to the closure of the cache
-   */
-  public void handleCacheClose(SystemMemberCacheEvent event);
-
-  /**
-   * Implementation should handle creation of region by extracting the details
-   * from the given event object.
-   * 
-   * @param event
-   *          event object corresponding to the creation of a region
-   */
-  public void handleRegionCreate(SystemMemberRegionEvent event);
-
-  /**
-   * Implementation should handle loss of region by extracting the details
-   * from the given event object.
-   * 
-   * @param event
-   *          event object corresponding to the loss of a region
-   */
-  public void handleRegionLoss(SystemMemberRegionEvent event);
-
-  /**
-   * Implementation should handle client membership changes.
-   * 
-   * @param clientId
-   *          id of the client for whom membership change happened
-   * @param eventType
-   *          membership change type; one of
-   *          {@link ClientMembershipMessage#JOINED},
-   *          {@link ClientMembershipMessage#LEFT}, 
-   *          {@link ClientMembershipMessage#CRASHED}
-   */
-  public void handleClientMembership(String clientId, int eventType);
-
-  //////////////////////  Inner Classess  //////////////////////
-
-  /**
-   * A helper class that provides implementation of the
-   * <code>SystemMemberJmx</code> interface as static methods.
-   */
-  public static class Helper {
-    private static final Logger logger = LogService.getLogger();
-    
-    private static AtomicInteger notificationSequenceNumber = new 
AtomicInteger();
-
-    public static int setAndReturnRefreshInterval(SystemMemberJmx member,
-                                          int refreshInterval) {
-      int ret = refreshInterval;
-      
-      try {
-        MBeanUtil.registerRefreshNotification(
-          member, // NotificationListener
-          ((ManagedResource)member).getMBeanName(), // User Data
-          RefreshNotificationType.SYSTEM_MEMBER_CONFIG, 
-          refreshInterval); // int
-
-      } catch (RuntimeException e) {
-        logger.warn(e.getMessage(), e); // dead in water, print, and then 
ignore
-        ret = 0; // zero out to avoid more exceptions
-
-      } catch (VirtualMachineError err) {
-        SystemFailure.initiateFailure(err);
-        // If this ever returns, rethrow the error.  We're poisoned
-        // now, so don't let this thread continue.
-        throw err;
-      } catch (Error e) {
-        // Whenever you catch Error or Throwable, you must also
-        // catch VirtualMachineError (see above).  However, there is
-        // _still_ a possibility that you are dealing with a cascading
-        // error condition, so you also need to check to see if the JVM
-        // is still usable:
-        SystemFailure.checkFailure();
-        logger.error(e.getMessage(), e); // dead in water, print, and then 
ignore
-        ret = 0; // zero out to avoid more exceptions
-      }
-      
-      return ret;
-    }
-
-    public static ObjectName manageCache(SystemMemberJmx member) 
-      throws AdminException, MalformedObjectNameException {
-      boolean IthrewIt = false;
-      try {
-        SystemMemberCache cache = member.getCache();
-        if (cache == null) {
-          IthrewIt = true;
-          throw new 
AdminException(LocalizedStrings.SystemMemberJmx_THIS_SYSTEM_MEMBER_DOES_NOT_HAVE_A_CACHE.toLocalizedString());
-        }
-//        Assert.assertTrue(cache != null); (cannot be null)
-        SystemMemberCacheJmxImpl cacheJmx = (SystemMemberCacheJmxImpl) cache;
-        return ObjectName.getInstance(cacheJmx.getMBeanName());
-      } catch (AdminException e) { 
-        if (!IthrewIt) {
-          logger.warn(e.getMessage(), e); 
-        }
-        throw e; 
-      } catch (RuntimeException e) { 
-        logger.warn(e.getMessage(), e);
-        throw e; 
-      } catch (VirtualMachineError err) {
-        SystemFailure.initiateFailure(err);
-        // If this ever returns, rethrow the error.  We're poisoned
-        // now, so don't let this thread continue.
-        throw err;
-      } catch (Error e) { 
-        // Whenever you catch Error or Throwable, you must also
-        // catch VirtualMachineError (see above).  However, there is
-        // _still_ a possibility that you are dealing with a cascading
-        // error condition, so you also need to check to see if the JVM
-        // is still usable:
-        SystemFailure.checkFailure();
-        logger.error(e.getMessage(), e); 
-        throw e; 
-      }
-    }
-
-    public static ObjectName[] manageStats(SystemMemberJmx member) 
-      throws AdminException, MalformedObjectNameException {
-        try {
-          StatisticResource[] stats = member.getStats();
-          ObjectName[] onames = new ObjectName[stats.length];
-          for (int i = 0; i < stats.length; i++) {
-            StatisticResourceJmxImpl stat =
-              (StatisticResourceJmxImpl) stats[i];
-            onames[i] = ObjectName.getInstance(stat.getMBeanName());
-          }
-          return onames;
-        } catch (AdminException e) { 
-          logger.warn(e.getMessage(), e); 
-          throw e;
-        } catch (RuntimeException e) {
-          logger.warn(e.getMessage(), e); 
-          throw e; 
-        } catch (VirtualMachineError err) {
-          SystemFailure.initiateFailure(err);
-          // If this ever returns, rethrow the error.  We're poisoned
-          // now, so don't let this thread continue.
-          throw err;
-        } catch (Error e) { 
-          // Whenever you catch Error or Throwable, you must also
-          // catch VirtualMachineError (see above).  However, there is
-          // _still_ a possibility that you are dealing with a cascading
-          // error condition, so you also need to check to see if the JVM
-          // is still usable:
-          SystemFailure.checkFailure();
-          logger.error(e.getMessage(), e); 
-          throw e; 
-        }
-      }
-
-    public static ObjectName[] manageStat(SystemMemberJmx member, String 
statisticsTypeName) 
-    throws AdminException, MalformedObjectNameException {
-      try {
-        StatisticResource[] stats = member.getStat(statisticsTypeName);
-        if (stats==null)
-          return null;
-        else {
-          ObjectName[] statNames = new ObjectName[stats.length]; 
-          for (int i=0; i<stats.length; i++) {
-            StatisticResourceJmxImpl statJMX = (StatisticResourceJmxImpl) 
stats[i];
-            statNames[i] = ObjectName.getInstance(statJMX.getMBeanName()); 
-          }
-          return statNames;
-        }
-      } catch (AdminException e) { 
-        logger.warn(e.getMessage(), e); 
-        throw e; 
-      } catch (RuntimeException e) { 
-        logger.warn(e.getMessage(), e); 
-        throw e;
-      } catch (Error e) { 
-        logger.error(e.getMessage(), e); 
-        throw e;
-      }
-    }
-
-    public static void handleNotification(SystemMemberJmx member,
-                                          Notification notification,
-                                          Object hb) {
-      if (RefreshNotificationType.SYSTEM_MEMBER_CONFIG.
-                           getType().equals(notification.getType()) &&
-          ((ManagedResource)member).getMBeanName().
-                           equals(notification.getUserData())
-         ) {
-          
-        try {
-          member.refreshConfig();
-
-        } catch (org.apache.geode.admin.AdminException e) {
-          logger.warn(e.getMessage(), e);
-        } catch (OperationCancelledException e) {
-          // underlying resource is no longer reachable by remote admin
-          logger.warn(e.getMessage(), e);
-          member._setRefreshInterval(0);
-
-        } catch (java.lang.RuntimeException e) {
-          logger.warn(e.getMessage(), e); // dead in water, print, and then 
ignore
-          member._setRefreshInterval(0); // zero out to avoid more exceptions
-
-        } catch (VirtualMachineError err) {
-          SystemFailure.initiateFailure(err);
-          // If this ever returns, rethrow the error.  We're poisoned
-          // now, so don't let this thread continue.
-          throw err;
-        } catch (java.lang.Error e) {
-          // Whenever you catch Error or Throwable, you must also
-          // catch VirtualMachineError (see above).  However, there is
-          // _still_ a possibility that you are dealing with a cascading
-          // error condition, so you also need to check to see if the JVM
-          // is still usable:
-          SystemFailure.checkFailure();
-          logger.error(e.getMessage(), e); // dead in water, print, and then 
ignore
-          member._setRefreshInterval(0); // zero out to avoid more exceptions
-        }
-      }
-    }
-
-    public static ManagedBean
-      addDynamicAttributes(SystemMemberJmx member, ManagedBean managed)
-      throws AdminException {
-
-      if (managed == null) {
-        throw new 
IllegalArgumentException(LocalizedStrings.SystemMemberJmx_MANAGEDBEAN_IS_NULL.toLocalizedString());
-      }
-    
-      member.refreshConfig(); // to get the config parms...
-    
-      // need to create a new instance of ManagedBean to clean the "slate"...
-      ManagedBean newManagedBean = new DynamicManagedBean(managed);
-      ConfigurationParameter[] params = member.getConfiguration();
-      for (int i = 0; i < params.length; i++) {
-        ConfigurationParameterJmxImpl parm =
-          (ConfigurationParameterJmxImpl) params[i];
-        ConfigAttributeInfo attrInfo = new ConfigAttributeInfo(parm);
-
-        attrInfo.setName(parm.getName());
-        attrInfo.setDisplayName(parm.getName());
-        attrInfo.setDescription(parm.getDescription());
-        attrInfo.setType(parm.getJmxValueType().getName());
-        
-        attrInfo.setIs(false);
-        attrInfo.setReadable(true);
-        attrInfo.setWriteable(parm.isModifiable());
-        
-        newManagedBean.addAttribute(attrInfo);
-      }
-      return newManagedBean;
-    }
-
-    /**
-     * Returns the next notification sequence number.
-     * 
-     * @return the notificationSequenceNumber
-     */
-    /*default*/static int getNextNotificationSequenceNumber() {
-      return notificationSequenceNumber.incrementAndGet();
-    }
-    
-    /**
-     * Returns the cache event details extracted from the given
-     * SystemMemberCacheEvent
-     * 
-     * @param event
-     *          SystemMemberCacheEvent instance
-     * @return the cache event details extracted from the given
-     *         SystemMemberCacheEvent
-     */
-    /*default*/static String getCacheEventDetails(SystemMemberCacheEvent 
event) {
-      String    memberId  = event.getMemberId();
-      Operation operation = event.getOperation();
-      
-      return "CacheEvent[MemberId: "+memberId+", operation: "+operation+"]";
-    }
-    
-    /**
-     * Returns the region event details extracted from the given
-     * SystemMemberRegionEvent
-     * 
-     * @param event
-     *          SystemMemberRegionEvent instance
-     * @return the cache event details extracted from the given
-     *         SystemMemberRegionEvent
-     */  
-    /*default*/static String getRegionEventDetails(SystemMemberRegionEvent 
event) {
-      String    memberId  = event.getMemberId();
-      Operation operation = event.getOperation();
-      
-      return "RegionEvent[MemberId: " + memberId + ", operation: " + operation
-          + ", region:" + event.getRegionPath() + "]";
-    }
-
-    /**
-     * Sends the given notification.
-     * 
-     * @param notif
-     *          notification to send
-     * 
-     * @throws NullPointerException
-     *           if resource or ModelMBean for resource is null
-     */
-    /*default*/static void sendNotification(ManagedResource resource, 
Notification notif) {
-      try {
-        if (MBeanUtil.isRegistered(resource.getObjectName())) {
-          resource.getModelMBean().sendNotification(notif);
-          if (logger.isDebugEnabled()) {
-            logger.debug("Sent '{}' notification", notif.getType());
-          }
-        }
-      } catch (RuntimeOperationsException e) {
-        logger.info(LocalizedMessage.create(
-            
LocalizedStrings.SystemMemberJmx_FAILED_TO_SEND_0_NOTIFICATION_FOR_1,
-            new Object[] { "'" + notif.getType() + "'", 
-                          "'" + notif.getMessage() + "'" }), 
-            e);
-      } catch (MBeanException e) {
-        logger.info(LocalizedMessage.create(
-            
LocalizedStrings.SystemMemberJmx_FAILED_TO_SEND_0_NOTIFICATION_FOR_1,
-            new Object[] { "'" + notif.getType() + "'", 
-                           "'" + notif.getMessage() + "'" }), 
-            e);
-      }
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/c0221bed/geode-core/src/main/java/org/apache/geode/admin/jmx/internal/SystemMemberJmxImpl.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/main/java/org/apache/geode/admin/jmx/internal/SystemMemberJmxImpl.java
 
b/geode-core/src/main/java/org/apache/geode/admin/jmx/internal/SystemMemberJmxImpl.java
deleted file mode 100755
index 2f5fca9..0000000
--- 
a/geode-core/src/main/java/org/apache/geode/admin/jmx/internal/SystemMemberJmxImpl.java
+++ /dev/null
@@ -1,592 +0,0 @@
-/*
- * 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.geode.admin.jmx.internal;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-
-import javax.management.MalformedObjectNameException;
-import javax.management.Notification;
-import javax.management.ObjectName;
-import javax.management.modelmbean.ModelMBean;
-import javax.naming.OperationNotSupportedException;
-
-import org.apache.commons.modeler.ManagedBean;
-import org.apache.logging.log4j.Logger;
-
-import org.apache.geode.admin.AdminException;
-import org.apache.geode.admin.ConfigurationParameter;
-import org.apache.geode.admin.StatisticResource;
-import org.apache.geode.admin.SystemMemberCache;
-import org.apache.geode.admin.SystemMemberCacheEvent;
-import org.apache.geode.admin.SystemMemberRegionEvent;
-import org.apache.geode.admin.internal.ConfigurationParameterImpl;
-import 
org.apache.geode.distributed.internal.membership.InternalDistributedMember;
-import org.apache.geode.i18n.LogWriterI18n;
-import org.apache.geode.internal.admin.ApplicationVM;
-import org.apache.geode.internal.admin.ClientMembershipMessage;
-import org.apache.geode.internal.admin.GemFireVM;
-import org.apache.geode.internal.admin.StatResource;
-import org.apache.geode.internal.i18n.LocalizedStrings;
-import org.apache.geode.internal.logging.LogService;
-
-/**
- * Provides MBean support for managing a SystemMember application.
- * <p>
- * TODO: refactor to implement SystemMember and delegate to SystemMemberImpl. 
- * Wrap all delegate calls w/ e.printStackTrace() since the HttpAdaptor 
devours 
- * them
- *
- * @since GemFire     3.5
- *
- */
-public class SystemMemberJmxImpl 
-extends org.apache.geode.admin.internal.SystemMemberImpl
-implements SystemMemberJmx, javax.management.NotificationListener,
-           org.apache.geode.admin.jmx.internal.ManagedResource {
-
-  private static final Logger logger = LogService.getLogger();
-  
-  /** 
-   * Interval in seconds between refreshes. Value less than one results in no 
-   * refreshing 
-   */
-  private int refreshInterval = 0;
-  
-  /** The JMX object name of this managed resource */
-  private ObjectName objectName;
-
-  /** Reference to the cache MBean representing a Cache in the Cache VM Member 
*/
-  private SystemMemberCacheJmxImpl managedSystemMemberCache;
-  
-  /** collection to collect all the resources created for this member */
-  private Map<StatResource, StatisticResourceJmxImpl> 
managedStatisticsResourcesMap = new HashMap<StatResource, 
StatisticResourceJmxImpl>();
-
-
-  // -------------------------------------------------------------------------
-  //   Constructor(s)
-  // -------------------------------------------------------------------------
-  
-  /** 
-   * Constructs an instance of SystemMemberJmxImpl.
-   *
-   * @param system  the distributed system this SystemMember is a member of
-   * @param application the internal admin application to delegate actual work
-   */
-  public SystemMemberJmxImpl(AdminDistributedSystemJmxImpl system,
-                             ApplicationVM application)
-                      throws org.apache.geode.admin.AdminException { 
-    super(system, application);
-    initializeMBean();
-  }
-  
-  /**
-   * Constructs the instance of SystemMember using the corresponding
-   * InternalDistributedMember instance of a DS member for the given
-   * AdminDistributedSystem.
-   * 
-   * @param system
-   *          Current AdminDistributedSystem instance
-   * @param member
-   *          InternalDistributedMember instance for which a SystemMember
-   *          instance is to be constructed.
-   * @throws AdminException
-   *           if construction of SystemMember fails
-   *           
-   * @since GemFire 6.5
-   */
-  protected SystemMemberJmxImpl(AdminDistributedSystemJmxImpl system,
-      InternalDistributedMember member) throws AdminException {
-    super(system, member);
-    initializeMBean();
-  }
-
-  /** Create and register the MBean to manage this resource */
-  private void initializeMBean() 
-  throws org.apache.geode.admin.AdminException {
-    //initialize Managed Resources for stats & cache first.
-//    initializeManagedResources();
-
-    this.mbeanName = new StringBuffer("GemFire.Member:id=")
-      .append(MBeanUtil.makeCompliantMBeanNameProperty(getId()))
-      
.append(",type=").append(MBeanUtil.makeCompliantMBeanNameProperty(getType().getName())).toString();
-      
-    this.objectName =
-      MBeanUtil.createMBean(this, 
-        addDynamicAttributes(MBeanUtil.lookupManagedBean(this)));
-
-    // Refresh Interval
-    AdminDistributedSystemJmxImpl sysJmx = 
(AdminDistributedSystemJmxImpl)system;
-    if (sysJmx.getRefreshInterval() > 0)
-      this.refreshInterval = sysJmx.getRefreshInterval();
-  }
-  
-  // -------------------------------------------------------------------------
-  //   MBean attributes - accessors/mutators
-  // -------------------------------------------------------------------------
-
-  /**
-   * Gets the interval in seconds between config refreshes
-   *
-   * @return the current refresh interval in seconds
-   */
-  public int getRefreshInterval() {
-    return this.refreshInterval;
-  }
-  
-  /**
-   * RefreshInterval is now set only through the AdminDistributedSystem 
property
-   * refreshInterval. Attempt to set refreshInterval on SystemMemberJmx MBean
-   * would result in an OperationNotSupportedException Auto-refresh is enabled
-   * on demand when a call to refreshConfig is made
-   * 
-   * @param refreshInterval
-   *          the new refresh interval in seconds
-   * @deprecated since 6.0 use DistributedSystemConfig.refreshInterval instead
-   */
-  @Deprecated
-  public void setRefreshInterval(int refreshInterval)
-      throws OperationNotSupportedException {
-    throw new OperationNotSupportedException(
-        
LocalizedStrings.MANAGED_RESOURCE_REFRESH_INTERVAL_CANT_BE_SET_DIRECTLY.toLocalizedString());
-  }
-
-  /**
-   * Sets interval in seconds between member config refreshes; zero or less
-   * turns off auto refreshing. Manual refreshing has no effect on when the 
next
-   * scheduled refresh will occur.
-   * 
-   * @param refreshInterval
-   *          the new refresh interval in seconds
-   */
-  public void _setRefreshInterval(int refreshInterval) {
-    boolean isRegistered = MBeanUtil.isRefreshNotificationRegistered(this,
-        RefreshNotificationType.SYSTEM_MEMBER_CONFIG);
-
-    if (isRegistered && (getRefreshInterval() == refreshInterval))
-      return;
-
-    this.refreshInterval = Helper.setAndReturnRefreshInterval(this,
-        refreshInterval);
-  }
-  
-  // -------------------------------------------------------------------------
-  //   MBean Operations
-  // -------------------------------------------------------------------------
-
-  public void refreshConfig() throws org.apache.geode.admin.AdminException {
-    // 1st call to refreshConfig would trigger
-    // the auto-refresh if an interval is set
-    if (this.refreshInterval > 0) {
-      this._setRefreshInterval(this.refreshInterval);
-    }
-
-    super.refreshConfig();
-  }
-  
-  /**
-   * Initializes Cache & Statistics managed resources.
-   * 
-   * @throws AdminException
-   *           if initialization of managed resources fails
-   */
-//  private void initializeManagedResources() throws AdminException {
-//    try {
-//      manageCache();
-//    } catch (MalformedObjectNameException e) {
-//      throw new 
AdminException(LocalizedStrings.SystemMemberJmxImpl_EXCEPTION_OCCURRED_WHILE_INITIALIZING_0_MBEANS_FOR_1.toLocalizedString(
-//              new Object[] {"Cache", getId()}), 
-//              e);
-//    } catch (AdminException ae) {
-//      if 
(LocalizedStrings.SystemMemberJmx_THIS_SYSTEM_MEMBER_DOES_NOT_HAVE_A_CACHE.toLocalizedString().equals(ae.getMessage()))
 {
-//        //ignore this exception for a cache-less peer 
-//      } else {
-//        throw ae;
-//      }
-//    }
-//    try {
-//      manageStats();
-//    } catch (MalformedObjectNameException e) {
-//      throw new 
AdminException(LocalizedStrings.SystemMemberJmxImpl_EXCEPTION_OCCURRED_WHILE_INITIALIZING_0_MBEANS_FOR_1.toLocalizedString(
-//          new Object[] {"Statistics", getId()}), 
-//          e);
-//    }
-//  }
-
-  /** 
-   * Gets this member's cache.
-   *
-   * @return <code>ObjectName</code> for this member's cache
-   *
-   * @throws AdminException
-   *         If this system member does not host a cache
-   */
-  public ObjectName manageCache() 
-    throws AdminException, MalformedObjectNameException {
-
-    return Helper.manageCache(this);
-  }
-  
-  /** 
-   * Gets all active StatisticResources for this manager.
-   *
-   * @return array of ObjectName instances
-   */
-  public ObjectName[] manageStats() 
-    throws AdminException, MalformedObjectNameException {
-
-    return Helper.manageStats(this);
-  }
-  
-  /** 
-   * Gets the active StatisticResources for this manager, based on the
-   * typeName as the key
-   *
-   * @return ObjectName of StatisticResourceJMX instance
-   */
-  public ObjectName[] manageStat(String statisticsTypeName) 
-    throws AdminException, MalformedObjectNameException {
-    
-    return Helper.manageStat(this, statisticsTypeName);
-  }
-  
-  // -------------------------------------------------------------------------
-  //   JMX Notification listener
-  // -------------------------------------------------------------------------
-
-  /**
-   * Handles notification to refresh. Reacts by refreshing the values of this
-   * SystemMember's ConfigurationParamaters. Any other notification is ignored.
-   * Given notification is handled only if there is any JMX client connected 
to 
-   * the system. 
-   * 
-   * @param notification
-   *          the JMX notification being received
-   * @param hb
-   *          handback object is unused
-   */
-  public void handleNotification(Notification notification, Object hb) {
-    AdminDistributedSystemJmxImpl systemJmx = 
-                                  (AdminDistributedSystemJmxImpl) this.system;
-    
-    if (!systemJmx.isRmiClientCountZero()) {
-      Helper.handleNotification(this, notification, hb);
-    }
-  }
-
-  // -------------------------------------------------------------------------
-  //   Template methods overriden from superclass...
-  // -------------------------------------------------------------------------
-
-  /**
-   * Template method for creating instance of ConfigurationParameter.  
-   * Overridden to return ConfigurationParameterJmxImpl.
-   */
-  @Override
-  protected ConfigurationParameter createConfigurationParameter(String name,
-                                                                String 
description,
-                                                                Object value,
-                                                                Class type,
-                                                                boolean 
userModifiable) {
-    return new ConfigurationParameterJmxImpl(
-        name, description, value, type, userModifiable);
-  }
-
-  /**
-   * Override createStatisticResource by instantiating 
StatisticResourceJmxImpl 
-   * if it was not created earlier otherwise returns the same instance.
-   * 
-   * @param stat
-   *         StatResource reference for which this JMX resource is to be 
created
-   * @return StatisticResourceJmxImpl - JMX Implementation of StatisticResource
-   * @throws AdminException
-   *           if constructing StatisticResourceJmxImpl instance fails
-   */
-  @Override
-  protected StatisticResource createStatisticResource(StatResource stat)
-    throws org.apache.geode.admin.AdminException {
-    StatisticResourceJmxImpl managedStatisticResource = null;
-    
-    synchronized (this.managedStatisticsResourcesMap) {
-      /* 
-       * Ensuring that a single instance of Statistic Resource is created per 
-       * StatResource.
-       */
-      StatisticResourceJmxImpl statisticResourceJmxImpl = 
managedStatisticsResourcesMap.get(stat);
-      if (statisticResourceJmxImpl != null) {
-        managedStatisticResource = statisticResourceJmxImpl;
-      } else {
-        managedStatisticResource = new StatisticResourceJmxImpl(stat, this);
-        managedStatisticResource.getStatistics();//inits timer
-        managedStatisticsResourcesMap.put(stat, managedStatisticResource);
-      }
-    }
-    return managedStatisticResource;
-  }
-
-  /**
-   * Override createSystemMemberCache by instantiating 
SystemMemberCacheJmxImpl 
-   * if it was not created earlier.
-   * 
-   * @param vm
-   *          GemFireVM reference for which this JMX resource is to be created
-   * @return SystemMemberCacheJmxImpl - JMX Implementation of SystemMemberCache
-   * @throws AdminException
-   *           if constructing SystemMemberCacheJmxImpl instance fails
-   */
-  @Override
-  protected SystemMemberCache createSystemMemberCache(GemFireVM vm)
-    throws org.apache.geode.admin.AdminException {
-    if (managedSystemMemberCache == null) {
-      managedSystemMemberCache = new SystemMemberCacheJmxImpl(vm);
-    }
-    return managedSystemMemberCache;
-  }
-
-  // -------------------------------------------------------------------------
-  //   Create MBean attributes for each ConfigurationParameter
-  // -------------------------------------------------------------------------
-  
-  /**
-   * Add MBean attribute definitions for each ConfigurationParameter.
-   *
-   * @param managed the mbean definition to add attributes to
-   * @return a new instance of ManagedBean copied from <code>managed</code> 
but 
-   *         with the new attributes added
-   */
-  public ManagedBean addDynamicAttributes(ManagedBean managed) 
-    throws AdminException {
-
-    return Helper.addDynamicAttributes(this, managed);
-  }
-
-  // -------------------------------------------------------------------------
-  //   ManagedResource implementation
-  // -------------------------------------------------------------------------
-  
-  /** The name of the MBean that will manage this resource */
-  private String mbeanName;
-
-  /** The ModelMBean that is configured to manage this resource */
-  private ModelMBean modelMBean;
-  
-       public String getMBeanName() {
-               return this.mbeanName;
-       }
-  
-       public ModelMBean getModelMBean() {
-               return this.modelMBean;
-       }
-       public void setModelMBean(ModelMBean modelMBean) {
-               this.modelMBean = modelMBean;
-       }
-  
-  public ObjectName getObjectName() {
-    return this.objectName;
-  }
-
-  public ManagedResourceType getManagedResourceType() {
-    return ManagedResourceType.SYSTEM_MEMBER;
-  }
-  
-  /**
-   * Un-registers all the statistics & cache managed resource created for this 
-   * member. After un-registering the resource MBean instances, clears 
-   * managedStatisticsResourcesMap collection.
-   */
-  public void cleanupResource() {
-    synchronized (this.managedStatisticsResourcesMap) {
-      ConfigurationParameter[] names = getConfiguration();
-      if (names != null) {
-        for (int i = 0; i < names.length; i++) {
-          ConfigurationParameter parm = names[i];
-          ((ConfigurationParameterImpl) 
parm).removeConfigurationParameterListener(this);
-        }
-      }
-      this.parms.clear();
-
-      Collection<StatisticResourceJmxImpl> statisticResources = 
managedStatisticsResourcesMap.values();
-      
-      for (StatisticResourceJmxImpl statisticResource : statisticResources) {
-        MBeanUtil.unregisterMBean(statisticResource);
-      }
-        
-      this.managedStatisticsResourcesMap.clear();
-    }
-    MBeanUtil.unregisterMBean(managedSystemMemberCache);
-  }
-
-
-  /**
-   * Cleans up Managed Resources created for the client that was connected to
-   * the server represented by this class.
-   * 
-   * @param clientId
-   *          id of the client to be removed
-   * @return List of ManagedResources associated with the client of given 
client
-   *         id
-   */
-  /*
-   * This clean up is for the clients. The clients are started with a loner DM.
-   * Hence the clientId is not supposed to contain '/' as per 
-   * InternalDistributedMember.toString().  
-   */
-  public List<ManagedResource> cleanupBridgeClientResources(String clientId) {
-    List<ManagedResource> returnedResources = new ArrayList<ManagedResource>();
-
-    String compatibleId = 
"id_"+MBeanUtil.makeCompliantMBeanNameProperty(clientId);
-    synchronized (this.managedStatisticsResourcesMap) {
-      Set<Entry<StatResource, StatisticResourceJmxImpl>> entrySet = 
this.managedStatisticsResourcesMap.entrySet();
-      
-      for (Iterator<Entry<StatResource, StatisticResourceJmxImpl>> it = 
entrySet.iterator(); it.hasNext();) {
-        Entry<StatResource, StatisticResourceJmxImpl> entry = it.next();
-        StatisticResourceJmxImpl resource = entry.getValue();
-        if (resource.getMBeanName().contains(compatibleId)) {
-          it.remove(); //remove matching entry
-          returnedResources.add(resource);
-        }
-      }
-    }
-    return returnedResources;
-  }
-  
-  /**
-   * Implementation handles client membership changes.
-   * 
-   * @param clientId
-   *          id of the client for whom membership change happened
-   * @param eventType
-   *          membership change type; one of
-   *          {@link ClientMembershipMessage#JOINED},
-   *          {@link ClientMembershipMessage#LEFT}, 
-   *          {@link ClientMembershipMessage#CRASHED}
-   */
-  public void handleClientMembership(String clientId, int eventType) {
-    String notifType                = null;
-    List<ManagedResource> cleanedUp = null;
-    
-    if (eventType == ClientMembershipMessage.LEFT) {
-      notifType = NOTIF_CLIENT_LEFT;
-      cleanedUp = cleanupBridgeClientResources(clientId);
-    } else if (eventType == ClientMembershipMessage.CRASHED) {
-      notifType = NOTIF_CLIENT_CRASHED;
-      cleanedUp = cleanupBridgeClientResources(clientId);
-    } else if (eventType == ClientMembershipMessage.JOINED) {
-      notifType = NOTIF_CLIENT_JOINED;
-    }
-    
-    if (cleanedUp != null) {
-      for (ManagedResource resource : cleanedUp) {
-        MBeanUtil.unregisterMBean(resource);
-      }
-    }
-
-    Helper.sendNotification(this, 
-        new Notification(notifType, this.modelMBean, 
-        Helper.getNextNotificationSequenceNumber(),
-        clientId));
-  }
-  
-  /**
-   * Implementation handles creation of cache by extracting the details from 
the 
-   * given event object and sending the 
-   * {@link SystemMemberJmx#NOTIF_CACHE_CREATED} notification to the connected 
-   * JMX Clients.
-   * 
-   * @param event
-   *          event object corresponding to the creation of the cache
-   */
-  public void handleCacheCreate(SystemMemberCacheEvent event) {
-    Helper.sendNotification(this, 
-      new Notification(NOTIF_CACHE_CREATED, this.modelMBean, 
-      Helper.getNextNotificationSequenceNumber(),
-      Helper.getCacheEventDetails(event)));
-  }  
-
-  /**
-   * Implementation handles closure of cache by extracting the details from 
the 
-   * given event object and sending the
-   * {@link SystemMemberJmx#NOTIF_CACHE_CLOSED} notification to the connected 
-   * JMX Clients. 
-   * 
-   * @param event
-   *          event object corresponding to the closure of the cache
-   */
-  public void handleCacheClose(SystemMemberCacheEvent event) {
-    Helper.sendNotification(this, 
-        new Notification(NOTIF_CACHE_CLOSED, this.modelMBean, 
-        Helper.getNextNotificationSequenceNumber(),
-        Helper.getCacheEventDetails(event)));
-  }
-
-  /**
-   * Implementation handles creation of region by extracting the details from 
-   * the given event object and sending the
-   * {@link SystemMemberJmx#NOTIF_REGION_CREATED} notification to the 
connected 
-   * JMX Clients. Region Path is set as User Data in Notification. 
-   * 
-   * @param event
-   *          event object corresponding to the creation of a region
-   */
-  public void handleRegionCreate(SystemMemberRegionEvent event) {
-    Notification notification = new Notification(NOTIF_REGION_CREATED, 
this.modelMBean, 
-        Helper.getNextNotificationSequenceNumber(),
-        Helper.getRegionEventDetails(event));
-    
-    notification.setUserData(event.getRegionPath());
-
-    Helper.sendNotification(this, notification);
-  }
-
-  /**
-   * Implementation should handle loss of region by extracting the details 
from 
-   * the given event object and sending the
-   * {@link SystemMemberJmx#NOTIF_REGION_LOST} notification to the connected 
-   * JMX Clients. Region Path is set as User Data in Notification. 
Additionally, 
-   * it also clears the ManagedResources created for the region that is lost. 
-   * 
-   * @param event
-   *          event object corresponding to the loss of a region
-   */
-  public void handleRegionLoss(SystemMemberRegionEvent event) {
-    SystemMemberCacheJmxImpl cacheResource = this.managedSystemMemberCache;
-    
-    if (cacheResource != null) {
-      ManagedResource cleanedUp = 
-                cacheResource.cleanupRegionResources(event.getRegionPath());
-      
-      if (cleanedUp != null) {
-        MBeanUtil.unregisterMBean(cleanedUp);
-      }
-    }
-    
-    Notification notification = new Notification(NOTIF_REGION_LOST, 
this.modelMBean, 
-        Helper.getNextNotificationSequenceNumber(),
-        Helper.getRegionEventDetails(event));
-    
-    notification.setUserData(event.getRegionPath());
-
-    Helper.sendNotification(this, notification);
-  }
-}
-


Reply via email to