You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by zh...@apache.org on 2017/06/14 22:07:15 UTC
[28/51] [abbrv] geode git commit: GEODE-2928: get rid of the isGfshVM
static variable
GEODE-2928: get rid of the isGfshVM static variable
* consolidate the availability indicators
* remove the isGfshVM and isGfshVM() method
* enhance the MultiStepCommand to include info on shellOnly commands to enhance command validation
* remove the SUPPORT_MULTIPLE_GFSH static flag and properly remove the gfsh instance at the end of each test
Project: http://git-wip-us.apache.org/repos/asf/geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/geode/commit/f85d2163
Tree: http://git-wip-us.apache.org/repos/asf/geode/tree/f85d2163
Diff: http://git-wip-us.apache.org/repos/asf/geode/diff/f85d2163
Branch: refs/heads/feature/GEM-1483
Commit: f85d216341f4887e80d428f68dc8dfd2824dda5f
Parents: d1db2f0
Author: Jinmei Liao <ji...@pivotal.io>
Authored: Fri May 19 08:58:30 2017 -0700
Committer: Jinmei Liao <ji...@pivotal.io>
Committed: Mon Jun 12 13:54:39 2017 -0700
----------------------------------------------------------------------
.../geode/internal/GfeConsoleReaderFactory.java | 11 ++--
.../geode/management/cli/CliMetaData.java | 4 +-
.../geode/management/internal/cli/CliUtil.java | 9 ---
.../internal/cli/commands/ClientCommands.java | 10 ----
.../commands/CommandAvailabilityIndicator.java | 63 ++++++++++++++++++++
.../internal/cli/commands/ConfigCommands.java | 10 ----
.../CreateAlterDestroyRegionCommands.java | 10 ----
.../internal/cli/commands/DataCommands.java | 19 +-----
.../internal/cli/commands/DeployCommands.java | 10 ----
.../cli/commands/DiskStoreCommands.java | 14 -----
.../cli/commands/DurableClientCommands.java | 26 +++-----
...xportImportClusterConfigurationCommands.java | 10 ----
.../internal/cli/commands/FunctionCommands.java | 10 ----
.../internal/cli/commands/IndexCommands.java | 8 ---
.../cli/commands/LauncherLifecycleCommands.java | 9 ---
.../internal/cli/commands/MemberCommands.java | 29 +++------
.../cli/commands/MiscellaneousCommands.java | 11 ----
.../internal/cli/commands/PDXCommands.java | 14 -----
.../internal/cli/commands/QueueCommands.java | 11 ----
.../internal/cli/commands/RegionCommands.java | 10 ----
.../internal/cli/commands/ShellCommands.java | 7 ---
.../internal/cli/commands/StatusCommands.java | 22 ++-----
.../internal/cli/commands/WanCommands.java | 52 ++++++----------
.../cli/functions/DataCommandFunction.java | 4 +-
.../cli/multistep/CLIMultiStepHelper.java | 21 ++-----
.../cli/multistep/MultiStepCommand.java | 4 ++
.../cli/remote/RemoteExecutionStrategy.java | 26 +++++++-
.../internal/cli/result/AbstractResultData.java | 63 +++++++++-----------
.../management/internal/cli/shell/Gfsh.java | 11 +---
.../cli/shell/GfshExecutionStrategy.java | 2 +-
.../geode/management/DataCommandMBeanTest.java | 59 ++++++++++++++++++
.../management/internal/cli/HeadlessGfsh.java | 11 +---
.../cli/commands/CliCommandTestBase.java | 4 --
.../cli/commands/MemberCommandsDUnitTest.java | 9 ---
.../cli/commands/ShowDeadlockDUnitTest.java | 13 ----
.../dunit/rules/GfshShellConnectionRule.java | 3 -
.../internal/cli/LuceneIndexCommands.java | 10 +++-
37 files changed, 243 insertions(+), 376 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/geode/blob/f85d2163/geode-core/src/main/java/org/apache/geode/internal/GfeConsoleReaderFactory.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/internal/GfeConsoleReaderFactory.java b/geode-core/src/main/java/org/apache/geode/internal/GfeConsoleReaderFactory.java
index 120d625..8c5dba2 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/GfeConsoleReaderFactory.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/GfeConsoleReaderFactory.java
@@ -15,12 +15,12 @@
package org.apache.geode.internal;
-import java.io.Console;
-
-import org.apache.geode.management.internal.cli.CliUtil;
import org.apache.geode.management.internal.cli.LogWrapper;
+import org.apache.geode.management.internal.cli.shell.Gfsh;
import org.apache.geode.management.internal.cli.util.GfshConsoleReader;
+import java.io.Console;
+
/**
* Factory for Console Reader Utility.
*
@@ -39,13 +39,12 @@ public class GfeConsoleReaderFactory {
public static GfeConsoleReader createConsoleReader() {
GfeConsoleReader consoleReader = null;
- if (CliUtil.isGfshVM()) {
+ if (Gfsh.getCurrentInstance() != null) {
LogWrapper.getInstance().info("GfeConsoleReaderFactory.createConsoleReader(): isGfshVM");
consoleReader = new GfshConsoleReader();
LogWrapper.getInstance().info("GfeConsoleReaderFactory.createConsoleReader(): consoleReader: "
+ consoleReader + "=" + consoleReader.isSupported());
- }
- if (consoleReader == null) {
+ } else {
consoleReader = new GfeConsoleReader();
}
return consoleReader;
http://git-wip-us.apache.org/repos/asf/geode/blob/f85d2163/geode-core/src/main/java/org/apache/geode/management/cli/CliMetaData.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/management/cli/CliMetaData.java b/geode-core/src/main/java/org/apache/geode/management/cli/CliMetaData.java
index 2e6dc39..226086f 100644
--- a/geode-core/src/main/java/org/apache/geode/management/cli/CliMetaData.java
+++ b/geode-core/src/main/java/org/apache/geode/management/cli/CliMetaData.java
@@ -38,8 +38,8 @@ public @interface CliMetaData {
public static final String ANNOTATION_NULL_VALUE = "__NULL__";
/**
- * Indicates that the command will only run in the gfsh shell and will not need the management
- * service
+ * Indicates that the command will only run in the gfsh shell Gfsh ExecutionStrategy will use this
+ * flag to determine whether to invoke remote call or not.
**/
boolean shellOnly() default false;
http://git-wip-us.apache.org/repos/asf/geode/blob/f85d2163/geode-core/src/main/java/org/apache/geode/management/internal/cli/CliUtil.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/CliUtil.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/CliUtil.java
index 038e069..b3bdf9a 100755
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/CliUtil.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/CliUtil.java
@@ -73,17 +73,8 @@ import java.util.zip.Inflater;
* @since GemFire 7.0
*/
public class CliUtil {
-
- public static final String GFSHVM_IDENTIFIER = "gfsh";
-
- public static boolean isGfshVM = Boolean.getBoolean(GFSHVM_IDENTIFIER);
-
public static final FileFilter JAR_FILE_FILTER = new CustomFileFilter(".jar");
- public static boolean isGfshVM() {
- return isGfshVM;
- }
-
public static String cliDependenciesExist(boolean includeGfshDependencies) {
String jarProductName = null;
http://git-wip-us.apache.org/repos/asf/geode/blob/f85d2163/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ClientCommands.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ClientCommands.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ClientCommands.java
index e619342..fe27b60 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ClientCommands.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ClientCommands.java
@@ -37,7 +37,6 @@ import org.apache.geode.management.internal.security.ResourceOperation;
import org.apache.geode.security.ResourcePermission.Operation;
import org.apache.geode.security.ResourcePermission.Resource;
import org.springframework.shell.core.CommandMarker;
-import org.springframework.shell.core.annotation.CliAvailabilityIndicator;
import org.springframework.shell.core.annotation.CliCommand;
import org.springframework.shell.core.annotation.CliOption;
@@ -340,13 +339,4 @@ public class ClientCommands implements GfshCommand {
}
}
}
-
- @CliAvailabilityIndicator({CliStrings.LIST_CLIENTS, CliStrings.DESCRIBE_CLIENT})
- public boolean clientCommandsAvailable() {
- boolean isAvailable = true; // always available on server
- if (CliUtil.isGfshVM()) { // in gfsh check if connected
- isAvailable = getGfsh() != null && getGfsh().isConnectedAndReady();
- }
- return isAvailable;
- }
}
http://git-wip-us.apache.org/repos/asf/geode/blob/f85d2163/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CommandAvailabilityIndicator.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CommandAvailabilityIndicator.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CommandAvailabilityIndicator.java
new file mode 100644
index 0000000..59d7206
--- /dev/null
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CommandAvailabilityIndicator.java
@@ -0,0 +1,63 @@
+/*
+ * 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.commands;
+
+import org.apache.geode.management.internal.cli.i18n.CliStrings;
+import org.apache.geode.management.internal.cli.shell.Gfsh;
+import org.springframework.shell.core.CommandMarker;
+import org.springframework.shell.core.annotation.CliAvailabilityIndicator;
+
+public class CommandAvailabilityIndicator implements CommandMarker {
+
+ @CliAvailabilityIndicator({CliStrings.LIST_CLIENTS, CliStrings.DESCRIBE_CLIENT,
+ CliStrings.DESCRIBE_CONFIG, CliStrings.EXPORT_CONFIG, CliStrings.ALTER_RUNTIME_CONFIG,
+ CliStrings.ALTER_REGION, CliStrings.CREATE_REGION, CliStrings.DESTROY_REGION,
+ CliStrings.REBALANCE, CliStrings.GET, CliStrings.PUT, CliStrings.REMOVE,
+ CliStrings.LOCATE_ENTRY, CliStrings.QUERY, CliStrings.IMPORT_DATA, CliStrings.EXPORT_DATA,
+ CliStrings.DEPLOY, CliStrings.UNDEPLOY, CliStrings.LIST_DEPLOYED,
+ CliStrings.BACKUP_DISK_STORE, CliStrings.COMPACT_DISK_STORE, CliStrings.DESCRIBE_DISK_STORE,
+ CliStrings.LIST_DISK_STORE, CliStrings.REVOKE_MISSING_DISK_STORE,
+ CliStrings.SHOW_MISSING_DISK_STORE, CliStrings.CREATE_DISK_STORE,
+ CliStrings.DESTROY_DISK_STORE, CliStrings.LIST_DURABLE_CQS, CliStrings.CLOSE_DURABLE_CLIENTS,
+ CliStrings.CLOSE_DURABLE_CQS, CliStrings.COUNT_DURABLE_CQ_EVENTS,
+ CliStrings.EXPORT_SHARED_CONFIG, CliStrings.IMPORT_SHARED_CONFIG, CliStrings.EXECUTE_FUNCTION,
+ CliStrings.DESTROY_FUNCTION, CliStrings.LIST_FUNCTION, CliStrings.LIST_INDEX,
+ CliStrings.CREATE_INDEX, CliStrings.DESTROY_INDEX, CliStrings.CREATE_DEFINED_INDEXES,
+ CliStrings.CLEAR_DEFINED_INDEXES, CliStrings.DEFINE_INDEX, CliStrings.LIST_MEMBER,
+ CliStrings.DESCRIBE_MEMBER, CliStrings.SHUTDOWN, CliStrings.GC, CliStrings.SHOW_DEADLOCK,
+ CliStrings.SHOW_METRICS, CliStrings.SHOW_LOG, CliStrings.EXPORT_STACKTRACE,
+ CliStrings.NETSTAT, CliStrings.EXPORT_LOGS, CliStrings.CHANGE_LOGLEVEL,
+ CliStrings.CONFIGURE_PDX, CliStrings.CREATE_ASYNC_EVENT_QUEUE,
+ CliStrings.LIST_ASYNC_EVENT_QUEUES, CliStrings.LIST_REGION, CliStrings.DESCRIBE_REGION,
+ CliStrings.STATUS_SHARED_CONFIG, CliStrings.CREATE_GATEWAYSENDER,
+ CliStrings.START_GATEWAYSENDER, CliStrings.PAUSE_GATEWAYSENDER,
+ CliStrings.RESUME_GATEWAYSENDER, CliStrings.STOP_GATEWAYSENDER,
+ CliStrings.CREATE_GATEWAYRECEIVER, CliStrings.START_GATEWAYRECEIVER,
+ CliStrings.STOP_GATEWAYRECEIVER, CliStrings.LIST_GATEWAY, CliStrings.STATUS_GATEWAYSENDER,
+ CliStrings.STATUS_GATEWAYRECEIVER, CliStrings.LOAD_BALANCE_GATEWAYSENDER,
+ CliStrings.DESTROY_GATEWAYSENDER})
+ public boolean clientCommandsAvailable() {
+ Gfsh gfsh = Gfsh.getCurrentInstance();
+
+ // command should always be available on the server
+ if (gfsh == null) {
+ return true;
+ }
+
+ // if in gfshVM, only when gfsh is connected and ready
+ return gfsh.isConnectedAndReady();
+ }
+}
http://git-wip-us.apache.org/repos/asf/geode/blob/f85d2163/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ConfigCommands.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ConfigCommands.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ConfigCommands.java
index bc9c05b..48a8d7a 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ConfigCommands.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ConfigCommands.java
@@ -437,16 +437,6 @@ public class ConfigCommands implements GfshCommand {
}
}
- @CliAvailabilityIndicator({CliStrings.DESCRIBE_CONFIG, CliStrings.EXPORT_CONFIG,
- CliStrings.ALTER_RUNTIME_CONFIG})
- public boolean configCommandsAvailable() {
- boolean isAvailable = true; // always available on server
- if (CliUtil.isGfshVM()) { // in gfsh check if connected
- isAvailable = getGfsh() != null && getGfsh().isConnectedAndReady();
- }
- return isAvailable;
- }
-
/**
* Interceptor used by gfsh to intercept execution of export config command at "shell".
*/
http://git-wip-us.apache.org/repos/asf/geode/blob/f85d2163/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 270972b..b2f1d56 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
@@ -1122,14 +1122,4 @@ public class CreateAlterDestroyRegionCommands implements GfshCommand {
}
return foundMembers;
}
-
- @CliAvailabilityIndicator({CliStrings.ALTER_REGION, CliStrings.CREATE_REGION,
- CliStrings.DESTROY_REGION})
- public boolean isRegionCommandAvailable() {
- boolean isAvailable = true; // always available on server
- if (CliUtil.isGfshVM()) { // in gfsh check if connected //TODO: make this better
- isAvailable = getGfsh() != null && getGfsh().isConnectedAndReady();
- }
- return isAvailable;
- }
}
http://git-wip-us.apache.org/repos/asf/geode/blob/f85d2163/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DataCommands.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DataCommands.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DataCommands.java
index 887470d..d004b38 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DataCommands.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DataCommands.java
@@ -19,7 +19,6 @@ import org.apache.commons.lang.ArrayUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.geode.LogWriter;
import org.apache.geode.cache.CacheClosedException;
-import org.apache.geode.cache.CacheFactory;
import org.apache.geode.cache.DataPolicy;
import org.apache.geode.cache.Region;
import org.apache.geode.cache.control.RebalanceFactory;
@@ -56,7 +55,6 @@ import org.apache.geode.management.internal.cli.result.CompositeResultData;
import org.apache.geode.management.internal.cli.result.ErrorResultData;
import org.apache.geode.management.internal.cli.result.ResultBuilder;
import org.apache.geode.management.internal.cli.result.TabularResultData;
-import org.apache.geode.management.internal.cli.shell.Gfsh;
import org.apache.geode.management.internal.security.ResourceOperation;
import org.apache.geode.security.ResourcePermission.Operation;
import org.apache.geode.security.ResourcePermission.Resource;
@@ -1100,7 +1098,7 @@ public class DataCommands implements GfshCommand {
}
@CliMetaData(relatedTopic = {CliStrings.TOPIC_GEODE_DATA, CliStrings.TOPIC_GEODE_REGION})
- @MultiStepCommand
+ @MultiStepCommand(shellOnlyStep = {"ALL"})
@CliCommand(value = {CliStrings.QUERY}, help = CliStrings.QUERY__HELP)
public Object query(
@CliOption(key = CliStrings.QUERY__QUERY, help = CliStrings.QUERY__QUERY__HELP,
@@ -1110,10 +1108,6 @@ public class DataCommands implements GfshCommand {
@CliOption(key = CliStrings.QUERY__INTERACTIVE, help = CliStrings.QUERY__INTERACTIVE__HELP,
unspecifiedDefaultValue = "true") final boolean interactive) {
- if (!CliUtil.isGfshVM() && stepName.equals(CliStrings.QUERY__STEPNAME__DEFAULTVALUE)) {
- return ResultBuilder.createInfoResult(CliStrings.QUERY__MSG__NOT_SUPPORTED_ON_MEMBERS);
- }
-
Object[] arguments = new Object[] {query, stepName, interactive};
CLIStep exec = new SelectExecStep(arguments);
CLIStep display = new DataCommandFunction.SelectDisplayStep(arguments);
@@ -1123,17 +1117,6 @@ public class DataCommands implements GfshCommand {
return CLIMultiStepHelper.chooseStep(steps, stepName);
}
- @CliAvailabilityIndicator({CliStrings.REBALANCE, CliStrings.GET, CliStrings.PUT,
- CliStrings.REMOVE, CliStrings.LOCATE_ENTRY, CliStrings.QUERY, CliStrings.IMPORT_DATA,
- CliStrings.EXPORT_DATA})
- public boolean dataCommandsAvailable() {
- boolean isAvailable = true; // always available on server
- if (CliUtil.isGfshVM()) { // in gfsh check if connected
- isAvailable = getGfsh() != null && getGfsh().isConnectedAndReady();
- }
- return isAvailable;
- }
-
private static class MemberPRInfo {
ArrayList<DistributedMember> dsMemberList;
public String region;
http://git-wip-us.apache.org/repos/asf/geode/blob/f85d2163/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DeployCommands.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DeployCommands.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DeployCommands.java
index 8511de8..99216bf 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DeployCommands.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DeployCommands.java
@@ -40,7 +40,6 @@ import org.apache.geode.management.internal.security.ResourceOperation;
import org.apache.geode.security.NotAuthorizedException;
import org.apache.geode.security.ResourcePermission.Operation;
import org.apache.geode.security.ResourcePermission.Resource;
-import org.springframework.shell.core.annotation.CliAvailabilityIndicator;
import org.springframework.shell.core.annotation.CliCommand;
import org.springframework.shell.core.annotation.CliOption;
@@ -275,15 +274,6 @@ public class DeployCommands implements GfshCommand {
}
}
- @CliAvailabilityIndicator({CliStrings.DEPLOY, CliStrings.UNDEPLOY, CliStrings.LIST_DEPLOYED})
- public boolean isConnected() {
- if (!CliUtil.isGfshVM()) {
- return true;
- }
-
- return getGfsh() != null && getGfsh().isConnectedAndReady();
- }
-
/**
* Interceptor used by gfsh to intercept execution of deploy command at "shell".
*/
http://git-wip-us.apache.org/repos/asf/geode/blob/f85d2163/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DiskStoreCommands.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DiskStoreCommands.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DiskStoreCommands.java
index 16124aa..ef2c3dd 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DiskStoreCommands.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DiskStoreCommands.java
@@ -1458,18 +1458,4 @@ public class DiskStoreCommands implements GfshCommand {
erd.addLine(message);
return ResultBuilder.buildResult(erd);
}
-
- @CliAvailabilityIndicator({CliStrings.BACKUP_DISK_STORE, CliStrings.COMPACT_DISK_STORE,
- CliStrings.DESCRIBE_DISK_STORE, CliStrings.LIST_DISK_STORE,
- CliStrings.REVOKE_MISSING_DISK_STORE, CliStrings.SHOW_MISSING_DISK_STORE,
- CliStrings.CREATE_DISK_STORE, CliStrings.DESTROY_DISK_STORE})
- public boolean diskStoreCommandsAvailable() {
- // these disk store commands are always available in GemFire
- return (!CliUtil.isGfshVM() || (getGfsh() != null && getGfsh().isConnectedAndReady()));
- }
-
- @CliAvailabilityIndicator({CliStrings.DESCRIBE_OFFLINE_DISK_STORE})
- public boolean offlineDiskStoreCommandsAvailable() {
- return true;
- }
}
http://git-wip-us.apache.org/repos/asf/geode/blob/f85d2163/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DurableClientCommands.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DurableClientCommands.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DurableClientCommands.java
index 6441f20..ef744d1 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DurableClientCommands.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DurableClientCommands.java
@@ -14,13 +14,6 @@
*/
package org.apache.geode.management.internal.cli.commands;
-import java.util.HashMap;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.TreeMap;
-
import org.apache.geode.cache.execute.ResultCollector;
import org.apache.geode.distributed.DistributedMember;
import org.apache.geode.management.cli.CliMetaData;
@@ -43,11 +36,16 @@ import org.apache.geode.management.internal.cli.result.TabularResultData;
import org.apache.geode.management.internal.security.ResourceOperation;
import org.apache.geode.security.ResourcePermission.Operation;
import org.apache.geode.security.ResourcePermission.Resource;
-
-import org.springframework.shell.core.annotation.CliAvailabilityIndicator;
import org.springframework.shell.core.annotation.CliCommand;
import org.springframework.shell.core.annotation.CliOption;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeMap;
+
/**
* The DurableClientCommands class encapsulates all GemFire shell (Gfsh) commands related to durable
* clients and cqs defined in GemFire.
@@ -416,15 +414,5 @@ public class DurableClientCommands implements GfshCommand {
}
}
}
-
- @CliAvailabilityIndicator({CliStrings.LIST_DURABLE_CQS, CliStrings.CLOSE_DURABLE_CLIENTS,
- CliStrings.CLOSE_DURABLE_CQS, CliStrings.COUNT_DURABLE_CQ_EVENTS})
- public boolean durableCommandsAvailable() {
- boolean isAvailable = true;
- if (CliUtil.isGfshVM()) {
- isAvailable = getGfsh() != null && getGfsh().isConnectedAndReady();
- }
- return isAvailable;
- }
}
http://git-wip-us.apache.org/repos/asf/geode/blob/f85d2163/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ExportImportClusterConfigurationCommands.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ExportImportClusterConfigurationCommands.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ExportImportClusterConfigurationCommands.java
index 9d263d1..83eddee 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ExportImportClusterConfigurationCommands.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ExportImportClusterConfigurationCommands.java
@@ -45,7 +45,6 @@ import org.apache.geode.management.internal.security.ResourceOperation;
import org.apache.geode.security.ResourcePermission.Operation;
import org.apache.geode.security.ResourcePermission.Resource;
import org.apache.logging.log4j.Logger;
-import org.springframework.shell.core.annotation.CliAvailabilityIndicator;
import org.springframework.shell.core.annotation.CliCommand;
import org.springframework.shell.core.annotation.CliOption;
@@ -213,15 +212,6 @@ public class ExportImportClusterConfigurationCommands implements GfshCommand {
return results.get(0);
}
- @CliAvailabilityIndicator({CliStrings.EXPORT_SHARED_CONFIG, CliStrings.IMPORT_SHARED_CONFIG})
- public boolean sharedConfigCommandsAvailable() {
- boolean isAvailable = true; // always available on server
- if (CliUtil.isGfshVM()) { // in gfsh check if connected
- isAvailable = getGfsh() != null && getGfsh().isConnectedAndReady();
- }
- return isAvailable;
- }
-
/**
* Interceptor used by gfsh to intercept execution of export shared config command at "shell".
*/
http://git-wip-us.apache.org/repos/asf/geode/blob/f85d2163/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/FunctionCommands.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/FunctionCommands.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/FunctionCommands.java
index 2774584..b0193af 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/FunctionCommands.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/FunctionCommands.java
@@ -584,14 +584,4 @@ public class FunctionCommands implements GfshCommand {
"Exception while attempting to list functions: " + th.getMessage());
}
}
-
- @CliAvailabilityIndicator({CliStrings.EXECUTE_FUNCTION, CliStrings.DESTROY_FUNCTION,
- CliStrings.LIST_FUNCTION})
- public boolean functionCommandsAvailable() {
- boolean isAvailable = true; // always available on server
- if (CliUtil.isGfshVM()) { // in gfsh check if connected
- isAvailable = getGfsh() != null && getGfsh().isConnectedAndReady();
- }
- return isAvailable;
- }
}
http://git-wip-us.apache.org/repos/asf/geode/blob/f85d2163/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/IndexCommands.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/IndexCommands.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/IndexCommands.java
index 5a4a3d7..c61de37 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/IndexCommands.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/IndexCommands.java
@@ -47,7 +47,6 @@ import org.apache.geode.management.internal.configuration.domain.XmlEntity;
import org.apache.geode.management.internal.security.ResourceOperation;
import org.apache.geode.security.ResourcePermission.Operation;
import org.apache.geode.security.ResourcePermission.Resource;
-import org.springframework.shell.core.annotation.CliAvailabilityIndicator;
import org.springframework.shell.core.annotation.CliCommand;
import org.springframework.shell.core.annotation.CliOption;
@@ -636,13 +635,6 @@ public class IndexCommands implements GfshCommand {
return ResultBuilder.buildResult(infoResult);
}
- @CliAvailabilityIndicator({CliStrings.LIST_INDEX, CliStrings.CREATE_INDEX,
- CliStrings.DESTROY_INDEX, CliStrings.CREATE_DEFINED_INDEXES, CliStrings.CLEAR_DEFINED_INDEXES,
- CliStrings.DEFINE_INDEX})
- public boolean indexCommandsAvailable() {
- return !CliUtil.isGfshVM() || getGfsh() != null && getGfsh().isConnectedAndReady();
- }
-
protected static class IndexStatisticsDetailsAdapter {
private final IndexStatisticsDetails indexStatisticsDetails;
http://git-wip-us.apache.org/repos/asf/geode/blob/f85d2163/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/LauncherLifecycleCommands.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/LauncherLifecycleCommands.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/LauncherLifecycleCommands.java
index 45fbf1b..bc506cf 100755
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/LauncherLifecycleCommands.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/LauncherLifecycleCommands.java
@@ -90,7 +90,6 @@ import org.apache.geode.management.internal.cli.util.ThreePhraseGenerator;
import org.apache.geode.management.internal.configuration.utils.ClusterConfigurationStatusRetriever;
import org.apache.geode.management.internal.security.ResourceConstants;
import org.apache.geode.security.AuthenticationFailedException;
-import org.springframework.shell.core.annotation.CliAvailabilityIndicator;
import org.springframework.shell.core.annotation.CliCommand;
import org.springframework.shell.core.annotation.CliOption;
@@ -1378,14 +1377,6 @@ public class LauncherLifecycleCommands implements GfshCommand {
return resourceFile;
}
- @CliAvailabilityIndicator({CliStrings.START_LOCATOR, CliStrings.STOP_LOCATOR,
- CliStrings.STATUS_LOCATOR, CliStrings.START_SERVER, CliStrings.STOP_SERVER,
- CliStrings.STATUS_SERVER, CliStrings.START_MANAGER, CliStrings.START_PULSE,
- CliStrings.START_VSD, CliStrings.START_DATABROWSER})
- public boolean launcherCommandsAvailable() {
- return true;
- }
-
protected static class LauncherSignalListener implements SignalListener {
private volatile boolean signaled = false;
http://git-wip-us.apache.org/repos/asf/geode/blob/f85d2163/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/MemberCommands.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/MemberCommands.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/MemberCommands.java
index 695718a..74264c3 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/MemberCommands.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/MemberCommands.java
@@ -14,17 +14,6 @@
*/
package org.apache.geode.management.internal.cli.commands;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-import java.util.TreeSet;
-
-import org.springframework.shell.core.CommandMarker;
-import org.springframework.shell.core.annotation.CliAvailabilityIndicator;
-import org.springframework.shell.core.annotation.CliCommand;
-import org.springframework.shell.core.annotation.CliOption;
-
import org.apache.geode.cache.CacheClosedException;
import org.apache.geode.cache.CacheFactory;
import org.apache.geode.cache.execute.FunctionInvocationTargetException;
@@ -48,6 +37,15 @@ import org.apache.geode.management.internal.cli.shell.Gfsh;
import org.apache.geode.management.internal.security.ResourceOperation;
import org.apache.geode.security.ResourcePermission.Operation;
import org.apache.geode.security.ResourcePermission.Resource;
+import org.springframework.shell.core.CommandMarker;
+import org.springframework.shell.core.annotation.CliCommand;
+import org.springframework.shell.core.annotation.CliOption;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+import java.util.TreeSet;
/**
* @since GemFire 7.0
@@ -196,13 +194,4 @@ public class MemberCommands implements GfshCommand {
return result;
}
- @CliAvailabilityIndicator({CliStrings.LIST_MEMBER, CliStrings.DESCRIBE_MEMBER})
- public boolean isListMemberAvailable() {
- boolean isAvailable = true;
- if (CliUtil.isGfshVM()) {
- isAvailable = getGfsh() != null && getGfsh().isConnectedAndReady();
- }
- return isAvailable;
- }
-
}
http://git-wip-us.apache.org/repos/asf/geode/blob/f85d2163/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 9754d7d..2c3d766 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
@@ -1938,17 +1938,6 @@ public class MiscellaneousCommands implements GfshCommand {
}
}
- @CliAvailabilityIndicator({CliStrings.SHUTDOWN, CliStrings.GC, CliStrings.SHOW_DEADLOCK,
- CliStrings.SHOW_METRICS, CliStrings.SHOW_LOG, CliStrings.EXPORT_STACKTRACE,
- CliStrings.NETSTAT, CliStrings.EXPORT_LOGS, CliStrings.CHANGE_LOGLEVEL})
- public boolean shutdownCommandAvailable() {
- boolean isAvailable = true; // always available on server
- if (CliUtil.isGfshVM()) { // in gfsh check if connected
- isAvailable = getGfsh() != null && getGfsh().isConnectedAndReady();
- }
- return isAvailable;
- }
-
private Set<String> getSetDifference(Set<String> set1, Set<String> set2) {
Set<String> setDifference = new HashSet<String>();
for (String element : set1) {
http://git-wip-us.apache.org/repos/asf/geode/blob/f85d2163/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/PDXCommands.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/PDXCommands.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/PDXCommands.java
index 9f1290d..9bfd47b 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/PDXCommands.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/PDXCommands.java
@@ -32,7 +32,6 @@ import org.apache.geode.pdx.internal.EnumInfo;
import org.apache.geode.pdx.internal.PdxType;
import org.apache.geode.security.ResourcePermission.Operation;
import org.apache.geode.security.ResourcePermission.Resource;
-import org.springframework.shell.core.annotation.CliAvailabilityIndicator;
import org.springframework.shell.core.annotation.CliCommand;
import org.springframework.shell.core.annotation.CliOption;
@@ -152,14 +151,6 @@ public class PDXCommands implements GfshCommand {
return result;
}
- @CliAvailabilityIndicator({CliStrings.CONFIGURE_PDX})
- public boolean isRegionCommandAvailable() {
- if (!CliUtil.isGfshVM()) {
- return true;
- }
- return (getGfsh() != null && getGfsh().isConnectedAndReady());
- }
-
@CliCommand(value = CliStrings.PDX_RENAME, help = CliStrings.PDX_RENAME__HELP)
@CliMetaData(shellOnly = true, relatedTopic = {CliStrings.TOPIC_GEODE_DISKSTORE})
@ResourceOperation(resource = Resource.DATA, operation = Operation.MANAGE)
@@ -208,9 +199,4 @@ public class PDXCommands implements GfshCommand {
}
}
-
- @CliAvailabilityIndicator({CliStrings.PDX_RENAME})
- public boolean pdxRenameCommandsAvailable() {
- return true;
- }
}
http://git-wip-us.apache.org/repos/asf/geode/blob/f85d2163/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/QueueCommands.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/QueueCommands.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/QueueCommands.java
index d3c2635..0f407e7 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/QueueCommands.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/QueueCommands.java
@@ -35,7 +35,6 @@ import org.apache.geode.management.internal.configuration.domain.XmlEntity;
import org.apache.geode.management.internal.security.ResourceOperation;
import org.apache.geode.security.ResourcePermission.Operation;
import org.apache.geode.security.ResourcePermission.Resource;
-import org.springframework.shell.core.annotation.CliAvailabilityIndicator;
import org.springframework.shell.core.annotation.CliCommand;
import org.springframework.shell.core.annotation.CliOption;
@@ -256,14 +255,4 @@ public class QueueCommands implements GfshCommand {
new Object[] {th.getMessage()}));
}
}
-
- @CliAvailabilityIndicator({CliStrings.CREATE_ASYNC_EVENT_QUEUE,
- CliStrings.LIST_ASYNC_EVENT_QUEUES})
- public boolean queueCommandsAvailable() {
- boolean isAvailable = true;
- if (CliUtil.isGfshVM()) {
- isAvailable = getGfsh() != null && getGfsh().isConnectedAndReady();
- }
- return isAvailable;
- }
}
http://git-wip-us.apache.org/repos/asf/geode/blob/f85d2163/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/RegionCommands.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/RegionCommands.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/RegionCommands.java
index 2009dcc..260230b 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/RegionCommands.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/RegionCommands.java
@@ -489,14 +489,4 @@ public class RegionCommands implements GfshCommand {
}
}
}
-
- @CliAvailabilityIndicator({CliStrings.LIST_REGION, CliStrings.DESCRIBE_REGION})
- public boolean isRegionCommandAvailable() {
- boolean isAvailable = true; // always available on server
- if (CliUtil.isGfshVM()) { // in gfsh check if connected //TODO : make this better
- isAvailable = getGfsh() != null && getGfsh().isConnectedAndReady();
- }
- return isAvailable;
- }
-
}
http://git-wip-us.apache.org/repos/asf/geode/blob/f85d2163/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ShellCommands.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ShellCommands.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ShellCommands.java
index efd10d2..e37d1ba 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ShellCommands.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ShellCommands.java
@@ -55,7 +55,6 @@ import org.apache.geode.management.internal.web.shell.HttpOperationInvoker;
import org.apache.geode.management.internal.web.shell.RestHttpOperationInvoker;
import org.apache.geode.security.AuthenticationFailedException;
import org.springframework.shell.core.ExitShellRequest;
-import org.springframework.shell.core.annotation.CliAvailabilityIndicator;
import org.springframework.shell.core.annotation.CliCommand;
import org.springframework.shell.core.annotation.CliOption;
@@ -1037,10 +1036,4 @@ public class ShellCommands implements GfshCommand {
}
return result;
}
-
- @CliAvailabilityIndicator({CliStrings.CONNECT, CliStrings.DISCONNECT,
- CliStrings.DESCRIBE_CONNECTION})
- public boolean isAvailable() {
- return true;
- }
}
http://git-wip-us.apache.org/repos/asf/geode/blob/f85d2163/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/StatusCommands.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/StatusCommands.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/StatusCommands.java
index fffb964..0b0b78b 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/StatusCommands.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/StatusCommands.java
@@ -14,14 +14,6 @@
*/
package org.apache.geode.management.internal.cli.commands;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.springframework.shell.core.CommandMarker;
-import org.springframework.shell.core.annotation.CliAvailabilityIndicator;
-import org.springframework.shell.core.annotation.CliCommand;
-
import org.apache.geode.cache.execute.ResultCollector;
import org.apache.geode.distributed.DistributedMember;
import org.apache.geode.internal.cache.GemFireCacheImpl;
@@ -39,6 +31,12 @@ import org.apache.geode.management.internal.configuration.domain.SharedConfigura
import org.apache.geode.management.internal.security.ResourceOperation;
import org.apache.geode.security.ResourcePermission.Operation;
import org.apache.geode.security.ResourcePermission.Resource;
+import org.springframework.shell.core.CommandMarker;
+import org.springframework.shell.core.annotation.CliCommand;
+
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
public class StatusCommands implements GfshCommand {
static final FetchSharedConfigurationStatusFunction fetchSharedConfigStatusFunction =
@@ -81,12 +79,4 @@ public class StatusCommands implements GfshCommand {
}
return table;
}
-
- @CliAvailabilityIndicator({CliStrings.STATUS_SHARED_CONFIG})
- public boolean isConnected() {
- if (!CliUtil.isGfshVM()) {
- return true;
- }
- return (getGfsh() != null && getGfsh().isConnectedAndReady());
- }
}
http://git-wip-us.apache.org/repos/asf/geode/blob/f85d2163/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 28686ce..ad3d22c 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
@@ -14,27 +14,6 @@
*/
package org.apache.geode.management.internal.cli.commands;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.TreeMap;
-import java.util.concurrent.Callable;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.Future;
-import java.util.concurrent.ThreadFactory;
-import java.util.concurrent.atomic.AtomicInteger;
-import java.util.concurrent.atomic.AtomicReference;
-
-import javax.management.ObjectName;
-
-import org.springframework.shell.core.annotation.CliAvailabilityIndicator;
-import org.springframework.shell.core.annotation.CliCommand;
-import org.springframework.shell.core.annotation.CliOption;
-
import org.apache.geode.cache.execute.ResultCollector;
import org.apache.geode.distributed.DistributedMember;
import org.apache.geode.internal.cache.InternalCache;
@@ -65,6 +44,24 @@ import org.apache.geode.management.internal.configuration.domain.XmlEntity;
import org.apache.geode.management.internal.security.ResourceOperation;
import org.apache.geode.security.ResourcePermission.Operation;
import org.apache.geode.security.ResourcePermission.Resource;
+import org.springframework.shell.core.annotation.CliCommand;
+import org.springframework.shell.core.annotation.CliOption;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeMap;
+import java.util.concurrent.Callable;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
+import java.util.concurrent.ThreadFactory;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.concurrent.atomic.AtomicReference;
+import javax.management.ObjectName;
public class WanCommands implements GfshCommand {
@@ -1129,19 +1126,6 @@ public class WanCommands implements GfshCommand {
resultData.accumulate("Message", message);
}
- @CliAvailabilityIndicator({CliStrings.CREATE_GATEWAYSENDER, CliStrings.START_GATEWAYSENDER,
- CliStrings.PAUSE_GATEWAYSENDER, CliStrings.RESUME_GATEWAYSENDER,
- CliStrings.STOP_GATEWAYSENDER, CliStrings.CREATE_GATEWAYRECEIVER,
- CliStrings.START_GATEWAYRECEIVER, CliStrings.STOP_GATEWAYRECEIVER, CliStrings.LIST_GATEWAY,
- CliStrings.STATUS_GATEWAYSENDER, CliStrings.STATUS_GATEWAYRECEIVER,
- CliStrings.LOAD_BALANCE_GATEWAYSENDER, CliStrings.DESTROY_GATEWAYSENDER})
- public boolean isWanCommandsAvailable() {
- boolean isAvailable = true; // always available on server
- if (CliUtil.isGfshVM()) {
- isAvailable = getGfsh() != null && getGfsh().isConnectedAndReady();
- }
- return isAvailable;
- }
private Result handleCommandResultException(CommandResultException crex) {
Result result = null;
http://git-wip-us.apache.org/repos/asf/geode/blob/f85d2163/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 20e2701..0efe074 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
@@ -47,7 +47,6 @@ import org.apache.geode.internal.cache.PartitionedRegion;
import org.apache.geode.internal.logging.LogService;
import org.apache.geode.internal.security.SecurityService;
import org.apache.geode.management.cli.Result;
-import org.apache.geode.management.internal.cli.CliUtil;
import org.apache.geode.management.internal.cli.commands.DataCommands;
import org.apache.geode.management.internal.cli.domain.DataCommandRequest;
import org.apache.geode.management.internal.cli.domain.DataCommandResult;
@@ -125,7 +124,6 @@ public class DataCommandFunction extends FunctionAdapter implements InternalEnti
@Override
public void execute(FunctionContext functionContext) {
try {
- InternalCache cache = getCache();
DataCommandRequest request = (DataCommandRequest) functionContext.getArguments();
if (logger.isDebugEnabled()) {
logger.debug("Executing function : \n{}\n on member {}", request,
@@ -1041,7 +1039,7 @@ public class DataCommandFunction extends FunctionAdapter implements InternalEnti
public static int getPageSize() {
int pageSize = -1;
Map<String, String> session;
- if (CliUtil.isGfshVM()) {
+ if (Gfsh.getCurrentInstance() != null) {
session = Gfsh.getCurrentInstance().getEnv();
} else {
session = CommandExecutionContext.getShellEnv();
http://git-wip-us.apache.org/repos/asf/geode/blob/f85d2163/geode-core/src/main/java/org/apache/geode/management/internal/cli/multistep/CLIMultiStepHelper.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/multistep/CLIMultiStepHelper.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/multistep/CLIMultiStepHelper.java
index d53261d..4eeb227 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/multistep/CLIMultiStepHelper.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/multistep/CLIMultiStepHelper.java
@@ -17,11 +17,9 @@ package org.apache.geode.management.internal.cli.multistep;
import org.apache.geode.LogWriter;
import org.apache.geode.cache.CacheFactory;
import org.apache.geode.management.cli.Result;
-import org.apache.geode.management.internal.cli.CliUtil;
import org.apache.geode.management.internal.cli.CommandRequest;
import org.apache.geode.management.internal.cli.GfshParseResult;
import org.apache.geode.management.internal.cli.LogWrapper;
-import org.apache.geode.management.internal.cli.i18n.CliStrings;
import org.apache.geode.management.internal.cli.json.GfJsonException;
import org.apache.geode.management.internal.cli.json.GfJsonObject;
import org.apache.geode.management.internal.cli.remote.CommandExecutionContext;
@@ -56,7 +54,8 @@ public class CLIMultiStepHelper {
public static final String STEP_ARGS = "stepArgs";
public static final int DEFAULT_PAGE_SIZE = 20;
- public static Result execCLISteps(LogWrapper logWrapper, Gfsh shell, ParseResult parseResult) {
+ public static Result execCLISteps(MultiStepCommand msc, LogWrapper logWrapper, Gfsh shell,
+ ParseResult parseResult) {
CLIStep[] steps = (CLIStep[]) ReflectionUtils.invokeMethod(parseResult.getMethod(),
parseResult.getInstance(), parseResult.getArguments());
if (steps != null) {
@@ -117,7 +116,7 @@ public class CLIMultiStepHelper {
CommandRequest commandRequest = new CommandRequest(gfshParseResult, shell.getEnv());
commandRequest
.setCustomInput(changeStepName(gfshParseResult.getUserInput(), nextStep.getName()));
- commandRequest.getCustomParameters().put(CliStrings.QUERY__STEPNAME,
+ commandRequest.getCustomParameters().put(MultiStepCommand.STEP_PARAMETER_NAME,
nextStep.getName());
String json = (String) shell.getOperationInvoker().processCommand(commandRequest);
@@ -127,11 +126,6 @@ public class CLIMultiStepHelper {
throw new IllegalArgumentException("Command Configuration/Definition error.");
}
} else {
- try {
- throw new Exception();
- } catch (Exception ex) {
- ex.printStackTrace();
- }
throw new IllegalStateException(
"Can't execute a remote command without connection. Use 'connect' first to connect.");
}
@@ -208,7 +202,7 @@ public class CLIMultiStepHelper {
public static GfJsonObject getStepArgs() {
Map<String, String> args = null;
- if (CliUtil.isGfshVM) {
+ if (Gfsh.getCurrentInstance() != null) {
args = Gfsh.getCurrentInstance().getEnv();
} else {
args = CommandExecutionContext.getShellEnv();
@@ -227,13 +221,6 @@ public class CLIMultiStepHelper {
return object;
}
- public static Result createSimpleStepResult(String nextStep) {
- CompositeResultData result = ResultBuilder.createCompositeResultData();
- SectionResultData section = result.addSection(STEP_SECTION);
- section.addData(NEXT_STEP_NAME, nextStep);
- return ResultBuilder.buildResult(result);
- }
-
public static Object chooseStep(CLIStep[] steps, String stepName) {
if ("ALL".equals(stepName)) {
return steps;
http://git-wip-us.apache.org/repos/asf/geode/blob/f85d2163/geode-core/src/main/java/org/apache/geode/management/internal/cli/multistep/MultiStepCommand.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/multistep/MultiStepCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/multistep/MultiStepCommand.java
index 6708726..75925f7 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/multistep/MultiStepCommand.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/multistep/MultiStepCommand.java
@@ -27,5 +27,9 @@ import java.lang.annotation.Target;
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface MultiStepCommand {
+ public static String STEP_PARAMETER_NAME = "step-name";
+ String[] shellOnlyStep();
+
+ String stepParameterName() default STEP_PARAMETER_NAME;
}
http://git-wip-us.apache.org/repos/asf/geode/blob/f85d2163/geode-core/src/main/java/org/apache/geode/management/internal/cli/remote/RemoteExecutionStrategy.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/remote/RemoteExecutionStrategy.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/remote/RemoteExecutionStrategy.java
index fa0f3b2..89cb9ad 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/remote/RemoteExecutionStrategy.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/remote/RemoteExecutionStrategy.java
@@ -14,6 +14,7 @@
*/
package org.apache.geode.management.internal.cli.remote;
+import org.apache.commons.lang.StringUtils;
import org.apache.geode.internal.ClassPathLoader;
import org.apache.geode.management.ManagementService;
import org.apache.geode.management.cli.CliMetaData;
@@ -22,6 +23,7 @@ import org.apache.geode.management.cli.Result.Status;
import org.apache.geode.management.internal.cli.CliAroundInterceptor;
import org.apache.geode.management.internal.cli.GfshParseResult;
import org.apache.geode.management.internal.cli.LogWrapper;
+import org.apache.geode.management.internal.cli.multistep.MultiStepCommand;
import org.apache.geode.management.internal.cli.result.FileResult;
import org.apache.geode.management.internal.cli.result.ResultBuilder;
import org.springframework.shell.event.ParseResult;
@@ -29,6 +31,7 @@ import org.springframework.util.Assert;
import org.springframework.util.ReflectionUtils;
import java.lang.reflect.Method;
+import java.util.Arrays;
/**
*
@@ -54,7 +57,7 @@ public class RemoteExecutionStrategy {
Method method = gfshParseResult.getMethod();
- if (!isShellOnly(method)) {
+ if (!isShellOnly(method, gfshParseResult)) {
Boolean fromShell = CommandExecutionContext.isShellRequest();
boolean sentFromShell = fromShell != null && fromShell.booleanValue();
String interceptorClass = getInterceptor(gfshParseResult.getMethod());
@@ -120,9 +123,26 @@ public class RemoteExecutionStrategy {
return result;
}
- private boolean isShellOnly(Method method) {
+ private boolean isShellOnly(Method method, GfshParseResult result) {
CliMetaData cliMetadata = method.getAnnotation(CliMetaData.class);
- return cliMetadata != null && cliMetadata.shellOnly();
+ if (cliMetadata == null) {
+ return false;
+ }
+ if (cliMetadata.shellOnly()) {
+ return true;
+ }
+ MultiStepCommand stepCommand = method.getAnnotation(MultiStepCommand.class);
+ if (stepCommand == null) {
+ return false;
+ }
+ String step = result.getParamValue(MultiStepCommand.STEP_PARAMETER_NAME);
+ if (StringUtils.isBlank(step)) {
+ return false;
+ }
+ if (Arrays.asList(stepCommand.shellOnlyStep()).contains(step)) {
+ return true;
+ }
+ return false;
}
private String getInterceptor(Method method) {
http://git-wip-us.apache.org/repos/asf/geode/blob/f85d2163/geode-core/src/main/java/org/apache/geode/management/internal/cli/result/AbstractResultData.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/result/AbstractResultData.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/result/AbstractResultData.java
index f453ec6..0d1d91b 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/result/AbstractResultData.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/result/AbstractResultData.java
@@ -14,18 +14,6 @@
*/
package org.apache.geode.management.internal.cli.result;
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.nio.charset.Charset;
-import java.text.MessageFormat;
-import java.util.Base64;
-import java.util.zip.DataFormatException;
-
import org.apache.geode.management.cli.Result.Status;
import org.apache.geode.management.internal.cli.CliUtil;
import org.apache.geode.management.internal.cli.CliUtil.DeflaterInflaterData;
@@ -35,6 +23,15 @@ import org.apache.geode.management.internal.cli.json.GfJsonException;
import org.apache.geode.management.internal.cli.json.GfJsonObject;
import org.apache.geode.management.internal.cli.shell.Gfsh;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.text.MessageFormat;
+import java.util.Base64;
+import java.util.zip.DataFormatException;
+
/**
*
*
@@ -234,7 +231,6 @@ public abstract class AbstractResultData implements ResultData {
byte[] byteArray = Base64.getDecoder().decode(fileDataString);
byte[] uncompressBytes = CliUtil.uncompressBytes(byteArray, fileDataLength).getData();
- boolean isGfshVM = CliUtil.isGfshVM();
File fileToDumpData = new File(fileName);
if (!fileToDumpData.isAbsolute()) {
if (directory == null || directory.isEmpty()) {
@@ -247,21 +243,19 @@ public abstract class AbstractResultData implements ResultData {
if (parentDirectory != null) {
parentDirectory.mkdirs();
}
+ Gfsh gfsh = Gfsh.getCurrentInstance();
if (fileToDumpData.exists()) {
String fileExistsMessage =
CliStrings.format(CliStrings.ABSTRACTRESULTDATA__MSG__FILE_WITH_NAME_0_EXISTS_IN_1,
new Object[] {fileName, fileToDumpData.getParent(), options});
- if (isGfshVM) {
- Gfsh gfsh = Gfsh.getCurrentInstance();
- if (gfsh != null && !gfsh.isQuietMode() && !overwriteAllExisting) {
- fileExistsMessage = fileExistsMessage + " Overwrite? " + options + " : ";
- String interaction = gfsh.interact(fileExistsMessage);
- if ("a".equalsIgnoreCase(interaction.trim())) {
- overwriteAllExisting = true;
- } else if (!"y".equalsIgnoreCase(interaction.trim())) {
- // do not save file & continue
- continue BYTEARRAY_LOOP;
- }
+ if (gfsh != null && !gfsh.isQuietMode() && !overwriteAllExisting) {
+ fileExistsMessage = fileExistsMessage + " Overwrite? " + options + " : ";
+ String interaction = gfsh.interact(fileExistsMessage);
+ if ("a".equalsIgnoreCase(interaction.trim())) {
+ overwriteAllExisting = true;
+ } else if (!"y".equalsIgnoreCase(interaction.trim())) {
+ // do not save file & continue
+ continue BYTEARRAY_LOOP;
}
} else {
throw new IOException(fileExistsMessage);
@@ -269,18 +263,17 @@ public abstract class AbstractResultData implements ResultData {
} else if (!parentDirectory.exists()) {
handleCondition(CliStrings.format(
CliStrings.ABSTRACTRESULTDATA__MSG__PARENT_DIRECTORY_OF_0_DOES_NOT_EXIST,
- fileToDumpData.getAbsolutePath()), isGfshVM);
+ fileToDumpData.getAbsolutePath()));
return;
} else if (!parentDirectory.canWrite()) {
handleCondition(CliStrings.format(
CliStrings.ABSTRACTRESULTDATA__MSG__PARENT_DIRECTORY_OF_0_IS_NOT_WRITABLE,
- fileToDumpData.getAbsolutePath()), isGfshVM);
+ fileToDumpData.getAbsolutePath()));
return;
} else if (!parentDirectory.isDirectory()) {
handleCondition(
CliStrings.format(CliStrings.ABSTRACTRESULTDATA__MSG__PARENT_OF_0_IS_NOT_DIRECTORY,
- fileToDumpData.getAbsolutePath()),
- isGfshVM);
+ fileToDumpData.getAbsolutePath()));
return;
}
if (fileType == FILE_TYPE_TEXT) {
@@ -298,7 +291,7 @@ public abstract class AbstractResultData implements ResultData {
}
// System.out.println("fileMessage :: "+fileMessage);
if (fileMessage != null && !fileMessage.isEmpty()) {
- if (isGfshVM) {
+ if (gfsh != null) {
Gfsh.println(
MessageFormat.format(fileMessage, new Object[] {fileToDumpData.getAbsolutePath()}));
}
@@ -308,13 +301,11 @@ public abstract class AbstractResultData implements ResultData {
}
// TODO - Abhishek : prepare common utility for this & ANSI Styling
- static void handleCondition(String message, boolean isGfshVM) throws IOException {
- if (isGfshVM) {
- Gfsh gfsh = Gfsh.getCurrentInstance();
- // null check required in GfshVM too to avoid test issues
- if (gfsh != null && !gfsh.isQuietMode()) {
- gfsh.logWarning(message, null);
- }
+ static void handleCondition(String message) throws IOException {
+ Gfsh gfsh = Gfsh.getCurrentInstance();
+ // null check required in GfshVM too to avoid test issues
+ if (gfsh != null && !gfsh.isQuietMode()) {
+ gfsh.logWarning(message, null);
} else {
throw new IOException(message);
}
http://git-wip-us.apache.org/repos/asf/geode/blob/f85d2163/geode-core/src/main/java/org/apache/geode/management/internal/cli/shell/Gfsh.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/shell/Gfsh.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/shell/Gfsh.java
index 74387d6..8ab7c93 100755
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/shell/Gfsh.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/shell/Gfsh.java
@@ -131,7 +131,6 @@ public class Gfsh extends JLineShell {
private static final String DEFAULT_SECONDARY_PROMPT = ">";
private static final int DEFAULT_HEIGHT = 100;
private static final Object INSTANCE_LOCK = new Object();
- public static boolean SUPPORT_MUTLIPLESHELL = false;
// private static final String ANIMATION_SLOT = "A"; //see 46072
protected static PrintStream gfshout = System.out;
@@ -231,8 +230,7 @@ public class Gfsh extends JLineShell {
try {
ClassUtils.forName("sun.misc.Signal", new SunAPINotFoundException(
"WARNING!!! Not running a Sun JVM. Could not find the sun.misc.Signal class; Signal handling disabled."));
- signalHandler = (CliUtil.isGfshVM() ? new GfshSignalHandler()
- : new AbstractSignalNotificationHandler() {});
+ signalHandler = new GfshSignalHandler();
} catch (SunAPINotFoundException e) {
signalHandler = new AbstractSignalNotificationHandler() {};
this.gfshFileLogger.warning(e.getMessage());
@@ -347,11 +345,7 @@ public class Gfsh extends JLineShell {
}
public static Gfsh getCurrentInstance() {
- if (!SUPPORT_MUTLIPLESHELL) {
- return instance;
- } else {
- return gfshThreadLocal.get();
- }
+ return instance;
}
private static String extractKey(String input) {
@@ -517,6 +511,7 @@ public class Gfsh extends JLineShell {
if (operationInvoker != null && operationInvoker.isConnected()) {
operationInvoker.stop();
}
+ instance = null;
}
public void waitForComplete() throws InterruptedException {
http://git-wip-us.apache.org/repos/asf/geode/blob/f85d2163/geode-core/src/main/java/org/apache/geode/management/internal/cli/shell/GfshExecutionStrategy.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/shell/GfshExecutionStrategy.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/shell/GfshExecutionStrategy.java
index 2b39bed..1cbdb15 100755
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/shell/GfshExecutionStrategy.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/shell/GfshExecutionStrategy.java
@@ -79,7 +79,7 @@ public class GfshExecutionStrategy implements ExecutionStrategy {
// Check if it's a multi-step command
MultiStepCommand cmd = method.getAnnotation(MultiStepCommand.class);
if (cmd != null) {
- return execCLISteps(logWrapper, shell, parseResult);
+ return execCLISteps(cmd, logWrapper, shell, parseResult);
}
// check if it's a shell only command
http://git-wip-us.apache.org/repos/asf/geode/blob/f85d2163/geode-core/src/test/java/org/apache/geode/management/DataCommandMBeanTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/DataCommandMBeanTest.java b/geode-core/src/test/java/org/apache/geode/management/DataCommandMBeanTest.java
new file mode 100644
index 0000000..e5d6ce8
--- /dev/null
+++ b/geode-core/src/test/java/org/apache/geode/management/DataCommandMBeanTest.java
@@ -0,0 +1,59 @@
+/*
+ * 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;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+import org.apache.geode.cache.RegionShortcut;
+import org.apache.geode.test.dunit.rules.MBeanServerConnectionRule;
+import org.apache.geode.test.dunit.rules.ServerStarterRule;
+import org.apache.geode.test.junit.categories.IntegrationTest;
+import org.junit.Before;
+import org.junit.ClassRule;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+
+@Category(IntegrationTest.class)
+public class DataCommandMBeanTest {
+ private MemberMXBean bean;
+
+ @ClassRule
+ public static ServerStarterRule server =
+ new ServerStarterRule().withJMXManager().withRegion(RegionShortcut.REPLICATE, "testRegion");
+
+ @Rule
+ public MBeanServerConnectionRule mBeanConnector = new MBeanServerConnectionRule();
+
+ @Before
+ public void before() throws Exception {
+ mBeanConnector.connect(server.getJmxPort());
+ bean = mBeanConnector.getProxyMBean(MemberMXBean.class);
+ }
+
+ @Test
+ public void testQueryWithStepAll() throws Exception {
+ String result = bean.processCommand("query --query='SELECT * FROM /testRegion'");
+ assertThat(result).contains("Only Remote command can be executed");
+ }
+
+ @Test
+ public void testQueryWithStepExec() throws Exception {
+ String result =
+ bean.processCommand("query --query='SELECT * FROM /testRegion' --step-name=SELECT_EXEC");
+ assertThat(result).contains("Result : true");
+ }
+}
http://git-wip-us.apache.org/repos/asf/geode/blob/f85d2163/geode-core/src/test/java/org/apache/geode/management/internal/cli/HeadlessGfsh.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/HeadlessGfsh.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/HeadlessGfsh.java
index 9ea22da..f636c89 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/HeadlessGfsh.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/cli/HeadlessGfsh.java
@@ -84,7 +84,6 @@ public class HeadlessGfsh implements ResultHandler {
});
this.shell.start();
- this.shell.setThreadLocalInstance();
try {
shellStarted.await();
@@ -195,10 +194,6 @@ public class HeadlessGfsh implements ResultHandler {
this.handler = handler;
}
- public void setThreadLocalInstance() {
- gfshThreadLocal.set(this);
- }
-
protected void handleExecutionResult(Object result) {
if (!result.equals(ERROR_RESULT)) {
super.handleExecutionResult(result);
@@ -222,6 +217,7 @@ public class HeadlessGfsh implements ResultHandler {
}
public void stop() {
+ super.stop();
stopCalledThroughAPI = true;
}
@@ -317,11 +313,6 @@ public class HeadlessGfsh implements ResultHandler {
* HeadlessGfshConfig for tests. Taken from TestableGfsh
*/
static class HeadlessGfshConfig extends GfshConfig {
- {
- // set vm as a gfsh vm
- CliUtil.isGfshVM = true;
- }
-
private File parentDir;
private String fileNamePrefix;
private String name;
http://git-wip-us.apache.org/repos/asf/geode/blob/f85d2163/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CliCommandTestBase.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CliCommandTestBase.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CliCommandTestBase.java
index bd5083c..d68bfae 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CliCommandTestBase.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CliCommandTestBase.java
@@ -26,12 +26,10 @@ import static org.assertj.core.api.Assertions.assertThat;
import org.apache.geode.cache.Cache;
import org.apache.geode.internal.AvailablePortHelper;
import org.apache.geode.management.ManagementService;
-import org.apache.geode.management.internal.cli.CliUtil;
import org.apache.geode.management.internal.cli.CommandManager;
import org.apache.geode.management.internal.cli.HeadlessGfsh;
import org.apache.geode.management.internal.cli.i18n.CliStrings;
import org.apache.geode.management.internal.cli.result.CommandResult;
-import org.apache.geode.management.internal.cli.shell.Gfsh;
import org.apache.geode.management.internal.cli.util.CommandStringBuilder;
import org.apache.geode.security.TestSecurityManager;
import org.apache.geode.test.dunit.Host;
@@ -121,7 +119,6 @@ public abstract class CliCommandTestBase extends JUnit4CacheTestCase {
@Override
public final void preTearDownCacheTestCase() throws Exception {
preTearDownCliCommandTestBase();
- CliUtil.isGfshVM = false;
destroyDefaultSetup();
}
@@ -300,7 +297,6 @@ public abstract class CliCommandTestBase extends JUnit4CacheTestCase {
*/
private HeadlessGfsh createShell() {
try {
- Gfsh.SUPPORT_MUTLIPLESHELL = true;
String shellId = getClass().getSimpleName() + "_" + getName();
HeadlessGfsh shell = new HeadlessGfsh(shellId, 30, this.gfshDir);
// Added to avoid trimming of the columns
http://git-wip-us.apache.org/repos/asf/geode/blob/f85d2163/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/MemberCommandsDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/MemberCommandsDUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/MemberCommandsDUnitTest.java
index 22502c3..fb8341a 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/MemberCommandsDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/MemberCommandsDUnitTest.java
@@ -43,7 +43,6 @@ import org.apache.geode.internal.AvailablePortHelper;
import org.apache.geode.internal.cache.GemFireCacheImpl;
import org.apache.geode.management.cli.Result;
import org.apache.geode.management.cli.Result.Status;
-import org.apache.geode.management.internal.cli.CliUtil;
import org.apache.geode.management.internal.cli.i18n.CliStrings;
import org.apache.geode.management.internal.cli.remote.CommandProcessor;
import org.apache.geode.management.internal.cli.util.CommandStringBuilder;
@@ -85,14 +84,6 @@ public class MemberCommandsDUnitTest extends JUnit4CacheTestCase {
new ProvideSystemProperty(CliCommandTestBase.USE_HTTP_SYSTEM_PROPERTY, "true");
@Override
- public final void postSetUp() throws Exception {
- // This test does not require an actual Gfsh connection to work, however when run as part of a
- // suite, prior tests
- // may mess up the environment causing this test to fail. Setting this prevents false failures.
- CliUtil.isGfshVM = false;
- }
-
- @Override
public final void postTearDownCacheTestCase() throws Exception {
disconnectFromDS();
}
http://git-wip-us.apache.org/repos/asf/geode/blob/f85d2163/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ShowDeadlockDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ShowDeadlockDUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ShowDeadlockDUnitTest.java
index e7ae38e..8b5c80e 100755
--- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ShowDeadlockDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ShowDeadlockDUnitTest.java
@@ -27,7 +27,6 @@ import org.apache.geode.distributed.internal.membership.InternalDistributedMembe
import org.apache.geode.management.cli.CommandStatement;
import org.apache.geode.management.cli.Result;
import org.apache.geode.management.cli.Result.Status;
-import org.apache.geode.management.internal.cli.CliUtil;
import org.apache.geode.management.internal.cli.i18n.CliStrings;
import org.apache.geode.management.internal.cli.remote.CommandProcessor;
import org.apache.geode.management.internal.cli.util.CommandStringBuilder;
@@ -55,9 +54,6 @@ import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
-import static org.apache.geode.test.dunit.Assert.*;
-import static org.apache.geode.test.dunit.Invoke.invokeInEveryVM;
-
/**
* This DUnit tests uses same code as GemFireDeadlockDetectorDUnitTest and uses the command
* processor for executing the "show deadlock" command
@@ -100,17 +96,8 @@ public class ShowDeadlockDUnitTest extends JUnit4CacheTestCase {
}
@Override
- public final void postSetUp() throws Exception {
- // This test does not require an actual Gfsh connection to work, however when run as part of a
- // suite, prior tests
- // may mess up the environment causing this test to fail. Setting this prevents false failures.
- CliUtil.isGfshVM = false;
- }
-
- @Override
public final void preTearDownCacheTestCase() throws Exception {
invokeInEveryVM(() -> stuckThreads.forEach(Thread::interrupt));
- CliUtil.isGfshVM = true;
}
@Test
http://git-wip-us.apache.org/repos/asf/geode/blob/f85d2163/geode-core/src/test/java/org/apache/geode/test/dunit/rules/GfshShellConnectionRule.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/test/dunit/rules/GfshShellConnectionRule.java b/geode-core/src/test/java/org/apache/geode/test/dunit/rules/GfshShellConnectionRule.java
index bc709db..872553e 100644
--- a/geode-core/src/test/java/org/apache/geode/test/dunit/rules/GfshShellConnectionRule.java
+++ b/geode-core/src/test/java/org/apache/geode/test/dunit/rules/GfshShellConnectionRule.java
@@ -19,7 +19,6 @@ import static org.assertj.core.api.Assertions.assertThat;
import org.apache.commons.lang.StringUtils;
import org.apache.geode.management.cli.Result;
-import org.apache.geode.management.internal.cli.CliUtil;
import org.apache.geode.management.internal.cli.HeadlessGfsh;
import org.apache.geode.management.internal.cli.i18n.CliStrings;
import org.apache.geode.management.internal.cli.result.CommandResult;
@@ -128,7 +127,6 @@ public class GfshShellConnectionRule extends DescribedExternalResource {
}
public void connect(int port, PortType type, String... options) throws Exception {
- CliUtil.isGfshVM = true;
if (gfsh == null) {
this.gfsh = new HeadlessGfsh(getClass().getName(), 30,
temporaryFolder.newFolder("gfsh_files").getAbsolutePath());
@@ -194,7 +192,6 @@ public class GfshShellConnectionRule extends DescribedExternalResource {
gfsh.executeCommand("exit");
gfsh.terminate();
gfsh = null;
- CliUtil.isGfshVM = false;
}
public HeadlessGfsh getGfsh() {
http://git-wip-us.apache.org/repos/asf/geode/blob/f85d2163/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/cli/LuceneIndexCommands.java
----------------------------------------------------------------------
diff --git a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/cli/LuceneIndexCommands.java b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/cli/LuceneIndexCommands.java
index 5252bd1..00440e5 100755
--- a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/cli/LuceneIndexCommands.java
+++ b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/cli/LuceneIndexCommands.java
@@ -580,6 +580,14 @@ public class LuceneIndexCommands implements GfshCommand {
LuceneCliStrings.LUCENE_CREATE_INDEX, LuceneCliStrings.LUCENE_DESCRIBE_INDEX,
LuceneCliStrings.LUCENE_LIST_INDEX, LuceneCliStrings.LUCENE_DESTROY_INDEX})
public boolean indexCommandsAvailable() {
- return (!CliUtil.isGfshVM() || (getGfsh() != null && getGfsh().isConnectedAndReady()));
+ Gfsh gfsh = Gfsh.getCurrentInstance();
+
+ // command should always be available on the server
+ if (gfsh == null) {
+ return true;
+ }
+
+ // if in gfshVM, only when gfsh is connected and ready
+ return gfsh.isConnectedAndReady();
}
}