http://git-wip-us.apache.org/repos/asf/geode/blob/c3c639df/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/DescribeDiskStoreFunction.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/DescribeDiskStoreFunction.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/DescribeDiskStoreFunction.java
index 68cc2e0..cf870ca 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/DescribeDiskStoreFunction.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/DescribeDiskStoreFunction.java
@@ -12,18 +12,20 @@
  * or implied. See the License for the specific language governing permissions 
and limitations under
  * the License.
  */
-
 package org.apache.geode.management.internal.cli.functions;
 
+import java.io.File;
+import java.util.Properties;
+
 import org.apache.commons.lang.StringUtils;
+import org.apache.logging.log4j.Logger;
+
 import org.apache.geode.cache.Cache;
-import org.apache.geode.cache.CacheFactory;
-import org.apache.geode.cache.DataPolicy;
 import org.apache.geode.cache.DiskStore;
 import org.apache.geode.cache.EvictionAction;
 import org.apache.geode.cache.Region;
 import org.apache.geode.cache.asyncqueue.AsyncEventQueue;
-import org.apache.geode.cache.execute.FunctionAdapter;
+import org.apache.geode.cache.execute.Function;
 import org.apache.geode.cache.execute.FunctionContext;
 import org.apache.geode.cache.server.CacheServer;
 import org.apache.geode.cache.wan.GatewaySender;
@@ -35,12 +37,6 @@ import org.apache.geode.internal.logging.LogService;
 import org.apache.geode.internal.util.ArrayUtils;
 import org.apache.geode.management.internal.cli.domain.DiskStoreDetails;
 import 
org.apache.geode.management.internal.cli.util.DiskStoreNotFoundException;
-import org.apache.logging.log4j.Logger;
-
-import java.io.File;
-import java.util.HashSet;
-import java.util.Properties;
-import java.util.Set;
 
 /**
  * The DescribeDiskStoreFunction class is an implementation of a GemFire 
Function used to collect
@@ -55,17 +51,10 @@ import java.util.Set;
  * @see org.apache.geode.management.internal.cli.domain.DiskStoreDetails
  * @since GemFire 7.0
  */
-public class DescribeDiskStoreFunction extends FunctionAdapter implements 
InternalEntity {
+public class DescribeDiskStoreFunction implements InternalEntity, Function {
 
   private static final Logger logger = LogService.getLogger();
 
-  private static final Set<DataPolicy> PERSISTENT_DATA_POLICIES = new 
HashSet<>(2);
-
-  static {
-    PERSISTENT_DATA_POLICIES.add(DataPolicy.PERSISTENT_PARTITION);
-    PERSISTENT_DATA_POLICIES.add(DataPolicy.PERSISTENT_REPLICATE);
-  }
-
   protected static void assertState(final boolean condition, final String 
message,
       final Object... args) {
     if (!condition) {
@@ -73,61 +62,46 @@ public class DescribeDiskStoreFunction extends 
FunctionAdapter implements Intern
     }
   }
 
-  protected Cache getCache() {
-    return CacheFactory.getAnyInstance();
-  }
-
-  public String getId() {
-    return getClass().getName();
-  }
-
-  @SuppressWarnings("unused")
-  public void init(final Properties props) {}
-
   public void execute(final FunctionContext context) {
-    Cache cache = getCache();
+    InternalCache cache = (InternalCache) context.getCache();
 
     try {
-      if (cache instanceof InternalCache) {
-        InternalCache gemfireCache = (InternalCache) cache;
-
-        DistributedMember member = gemfireCache.getMyId();
-
-        String diskStoreName = (String) context.getArguments();
-        String memberId = member.getId();
-        String memberName = member.getName();
-
-        DiskStore diskStore = gemfireCache.findDiskStore(diskStoreName);
-
-        if (diskStore != null) {
-          DiskStoreDetails diskStoreDetails = new 
DiskStoreDetails(diskStore.getDiskStoreUUID(),
-              diskStore.getName(), memberId, memberName);
-
-          
diskStoreDetails.setAllowForceCompaction(diskStore.getAllowForceCompaction());
-          diskStoreDetails.setAutoCompact(diskStore.getAutoCompact());
-          
diskStoreDetails.setCompactionThreshold(diskStore.getCompactionThreshold());
-          diskStoreDetails.setMaxOplogSize(diskStore.getMaxOplogSize());
-          diskStoreDetails.setQueueSize(diskStore.getQueueSize());
-          diskStoreDetails.setTimeInterval(diskStore.getTimeInterval());
-          diskStoreDetails.setWriteBufferSize(diskStore.getWriteBufferSize());
-          
diskStoreDetails.setDiskUsageWarningPercentage(diskStore.getDiskUsageWarningPercentage());
-          diskStoreDetails
-              
.setDiskUsageCriticalPercentage(diskStore.getDiskUsageCriticalPercentage());
-
-          setDiskDirDetails(diskStore, diskStoreDetails);
-          setRegionDetails(gemfireCache, diskStore, diskStoreDetails);
-          setCacheServerDetails(gemfireCache, diskStore, diskStoreDetails);
-          setGatewayDetails(gemfireCache, diskStore, diskStoreDetails);
-          setPdxSerializationDetails(gemfireCache, diskStore, 
diskStoreDetails);
-          setAsyncEventQueueDetails(gemfireCache, diskStore, diskStoreDetails);
-
-          context.getResultSender().lastResult(diskStoreDetails);
-        } else {
-          context.getResultSender()
-              .sendException(new DiskStoreNotFoundException(
-                  String.format("A disk store with name (%1$s) was not found 
on member (%2$s).",
-                      diskStoreName, memberName)));
-        }
+      DistributedMember member = cache.getMyId();
+
+      String diskStoreName = (String) context.getArguments();
+      String memberId = member.getId();
+      String memberName = member.getName();
+
+      DiskStore diskStore = cache.findDiskStore(diskStoreName);
+
+      if (diskStore != null) {
+        DiskStoreDetails diskStoreDetails = new 
DiskStoreDetails(diskStore.getDiskStoreUUID(),
+            diskStore.getName(), memberId, memberName);
+
+        
diskStoreDetails.setAllowForceCompaction(diskStore.getAllowForceCompaction());
+        diskStoreDetails.setAutoCompact(diskStore.getAutoCompact());
+        
diskStoreDetails.setCompactionThreshold(diskStore.getCompactionThreshold());
+        diskStoreDetails.setMaxOplogSize(diskStore.getMaxOplogSize());
+        diskStoreDetails.setQueueSize(diskStore.getQueueSize());
+        diskStoreDetails.setTimeInterval(diskStore.getTimeInterval());
+        diskStoreDetails.setWriteBufferSize(diskStore.getWriteBufferSize());
+        
diskStoreDetails.setDiskUsageWarningPercentage(diskStore.getDiskUsageWarningPercentage());
+        diskStoreDetails
+            
.setDiskUsageCriticalPercentage(diskStore.getDiskUsageCriticalPercentage());
+
+        setDiskDirDetails(diskStore, diskStoreDetails);
+        setRegionDetails(cache, diskStore, diskStoreDetails);
+        setCacheServerDetails(cache, diskStore, diskStoreDetails);
+        setGatewayDetails(cache, diskStore, diskStoreDetails);
+        setPdxSerializationDetails(cache, diskStore, diskStoreDetails);
+        setAsyncEventQueueDetails(cache, diskStore, diskStoreDetails);
+
+        context.getResultSender().lastResult(diskStoreDetails);
+      } else {
+        context.getResultSender()
+            .sendException(new DiskStoreNotFoundException(
+                String.format("A disk store with name (%1$s) was not found on 
member (%2$s).",
+                    diskStoreName, memberName)));
       }
     } catch (Exception e) {
       logger.error("Error occurred while executing 'describe disk-store': 
{}!", e.getMessage(), e);

http://git-wip-us.apache.org/repos/asf/geode/blob/c3c639df/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/DestroyDiskStoreFunction.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/DestroyDiskStoreFunction.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/DestroyDiskStoreFunction.java
index c25a534..9dd3a7d 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/DestroyDiskStoreFunction.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/DestroyDiskStoreFunction.java
@@ -18,9 +18,8 @@ import org.apache.logging.log4j.Logger;
 
 import org.apache.geode.SystemFailure;
 import org.apache.geode.cache.CacheClosedException;
-import org.apache.geode.cache.CacheFactory;
 import org.apache.geode.cache.DiskStore;
-import org.apache.geode.cache.execute.FunctionAdapter;
+import org.apache.geode.cache.execute.Function;
 import org.apache.geode.cache.execute.FunctionContext;
 import org.apache.geode.distributed.DistributedMember;
 import org.apache.geode.internal.InternalEntity;
@@ -34,14 +33,11 @@ import 
org.apache.geode.management.internal.configuration.domain.XmlEntity;
  * 
  * @since GemFire 8.0
  */
-public class DestroyDiskStoreFunction extends FunctionAdapter implements 
InternalEntity {
-  private static final Logger logger = LogService.getLogger();
+public class DestroyDiskStoreFunction implements InternalEntity, Function {
 
   private static final long serialVersionUID = 1L;
 
-  private InternalCache getCache() {
-    return (InternalCache) CacheFactory.getAnyInstance();
-  }
+  private static final Logger logger = LogService.getLogger();
 
   @Override
   public void execute(FunctionContext context) {
@@ -52,7 +48,7 @@ public class DestroyDiskStoreFunction extends FunctionAdapter 
implements Interna
       final Object[] args = (Object[]) context.getArguments();
       final String diskStoreName = (String) args[0];
 
-      InternalCache cache = getCache();
+      InternalCache cache = (InternalCache) context.getCache();
 
       DistributedMember member = 
cache.getDistributedSystem().getDistributedMember();
 
@@ -95,8 +91,4 @@ public class DestroyDiskStoreFunction extends FunctionAdapter 
implements Interna
     }
   }
 
-  @Override
-  public String getId() {
-    return CreateDiskStoreFunction.class.getName();
-  }
 }

http://git-wip-us.apache.org/repos/asf/geode/blob/c3c639df/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/DestroyIndexFunction.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/DestroyIndexFunction.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/DestroyIndexFunction.java
index 24322bc..be8bcd5 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/DestroyIndexFunction.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/DestroyIndexFunction.java
@@ -18,9 +18,8 @@ import java.util.List;
 
 import org.apache.geode.cache.Cache;
 import org.apache.geode.cache.CacheClosedException;
-import org.apache.geode.cache.CacheFactory;
 import org.apache.geode.cache.Region;
-import org.apache.geode.cache.execute.FunctionAdapter;
+import org.apache.geode.cache.execute.Function;
 import org.apache.geode.cache.execute.FunctionContext;
 import org.apache.geode.cache.query.Index;
 import org.apache.geode.cache.query.QueryService;
@@ -30,9 +29,7 @@ import 
org.apache.geode.management.internal.cli.domain.IndexInfo;
 import org.apache.geode.management.internal.cli.i18n.CliStrings;
 import org.apache.geode.management.internal.configuration.domain.XmlEntity;
 
-
-
-public class DestroyIndexFunction extends FunctionAdapter implements 
InternalEntity {
+public class DestroyIndexFunction implements InternalEntity, Function {
 
   private static final long serialVersionUID = 1L;
 
@@ -42,7 +39,7 @@ public class DestroyIndexFunction extends FunctionAdapter 
implements InternalEnt
     String memberId = null;
 
     try {
-      Cache cache = CacheFactory.getAnyInstance();
+      Cache cache = context.getCache();
       memberId = cache.getDistributedSystem().getDistributedMember().getId();
       QueryService queryService = cache.getQueryService();
       String indexName = indexInfo.getIndexName();
@@ -94,10 +91,7 @@ public class DestroyIndexFunction extends FunctionAdapter 
implements InternalEnt
     }
   }
 
-  /***
-   * 
-   * @param name
-   * @param queryService
+  /**
    * @return true if the index was found and removed/false if the index was 
not found.
    */
   private boolean removeIndexByName(String name, QueryService queryService) {
@@ -115,9 +109,4 @@ public class DestroyIndexFunction extends FunctionAdapter 
implements InternalEnt
     return removed;
   }
 
-  @Override
-  public String getId() {
-    return DestroyIndexFunction.class.getName();
-  }
-
 }

http://git-wip-us.apache.org/repos/asf/geode/blob/c3c639df/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ExportConfigFunction.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ExportConfigFunction.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ExportConfigFunction.java
index 49e27b0..8da4141 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ExportConfigFunction.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ExportConfigFunction.java
@@ -23,7 +23,6 @@ import org.apache.logging.log4j.Logger;
 import org.apache.geode.SystemFailure;
 import org.apache.geode.cache.Cache;
 import org.apache.geode.cache.CacheClosedException;
-import org.apache.geode.cache.CacheFactory;
 import org.apache.geode.cache.execute.Function;
 import org.apache.geode.cache.execute.FunctionContext;
 import org.apache.geode.distributed.DistributedMember;
@@ -35,19 +34,18 @@ import 
org.apache.geode.internal.cache.xmlcache.CacheXmlGenerator;
 import org.apache.geode.internal.logging.LogService;
 
 public class ExportConfigFunction implements Function, InternalEntity {
-  private static final Logger logger = LogService.getLogger();
-
-  public static final String ID = ExportConfigFunction.class.getName();
 
   private static final long serialVersionUID = 1L;
 
+  private static final Logger logger = LogService.getLogger();
+
   @Override
   public void execute(FunctionContext context) {
     // Declared here so that it's available when returning a Throwable
     String memberId = "";
 
     try {
-      Cache cache = CacheFactory.getAnyInstance();
+      Cache cache = context.getCache();
       DistributedMember member = 
cache.getDistributedSystem().getDistributedMember();
 
       memberId = member.getId();
@@ -116,11 +114,6 @@ public class ExportConfigFunction implements Function, 
InternalEntity {
   }
 
   @Override
-  public String getId() {
-    return ID;
-  }
-
-  @Override
   public boolean hasResult() {
     return true;
   }
@@ -134,4 +127,5 @@ public class ExportConfigFunction implements Function, 
InternalEntity {
   public boolean isHA() {
     return false;
   }
+
 }

http://git-wip-us.apache.org/repos/asf/geode/blob/c3c639df/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ExportDataFunction.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ExportDataFunction.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ExportDataFunction.java
index 537678f..23a648e 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ExportDataFunction.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ExportDataFunction.java
@@ -17,26 +17,20 @@ package org.apache.geode.management.internal.cli.functions;
 import java.io.File;
 
 import org.apache.geode.cache.Cache;
-import org.apache.geode.cache.CacheFactory;
 import org.apache.geode.cache.Region;
-import org.apache.geode.cache.execute.FunctionAdapter;
+import org.apache.geode.cache.execute.Function;
 import org.apache.geode.cache.execute.FunctionContext;
 import org.apache.geode.cache.snapshot.RegionSnapshotService;
 import org.apache.geode.cache.snapshot.SnapshotOptions.SnapshotFormat;
 import org.apache.geode.internal.InternalEntity;
 import org.apache.geode.management.internal.cli.i18n.CliStrings;
 
-/***
+/**
  * Function which carries out the export of a region to a file on a member. 
Uses the
  * RegionSnapshotService to export the data
- * 
- *
  */
-public class ExportDataFunction extends FunctionAdapter implements 
InternalEntity {
+public class ExportDataFunction implements InternalEntity, Function {
 
-  /**
-   * 
-   */
   private static final long serialVersionUID = 1L;
 
   public void execute(FunctionContext context) {
@@ -45,7 +39,7 @@ public class ExportDataFunction extends FunctionAdapter 
implements InternalEntit
     final String fileName = args[1];
 
     try {
-      Cache cache = CacheFactory.getAnyInstance();
+      Cache cache = context.getCache();
       Region<?, ?> region = cache.getRegion(regionName);
       String hostName = 
cache.getDistributedSystem().getDistributedMember().getHost();
       if (region != null) {
@@ -65,8 +59,4 @@ public class ExportDataFunction extends FunctionAdapter 
implements InternalEntit
     }
   }
 
-  public String getId() {
-    return ExportDataFunction.class.getName();
-  }
-
 }

http://git-wip-us.apache.org/repos/asf/geode/blob/c3c639df/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ExportLogsFunction.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ExportLogsFunction.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ExportLogsFunction.java
index b2a7e7e..d88c217 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ExportLogsFunction.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ExportLogsFunction.java
@@ -20,10 +20,7 @@ import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.Serializable;
 import java.nio.file.Path;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
-import java.time.ZoneId;
 import java.util.Arrays;
 
 import org.apache.commons.lang.StringUtils;
@@ -38,7 +35,6 @@ import org.apache.geode.cache.execute.Function;
 import org.apache.geode.cache.execute.FunctionContext;
 import org.apache.geode.distributed.internal.DistributionConfig;
 import org.apache.geode.internal.InternalEntity;
-import org.apache.geode.internal.cache.GemFireCacheImpl;
 import org.apache.geode.internal.cache.InternalCache;
 import org.apache.geode.internal.cache.InternalRegionArguments;
 import org.apache.geode.internal.logging.LogService;
@@ -47,21 +43,25 @@ import 
org.apache.geode.management.internal.cli.commands.ExportLogsCommand;
 import org.apache.geode.management.internal.cli.util.ExportLogsCacheWriter;
 import org.apache.geode.management.internal.cli.util.LogExporter;
 import org.apache.geode.management.internal.cli.util.LogFilter;
+import org.apache.geode.management.internal.cli.util.TimeParser;
 import org.apache.geode.management.internal.configuration.domain.Configuration;
 
 /**
- * this function extracts the logs using a LogExporter which creates a zip 
file, and then writes the
+ * Extracts the logs using a LogExporter which creates a zip file, and then 
writes the
  * zip file bytes into a replicated region, this in effect, "stream" the zip 
file bytes to the
  * locator
  *
+ * <p>
  * The function only extracts .log and .gfs files under server's working 
directory
  */
 public class ExportLogsFunction implements Function, InternalEntity {
+
+  private static final long serialVersionUID = 1L;
+
   private static final Logger logger = LogService.getLogger();
 
   public static final String EXPORT_LOGS_REGION = "__exportLogsRegion";
 
-  private static final long serialVersionUID = 1L;
   private static final int BUFFER_SIZE = 1024;
 
   @Override
@@ -155,6 +155,7 @@ public class ExportLogsFunction implements Function, 
InternalEntity {
   }
 
   public static class Args implements Serializable {
+
     private LocalDateTime startTime;
     private LocalDateTime endTime;
     private Level logLevel;
@@ -164,8 +165,8 @@ public class ExportLogsFunction implements Function, 
InternalEntity {
 
     public Args(String startTime, String endTime, String logLevel, boolean 
logLevelOnly,
         boolean logsOnly, boolean statsOnly) {
-      this.startTime = parseTime(startTime);
-      this.endTime = parseTime(endTime);
+      this.startTime = TimeParser.parseTime(startTime);
+      this.endTime = TimeParser.parseTime(endTime);
 
       if (StringUtils.isBlank(logLevel)) {
         this.logLevel = 
LogLevel.getLevel(ExportLogsCommand.DEFAULT_EXPORT_LOG_LEVEL);
@@ -203,21 +204,4 @@ public class ExportLogsFunction implements Function, 
InternalEntity {
     }
   }
 
-  public static LocalDateTime parseTime(String dateString) {
-    if (dateString == null) {
-      return null;
-    }
-
-    try {
-      SimpleDateFormat df = new SimpleDateFormat(ExportLogsCommand.FORMAT);
-      return 
df.parse(dateString).toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
-    } catch (ParseException e) {
-      try {
-        SimpleDateFormat df = new 
SimpleDateFormat(ExportLogsCommand.ONLY_DATE_FORMAT);
-        return 
df.parse(dateString).toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
-      } catch (ParseException e1) {
-        return null;
-      }
-    }
-  }
 }

http://git-wip-us.apache.org/repos/asf/geode/blob/c3c639df/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/FetchRegionAttributesFunction.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/FetchRegionAttributesFunction.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/FetchRegionAttributesFunction.java
index 1173568..8e44ce3 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/FetchRegionAttributesFunction.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/FetchRegionAttributesFunction.java
@@ -20,29 +20,24 @@ import org.apache.logging.log4j.Logger;
 
 import org.apache.geode.cache.AttributesFactory;
 import org.apache.geode.cache.Cache;
-import org.apache.geode.cache.CacheFactory;
 import org.apache.geode.cache.CacheListener;
 import org.apache.geode.cache.CacheLoader;
 import org.apache.geode.cache.CacheWriter;
 import org.apache.geode.cache.Region;
 import org.apache.geode.cache.RegionAttributes;
-import org.apache.geode.cache.execute.FunctionAdapter;
+import org.apache.geode.cache.execute.Function;
 import org.apache.geode.cache.execute.FunctionContext;
 import org.apache.geode.internal.logging.LogService;
 import org.apache.geode.management.internal.cli.i18n.CliStrings;
 
 /**
- * 
  * @since GemFire 7.0
  */
-public class FetchRegionAttributesFunction extends FunctionAdapter {
-  private static final Logger logger = LogService.getLogger();
+public class FetchRegionAttributesFunction implements Function {
 
   private static final long serialVersionUID = 4366812590788342070L;
 
-  private static final String ID = 
FetchRegionAttributesFunction.class.getName();
-
-  public static FetchRegionAttributesFunction INSTANCE = new 
FetchRegionAttributesFunction();
+  private static final Logger logger = LogService.getLogger();
 
   @Override
   public boolean isHA() {
@@ -57,7 +52,7 @@ public class FetchRegionAttributesFunction extends 
FunctionAdapter {
         throw new IllegalArgumentException(
             CliStrings.CREATE_REGION__MSG__SPECIFY_VALID_REGION_PATH);
       }
-      FetchRegionAttributesFunctionResult<?, ?> result = 
getRegionAttributes(regionPath);
+      FetchRegionAttributesFunctionResult<?, ?> result = 
getRegionAttributes(context.getCache(), regionPath);
       context.getResultSender().lastResult(result);
     } catch (IllegalArgumentException e) {
       if (logger.isDebugEnabled()) {
@@ -67,10 +62,8 @@ public class FetchRegionAttributesFunction extends 
FunctionAdapter {
     }
   }
 
-  @SuppressWarnings("deprecation")
   public static <K, V> FetchRegionAttributesFunctionResult<K, V> 
getRegionAttributes(
-      String regionPath) {
-    Cache cache = CacheFactory.getAnyInstance();
+      Cache cache, String regionPath) {
     Region<K, V> foundRegion = cache.getRegion(regionPath);
 
     if (foundRegion == null) {
@@ -87,12 +80,8 @@ public class FetchRegionAttributesFunction extends 
FunctionAdapter {
     return result;
   }
 
-  @Override
-  public String getId() {
-    return ID;
-  }
-
   public static class FetchRegionAttributesFunctionResult<K, V> implements 
Serializable {
+
     private static final long serialVersionUID = -3970828263897978845L;
 
     private RegionAttributes<K, V> regionAttributes;
@@ -143,4 +132,5 @@ public class FetchRegionAttributesFunction extends 
FunctionAdapter {
       return cacheWriterClass;
     }
   }
+
 }

http://git-wip-us.apache.org/repos/asf/geode/blob/c3c639df/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/FetchSharedConfigurationStatusFunction.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/FetchSharedConfigurationStatusFunction.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/FetchSharedConfigurationStatusFunction.java
index c688d7a..06538ab 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/FetchSharedConfigurationStatusFunction.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/FetchSharedConfigurationStatusFunction.java
@@ -15,24 +15,23 @@
 package org.apache.geode.management.internal.cli.functions;
 
 import org.apache.commons.lang.StringUtils;
-import org.apache.geode.cache.execute.FunctionAdapter;
+
+import org.apache.geode.cache.Cache;
+import org.apache.geode.cache.execute.Function;
 import org.apache.geode.cache.execute.FunctionContext;
 import org.apache.geode.distributed.DistributedMember;
 import org.apache.geode.distributed.internal.InternalLocator;
 import org.apache.geode.internal.InternalEntity;
-import org.apache.geode.internal.cache.GemFireCacheImpl;
-import org.apache.geode.internal.cache.InternalCache;
 import 
org.apache.geode.management.internal.configuration.domain.SharedConfigurationStatus;
 
-public class FetchSharedConfigurationStatusFunction extends FunctionAdapter
-    implements InternalEntity {
+public class FetchSharedConfigurationStatusFunction implements InternalEntity, 
Function {
 
   private static final long serialVersionUID = 1L;
 
   @Override
   public void execute(FunctionContext context) {
     InternalLocator locator = InternalLocator.getLocator();
-    InternalCache cache = GemFireCacheImpl.getInstance();
+    Cache cache = context.getCache();
     DistributedMember member = 
cache.getDistributedSystem().getDistributedMember();
     SharedConfigurationStatus status = 
locator.getSharedConfigurationStatus().getStatus();
 
@@ -45,9 +44,4 @@ public class FetchSharedConfigurationStatusFunction extends 
FunctionAdapter
     context.getResultSender().lastResult(result);
   }
 
-  @Override
-  public String getId() {
-    return FetchSharedConfigurationStatusFunction.class.getName();
-  }
-
 }

http://git-wip-us.apache.org/repos/asf/geode/blob/c3c639df/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GarbageCollectionFunction.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GarbageCollectionFunction.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GarbageCollectionFunction.java
index 46588eb..1d5f420 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GarbageCollectionFunction.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GarbageCollectionFunction.java
@@ -16,8 +16,8 @@ package org.apache.geode.management.internal.cli.functions;
 
 import java.util.HashMap;
 import java.util.Map;
+
 import org.apache.geode.cache.Cache;
-import org.apache.geode.cache.CacheFactory;
 import org.apache.geode.cache.execute.Function;
 import org.apache.geode.cache.execute.FunctionContext;
 import org.apache.geode.distributed.DistributedMember;
@@ -26,14 +26,9 @@ import org.apache.geode.management.internal.cli.CliUtil;
 import org.apache.geode.management.internal.cli.util.BytesToString;
 
 /**
- * 
  * Class for Garbage collection function
- * 
- * 
- * 
  */
 public class GarbageCollectionFunction implements Function, InternalEntity {
-  public static final String ID = GarbageCollectionFunction.class.getName();
 
   private static final long serialVersionUID = 1L;
 
@@ -43,7 +38,7 @@ public class GarbageCollectionFunction implements Function, 
InternalEntity {
 
     Map<String, String> resultMap = null;
     try {
-      Cache cache = CacheFactory.getAnyInstance();
+      Cache cache = context.getCache();
       DistributedMember member = 
cache.getDistributedSystem().getDistributedMember();
       long freeMemoryBeforeGC = Runtime.getRuntime().freeMemory();
       long totalMemoryBeforeGC = Runtime.getRuntime().totalMemory();
@@ -68,14 +63,10 @@ public class GarbageCollectionFunction implements Function, 
InternalEntity {
   }
 
   @Override
-  public String getId() {
-    return GarbageCollectionFunction.ID;
-  }
-
-  @Override
   public boolean isHA() {
     return false;
   }
+
 }
 
 

http://git-wip-us.apache.org/repos/asf/geode/blob/c3c639df/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GatewayReceiverCreateFunction.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GatewayReceiverCreateFunction.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GatewayReceiverCreateFunction.java
index a7dc7ea..2bf8de5 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GatewayReceiverCreateFunction.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GatewayReceiverCreateFunction.java
@@ -20,8 +20,7 @@ import java.util.Map;
 import org.apache.logging.log4j.Logger;
 
 import org.apache.geode.cache.Cache;
-import org.apache.geode.cache.CacheFactory;
-import org.apache.geode.cache.execute.FunctionAdapter;
+import org.apache.geode.cache.execute.Function;
 import org.apache.geode.cache.execute.FunctionContext;
 import org.apache.geode.cache.execute.ResultSender;
 import org.apache.geode.cache.wan.GatewayReceiver;
@@ -38,21 +37,17 @@ import 
org.apache.geode.management.internal.configuration.domain.XmlEntity;
 /**
  * The function to a create GatewayReceiver using given configuration 
parameters.
  */
-public class GatewayReceiverCreateFunction extends FunctionAdapter implements 
InternalEntity {
-
-  private static final Logger logger = LogService.getLogger();
+public class GatewayReceiverCreateFunction implements InternalEntity, Function 
{
 
   private static final long serialVersionUID = 8746830191680509335L;
 
-  private static final String ID = 
GatewayReceiverCreateFunction.class.getName();
-
-  public static GatewayReceiverCreateFunction INSTANCE = new 
GatewayReceiverCreateFunction();
+  private static final Logger logger = LogService.getLogger();
 
   @Override
   public void execute(FunctionContext context) {
     ResultSender<Object> resultSender = context.getResultSender();
 
-    Cache cache = CacheFactory.getAnyInstance();
+    Cache cache = context.getCache();
     String memberNameOrId =
         
CliUtil.getMemberNameOrId(cache.getDistributedSystem().getDistributedMember());
 
@@ -80,7 +75,6 @@ public class GatewayReceiverCreateFunction extends 
FunctionAdapter implements In
               
CliStrings.CREATE_GATEWAYRECEIVER__MSG__GATEWAYRECEIVER_CREATED_ON_0_ONPORT_1,
               new Object[] {memberNameOrId, 
createdGatewayReceiver.getPort()})));
 
-
     } catch (IllegalStateException e) {
       resultSender.lastResult(handleException(memberNameOrId, e.getMessage(), 
e));
     } catch (Exception e) {
@@ -90,7 +84,6 @@ public class GatewayReceiverCreateFunction extends 
FunctionAdapter implements In
       }
       resultSender.lastResult(handleException(memberNameOrId, exceptionMsg, 
e));
     }
-
   }
 
   private CliFunctionResult handleException(final String memberNameOrId, final 
String exceptionMsg,
@@ -107,10 +100,6 @@ public class GatewayReceiverCreateFunction extends 
FunctionAdapter implements In
 
   /**
    * GatewayReceiver creation happens here.
-   * 
-   * @param cache
-   * @param gatewayReceiverCreateArgs
-   * @return GatewayReceiver
    */
   private static GatewayReceiver createGatewayReceiver(Cache cache,
       GatewayReceiverFunctionArgs gatewayReceiverCreateArgs) {
@@ -160,7 +149,6 @@ public class GatewayReceiverCreateFunction extends 
FunctionAdapter implements In
     return gatewayReceiverFactory.create();
   }
 
-  @SuppressWarnings("unchecked")
   private static Class forName(String classToLoadName, String neededFor) {
     Class loadedClass = null;
     try {
@@ -199,9 +187,4 @@ public class GatewayReceiverCreateFunction extends 
FunctionAdapter implements In
     return instance;
   }
 
-  @Override
-  public String getId() {
-    return ID;
-  }
-
 }

http://git-wip-us.apache.org/repos/asf/geode/blob/c3c639df/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GatewayReceiverFunctionArgs.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GatewayReceiverFunctionArgs.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GatewayReceiverFunctionArgs.java
index 2084af9..c190f45 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GatewayReceiverFunctionArgs.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GatewayReceiverFunctionArgs.java
@@ -20,20 +20,15 @@ import java.io.Serializable;
  * This class stores the arguments provided in the create gateway-receiver 
command.
  */
 public class GatewayReceiverFunctionArgs implements Serializable {
+
   private static final long serialVersionUID = -5158224572470173267L;
 
   private final Boolean manualStart;
-
   private final Integer startPort;
-
   private final Integer endPort;
-
   private final String bindAddress;
-
   private final Integer socketBufferSize;
-
   private final Integer maximumTimeBetweenPings;
-
   private final String[] gatewayTransportFilters;
 
   public GatewayReceiverFunctionArgs(Boolean manualStart, Integer startPort, 
Integer endPort,
@@ -75,4 +70,5 @@ public class GatewayReceiverFunctionArgs implements 
Serializable {
   public String[] getGatewayTransportFilters() {
     return this.gatewayTransportFilters;
   }
+
 }

http://git-wip-us.apache.org/repos/asf/geode/blob/c3c639df/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GatewaySenderCreateFunction.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GatewaySenderCreateFunction.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GatewaySenderCreateFunction.java
index 33bffd8..d86d89e 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GatewaySenderCreateFunction.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GatewaySenderCreateFunction.java
@@ -17,8 +17,7 @@ package org.apache.geode.management.internal.cli.functions;
 import org.apache.logging.log4j.Logger;
 
 import org.apache.geode.cache.Cache;
-import org.apache.geode.cache.CacheFactory;
-import org.apache.geode.cache.execute.FunctionAdapter;
+import org.apache.geode.cache.execute.Function;
 import org.apache.geode.cache.execute.FunctionContext;
 import org.apache.geode.cache.execute.ResultSender;
 import org.apache.geode.cache.wan.GatewayEventFilter;
@@ -35,22 +34,17 @@ import org.apache.geode.management.internal.cli.CliUtil;
 import org.apache.geode.management.internal.cli.i18n.CliStrings;
 import org.apache.geode.management.internal.configuration.domain.XmlEntity;
 
-public class GatewaySenderCreateFunction extends FunctionAdapter implements 
InternalEntity {
-
-  private static final Logger logger = LogService.getLogger();
+public class GatewaySenderCreateFunction implements InternalEntity, Function {
 
   private static final long serialVersionUID = 8746830191680509335L;
 
-  private static final String ID = GatewaySenderCreateFunction.class.getName();
-
-  public static GatewaySenderCreateFunction INSTANCE = new 
GatewaySenderCreateFunction();
-
+  private static final Logger logger = LogService.getLogger();
 
   @Override
   public void execute(FunctionContext context) {
     ResultSender<Object> resultSender = context.getResultSender();
 
-    Cache cache = CacheFactory.getAnyInstance();
+    Cache cache = context.getCache();
     String memberNameOrId =
         
CliUtil.getMemberNameOrId(cache.getDistributedSystem().getDistributedMember());
 
@@ -89,10 +83,6 @@ public class GatewaySenderCreateFunction extends 
FunctionAdapter implements Inte
 
   /**
    * Creates the GatewaySender with given configuration.
-   * 
-   * @param cache
-   * @param gatewaySenderCreateArgs
-   * @return GatewaySender
    */
   private static GatewaySender createGatewaySender(Cache cache,
       GatewaySenderFunctionArgs gatewaySenderCreateArgs) {
@@ -189,7 +179,6 @@ public class GatewaySenderCreateFunction extends 
FunctionAdapter implements Inte
         gatewaySenderCreateArgs.getRemoteDistributedSystemId());
   }
 
-  @SuppressWarnings("unchecked")
   private static Class forName(String classToLoadName, String neededFor) {
     Class loadedClass = null;
     try {
@@ -228,9 +217,4 @@ public class GatewaySenderCreateFunction extends 
FunctionAdapter implements Inte
     return instance;
   }
 
-  @Override
-  public String getId() {
-    return ID;
-  }
-
 }

http://git-wip-us.apache.org/repos/asf/geode/blob/c3c639df/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GatewaySenderDestroyFunction.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GatewaySenderDestroyFunction.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GatewaySenderDestroyFunction.java
index 2873633..ec93eef 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GatewaySenderDestroyFunction.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GatewaySenderDestroyFunction.java
@@ -14,9 +14,10 @@
  */
 package org.apache.geode.management.internal.cli.functions;
 
+import org.apache.logging.log4j.Logger;
+
 import org.apache.geode.cache.Cache;
-import org.apache.geode.cache.CacheFactory;
-import org.apache.geode.cache.execute.FunctionAdapter;
+import org.apache.geode.cache.execute.Function;
 import org.apache.geode.cache.execute.FunctionContext;
 import org.apache.geode.cache.execute.ResultSender;
 import org.apache.geode.cache.wan.GatewaySender;
@@ -25,20 +26,18 @@ import 
org.apache.geode.internal.cache.wan.GatewaySenderException;
 import org.apache.geode.internal.logging.LogService;
 import org.apache.geode.management.internal.cli.CliUtil;
 import org.apache.geode.management.internal.cli.i18n.CliStrings;
-import org.apache.logging.log4j.Logger;
 
-public class GatewaySenderDestroyFunction extends FunctionAdapter implements 
InternalEntity {
+public class GatewaySenderDestroyFunction implements InternalEntity, Function {
+
   private static final long serialVersionUID = 1L;
 
   private static final Logger logger = LogService.getLogger();
-  private static final String ID = 
GatewaySenderDestroyFunction.class.getName();
-  public static GatewaySenderDestroyFunction INSTANCE = new 
GatewaySenderDestroyFunction();
 
   @Override
   public void execute(FunctionContext context) {
     ResultSender<Object> resultSender = context.getResultSender();
 
-    Cache cache = CacheFactory.getAnyInstance();
+    Cache cache = context.getCache();
     String memberNameOrId =
         
CliUtil.getMemberNameOrId(cache.getDistributedSystem().getDistributedMember());
 
@@ -82,9 +81,4 @@ public class GatewaySenderDestroyFunction extends 
FunctionAdapter implements Int
     return new CliFunctionResult(memberNameOrId);
   }
 
-  @Override
-  public String getId() {
-    return ID;
-  }
-
 }

http://git-wip-us.apache.org/repos/asf/geode/blob/c3c639df/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GatewaySenderDestroyFunctionArgs.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GatewaySenderDestroyFunctionArgs.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GatewaySenderDestroyFunctionArgs.java
index cf3fa24..7e34e61 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GatewaySenderDestroyFunctionArgs.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GatewaySenderDestroyFunctionArgs.java
@@ -19,8 +19,8 @@ import java.io.Serializable;
 public class GatewaySenderDestroyFunctionArgs implements Serializable {
 
   private static final long serialVersionUID = 3848480256348119530L;
-  private String id;
 
+  private final String id;
 
   public GatewaySenderDestroyFunctionArgs(String id) {
     this.id = id;
@@ -29,5 +29,6 @@ public class GatewaySenderDestroyFunctionArgs implements 
Serializable {
   public String getId() {
     return id;
   }
+
 }
 

http://git-wip-us.apache.org/repos/asf/geode/blob/c3c639df/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GatewaySenderFunctionArgs.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GatewaySenderFunctionArgs.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GatewaySenderFunctionArgs.java
index 0e4f635..0e6e011 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GatewaySenderFunctionArgs.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GatewaySenderFunctionArgs.java
@@ -16,8 +16,8 @@ package org.apache.geode.management.internal.cli.functions;
 
 import java.io.Serializable;
 
-
 public class GatewaySenderFunctionArgs implements Serializable {
+
   private static final long serialVersionUID = -5158224572470173267L;
 
   private final String id;
@@ -36,7 +36,8 @@ public class GatewaySenderFunctionArgs implements 
Serializable {
   private final Integer alertThreshold;
   private final Integer dispatcherThreads;
   private final String orderPolicy;
-  // array of fully qualified class names of the filters
+
+  /** array of fully qualified class names of the filters */
   private final String[] gatewayEventFilters;
   private final String[] gatewayTransportFilters;
 
@@ -138,4 +139,5 @@ public class GatewaySenderFunctionArgs implements 
Serializable {
   public String[] getGatewayTransportFilter() {
     return this.gatewayTransportFilters;
   }
+
 }

http://git-wip-us.apache.org/repos/asf/geode/blob/c3c639df/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GetMemberConfigInformationFunction.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GetMemberConfigInformationFunction.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GetMemberConfigInformationFunction.java
index 56ba115..e733aa1 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GetMemberConfigInformationFunction.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GetMemberConfigInformationFunction.java
@@ -14,9 +14,19 @@
  */
 package org.apache.geode.management.internal.cli.functions;
 
+import static 
org.apache.geode.distributed.ConfigurationProperties.SOCKET_BUFFER_SIZE;
+
+import java.lang.management.ManagementFactory;
+import java.lang.management.RuntimeMXBean;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
 import org.apache.geode.cache.Cache;
-import org.apache.geode.cache.CacheFactory;
-import org.apache.geode.cache.execute.FunctionAdapter;
+import org.apache.geode.cache.execute.Function;
 import org.apache.geode.cache.execute.FunctionContext;
 import org.apache.geode.cache.server.CacheServer;
 import org.apache.geode.distributed.internal.DistributionConfig;
@@ -29,30 +39,16 @@ import org.apache.geode.internal.cache.GemFireCacheImpl;
 import org.apache.geode.internal.cache.ha.HARegionQueue;
 import org.apache.geode.management.internal.cli.domain.MemberConfigurationInfo;
 
-import java.lang.management.ManagementFactory;
-import java.lang.management.RuntimeMXBean;
-import java.util.*;
-
-import static org.apache.geode.distributed.ConfigurationProperties.*;
+public class GetMemberConfigInformationFunction implements InternalEntity, 
Function {
 
-/****
- * 
- *
- */
-public class GetMemberConfigInformationFunction extends FunctionAdapter 
implements InternalEntity {
-
-  /**
-   * 
-   */
   private static final long serialVersionUID = 1L;
 
-
   @Override
   public void execute(FunctionContext context) {
     Object argsObject = context.getArguments();
-    boolean hideDefaults = ((Boolean) argsObject).booleanValue();
+    boolean hideDefaults = (Boolean) argsObject;
 
-    Cache cache = CacheFactory.getAnyInstance();
+    Cache cache = context.getCache();
     InternalDistributedSystem system = (InternalDistributedSystem) 
cache.getDistributedSystem();
     DistributionConfig config = system.getConfig();
 
@@ -70,7 +66,7 @@ public class GetMemberConfigInformationFunction extends 
FunctionAdapter implemen
     
memberConfigInfo.setGfePropsSetFromFile(distConfigImpl.getConfigPropsDefinedUsingFiles());
 
     // CacheAttributes
-    Map<String, String> cacheAttributes = new HashMap<String, String>();
+    Map<String, String> cacheAttributes = new HashMap<>();
 
     cacheAttributes.put("copy-on-read", 
Boolean.toString(cache.getCopyOnRead()));
     cacheAttributes.put("is-server", Boolean.toString(cache.isServer()));
@@ -96,12 +92,12 @@ public class GetMemberConfigInformationFunction extends 
FunctionAdapter implemen
 
     memberConfigInfo.setCacheAttributes(cacheAttributes);
 
-    List<Map<String, String>> cacheServerAttributesList = new 
ArrayList<Map<String, String>>();
+    List<Map<String, String>> cacheServerAttributesList = new ArrayList<>();
     List<CacheServer> cacheServers = cache.getCacheServers();
 
     if (cacheServers != null)
       for (CacheServer cacheServer : cacheServers) {
-        Map<String, String> cacheServerAttributes = new HashMap<String, 
String>();
+        Map<String, String> cacheServerAttributes = new HashMap<>();
 
         cacheServerAttributes.put("bind-address", 
cacheServer.getBindAddress());
         cacheServerAttributes.put("hostname-for-clients", 
cacheServer.getHostnameForClients());
@@ -134,14 +130,14 @@ public class GetMemberConfigInformationFunction extends 
FunctionAdapter implemen
     context.getResultSender().lastResult(memberConfigInfo);
   }
 
-  /****
+  /**
    * Gets the default values for the cache attributes
    * 
    * @return a map containing the cache attributes - default values
    */
   private Map<String, String> getCacheAttributesDefaultValues() {
     String d = CacheConfig.DEFAULT_PDX_DISK_STORE;
-    Map<String, String> cacheAttributesDefault = new HashMap<String, String>();
+    Map<String, String> cacheAttributesDefault = new HashMap<>();
     cacheAttributesDefault.put("pdx-disk-store", "");
     cacheAttributesDefault.put("pdx-read-serialized",
         Boolean.toString(CacheConfig.DEFAULT_PDX_READ_SERIALIZED));
@@ -163,13 +159,13 @@ public class GetMemberConfigInformationFunction extends 
FunctionAdapter implemen
     return cacheAttributesDefault;
   }
 
-  /***
+  /**
    * Gets the default values for the cache attributes
    * 
    * @return a map containing the cache server attributes - default values
    */
   private Map<String, String> getCacheServerAttributesDefaultValues() {
-    Map<String, String> csAttributesDefault = new HashMap<String, String>();
+    Map<String, String> csAttributesDefault = new HashMap<>();
     csAttributesDefault.put("bind-address", CacheServer.DEFAULT_BIND_ADDRESS);
     csAttributesDefault.put("hostname-for-clients", 
CacheServer.DEFAULT_HOSTNAME_FOR_CLIENTS);
     csAttributesDefault.put("max-connections",
@@ -189,46 +185,35 @@ public class GetMemberConfigInformationFunction extends 
FunctionAdapter implemen
     csAttributesDefault.put("load-poll-interval",
         Long.toString(CacheServer.DEFAULT_LOAD_POLL_INTERVAL));
     return csAttributesDefault;
-
   }
 
-  /****
+  /**
    * Removes the default values from the attributesMap based on 
defaultAttributesMap
-   * 
-   * @param attributesMap
-   * @param defaultAttributesMap
    */
   private void removeDefaults(Map<String, String> attributesMap,
       Map<String, String> defaultAttributesMap) {
     // Make a copy to avoid the CME's
-    Set<String> attributesSet = new HashSet<String>(attributesMap.keySet());
-
-    if (attributesSet != null) {
-      for (String attribute : attributesSet) {
-        String attributeValue = attributesMap.get(attribute);
-        String defaultValue = defaultAttributesMap.get(attribute);
-
-        if (attributeValue != null) {
-          if (attributeValue.equals(defaultValue)) {
-            attributesMap.remove(attribute);
-          }
-        } else {
-          if (defaultValue == null || defaultValue.equals("")) {
-            attributesMap.remove(attribute);
-          }
+    Set<String> attributesSet = new HashSet<>(attributesMap.keySet());
+
+    for (String attribute : attributesSet) {
+      String attributeValue = attributesMap.get(attribute);
+      String defaultValue = defaultAttributesMap.get(attribute);
+
+      if (attributeValue != null) {
+        if (attributeValue.equals(defaultValue)) {
+          attributesMap.remove(attribute);
+        }
+      } else {
+        if (defaultValue == null || defaultValue.equals("")) {
+          attributesMap.remove(attribute);
         }
       }
     }
   }
 
-  @Override
-  public String getId() {
-    // TODO Auto-generated method stub
-    return GetMemberConfigInformationFunction.class.toString();
-  }
-
   private List<String> getJvmInputArguments() {
     RuntimeMXBean runtimeBean = ManagementFactory.getRuntimeMXBean();
     return runtimeBean.getInputArguments();
   }
+
 }

http://git-wip-us.apache.org/repos/asf/geode/blob/c3c639df/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GetMemberInformationFunction.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GetMemberInformationFunction.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GetMemberInformationFunction.java
index 70fa68b..ed66bee 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GetMemberInformationFunction.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GetMemberInformationFunction.java
@@ -14,61 +14,49 @@
  */
 package org.apache.geode.management.internal.cli.functions;
 
-import org.apache.geode.cache.Cache;
+import java.lang.management.ManagementFactory;
+import java.lang.management.MemoryMXBean;
+import java.lang.management.MemoryUsage;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
 import org.apache.geode.cache.CacheClosedException;
-import org.apache.geode.cache.CacheFactory;
-import org.apache.geode.cache.execute.FunctionAdapter;
+import org.apache.geode.cache.execute.Function;
 import org.apache.geode.cache.execute.FunctionContext;
 import org.apache.geode.cache.server.CacheServer;
 import org.apache.geode.distributed.internal.DistributionConfig;
 import org.apache.geode.distributed.internal.InternalDistributedSystem;
 import org.apache.geode.internal.InternalEntity;
 import org.apache.geode.internal.cache.CacheClientStatus;
+import org.apache.geode.internal.cache.InternalCache;
 import org.apache.geode.internal.cache.tier.InternalClientMembership;
 import org.apache.geode.internal.cache.tier.sockets.ClientProxyMembershipID;
 import org.apache.geode.management.internal.cli.CliUtil;
 import org.apache.geode.management.internal.cli.domain.CacheServerInfo;
 import org.apache.geode.management.internal.cli.domain.MemberInformation;
 
-import java.lang.management.ManagementFactory;
-import java.lang.management.MemoryMXBean;
-import java.lang.management.MemoryUsage;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-/***
- * 
- * since 7.0
+/**
+ * @since GemFire 7.0
  */
+public class GetMemberInformationFunction implements InternalEntity, Function {
 
-public class GetMemberInformationFunction extends FunctionAdapter implements 
InternalEntity {
-  /**
-   * 
-   */
   private static final long serialVersionUID = 1L;
 
   @Override
-  public String getId() {
-    return GetMemberInformationFunction.class.getName();
-  }
-
-  @Override
-
   public boolean hasResult() {
     return true;
   }
 
   @Override
-
   public boolean isHA() {
     return true;
   }
 
-  @Override
   /**
    * Read only function
    */
+  @Override
   public boolean optimizeForWrite() {
     return false;
   }
@@ -76,13 +64,11 @@ public class GetMemberInformationFunction extends 
FunctionAdapter implements Int
   @Override
   public void execute(FunctionContext functionContext) {
     try {
-      Cache cache = CacheFactory.getAnyInstance();
+      InternalCache cache = (InternalCache) functionContext.getCache();
 
-      /*
-       * TODO: 1) Get the CPU usage%
-       */
+      // TODO: 1) Get the CPU usage%
 
-      InternalDistributedSystem system = (InternalDistributedSystem) 
cache.getDistributedSystem();
+      InternalDistributedSystem system = cache.getInternalDistributedSystem();
       DistributionConfig config = system.getConfig();
       String serverBindAddress = config.getServerBindAddress();
       MemoryMXBean memoryMXBean = ManagementFactory.getMemoryMXBean();
@@ -108,10 +94,7 @@ public class GetMemberInformationFunction extends 
FunctionAdapter implements Int
       // A member is a server only if it has a cacheserver
       if (csList != null) {
         memberInfo.setServer(true);
-        Iterator<CacheServer> iters = csList.iterator();
-        while (iters.hasNext()) {
-          CacheServer cs = iters.next();
-
+        for (CacheServer cs : csList) {
           String bindAddress = cs.getBindAddress();
           int port = cs.getPort();
           boolean isRunning = cs.isRunning();
@@ -133,6 +116,7 @@ public class GetMemberInformationFunction extends 
FunctionAdapter implements Int
         memberInfo.setServer(false);
       }
       functionContext.getResultSender().lastResult(memberInfo);
+
     } catch (CacheClosedException e) {
       functionContext.getResultSender().sendException(e);
     } catch (Exception e) {
@@ -143,4 +127,5 @@ public class GetMemberInformationFunction extends 
FunctionAdapter implements Int
   private long bytesToMeg(long bytes) {
     return bytes / (1024L * 1024L);
   }
+
 }

http://git-wip-us.apache.org/repos/asf/geode/blob/c3c639df/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GetRegionDescriptionFunction.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GetRegionDescriptionFunction.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GetRegionDescriptionFunction.java
index cbf70ac..00145a1 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GetRegionDescriptionFunction.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GetRegionDescriptionFunction.java
@@ -14,18 +14,15 @@
  */
 package org.apache.geode.management.internal.cli.functions;
 
-
 import org.apache.geode.cache.Cache;
 import org.apache.geode.cache.CacheClosedException;
-import org.apache.geode.cache.CacheFactory;
 import org.apache.geode.cache.Region;
-import org.apache.geode.cache.execute.FunctionAdapter;
+import org.apache.geode.cache.execute.Function;
 import org.apache.geode.cache.execute.FunctionContext;
 import org.apache.geode.internal.InternalEntity;
 import 
org.apache.geode.management.internal.cli.domain.RegionDescriptionPerMember;
 
-public class GetRegionDescriptionFunction extends FunctionAdapter implements 
InternalEntity {
-
+public class GetRegionDescriptionFunction implements InternalEntity, Function {
 
   private static final long serialVersionUID = 1L;
 
@@ -33,7 +30,7 @@ public class GetRegionDescriptionFunction extends 
FunctionAdapter implements Int
   public void execute(FunctionContext context) {
     String regionPath = (String) context.getArguments();
     try {
-      Cache cache = CacheFactory.getAnyInstance();
+      Cache cache = context.getCache();
       Region<?, ?> region = cache.getRegion(regionPath);
 
       if (region != null) {
@@ -44,6 +41,7 @@ public class GetRegionDescriptionFunction extends 
FunctionAdapter implements Int
       } else {
         context.getResultSender().lastResult(null);
       }
+
     } catch (CacheClosedException e) {
       context.getResultSender().sendException(e);
     } catch (Exception e) {
@@ -51,10 +49,4 @@ public class GetRegionDescriptionFunction extends 
FunctionAdapter implements Int
     }
   }
 
-  @Override
-  public String getId() {
-    // TODO Auto-generated method stub
-    return GetRegionDescriptionFunction.class.toString();
-  }
-
 }

http://git-wip-us.apache.org/repos/asf/geode/blob/c3c639df/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GetRegionsFunction.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GetRegionsFunction.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GetRegionsFunction.java
index 6571dca..e125ed3 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GetRegionsFunction.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GetRegionsFunction.java
@@ -32,12 +32,6 @@ public class GetRegionsFunction implements Function, 
InternalEntity {
   private static final long serialVersionUID = 1L;
 
   @Override
-  public String getId() {
-    // TODO Auto-generated method stub
-    return GetRegionsFunction.class.toString();
-  }
-
-  @Override
   public void execute(FunctionContext functionContext) {
     try {
       Cache cache = functionContext.getCache();

http://git-wip-us.apache.org/repos/asf/geode/blob/c3c639df/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GetStackTracesFunction.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GetStackTracesFunction.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GetStackTracesFunction.java
index 4e9f9d6..23d8436 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GetStackTracesFunction.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GetStackTracesFunction.java
@@ -14,23 +14,21 @@
  */
 package org.apache.geode.management.internal.cli.functions;
 
-
 import org.apache.geode.cache.Cache;
-import org.apache.geode.cache.CacheFactory;
-import org.apache.geode.cache.execute.FunctionAdapter;
+import org.apache.geode.cache.execute.Function;
 import org.apache.geode.cache.execute.FunctionContext;
 import org.apache.geode.internal.InternalEntity;
 import org.apache.geode.internal.OSProcess;
 import org.apache.geode.management.internal.cli.domain.StackTracesPerMember;
 
-public class GetStackTracesFunction extends FunctionAdapter implements 
InternalEntity {
+public class GetStackTracesFunction implements InternalEntity, Function {
 
   private static final long serialVersionUID = 1L;
 
   @Override
   public void execute(FunctionContext context) {
     try {
-      Cache cache = CacheFactory.getAnyInstance();
+      Cache cache = context.getCache();
       String memberNameOrId = 
cache.getDistributedSystem().getDistributedMember().getName();
 
       if (memberNameOrId == null) {
@@ -39,14 +37,10 @@ public class GetStackTracesFunction extends FunctionAdapter 
implements InternalE
       StackTracesPerMember stackTracePerMember =
           new StackTracesPerMember(memberNameOrId, OSProcess.zipStacks());
       context.getResultSender().lastResult(stackTracePerMember);
+
     } catch (Exception e) {
       context.getResultSender().sendException(e);
     }
   }
 
-  @Override
-  public String getId() {
-    // TODO Auto-generated method stub
-    return GetStackTracesFunction.class.getName();
-  }
 }

http://git-wip-us.apache.org/repos/asf/geode/blob/c3c639df/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GetSubscriptionQueueSizeFunction.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GetSubscriptionQueueSizeFunction.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GetSubscriptionQueueSizeFunction.java
index 70b649c..a39c125 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GetSubscriptionQueueSizeFunction.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GetSubscriptionQueueSizeFunction.java
@@ -15,7 +15,7 @@
 package org.apache.geode.management.internal.cli.functions;
 
 import org.apache.geode.cache.Cache;
-import org.apache.geode.cache.execute.FunctionAdapter;
+import org.apache.geode.cache.execute.Function;
 import org.apache.geode.cache.execute.FunctionContext;
 import org.apache.geode.cache.query.CqQuery;
 import org.apache.geode.cache.query.internal.CqQueryVsdStats;
@@ -28,17 +28,16 @@ import org.apache.geode.management.internal.cli.CliUtil;
 import 
org.apache.geode.management.internal.cli.domain.SubscriptionQueueSizeResult;
 import org.apache.geode.management.internal.cli.i18n.CliStrings;
 
-/***
+/**
  * Function to get subscription-queue-size
- *
  */
-public class GetSubscriptionQueueSizeFunction extends FunctionAdapter 
implements InternalEntity {
+public class GetSubscriptionQueueSizeFunction implements InternalEntity, 
Function {
 
   private static final long serialVersionUID = 1L;
 
   @Override
   public void execute(FunctionContext context) {
-    final Cache cache = CliUtil.getCacheIfExists();
+    final Cache cache = context.getCache();
     final String memberNameOrId =
         
CliUtil.getMemberNameOrId(cache.getDistributedSystem().getDistributedMember());
     String args[] = (String[]) context.getArguments();
@@ -90,6 +89,7 @@ public class GetSubscriptionQueueSizeFunction extends 
FunctionAdapter implements
       } else {
         result.setErrorMessage(CliStrings.NO_CLIENT_FOUND);
       }
+
     } catch (Exception e) {
       result.setExceptionMessage(e.getMessage());
     } finally {
@@ -97,9 +97,4 @@ public class GetSubscriptionQueueSizeFunction extends 
FunctionAdapter implements
     }
   }
 
-  @Override
-  public String getId() {
-    return GetSubscriptionQueueSizeFunction.class.getName();
-  }
-
 }

http://git-wip-us.apache.org/repos/asf/geode/blob/c3c639df/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ImportDataFunction.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ImportDataFunction.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ImportDataFunction.java
index 13949c8..78b6d38 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ImportDataFunction.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ImportDataFunction.java
@@ -17,9 +17,8 @@ package org.apache.geode.management.internal.cli.functions;
 import java.io.File;
 
 import org.apache.geode.cache.Cache;
-import org.apache.geode.cache.CacheFactory;
 import org.apache.geode.cache.Region;
-import org.apache.geode.cache.execute.FunctionAdapter;
+import org.apache.geode.cache.execute.Function;
 import org.apache.geode.cache.execute.FunctionContext;
 import org.apache.geode.cache.snapshot.RegionSnapshotService;
 import org.apache.geode.cache.snapshot.SnapshotOptions;
@@ -27,12 +26,11 @@ import 
org.apache.geode.cache.snapshot.SnapshotOptions.SnapshotFormat;
 import org.apache.geode.internal.InternalEntity;
 import org.apache.geode.management.internal.cli.i18n.CliStrings;
 
-/****
+/**
  * Function which carries out the import of a region to a file on a member. 
Uses the
  * RegionSnapshotService to import the data
- *
  */
-public class ImportDataFunction extends FunctionAdapter implements 
InternalEntity {
+public class ImportDataFunction implements InternalEntity, Function {
 
   private static final long serialVersionUID = 1L;
 
@@ -46,7 +44,7 @@ public class ImportDataFunction extends FunctionAdapter 
implements InternalEntit
     }
 
     try {
-      final Cache cache = CacheFactory.getAnyInstance();
+      final Cache cache = context.getCache();
       final Region<?, ?> region = cache.getRegion(regionName);
       final String hostName = 
cache.getDistributedSystem().getDistributedMember().getHost();
       if (region != null) {
@@ -68,8 +66,4 @@ public class ImportDataFunction extends FunctionAdapter 
implements InternalEntit
     }
   }
 
-  public String getId() {
-    return ImportDataFunction.class.getName();
-  }
-
 }

http://git-wip-us.apache.org/repos/asf/geode/blob/c3c639df/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ListAsyncEventQueuesFunction.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ListAsyncEventQueuesFunction.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ListAsyncEventQueuesFunction.java
index 507e9f8..aacd198 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ListAsyncEventQueuesFunction.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ListAsyncEventQueuesFunction.java
@@ -19,14 +19,12 @@ import java.util.Set;
 
 import org.apache.logging.log4j.Logger;
 
-import org.apache.geode.LogWriter;
 import org.apache.geode.SystemFailure;
 import org.apache.geode.cache.Cache;
 import org.apache.geode.cache.CacheClosedException;
-import org.apache.geode.cache.CacheFactory;
 import org.apache.geode.cache.asyncqueue.AsyncEventListener;
 import org.apache.geode.cache.asyncqueue.AsyncEventQueue;
-import org.apache.geode.cache.execute.FunctionAdapter;
+import org.apache.geode.cache.execute.Function;
 import org.apache.geode.cache.execute.FunctionContext;
 import org.apache.geode.distributed.DistributedMember;
 import org.apache.geode.internal.InternalEntity;
@@ -37,23 +35,14 @@ import 
org.apache.geode.management.internal.cli.domain.AsyncEventQueueDetails;
 /**
  * An implementation of GemFire Function interface used to determine all the 
async event queues that
  * exist for the entire cache, distributed across the GemFire distributed 
system.
- * </p>
- * 
+ *
  * @since GemFire 8.0
  */
-public class ListAsyncEventQueuesFunction extends FunctionAdapter implements 
InternalEntity {
-  private static final Logger logger = LogService.getLogger();
+public class ListAsyncEventQueuesFunction implements InternalEntity, Function {
 
   private static final long serialVersionUID = 1L;
 
-  @Override
-  public String getId() {
-    return getClass().getName();
-  }
-
-  protected Cache getCache() {
-    return CacheFactory.getAnyInstance();
-  }
+  private static final Logger logger = LogService.getLogger();
 
   @Override
   public void execute(final FunctionContext context) {
@@ -61,7 +50,7 @@ public class ListAsyncEventQueuesFunction extends 
FunctionAdapter implements Int
     String memberId = "";
 
     try {
-      Cache cache = CacheFactory.getAnyInstance();
+      Cache cache = context.getCache();
 
       DistributedMember member = 
cache.getDistributedSystem().getDistributedMember();
 
@@ -105,4 +94,5 @@ public class ListAsyncEventQueuesFunction extends 
FunctionAdapter implements Int
       context.getResultSender().lastResult(result);
     }
   }
+
 }

http://git-wip-us.apache.org/repos/asf/geode/blob/c3c639df/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ListDeployedFunction.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ListDeployedFunction.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ListDeployedFunction.java
index 88a77be..16ea3e3 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ListDeployedFunction.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ListDeployedFunction.java
@@ -16,31 +16,25 @@ package org.apache.geode.management.internal.cli.functions;
 
 import java.util.List;
 
-import org.apache.geode.internal.ClassPathLoader;
-import org.apache.geode.internal.DeployedJar;
 import org.apache.logging.log4j.Logger;
 
 import org.apache.geode.SystemFailure;
+import org.apache.geode.cache.Cache;
 import org.apache.geode.cache.CacheClosedException;
-import org.apache.geode.cache.CacheFactory;
 import org.apache.geode.cache.execute.Function;
 import org.apache.geode.cache.execute.FunctionContext;
 import org.apache.geode.distributed.DistributedMember;
+import org.apache.geode.internal.ClassPathLoader;
+import org.apache.geode.internal.DeployedJar;
 import org.apache.geode.internal.InternalEntity;
 import org.apache.geode.internal.JarDeployer;
-import org.apache.geode.internal.cache.InternalCache;
 import org.apache.geode.internal.logging.LogService;
 
 public class ListDeployedFunction implements Function, InternalEntity {
-  private static final Logger logger = LogService.getLogger();
-
-  public static final String ID = ListDeployedFunction.class.getName();
 
   private static final long serialVersionUID = 1L;
 
-  private InternalCache getCache() {
-    return (InternalCache) CacheFactory.getAnyInstance();
-  }
+  private static final Logger logger = LogService.getLogger();
 
   @Override
   public void execute(FunctionContext context) {
@@ -48,7 +42,7 @@ public class ListDeployedFunction implements Function, 
InternalEntity {
     String memberId = "";
 
     try {
-      InternalCache cache = getCache();
+      Cache cache = context.getCache();
       final JarDeployer jarDeployer = 
ClassPathLoader.getLatest().getJarDeployer();
 
       DistributedMember member = 
cache.getDistributedSystem().getDistributedMember();
@@ -87,11 +81,6 @@ public class ListDeployedFunction implements Function, 
InternalEntity {
   }
 
   @Override
-  public String getId() {
-    return ID;
-  }
-
-  @Override
   public boolean hasResult() {
     return true;
   }
@@ -105,4 +94,5 @@ public class ListDeployedFunction implements Function, 
InternalEntity {
   public boolean isHA() {
     return false;
   }
+
 }

http://git-wip-us.apache.org/repos/asf/geode/blob/c3c639df/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ListDiskStoresFunction.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ListDiskStoresFunction.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ListDiskStoresFunction.java
index 80c84b5..ae3f34e 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ListDiskStoresFunction.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ListDiskStoresFunction.java
@@ -16,13 +16,10 @@
 package org.apache.geode.management.internal.cli.functions;
 
 import java.util.HashSet;
-import java.util.Properties;
 import java.util.Set;
 
-import org.apache.geode.cache.Cache;
-import org.apache.geode.cache.CacheFactory;
 import org.apache.geode.cache.DiskStore;
-import org.apache.geode.cache.execute.FunctionAdapter;
+import org.apache.geode.cache.execute.Function;
 import org.apache.geode.cache.execute.FunctionContext;
 import org.apache.geode.distributed.DistributedMember;
 import org.apache.geode.internal.InternalEntity;
@@ -33,47 +30,33 @@ import 
org.apache.geode.management.internal.cli.domain.DiskStoreDetails;
  * The ListDiskStoresFunction class is an implementation of GemFire Function 
interface used to
  * determine all the disk stores that exist for the entire cache, distributed 
across the GemFire
  * distributed system.
- * </p>
- * 
+ *
  * @see org.apache.geode.cache.DiskStore
  * @see org.apache.geode.cache.execute.Function
  * @see org.apache.geode.cache.execute.FunctionAdapter
  * @see org.apache.geode.cache.execute.FunctionContext
  * @see org.apache.geode.internal.InternalEntity
  * @see org.apache.geode.management.internal.cli.domain.DiskStoreDetails
+ *
  * @since GemFire 7.0
  */
-public class ListDiskStoresFunction extends FunctionAdapter implements 
InternalEntity {
-
-  @SuppressWarnings("unused")
-  public void init(final Properties props) {}
-
-  public String getId() {
-    return getClass().getName();
-  }
-
-  protected Cache getCache() {
-    return CacheFactory.getAnyInstance();
-  }
+public class ListDiskStoresFunction implements InternalEntity, Function {
 
   public void execute(final FunctionContext context) {
-    final Set<DiskStoreDetails> memberDiskStores = new 
HashSet<DiskStoreDetails>();
+    final Set<DiskStoreDetails> memberDiskStores = new HashSet<>();
 
     try {
-      final Cache cache = getCache();
+      final InternalCache cache = (InternalCache) context.getCache();
 
-      if (cache instanceof InternalCache) {
-        final InternalCache gemfireCache = (InternalCache) cache;
+      final DistributedMember member = cache.getMyId();
 
-        final DistributedMember member = gemfireCache.getMyId();
-
-        for (final DiskStore memberDiskStore : 
gemfireCache.listDiskStoresIncludingRegionOwned()) {
-          memberDiskStores.add(new 
DiskStoreDetails(memberDiskStore.getDiskStoreUUID(),
-              memberDiskStore.getName(), member.getId(), member.getName()));
-        }
+      for (final DiskStore memberDiskStore : 
cache.listDiskStoresIncludingRegionOwned()) {
+        memberDiskStores.add(new 
DiskStoreDetails(memberDiskStore.getDiskStoreUUID(),
+            memberDiskStore.getName(), member.getId(), member.getName()));
       }
 
       context.getResultSender().lastResult(memberDiskStores);
+
     } catch (Exception e) {
       context.getResultSender().sendException(e);
     }

http://git-wip-us.apache.org/repos/asf/geode/blob/c3c639df/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ListDurableCqNamesFunction.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ListDurableCqNamesFunction.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ListDurableCqNamesFunction.java
index 434c619..5831df4 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ListDurableCqNamesFunction.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ListDurableCqNamesFunction.java
@@ -16,12 +16,10 @@
 package org.apache.geode.management.internal.cli.functions;
 
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.List;
 
 import org.apache.geode.cache.Cache;
-import org.apache.geode.cache.CacheFactory;
-import org.apache.geode.cache.execute.FunctionAdapter;
+import org.apache.geode.cache.execute.Function;
 import org.apache.geode.cache.execute.FunctionContext;
 import org.apache.geode.cache.query.internal.cq.CqService;
 import org.apache.geode.distributed.DistributedMember;
@@ -35,30 +33,22 @@ import 
org.apache.geode.management.internal.cli.i18n.CliStrings;
 /**
  * The ListDurableCqs class is a GemFire function used to collect all the 
durable client names on
  * the server
- * </p>
- * 
+ *
  * @see org.apache.geode.cache.Cache
  * @see org.apache.geode.cache.execute.Function
  * @see org.apache.geode.cache.execute.FunctionAdapter
  * @see org.apache.geode.cache.execute.FunctionContext
  * @see org.apache.geode.internal.InternalEntity
  * @see org.apache.geode.management.internal.cli.domain.IndexDetails
+ *
  * @since GemFire 7.0.1
  */
-@SuppressWarnings("unused")
-public class ListDurableCqNamesFunction extends FunctionAdapter implements 
InternalEntity {
-  private static final long serialVersionUID = 1L;
-
-  protected Cache getCache() {
-    return CacheFactory.getAnyInstance();
-  }
+public class ListDurableCqNamesFunction implements InternalEntity, Function {
 
-  public String getId() {
-    return ListDurableCqNamesFunction.class.getName();
-  }
+  private static final long serialVersionUID = 1L;
 
   public void execute(final FunctionContext context) {
-    final Cache cache = getCache();
+    final Cache cache = context.getCache();
     final DistributedMember member = 
cache.getDistributedSystem().getDistributedMember();
     String memberNameOrId = CliUtil.getMemberNameOrId(member);
     DurableCqNamesResult result = new DurableCqNamesResult(memberNameOrId);
@@ -89,10 +79,12 @@ public class ListDurableCqNamesFunction extends 
FunctionAdapter implements Inter
       } else {
         result.setErrorMessage(CliStrings.NO_CLIENT_FOUND);
       }
+
     } catch (Exception e) {
       result.setExceptionMessage(e.getMessage());
     } finally {
       context.getResultSender().lastResult(result);
     }
   }
+
 }

http://git-wip-us.apache.org/repos/asf/geode/blob/c3c639df/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ListFunctionFunction.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ListFunctionFunction.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ListFunctionFunction.java
index a45ed0b..e784da4 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ListFunctionFunction.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ListFunctionFunction.java
@@ -25,7 +25,6 @@ import org.apache.logging.log4j.Logger;
 import org.apache.geode.SystemFailure;
 import org.apache.geode.cache.Cache;
 import org.apache.geode.cache.CacheClosedException;
-import org.apache.geode.cache.CacheFactory;
 import org.apache.geode.cache.execute.Function;
 import org.apache.geode.cache.execute.FunctionContext;
 import org.apache.geode.cache.execute.FunctionService;
@@ -34,12 +33,11 @@ import org.apache.geode.internal.InternalEntity;
 import org.apache.geode.internal.logging.LogService;
 
 public class ListFunctionFunction implements Function, InternalEntity {
-  private static final Logger logger = LogService.getLogger();
-
-  public static final String ID = ListFunctionFunction.class.getName();
 
   private static final long serialVersionUID = 1L;
 
+  private static final Logger logger = LogService.getLogger();
+
   @Override
   public void execute(FunctionContext context) {
     // Declared here so that it's available when returning a Throwable
@@ -49,7 +47,7 @@ public class ListFunctionFunction implements Function, 
InternalEntity {
       final Object[] args = (Object[]) context.getArguments();
       final String stringPattern = (String) args[0];
 
-      Cache cache = CacheFactory.getAnyInstance();
+      Cache cache = context.getCache();
       DistributedMember member = 
cache.getDistributedSystem().getDistributedMember();
 
       memberId = member.getId();
@@ -92,11 +90,6 @@ public class ListFunctionFunction implements Function, 
InternalEntity {
   }
 
   @Override
-  public String getId() {
-    return ID;
-  }
-
-  @Override
   public boolean hasResult() {
     return true;
   }
@@ -110,4 +103,5 @@ public class ListFunctionFunction implements Function, 
InternalEntity {
   public boolean isHA() {
     return false;
   }
+
 }

http://git-wip-us.apache.org/repos/asf/geode/blob/c3c639df/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ListIndexFunction.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ListIndexFunction.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ListIndexFunction.java
index f8d302c..fd8bc6b 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ListIndexFunction.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ListIndexFunction.java
@@ -19,8 +19,7 @@ import java.util.HashSet;
 import java.util.Set;
 
 import org.apache.geode.cache.Cache;
-import org.apache.geode.cache.CacheFactory;
-import org.apache.geode.cache.execute.FunctionAdapter;
+import org.apache.geode.cache.execute.Function;
 import org.apache.geode.cache.execute.FunctionContext;
 import org.apache.geode.cache.query.Index;
 import org.apache.geode.distributed.DistributedMember;
@@ -30,32 +29,23 @@ import 
org.apache.geode.management.internal.cli.domain.IndexDetails;
 /**
  * The ListIndexFunction class is a GemFire function used to collect all the 
index information on
  * all Regions across the entire GemFire Cache (distributed system).
- * </p>
- * 
+ *
  * @see org.apache.geode.cache.Cache
  * @see org.apache.geode.cache.execute.Function
  * @see org.apache.geode.cache.execute.FunctionAdapter
  * @see org.apache.geode.cache.execute.FunctionContext
  * @see org.apache.geode.internal.InternalEntity
  * @see org.apache.geode.management.internal.cli.domain.IndexDetails
+ *
  * @since GemFire 7.0
  */
-@SuppressWarnings("unused")
-public class ListIndexFunction extends FunctionAdapter implements 
InternalEntity {
-
-  protected Cache getCache() {
-    return CacheFactory.getAnyInstance();
-  }
-
-  public String getId() {
-    return ListIndexFunction.class.getName();
-  }
+public class ListIndexFunction implements InternalEntity, Function {
 
   public void execute(final FunctionContext context) {
     try {
-      final Set<IndexDetails> indexDetailsSet = new HashSet<IndexDetails>();
+      final Set<IndexDetails> indexDetailsSet = new HashSet<>();
 
-      final Cache cache = getCache();
+      final Cache cache = context.getCache();
       final DistributedMember member = 
cache.getDistributedSystem().getDistributedMember();
 
       for (final Index index : cache.getQueryService().getIndexes()) {

http://git-wip-us.apache.org/repos/asf/geode/blob/c3c639df/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/MemberRegionFunction.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/MemberRegionFunction.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/MemberRegionFunction.java
deleted file mode 100644
index c23bcbe..0000000
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/MemberRegionFunction.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license
- * agreements. See the NOTICE file distributed with this work for additional 
information regarding
- * copyright ownership. The ASF licenses this file to You under the Apache 
License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the 
License. You may obtain a
- * copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software 
distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 
KIND, either express
- * or implied. See the License for the specific language governing permissions 
and limitations under
- * the License.
- */
-package org.apache.geode.management.internal.cli.functions;
-
-import org.apache.geode.cache.Cache;
-import org.apache.geode.cache.CacheFactory;
-import org.apache.geode.cache.execute.Execution;
-import org.apache.geode.cache.execute.Function;
-import org.apache.geode.cache.execute.FunctionContext;
-import org.apache.geode.cache.execute.FunctionException;
-import org.apache.geode.cache.execute.FunctionService;
-import org.apache.geode.internal.InternalEntity;
-
-
-public class MemberRegionFunction implements Function, InternalEntity {
-  public static final String ID = MemberRegionFunction.class.getName();
-  private static final long serialVersionUID = 1L;
-
-  @Override
-  public void execute(FunctionContext context) {
-    Object[] args = (Object[]) context.getArguments();
-    String region = (String) args[0];
-    String functionId = (String) args[1];
-    Cache cache = CacheFactory.getAnyInstance();
-
-    try {
-      Function function = FunctionService.getFunction(functionId);
-      if (function == null) {
-        context.getResultSender()
-            .lastResult("For region on a member did not get function " + 
functionId);
-      }
-      Execution execution = FunctionService.onRegion(cache.getRegion(region));
-      if (execution == null) {
-        context.getResultSender().lastResult("For region on a member could not 
execute");
-      } else {
-        execution.execute(function);
-        context.getResultSender().lastResult("succeeded in executing on region 
" + region);
-      }
-
-    } catch (FunctionException e) {
-      context.getResultSender()
-          .lastResult("FunctionException in MemberRegionFunction =" + 
e.getMessage());
-    } catch (Exception e) {
-      context.getResultSender().lastResult("Exception in MemberRegionFunction 
=" + e.getMessage());
-    }
-
-  }
-
-  @Override
-  public String getId() {
-    return MemberRegionFunction.ID;
-
-  }
-
-  @Override
-  public boolean hasResult() {
-    return true;
-  }
-
-  @Override
-  public boolean optimizeForWrite() {
-    // no need of optimization since read-only.
-    return false;
-  }
-
-  @Override
-  public boolean isHA() {
-    return false;
-  }
-
-}

Reply via email to