You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by rv...@apache.org on 2015/04/28 23:40:42 UTC

[37/51] [partial] incubator-geode git commit: Init

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/19459053/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/SystemMemberRegionImpl.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/SystemMemberRegionImpl.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/SystemMemberRegionImpl.java
new file mode 100644
index 0000000..e4eebde
--- /dev/null
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/SystemMemberRegionImpl.java
@@ -0,0 +1,372 @@
+/*=========================================================================
+ * Copyright (c) 2002-2014 Pivotal Software, Inc. All Rights Reserved.
+ * This product is protected by U.S. and international copyright
+ * and intellectual property laws. Pivotal products are covered by
+ * more patents listed at http://www.pivotal.io/patents.
+ *========================================================================
+ */
+package com.gemstone.gemfire.admin.internal;
+
+import com.gemstone.gemfire.admin.*;
+import com.gemstone.gemfire.cache.*;
+//import com.gemstone.gemfire.internal.Assert;
+//import com.gemstone.gemfire.internal.admin.*;
+import com.gemstone.gemfire.internal.admin.remote.*;
+
+import java.io.File;
+import java.util.*;
+
+/**
+ * View of a region in a GemFire system member's cache.
+ *
+ * @author    Darrel Schneider
+ * @since     3.5
+ */
+public class SystemMemberRegionImpl implements SystemMemberRegion {
+
+  private AdminRegion r;
+  private RegionAttributes ra;
+  private CacheStatistics rs;
+  private Set subregionNames;
+  private Set subregionFullPaths;
+  private int entryCount;
+  private int subregionCount;
+
+  /** The cache to which this region belongs */
+  private final SystemMemberCacheImpl cache;
+
+  // constructors
+  public SystemMemberRegionImpl(SystemMemberCacheImpl cache, Region r)
+  {
+    this.cache = cache;
+    this.r = (AdminRegion)r;
+  }
+
+  private void refreshFields() {
+    this.ra = this.r.getAttributes();
+    if (getStatisticsEnabled() && !this.ra.getDataPolicy().withPartitioning()) {
+      this.rs = this.r.getStatistics();
+    } else {
+      this.rs = null;
+    }
+    { // set subregionNames
+      Set s = this.r.subregions(false);
+      Set names = new TreeSet();
+      Set paths = new TreeSet();
+      Iterator it = s.iterator();
+      while (it.hasNext()) {
+        Region r = (Region)it.next();
+        String name = r.getName();
+        names.add(name);
+        paths.add(this.getFullPath() + Region.SEPARATOR_CHAR + name);
+      }
+      this.subregionNames = names;
+      this.subregionFullPaths = paths;
+    }
+    try {
+      int[] sizes = this.r.sizes();
+      this.entryCount = sizes[0];
+      this.subregionCount = sizes[1];
+    } catch (CacheException ignore) {
+      this.entryCount = 0;
+      this.subregionCount = 0;
+    }
+  }
+  
+  // attributes
+  public String getName() {
+    return this.r.getName();
+  }
+  
+  public String getFullPath() {
+    return this.r.getFullPath();
+  }
+
+  public java.util.Set getSubregionNames() {
+    return this.subregionNames;
+  }
+
+  public java.util.Set getSubregionFullPaths() {
+    return this.subregionFullPaths;
+  }
+
+  public String getUserAttribute() {
+    return (String)r.getUserAttribute();
+  }
+
+  public String getCacheLoader() {
+    Object o = this.ra.getCacheLoader();
+    if (o == null) {
+      return "";
+    } else {
+      return o.toString();
+    }
+  }
+  public String getCacheWriter() {
+    Object o = this.ra.getCacheWriter();
+    if (o == null) {
+      return "";
+    } else {
+      return o.toString();
+    }
+  }
+
+  public String getKeyConstraint() {
+    Class constraint = this.ra.getKeyConstraint();
+    if (constraint == null) {
+      return "";
+    } else {
+      return constraint.getName();
+    }
+  }
+
+  public String getValueConstraint() {
+    Class constraint = this.ra.getValueConstraint();
+    if (constraint == null) {
+      return "";
+    } else {
+      return constraint.getName();
+    }
+  }
+
+  public boolean getEarlyAck() {
+    return this.ra.getEarlyAck();
+  }
+
+  public int getRegionTimeToLiveTimeLimit() {
+    return this.ra.getRegionTimeToLive().getTimeout();
+  }
+
+  public ExpirationAction getRegionTimeToLiveAction() {
+    return this.ra.getRegionTimeToLive().getAction();
+  }
+
+  public int getEntryTimeToLiveTimeLimit() {
+    return this.ra.getEntryTimeToLive().getTimeout();
+  }
+
+  public ExpirationAction getEntryTimeToLiveAction() {
+    return this.ra.getEntryTimeToLive().getAction();
+  }
+
+  public String getCustomEntryTimeToLive() {
+    Object o = this.ra.getCustomEntryTimeToLive();
+    if (o == null) {
+      return "";
+    } else {
+      return o.toString();
+    }
+  }
+  
+  public int getRegionIdleTimeoutTimeLimit() {
+    return this.ra.getRegionIdleTimeout().getTimeout();
+  }
+
+  public ExpirationAction getRegionIdleTimeoutAction() {
+    return this.ra.getRegionIdleTimeout().getAction();
+  }
+
+  public int getEntryIdleTimeoutTimeLimit() {
+    return this.ra.getEntryIdleTimeout().getTimeout();
+  }
+
+  public ExpirationAction getEntryIdleTimeoutAction() {
+    return this.ra.getEntryIdleTimeout().getAction();
+  }
+
+  public String getCustomEntryIdleTimeout() {
+    Object o = this.ra.getCustomEntryIdleTimeout();
+    if (o == null) {
+      return "";
+    } else {
+      return o.toString();
+    }
+  }
+  
+  public MirrorType getMirrorType() {
+    return this.ra.getMirrorType();
+  }
+  
+  public DataPolicy getDataPolicy() {
+    return this.ra.getDataPolicy();
+  }
+  
+  public Scope getScope() {
+    return this.ra.getScope();
+  }
+
+  public EvictionAttributes getEvictionAttributes() {
+    return this.ra.getEvictionAttributes();
+  }
+
+  /**
+   * This method will return an empty string if there are no CacheListeners
+   * defined on the region. If there are more than 1 CacheListeners defined,
+   * this method will return the description of the 1st CacheListener in the
+   * list returned by the getCacheListeners method. If there is only one
+   * CacheListener defined this method will return it's description
+   * 
+   * @return String the region's <code>CacheListener</code> description
+   * @deprecated as of 6.0, use {@link #getCacheListeners} instead
+   */
+  @Deprecated
+  public String getCacheListener() {
+    String[] o = this.getCacheListeners();
+    if (o.length == 0) {
+      return "";
+    }
+    else {
+      return o[0].toString();
+    }
+  }
+
+  /**
+   * This method will return an empty array if there are no CacheListeners
+   * defined on the region. If there are one or more than 1 CacheListeners
+   * defined, this method will return an array which has the description of all
+   * the CacheListeners
+   * 
+   * @return String[] the region's <code>CacheListeners</code> descriptions as a
+   *         String array
+   * @since 6.0
+   */
+  public String[] getCacheListeners() {
+    Object[] o = this.ra.getCacheListeners();
+    String[] ret = null;
+    if (o == null || o.length == 0) {
+      ret = new String[0];
+    }
+    else {
+      ret = new String[o.length];
+      for (int i = 0; i < o.length; i++) {
+        ret[i] = o[i].toString();
+      }
+    }
+    return ret;
+  }
+
+  public int getInitialCapacity() {
+    return this.ra.getInitialCapacity();
+  }
+
+  public float getLoadFactor() {
+    return this.ra.getLoadFactor();
+  }
+
+  public int getConcurrencyLevel() {
+    return this.ra.getConcurrencyLevel();
+  }
+
+  public boolean getConcurrencyChecksEnabled() {
+    return this.ra.getConcurrencyChecksEnabled();
+  }
+
+  public boolean getStatisticsEnabled() {
+    return this.ra.getStatisticsEnabled();
+  }
+
+  public boolean getPersistBackup() {
+    return this.ra.getPersistBackup();
+  }
+
+  public DiskWriteAttributes getDiskWriteAttributes() {
+    return this.ra.getDiskWriteAttributes();
+  }
+
+  public File[] getDiskDirs() {
+    return this.ra.getDiskDirs();
+  }
+
+  public int getEntryCount() {
+    return this.entryCount;
+  }
+  
+  public int getSubregionCount() {
+    return this.subregionCount;
+  }
+
+  public long getLastModifiedTime() {
+    if (this.rs == null) {
+      return 0;
+    } else {
+      return this.rs.getLastModifiedTime();
+    }
+  }
+
+  public long getLastAccessedTime() {
+    if (this.rs == null) {
+      return 0;
+    } else {
+      return this.rs.getLastAccessedTime();
+    }
+  }
+
+  public long getHitCount() {
+    if (this.rs == null) {
+      return 0;
+    } else {
+      return this.rs.getHitCount();
+    }
+  }
+
+  public long getMissCount() {
+    if (this.rs == null) {
+      return 0;
+    } else {
+      return this.rs.getMissCount();
+    }
+  }
+
+  public float getHitRatio() {
+    if (this.rs == null) {
+      return 0;
+    } else {
+      return this.rs.getHitRatio();
+    }
+  }
+  
+  // operations
+  public void refresh() {
+    refreshFields();
+  }
+
+	/**
+	 * Returns a string representation of the object.
+	 * 
+	 * @return a string representation of the object
+	 */
+  @Override
+	public String toString() {
+		return getName();
+	}
+
+  public SystemMemberRegion createSubregion(String name,
+                                            RegionAttributes attrs)
+    throws AdminException {
+
+    Region r =
+      this.cache.getVM().createSubregion(this.cache.getCacheInfo(),
+                                         this.getFullPath(), name, attrs);
+    if (r == null) {
+      return null;
+
+    } else {
+      return this.cache.createSystemMemberRegion(r);
+    }
+
+  }
+
+  public MembershipAttributes getMembershipAttributes() {
+    return this.ra.getMembershipAttributes();
+  }
+  
+  public SubscriptionAttributes getSubscriptionAttributes() {
+    return this.ra.getSubscriptionAttributes();
+  }
+  
+  public PartitionAttributes getPartitionAttributes() {
+    return this.ra.getPartitionAttributes();
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/19459053/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/SystemMembershipEventImpl.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/SystemMembershipEventImpl.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/SystemMembershipEventImpl.java
new file mode 100644
index 0000000..40e821c
--- /dev/null
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/SystemMembershipEventImpl.java
@@ -0,0 +1,62 @@
+/*=========================================================================
+ * Copyright (c) 2010-2014 Pivotal Software, Inc. All Rights Reserved.
+ * This product is protected by U.S. and international copyright
+ * and intellectual property laws. Pivotal products are covered by
+ * one or more patents listed at http://www.pivotal.io/patents.
+ *=========================================================================
+ */
+package com.gemstone.gemfire.admin.internal;
+
+import com.gemstone.gemfire.admin.*;
+import com.gemstone.gemfire.distributed.DistributedMember;
+
+/**
+ * An event delivered to a {@link SystemMembershipListener} when a
+ * member has joined or left the distributed system.
+ *
+ * @author Darrel Schneider
+ * @since 5.0
+ */
+public class SystemMembershipEventImpl implements SystemMembershipEvent {
+
+  /** The id of the member that generated this event */
+  private DistributedMember id;
+
+  ///////////////////////  Constructors  ///////////////////////
+
+  /**
+   * Creates a new <code>SystemMembershipEvent</code> for the member
+   * with the given id.
+   */
+  protected SystemMembershipEventImpl(DistributedMember id) {
+    this.id = id;
+  }
+
+  /////////////////////  Instance Methods  /////////////////////
+
+  public String getMemberId() {
+    return this.id.toString();
+  }
+  
+  public DistributedMember getDistributedMember() {
+    return this.id;
+  }
+
+//   /**
+//    * Returns the user specified callback object associated with this
+//    * membership event.  Note that the callback argument is always
+//    * <code>null</code> for the event delivered to the {@link
+//    * SystemMembershipListener#memberCrashed} method.
+//    *
+//    * @since 4.0
+//    */
+//   public Object getCallbackArgument() {
+//     throw new UnsupportedOperationException("Not implemented yet");
+//   }
+
+  @Override
+  public String toString() {
+    return "Member " + this.getMemberId();
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/19459053/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/doc-files/config-hierarchy.fig
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/doc-files/config-hierarchy.fig b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/doc-files/config-hierarchy.fig
new file mode 100644
index 0000000..7d3f34d
--- /dev/null
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/doc-files/config-hierarchy.fig
@@ -0,0 +1,156 @@
+#FIG 3.2
+Portrait
+Center
+Inches
+Letter  
+100.00
+Single
+-2
+1200 2
+6 150 3825 2325 4725
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 150 4200 2325 4200
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 150 4725 2325 4725 2325 3825 150 3825 150 4725
+4 0 0 50 -1 1 12 0.0000 4 180 630 300 4425 port : int\001
+4 0 0 50 -1 1 12 0.0000 4 180 1485 300 4665 bindAddress : String\001
+4 0 0 50 -1 1 12 0.0000 4 180 1920 300 4050 DistributionLocatorConfig\001
+-6
+6 2475 3825 4500 4125
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 2475 3825 4500 3825 4500 4125 2475 4125 2475 3825
+4 0 0 50 -1 1 12 0.0000 4 180 1785 2625 4050 GemFireManagerConfig\001
+-6
+6 4650 3825 6375 4500
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 4650 4500 6375 4500 6375 3825 4650 3825 4650 4500
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 4650 4200 6375 4200
+4 0 0 50 -1 1 12 0.0000 4 180 1545 4725 4425 cacheXmlFile : String\001
+4 0 0 50 -1 1 12 0.0000 4 180 1395 4800 4050 CacheServerConfig\001
+-6
+6 6525 3825 7950 4125
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 6525 3825 7950 3825 7950 4125 6525 4125 6525 3825
+4 0 0 50 -1 1 12 0.0000 4 180 1290 6600 4050 GFXServerConfig\001
+-6
+6 3225 675 5250 2925
+6 3300 2400 4575 2850
+6 3300 2400 4575 2625
+4 0 0 50 -1 1 12 0.0000 4 180 1245 3300 2565 +validate() : void\001
+-6
+4 0 0 50 -1 1 12 0.0000 4 180 1230 3300 2805 +clone() : Object\001
+-6
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 3225 2925 5250 2925 5250 675 3225 675 3225 2925
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 3225 1050 5250 1050
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 3225 2325 5250 2325
+4 0 0 50 -1 1 12 0.0000 4 180 885 3300 1275 host : String\001
+4 0 0 50 -1 1 12 0.0000 4 180 1860 3300 1515 workingDirectory : String\001
+4 0 0 50 -1 1 12 0.0000 4 180 1830 3300 1755 productDirectory : String\001
+4 0 0 50 -1 1 12 0.0000 4 180 1830 3300 1995 remoteCommand : String\001
+4 0 0 50 -1 1 12 0.0000 4 180 720 3300 2235 id : String\001
+4 0 0 50 -1 1 12 0.0000 4 180 1560 3450 900 ManagedEntityConfig\001
+-6
+6 6750 7725 7650 8025
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 6750 7725 7650 7725 7650 8025 6750 8025 6750 7725
+4 0 0 50 -1 1 12 0.0000 4 135 810 6825 7950 GFXServer\001
+-6
+6 525 7725 2100 8025
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 525 7725 2100 7725 2100 8025 525 8025 525 7725
+4 0 0 50 -1 1 12 0.0000 4 135 1440 600 7950 DistributionLocator\001
+-6
+6 2025 5625 3600 7050
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 2025 7050 3600 7050 3600 5625 2025 5625 2025 7050
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 2025 6000 3600 6000
+4 0 0 50 -1 1 12 0.0000 4 180 1440 2100 6225 isRunning : boolean\001
+4 0 0 50 -1 1 12 0.0000 4 180 900 2100 6465 start() : void\001
+4 0 0 50 -1 1 12 0.0000 4 180 870 2100 6705 stop() : void\001
+4 0 0 50 -1 1 12 0.0000 4 180 1200 2100 6945 getLog() : String\001
+4 0 0 50 -1 1 12 0.0000 4 180 1080 2250 5850 ManagedEntity\001
+-6
+6 5175 5625 7275 6975
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 5175 6975 7275 6975 7275 5625 5175 5625 5175 6975
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 5175 6000 7275 6000
+4 0 0 50 -1 1 12 0.0000 4 180 1875 5325 6225 type : SystemMemberType\001
+4 0 0 50 -1 1 12 0.0000 4 180 1455 5325 6465 licsense : Properties\001
+4 0 0 50 -1 1 12 0.0000 4 180 1110 5325 6705 version : String\001
+4 0 0 50 -1 1 12 0.0000 4 135 1425 5325 6945 hasCache : boolean\001
+4 0 0 50 -1 1 12 0.0000 4 180 1095 5700 5850 SystemMember\001
+-6
+6 4875 7725 5925 8025
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 4875 7725 5925 7725 5925 8025 4875 8025 4875 7725
+4 0 0 50 -1 1 12 0.0000 4 135 915 4950 7950 CacheServer\001
+-6
+6 2925 7725 4350 8025
+6 2925 7725 4350 8025
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 2925 7725 4350 7725 4350 8025 2925 8025 2925 7725
+4 0 0 50 -1 1 12 0.0000 4 180 1305 3000 7950 GemFireManager\001
+-6
+-6
+6 150 9375 2550 9675
+2 2 0 1 0 7 50 -1 -1 4.000 0 0 -1 0 0 5
+	 150 9375 2550 9375 2550 9675 150 9675 150 9375
+4 0 0 50 -1 2 12 0.0000 4 180 2250 225 9600 DistributionLocatorJmxImpl\001
+-6
+6 525 8625 2625 8925
+2 2 0 1 0 7 50 -1 -1 4.000 0 0 -1 0 0 5
+	 525 8625 2625 8625 2625 8925 525 8925 525 8625
+4 0 0 50 -1 2 12 0.0000 4 180 1920 600 8850 DistributionLocatorImpl\001
+-6
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 4
+	 1050 3825 1050 3375 7200 3375 7200 3825
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 3450 3375 3450 3825
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 5475 3375 5475 3825
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	1 0 1.00 120.00 120.00
+	 4200 3375 4200 2925
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 4
+	 1125 7725 1125 7500 7200 7500 7200 7725
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 3375 7725 3375 7500
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 5250 7725 5250 7500
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	1 0 1.00 120.00 120.00
+	 2700 7500 2700 7050
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 4
+	 4200 7725 4200 7275 7350 7275 7350 7725
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	1 0 1.00 120.00 120.00
+	 6150 7275 6150 6975
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 5475 7725 5475 7275
+2 1 0 1 0 7 50 -1 -1 4.000 0 0 -1 1 0 2
+	0 0 1.00 120.00 120.00
+	 750 7725 750 4725
+2 1 0 1 0 7 50 -1 -1 4.000 0 0 -1 1 0 2
+	0 0 1.00 120.00 120.00
+	 3825 7725 3825 4125
+2 1 0 1 0 7 50 -1 -1 4.000 0 0 -1 1 0 2
+	0 0 1.00 120.00 120.00
+	 4950 7725 4950 4500
+2 1 0 1 0 7 50 -1 -1 4.000 0 0 -1 1 0 2
+	0 0 1.00 120.00 120.00
+	 7500 7725 7500 4125
+2 1 1 1 0 7 50 -1 -1 4.000 0 0 -1 1 0 2
+	1 0 1.00 120.00 120.00
+	 300 9375 300 4725
+2 1 1 1 0 7 50 -1 -1 4.000 0 0 -1 1 0 2
+	1 0 1.00 120.00 120.00
+	 1275 8625 1275 8025
+2 1 0 1 0 7 50 -1 -1 4.000 0 0 -1 1 0 2
+	1 0 1.00 120.00 120.00
+	 1275 9375 1275 8925

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/19459053/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/doc-files/health-classes.fig
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/doc-files/health-classes.fig b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/doc-files/health-classes.fig
new file mode 100644
index 0000000..b2f8342
--- /dev/null
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/doc-files/health-classes.fig
@@ -0,0 +1,233 @@
+#FIG 3.2
+Landscape
+Center
+Inches
+Letter  
+100.00
+Single
+-2
+1200 2
+6 300 2475 4050 4050
+6 2550 3000 4050 3300
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 2550 3000 4050 3000 4050 3300 2550 3300 2550 3000
+4 1 0 50 -1 1 12 0.0000 4 180 1410 3300 3225 CacheHealthConfig\001
+-6
+6 300 3000 1950 3300
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 300 3000 1950 3000 1950 3300 300 3300 300 3000
+4 1 0 50 -1 1 12 0.0000 4 180 1560 1125 3225 MemberHealthConfig\001
+-6
+6 1350 3750 3150 4050
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1350 3750 3150 3750 3150 4050 1350 4050 1350 3750
+4 1 0 50 -1 1 12 0.0000 4 180 1605 2250 3975 GemFireHealthConfig\001
+-6
+6 1200 2475 3450 2775
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1200 2475 3450 2475 3450 2775 1200 2775 1200 2475
+4 1 0 50 -1 1 12 0.0000 4 180 2115 2325 2700 SystemManagerHealthConfig\001
+-6
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 1 4
+	1 0 1.00 150.00 150.00
+	1 0 1.00 150.00 150.00
+	 1125 3300 1125 3600 3300 3600 3300 3300
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 1 2
+	1 0 1.00 150.00 150.00
+	 2250 2775 2250 3750
+-6
+6 1125 5925 3525 6225
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1125 5925 3525 5925 3525 6225 1125 6225 1125 5925
+4 1 0 50 -1 1 12 0.0000 4 180 2265 2325 6150 DistributedSystemHealthConfig\001
+-6
+6 2325 5025 3525 5325
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 2325 5025 3525 5025 3525 5325 2325 5325 2325 5025
+4 1 0 50 -1 1 12 0.0000 4 135 1125 2925 5250 GemFireHealth\001
+-6
+6 4950 5925 7950 6225
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 4950 5925 7950 5925 7950 6225 4950 6225 4950 5925
+4 1 0 50 -1 2 12 0.0000 4 180 2850 6450 6150 DistributedSystemHealthConfigImpl\001
+-6
+6 9000 6750 12150 7425
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 9075 6825 12075 6825 12075 7350 9075 7350 9075 6825
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 9000 6750 12150 6750 12150 7425 9000 7425 9000 6750
+4 2 0 50 -1 -1 10 0.0000 4 135 2760 11925 7050 Class Hierarchy of the "Health" admin classes\001
+4 2 0 50 -1 -1 10 0.0000 6 105 765 11925 7230 GemFire 3.5\001
+-6
+6 5775 1050 7275 1350
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 7275 1350 5775 1350 5775 1050 7275 1050 7275 1350
+4 1 0 50 -1 1 12 0.0000 4 180 1365 6525 1275 java.io.Serializable\001
+-6
+6 5475 1725 7725 2025
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 5475 1725 7725 1725 7725 2025 5475 2025 5475 1725
+4 1 0 50 -1 2 12 0.0000 4 180 2055 6600 1950 MemberHealthConfigImpl\001
+-6
+6 5475 3750 7725 4050
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 5475 3750 7725 3750 7725 4050 5475 4050 5475 3750
+4 1 0 50 -1 2 12 0.0000 4 180 2070 6600 3975 GemFireHealthConfigImpl\001
+-6
+6 5625 2400 7725 2700
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 5625 2400 7725 2400 7725 2700 5625 2700 5625 2400
+4 1 0 50 -1 2 12 0.0000 4 180 1890 6675 2625 CacheHealthConfigImpl\001
+-6
+6 5325 3075 8175 3375
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 5325 3075 8175 3075 8175 3375 5325 3375 5325 3075
+4 1 0 50 -1 2 12 0.0000 4 180 2655 6750 3300 SystemManagerHealthConfigImpl\001
+-6
+6 8775 3075 11475 3375
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 8775 3075 11475 3075 11475 3375 8775 3375 8775 3075
+4 1 0 50 -1 2 12 0.0000 4 180 2520 10125 3300 SystemManagerHealthEvaluator\001
+-6
+6 10125 3750 12225 4050
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 10125 3750 12225 3750 12225 4050 10125 4050 10125 3750
+4 1 0 50 -1 2 12 0.0000 4 135 1935 11175 3975 GemFireHealthEvaluator\001
+-6
+6 8025 975 8775 1275
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 8025 975 8775 975 8775 1275 8025 1275 8025 975
+4 1 0 50 -1 1 12 0.0000 4 135 630 8400 1200 Statistics\001
+-6
+6 9600 975 11625 1275
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 9600 975 11625 975 11625 1275 9600 1275 9600 975
+4 0 0 50 -1 3 12 0.0000 4 135 1845 9675 1200 AbstractHealthEvaluator\001
+-6
+6 9000 2400 10950 2700
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 9000 2400 10950 2400 10950 2700 9000 2700 9000 2400
+4 1 0 50 -1 2 12 0.0000 4 135 1755 9975 2625 CacheHealthEvaluator\001
+-6
+6 8325 1725 10425 2025
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 8325 1725 10425 1725 10425 2025 8325 2025 8325 1725
+4 1 0 50 -1 2 12 0.0000 4 135 1920 9375 1950 MemberHealthEvaluator\001
+-6
+6 4725 4350 6150 4650
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 4725 4350 6150 4350 6150 4650 4725 4650 4725 4350
+4 1 0 50 -1 1 12 0.0000 4 135 1305 5475 4575 JoinLeaveListener\001
+-6
+6 6600 4350 9600 4650
+6 6600 4350 7875 4650
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 6600 4350 7875 4350 7875 4650 6600 4650 6600 4350
+4 1 0 50 -1 1 12 0.0000 4 135 1065 7275 4575 HealthListener\001
+-6
+6 8550 4350 9600 4650
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 8550 4350 9600 4350 9600 4650 8550 4650 8550 4350
+4 1 0 50 -1 1 12 0.0000 4 135 900 9075 4575 GemFireVM\001
+-6
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	0 0 1.00 75.00 150.00
+	 7875 4500 8550 4500
+-6
+6 5175 5025 6900 5325
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 5175 5025 6900 5025 6900 5325 5175 5325 5175 5025
+4 1 0 50 -1 2 12 0.0000 4 180 1545 6000 5250 GemFireHealthImpl\001
+-6
+6 10350 4725 12000 5025
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 10350 4725 12000 4725 12000 5025 10350 5025 10350 4725
+4 0 0 50 -1 2 12 0.0000 4 180 1515 10425 4950 HealthMonitorImpl\001
+-6
+6 8625 5925 11475 6225
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 8625 5925 11475 5925 11475 6225 8625 6225 8625 5925
+4 1 0 50 -1 2 12 0.0000 4 180 2715 10050 6150 DistributedSystemHealthEvaluator\001
+-6
+2 1 2 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2
+	 4500 525 4500 7500
+2 1 1 1 0 7 50 -1 -1 4.000 0 0 -1 0 1 2
+	1 0 1.00 150.00 150.00
+	 3150 3900 5475 3900
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 2625 5025 2625 4050
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	0 0 1.00 75.00 150.00
+	 2925 5325 2925 5925
+2 1 1 1 0 7 50 -1 -1 4.000 0 0 -1 0 1 2
+	1 0 1.00 150.00 150.00
+	 3525 5175 5175 5175
+2 1 1 1 0 7 50 -1 -1 4.000 0 0 -1 0 1 2
+	1 0 1.00 150.00 150.00
+	 3525 6075 4950 6075
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	0 0 1.00 75.00 150.00
+	 5550 5325 5550 5925
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	0 0 1.00 75.00 150.00
+	 8625 6075 7950 6075
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	0 0 1.00 75.00 150.00
+	 6375 5025 6375 4050
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	1 0 1.00 150.00 150.00
+	 6525 3750 6525 3375
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	1 0 1.00 150.00 150.00
+	 6525 3075 6525 2700
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	1 0 1.00 150.00 150.00
+	 6525 2400 6525 2025
+2 1 1 1 0 7 50 -1 -1 4.000 0 0 -1 1 0 2
+	1 0 1.00 150.00 150.00
+	 6525 1725 6525 1350
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	0 0 1.00 75.00 150.00
+	 8775 3225 8175 3225
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	0 0 1.00 75.00 150.00
+	 10125 3900 7725 3900
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	0 0 1.00 75.00 150.00
+	 8325 1875 7725 1875
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	0 0 1.00 75.00 150.00
+	 8925 2550 7725 2550
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	1 0 1.00 150.00 150.00
+	 11325 3075 11325 1275
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	1 0 1.00 150.00 150.00
+	 9975 1725 9975 1275
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 9600 1125 8775 1125
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 1 3
+	0 0 1.00 60.00 120.00
+	 10425 1875 11925 1875 11925 3750
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 1 2
+	0 0 1.00 60.00 120.00
+	 10950 2550 11925 2550
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	1 0 1.00 150.00 150.00
+	 10800 2400 10800 1275
+2 1 1 1 0 7 50 -1 -1 4.000 0 0 -1 1 0 2
+	1 0 1.00 150.00 150.00
+	 5475 5025 5475 4650
+2 1 1 1 0 7 50 -1 -1 4.000 0 0 -1 1 0 2
+	1 0 1.00 150.00 150.00
+	 6750 5025 6750 4650
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	0 0 1.00 60.00 120.00
+	 11100 4725 11100 4050
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 4
+	0 0 1.00 60.00 120.00
+	 6375 5325 6375 5625 9975 5625 9975 5925
+4 1 0 50 -1 -1 12 0.0000 4 75 90 2700 4200 *\001
+4 2 0 50 -1 -1 12 0.0000 4 180 2085 4350 675 com.gemstone.gemfire.admin\001
+4 0 0 50 -1 -1 12 0.0000 4 180 2655 4650 675 com.gemstone.gemfire.admin.internal\001
+4 1 0 50 -1 -1 12 0.0000 4 75 90 8925 1050 *\001

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/19459053/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/doc-files/health-classes.gif
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/doc-files/health-classes.gif b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/doc-files/health-classes.gif
new file mode 100644
index 0000000..131347a
Binary files /dev/null and b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/doc-files/health-classes.gif differ

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/19459053/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/package.html
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/package.html b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/package.html
new file mode 100644
index 0000000..0bffe07
--- /dev/null
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/package.html
@@ -0,0 +1,37 @@
+<HTML>
+<BODY>
+
+<P>Contains the implementation of the external admin APIs from {@link
+com.gemstone.gemfire.admin}.</P>
+
+<H2>Monitoring the "health" of GemFire</H2>
+
+<P>The health monitoring implementation comes in two pieces.  On the
+client (administrator) side there is a {@link
+com.gemstone.gemfire.admin.internal.GemFireHealthImpl} object that is
+responsible for configuring a {@link
+com.gemstone.gemfire.distributed.internal.HealthMonitorImpl} that runs
+in the member VMs.  The communication between the administration
+process and the member process is accomplised via a {@link
+com.gemstone.gemfire.internal.admin.GemFireVM GemFireVM} from the
+"internal admin" API.  The <code>HealthMonitorImpl</code> is a thread
+that periodically consults a {@link
+com.gemstone.gemfire.admin.internal.GemFireHealthEvaluator} that uses
+a {@link com.gemstone.gemfire.admin.internal.GemFireHealthConfigImpl}
+to determine the health of a GemFire component.  Most of the health
+criteria are based on {@linkplain com.gemstone.gemfire.Statistics
+statistics} that are maintained by GemFire.  When the
+<code>HealthMonitorImpl</code> determines that the health of a GemFire
+component has changed, it alerts the administrator process via a
+{@link com.gemstone.gemfire.internal.admin.HealthListener}.</P>
+
+
+<P>The below diagram explains how the classes that monitor the health
+of GemFire are implemented.</P>
+
+<CENTER>
+<IMG src="doc-files/health-classes.gif" HEIGHT="803" WIDTH="473"/>
+</CENTER>
+
+</BODY>
+</HTML>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/19459053/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/Agent.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/Agent.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/Agent.java
new file mode 100644
index 0000000..43ec592
--- /dev/null
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/Agent.java
@@ -0,0 +1,156 @@
+/*=========================================================================
+ * Copyright (c) 2010-2014 Pivotal Software, Inc. All Rights Reserved.
+ * This product is protected by U.S. and international copyright
+ * and intellectual property laws. Pivotal products are covered by
+ * one or more patents listed at http://www.pivotal.io/patents.
+ *=========================================================================
+ */
+package com.gemstone.gemfire.admin.jmx;
+
+import com.gemstone.gemfire.LogWriter;
+import com.gemstone.gemfire.admin.AdminException;
+import com.gemstone.gemfire.admin.AdminDistributedSystem;
+
+//import javax.management.MBeanException;
+import javax.management.MalformedObjectNameException;
+import javax.management.MBeanServer;
+import javax.management.ObjectName;
+
+/**
+ * A server component that provides administration-related information
+ * about a GemFire distributed system via the Java Management
+ * Extension JMX API.  When a JMX <code>Agent</code> is created, it
+ * registers an MBean that represents {@link #getObjectName itself}. 
+ * Click <A href="doc-files/mbeans-descriptions.html">here</A> for a
+ * description of the attributes, operations, and notifications of
+ * this and other GemFire JMX MBeans.
+ *
+ * <P>
+ *
+ * The GemFire JMX Agent currently supports three JMX "adapters"
+ * through which clients can access the GemFire management beans: an
+ * "HTTP adapter" that allows a web browser client to view and modify
+ * management beans via HTTP or HTTPS, an "RMI adapter" that allows
+ * Java programs to access management beans using Remote Method
+ * Invocation, and an "SNMP adapter" that allows SNMP to access
+ * management beans.  Information about configuring these adapters can
+ * be found in {@link AgentConfig}.
+ *
+ * <P>
+ *
+ * In most distributed caching architectures, JMX administration
+ * agents are run in their own processes.  A stand-alone JMX agent is
+ * managed using the <code>agent</code> command line utility:
+ *
+ * <PRE>
+ * $ agent start
+ * </PRE>
+ *
+ * This class allows a GemFire application VM to host a JMX management
+ * agent.  Architectures with "co-located" JMX agents reduce the
+ * number of overall proceses required.  However, hosting a JMX
+ * management agent in the same VM as a GemFire application is not
+ * generally recommended because it adds extra burden to an
+ * application VM and in the event that the application VM exits the
+ * administration information will no longer be available.
+ *
+ * @see AgentConfig
+ * @see AgentFactory
+ *
+ * @author David Whitlock
+ * @since 4.0
+ * @deprecated as of 7.0 use the {@link com.gemstone.gemfire.management} package instead
+ */
+public interface Agent {
+
+  /** Lookup name for RMIConnector when rmi-registry-enabled is true */
+  public static final String JNDI_NAME = "/jmxconnector";
+
+  //////////////////////  Instance Methods  //////////////////////
+
+  /**
+   * Returns the configuration object for this JMX Agent.
+   */
+  public AgentConfig getConfig();
+
+  /**
+   * Starts this JMX Agent and its associated adapters.  This method
+   * does not {@linkplain #connectToSystem connect} to the distributed
+   * system.
+   */
+  public void start();
+
+  /**
+   * Returns the JMX <code>MBeanServer</code> with which GemFire
+   * MBeans are registered or <code>null</code> if this
+   * <code>Agent</code> is not started.
+   */
+  public MBeanServer getMBeanServer();
+
+  /**
+   * {@linkplain #disconnectFromSystem Disconnects} from the
+   * distributed system and stops this JMX Agent and all of its
+   * associated adapters.
+   */
+  public void stop();
+
+  /**
+   * Returns the <code>ObjectName</code> of the JMX management bean
+   * that represents this agent or <code>null</code> if this
+   * <code>Agent</code> has not been started.
+   */
+  public ObjectName getObjectName();
+
+  /**
+   * Returns whether or not this JMX <code>Agent</code> is currently
+   * providing information about a distributed system.
+   */
+  public boolean isConnected();
+
+  /**
+   * Connects to the distributed system described by this <code>Agent</code>'s 
+   * configuration.
+   *
+   * @return The object name of the system that the <code>Agent</code>
+   *         is now connected to.
+   */
+  public ObjectName connectToSystem()
+    throws AdminException, MalformedObjectNameException;
+
+  /**
+   * Returns the <code>AdminDistributedSystem</code> that underlies
+   * this JMX <code>Agent</code> or <code>null</code> is this agent is
+   * not {@linkplain #isConnected connected}.
+   */
+  public AdminDistributedSystem getDistributedSystem();
+
+  /**
+   * Returns the object name of the JMX MBean that represents the
+   * distributed system administered by this <code>Agent</code> or
+   * <code>null</code> if this <code>Agent</code> has not {@linkplain
+   * #connectToSystem connected} to the distributed system.
+   */
+  public ObjectName manageDistributedSystem()
+    throws MalformedObjectNameException;
+
+  /**
+   * Disconnects this agent from the distributed system and
+   * unregisters the management beans that provided information about
+   * it.  However, this agent's adapters are not stopped and it is
+   * possible to reconfigure this <code>Agent</code> to connect to
+   * another distributed system.
+   */
+  public void disconnectFromSystem();
+
+  /**
+   * Saves the configuration for this <code>Agent</code> to the file
+   * specified by @link AgentConfig#getPropertyFile.
+   */
+  public void saveProperties();
+
+  /**
+   * Returns the <code>LogWriter</code> used for logging information.
+   */
+  public LogWriter getLogWriter();
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/19459053/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/AgentConfig.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/AgentConfig.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/AgentConfig.java
new file mode 100644
index 0000000..c48cc11
--- /dev/null
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/AgentConfig.java
@@ -0,0 +1,875 @@
+/*=========================================================================
+ * Copyright (c) 2002-2014 Pivotal Software, Inc. All Rights Reserved.
+ * This product is protected by U.S. and international copyright
+ * and intellectual property laws. Pivotal products are covered by
+ * more patents listed at http://www.pivotal.io/patents.
+ *========================================================================
+ */
+package com.gemstone.gemfire.admin.jmx;
+
+import com.gemstone.gemfire.admin.DistributedSystemConfig;
+//import com.gemstone.gemfire.admin.internal.InetAddressUtil;
+
+/**
+ * A configuration object for a JMX administration {@linkplain Agent
+ * agent} that is hosted by a GemFire application VM.  A file named
+ * {@link #DEFAULT_PROPERTY_FILE "agent.properties"} can be used to
+ * override the default values of <code>AgentConfig</code> attributes.
+ * The "gfAgentPropertyFile" {@linkplain System#getProperty(java.lang.String) system
+ * property} can be used to specify an agent properties file other
+ * than "agent.properties".  System properties prefixed with
+ * {@linkplain #SYSTEM_PROPERTY_PREFIX "gemfire.agent."} can be used to
+ * override the values in the properties file.  For instance
+ * "-Dgemfire.agent.http-port=8081" can be used to override the
+ * default port for the HTTP adapter.  Configuration related to the
+ * distributed system that the JMX agent administers is inherited from
+ * and described in <code>AgentConfig</code>'s superinterface, {@link
+ * DistributedSystemConfig}.
+ *
+ * <P>
+ *
+ * An <code>AgentConfig</code> can be modified using a number of
+ * mutator methods until it is used to create an <code>Agent</code>.
+ * After that, attempts to modify most attributes in the
+ * <code>AgentConfig</code> will result in an {@link
+ * IllegalStateException} being thrown.  If you wish to use the same
+ * <code>AgentConfig</code> to configure multiple <code>Agent</code>s,
+ * a copy of the <code>AgentConfig</code> object can be made by
+ * invoking its {@link #clone} method.
+ *
+ * <P>
+ *
+ * <B>JMX Administation Agent Configuration Properties</B>
+ *
+ * <dl>
+ *   <a name="auto-connect"><dt>{@linkplain #AUTO_CONNECT_NAME auto-connect}</dt></a>
+ *   <dd><U>Description</U>: whether or not a JMX agent will
+ *   automatically connect to the distributed system it is configured to
+ *   administer.</dd>
+ *   <dd><U>{@linkplain #DEFAULT_AUTO_CONNECT Default}</U>: false</dd>
+ * </dl>
+ *
+ * <B>JMX Agent SSL Configuration Properties</B>
+ *
+ * <P>
+ *
+ * These parameters configure sockets that are created by the GemFire
+ * JMX Agent regardless of which adapters are enabled.  These setting
+ * apply to all adapters.  For example, if clients connect to the RMI
+ * adapter using SSL, then clients must also connect to the HTTP
+ * adapter using SSL (HTTPS).  Note that these configuration
+ * attributes do <b>not</b> effect how the agent connects to the
+ * distributed system it administers, only how JMX clients connect to
+ * the agent.
+ *
+ * <dl>
+ *   <a name="agent-ssl-enabled"><dt>{@linkplain #AGENT_SSL_ENABLED_NAME agent-ssl-enabled}</dt></a>
+ *   <dd><U>Description</U>: whether or not connections to the JMX agent
+ *   require SSL
+ *   </dd>
+ *   <dd><U>{@linkplain #DEFAULT_AGENT_SSL_ENABLED Default}</U>: false</dd>
+ * </dl>
+ * 
+ * <dl>
+ *   <a name="agent-ssl-protocols"><dt>{@linkplain #AGENT_SSL_PROTOCOLS_NAME agent-ssl-protocols}</dt></a>
+ *   <dd><U>Description</U>: the SSL protocols to be used when connecting
+ *   to the JMX agent
+ *   </dd>
+ *   <dd><U>{@linkplain #DEFAULT_AGENT_SSL_PROTOCOLS Default}</U>: any</dd>
+ * </dl>
+ *
+ * <dl>
+ *   <a name="agent-ssl-ciphers"><dt>{@linkplain #AGENT_SSL_CIPHERS_NAME agent-ssl-ciphers}</dt></a>
+ *   <dd><U>Description</U>: the SSL ciphers to be used when connecting
+ *   to the JMX agent
+ *   </dd>
+ *   <dd><U>{@linkplain #DEFAULT_AGENT_SSL_CIPHERS Default}</U>: any</dd>
+ * </dl>
+ *
+ * <dl>
+ *   <a name="agent-ssl-require-authentication"><dt>{@linkplain #AGENT_SSL_REQUIRE_AUTHENTICATION_NAME agent-ssl-require-authentication}</dt></a>
+ *   <dd><U>Description</U>: whether or not SSL connections to the RMI
+ *   adapter require authentication
+ *   </dd>
+ *   <dd><U>{@linkplain #DEFAULT_AGENT_SSL_REQUIRE_AUTHENTICATION Default}</U>: true</dd>
+ * </dl>
+ *
+ * <dl>
+ *   <a name="http-ssl-require-authentication"><dt>{@linkplain #HTTP_SSL_REQUIRE_AUTHENTICATION_NAME http-ssl-require-authentication}</dt></a>
+ *   <dd><U>Description</U>: whether or not SSL connections to the HTTP
+ *   adapter require authentication
+ *   </dd>
+ *   <dd><U>{@linkplain #DEFAULT_HTTP_SSL_REQUIRE_AUTHENTICATION Default}</U>: false</dd>
+ * </dl>
+ *
+ * <B>HTTP Adapter Configuration</B>
+ *
+ * <dl>
+ *   <a name="http-enabled"><dt>{@linkplain #HTTP_ENABLED_NAME http-enabled}</dt></a>
+ *   <dd><U>Description</U>: whether or not the HTTP adapter is
+ *   enabled in the JMX agent.</dd>
+ *   <dd><U>{@linkplain #DEFAULT_HTTP_ENABLED Default}</U>: true</dd>
+ * </dl>
+ * 
+ * <dl>
+ *   <a name="http-port"><dt>{@linkplain #HTTP_PORT_NAME http-port}</dt></a>
+ *   <dd><U>Description</U>: the port on which the HTTP adapter should
+ *   listen for client connections.
+ *   </dd>
+ *   <dd><U>{@linkplain #DEFAULT_HTTP_PORT Default}</U>: 8080</dd>
+ * </dl>
+ *
+ * <dl>
+ *   <a name="http-bind-address"><dt>{@linkplain #HTTP_BIND_ADDRESS_NAME http-bind-address}</dt></a>
+ *   <dd><U>Description</U>: the machine name or IP address to which
+ *   the HTTP listening socket should be bound.  If this value is
+ *   "localhost", then the socket will be bound to the loopback
+ *   address (127.0.0.1) and the adapter will only be accessible via
+ *   the URL <code>http://localhost:8080</code>.</dd>
+ *   <dd><U>{@linkplain #DEFAULT_HTTP_BIND_ADDRESS Default}</U>: ""
+ *   (all network addresses)</dd>
+ * </dl>
+ *
+ * <dl>
+ *   <a name="http-authentication-enabled"><dt>{@linkplain #HTTP_AUTHENTICATION_ENABLED_NAME http-authentication-enabled}</dt></a>
+ *   <dd><U>Description</U>: Whether or not connections to the HTTP
+ *   adapter should be authenticated with a user name and password.
+ *   </dd>
+ *   <dd><U>{@linkplain #DEFAULT_HTTP_AUTHENTICATION_ENABLED Default}</U>: false</dd>
+ * </dl>
+ *
+ * <dl>
+ *   <a name="http-authentication-user"><dt>{@linkplain #HTTP_AUTHENTICATION_USER_NAME http-authentication-user}</dt></a>
+ *   <dd><U>Description</U>: the user name for authenticating secure
+ *   communication. 
+ *   </dd>
+ *   <dd><U>{@linkplain #DEFAULT_HTTP_AUTHENTICATION_USER Default}</U>: admin</dd>
+ * </dl>
+ *
+ * <dl>
+ *   <a name="http-authentication-password"><dt>{@linkplain #HTTP_AUTHENTICATION_PASSWORD_NAME http-authentication-password}</dt></a>
+ *   <dd><U>Description</U>: the password for authenticating secure
+ *   communication. 
+ *   </dd>
+ *   <dd><U>{@linkplain #DEFAULT_HTTP_AUTHENTICATION_PASSWORD Default}</U>: password</dd>
+ * </dl>
+ *
+ * <B>RMI Adapter Configuration Properties</B>
+ *
+ * <dl>
+ *   <a name="rmi-enabled"><dt>{@linkplain #RMI_ENABLED_NAME rmi-enabled}</dt></a>
+ *   <dd><U>Description</U>: whether or not the RMI JMX adapter is enabled
+ *   </dd>
+ *   <dd><U>{@linkplain #DEFAULT_RMI_ENABLED Default}</U>: true</dd>
+ * </dl>
+ *
+ * <dl>
+ *   <a name="rmi-registry-enabled"><dt>{@linkplain #RMI_REGISTRY_ENABLED_NAME rmi-registry-enabled}</dt></a>
+ *   <dd><U>Description</U>: whether or not the JMX agent should start
+ *   an RMI registry.  Alternatively, a registry outside of the JMX
+ *   agent VM can be used.
+ *   </dd>
+ *   <dd><U>{@linkplain #DEFAULT_RMI_REGISTRY_ENABLED Default}</U>: true</dd>
+ * </dl>
+ *
+ * <dl>
+ *   <a name="rmi-port"><dt>{@linkplain #RMI_PORT_NAME rmi-port}</dt></a>
+ *   <dd><U>Description</U>: the port of the RMI registry in which the
+ *   JMX Agent should bind remote objects.
+ *   </dd>
+ *   <dd><U>{@linkplain #DEFAULT_RMI_PORT Default}</U>: 1099</dd>
+ * </dl>
+ * 
+ * <dl>
+ *   <a name="rmi-server-port"><dt>{@linkplain #RMI_PORT_NAME rmi-server-port}</dt></a>
+ *   <dd><U>Description</U>: the port to be used by the RMI Server started by
+ *   JMX Agent.
+ *   </dd>
+ *   <dd><U>{@linkplain #DEFAULT_RMI_SERVER_PORT Default}</U>: 0</dd>
+ * </dl> 
+ *
+ * <dl>
+ *   <a name="rmi-bind-address"><dt>{@linkplain #RMI_BIND_ADDRESS_NAME rmi-bind-address}</dt></a>
+ *   <dd><U>Description</U>: the bind address on which the RMI
+ *   registry binds its sockets.
+ *   </dd>
+ *   <dd><U>{@linkplain #DEFAULT_RMI_BIND_ADDRESS Default}</U>: ""
+ *   (all network addresses)</dd>
+ * </dl>
+ *
+ * <B>AdventNet SNMP Adapter Configuration Properties</B>
+ *
+ * <dl>
+ *   <a name="snmp-enabled"><dt>{@linkplain #SNMP_ENABLED_NAME snmp-enabled}</dt></a>
+ *   <dd><U>Description</U>: whether or not the SNMP JMX adapter is
+ *   enabled 
+ *   </dd>
+ *   <dd><U>{@linkplain #DEFAULT_SNMP_ENABLED Default}</U>: false</dd>
+ * </dl>
+ * 
+ * <dl>
+ *   <a name="snmp-bind-address"><dt>{@linkplain #SNMP_BIND_ADDRESS_NAME snmp-bind-address}</dt></a>
+ *   <dd><U>Description</U>: the host name to which sockets used by the
+ *   SNMP adapter should be bound.
+ *   </dd>
+ *   <dd><U>{@linkplain #DEFAULT_SNMP_BIND_ADDRESS Default}</U>: the name of
+ *   the local machine (not <code>localhost</code>)</dd>
+ * </dl>
+ *
+ * <dl>
+ *   <a name="snmp-directory"><dt>{@linkplain #SNMP_DIRECTORY_NAME snmp-directory}</dt></a>
+ *   <dd><U>Description</U>: the deployment directory for AdventNet
+ *   SNMP Adaptor 
+ *   </dd>
+ *   <dd><U>{@linkplain #DEFAULT_SNMP_DIRECTORY Default}</U>: ""</dd>
+ * </dl>
+ * 
+ * <B>JMX Agent Email Notification Properties (for statistics alerts)</B>
+ * 
+ * <dl>
+ *   <a name="email-notification-enabled"><dt>{@linkplain #EMAIL_NOTIFICATIONS_ENABLED_NAME email-notification-enabled}</dt></a>
+ *   <dd><U>Description</U>: Whether or not email notifications are enabled for statistics alerts.
+ *   </dd>
+ *   <dd><U>{@linkplain #DEFAULT_EMAIL_NOTIFICATIONS_ENABLED Default}</U>: false</dd>
+ * </dl>
+ * 
+ * <dl>
+ *   <a name="email-notification-from"><dt>{@linkplain #EMAIL_NOTIFICATIONS_FROM_NAME email-notification-from}</dt></a>
+ *   <dd><U>Description</U>: Email address to be used to send email notifications.
+ *   </dd>
+ *   <dd><U>{@linkplain #DEFAULT_EMAIL_FROM Default}</U>: ""</dd>
+ * </dl>
+ * 
+ * <dl>
+ *   <a name="email-notification-host"><dt>{@linkplain #EMAIL_NOTIFICATIONS_HOST_NAME email-notification-host}</dt></a>
+ *   <dd><U>Description</U>: The host name of the mail server to be used for email communication. 
+ *   </dd>
+ *   <dd><U>{@linkplain #DEFAULT_EMAIL_HOST Default}</U>: ""</dd>
+ * </dl>
+ * 
+ * <dl>
+ *   <a name="email-notification-to"><dt>{@linkplain #EMAIL_NOTIFICATIONS_TO_LIST_NAME email-notification-to}</dt></a>
+ *   <dd><U>Description</U>: Email address where the email notifications should be sent.
+ *   </dd>
+ *   <dd><U>{@linkplain #DEFAULT_EMAIL_TO_LIST Default}</U>: ""</dd>
+ * </dl>
+ * 
+ * <dl>
+ *   <a name="state-save-file"><dt>{@linkplain #STATE_SAVE_FILE_NAME state-save-file}</dt></a>
+ *   <dd><U>Description</U>: The name of the file to be used for saving agent state. The file
+         is stored in the same directory in which the agent.properties file is located
+ *   </dd>
+ *   <dd><U>{@linkplain #DEFAULT_STATE_SAVE_FILE Default}</U>: ""</dd>
+ * </dl>
+ * 
+ *
+ * @author David Whitlock
+ * @since 4.0
+ * @deprecated as of 7.0 use the {@link com.gemstone.gemfire.management} package instead
+ */
+public interface AgentConfig extends DistributedSystemConfig {
+
+  /** The prefix for JMX Agent configuration system properties */
+  public static final String SYSTEM_PROPERTY_PREFIX =
+    "gemfire.agent.";
+
+  /** The default "propertyFile" value */
+  public static final String DEFAULT_PROPERTY_FILE = "agent.properties";
+
+  /** The default name for file that has "agent state saved serialized" */
+  public static final String DEFAULT_STATE_SAVE_FILE = "agent.ser";
+  
+  /** The name of the "auto-connect" property */
+  public static final String AUTO_CONNECT_NAME = "auto-connect";
+
+  /** The default value of the "auto-connect" property  */
+  public static final boolean DEFAULT_AUTO_CONNECT = true;
+
+  // -------------------------------------------------------------------------
+  //   HttpAdaptor properties...
+  // -------------------------------------------------------------------------
+  
+  /** The name of the "httpEnabled" property */
+  public static final String HTTP_ENABLED_NAME = "http-enabled";
+
+  /** The default value of the "httpEnabled" property  */
+  public static final boolean DEFAULT_HTTP_ENABLED = true;
+  
+  /** The name of the "httpBindAddress" property */
+  public static final String HTTP_BIND_ADDRESS_NAME = "http-bind-address";
+
+  /** The default value of the "httpBindAddress" property */
+  public static final String DEFAULT_HTTP_BIND_ADDRESS = "";
+  
+  /** The name of the "httpPort" property */
+  public static final String HTTP_PORT_NAME = "http-port";
+
+  /** The default value of the "httpPort" property (8080) */
+  public static final int DEFAULT_HTTP_PORT = 8080;
+
+  /** The minimum httpPort (0) */
+  public static final int MIN_HTTP_PORT = 0;
+
+  /** The maximum httpPort (65535) */
+  public static final int MAX_HTTP_PORT = 65535;
+
+  /** The name of the "state-save-file-name" property */
+  public static final String STATE_SAVE_FILE_NAME =
+    "state-save-file";
+
+  /** The name of the "http-authentication-enabled" property */
+  public static final String HTTP_AUTHENTICATION_ENABLED_NAME =
+    "http-authentication-enabled";
+
+  /** The default value of the "http-authentication-enabled" property
+   *  */ 
+  public static final boolean DEFAULT_HTTP_AUTHENTICATION_ENABLED = false;
+
+  /** The name of the "http-authentication-user" property */
+  public static final String HTTP_AUTHENTICATION_USER_NAME =
+    "http-authentication-user";
+
+  /** The default value of the "http-authentication-user" property  */
+  public static final String DEFAULT_HTTP_AUTHENTICATION_USER = "admin";
+
+  /** The name of the "http-authentication-password" property */
+  public static final String HTTP_AUTHENTICATION_PASSWORD_NAME =
+    "http-authentication-password";
+
+  /** The default value of the "http-authentication-password" property
+   *  */
+  public static final String DEFAULT_HTTP_AUTHENTICATION_PASSWORD =
+    "password";
+
+  /** The name of the "email-notification-enabled" property */
+  public static final String EMAIL_NOTIFICATIONS_ENABLED_NAME =
+    "email-notification-enabled";
+
+  /** The default value of the "email-notification-enabled" property
+   *  */ 
+  public static final boolean DEFAULT_EMAIL_NOTIFICATIONS_ENABLED = false;
+
+  /** The name of the "email-notification-from" property */
+  public static final String EMAIL_NOTIFICATIONS_FROM_NAME =
+    "email-notification-from";
+
+  /** The default value of the "email-notification-from" property
+   *  */ 
+  public static final String DEFAULT_EMAIL_FROM = "";
+
+  /** The name of the "email-notification-host" property */
+  public static final String EMAIL_NOTIFICATIONS_HOST_NAME =
+    "email-notification-host";
+
+  /** The default value of the "email-notification-host" property
+   *  */ 
+  public static final String DEFAULT_EMAIL_HOST = "";
+
+  /** The name of the "email-notification-to" property */
+  public static final String EMAIL_NOTIFICATIONS_TO_LIST_NAME =
+    "email-notification-to";
+
+  /** The default value of the "email-notification-to" property
+   *  */ 
+  public static final String DEFAULT_EMAIL_TO_LIST = "";
+
+  // -------------------------------------------------------------------------
+  //   RMIConnectorServer properties...
+  // -------------------------------------------------------------------------
+  
+  /** The name of the "rmiEnabled" property */
+  public static final String RMI_ENABLED_NAME = "rmi-enabled";
+
+  /** The default value of the {@linkplain #RMI_ENABLED_NAME rmi-enabled} property  */
+  public static final boolean DEFAULT_RMI_ENABLED = true;
+  
+  /** The name of the "rmi-registry-enabled" property */
+  public static final String RMI_REGISTRY_ENABLED_NAME =
+    "rmi-registry-enabled"; 
+
+  /** The default value of the {@linkplain #RMI_REGISTRY_ENABLED_NAME rmi-registry-enabled} property*/
+  public static final boolean DEFAULT_RMI_REGISTRY_ENABLED = true;
+  
+  /** The name of the "rmiBindAddress" property */
+  public static final String RMI_BIND_ADDRESS_NAME = "rmi-bind-address";
+
+  /** The default value of the {@linkplain #RMI_BIND_ADDRESS_NAME rmi-bind-address} property  */
+  public static final String DEFAULT_RMI_BIND_ADDRESS = "";
+
+  /** The name of the "rmiPort" property */
+  public static final String RMI_PORT_NAME = "rmi-port";
+
+  /** The default value of the {@linkplain #RMI_PORT_NAME rmi-port} property (1099) */
+  public static final int DEFAULT_RMI_PORT = 1099;
+  
+  /** 
+   * The name of the "rmi-server-port" property
+   * 
+   * @since 6.5
+   */
+  public static final String RMI_SERVER_PORT_NAME = "rmi-server-port";
+
+  /** 
+   * The default value of the {@linkplain #RMI_SERVER_PORT_NAME rmi-server-port} 
+   * property (0)
+   * 
+   * @since 6.5
+   */
+  public static final int DEFAULT_RMI_SERVER_PORT = 0;
+
+  /**
+   * The minimum value for {@linkplain #RMI_PORT_NAME rmi-port} or
+   * {@linkplain #RMI_SERVER_PORT_NAME rmi-server-port} (0)
+   */
+  public static final int MIN_RMI_PORT = 0;
+
+  /**
+   * The maximum value for {@linkplain #RMI_PORT_NAME rmi-port} or
+   * {@linkplain #RMI_SERVER_PORT_NAME rmi-server-port} (65535)
+   */
+  public static final int MAX_RMI_PORT = 65535;
+  
+  // -------------------------------------------------------------------------
+  //   AdventNetSNMPAdaptor properties...
+  // -------------------------------------------------------------------------
+  
+  /** The name of the "snmpEnabled" property */
+  public static final String SNMP_ENABLED_NAME = "snmp-enabled";
+
+  /** The default value of the "snmpEnabled" property  */
+  public static final boolean DEFAULT_SNMP_ENABLED = false;
+  
+  /** The name of the "snmpBindAddress" property */
+  public static final String SNMP_BIND_ADDRESS_NAME = "snmp-bind-address";
+
+  /** The default value of the "snmpBindAddress" property */
+  public static final String DEFAULT_SNMP_BIND_ADDRESS = "";
+
+  /** The name of the "snmpDirectory" property */
+  public static final String SNMP_DIRECTORY_NAME = "snmp-directory";
+
+  /** The default value of the "snmpDirectory" property  */
+  public static final String DEFAULT_SNMP_DIRECTORY = "";
+
+  // -------------------------------------------------------------------------
+  //   JMX SSL properties...
+  // -------------------------------------------------------------------------
+
+  /** The name of the "agent-ssl-enabled" property */
+  public static final String AGENT_SSL_ENABLED_NAME = "agent-ssl-enabled";
+
+  /** The default value of the "agent-ssl-enabled" property  */
+  public static final boolean DEFAULT_AGENT_SSL_ENABLED = false;
+
+  /** The name of the "agent-ssl-protocols" property */
+  public static final String AGENT_SSL_PROTOCOLS_NAME = "agent-ssl-protocols";
+
+   /** The default value of the "agent-ssl-protocols" property  */
+  public static final String DEFAULT_AGENT_SSL_PROTOCOLS = "any";
+
+  /** The name of the "agent-ssl-ciphers" property */
+  public static final String AGENT_SSL_CIPHERS_NAME = "agent-ssl-ciphers";
+
+   /** The default value of the "agent-ssl-ciphers" property  */
+  public static final String DEFAULT_AGENT_SSL_CIPHERS = "any";
+
+  /** The name of the "agent-ssl-require-authentication" property */
+  public static final String AGENT_SSL_REQUIRE_AUTHENTICATION_NAME =
+    "agent-ssl-require-authentication";
+
+   /** The default value of the "agent-ssl-require-authentication"
+    * property  */
+  public static final boolean DEFAULT_AGENT_SSL_REQUIRE_AUTHENTICATION = true;
+    
+  /** The name of the "http-ssl-require-authentication" property */
+  public static final String HTTP_SSL_REQUIRE_AUTHENTICATION_NAME =
+    "http-ssl-require-authentication";
+
+   /** The default value of the "http-ssl-require-authentication"
+    * property  */
+  public static final boolean DEFAULT_HTTP_SSL_REQUIRE_AUTHENTICATION = false;
+
+  //////////////////////  Instance Methods  //////////////////////
+
+  /**
+   * Returns whether or not the JMX agent will automatically connect
+   * to the distributed system it administers.
+   *
+   * See <a href="#auto-connect">description</a> above.
+   */
+  public boolean getAutoConnect();
+
+  /**
+   * Sets whether or not the JMX agent will automatically connect
+   * to the distributed system it administers.
+   *
+   * See <a href="#auto-connect">description</a> above.
+   */
+  public void setAutoConnect(boolean autoConnect);
+
+  /**
+   * Returns whether or not the HTTP adapter is enabled.
+   *
+   * See <a href="#http-enabled">description</a> above.
+   */
+  public boolean isHttpEnabled();
+
+  /**
+   * Sets whether or not the HTTP adapter is enabled.
+   *
+   * See <a href="#http-enabled">description</a> above.
+   */
+  public void setHttpEnabled(boolean httpEnabled);
+
+  /**
+   * Returns the port of the HTTP adapter.
+   *
+   * See <a href="#http-port">description</a> above.
+   */
+  public int getHttpPort();
+
+  /**
+   * Sets the port of the HTTP adapter.
+   *
+   * See <a href="#http-port">description</a> above.
+   */
+  public void setHttpPort(int port);
+
+  /**
+   * Returns the bind address to which the HTTP adapter's listening
+   * socket is bound.
+   *
+   * See <a href="#http-bind-address">description</a> above.
+   */
+  public String getHttpBindAddress();
+
+  /**
+   * Sets the bind address to which the HTTP adapter's listening
+   * socket is bound.
+   *
+   * See <a href="#http-bind-address">description</a> above.
+   */
+  public void setHttpBindAddress(String address);
+
+  /**
+   * Returns whether or not the HTTP adapter authenticates
+   * connections.
+   *
+   * See <a href="#http-authentication-enabled">description</a>
+   * above.
+   */ 
+  public boolean isHttpAuthEnabled();
+
+  /**
+   * Sets whether or not the HTTP adapter authenticates connections.
+   *
+   * See <a href="#http-authentication-enabled">description</a>
+   * above.
+   */
+  public void setHttpAuthEnabled(boolean enabled);
+
+  /**
+   * Returns the user name for HTTP adapter authentication.
+   *
+   * See <a href="#http-authentication-user">description</a>
+   * above.
+   */
+  public String getHttpAuthUser();
+  
+  /**
+   * Sets the user name for HTTP adapter authentication.
+   *
+   * See <a href="#http-authentication-user">description</a>
+   * above.
+   */
+  public void setHttpAuthUser(String user);
+
+  /**
+   * Returns the password for HTTP adapter authentication.
+   *
+   * See <a href="#http-authentication-password">description</a>
+   * above.
+   */
+  public String getHttpAuthPassword();
+  
+  /**
+   * Sets the password for HTTP adapter authentication.
+   *
+   * See <a href="#http-authentication-password">description</a>
+   * above.
+   */
+  public void setHttpAuthPassword(String password);
+
+  /**
+   * Returns whether or not the RMI adapter is enabled.
+   *
+   * See <a href="#rmi-enabled">description</a> above.
+   */
+  public boolean isRmiEnabled();
+
+  /**
+   * Sets whether or not the RMI adapter is enabled.
+   *
+   * See <a href="#rmi-enabled">description</a> above.
+   */
+  public void setRmiEnabled(boolean rmiEnabled);
+
+  /**
+   * Returns whether or not the agent hosts an RMI registry.
+   *
+   * See <a href="#rmi-registry-enabled">description</a> above.
+   */
+  public boolean isRmiRegistryEnabled();
+
+  /**
+   * Sets whether or not the agent hosts an RMI registry.
+   *
+   * See <a href="#rmi-registry-enabled">description</a> above.
+   */
+  public void setRmiRegistryEnabled(boolean enabled);
+
+  /**
+   * Returns the port of the RMI adapter.
+   *
+   * See <a href="#rmi-port">description</a> above.
+   */
+  public int getRmiPort();
+
+  /**
+   * Sets the port of the RMI adapter.
+   *
+   * See <a href="#rmi-port">description</a> above.
+   */
+  public void setRmiPort(int port);
+  
+  /**
+   * Returns the port of the RMI Connector Server.
+   *
+   * See <a href="#rmi-server-port">description</a> above.
+   * 
+   * @return the value set for rmi-server-port
+   * @since 6.5
+   */
+  public int getRmiServerPort();
+
+  /**
+   * Sets the port of the RMI Connector Server.
+   *
+   * See <a href="#rmi-server-port">description</a> above.
+   * 
+   * @param port rmi-server-port to set. 
+   * @since 6.5
+   */
+  public void setRmiServerPort(int port);
+
+  /**
+   * Returns the bind address to which the RMI adapter's listening
+   * sockets are bound.
+   *
+   * See <a href="#rmi-bind-address">description</a> above.
+   */
+  public String getRmiBindAddress();
+
+  /**
+   * Sets the bind address to which the RMI adapter's listening
+   * sockets are bound.
+   *
+   * See <a href="#rmi-bind-address">description</a> above.
+   */
+  public void setRmiBindAddress(String address);
+
+  /**
+   * Returns whether or not the SNMP adapter is enabled.
+   *
+   * See <a href="#snmp-enabled">description</a> above.
+   */
+  public boolean isSnmpEnabled();
+
+  /**
+   * Sets whether or not the SNMP adapter is enabled.
+   *
+   * See <a href="#snmp-enabled">description</a> above.
+   */
+  public void setSnmpEnabled(boolean enabled);
+
+  /**
+   * Returns the bind address used with the SNMP adapter.
+   *
+   * See <a href="#snmp-bind-address">description</a> above.
+   */
+  public String getSnmpBindAddress();
+
+  /**
+   * Sets the bind address used with the SNMP adapter.
+   *
+   * See <a href="#snmp-bind-address">description</a> above.
+   */
+  public void setSnmpBindAddress(String address);
+
+  /**
+   * Returns the directory for the SNMP adapater.
+   *
+   * See <a href="#snmp-directory">description</a> above.
+   */
+  public String getSnmpDirectory();
+
+  /**
+   * Sets the directory for the SNMP adapater.
+   *
+   * See <a href="#snmp-directory">description</a> above.
+   */
+  public void setSnmpDirectory(String snmpDirectory);
+  
+  /**
+   * Returns whether or not SSL is required for the JMX agent.
+   *
+   * See <a href="#agent-ssl-enabled">description</a> above.
+   */
+  public boolean isAgentSSLEnabled();
+
+  /**
+   * Sets whether or not SSL is required for the JMX agent.
+   *
+   * See <a href="#agent-ssl-enabled">description</a> above.
+   */
+  public void setAgentSSLEnabled(boolean enabled);
+
+  /**
+   * Returns the SSL protocols used when connecting to the JMX agent.
+   *
+   * See <a href="#agent-ssl-protocols">description</a> above.
+   */
+  public String getAgentSSLProtocols();
+
+  /**
+   * Sets the SSL protocols used when connecting to the JMX agent.
+   *
+   * See <a href="#agent-ssl-protocols">description</a> above.
+   */
+  public void setAgentSSLProtocols(String protocols);
+
+  /**
+   * Returns the SSL ciphers used when connecting to the JMX agent.
+   *
+   * See <a href="#agent-ssl-ciphers">description</a> above.
+   */
+  public String getAgentSSLCiphers();
+
+  /**
+   * Sets the SSL ciphers used when connecting to the JMX agent.
+   *
+   * See <a href="#agent-ssl-ciphers">description</a> above.
+   */
+  public void setAgentSSLCiphers(String ciphers);
+
+  /**
+   * Returns whether SSL authentication is used when connecting to the
+   * RMI connector.
+   *
+   * See <a href="#agent-ssl-require-authentication">description</a> above.
+   */
+  public boolean isAgentSSLRequireAuth();
+  
+  /**
+   * Sets whether SSL authentication is used when connecting to the
+   * RMI connector.
+   *
+   * See <a href="#agent-ssl-require-authentication">description</a> above.
+   */
+  public void setAgentSSLRequireAuth(boolean require);
+
+  /**
+   * Returns whether SSL authentication is used when connecting to the
+   * HTTP connector.
+   *
+   * See <a href="#http-ssl-require-authentication">description</a> above.
+   */
+  public boolean isHttpSSLRequireAuth();
+  
+  /**
+   * Sets whether SSL authentication is used when connecting to the
+   * HTTP connector.
+   *
+   * See <a href="#http-ssl-require-authentication">description</a> above.
+   */
+  public void setHttpSSLRequireAuth(boolean require);
+
+  /**
+   * Returns whether Emails for Notifications is enabled
+   *
+   * See <a href="#email-notification-enabled">description</a> above.
+   */
+  public boolean isEmailNotificationEnabled();
+
+  /**
+   * Sets whether Emails for Notifications is enabled
+   *
+   * See <a href="#email-notification-enabled">description</a> above.
+   */
+  public void setEmailNotificationEnabled(boolean enabled);
+
+  /**
+   * Returns the EmailID from whom notification emails are sent.
+   *
+   * See <a href="#email-notification-from">description</a> above.
+   */
+  public String getEmailNotificationFrom();
+  
+  /**
+   * Sets the EmailID from whom notification emails are sent.
+   *
+   * See <a href="#email-notification-from">description</a> above.
+   */
+  public void setEmailNotificationFrom(String emailID);
+
+  /**
+   * Returns the Host Name using which notification emails are sent.
+   *
+   * See <a href="#email-notification-host">description</a> above.
+   */
+  public String getEmailNotificationHost();
+  
+  /**
+   * Sets the Host Name from whom notification emails are sent.
+   *
+   * See <a href="#email-notification-host">description</a> above.
+   */
+  public void setEmailNotificationHost(String hostName);
+
+  /**
+   * Returns the comma separated EmailID list to whom notification
+   * emails are sent.
+   *
+   * See <a href="#email-notification-to">description</a> above.
+   */
+  public String getEmailNotificationToList();
+  
+  /**
+   * Sets the EmailID from whom notification emails are sent as a
+   * comma separated list.
+   *
+   * See <a href="#email-notification-to">description</a> above.
+   */
+  public void setEmailNotificationToList(String emailIDs);
+  
+  /**
+   * Returns the name of the file to be used for saving agent state
+   *
+   * See <a href="#state-save-file">description</a> above.
+   */
+  public String getStateSaveFile();
+
+  /**
+   * Sets the name of the file to be used for saving agent state
+   *
+   * See <a href="#state-save-file">description</a> above.
+   */
+  public void setStateSaveFile(String file);
+
+  /**
+   * Returns an <code>AgentConfig</code> with the same configuration
+   * as this <code>AgentConfig</code>.
+   */
+  public Object clone() throws CloneNotSupportedException; 
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/19459053/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/AgentFactory.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/AgentFactory.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/AgentFactory.java
new file mode 100644
index 0000000..ad03a71
--- /dev/null
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/AgentFactory.java
@@ -0,0 +1,43 @@
+/*=========================================================================
+ * Copyright (c) 2010-2014 Pivotal Software, Inc. All Rights Reserved.
+ * This product is protected by U.S. and international copyright
+ * and intellectual property laws. Pivotal products are covered by
+ * one or more patents listed at http://www.pivotal.io/patents.
+ *=========================================================================
+ */
+package com.gemstone.gemfire.admin.jmx;
+
+//import com.gemstone.gemfire.admin.AdminDistributedSystem;
+import com.gemstone.gemfire.admin.AdminException;
+import com.gemstone.gemfire.admin.jmx.internal.AgentConfigImpl;
+import com.gemstone.gemfire.admin.jmx.internal.AgentImpl;
+
+/**
+ * A factory class that creates JMX administration entities.
+ *
+ * @author David Whitlock
+ * @since 4.0
+ * @deprecated as of 7.0 use the {@link com.gemstone.gemfire.management} package instead
+ */
+public class AgentFactory {
+
+  /**
+   * Defines a "default" GemFire JMX administration agent
+   * configuration.
+   */
+  public static AgentConfig defineAgent() {
+    return new AgentConfigImpl();
+  }
+
+  /**
+   * Creates an unstarted GemFire JMX administration agent with the
+   * given configuration.
+   *
+   * @see Agent#start
+   */
+  public static Agent getAgent(AgentConfig config) 
+    throws AdminException {
+    return new AgentImpl((AgentConfigImpl) config);
+  }
+
+}