Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The implementation of getManagementService is a singleton for now but it allows us to eventually support multiple cache instances (probably multiple client caches and on peer cache). The resulting ManagementService instance will be specific to the provided cache and its distributed system. Also the instance will behave differently when the cache is a client cache vs a peer cache. When its a client cache then execution of a command string should be forwarded to the cache server instead of processed in the local JVM. More detailing needs to be done for client cache.

  • Come on
    APIs useful at Managed Node

 

Code Block
languagejava
Test
 public class ManagementService {
  /**
   * It will a singleton instance across a Cache. This instance will
   * act as th einterface between user and GemFire Management.
   * 
   * @param Cache
   * @return ManagementService
   */
  public static ManagementService getManagementService(Cache cache) {
  }
  /**
   * This will register the MBean in default GemFire domain.
   * Any MBean which wishes to register itself in Gemfire
   * domain should use this method.
   * Note: The ObjectName will be modified here. Hence returning the
   * modified ObjectName.
   */
  public ObjectName registerMBean(Object object, ObjectName objectName) {
  }
  /**
   * For consistency and clean up of GemFire resources
   * use this method to unregister the MBean from GemFire Domain
   */
  public void unregisterMBean(ObjectName objectName) {
  }
  /**
   * This method is used to mark an MBean for federation.
   * 
   * Users may want to only register their MBean in GemFire domain. In that
   * case they don't have to call federate();
   * 
   * @param <T>
   * @param name MBean name
   * @param interfaceClass MBean interface class
   * @param notificationEmitter is the MBean a notification emitter
   * @return
   */
  public <T> boolean federate(ObjectName name, Class<T> interfaceClass, boolean notificationEmitter) {
  }
  /**
   * This method is used to process a command
   * This takes an String is a parameter.
   * 
   * @param commandString
   * @return
   */
  public Object processComand(String commandString) {
  }
  /**
   * Interfaces to get all GemFire specific MBeans
   *
   */
  public RegionMXBean getLocalRegionMXBean(Region region) {
  }
  public LockServiceMXBean getLocalLockServiceMXBean(String name){
  }
  ........
}

 

  • APIs useful at Managed Node

     

    Code Block
    languagejava
    Foo
    Code Block
    languagejava
    public class ManagementService {
      /**
       * It will a singleton instance across a Cache. This instance will
       * act as the interface between user and GemFire Management.
       * 
       * @param Cache
       * @return ManagementService
       */
      public static ManagementService getManagementService(Cache cache) {
      }
      /**
       * This will register the MBean in default GemFire domain.
       * Any MBean which wishes to register itself in Gemfire
       * domain should use this method.
       * Note: The ObjectName will be modified here. Hence returning the
       * modified ObjectName.
       */
      public ObjectName registerMBean(Object object, ObjectName objectName) {
      }
      /**
       * For consistency and clean up of GemFire resources
       * use this method to unregister the MBean from GemFire Domain
       */
      public void unregisterMBean(ObjectName objectName) {
      }
      /**
       * This method is used to mark an MBean for federation.
       * 
       * Users may want to only register their MBean in GemFire domain. In that
       * case they don't have to call federate();
       * 
       * @param <T>
       * @param name MBean name
       * @param interfaceClass MBean interface class
       * @param notificationEmitter is the MBean a notification emitter
       */
      public <T> boolean federate(ObjectName name, Class<T> interfaceClass, boolean notificationEmitter) {
      }
      /**
       * This method is used to process a command
       * This takes an String is a parameter.
       * 
       * @param commandString
       * @return
       */
      public Object processComand(String commandString) {
      }
      /**
       * Interfaces to get all GemFire specific MBeans
       *
       */
      public RegionMXBean getLocalRegionMXBean(Region region) {
      }
      public LockServiceMXBean getLocalLockServiceMXBean(String name){
      }
      ........
    }

...