You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by kl...@apache.org on 2016/10/26 22:11:45 UTC

[23/42] incubator-geode git commit: GEODE-288: move admin package to internal

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/096b622d/geode-core/src/main/java/org/apache/geode/internal/admin/api/Alert.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/internal/admin/api/Alert.java b/geode-core/src/main/java/org/apache/geode/internal/admin/api/Alert.java
new file mode 100755
index 0000000..ab2251a
--- /dev/null
+++ b/geode-core/src/main/java/org/apache/geode/internal/admin/api/Alert.java
@@ -0,0 +1,55 @@
+/*
+ * 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.internal.admin.api;
+
+/**
+ * An administration alert that is issued by a member of a GemFire
+ * distributed system.  It is similar to a {@linkplain
+ * org.apache.geode.i18n.LogWriterI18n log message}.
+ *
+ * @see       AlertListener
+ * @since GemFire     3.5
+ * @deprecated as of 7.0 use the <code><a href="{@docRoot}/org/apache/geode/management/package-summary.html">management</a></code> package instead
+ */
+public interface Alert {
+  
+  /** The level at which this alert is issued */
+  public AlertLevel getLevel();
+
+  /**
+   * The member of the distributed system that issued the alert, or
+   * null if the issuer is no longer a member of the distributed system.
+   */
+  public SystemMember getSystemMember();
+
+  /** 
+   * The name of the {@linkplain
+   * org.apache.geode.distributed.DistributedSystem#getName
+   * distributed system}) through which the alert was issued.
+   */
+  public String getConnectionName();
+
+  /** The id of the source of the alert (such as a thread in a VM) */
+  public String getSourceId();
+
+  /** The alert's message */
+  public String getMessage();
+
+  /** The time at which the alert was issued */
+  public java.util.Date getDate();
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/096b622d/geode-core/src/main/java/org/apache/geode/internal/admin/api/AlertLevel.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/internal/admin/api/AlertLevel.java b/geode-core/src/main/java/org/apache/geode/internal/admin/api/AlertLevel.java
new file mode 100755
index 0000000..45fee92
--- /dev/null
+++ b/geode-core/src/main/java/org/apache/geode/internal/admin/api/AlertLevel.java
@@ -0,0 +1,172 @@
+/*
+ * 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.internal.admin.api;
+
+import org.apache.geode.internal.admin.Alert;
+import org.apache.geode.internal.i18n.LocalizedStrings;
+
+/**
+ * Type-safe enumeration for {@link org.apache.geode.internal.admin.api.Alert
+ * Alert} level.
+ *
+ * @since GemFire     3.5
+ * @deprecated as of 7.0 use the <code><a href="{@docRoot}/org/apache/geode/management/package-summary.html">management</a></code> package instead
+ */
+public class AlertLevel implements java.io.Serializable {
+  private static final long serialVersionUID = -4752438966587392126L;
+    
+  public static final AlertLevel WARNING =
+    new AlertLevel(Alert.WARNING, "WARNING");
+  public static final AlertLevel ERROR = 
+    new AlertLevel(Alert.ERROR, "ERROR");
+  public static final AlertLevel SEVERE =
+    new AlertLevel(Alert.SEVERE, "SEVERE");
+  
+  public static final AlertLevel OFF =
+    new AlertLevel(Alert.OFF, "OFF");
+
+  /** The severity level of this AlertLevel. Greater is more severe. */
+  private final transient int severity;
+  
+  /** The name of this AlertLevel. */
+  private final transient String name;
+  
+  // The 4 declarations below are necessary for serialization
+  /** int used as ordinal to represent this AlertLevel */
+  public final int ordinal = nextOrdinal++;
+
+  private static int nextOrdinal = 0;
+  
+  private static final AlertLevel[] VALUES =
+    { WARNING, ERROR, SEVERE, OFF };
+
+  private Object readResolve() throws java.io.ObjectStreamException {
+    return VALUES[ordinal];  // Canonicalize
+  }
+  
+  /** Creates a new instance of AlertLevel. */
+  private AlertLevel(int severity, String name) {
+    this.severity = severity;
+    this.name = name;
+  }
+    
+  /** Return the AlertLevel represented by specified ordinal */
+  public static AlertLevel fromOrdinal(int ordinal) {
+    return VALUES[ordinal];
+  }
+
+  /**
+   * Returns the <code>AlertLevel</code> for the given severity
+   *
+   * @throws IllegalArgumentException
+   *         If there is no alert level with the given
+   *         <code>severity</code> 
+   */
+  public static AlertLevel forSeverity(int severity) {
+    switch (severity) {
+    case Alert.WARNING:
+      return AlertLevel.WARNING;
+    case Alert.ERROR:
+      return AlertLevel.ERROR;
+    case Alert.SEVERE:
+      return AlertLevel.SEVERE;
+    case Alert.OFF:
+      return AlertLevel.OFF;
+    default:
+      throw new IllegalArgumentException(LocalizedStrings.AlertLevel_UNKNOWN_ALERT_SEVERITY_0.toLocalizedString(Integer.valueOf(severity)));
+    }
+  }
+
+  /**
+   * Returns the <code>AlertLevel</code> with the given name
+   *
+   * @throws IllegalArgumentException
+   *         If there is no alert level named <code>name</code>
+   */
+  public static AlertLevel forName(String name) {
+    for (int i = 0; i < VALUES.length; i++) {
+      AlertLevel level = VALUES[i];
+      if (level.getName().equalsIgnoreCase(name)) {
+        return level;
+      }
+    }
+
+    throw new IllegalArgumentException(LocalizedStrings.AlertLevel_THERE_IS_NO_ALERT_LEVEL_0.toLocalizedString(name));
+  }
+
+  public int getSeverity() {
+    return this.severity;
+  }
+  
+  public String getName() {
+    return this.name;
+  }
+
+  public static AlertLevel[] values() {
+    return VALUES;
+  }
+  
+  /** 
+   * Returns a string representation for this alert level.
+   *
+   * @return the name of this alert level
+   */
+  @Override
+  public String toString() {
+    return this.name /* + "=" + this.severity */;
+  }
+
+	/**
+	 * Indicates whether some other object is "equal to" this one.
+	 *
+	 * @param  other  the reference object with which to compare.
+	 * @return true if this object is the same as the obj argument;
+	 *         false otherwise.
+	 */
+  @Override
+	public boolean equals(Object other) {
+		if (other == this) return true;
+		if (other == null) return false;
+		if (!(other instanceof AlertLevel)) return  false;
+		final AlertLevel that = (AlertLevel) other;
+
+		if (this.severity != that.severity) return false;
+		if (this.name != null &&
+	  		!this.name.equals(that.name)) return false;
+
+		return true;
+	}
+
+	/**
+	 * Returns a hash code for the object. This method is supported for the
+	 * benefit of hashtables such as those provided by java.util.Hashtable.
+	 *
+	 * @return the integer 0 if description is null; otherwise a unique integer.
+	 */
+  @Override
+	public int hashCode() {
+		int result = 17;
+		final int mult = 37;
+
+		result = mult * result + this.severity;
+		result = mult * result + 
+			(this.name == null ? 0 : this.name.hashCode());
+
+		return result;
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/096b622d/geode-core/src/main/java/org/apache/geode/internal/admin/api/AlertListener.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/internal/admin/api/AlertListener.java b/geode-core/src/main/java/org/apache/geode/internal/admin/api/AlertListener.java
new file mode 100755
index 0000000..6070a67
--- /dev/null
+++ b/geode-core/src/main/java/org/apache/geode/internal/admin/api/AlertListener.java
@@ -0,0 +1,30 @@
+/*
+ * 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.internal.admin.api;
+
+/**
+ * A listener whose callback methods are invoked when an {@link Alert}
+ * is received.
+ * @deprecated as of 7.0 use the <code><a href="{@docRoot}/org/apache/geode/management/package-summary.html">management</a></code> package instead
+ */
+public interface AlertListener extends java.util.EventListener {
+
+  /**
+   * Invoked when an <code>Alert</code> is received.
+   */
+  public void alert(Alert alert);
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/096b622d/geode-core/src/main/java/org/apache/geode/internal/admin/api/BackupStatus.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/internal/admin/api/BackupStatus.java b/geode-core/src/main/java/org/apache/geode/internal/admin/api/BackupStatus.java
new file mode 100644
index 0000000..8655b8f
--- /dev/null
+++ b/geode-core/src/main/java/org/apache/geode/internal/admin/api/BackupStatus.java
@@ -0,0 +1,48 @@
+/*
+ * 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.internal.admin.api;
+
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.geode.cache.persistence.PersistentID;
+import org.apache.geode.distributed.DistributedMember;
+
+/**
+ * The status of a backup operation, returned by
+ * {@link AdminDistributedSystem#backupAllMembers(java.io.File,java.io.File)}.
+ * 
+ * @since GemFire 6.5
+ * @deprecated as of 7.0 use the <code><a href="{@docRoot}/org/apache/geode/management/package-summary.html">management</a></code> package instead
+ */
+public interface BackupStatus {
+  
+  /**
+   * Returns a map of disk stores that were successfully backed up.
+   * The key is an online distributed member. The value is the set of disk 
+   * stores on that distributed member. 
+   */
+  Map<DistributedMember, Set<PersistentID>> getBackedUpDiskStores();
+  
+  /**
+   * Returns the set of disk stores that were known to be offline at the 
+   * time of the backup. These members were not backed up. If this set
+   * is not empty the backup may not contain a complete snapshot of 
+   * any partitioned regions in the distributed system.
+   */
+  Set<PersistentID> getOfflineDiskStores();
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/096b622d/geode-core/src/main/java/org/apache/geode/internal/admin/api/CacheDoesNotExistException.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/internal/admin/api/CacheDoesNotExistException.java b/geode-core/src/main/java/org/apache/geode/internal/admin/api/CacheDoesNotExistException.java
new file mode 100644
index 0000000..b33f2e0
--- /dev/null
+++ b/geode-core/src/main/java/org/apache/geode/internal/admin/api/CacheDoesNotExistException.java
@@ -0,0 +1,86 @@
+/*
+ * 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.internal.admin.api;
+
+/**
+ * An <code>CacheDoesNotExistException</code> is thrown when an attempt
+ * is made to get a cache and one does not exist.
+ *
+ * @since GemFire     3.5
+ * @deprecated as of 7.0 use the <code><a href="{@docRoot}/org/apache/geode/management/package-summary.html">management</a></code> package instead
+ */
+public class CacheDoesNotExistException extends AdminException {
+private static final long serialVersionUID = -1639933911265729978L;
+
+  /**
+   * Constructs a new exception with <code>null</code> as its detail message.
+   * The cause is not initialized, and may subsequently be initialized by a
+   * call to {@link Throwable#initCause}.
+   */
+  public CacheDoesNotExistException() {
+    super();
+  }
+
+  /**
+   * Constructs a new exception with the specified detail message.  The
+   * cause is not initialized, and may subsequently be initialized by
+   * a call to {@link Throwable#initCause}.
+   *
+   * @param   message   the detail message. The detail message is saved for 
+   *          later retrieval by the {@link #getMessage()} method.
+   */
+  public CacheDoesNotExistException(String message) {
+    super(message);
+  }
+
+  /**
+   * Constructs a new exception with the specified detail message and
+   * cause.  <p>Note that the detail message associated with
+   * <code>cause</code> is <i>not</i> automatically incorporated in
+   * this exception's detail message.
+   *
+   * @param  message the detail message (which is saved for later retrieval
+   *         by the {@link #getMessage()} method).
+   * @param  cause the cause (which is saved for later retrieval by the
+   *         {@link #getCause()} method).  (A <tt>null</tt> value is
+   *         permitted, and indicates that the cause is nonexistent or
+   *         unknown.)
+   */
+  public CacheDoesNotExistException(String message, Throwable cause) {
+    super(message, cause);
+  }
+
+  /**
+   * Constructs a new exception with the specified cause and a detail
+   * message of <tt>(cause==null ? null : cause.toString())</tt> (which
+   * typically contains the class and detail message of <tt>cause</tt>).
+   * This constructor is useful for exceptions that are little more than
+   * wrappers for other throwables (for example, {@link
+   * java.security.PrivilegedActionException}).
+   *
+   * @param  cause the cause (which is saved for later retrieval by the
+   *         {@link #getCause()} method).  (A <tt>null</tt> value is
+   *         permitted, and indicates that the cause is nonexistent or
+   *         unknown.)
+   */
+  public CacheDoesNotExistException(Throwable cause) {
+    super(cause);
+  }
+    
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/096b622d/geode-core/src/main/java/org/apache/geode/internal/admin/api/CacheHealthConfig.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/internal/admin/api/CacheHealthConfig.java b/geode-core/src/main/java/org/apache/geode/internal/admin/api/CacheHealthConfig.java
new file mode 100644
index 0000000..49b1681
--- /dev/null
+++ b/geode-core/src/main/java/org/apache/geode/internal/admin/api/CacheHealthConfig.java
@@ -0,0 +1,156 @@
+/*
+ * 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.internal.admin.api;
+
+/**
+ * Provides configuration information relating to the health of a
+ * member of a GemFire distributed system that hosts a GemFire {@link
+ * org.apache.geode.cache.Cache Cache}.
+ *
+ * <P>
+ *
+ * If any of the following criteria is true, then a cache member is
+ * considered to be in {@link GemFireHealth#OKAY_HEALTH OKAY_HEALTH}.
+ *
+ * <UL>
+ *
+ * <LI><code>netSearch</code> operations take {@linkplain
+ * #getMaxNetSearchTime too long} to complete.</LI>
+ *
+ * <LI>Cache <code>load</code> operations take {@linkplain
+ * #getMaxLoadTime too long} to complete.</LI>
+ *
+ * <LI>The overall cache {@link #getMinHitRatio hitRatio} is too
+ * small</LI> 
+ *
+ * <LI>The number of entries in the Cache {@link #getMaxEventQueueSize
+ * event delivery queue} is too large.</LI>
+ * 
+ * <LI>If one of the regions is configured with {@link org.apache.geode.cache.LossAction#FULL_ACCESS FULL_ACCESS}
+ * on role loss.</LI>
+ *
+ * </UL>
+ *
+ * If any of the following criteria is true, then a cache member is
+ * considered to be in {@link GemFireHealth#POOR_HEALTH POOR_HEALTH}.
+ * 
+ * <UL>
+ * 
+ * <LI>If one of the regions is configured with {@link org.apache.geode.cache.LossAction#NO_ACCESS NO_ACCESS}
+ * on role loss.</LI> 
+ * 
+ * <LI>If one of the regions is configured with {@link org.apache.geode.cache.LossAction#LIMITED_ACCESS LIMITED_ACCESS}
+ * on role loss.</LI> 
+ * 
+ * </UL>
+ * 
+ * <UL>
+ *
+ * </UL>
+ *
+ *
+ * @since GemFire 3.5
+ * @deprecated as of 7.0 use the <code><a href="{@docRoot}/org/apache/geode/management/package-summary.html">management</a></code> package instead
+ * */
+public interface CacheHealthConfig {
+
+  /** The default maximum number of milliseconds a
+   * <code>netSearch</code> operation can take before the cache member
+   * is considered to be unhealthy. */
+  public static final long DEFAULT_MAX_NET_SEARCH_TIME = 60 * 1000;
+
+  /** The default maximum mumber of milliseconds a cache
+   * <code>load</code> operation can take before the cache member is
+   * considered to be unhealthy. */
+  public static final long DEFAULT_MAX_LOAD_TIME = 60 * 1000;
+
+  /** The default minimum hit ratio of a healthy cache member. */
+  public static final double DEFAULT_MIN_HIT_RATIO = 0.0;
+
+  /** The default maximum number of entries in the event delivery queue
+   * of a healthy cache member. */
+  public static final long DEFAULT_MAX_EVENT_QUEUE_SIZE = 1000;
+
+  ///////////////////////  Instance Methods  ///////////////////////
+  
+  /**
+   * Returns the maximum number of milliseconds a
+   * <code>netSearch</code> operation can take before the cache member
+   * is considered to be unhealthy.
+   *
+   * @see #DEFAULT_MAX_NET_SEARCH_TIME
+   */
+  public long getMaxNetSearchTime();
+
+  /**
+   * Sets the maximum number of milliseconds a
+   * <code>netSearch</code> operation can take before the cache member
+   * is considered to be unhealthy.
+   *
+   * @see #getMaxNetSearchTime
+   */
+  public void setMaxNetSearchTime(long maxNetSearchTime);
+
+  /**
+   * Returns the maximum mumber of milliseconds a cache
+   * <code>load</code> operation can take before the cache member is
+   * considered to be unhealthy.
+   *
+   * @see #DEFAULT_MAX_LOAD_TIME
+   */
+  public long getMaxLoadTime();
+
+  /**
+   * Sets the maximum mumber of milliseconds a cache
+   * <code>load</code> operation can take before the cache member is
+   * considered to be unhealthy.
+   *
+   * @see #getMaxLoadTime
+   */
+  public void setMaxLoadTime(long maxLoadTime);
+
+  /**
+   * Returns the minimum hit ratio of a healthy cache member.
+   *
+   * @see #DEFAULT_MIN_HIT_RATIO
+   */
+  public double getMinHitRatio();
+
+  /**
+   * Sets the minimum hit ratio of a healthy cache member.
+   *
+   * @see #getMinHitRatio
+   */
+  public void setMinHitRatio(double minHitRatio);
+
+  /**
+   * Returns the maximum number of entries in the event delivery queue
+   * of a healthy cache member.
+   *
+   * @see #DEFAULT_MAX_EVENT_QUEUE_SIZE
+   */
+  public long getMaxEventQueueSize();
+
+  /**
+   * Sets the maximum number of entries in the event delivery queue
+   * of a healthy cache member.
+   *
+   * @see #getMaxEventQueueSize
+   */
+  public void setMaxEventQueueSize(long maxEventQueueSize);
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/096b622d/geode-core/src/main/java/org/apache/geode/internal/admin/api/CacheServer.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/internal/admin/api/CacheServer.java b/geode-core/src/main/java/org/apache/geode/internal/admin/api/CacheServer.java
new file mode 100644
index 0000000..5fb9985
--- /dev/null
+++ b/geode-core/src/main/java/org/apache/geode/internal/admin/api/CacheServer.java
@@ -0,0 +1,45 @@
+/*
+ * 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.internal.admin.api;
+
+/**
+ * A dedicated cache server VM that is managed by the administration
+ * API.
+ *
+ * @since GemFire 4.0
+ * @deprecated as of 5.7 use {@link CacheVm} instead.
+ */
+@Deprecated
+public interface CacheServer extends SystemMember, ManagedEntity {
+  /**
+   * Returns the configuration of this cache vm
+   * @deprecated as of 5.7 use {@link CacheVm#getVmConfig} instead.
+   */
+  @Deprecated
+  public CacheServerConfig getConfig();
+  /**
+   * Find whether this server is primary for given client (durableClientId)
+   * 
+   * @param durableClientId -
+   *                durable-id of the client
+   * @return true if the server is primary for given client
+   * 
+   * @since GemFire 5.6
+   */
+  public boolean isPrimaryForDurableClient(String durableClientId);
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/096b622d/geode-core/src/main/java/org/apache/geode/internal/admin/api/CacheServerConfig.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/internal/admin/api/CacheServerConfig.java b/geode-core/src/main/java/org/apache/geode/internal/admin/api/CacheServerConfig.java
new file mode 100644
index 0000000..18ff326
--- /dev/null
+++ b/geode-core/src/main/java/org/apache/geode/internal/admin/api/CacheServerConfig.java
@@ -0,0 +1,54 @@
+/*
+ * 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.internal.admin.api;
+
+/**
+ * Configuration for a GemFire cache server that is managed by the
+ * administration API.  The cache server may or may not be running.
+ *
+ * @see AdminDistributedSystem#addCacheServer()
+ *
+ * @since GemFire 4.0
+ * @deprecated as of 5.7 use {@link CacheVmConfig} instead.
+ */
+@Deprecated
+public interface CacheServerConfig extends CacheVmConfig {
+  /**
+   * Returns the <code>cache.xml</code> declarative caching
+   * initialization file used to configure this cache server VM.  By
+   * default, a cache server VM is started without an XML file.
+   */
+  public String getCacheXMLFile();
+
+  /**
+   * Sets the <code>cache.xml</code> declarative caching
+   * initialization file used to configure this cache server VM.
+   */
+  public void setCacheXMLFile(String cacheXml);
+
+  /**
+   * Returns the location(s) of user classes (such as cache loaders)
+   * required by the cache server VM.
+   */
+  public String getClassPath();
+
+  /**
+   * Sets the location(s) of user classes (such as cache loaders)
+   * required by the cache server VM.
+   */
+  public void setClassPath(String classpath);
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/096b622d/geode-core/src/main/java/org/apache/geode/internal/admin/api/CacheVm.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/internal/admin/api/CacheVm.java b/geode-core/src/main/java/org/apache/geode/internal/admin/api/CacheVm.java
new file mode 100755
index 0000000..cefd04f
--- /dev/null
+++ b/geode-core/src/main/java/org/apache/geode/internal/admin/api/CacheVm.java
@@ -0,0 +1,37 @@
+/*
+ * 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.internal.admin.api;
+
+/**
+ * A dedicated cache server VM that is managed by the administration
+ * API.
+ * <p>Note that this may not represent an instance of
+ * {@link org.apache.geode.cache.server.CacheServer}. It is possible for
+ * a cache VM to be started but for it not to listen for client connections
+ * in which case it is not a 
+ * {@link org.apache.geode.cache.server.CacheServer}
+ * but is an instance of this interface.
+ *
+ * @since GemFire 5.7
+ * @deprecated as of 7.0 use the <code><a href="{@docRoot}/org/apache/geode/management/package-summary.html">management</a></code> package instead
+ */
+public interface CacheVm extends SystemMember, ManagedEntity {
+  /**
+   * Returns the configuration of this cache vm
+   */
+  public CacheVmConfig getVmConfig();
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/096b622d/geode-core/src/main/java/org/apache/geode/internal/admin/api/CacheVmConfig.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/internal/admin/api/CacheVmConfig.java b/geode-core/src/main/java/org/apache/geode/internal/admin/api/CacheVmConfig.java
new file mode 100755
index 0000000..370f452
--- /dev/null
+++ b/geode-core/src/main/java/org/apache/geode/internal/admin/api/CacheVmConfig.java
@@ -0,0 +1,53 @@
+/*
+ * 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.internal.admin.api;
+
+/**
+ * Configuration for a GemFire cache server VM that is managed by the
+ * administration API.  The VM may or may not be running.
+ *
+ * @see AdminDistributedSystem#addCacheVm()
+ *
+ * @since GemFire 5.7
+ * @deprecated as of 7.0 use the <code><a href="{@docRoot}/org/apache/geode/management/package-summary.html">management</a></code> package instead
+ */
+public interface CacheVmConfig extends ManagedEntityConfig {
+  /**
+   * Returns the <code>cache.xml</code> declarative caching
+   * initialization file used to configure this cache server VM.  By
+   * default, a cache server VM is started without an XML file.
+   */
+  public String getCacheXMLFile();
+
+  /**
+   * Sets the <code>cache.xml</code> declarative caching
+   * initialization file used to configure this cache server VM.
+   */
+  public void setCacheXMLFile(String cacheXml);
+
+  /**
+   * Returns the location(s) of user classes (such as cache loaders)
+   * required by the cache server VM.
+   */
+  public String getClassPath();
+
+  /**
+   * Sets the location(s) of user classes (such as cache loaders)
+   * required by the cache server VM.
+   */
+  public void setClassPath(String classpath);
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/096b622d/geode-core/src/main/java/org/apache/geode/internal/admin/api/ConfigurationParameter.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/internal/admin/api/ConfigurationParameter.java b/geode-core/src/main/java/org/apache/geode/internal/admin/api/ConfigurationParameter.java
new file mode 100755
index 0000000..0a581ba
--- /dev/null
+++ b/geode-core/src/main/java/org/apache/geode/internal/admin/api/ConfigurationParameter.java
@@ -0,0 +1,73 @@
+/*
+ * 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.internal.admin.api;
+
+/**
+* A single configuration parameter of a {@link SystemMember}.
+ *
+ * @since GemFire     3.5
+ *
+ * @deprecated as of 7.0 use the <code><a href="{@docRoot}/org/apache/geode/management/package-summary.html">management</a></code> package instead
+ */
+public interface ConfigurationParameter {
+  
+  /** Gets the identifying name of this configuration parameter. */
+  public String getName();
+  
+  /** Gets the full description of this configuration parameter */
+  public String getDescription();
+  
+  /** Gets the current value */
+  public Object getValue();
+  
+  /** Gets the current value as a string */
+  public String getValueAsString();
+  
+  /** Gets the class type of the value */
+  public Class getValueType();
+  
+  /** True if this is modifiable; false if read-only */
+  public boolean isModifiable();
+  
+  /** Returns true if this config parameter uses a string array for value. */
+  public boolean isArray();
+  
+  /** Returns true if this config parameter represents an InetAddress value. */
+  public boolean isInetAddress();
+  
+  /** Returns true if this config parameter represents a File value. */
+  public boolean isFile();
+  
+  /** Returns true if this config parameter represents an octal value. */
+  public boolean isOctal();
+    
+  /** Returns true if this config parameter represents a string value. */
+  public boolean isString();
+  
+  /**
+   * Sets a new value for this configuration parameter.
+   *
+   * @param value   the new value which must be of type {@link #getValueType}
+   * @throws IllegalArgumentException
+   *         if value type does not match {@link #getValueType}
+   * @throws UnmodifiableConfigurationException
+   *         if attempting to set value when isModifiable is false
+   */
+  public void setValue(Object value) throws UnmodifiableConfigurationException;
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/096b622d/geode-core/src/main/java/org/apache/geode/internal/admin/api/DistributedSystemConfig.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/internal/admin/api/DistributedSystemConfig.java b/geode-core/src/main/java/org/apache/geode/internal/admin/api/DistributedSystemConfig.java
new file mode 100755
index 0000000..49a7803
--- /dev/null
+++ b/geode-core/src/main/java/org/apache/geode/internal/admin/api/DistributedSystemConfig.java
@@ -0,0 +1,642 @@
+/*
+ * 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.internal.admin.api;
+
+import org.apache.geode.internal.admin.api.impl.InetAddressUtil;
+import org.apache.geode.distributed.internal.DistributionConfig;
+
+import java.util.Properties;
+
+import static org.apache.geode.distributed.ConfigurationProperties.*;
+
+
+/**
+ * Configuration for defining a GemFire distributed system to
+ * administrate.  This configuration includes information about the
+ * discovery mechanism used to find members of the distributed system
+ * and information about {@linkplain ManagedEntity managed entities}
+ * such as {@linkplain DistributionLocator distribution locators}
+ * and {@linkplain CacheVm GemFire cache vms}
+ * that can be {@linkplain AdminDistributedSystem#start started}.  
+ *
+ * <P>
+ *
+ * Detailed descriptions of many of these configuration attributes can
+ * be found in the {@link
+ * org.apache.geode.distributed.DistributedSystem
+ * DistributedSystem} class.  Note that the default values of these
+ * configuration attributes can be specified using Java system
+ * properties.
+ *
+ * <P>
+ *
+ * A <code>DistributedSystemConfig</code> can be modified using a
+ * number of mutator methods until the
+ * <code>AdminDistributedSystem</code> that it configures {@linkplain
+ * AdminDistributedSystem#connect connects} to the distributed system.
+ * After that, attempts to modify most attributes in the
+ * <code>DistributedSystemConfig</code> will result in an {@link
+ * IllegalStateException} being thrown.  If you wish to use the same
+ * <code>DistributedSystemConfig</code> to configure multiple
+ * <code>AdminDistributedSystem</code>s, a copy of the
+ * <code>DistributedSystemConfig</code> object can be made by invoking
+ * the {@link #clone} method.
+ *
+ * @since GemFire 3.5
+ * @deprecated as of 7.0 use the <code><a href="{@docRoot}/org/apache/geode/management/package-summary.html">management</a></code> package instead
+*/
+public interface DistributedSystemConfig extends Cloneable {
+
+  /** The name of an XML file that specifies the configuration for the
+   * {@linkplain ManagedEntity managed entities} administered by the
+   * <code>DistributedSystem</code>.  The XML file must conform to a
+   * <a href="doc-files/ds5_0.dtd">dtd</a>. */
+  String ENTITY_CONFIG_XML_FILE_NAME =
+    "entity-config-xml-file";
+
+  /** The default value of the "entity-config-xml-file" property
+   * ("distributed-system.xml"). */
+  String DEFAULT_ENTITY_CONFIG_XML_FILE =
+    "distributed-system.xml";
+
+  /** The name of the "system-id" property */
+  String SYSTEM_ID_NAME = "system-id";
+
+  /** The default value of the "system-id" property ("") */
+  String DEFAULT_SYSTEM_ID = "Default System";
+
+  /** The name of the "name" property. See {@link #getSystemName()}. */
+  String NAME_NAME = NAME;
+
+  /** The default value of the "name" property (""). See {@link #getSystemName()}. */
+  String DEFAULT_NAME = "";
+
+  /** The name of the "mcastPort" property */
+  String MCAST_PORT_NAME = MCAST_PORT;
+
+  /** The default value of the "mcastPort" property (10334) */
+  int DEFAULT_MCAST_PORT =
+    DistributionConfig.DEFAULT_MCAST_PORT;
+
+  /** The minimum mcastPort (0) */
+  int MIN_MCAST_PORT = DistributionConfig.MIN_MCAST_PORT;
+
+  /** The maximum mcastPort (65535) */
+  int MAX_MCAST_PORT = DistributionConfig.MAX_MCAST_PORT;
+  
+  /** The name of the "mcastAddress" property */
+  String MCAST_ADDRESS_NAME = MCAST_ADDRESS;
+
+  /** The default value of the "mcastAddress" property (239.192.81.1). */
+  String DEFAULT_MCAST_ADDRESS = 
+      InetAddressUtil.toString(DistributionConfig.DEFAULT_MCAST_ADDRESS);
+  
+  /** The name of the "membership-port-range" property
+   * @since GemFire 6.5
+   */
+  String MEMBERSHIP_PORT_RANGE_NAME = MEMBERSHIP_PORT_RANGE;
+
+  /**
+   * The default membership-port-range.
+   * <p> Actual value is <code>[1024,65535]</code>.
+   * @since GemFire 6.5
+   */
+  int[] DEFAULT_MEMBERSHIP_PORT_RANGE = 
+    DistributionConfig.DEFAULT_MEMBERSHIP_PORT_RANGE;
+  
+  /** settings for tcp-port
+   * @since GemFire 6.5
+   */
+  String TCP_PORT_NAME = TCP_PORT;
+  /** The default value of the "tcpPort" property.
+   * <p> Actual value is <code>0</code>.
+   * @since GemFire 6.5
+   */
+  int DEFAULT_TCP_PORT = DistributionConfig.DEFAULT_TCP_PORT;
+
+  /**
+   * The default AckWaitThreshold.
+   * <p> Actual value of this constant is <code>15</code> seconds.
+   */
+  int DEFAULT_ACK_WAIT_THRESHOLD =
+    DistributionConfig.DEFAULT_ACK_WAIT_THRESHOLD;
+  /**
+   * The minimum AckWaitThreshold.
+   * <p> Actual value of this constant is <code>1</code> second.
+   */
+  int MIN_ACK_WAIT_THRESHOLD =
+    DistributionConfig.MIN_ACK_WAIT_THRESHOLD;
+  /**
+   * The maximum AckWaitThreshold.
+   * <p> Actual value of this constant is <code>MAX_INT</code> seconds.
+   */
+  int MAX_ACK_WAIT_THRESHOLD =
+    DistributionConfig.MIN_ACK_WAIT_THRESHOLD;
+  
+  /**
+   * The default ackSevereAlertThreshold.
+   * <p> Actual value of this constant is <code>0</code> seconds, which
+   * turns off forced disconnects based on ack wait periods.
+   */
+  int DEFAULT_ACK_SEVERE_ALERT_THRESHOLD =
+    DistributionConfig.DEFAULT_ACK_SEVERE_ALERT_THRESHOLD;
+  /**
+   * The minimum ackSevereAlertThreshold.
+   * <p> Actual value of this constant is <code>0</code> second,
+   * which turns off forced disconnects based on ack wait periods.
+   */
+  int MIN_ACK_SEVERE_ALERT_THRESHOLD =
+    DistributionConfig.MIN_ACK_SEVERE_ALERT_THRESHOLD;
+  /**
+   * The maximum ackSevereAlertThreshold.
+   * <p> Actual value of this constant is <code>MAX_INT</code> seconds.
+   */
+  int MAX_ACK_SEVERE_ALERT_THRESHOLD =
+    DistributionConfig.MAX_ACK_SEVERE_ALERT_THRESHOLD;
+
+  /** The name of the "locators" property (comma-delimited host[port] list) */
+  String LOCATORS_NAME = LOCATORS;
+
+  /** The default value of the "locators" property ("") */
+  String DEFAULT_LOCATORS =
+    DistributionConfig.DEFAULT_LOCATORS;
+
+  /** The name of the "bindAddress" property */
+  String BIND_ADDRESS_NAME = BIND_ADDRESS;
+
+  /** The default value of the "bindAddress" property */
+  String DEFAULT_BIND_ADDRESS =
+    DistributionConfig.DEFAULT_BIND_ADDRESS;
+
+  /** The name of the remote-command property */
+  String REMOTE_COMMAND_NAME = "remote-command";
+
+  /** The default value of the remote-command property */
+  String DEFAULT_REMOTE_COMMAND =
+    "rsh -n {HOST} {CMD}";
+
+  /** The default disable-tcp value (<code>false</code>) */
+  boolean DEFAULT_DISABLE_TCP = DistributionConfig.DEFAULT_DISABLE_TCP;
+  
+  /** The default enable-network-partition-detection setting (<code>false</code>) */
+  boolean DEFAULT_ENABLE_NETWORK_PARTITION_DETECTION = DistributionConfig.DEFAULT_ENABLE_NETWORK_PARTITION_DETECTION;
+  
+  /** The default disable-auto-reconnect setting (<code>false</code>) */
+  boolean DEFAULT_DISABLE_AUTO_RECONNECT = DistributionConfig.DEFAULT_DISABLE_AUTO_RECONNECT;
+
+  /** The default failure-detection timeout period for member heart-beat responses */
+  int DEFAULT_MEMBER_TIMEOUT = DistributionConfig.DEFAULT_MEMBER_TIMEOUT;
+  
+  /** The name of the "logFile" property */
+  String LOG_FILE_NAME = LOG_FILE;
+
+  /** The default log-file value ("" which directs logging to standard
+   * output) */
+  String DEFAULT_LOG_FILE = "";
+
+  /** The name of the "logLevel" property */
+  String LOG_LEVEL_NAME = LOG_LEVEL;
+
+  /** The default log level ("config") */
+  String DEFAULT_LOG_LEVEL = "config";
+
+  /** The name of the "LogDiskSpaceLimit" property */
+  String LOG_DISK_SPACE_LIMIT_NAME =
+      LOG_DISK_SPACE_LIMIT;
+
+  /** The default log disk space limit in megabytes (0) */
+  int DEFAULT_LOG_DISK_SPACE_LIMIT =
+    DistributionConfig.DEFAULT_LOG_DISK_SPACE_LIMIT;
+
+  /** The minimum log disk space limit in megabytes (0) */
+  int MIN_LOG_DISK_SPACE_LIMIT = 
+    DistributionConfig.MIN_LOG_DISK_SPACE_LIMIT;
+
+  /** The minimum log disk space limit in megabytes (1000000) */
+  int MAX_LOG_DISK_SPACE_LIMIT =
+    DistributionConfig.MAX_LOG_DISK_SPACE_LIMIT;
+    
+  /** The name of the "LogFileSizeLimit" property */
+  String LOG_FILE_SIZE_LIMIT_NAME = LOG_FILE_SIZE_LIMIT;
+
+  /** The default log file size limit in megabytes (0) */
+  int DEFAULT_LOG_FILE_SIZE_LIMIT =
+    DistributionConfig.DEFAULT_LOG_FILE_SIZE_LIMIT;
+
+  /** The minimum log file size limit in megabytes (0) */
+  int MIN_LOG_FILE_SIZE_LIMIT =
+    DistributionConfig.MIN_LOG_FILE_SIZE_LIMIT;
+
+  /** The minimum log file size limit in megabytes (1000000) */
+  int MAX_LOG_FILE_SIZE_LIMIT =
+    DistributionConfig.MAX_LOG_FILE_SIZE_LIMIT;
+
+  /**
+   * The name of the "refreshInterval" property which will apply to
+   * SystemMember, SystemMemberCache and StatisticResource refresh. This interval
+   * (in seconds) is used for auto-polling and updating AdminDistributedSystem
+   * constituents including SystemMember, CacheServer, SystemMemberCache and
+   * StatisticResource. This interval is read-only and retains the value set
+   * when the config is created. Note that the resource MBeans actually refresh
+   * and hit the DS only if there is an RMI client connected
+   * */
+  String REFRESH_INTERVAL_NAME =
+    "refresh-interval";
+
+  /**
+   * The default "refreshInterval" in seconds which will apply to
+   * REFRESH_INTERVAL_NAME property. The default value is 15 secs
+   * */
+  int DEFAULT_REFRESH_INTERVAL = 15;
+
+  //////////////////////  Instance Methods  //////////////////////
+
+  /**
+   * Returns the name of the XML file that specifies the configuration
+   * of the {@linkplain ManagedEntity
+   * managed entities} administered by the
+   * <code>DistributedSystem</code>.  The XML file must conform to a
+   * <a href="doc-files/ds5_0.dtd">dtd</a>.
+   *
+   * @since GemFire 4.0
+   */
+  public String getEntityConfigXMLFile();
+
+  /**
+   * Sets the name of the XML file that specifies the configuration of
+   * managed entities administered by the
+   * <code>DistributedSystem</code>. 
+   */
+  public void setEntityConfigXMLFile(String xmlFile);
+
+  /** Returns the string identity for the system */
+  public String getSystemId();
+
+  /** Sets the string identity for the system */
+  public void setSystemId(String systemId);
+
+  /** Returns the optional non-unique name for the system */
+  public String getSystemName();
+
+  /** Sets the optional non-unique name for the system */
+  public void setSystemName(final String name);
+
+  /** Returns the multicast address for the system */
+  public String getMcastAddress();
+
+  /** Sets the multicast address for the system */
+  public void setMcastAddress(String mcastAddress);
+
+  /** Returns the multicast port for the system */
+  public int getMcastPort();
+  
+  /** Sets the multicast port for the system */
+  public void setMcastPort(int mcastPort);
+
+  /** Returns the ack-wait-threshold for the system */
+  public int getAckWaitThreshold();
+  
+  /** Sets the ack-wait-threshold for the system */
+  public void setAckWaitThreshold(int seconds);
+
+  /** Returns the ack-severe-alert-threshold for the system */
+  public int getAckSevereAlertThreshold();
+  
+  /** Sets the ack-severe-alert-threshold for the system */
+  public void setAckSevereAlertThreshold(int seconds);
+
+  /** Returns a comma-delimited list of locators for the system */
+  public String getLocators();
+
+  /** Sets the comma-delimited list of locators for the system */
+  public void setLocators(String locators);
+
+  /**
+   * Returns the membership-port-range property of the Distributed System. This 
+   * range is given as two numbers separated by a minus sign.
+   * @since GemFire 6.5
+   */
+  public String getMembershipPortRange();
+  
+  /**
+   * Sets the membership-port-range property of the Distributed System. This 
+   * range is given as two numbers separated by a minus sign.
+   * @since GemFire 6.5
+   */
+  public void setMembershipPortRange(String membershipPortRange);
+  
+  
+  /**
+   * Sets the primary communication port number for the Distributed System.
+   * @since GemFire 6.5
+   */
+  public void setTcpPort(int port);
+
+  /**
+   * Returns the primary communication port number for the Distributed System.
+   * @since GemFire 6.5
+   */
+  public int getTcpPort();
+
+
+  /** Sets the disable-tcp property for the system.  When tcp is disabled,
+      the cache uses udp for unicast messaging.   This must be consistent
+      across all members of the distributed system. The default is to enable
+      tcp. */
+  public void setDisableTcp(boolean flag);
+  
+  /** Returns the disable-tcp property for the system.  When tcp is
+      disabled, the cache uses udp for unicast messaging.  This must be
+      consistent across all members of the distributed system.  The default
+      is to enable tcp.
+   */
+  public boolean getDisableTcp();
+
+
+  /**
+   * Turns on network partition detection
+   */
+  public void setEnableNetworkPartitionDetection(boolean newValue);
+  /**
+   * Returns true if network partition detection is enabled.
+   */
+  public boolean getEnableNetworkPartitionDetection();
+  
+  /**
+   * Disables auto reconnect after being forced out of the distributed system
+   */
+  public void setDisableAutoReconnect(boolean newValue);
+  
+  /**
+   * Returns true if auto reconnect is disabled
+   */
+  public boolean getDisableAutoReconnect();
+  
+  
+
+  /**
+   * Returns the member-timeout millisecond value used in failure-detection
+   * protocols
+   */
+  public int getMemberTimeout();
+
+  /**
+   * Set the millisecond value of the member-timeout used in failure-detection
+   * protocols.  This timeout determines how long a member has to respond to
+   * a heartbeat request. The member is given three chances before being
+   * kicked out of the distributed system with a SystemConnectException.
+   */
+  public void setMemberTimeout(int value);
+
+  /**
+   * Returns the IP address to which the distributed system's server
+   * sockets are bound.
+   *
+   * @since GemFire 4.0
+   */
+  public String getBindAddress();
+
+  /**
+   * Sets the IP address to which the distributed system's server
+   * sockets are bound.
+   *
+   * @since GemFire 4.0
+   */
+  public void setBindAddress(String bindAddress);
+  
+  
+  /**
+   * Returns the IP address to which client/server server sockets are
+   * bound
+   */
+  public String getServerBindAddress();
+  
+  /**
+   * Sets the IP address to which a server cache will bind when listening
+   * for client cache connections. 
+   */
+  public void setServerBindAddress(String bindAddress);
+  
+
+  /** Returns the remote command setting to use for remote administration */
+  public String getRemoteCommand();
+
+  /** 
+   * Sets the remote command setting to use for remote administration.
+   * This attribute may be modified after this
+   * <code>DistributedSystemConfig</code> has been used to create an
+   * <codE>AdminDistributedSystem</code>.
+   */
+  public void setRemoteCommand(String command);
+
+  /** Returns the value of the "ssl-enabled" property. */
+  public boolean isSSLEnabled();
+
+  /** Sets the value of the "ssl-enabled" property. */
+  public void setSSLEnabled(boolean enabled);
+
+  /** Returns the value of the "ssl-protocols" property. */
+  public String getSSLProtocols();
+
+  /** Sets the value of the "ssl-protocols" property. */
+  public void setSSLProtocols(String protocols);
+
+  /** Returns the value of the "ssl-ciphers" property. */
+  public String getSSLCiphers();
+
+  /** Sets the value of the "ssl-ciphers" property. */
+  public void setSSLCiphers(String ciphers);
+
+  /** Returns the value of the "ssl-require-authentication" property. */
+  public boolean isSSLAuthenticationRequired();
+
+  /** Sets the value of the "ssl-require-authentication" property. */
+  public void setSSLAuthenticationRequired(boolean authRequired);
+  
+  /** Returns the provider-specific properties for SSL. */
+  public Properties getSSLProperties();
+
+  /** Sets the provider-specific properties for SSL. */
+  public void setSSLProperties(Properties sslProperties);
+
+  /** Adds an SSL property */
+  public void addSSLProperty(String key, String value);
+
+  /** Removes an SSL property */
+  public void removeSSLProperty(String key);
+  
+  /**
+   * Returns the name of the log file to which informational messages
+   * are written.
+   *
+   * @see org.apache.geode.i18n.LogWriterI18n
+   */
+  public String getLogFile();
+
+  /**
+   * Sets the name of the log file to which informational messages
+   * are written.
+   *
+   * @see org.apache.geode.i18n.LogWriterI18n
+   */
+  public void setLogFile(String logFile);
+
+  /**
+   * Returns the level at which informational messages are logged.
+   */
+  public String getLogLevel();
+
+  /**
+   * Sets the level at which information messages are logged.
+   */
+  public void setLogLevel(String logLevel);
+
+  /**
+   * Returns the log disk space limit in megabytes
+   */
+  public int getLogDiskSpaceLimit();
+
+  /**
+   * Sets the log disk space limit in megabytes
+   */
+  public void setLogDiskSpaceLimit(int limit);
+
+  /**
+   * Returns the log file size limit in megabytes
+   */
+  public int getLogFileSizeLimit();
+
+  /**
+   * Sets the log file size limit in megabytes
+   */
+  public void setLogFileSizeLimit(int limit);
+
+  /**
+   * Returns the refreshInterval in seconds used for auto-polling and updating
+   * AdminDistributedSystem constituents including SystemMember, CacheServer,
+   * SystemMemberCache and StatisticResource
+   * @since GemFire 6.0
+   */
+  public int getRefreshInterval();
+
+  /**
+   * Sets the refreshInterval in seconds
+   * @since GemFire 6.0
+   */
+  public void setRefreshInterval(int timeInSecs);
+
+  /** 
+   * Returns an array of configurations for statically known
+   * <code>CacheServers</code>.
+   * @deprecated as of 5.7 use {@link #getCacheVmConfigs} instead.
+   */ 
+  @Deprecated
+  public CacheServerConfig[] getCacheServerConfigs();
+
+  /** 
+   * Creates the configuration for a CacheServer
+   * @deprecated as of 5.7 use {@link #createCacheVmConfig} instead.
+   */
+  @Deprecated
+  public CacheServerConfig createCacheServerConfig();
+
+  /** 
+   * Removes the configuration for a CacheServer
+   * @deprecated as of 5.7 use {@link #removeCacheVmConfig} instead.
+   */
+  @Deprecated
+  public void removeCacheServerConfig(CacheServerConfig managerConfig);
+
+  /** 
+   * Returns an array of configurations for statically known
+   * {@link CacheVm}s.
+   * @since GemFire 5.7
+   */ 
+  public CacheVmConfig[] getCacheVmConfigs();
+
+  /** 
+   * Creates the configuration for a {@link CacheVm}.
+   * @since GemFire 5.7
+   */
+  public CacheVmConfig createCacheVmConfig();
+
+  /** 
+   * Removes the configuration for a {@link CacheVm}
+   * @since GemFire 5.7
+   */
+  public void removeCacheVmConfig(CacheVmConfig existing);
+
+  /**
+   * Returns configuration information about {@link
+   * DistributionLocator}s that are managed by an
+   * <code>AdminDistributedSystem</code>.
+   */
+  public DistributionLocatorConfig[] getDistributionLocatorConfigs();
+  
+  /**
+   * Creates a new <code>DistributionLocatorConfig</code> for a
+   * distribution locator that is managed in this distributed system.
+   * The default locator config is set to not use multicast
+   */
+  public DistributionLocatorConfig createDistributionLocatorConfig();
+
+  /**
+   * Removes a <code>DistributionLocatorConfig</code> from the
+   * distributed system.
+   */
+  public void removeDistributionLocatorConfig(DistributionLocatorConfig config);
+
+  /** Registers listener for notification of changes in this config. */
+  public void addListener(ConfigListener listener);
+
+  /** Removes previously registered listener of this config. */
+  public void removeListener(ConfigListener listener);
+
+  /**
+   * Validates that this distributed system configuration is correct
+   * and consistent.
+   *
+   * @throws IllegalStateException
+   *         If this config is not valid
+   * @throws AdminXmlException
+   *         If the {@linkplain #getEntityConfigXMLFile entity config
+   *         XML file} is not valid 
+   */
+  public void validate();
+
+  /**
+   * Returns a copy of this <code>DistributedSystemConfig</code>
+   * object whose configuration can be modified.  Note that this
+   * {@link DistributedSystemConfig.ConfigListener ConfigListener}s
+   * that are registered on this config object are not cloned.
+   *
+   * @since GemFire 4.0
+   */
+  public Object clone() throws CloneNotSupportedException;
+
+  ////////////////////// Inner Classes  //////////////////////
+
+  /** A listener whose callback methods are invoked when this config
+   * changes. */
+  public interface ConfigListener extends java.util.EventListener {
+
+    /** Invoked when this configurated is changed. */
+    public void configChanged(DistributedSystemConfig config);
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/096b622d/geode-core/src/main/java/org/apache/geode/internal/admin/api/DistributedSystemHealthConfig.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/internal/admin/api/DistributedSystemHealthConfig.java b/geode-core/src/main/java/org/apache/geode/internal/admin/api/DistributedSystemHealthConfig.java
new file mode 100644
index 0000000..c27e17a
--- /dev/null
+++ b/geode-core/src/main/java/org/apache/geode/internal/admin/api/DistributedSystemHealthConfig.java
@@ -0,0 +1,76 @@
+/*
+ * 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.internal.admin.api;
+
+/**
+ * Provides configuration information relating to the health of an
+ * entire GemFire distributed system.
+ *
+ * <P>
+ *
+ * If any of the following criteria is
+ * true, then the distributed system is considered to be in
+ * {@link GemFireHealth#OKAY_HEALTH OKAY_HEALTH}.
+ *
+ * <UL>
+ *
+ * </UL>
+ *
+ * If any of the following criteria is true, then the distributed
+ * system is considered to be in {@link GemFireHealth#POOR_HEALTH
+ * POOR_HEALTH}.
+ *
+ * <UL>
+ *
+ * <LI>Too many application members {@linkplain
+ * #getMaxDepartedApplications unexpectedly leave} the distributed
+ * system.</LI>
+ *
+ * <LI>Too many application members {@linkplain
+ * #getMaxDepartedApplications unexpectedly leave} the distributed
+ * system.</LI>
+ *
+ * </UL>
+ *
+ *
+ * @since GemFire 3.5
+ * @deprecated as of 7.0 use the <code><a href="{@docRoot}/org/apache/geode/management/package-summary.html">management</a></code> package instead
+ * */
+public interface DistributedSystemHealthConfig {
+
+  /** The default maximum number of application members that can
+   * unexceptedly leave a healthy the distributed system. */
+  public static final long DEFAULT_MAX_DEPARTED_APPLICATIONS = 10;
+
+  ///////////////////////  Instance Methods  ///////////////////////
+
+  /**
+   * Returns the maximum number of application members that can
+   * unexceptedly leave a healthy the distributed system.
+   *
+   * @see #DEFAULT_MAX_DEPARTED_APPLICATIONS
+   */
+  public long getMaxDepartedApplications();
+
+  /**
+   * Sets the maximum number of application members that can
+   * unexceptedly leave a healthy the distributed system.
+   *
+   * @see #getMaxDepartedApplications
+   */
+  public void setMaxDepartedApplications(long maxDepartedApplications);
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/096b622d/geode-core/src/main/java/org/apache/geode/internal/admin/api/DistributionLocator.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/internal/admin/api/DistributionLocator.java b/geode-core/src/main/java/org/apache/geode/internal/admin/api/DistributionLocator.java
new file mode 100755
index 0000000..7871420
--- /dev/null
+++ b/geode-core/src/main/java/org/apache/geode/internal/admin/api/DistributionLocator.java
@@ -0,0 +1,46 @@
+/*
+ * 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.internal.admin.api;
+
+/**
+ * Represents a single distribution locator server, of which a
+ * distributed system may use zero or many.  The distributed system
+ * will be configured to use either multicast discovery or locator
+ * service.
+ *
+ * @see DistributionLocatorConfig
+ *
+ * @since GemFire 3.5
+ * @deprecated as of 7.0 use the <code><a href="{@docRoot}/org/apache/geode/management/package-summary.html">management</a></code> package instead
+ */
+public interface DistributionLocator extends ManagedEntity {
+  
+  /** 
+   * Returns the identity name for this locator.
+   */
+  public String getId();
+  
+  /**
+   * Returns the configuration object for this distribution locator.
+   *
+   * @since GemFire 4.0
+   */
+  public DistributionLocatorConfig getConfig();
+
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/096b622d/geode-core/src/main/java/org/apache/geode/internal/admin/api/DistributionLocatorConfig.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/internal/admin/api/DistributionLocatorConfig.java b/geode-core/src/main/java/org/apache/geode/internal/admin/api/DistributionLocatorConfig.java
new file mode 100644
index 0000000..5ff4084
--- /dev/null
+++ b/geode-core/src/main/java/org/apache/geode/internal/admin/api/DistributionLocatorConfig.java
@@ -0,0 +1,89 @@
+/*
+ * 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.internal.admin.api;
+import java.util.Properties;
+
+/**
+ * Describes the configuration of a {@link DistributionLocator}
+ * managed by the GemFire administration APIs.  
+ *
+ * <P>
+ *
+ * A <code>DistributionLocatorConfig</code> can be modified using a
+ * number of mutator methods until the
+ * <code>DistributionLocator</code> configured by this object is
+ * {@linkplain ManagedEntity#start started}.  After that,
+ * attempts to modify most attributes in the
+ * <code>DistributionLocatorConfig</code> will result in an {@link
+ * IllegalStateException} being thrown.  If you wish to use the same
+ * <code>DistributionLocatorConfig</code> to configure another
+ * <code>DistributionLocator</code>s, a copy of the
+ * <code>DistributionLocatorConfig</code> object can be made by
+ * invoking the {@link Object#clone} method.
+ *
+ * @see AdminDistributedSystem#addDistributionLocator
+ * @see org.apache.geode.distributed.Locator
+ *
+ * @since GemFire 4.0
+ * @deprecated as of 7.0 use the <code><a href="{@docRoot}/org/apache/geode/management/package-summary.html">management</a></code> package instead
+ */
+public interface DistributionLocatorConfig
+  extends ManagedEntityConfig {
+
+  /**
+   * Returns the port on which ths distribution locator listens for
+   * members to connect.  There is no default locator port, so a
+   * non-default port must be specified.
+   */
+  public int getPort();
+
+  /**
+   * Sets the port on which the distribution locator listens for
+   * members to connect.
+   */
+  public void setPort(int port);
+
+  /**
+   * Returns the address to which the distribution locator's port is
+   * (or will be) bound.  By default, the bind address is
+   * <code>null</code> meaning that the port will be bound to all
+   * network addresses on the host.
+   */
+  public String getBindAddress();
+
+  /**
+   * Sets the address to which the distribution locator's port is
+   * (or will be) bound.
+   */
+  public void setBindAddress(String bindAddress);
+
+  /**
+   * Sets the properties used to configure the locator's
+   * DistributedSystem.
+   * @since GemFire 5.0
+   */
+  public void setDistributedSystemProperties(Properties props);
+  
+  /**
+   * Retrieves the properties used to configure the locator's
+   * DistributedSystem.
+   * @since GemFire 5.0
+   */
+  public Properties getDistributedSystemProperties();
+
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/096b622d/geode-core/src/main/java/org/apache/geode/internal/admin/api/GemFireHealth.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/internal/admin/api/GemFireHealth.java b/geode-core/src/main/java/org/apache/geode/internal/admin/api/GemFireHealth.java
new file mode 100644
index 0000000..b6dcc16
--- /dev/null
+++ b/geode-core/src/main/java/org/apache/geode/internal/admin/api/GemFireHealth.java
@@ -0,0 +1,233 @@
+/*
+ * 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.internal.admin.api;
+
+import org.apache.geode.internal.Assert;
+import org.apache.geode.internal.i18n.LocalizedStrings;
+
+/**
+ * Provides information about the aggregate health of the members of a
+ * GemFire distributed system ("components").  The {@link #getHealth
+ * getHealth} method provides an indication of the overall health.
+ * Health is expressed as one of three levels: {@link #GOOD_HEALTH
+ * GOOD_HEALTH}, {@link #OKAY_HEALTH OKAY_HEALTH}, and {@link
+ * #POOR_HEALTH POOR_HEALTH}.  The {@link #getDiagnosis getDiagnosis}
+ * method provides a more detailed explanation of the cause of ill
+ * health.
+ *
+ * <P>
+ *
+ * The aggregate health of the GemFire component is evaluated
+ * {@linkplain GemFireHealthConfig#setHealthEvaluationInterval every
+ * so often} and if certain criteria are met, then the overall health
+ * of the component changes accordingly.  If any of the components is
+ * in <code>OKAY_HEALTH</code>, then the overall health is
+ * <code>OKAY_HEALTH</code>.  If any of the components is in
+ * <code>POOR_HEALTH</code>, then the overall health is
+ * <code>POOR_HEALTH</code>.
+ *
+ *
+ * @since GemFire 3.5
+ * @deprecated as of 7.0 use the <code><a href="{@docRoot}/org/apache/geode/management/package-summary.html">management</a></code> package instead
+ * */
+public interface GemFireHealth {
+
+  /** An indicator that the GemFire components are healthy.
+   *
+   * @see #getHealth */
+  public static final Health GOOD_HEALTH =
+    new Health(Health.GOOD_STRING);
+
+  /** An indicator that one or more GemFire components is slightly
+   * unhealthy.  The problem may or may not require configuration
+   * changes and may not necessarily lead to poorer component health.
+   *
+   * @see #getHealth */
+  public static final Health OKAY_HEALTH =
+    new Health(Health.OKAY_STRING);
+
+  /** An indicator that one or more GemFire components is unhealthy.
+   * While it may be possible for the components to recover on their
+   * own, it is likely that they will have to be restarted.
+   *
+   * @see #getHealth */
+  public static final Health POOR_HEALTH =
+    new Health(Health.POOR_STRING);
+
+  ///////////////////////  Instance Methods  ///////////////////////
+
+  /**
+   * Returns an indicator of the overall health of the GemFire
+   * components. 
+   *
+   * @see #GOOD_HEALTH
+   * @see #OKAY_HEALTH
+   * @see #POOR_HEALTH
+   */
+  public Health getHealth();
+
+  /** 
+   * Resets the overall health of the GemFire components to {@link
+   * #GOOD_HEALTH}.  This operation should be invoked when the
+   * operator has determined that warnings about the components's
+   * health do not need to be regarded.
+   */
+  public void resetHealth();
+
+  /**
+   * Returns a message that provides a description of the cause of a
+   * component's ill health.
+   */
+  public String getDiagnosis();
+
+  /**
+   * Returns the configuration for determining the health of the
+   * distributed system itself.
+   */
+  public DistributedSystemHealthConfig getDistributedSystemHealthConfig();
+
+  /**
+   * Sets the configuration for determining the health of the
+   * distributed system itself.
+   */
+  public void setDistributedSystemHealthConfig(DistributedSystemHealthConfig config);
+
+  /**
+   * Returns the <code>GemFireHealthConfig</code> for GemFire
+   * components whose configurations are not overridden on a per-host
+   * basis.  Note that changes made to the returned
+   * <code>GemFireHealthConfig</code> will not take effect until
+   * {@link #setDefaultGemFireHealthConfig} is invoked.
+   */
+  public GemFireHealthConfig getDefaultGemFireHealthConfig();
+
+  /**
+   * Sets the <code>GemFireHealthConfig</code> for
+   * GemFire components whose configurations are not overridden on a
+   * per-host basis.
+   *
+   * @throws IllegalArgumentException
+   *         If <code>config</code> specifies the config for a host
+   */
+  public void setDefaultGemFireHealthConfig(GemFireHealthConfig config);
+
+  /**
+   * Returns the <code>GemFireHealthConfig</code> for GemFire
+   * components that reside on a given host.  This configuration will
+   * override the {@linkplain #getDefaultGemFireHealthConfig default}
+   * configuration.
+   *
+   * @param hostName
+   *        The {@linkplain java.net.InetAddress#getCanonicalHostName
+   *        canonical} name of the host.
+   */
+  public GemFireHealthConfig getGemFireHealthConfig(String hostName);
+
+  /**
+   * Sets the <code>GemFireHealthConfig</code> for GemFire
+   * components that reside on a given host.  This configuration will
+   * override the {@linkplain #getDefaultGemFireHealthConfig default}
+   * configuration.  Note that changes made to the returned
+   * <code>GemFireHealthConfig</code> will not take effect until
+   * {@link #setDefaultGemFireHealthConfig} is invoked.
+   *
+   * @param hostName
+   *        The {@linkplain java.net.InetAddress#getCanonicalHostName
+   *        canonical} name of the host.
+   *
+   * @throws IllegalArgumentException
+   *         If host <code>hostName</code> does not exist or if there
+   *         are no GemFire components running on that host or if
+   *         <code>config</code> does not configure host
+   *         <code>hostName</code>. 
+   */
+  public void setGemFireHealthConfig(String hostName,
+                                     GemFireHealthConfig config);
+
+  /**
+   * Closes this health monitor and releases all resources associated
+   * with it.
+   */
+  public void close();
+
+  /**
+   * Returns whether or not this <code>GemFireHealth</code> is
+   * {@linkplain #close closed}.
+   */
+  public boolean isClosed();
+
+  //////////////////////  Inner Classes  //////////////////////
+
+  /**
+   * An enumerated type for the health of GemFire.
+   */
+  public static class Health implements java.io.Serializable {
+    private static final long serialVersionUID = 3039539430412151801L;
+    /** The string for good health */
+    static final String GOOD_STRING = LocalizedStrings.GemFireHealth_GOOD.toLocalizedString();
+
+    /** The string for okay health */
+    static final String OKAY_STRING = LocalizedStrings.GemFireHealth_OKAY.toLocalizedString();
+
+    /** The string for poor health */
+    static final String POOR_STRING = LocalizedStrings.GemFireHealth_POOR.toLocalizedString();
+
+    ////////////////////  Instance Fields  ////////////////////
+
+    /** The string for this health */
+    private String healthString;
+
+    /////////////////////  Constructors  //////////////////////
+
+    /**
+     * Creates a new <code>Health</code> with the given string
+     */
+    protected Health(String healthString) {
+      this.healthString = healthString;
+    }
+    
+    ////////////////////  Instance Methods  ////////////////////
+
+    /**
+     * Returns the appropriate canonical instance of
+     * <code>Health</code>.
+     */
+    public Object readResolve() {
+      if (this.healthString.equals(GOOD_STRING)) {
+        return GemFireHealth.GOOD_HEALTH;
+
+      } else if (this.healthString.equals(OKAY_STRING)) {
+        return GemFireHealth.OKAY_HEALTH;
+
+      } else if (this.healthString.equals(POOR_STRING)) {
+        return GemFireHealth.POOR_HEALTH;
+
+      } else {
+        Assert.assertTrue(false, "Unknown healthString: " +
+                          this.healthString);
+        return null;
+      }
+    }
+
+    @Override
+    public String toString() {
+      return this.healthString;
+    }
+
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/096b622d/geode-core/src/main/java/org/apache/geode/internal/admin/api/GemFireHealthConfig.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/internal/admin/api/GemFireHealthConfig.java b/geode-core/src/main/java/org/apache/geode/internal/admin/api/GemFireHealthConfig.java
new file mode 100644
index 0000000..c6da566
--- /dev/null
+++ b/geode-core/src/main/java/org/apache/geode/internal/admin/api/GemFireHealthConfig.java
@@ -0,0 +1,57 @@
+/*
+ * 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.internal.admin.api;
+
+/**
+ * Provides configuration information relating to all of the
+ * components of a GemFire distributed system.
+ *
+ *
+ * @since GemFire 3.5
+ * @deprecated as of 7.0 use the <code><a href="{@docRoot}/org/apache/geode/management/package-summary.html">management</a></code> package instead
+ * */
+public interface GemFireHealthConfig
+  extends MemberHealthConfig, CacheHealthConfig {
+
+  /** The default number of seconds between assessments of the health
+   * of the GemFire components. */
+  public static final int DEFAULT_HEALTH_EVALUATION_INTERVAL = 30;
+
+  //////////////////////  Instance Methods  //////////////////////
+
+  /**
+   * Returns the name of the host to which this configuration
+   * applies.  If this is the "default" configuration, then
+   * <code>null</code> is returned.
+   *
+   * @see GemFireHealth#getGemFireHealthConfig
+   */
+  public String getHostName();
+
+  /**
+   * Sets the number of seconds between assessments of the health of
+   * the GemFire components.
+   */
+  public void setHealthEvaluationInterval(int interval);
+
+  /**
+   * Returns the number of seconds between assessments of the health of
+   * the GemFire components.
+   */
+  public int getHealthEvaluationInterval();
+
+}