Convert to use FunctionContext.getCache()
Project: http://git-wip-us.apache.org/repos/asf/geode/repo Commit: http://git-wip-us.apache.org/repos/asf/geode/commit/c3c639df Tree: http://git-wip-us.apache.org/repos/asf/geode/tree/c3c639df Diff: http://git-wip-us.apache.org/repos/asf/geode/diff/c3c639df Branch: refs/heads/feature/GEODE-3299 Commit: c3c639df0e17a3754f55784d21694521ad8a7743 Parents: 0675317 Author: Kirk Lund <[email protected]> Authored: Mon Jul 24 12:44:37 2017 -0700 Committer: Kirk Lund <[email protected]> Committed: Tue Jul 25 14:38:32 2017 -0700 ---------------------------------------------------------------------- .../geode/cache/execute/FunctionContext.java | 17 +- .../CreateAlterDestroyRegionCommands.java | 14 +- .../cli/commands/ExportLogsInterceptor.java | 8 +- .../cli/commands/MiscellaneousCommands.java | 2 +- .../internal/cli/commands/WanCommands.java | 6 +- .../functions/AlterRuntimeConfigFunction.java | 30 ++-- .../functions/AsyncEventQueueFunctionArgs.java | 33 ++-- .../cli/functions/ChangeLogLevelFunction.java | 38 ++-- .../cli/functions/CliFunctionResult.java | 35 ++-- .../functions/CloseDurableClientFunction.java | 21 +-- .../cli/functions/CloseDurableCqFunction.java | 23 +-- .../cli/functions/ContinuousQueryFunction.java | 33 ++-- .../CreateAsyncEventQueueFunction.java | 19 +- .../functions/CreateDefinedIndexesFunction.java | 31 +--- .../cli/functions/CreateDiskStoreFunction.java | 36 ++-- .../cli/functions/CreateIndexFunction.java | 30 ++-- .../cli/functions/DataCommandFunction.java | 177 ++++++++++--------- .../internal/cli/functions/DeployFunction.java | 17 +- .../functions/DescribeDiskStoreFunction.java | 114 +++++------- .../cli/functions/DestroyDiskStoreFunction.java | 16 +- .../cli/functions/DestroyIndexFunction.java | 19 +- .../cli/functions/ExportConfigFunction.java | 14 +- .../cli/functions/ExportDataFunction.java | 18 +- .../cli/functions/ExportLogsFunction.java | 34 +--- .../FetchRegionAttributesFunction.java | 24 +-- .../FetchSharedConfigurationStatusFunction.java | 16 +- .../functions/GarbageCollectionFunction.java | 15 +- .../GatewayReceiverCreateFunction.java | 25 +-- .../functions/GatewayReceiverFunctionArgs.java | 8 +- .../functions/GatewaySenderCreateFunction.java | 24 +-- .../functions/GatewaySenderDestroyFunction.java | 18 +- .../GatewaySenderDestroyFunctionArgs.java | 3 +- .../functions/GatewaySenderFunctionArgs.java | 6 +- .../GetMemberConfigInformationFunction.java | 89 ++++------ .../functions/GetMemberInformationFunction.java | 53 ++---- .../functions/GetRegionDescriptionFunction.java | 16 +- .../cli/functions/GetRegionsFunction.java | 6 - .../cli/functions/GetStackTracesFunction.java | 14 +- .../GetSubscriptionQueueSizeFunction.java | 15 +- .../cli/functions/ImportDataFunction.java | 14 +- .../functions/ListAsyncEventQueuesFunction.java | 22 +-- .../cli/functions/ListDeployedFunction.java | 22 +-- .../cli/functions/ListDiskStoresFunction.java | 39 ++-- .../functions/ListDurableCqNamesFunction.java | 24 +-- .../cli/functions/ListFunctionFunction.java | 14 +- .../cli/functions/ListIndexFunction.java | 22 +-- .../cli/functions/MemberRegionFunction.java | 83 --------- .../cli/functions/MembersForRegionFunction.java | 9 +- .../internal/cli/functions/NetstatFunction.java | 28 +-- .../cli/functions/RebalanceFunction.java | 23 +-- .../cli/functions/RegionAlterFunction.java | 17 +- .../cli/functions/RegionCreateFunction.java | 24 +-- .../cli/functions/RegionDestroyFunction.java | 17 +- .../cli/functions/RegionFunctionArgs.java | 6 +- .../ShowMissingDiskStoresFunction.java | 17 +- .../cli/functions/ShutDownFunction.java | 44 ++--- .../cli/functions/SizeExportLogsFunction.java | 21 +-- .../cli/functions/UndeployFunction.java | 23 +-- .../cli/functions/UnregisterFunction.java | 21 +-- .../cli/functions/UserFunctionExecution.java | 10 +- .../internal/cli/util/TimeParser.java | 49 +++++ .../DescribeDiskStoreFunctionJUnitTest.java | 141 ++++++--------- .../ListDiskStoresFunctionJUnitTest.java | 52 +++--- .../functions/ListIndexFunctionJUnitTest.java | 31 ++-- 64 files changed, 698 insertions(+), 1192 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/geode/blob/c3c639df/geode-core/src/main/java/org/apache/geode/cache/execute/FunctionContext.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/cache/execute/FunctionContext.java b/geode-core/src/main/java/org/apache/geode/cache/execute/FunctionContext.java index 0b4e7f9..00c877b 100755 --- a/geode-core/src/main/java/org/apache/geode/cache/execute/FunctionContext.java +++ b/geode-core/src/main/java/org/apache/geode/cache/execute/FunctionContext.java @@ -19,20 +19,21 @@ import org.apache.geode.cache.Cache; /** * Defines the execution context of a {@link Function}. It is required by the * {@link Function#execute(FunctionContext)} to execute a {@link Function} on a particular member. + * * <p> * A context can be data dependent or data independent. For data dependent functions refer to * {@link RegionFunctionContext} - * </p> + * * <p> * This interface is implemented by GemFire. Instances of it will be passed in to * {@link Function#execute(FunctionContext)}. - * - * @param T1 object type of Arguments + * + * <p> + * T1 object type of Arguments * * @since GemFire 6.0 * * @see RegionFunctionContext - * */ public interface FunctionContext<T1> { /** @@ -64,7 +65,6 @@ public interface FunctionContext<T1> { * @return ResultSender * @since GemFire 6.0 */ - public <T2> ResultSender<T2> getResultSender(); /** @@ -78,5 +78,12 @@ public interface FunctionContext<T1> { */ public boolean isPossibleDuplicate(); + /** + * Returns a reference to the Cache. + * + * @return a reference to the Cache + * + * @since Geode 1.2 + */ public Cache getCache(); } http://git-wip-us.apache.org/repos/asf/geode/blob/c3c639df/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CreateAlterDestroyRegionCommands.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CreateAlterDestroyRegionCommands.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CreateAlterDestroyRegionCommands.java index 2c61b73..ba67fc7 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CreateAlterDestroyRegionCommands.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CreateAlterDestroyRegionCommands.java @@ -318,7 +318,7 @@ public class CreateAlterDestroyRegionCommands implements GfshCommand { return ResultBuilder.createUserErrorResult(CliStrings.NO_CACHING_MEMBERS_FOUND_MESSAGE); } - ResultCollector<?, ?> resultCollector = CliUtil.executeFunction(RegionCreateFunction.INSTANCE, + ResultCollector<?, ?> resultCollector = CliUtil.executeFunction(new RegionCreateFunction(), regionFunctionArgs, membersToCreateRegionOn); @SuppressWarnings("unchecked") List<CliFunctionResult> regionCreateResults = @@ -559,7 +559,7 @@ public class CreateAlterDestroyRegionCommands implements GfshCommand { return result; } - private static boolean regionExists(InternalCache cache, String regionPath) { + private boolean regionExists(InternalCache cache, String regionPath) { boolean regionFound = false; if (regionPath != null && !Region.SEPARATOR.equals(regionPath)) { ManagementService managementService = ManagementService.getExistingManagementService(cache); @@ -866,7 +866,7 @@ public class CreateAlterDestroyRegionCommands implements GfshCommand { return false; } - private static <K, V> FetchRegionAttributesFunctionResult<K, V> getRegionAttributes( + private <K, V> FetchRegionAttributesFunctionResult<K, V> getRegionAttributes( InternalCache cache, String regionPath) { if (!isClusterWideSameConfig(cache, regionPath)) { throw new IllegalStateException(CliStrings.format( @@ -878,7 +878,7 @@ public class CreateAlterDestroyRegionCommands implements GfshCommand { // First check whether the region exists on a this manager, if yes then no // need to use FetchRegionAttributesFunction to fetch RegionAttributes try { - attributes = FetchRegionAttributesFunction.getRegionAttributes(regionPath); + attributes = FetchRegionAttributesFunction.getRegionAttributes(cache, regionPath); } catch (IllegalArgumentException e) { /* region doesn't exist on the manager */ } @@ -890,7 +890,7 @@ public class CreateAlterDestroyRegionCommands implements GfshCommand { if (regionAssociatedMembers != null && !regionAssociatedMembers.isEmpty()) { DistributedMember distributedMember = regionAssociatedMembers.iterator().next(); ResultCollector<?, ?> resultCollector = CliUtil - .executeFunction(FetchRegionAttributesFunction.INSTANCE, regionPath, distributedMember); + .executeFunction(new FetchRegionAttributesFunction(), regionPath, distributedMember); List<?> resultsList = (List<?>) resultCollector.getResult(); if (resultsList != null && !resultsList.isEmpty()) { @@ -920,7 +920,7 @@ public class CreateAlterDestroyRegionCommands implements GfshCommand { return attributes; } - private static boolean isClusterWideSameConfig(InternalCache cache, String regionPath) { + private boolean isClusterWideSameConfig(InternalCache cache, String regionPath) { ManagementService managementService = ManagementService.getExistingManagementService(cache); DistributedSystemMXBean dsMXBean = managementService.getDistributedSystemMXBean(); @@ -1002,7 +1002,7 @@ public class CreateAlterDestroyRegionCommands implements GfshCommand { CliFunctionResult destroyRegionResult; ResultCollector<?, ?> resultCollector = - CliUtil.executeFunction(RegionDestroyFunction.INSTANCE, regionPath, regionMembersList); + CliUtil.executeFunction(new RegionDestroyFunction(), regionPath, regionMembersList); List<CliFunctionResult> resultsList = (List<CliFunctionResult>) resultCollector.getResult(); String message = CliStrings.format(CliStrings.DESTROY_REGION__MSG__REGION_0_1_DESTROYED, regionPath, ""); http://git-wip-us.apache.org/repos/asf/geode/blob/c3c639df/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ExportLogsInterceptor.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ExportLogsInterceptor.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ExportLogsInterceptor.java index 5f21848..c5ac227 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ExportLogsInterceptor.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ExportLogsInterceptor.java @@ -21,9 +21,9 @@ import org.apache.geode.internal.logging.log4j.LogLevel; import org.apache.geode.management.cli.Result; import org.apache.geode.management.internal.cli.AbstractCliAroundInterceptor; import org.apache.geode.management.internal.cli.GfshParseResult; -import org.apache.geode.management.internal.cli.functions.ExportLogsFunction; import org.apache.geode.management.internal.cli.result.ResultBuilder; -import org.apache.logging.log4j.Level; +import org.apache.geode.management.internal.cli.util.TimeParser; + import org.apache.logging.log4j.Logger; import java.io.File; @@ -61,8 +61,8 @@ public class ExportLogsInterceptor extends AbstractCliAroundInterceptor { String end = arguments.get("end-time"); if (start != null && end != null) { // need to make sure end is later than start - LocalDateTime startTime = ExportLogsFunction.parseTime(start); - LocalDateTime endTime = ExportLogsFunction.parseTime(end); + LocalDateTime startTime = TimeParser.parseTime(start); + LocalDateTime endTime = TimeParser.parseTime(end); if (startTime.isAfter(endTime)) { return ResultBuilder.createUserErrorResult("start-time has to be earlier than end-time."); } http://git-wip-us.apache.org/repos/asf/geode/blob/c3c639df/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/MiscellaneousCommands.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/MiscellaneousCommands.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/MiscellaneousCommands.java index 1415bc6..f7e65b4 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/MiscellaneousCommands.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/MiscellaneousCommands.java @@ -456,7 +456,7 @@ public class MiscellaneousCommands implements GfshCommand { if (!hostMemberMap.isEmpty()) { Set<DistributedMember> membersToExecuteOn = new HashSet<>(hostMemberMap.values()); ResultCollector<?, ?> netstatResult = - CliUtil.executeFunction(NetstatFunction.INSTANCE, nfa, membersToExecuteOn); + CliUtil.executeFunction(new NetstatFunction(), nfa, membersToExecuteOn); List<?> resultList = (List<?>) netstatResult.getResult(); for (Object aResultList : resultList) { NetstatFunctionResult netstatFunctionResult = (NetstatFunctionResult) aResultList; http://git-wip-us.apache.org/repos/asf/geode/blob/c3c639df/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/WanCommands.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/WanCommands.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/WanCommands.java index c6fb709..4e4c92e 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/WanCommands.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/WanCommands.java @@ -152,7 +152,7 @@ public class WanCommands implements GfshCommand { } ResultCollector<?, ?> resultCollector = - CliUtil.executeFunction(GatewaySenderCreateFunction.INSTANCE, gatewaySenderFunctionArgs, + CliUtil.executeFunction(new GatewaySenderCreateFunction(), gatewaySenderFunctionArgs, membersToCreateGatewaySenderOn); @SuppressWarnings("unchecked") List<CliFunctionResult> gatewaySenderCreateResults = @@ -562,7 +562,7 @@ public class WanCommands implements GfshCommand { } ResultCollector<?, ?> resultCollector = - CliUtil.executeFunction(GatewayReceiverCreateFunction.INSTANCE, + CliUtil.executeFunction(new GatewayReceiverCreateFunction(), gatewayReceiverFunctionArgs, membersToCreateGatewayReceiverOn); @SuppressWarnings("unchecked") List<CliFunctionResult> gatewayReceiverCreateResults = @@ -1011,7 +1011,7 @@ public class WanCommands implements GfshCommand { } ResultCollector<?, ?> resultCollector = - CliUtil.executeFunction(GatewaySenderDestroyFunction.INSTANCE, + CliUtil.executeFunction(new GatewaySenderDestroyFunction(), gatewaySenderDestroyFunctionArgs, membersToDestroyGatewaySenderOn); @SuppressWarnings("unchecked") List<CliFunctionResult> gatewaySenderDestroyResults = http://git-wip-us.apache.org/repos/asf/geode/blob/c3c639df/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/AlterRuntimeConfigFunction.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/AlterRuntimeConfigFunction.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/AlterRuntimeConfigFunction.java index 53d3ab7..b6c6c5a 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/AlterRuntimeConfigFunction.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/AlterRuntimeConfigFunction.java @@ -14,9 +14,14 @@ */ package org.apache.geode.management.internal.cli.functions; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; + +import org.apache.logging.log4j.Logger; + 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.distributed.internal.DistributionConfig; import org.apache.geode.internal.ConfigSource; @@ -25,29 +30,20 @@ import org.apache.geode.internal.cache.InternalCache; 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; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Set; - -public class AlterRuntimeConfigFunction extends FunctionAdapter implements InternalEntity { +public class AlterRuntimeConfigFunction implements InternalEntity, Function { private static final long serialVersionUID = 1L; private static Logger logger = LogService.getLogger(); - private InternalCache getCache() { - return (InternalCache) CacheFactory.getAnyInstance(); - } - @Override - public void execute(FunctionContext context) { + public void execute(final FunctionContext context) { String memberId = ""; try { Object arg = context.getArguments(); - InternalCache cache = getCache(); + InternalCache cache = (InternalCache) context.getCache(); DistributionConfig config = cache.getInternalDistributedSystem().getConfig(); memberId = cache.getDistributedSystem().getDistributedMember().getId(); @@ -82,15 +78,11 @@ public class AlterRuntimeConfigFunction extends FunctionAdapter implements Inter context.getResultSender().lastResult(result); } catch (Exception e) { - logger.error("Exception happened on : " + memberId, e); + logger.error("Exception happened on : {}", memberId, e); CliFunctionResult cliFuncResult = new CliFunctionResult(memberId, e, CliUtil.stackTraceAsString(e)); context.getResultSender().lastResult(cliFuncResult); } } - @Override - public String getId() { - return AlterRuntimeConfigFunction.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/AsyncEventQueueFunctionArgs.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/AsyncEventQueueFunctionArgs.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/AsyncEventQueueFunctionArgs.java index 2e297bf..fb5fbab 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/AsyncEventQueueFunctionArgs.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/AsyncEventQueueFunctionArgs.java @@ -24,22 +24,22 @@ public class AsyncEventQueueFunctionArgs implements Serializable { private static final long serialVersionUID = -6524494645663740872L; - private String asyncEventQueueId; - private boolean isParallel; - private boolean enableBatchConflation; - private int batchSize; - private int batchTimeInterval; - private boolean persistent; - private String diskStoreName; - private boolean diskSynchronous; - private int maxQueueMemory; - private int dispatcherThreads; - private String orderPolicy; - private String[] gatewayEventFilters; - private String gatewaySubstitutionFilter; - private String listenerClassName; - private Properties listenerProperties; - private boolean forwardExpirationDestroy; + private final String asyncEventQueueId; + private final boolean isParallel; + private final boolean enableBatchConflation; + private final int batchSize; + private final int batchTimeInterval; + private final boolean persistent; + private final String diskStoreName; + private final boolean diskSynchronous; + private final int maxQueueMemory; + private final int dispatcherThreads; + private final String orderPolicy; + private final String[] gatewayEventFilters; + private final String gatewaySubstitutionFilter; + private final String listenerClassName; + private final Properties listenerProperties; + private final boolean forwardExpirationDestroy; public AsyncEventQueueFunctionArgs(String asyncEventQueueId, boolean isParallel, boolean enableBatchConflation, int batchSize, int batchTimeInterval, boolean persistent, @@ -127,4 +127,5 @@ public class AsyncEventQueueFunctionArgs implements Serializable { public boolean isForwardExpirationDestroy() { return forwardExpirationDestroy; } + } http://git-wip-us.apache.org/repos/asf/geode/blob/c3c639df/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ChangeLogLevelFunction.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ChangeLogLevelFunction.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ChangeLogLevelFunction.java index 91aabe4..5fd3348 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ChangeLogLevelFunction.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ChangeLogLevelFunction.java @@ -14,43 +14,40 @@ */ package org.apache.geode.management.internal.cli.functions; -import static org.apache.geode.distributed.ConfigurationProperties.*; +import static org.apache.geode.distributed.ConfigurationProperties.LOG_LEVEL; + +import java.util.HashMap; +import java.util.Map; + +import org.apache.logging.log4j.Level; +import org.apache.logging.log4j.Logger; 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.internal.DistributionConfig; import org.apache.geode.internal.InternalEntity; import org.apache.geode.internal.logging.LogService; +import org.apache.geode.internal.logging.log4j.LogLevel; import org.apache.geode.internal.logging.log4j.LogMarker; import org.apache.geode.internal.logging.log4j.LogWriterLogger; -import org.apache.geode.internal.logging.log4j.LogLevel; -import org.apache.logging.log4j.Level; -import org.apache.logging.log4j.Logger; - -import java.util.HashMap; -import java.util.Map; - /** - * * Class for change log level function * * since 8.0 - * */ - public class ChangeLogLevelFunction implements Function, InternalEntity { - private static final Logger logger = LogService.getLogger(); - public static final String ID = ChangeLogLevelFunction.class.getName(); private static final long serialVersionUID = 1L; + private static final Logger logger = LogService.getLogger(); + @Override - public void execute(FunctionContext context) { - Cache cache = CacheFactory.getAnyInstance(); - Map<String, String> result = new HashMap<String, String>(); + public void execute(final FunctionContext context) { + Cache cache = context.getCache(); + Map<String, String> result = new HashMap<>(); + try { LogWriterLogger logwriterLogger = (LogWriterLogger) cache.getLogger(); Object[] args = (Object[]) context.getArguments(); @@ -63,6 +60,7 @@ public class ChangeLogLevelFunction implements Function, InternalEntity { result.put(cache.getDistributedSystem().getDistributedMember().getId(), "New log level is " + log4jLevel); context.getResultSender().lastResult(result); + } catch (Exception ex) { // LOG:CONFIG: logger.info(LogMarker.CONFIG, "GFSH Changing log level exception {}", ex.getMessage(), ex); @@ -73,12 +71,6 @@ public class ChangeLogLevelFunction implements Function, InternalEntity { } @Override - public String getId() { - return ChangeLogLevelFunction.ID; - - } - - @Override public boolean hasResult() { return true; } http://git-wip-us.apache.org/repos/asf/geode/blob/c3c639df/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/CliFunctionResult.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/CliFunctionResult.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/CliFunctionResult.java index 401c1a8..4bc7acc 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/CliFunctionResult.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/CliFunctionResult.java @@ -14,11 +14,6 @@ */ package org.apache.geode.management.internal.cli.functions; -import org.apache.geode.DataSerializer; -import org.apache.geode.internal.DataSerializableFixedID; -import org.apache.geode.internal.Version; -import org.apache.geode.management.internal.configuration.domain.XmlEntity; - import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; @@ -28,7 +23,13 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; +import org.apache.geode.DataSerializer; +import org.apache.geode.internal.DataSerializableFixedID; +import org.apache.geode.internal.Version; +import org.apache.geode.management.internal.configuration.domain.XmlEntity; + public class CliFunctionResult implements Comparable<CliFunctionResult>, DataSerializableFixedID { + private String memberIdOrName; private Serializable[] serializables = new String[0]; private Throwable throwable; @@ -36,7 +37,9 @@ public class CliFunctionResult implements Comparable<CliFunctionResult>, DataSer private XmlEntity xmlEntity; private byte[] byteData = new byte[0]; - public CliFunctionResult() {} + public CliFunctionResult() { + // nothing + } public CliFunctionResult(final String memberIdOrName) { this.memberIdOrName = memberIdOrName; @@ -65,7 +68,6 @@ public class CliFunctionResult implements Comparable<CliFunctionResult>, DataSer this.successful = true; } - public CliFunctionResult(final String memberIdOrName, final XmlEntity xmlEntity, final Serializable[] serializables) { this.memberIdOrName = memberIdOrName; @@ -131,7 +133,7 @@ public class CliFunctionResult implements Comparable<CliFunctionResult>, DataSer } @Override - public void toData(DataOutput out) throws IOException { + public void toData(final DataOutput out) throws IOException { DataSerializer.writeString(this.memberIdOrName, out); DataSerializer.writePrimitiveBoolean(this.successful, out); DataSerializer.writeObject(this.xmlEntity, out); @@ -140,14 +142,14 @@ public class CliFunctionResult implements Comparable<CliFunctionResult>, DataSer DataSerializer.writeByteArray(this.byteData, out); } - public void toDataPre_GFE_8_0_0_0(DataOutput out) throws IOException { + public void toDataPre_GFE_8_0_0_0(final DataOutput out) throws IOException { DataSerializer.writeString(this.memberIdOrName, out); DataSerializer.writeObjectArray(this.serializables, out); DataSerializer.writeObject(this.throwable, out); } @Override - public void fromData(DataInput in) throws IOException, ClassNotFoundException { + public void fromData(final DataInput in) throws IOException, ClassNotFoundException { this.memberIdOrName = DataSerializer.readString(in); this.successful = DataSerializer.readPrimitiveBoolean(in); this.xmlEntity = DataSerializer.readObject(in); @@ -156,7 +158,7 @@ public class CliFunctionResult implements Comparable<CliFunctionResult>, DataSer this.byteData = DataSerializer.readByteArray(in); } - public void fromDataPre_GFE_8_0_0_0(DataInput in) throws IOException, ClassNotFoundException { + public void fromDataPre_GFE_8_0_0_0(final DataInput in) throws IOException, ClassNotFoundException { this.memberIdOrName = DataSerializer.readString(in); this.throwable = DataSerializer.readObject(in); this.serializables = (Serializable[]) DataSerializer.readObjectArray(in); @@ -175,7 +177,7 @@ public class CliFunctionResult implements Comparable<CliFunctionResult>, DataSer } @Override - public int compareTo(CliFunctionResult o) { + public int compareTo(final CliFunctionResult o) { if (this.memberIdOrName == null && o.memberIdOrName == null) { return 0; } @@ -190,14 +192,14 @@ public class CliFunctionResult implements Comparable<CliFunctionResult>, DataSer @Override public int hashCode() { - final int prime = 31; + int prime = 31; int result = 1; result = prime * result + ((this.memberIdOrName == null) ? 0 : this.memberIdOrName.hashCode()); return result; } @Override - public boolean equals(Object obj) { + public boolean equals(final Object obj) { if (this == obj) return true; if (obj == null) @@ -227,8 +229,8 @@ public class CliFunctionResult implements Comparable<CliFunctionResult>, DataSer * @param results The results to clean. * @return The cleaned results. */ - public static List<CliFunctionResult> cleanResults(List<?> results) { - List<CliFunctionResult> returnResults = new ArrayList<CliFunctionResult>(results.size()); + public static List<CliFunctionResult> cleanResults(final List<?> results) { + List<CliFunctionResult> returnResults = new ArrayList<>(results.size()); for (Object result : results) { if (result instanceof CliFunctionResult) { returnResults.add((CliFunctionResult) result); @@ -243,4 +245,5 @@ public class CliFunctionResult implements Comparable<CliFunctionResult>, DataSer public Version[] getSerializationVersions() { return new Version[] {Version.GFE_80}; } + } http://git-wip-us.apache.org/repos/asf/geode/blob/c3c639df/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/CloseDurableClientFunction.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/CloseDurableClientFunction.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/CloseDurableClientFunction.java index 73761c4..6af9d50 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/CloseDurableClientFunction.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/CloseDurableClientFunction.java @@ -15,9 +15,8 @@ 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.distributed.internal.InternalDistributedSystem; import org.apache.geode.internal.InternalEntity; import org.apache.geode.internal.cache.tier.sockets.CacheClientNotifier; import org.apache.geode.internal.cache.tier.sockets.CacheClientProxy; @@ -25,19 +24,18 @@ import org.apache.geode.management.internal.cli.CliUtil; import org.apache.geode.management.internal.cli.domain.MemberResult; import org.apache.geode.management.internal.cli.i18n.CliStrings; -/*** +/** * Function to close a durable client - * */ -public class CloseDurableClientFunction extends FunctionAdapter implements InternalEntity { +public class CloseDurableClientFunction implements InternalEntity, Function { private static final long serialVersionUID = 1L; @Override - public void execute(FunctionContext context) { + public void execute(final FunctionContext context) { String durableClientId = (String) context.getArguments(); - final Cache cache = CliUtil.getCacheIfExists(); - final String memberNameOrId = + Cache cache = context.getCache(); + String memberNameOrId = CliUtil.getMemberNameOrId(cache.getDistributedSystem().getDistributedMember()); MemberResult memberResult = new MemberResult(memberNameOrId); @@ -62,16 +60,13 @@ public class CloseDurableClientFunction extends FunctionAdapter implements Inter } else { memberResult.setErrorMessage(CliStrings.NO_CLIENT_FOUND); } + } catch (Exception e) { memberResult.setExceptionMessage(e.getMessage()); + } finally { context.getResultSender().lastResult(memberResult); } } - @Override - public String getId() { - return CloseDurableClientFunction.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/CloseDurableCqFunction.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/CloseDurableCqFunction.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/CloseDurableCqFunction.java index e526409..ab925de 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/CloseDurableCqFunction.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/CloseDurableCqFunction.java @@ -15,29 +15,26 @@ 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.internal.InternalEntity; import org.apache.geode.internal.cache.tier.sockets.CacheClientNotifier; import org.apache.geode.internal.cache.tier.sockets.CacheClientProxy; -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.MemberResult; import org.apache.geode.management.internal.cli.i18n.CliStrings; -/*** +/** * Function to close a durable cq - * */ -public class CloseDurableCqFunction extends FunctionAdapter implements InternalEntity { +public class CloseDurableCqFunction implements InternalEntity, Function { private static final long serialVersionUID = 1L; @Override - public void execute(FunctionContext context) { - - final Cache cache = CliUtil.getCacheIfExists(); - final String memberNameOrId = + public void execute(final FunctionContext context) { + Cache cache = context.getCache(); + String memberNameOrId = CliUtil.getMemberNameOrId(cache.getDistributedSystem().getDistributedMember()); CacheClientNotifier cacheClientNotifier = CacheClientNotifier.getInstance(); String[] args = (String[]) context.getArguments(); @@ -45,6 +42,7 @@ public class CloseDurableCqFunction extends FunctionAdapter implements InternalE String cqName = args[1]; MemberResult memberResult = new MemberResult(memberNameOrId); + try { if (cacheClientNotifier != null) { CacheClientProxy cacheClientProxy = cacheClientNotifier.getClientProxy(durableClientId); @@ -64,16 +62,13 @@ public class CloseDurableCqFunction extends FunctionAdapter implements InternalE } else { memberResult.setErrorMessage(CliStrings.NO_CLIENT_FOUND); } + } catch (Exception e) { memberResult.setExceptionMessage(e.getMessage()); + } finally { context.getResultSender().lastResult(memberResult); } } - @Override - public String getId() { - return CloseDurableCqFunction.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/ContinuousQueryFunction.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ContinuousQueryFunction.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ContinuousQueryFunction.java index 1f06a41..b03d00a 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ContinuousQueryFunction.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ContinuousQueryFunction.java @@ -17,12 +17,12 @@ package org.apache.geode.management.internal.cli.functions; import java.io.Serializable; import java.util.Collection; import java.util.Iterator; -import org.apache.geode.cache.CacheFactory; + +import org.apache.geode.cache.Cache; 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.cache.CacheServerImpl; -import org.apache.geode.internal.cache.InternalCache; import org.apache.geode.internal.cache.tier.sockets.AcceptorImpl; import org.apache.geode.internal.cache.tier.sockets.CacheClientNotifier; import org.apache.geode.internal.cache.tier.sockets.CacheClientProxy; @@ -33,19 +33,14 @@ import org.apache.geode.internal.cache.tier.sockets.ServerConnection; * @since GemFire 8.0 */ public class ContinuousQueryFunction implements Function, InternalEntity { - private static final long serialVersionUID = 1L; - public static final String ID = ContinuousQueryFunction.class.getName(); - - private InternalCache getCache() { - return (InternalCache) CacheFactory.getAnyInstance(); - } + private static final long serialVersionUID = 1L; @Override public void execute(FunctionContext context) { try { String clientID = (String) context.getArguments(); - InternalCache cache = getCache(); + Cache cache = context.getCache(); if (cache.getCacheServers().size() > 0) { CacheServerImpl server = (CacheServerImpl) cache.getCacheServers().iterator().next(); if (server != null) { @@ -100,16 +95,13 @@ public class ContinuousQueryFunction implements Function, InternalEntity { } } } + } catch (Exception e) { context.getResultSender() .lastResult("Exception in ContinuousQueryFunction =" + e.getMessage()); } - context.getResultSender().lastResult(null); - } - @Override - public String getId() { - return ContinuousQueryFunction.ID; + context.getResultSender().lastResult(null); } @Override @@ -128,13 +120,15 @@ public class ContinuousQueryFunction implements Function, InternalEntity { } public class ClientInfo implements Serializable { + private static final long serialVersionUID = 1L; - public String isDurable; - public String primaryServer; - public String secondaryServer; - public ClientInfo(String IsClientDurable, String primaryServerId, String secondaryServerId) { - isDurable = IsClientDurable; + public final String isDurable; + public final String primaryServer; + public final String secondaryServer; + + public ClientInfo(final String isClientDurable, final String primaryServerId, final String secondaryServerId) { + isDurable = isClientDurable; primaryServer = primaryServerId; secondaryServer = secondaryServerId; } @@ -145,4 +139,5 @@ public class ContinuousQueryFunction implements Function, InternalEntity { + ", secondaryServer=" + secondaryServer + "]"; } } + } http://git-wip-us.apache.org/repos/asf/geode/blob/c3c639df/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/CreateAsyncEventQueueFunction.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/CreateAsyncEventQueueFunction.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/CreateAsyncEventQueueFunction.java index 5696696..5461a49 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/CreateAsyncEventQueueFunction.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/CreateAsyncEventQueueFunction.java @@ -23,11 +23,10 @@ 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.Declarable; import org.apache.geode.cache.asyncqueue.AsyncEventListener; import org.apache.geode.cache.asyncqueue.AsyncEventQueueFactory; -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.wan.GatewayEventFilter; import org.apache.geode.cache.wan.GatewayEventSubstitutionFilter; @@ -48,25 +47,21 @@ import org.apache.geode.management.internal.configuration.domain.XmlEntity; * * @since GemFire 8.0 */ -public class CreateAsyncEventQueueFunction extends FunctionAdapter implements InternalEntity { +public class CreateAsyncEventQueueFunction implements InternalEntity, Function { + private static final Logger logger = LogService.getLogger(); private static final long serialVersionUID = 1L; - private InternalCache getCache() { - return (InternalCache) CacheFactory.getAnyInstance(); - } - - @SuppressWarnings("deprecation") @Override - public void execute(FunctionContext context) { + public void execute(final FunctionContext context) { // Declared here so that it's available when returning a Throwable String memberId = ""; try { AsyncEventQueueFunctionArgs aeqArgs = (AsyncEventQueueFunctionArgs) context.getArguments(); - InternalCache cache = getCache(); + InternalCache cache = (InternalCache) context.getCache(); DistributedMember member = cache.getDistributedSystem().getDistributedMember(); @@ -179,8 +174,4 @@ public class CreateAsyncEventQueueFunction extends FunctionAdapter implements In } } - @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/CreateDefinedIndexesFunction.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/CreateDefinedIndexesFunction.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/CreateDefinedIndexesFunction.java index 742840c..47017f0 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/CreateDefinedIndexesFunction.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/CreateDefinedIndexesFunction.java @@ -14,33 +14,28 @@ */ package org.apache.geode.management.internal.cli.functions; -import java.util.Arrays; -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.query.Index; import org.apache.geode.cache.query.MultiIndexCreationException; import org.apache.geode.cache.query.QueryService; import org.apache.geode.internal.InternalEntity; import org.apache.geode.management.internal.cli.domain.IndexInfo; import org.apache.geode.management.internal.cli.i18n.CliStrings; -public class CreateDefinedIndexesFunction extends FunctionAdapter implements InternalEntity { +public class CreateDefinedIndexesFunction implements InternalEntity, Function { private static final long serialVersionUID = 1L; @Override - public void execute(FunctionContext context) { + public void execute(final FunctionContext context) { String memberId = null; - List<Index> indexes = null; - Cache cache = null; + try { - cache = CacheFactory.getAnyInstance(); + Cache cache = context.getCache(); memberId = cache.getDistributedSystem().getDistributedMember().getId(); QueryService queryService = cache.getQueryService(); Set<IndexInfo> indexDefinitions = (Set<IndexInfo>) context.getArguments(); @@ -56,16 +51,18 @@ public class CreateDefinedIndexesFunction extends FunctionAdapter implements Int queryService.defineIndex(indexName, indexedExpression, regionPath); } } - indexes = queryService.createDefinedIndexes(); + queryService.createDefinedIndexes(); context.getResultSender().lastResult(new CliFunctionResult(memberId)); + } catch (MultiIndexCreationException e) { - StringBuffer sb = new StringBuffer(); + StringBuilder sb = new StringBuilder(); sb.append("Index creation failed for indexes: ").append("\n"); for (Map.Entry<String, Exception> failedIndex : e.getExceptionsMap().entrySet()) { sb.append(failedIndex.getKey()).append(" : ").append(failedIndex.getValue().getMessage()) .append("\n"); } context.getResultSender().lastResult(new CliFunctionResult(memberId, e, sb.toString())); + } catch (Exception e) { String exceptionMessage = CliStrings.format(CliStrings.EXCEPTION_CLASS_AND_MESSAGE, e.getClass().getName(), e.getMessage()); @@ -73,14 +70,4 @@ public class CreateDefinedIndexesFunction extends FunctionAdapter implements Int } } - public void createCommandObject(IndexInfo info) { - Cache cache = CacheFactory.getAnyInstance(); - QueryService queryService = cache.getQueryService(); - } - - @Override - public String getId() { - return CreateDefinedIndexesFunction.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/CreateDiskStoreFunction.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/CreateDiskStoreFunction.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/CreateDiskStoreFunction.java index 3b4679c..9ade960 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/CreateDiskStoreFunction.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/CreateDiskStoreFunction.java @@ -14,19 +14,12 @@ */ package org.apache.geode.management.internal.cli.functions; -/** - * Function used by the 'create disk-store' gfsh command to create a disk store on each member. - * - * @since GemFire 8.0 - */ - 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.DiskStoreFactory; -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; @@ -36,25 +29,28 @@ import org.apache.geode.internal.cache.xmlcache.CacheXml; import org.apache.geode.internal.logging.LogService; import org.apache.geode.management.internal.configuration.domain.XmlEntity; -public class CreateDiskStoreFunction extends FunctionAdapter implements InternalEntity { - private static final Logger logger = LogService.getLogger(); +/** + * Function used by the 'create disk-store' gfsh command to create a disk store on each member. + * + * @since GemFire 8.0 + */ +public class CreateDiskStoreFunction 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) { + public void execute(final FunctionContext context) { // Declared here so that it's available when returning a Throwable String memberId = ""; + try { - final Object[] args = (Object[]) context.getArguments(); - final String diskStoreName = (String) args[0]; - final DiskStoreAttributes diskStoreAttrs = (DiskStoreAttributes) args[01]; + Object[] args = (Object[]) context.getArguments(); + String diskStoreName = (String) args[0]; + DiskStoreAttributes diskStoreAttrs = (DiskStoreAttributes) args[01]; - InternalCache cache = getCache(); + InternalCache cache = (InternalCache) context.getCache(); DistributedMember member = cache.getDistributedSystem().getDistributedMember(); @@ -84,8 +80,4 @@ public class CreateDiskStoreFunction extends FunctionAdapter implements Internal } } - @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/CreateIndexFunction.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/CreateIndexFunction.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/CreateIndexFunction.java index 8a65f7a..cac6246 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/CreateIndexFunction.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/CreateIndexFunction.java @@ -15,8 +15,7 @@ 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.cache.query.IndexExistsException; import org.apache.geode.cache.query.IndexInvalidException; @@ -29,21 +28,20 @@ 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; -/*** +/** * Function to create index in a member, based on different arguments passed to it - * */ -public class CreateIndexFunction extends FunctionAdapter implements InternalEntity { - +public class CreateIndexFunction implements InternalEntity, Function { private static final long serialVersionUID = 1L; @Override public void execute(FunctionContext context) { - final IndexInfo indexInfo = (IndexInfo) context.getArguments(); + IndexInfo indexInfo = (IndexInfo) context.getArguments(); 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(); @@ -70,20 +68,25 @@ public class CreateIndexFunction extends FunctionAdapter implements InternalEnti regionPath = getValidRegionName(cache, regionPath); setResultInSender(context, indexInfo, memberId, cache, regionPath); + } catch (IndexExistsException e) { String message = CliStrings.format(CliStrings.CREATE_INDEX__INDEX__EXISTS, indexInfo.getIndexName()); context.getResultSender().lastResult(new CliFunctionResult(memberId, false, message)); + } catch (IndexNameConflictException e) { String message = CliStrings.format(CliStrings.CREATE_INDEX__NAME__CONFLICT, indexInfo.getIndexName()); context.getResultSender().lastResult(new CliFunctionResult(memberId, false, message)); + } catch (RegionNotFoundException e) { String message = CliStrings.format(CliStrings.CREATE_INDEX__INVALID__REGIONPATH, indexInfo.getRegionPath()); context.getResultSender().lastResult(new CliFunctionResult(memberId, false, message)); + } catch (IndexInvalidException e) { context.getResultSender().lastResult(new CliFunctionResult(memberId, e, e.getMessage())); + } catch (Exception e) { String exceptionMessage = CliStrings.format(CliStrings.EXCEPTION_CLASS_AND_MESSAGE, e.getClass().getName(), e.getMessage()); @@ -91,12 +94,13 @@ public class CreateIndexFunction extends FunctionAdapter implements InternalEnti } } - private void setResultInSender(FunctionContext context, IndexInfo indexInfo, String memberId, - Cache cache, String regionPath) { + private void setResultInSender(final FunctionContext context, final IndexInfo indexInfo, final String memberId, + final Cache cache, final String regionPath) { if (regionPath == null) { String message = CliStrings.format(CliStrings.CREATE_INDEX__INVALID__REGIONPATH, indexInfo.getRegionPath()); context.getResultSender().lastResult(new CliFunctionResult(memberId, false, message)); + } else { XmlEntity xmlEntity = new XmlEntity(CacheXml.REGION, "name", cache.getRegion(regionPath).getName()); @@ -104,7 +108,7 @@ public class CreateIndexFunction extends FunctionAdapter implements InternalEnti } } - private String getValidRegionName(Cache cache, String regionPath) { + private String getValidRegionName(final Cache cache, String regionPath) { while (regionPath != null && cache.getRegion(regionPath) == null) { int dotPosition; if (regionPath.contains(".") && ((dotPosition = regionPath.lastIndexOf('.')) != -1)) { @@ -116,8 +120,4 @@ public class CreateIndexFunction extends FunctionAdapter implements InternalEnti return regionPath; } - @Override - public String getId() { - return CreateIndexFunction.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/DataCommandFunction.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/DataCommandFunction.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/DataCommandFunction.java index 96f8815..0483838 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/DataCommandFunction.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/DataCommandFunction.java @@ -14,10 +14,8 @@ */ package org.apache.geode.management.internal.cli.functions; -import java.io.IOException; import java.util.ArrayList; import java.util.Collections; -import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Map; @@ -26,13 +24,11 @@ import java.util.concurrent.atomic.AtomicInteger; import org.apache.commons.lang.StringUtils; import org.apache.logging.log4j.Logger; -import org.apache.shiro.subject.Subject; import org.json.JSONArray; -import org.apache.geode.cache.CacheFactory; import org.apache.geode.cache.DataPolicy; 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.partition.PartitionRegionHelper; import org.apache.geode.cache.query.FunctionDomainException; @@ -69,19 +65,14 @@ import org.apache.geode.pdx.PdxInstance; /** * @since GemFire 7.0 */ -public class DataCommandFunction extends FunctionAdapter implements InternalEntity { - private static final Logger logger = LogService.getLogger(); - +public class DataCommandFunction implements InternalEntity, Function { private static final long serialVersionUID = 1L; - - private boolean optimizeForWrite = false; + private static final Logger logger = LogService.getLogger(); private static final int NESTED_JSON_LENGTH = 20; - @Override - public String getId() { - return DataCommandFunction.class.getName(); - } + private boolean optimizeForWrite = false; + private InternalCache cache; @Override public boolean hasResult() { @@ -89,7 +80,6 @@ public class DataCommandFunction extends FunctionAdapter implements InternalEnti } @Override - public boolean isHA() { return false; } @@ -107,14 +97,14 @@ public class DataCommandFunction extends FunctionAdapter implements InternalEnti } @Override - public void execute(FunctionContext functionContext) { + public void execute(final FunctionContext functionContext) { try { - InternalCache cache = getCache(); + cache = (InternalCache) functionContext.getCache(); DataCommandRequest request = (DataCommandRequest) functionContext.getArguments(); if (logger.isDebugEnabled()) { - logger.debug("Executing function : \n{}\n on member {}", request, - System.getProperty("memberName")); + logger.debug("Executing function : \n{}\n on member {}", request, cache.getMyId()); } + DataCommandResult result = null; if (request.isGet()) { result = get(request, cache.getSecurityService()); @@ -127,22 +117,19 @@ public class DataCommandFunction extends FunctionAdapter implements InternalEnti } else if (request.isSelect()) { result = select(request); } + if (logger.isDebugEnabled()) { logger.debug("Result is {}", result); } functionContext.getResultSender().lastResult(result); + } catch (Exception e) { logger.info("Exception occurred:", e); functionContext.getResultSender().sendException(e); } } - - private InternalCache getCache() { - return (InternalCache) CacheFactory.getAnyInstance(); - } - - public DataCommandResult remove(DataCommandRequest request) { + private DataCommandResult remove(final DataCommandRequest request) { String key = request.getKey(); String keyClass = request.getKeyClass(); String regionName = request.getRegionName(); @@ -150,7 +137,7 @@ public class DataCommandFunction extends FunctionAdapter implements InternalEnti return remove(key, keyClass, regionName, removeAllKeys); } - public DataCommandResult get(DataCommandRequest request, SecurityService securityService) { + private DataCommandResult get(final DataCommandRequest request, final SecurityService securityService) { String key = request.getKey(); String keyClass = request.getKeyClass(); String valueClass = request.getValueClass(); @@ -160,7 +147,7 @@ public class DataCommandFunction extends FunctionAdapter implements InternalEnti securityService); } - public DataCommandResult locateEntry(DataCommandRequest request) { + private DataCommandResult locateEntry(final DataCommandRequest request) { String key = request.getKey(); String keyClass = request.getKeyClass(); String valueClass = request.getValueClass(); @@ -169,7 +156,7 @@ public class DataCommandFunction extends FunctionAdapter implements InternalEnti return locateEntry(key, keyClass, valueClass, regionName, recursive); } - public DataCommandResult put(DataCommandRequest request) { + private DataCommandResult put(final DataCommandRequest request) { String key = request.getKey(); String value = request.getValue(); boolean putIfAbsent = request.isPutIfAbsent(); @@ -179,30 +166,12 @@ public class DataCommandFunction extends FunctionAdapter implements InternalEnti return put(key, value, putIfAbsent, keyClass, valueClass, regionName); } - public DataCommandResult select(DataCommandRequest request) { + DataCommandResult select(final DataCommandRequest request) { String query = request.getQuery(); return select(request.getPrincipal(), query); } - /** - * To catch trace output - */ - public static class WrappedIndexTrackingQueryObserver extends IndexTrackingQueryObserver { - - @Override - public void reset() { - // NOOP - } - - public void reset2() { - super.reset(); - } - } - - @SuppressWarnings("rawtypes") - private DataCommandResult select(Object principal, String queryString) { - - InternalCache cache = getCache(); + private DataCommandResult select(final Object principal, final String queryString) { AtomicInteger nestedObjectCount = new AtomicInteger(0); if (StringUtils.isEmpty(queryString)) { return DataCommandResult.createSelectInfoResult(null, null, -1, null, @@ -211,8 +180,9 @@ public class DataCommandFunction extends FunctionAdapter implements InternalEnti QueryService qs = cache.getQueryService(); - // TODO : Find out if is this optimised use. Can you have something equivalent of parsed + // TODO : Find out if is this optimized use. Can you have something equivalent of parsed // queries with names where name can be retrieved to avoid parsing every-time + Query query = qs.newQuery(queryString); DefaultQuery tracedQuery = (DefaultQuery) query; WrappedIndexTrackingQueryObserver queryObserver = null; @@ -244,6 +214,7 @@ public class DataCommandFunction extends FunctionAdapter implements InternalEnti logger.warn(e.getMessage(), e); return DataCommandResult.createSelectResult(queryString, null, queryVerboseMsg, e, e.getMessage(), false); + } finally { if (queryObserver != null) { QueryObserverHolder.reset(); @@ -251,14 +222,16 @@ public class DataCommandFunction extends FunctionAdapter implements InternalEnti } } - private void select_NonSelectResults(Object results, List<SelectResultRow> list) { + private void select_NonSelectResults(final Object results, final List<SelectResultRow> list) { if (logger.isDebugEnabled()) { logger.debug("BeanResults : Bean Results class is {}", results.getClass()); } String str = toJson(results); GfJsonObject jsonBean; + try { jsonBean = new GfJsonObject(str); + } catch (GfJsonException e) { logger.info("Exception occurred:", e); jsonBean = new GfJsonObject(); @@ -268,17 +241,18 @@ public class DataCommandFunction extends FunctionAdapter implements InternalEnti logger.warn("Ignored GfJsonException:", e1); } } + if (logger.isDebugEnabled()) { logger.debug("BeanResults : Adding bean json string : {}", jsonBean); } list.add(new SelectResultRow(DataCommandResult.ROW_TYPE_BEAN, jsonBean.toString())); } - private void select_SelectResults(SelectResults selectResults, Object principal, - List<SelectResultRow> list, AtomicInteger nestedObjectCount) throws GfJsonException { + private void select_SelectResults(final SelectResults selectResults, final Object principal, + final List<SelectResultRow> list, final AtomicInteger nestedObjectCount) throws GfJsonException { for (Object object : selectResults) { // Post processing - object = getCache().getSecurityService().postProcess(principal, null, null, object, false); + object = cache.getSecurityService().postProcess(principal, null, null, object, false); if (object instanceof Struct) { StructImpl impl = (StructImpl) object; @@ -288,19 +262,23 @@ public class DataCommandFunction extends FunctionAdapter implements InternalEnti } list.add( new SelectResultRow(DataCommandResult.ROW_TYPE_STRUCT_RESULT, jsonStruct.toString())); + } else if (JsonUtil.isPrimitiveOrWrapper(object.getClass())) { if (logger.isDebugEnabled()) { logger.debug("SelectResults : Adding select primitive : {}", object); } list.add(new SelectResultRow(DataCommandResult.ROW_TYPE_PRIMITIVE, object)); + } else { if (logger.isDebugEnabled()) { logger.debug("SelectResults : Bean Results class is {}", object.getClass()); } String str = toJson(object); GfJsonObject jsonBean; + try { jsonBean = new GfJsonObject(str); + } catch (GfJsonException e) { logger.error(e.getMessage(), e); jsonBean = new GfJsonObject(); @@ -310,6 +288,7 @@ public class DataCommandFunction extends FunctionAdapter implements InternalEnti logger.warn("Ignored GfJsonException:", e1); } } + if (logger.isDebugEnabled()) { logger.debug("SelectResults : Adding bean json string : {}", jsonBean); } @@ -318,7 +297,7 @@ public class DataCommandFunction extends FunctionAdapter implements InternalEnti } } - private String toJson(Object object) { + private String toJson(final Object object) { if (object instanceof Undefined) { return "{\"Value\":\"UNDEFINED\"}"; } else if (object instanceof PdxInstance) { @@ -328,18 +307,21 @@ public class DataCommandFunction extends FunctionAdapter implements InternalEnti } } - private GfJsonObject getJSONForStruct(StructImpl impl, AtomicInteger ai) throws GfJsonException { + private GfJsonObject getJSONForStruct(final StructImpl impl, final AtomicInteger ai) throws GfJsonException { String fields[] = impl.getFieldNames(); Object[] values = impl.getFieldValues(); GfJsonObject jsonObject = new GfJsonObject(); + for (int i = 0; i < fields.length; i++) { Object value = values[i]; + if (value != null) { if (JsonUtil.isPrimitiveOrWrapper(value.getClass())) { jsonObject.put(fields[i], value); } else { jsonObject.put(fields[i], toJson(value)); } + } else { jsonObject.put(fields[i], "null"); } @@ -347,12 +329,8 @@ public class DataCommandFunction extends FunctionAdapter implements InternalEnti return jsonObject; } - @SuppressWarnings({"rawtypes"}) - public DataCommandResult remove(String key, String keyClass, String regionName, - String removeAllKeys) { - - InternalCache cache = getCache(); - + public DataCommandResult remove(final String key, final String keyClass, final String regionName, + final String removeAllKeys) { if (StringUtils.isEmpty(regionName)) { return DataCommandResult.createRemoveResult(key, null, null, CliStrings.REMOVE__MSG__REGIONNAME_EMPTY, false); @@ -367,6 +345,7 @@ public class DataCommandFunction extends FunctionAdapter implements InternalEnti if (region == null) { return DataCommandResult.createRemoveInfoResult(key, null, null, CliStrings.format(CliStrings.REMOVE__MSG__REGION_NOT_FOUND, regionName), false); + } else { if (removeAllKeys == null) { Object keyObject; @@ -397,6 +376,7 @@ public class DataCommandFunction extends FunctionAdapter implements InternalEnti return DataCommandResult.createRemoveInfoResult(key, null, null, CliStrings.REMOVE__MSG__KEY_NOT_FOUND_REGION, false); } + } else { DataPolicy policy = region.getAttributes().getDataPolicy(); if (!policy.withPartitioning()) { @@ -414,11 +394,8 @@ public class DataCommandFunction extends FunctionAdapter implements InternalEnti } } - @SuppressWarnings({"rawtypes"}) - public DataCommandResult get(Object principal, String key, String keyClass, String valueClass, - String regionName, Boolean loadOnCacheMiss, SecurityService securityService) { - - InternalCache cache = getCache(); + public DataCommandResult get(final Object principal, final String key, final String keyClass, final String valueClass, + final String regionName, final Boolean loadOnCacheMiss, final SecurityService securityService) { if (StringUtils.isEmpty(regionName)) { return DataCommandResult.createGetResult(key, null, null, @@ -438,6 +415,7 @@ public class DataCommandFunction extends FunctionAdapter implements InternalEnti } return DataCommandResult.createGetResult(key, null, null, CliStrings.format(CliStrings.GET__MSG__REGION_NOT_FOUND, regionName), false); + } else { Object keyObject; try { @@ -452,6 +430,7 @@ public class DataCommandFunction extends FunctionAdapter implements InternalEnti // TODO determine whether the following conditional logic (assigned to 'doGet') is safer or // necessary + boolean doGet = Boolean.TRUE.equals(loadOnCacheMiss); if (doGet || region.containsKey(keyObject)) { @@ -477,6 +456,7 @@ public class DataCommandFunction extends FunctionAdapter implements InternalEnti } else { return DataCommandResult.createGetResult(key, array[1], null, null, false); } + } else { if (logger.isDebugEnabled()) { logger.debug("Key is not present in the region {}", regionName); @@ -487,11 +467,8 @@ public class DataCommandFunction extends FunctionAdapter implements InternalEnti } } - @SuppressWarnings({"unchecked", "rawtypes"}) - public DataCommandResult locateEntry(String key, String keyClass, String valueClass, - String regionPath, boolean recursive) { - - InternalCache cache = getCache(); + DataCommandResult locateEntry(final String key, final String keyClass, final String valueClass, + final String regionPath, final boolean recursive) { if (StringUtils.isEmpty(regionPath)) { return DataCommandResult.createLocateEntryResult(key, null, null, @@ -513,6 +490,7 @@ public class DataCommandFunction extends FunctionAdapter implements InternalEnti listOfRegionsStartingWithRegionPath.add(targetRegion); } } + if (listOfRegionsStartingWithRegionPath.size() == 0) { if (logger.isDebugEnabled()) { logger.debug("Region Not Found - {}", regionPath); @@ -520,6 +498,7 @@ public class DataCommandFunction extends FunctionAdapter implements InternalEnti return DataCommandResult.createLocateEntryResult(key, null, null, CliStrings.format(CliStrings.REMOVE__MSG__REGION_NOT_FOUND, regionPath), false); } + } else { Region region = cache.getRegion(regionPath); if (region == null) { @@ -574,6 +553,7 @@ public class DataCommandFunction extends FunctionAdapter implements InternalEnti return DataCommandResult.createLocateEntryInfoResult(key, null, null, CliStrings.LOCATE_ENTRY__MSG__KEY_NOT_FOUND_REGION, false); } + } else { if (region.containsKey(keyObject)) { value = region.get(keyObject); @@ -603,9 +583,8 @@ public class DataCommandFunction extends FunctionAdapter implements InternalEnti } } - @SuppressWarnings({"rawtypes"}) - public DataCommandResult put(String key, String value, boolean putIfAbsent, String keyClass, - String valueClass, String regionName) { + public DataCommandResult put(final String key, final String value, final boolean putIfAbsent, final String keyClass, + final String valueClass, final String regionName) { if (StringUtils.isEmpty(regionName)) { return DataCommandResult.createPutResult(key, null, null, @@ -622,11 +601,11 @@ public class DataCommandFunction extends FunctionAdapter implements InternalEnti false); } - InternalCache cache = getCache(); Region region = cache.getRegion(regionName); if (region == null) { return DataCommandResult.createPutResult(key, null, null, CliStrings.format(CliStrings.PUT__MSG__REGION_NOT_FOUND, regionName), false); + } else { Object keyObject; Object valueObject; @@ -646,12 +625,14 @@ public class DataCommandFunction extends FunctionAdapter implements InternalEnti return DataCommandResult.createPutResult(key, null, null, "ClassNotFoundException " + valueClass, false); } + Object returnValue; if (putIfAbsent && region.containsKey(keyObject)) { returnValue = region.get(keyObject); } else { returnValue = region.put(keyObject, valueObject); } + Object array[] = getJSONForNonPrimitiveObject(returnValue); DataCommandResult result = DataCommandResult.createPutResult(key, array[1], null, null, true); if (array[0] != null) { @@ -661,8 +642,7 @@ public class DataCommandFunction extends FunctionAdapter implements InternalEnti } } - @SuppressWarnings({"rawtypes", "unchecked"}) - private Object getClassObject(String string, String klassString) + private Object getClassObject(final String string, final String klassString) throws ClassNotFoundException, IllegalArgumentException { if (StringUtils.isEmpty(klassString)) { return string; @@ -691,6 +671,7 @@ public class DataCommandFunction extends FunctionAdapter implements InternalEnti return Float.parseFloat(string); } return null; + } catch (NumberFormatException e) { throw new IllegalArgumentException( "Failed to convert input key to " + klassString + " Msg : " + e.getMessage()); @@ -700,30 +681,33 @@ public class DataCommandFunction extends FunctionAdapter implements InternalEnti return getObjectFromJson(string, klass); } - @SuppressWarnings({"rawtypes"}) - public static Object[] getJSONForNonPrimitiveObject(Object obj) { + private static Object[] getJSONForNonPrimitiveObject(Object obj) { Object[] array = new Object[2]; if (obj == null) { array[0] = null; array[1] = "<NULL>"; return array; + } else { array[0] = obj.getClass().getCanonicalName(); Class klass = obj.getClass(); + if (JsonUtil.isPrimitiveOrWrapper(klass)) { array[1] = obj; + } else if (obj instanceof PdxInstance) { String str = pdxToJson((PdxInstance) obj); array[1] = str; + } else { GfJsonObject object = new GfJsonObject(obj, true); Iterator keysIterator = object.keys(); while (keysIterator.hasNext()) { String key = (String) keysIterator.next(); Object value = object.get(key); + if (GfJsonObject.isJSONKind(value)) { GfJsonObject jsonVal = new GfJsonObject(value); - // System.out.println("Re-wrote inner object"); try { if (jsonVal.has("type-class")) { object.put(key, jsonVal.get("type-class")); @@ -734,6 +718,7 @@ public class DataCommandFunction extends FunctionAdapter implements InternalEnti } catch (GfJsonException e) { throw new RuntimeException(e); } + } else if (value instanceof JSONArray) { // Its a collection either a set or list try { @@ -750,7 +735,7 @@ public class DataCommandFunction extends FunctionAdapter implements InternalEnti } } - private static String pdxToJson(PdxInstance obj) { + private static String pdxToJson(final PdxInstance obj) { if (obj != null) { try { GfJsonObject json = new GfJsonObject(); @@ -772,7 +757,7 @@ public class DataCommandFunction extends FunctionAdapter implements InternalEnti return null; } - public static <V> V getObjectFromJson(String json, Class<V> klass) { + private static <V> V getObjectFromJson(final String json, final Class<V> klass) { String newString = json.replaceAll("'", "\""); if (newString.charAt(0) == '(') { int len = newString.length(); @@ -783,7 +768,6 @@ public class DataCommandFunction extends FunctionAdapter implements InternalEnti return JsonUtil.jsonToObject(newString, klass); } - /** * Returns a sorted list of all region full paths found in the specified cache. * @@ -791,9 +775,8 @@ public class DataCommandFunction extends FunctionAdapter implements InternalEnti * @param recursive recursive search for sub-regions * @return Returns a sorted list of all region paths defined in the distributed system. */ - @SuppressWarnings({"rawtypes", "unchecked"}) - public static List getAllRegionPaths(InternalCache cache, boolean recursive) { - ArrayList list = new ArrayList(); + private static List getAllRegionPaths(final InternalCache cache, final boolean recursive) { + List list = new ArrayList(); if (cache == null) { return list; } @@ -817,7 +800,7 @@ public class DataCommandFunction extends FunctionAdapter implements InternalEnti return list; } - public static String getLogMessage(QueryObserver observer, long startTime, String query) { + private static String getLogMessage(final QueryObserver observer, final long startTime, final String query) { String usedIndexesString = null; float time = 0.0f; @@ -829,10 +812,11 @@ public class DataCommandFunction extends FunctionAdapter implements InternalEnti IndexTrackingQueryObserver indexObserver = (IndexTrackingQueryObserver) observer; Map usedIndexes = indexObserver.getUsedIndexes(); indexObserver.reset(); - StringBuffer buf = new StringBuffer(); + StringBuilder buf = new StringBuilder(); buf.append(" indexesUsed("); buf.append(usedIndexes.size()); buf.append(")"); + if (usedIndexes.size() > 0) { buf.append(":"); for (Iterator itr = usedIndexes.entrySet().iterator(); itr.hasNext();) { @@ -843,7 +827,9 @@ public class DataCommandFunction extends FunctionAdapter implements InternalEnti } } } + usedIndexesString = buf.toString(); + } else if (DefaultQuery.QUERY_VERBOSE) { usedIndexesString = " indexesUsed(NA due to other observer in the way: " + observer.getClass().getName() + ")"; @@ -853,4 +839,19 @@ public class DataCommandFunction extends FunctionAdapter implements InternalEnti usedIndexesString != null ? usedIndexesString : ""); } + /** + * To catch trace output + */ + public static class WrappedIndexTrackingQueryObserver extends IndexTrackingQueryObserver { + + @Override + public void reset() { + // NOOP + } + + void reset2() { + super.reset(); + } + } + } http://git-wip-us.apache.org/repos/asf/geode/blob/c3c639df/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/DeployFunction.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/DeployFunction.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/DeployFunction.java index 401a368..ce42594 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/DeployFunction.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/DeployFunction.java @@ -21,27 +21,20 @@ 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.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 DeployFunction implements Function, InternalEntity { - private static final Logger logger = LogService.getLogger(); - - public static final String ID = DeployFunction.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) { @@ -52,7 +45,7 @@ public class DeployFunction implements Function, InternalEntity { final Object[] args = (Object[]) context.getArguments(); final String[] jarFilenames = (String[]) args[0]; final byte[][] jarBytes = (byte[][]) args[1]; - InternalCache cache = getCache(); + InternalCache cache = (InternalCache) context.getCache(); DistributedMember member = cache.getDistributedSystem().getDistributedMember(); @@ -96,11 +89,6 @@ public class DeployFunction implements Function, InternalEntity { } @Override - public String getId() { - return ID; - } - - @Override public boolean hasResult() { return true; } @@ -114,4 +102,5 @@ public class DeployFunction implements Function, InternalEntity { public boolean isHA() { return false; } + }
