You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by up...@apache.org on 2015/09/10 01:59:25 UTC
[42/50] [abbrv] incubator-geode git commit: GEODE-287: Remove old
gfsh code
GEODE-287: Remove old gfsh code
This commit is just file deletes except for one unit test
that had an unused import of one of the deleted classes.
Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/49d99d4e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/49d99d4e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/49d99d4e
Branch: refs/heads/feature/GEODE-12
Commit: 49d99d4e5d97ecc682e9929251ab959ff7307e7a
Parents: e040750
Author: Darrel Schneider <ds...@pivotal.io>
Authored: Wed Aug 26 11:39:14 2015 -0700
Committer: Darrel Schneider <ds...@pivotal.io>
Committed: Thu Aug 27 10:54:49 2015 -0700
----------------------------------------------------------------------
.../gfsh/aggregator/AggregateFunction.java | 67 -
.../tools/gfsh/aggregator/AggregateResults.java | 126 --
.../aggregator/AggregatorPartitionFunction.java | 54 -
.../tools/gfsh/app/CommandExecutable.java | 8 -
.../gemfire/internal/tools/gfsh/app/Gfsh.java | 2027 ------------------
.../internal/tools/gfsh/app/GfshVersion.java | 455 ----
.../internal/tools/gfsh/app/Nextable.java | 8 -
.../tools/gfsh/app/ServerExecutable.java | 11 -
.../app/aggregator/AggregateFunctionTask.java | 62 -
.../tools/gfsh/app/aggregator/Aggregator.java | 549 -----
.../app/aggregator/AggregatorException.java | 50 -
.../gfsh/app/aggregator/AggregatorPeer.java | 254 ---
.../functions/util/LocalRegionInfoFunction.java | 235 --
.../functions/util/RegionCreateFunction.java | 81 -
.../functions/util/RegionDestroyFunction.java | 86 -
.../tools/gfsh/app/cache/CacheBase.java | 178 --
.../gfsh/app/cache/InstantiatorClassLoader.java | 101 -
.../tools/gfsh/app/cache/data/GenericMap.java | 196 --
.../gfsh/app/cache/data/GenericMessage.java | 807 -------
.../app/cache/data/InvalidTypeException.java | 28 -
.../tools/gfsh/app/cache/data/ListMap.java | 197 --
.../gfsh/app/cache/data/ListMapMessage.java | 615 ------
.../tools/gfsh/app/cache/data/ListMessage.java | 594 -----
.../tools/gfsh/app/cache/data/Listable.java | 45 -
.../tools/gfsh/app/cache/data/MapMessage.java | 629 ------
.../tools/gfsh/app/cache/data/Mappable.java | 50 -
.../tools/gfsh/app/cache/index/EntryMap.java | 80 -
.../tools/gfsh/app/cache/index/IndexInfo.java | 52 -
.../tools/gfsh/app/cache/index/Indexer.java | 13 -
.../gfsh/app/cache/index/IndexerManager.java | 32 -
.../gfsh/app/cache/index/LookupService.java | 352 ---
.../app/cache/index/LookupServiceException.java | 64 -
.../gfsh/app/cache/index/task/ForceGCTask.java | 32 -
.../app/cache/index/task/IndexInfoTask.java | 131 --
.../app/cache/index/task/QuerySizeTask.java | 134 --
.../gfsh/app/cache/index/task/QueryTask.java | 323 ---
.../tools/gfsh/app/command/CommandClient.java | 417 ----
.../gfsh/app/command/CommandException.java | 31 -
.../app/command/CommandResultsListener.java | 15 -
.../tools/gfsh/app/command/task/EchoTask.java | 63 -
.../task/PartitionedRegionAttributeTask.java | 205 --
.../gfsh/app/command/task/QueryResults.java | 123 --
.../tools/gfsh/app/command/task/QueryTask.java | 522 -----
.../task/RefreshAggregatorRegionTask.java | 53 -
.../gfsh/app/command/task/RegionClearTask.java | 85 -
.../gfsh/app/command/task/RegionCreateTask.java | 162 --
.../app/command/task/RegionDestroyTask.java | 97 -
.../gfsh/app/command/task/RegionPathTask.java | 156 --
.../gfsh/app/command/task/RegionSizeTask.java | 70 -
.../gfsh/app/command/task/data/MemberInfo.java | 79 -
.../task/data/PartitionAttributeInfo.java | 124 --
.../command/task/data/RegionAttributeInfo.java | 286 ---
.../internal/tools/gfsh/app/commands/bcp.java | 527 -----
.../internal/tools/gfsh/app/commands/cd.java | 79 -
.../tools/gfsh/app/commands/classloader.java | 323 ---
.../internal/tools/gfsh/app/commands/clear.java | 197 --
.../tools/gfsh/app/commands/connect.java | 124 --
.../internal/tools/gfsh/app/commands/db.java | 312 ---
.../internal/tools/gfsh/app/commands/debug.java | 48 -
.../tools/gfsh/app/commands/deploy.java | 271 ---
.../internal/tools/gfsh/app/commands/echo.java | 59 -
.../internal/tools/gfsh/app/commands/fetch.java | 48 -
.../internal/tools/gfsh/app/commands/gc.java | 93 -
.../internal/tools/gfsh/app/commands/get.java | 143 --
.../internal/tools/gfsh/app/commands/help.java | 40 -
.../internal/tools/gfsh/app/commands/index.java | 395 ----
.../internal/tools/gfsh/app/commands/key.java | 67 -
.../internal/tools/gfsh/app/commands/local.java | 101 -
.../internal/tools/gfsh/app/commands/ls.java | 584 -----
.../internal/tools/gfsh/app/commands/mkdir.java | 253 ---
.../internal/tools/gfsh/app/commands/next.java | 63 -
.../tools/gfsh/app/commands/optional/look.java | 166 --
.../tools/gfsh/app/commands/optional/perf.java | 150 --
.../internal/tools/gfsh/app/commands/pr.java | 209 --
.../tools/gfsh/app/commands/property.java | 85 -
.../internal/tools/gfsh/app/commands/put.java | 490 -----
.../internal/tools/gfsh/app/commands/pwd.java | 37 -
.../tools/gfsh/app/commands/rebalance.java | 186 --
.../tools/gfsh/app/commands/refresh.java | 67 -
.../internal/tools/gfsh/app/commands/rm.java | 175 --
.../internal/tools/gfsh/app/commands/rmdir.java | 249 ---
.../tools/gfsh/app/commands/select.java | 139 --
.../internal/tools/gfsh/app/commands/show.java | 240 ---
.../internal/tools/gfsh/app/commands/size.java | 281 ---
.../internal/tools/gfsh/app/commands/value.java | 48 -
.../internal/tools/gfsh/app/commands/which.java | 189 --
.../internal/tools/gfsh/app/commands/zone.java | 49 -
.../tools/gfsh/app/function/GfshData.java | 86 -
.../tools/gfsh/app/function/GfshFunction.java | 149 --
.../tools/gfsh/app/function/command/clear.java | 95 -
.../tools/gfsh/app/function/command/deploy.java | 111 -
.../tools/gfsh/app/function/command/gc.java | 49 -
.../tools/gfsh/app/function/command/index.java | 199 --
.../tools/gfsh/app/function/command/ls.java | 80 -
.../tools/gfsh/app/function/command/pr.java | 118 -
.../gfsh/app/function/command/rebalance.java | 129 --
.../tools/gfsh/app/function/command/rm.java | 43 -
.../tools/gfsh/app/function/command/which.java | 159 --
.../tools/gfsh/app/misc/util/ClassFinder.java | 209 --
.../gfsh/app/misc/util/DataSerializerEx.java | 98 -
.../app/misc/util/QueueDispatcherListener.java | 11 -
.../app/misc/util/QueueDispatcherThread.java | 87 -
.../gfsh/app/misc/util/ReflectionUtil.java | 303 ---
.../tools/gfsh/app/misc/util/StringUtil.java | 142 --
.../app/misc/util/SystemClassPathManager.java | 171 --
.../gfsh/app/pogo/InvalidKeyException.java | 34 -
.../internal/tools/gfsh/app/pogo/KeyType.java | 96 -
.../tools/gfsh/app/pogo/KeyTypeManager.java | 199 --
.../internal/tools/gfsh/app/pogo/MapLite.java | 1136 ----------
.../tools/gfsh/app/pogo/MapLiteSerializer.java | 338 ---
.../internal/tools/gfsh/app/util/DBUtil.java | 1094 ----------
.../tools/gfsh/app/util/DBUtilException.java | 48 -
.../tools/gfsh/app/util/GfshResultsBag.java | 600 ------
.../tools/gfsh/app/util/ObjectUtil.java | 164 --
.../tools/gfsh/app/util/OutputUtil.java | 255 ---
.../internal/tools/gfsh/app/util/PrintUtil.java | 1683 ---------------
.../tools/gfsh/app/util/SimplePrintUtil.java | 1366 ------------
.../tools/gfsh/command/AbstractCommandTask.java | 136 --
.../tools/gfsh/command/CommandResults.java | 119 -
.../tools/gfsh/command/CommandTask.java | 23 -
.../internal/tools/gfsh/util/RegionUtil.java | 829 -------
.../cache/ClientServerGetAllDUnitTest.java | 1 -
122 files changed, 28061 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/49d99d4e/gemfire-core/src/main/java/com/gemstone/gemfire/internal/tools/gfsh/aggregator/AggregateFunction.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/tools/gfsh/aggregator/AggregateFunction.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/tools/gfsh/aggregator/AggregateFunction.java
deleted file mode 100644
index 95c2028..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/tools/gfsh/aggregator/AggregateFunction.java
+++ /dev/null
@@ -1,67 +0,0 @@
-package com.gemstone.gemfire.internal.tools.gfsh.aggregator;
-
-import java.io.Serializable;
-import java.util.List;
-
-import com.gemstone.gemfire.cache.execute.FunctionContext;
-
-/**
- * All aggregate functions must implement AggregateFunction and use
- * Aggregator.aggregate() to execute them. The client application
- * submit a AggregateFunction via Aggregator.aggregate(), which in
- * turn sends it to the server(s) to be executed.
- *
- * @author dpark
- *
- */
-public interface AggregateFunction extends Serializable
-{
- /**
- * This is the first method invoked by each partition that has
- * the required data to execute the function. Use
- * PartitionFunctionExecutionContext.getPartition() to get
- * the partitioned region that contains the data that the function
- * needs to execute on. The region can be iterated or queried to
- * get the results. The results must be Serializable and returned
- * in AggregateResults. Use AggregateResults.setDataObject
- * (Object dataObject) to set the results. Any errors and exceptions
- * can be set using AggregateResults.
- *
- * @param context The ParitionFunction execution context.
- * @return The results from this particular partition.
- */
- AggregateResults run(FunctionContext context);
-
- /**
- * Once all of the participating partitions returns AggregateResults, i.e.,
- * the run(PartitionFunctionExecutionContext context) method is invoked
- * in all participating partitions, this method is invoked with a list of
- * AggregateResults objects. This method should iterate thru the list to
- * perform a final aggregation. Each AggregateResults contains data
- * object generated from the run(PartitionFunctionExecutionContext context)
- * method.
- *
- * @param list The list of AggregateResults objects collected from all participating
- * partitions.
- * @return The aggregated data. The return type is determined by each function.
- * As such, each function must document the return type.
- */
- Object aggregate(List list);
-
- /**
- * This method is invoked when an Aggregator has one or more aggregators
- * in addition to itself, i.e., Aggregator.addAggregator() is invoked.
- * It should iterate thru the passed-in results to perform a final aggregation.
- * Each object in the results array represents the object returned by
- * the aggregate(List list) method.
- *
- * @param results The array of AggregateResults objects collected from
- * the participating partitions.
- * @return The final aggregated results representing the multiple distributed
- * systems.
- */
- Object aggregateDistributedSystems(Object results[]);
-}
-
-
-
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/49d99d4e/gemfire-core/src/main/java/com/gemstone/gemfire/internal/tools/gfsh/aggregator/AggregateResults.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/tools/gfsh/aggregator/AggregateResults.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/tools/gfsh/aggregator/AggregateResults.java
deleted file mode 100644
index d89dba9..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/tools/gfsh/aggregator/AggregateResults.java
+++ /dev/null
@@ -1,126 +0,0 @@
-package com.gemstone.gemfire.internal.tools.gfsh.aggregator;
-
-import java.io.DataInput;
-import java.io.DataOutput;
-import java.io.IOException;
-
-import com.gemstone.gemfire.DataSerializable;
-import com.gemstone.gemfire.DataSerializer;
-
-/**
- * AggregateResults contains a data object set by AggregateFunction.run().
- *
- * @author dpark
- */
-public class AggregateResults implements DataSerializable
-{
-
- private static final long serialVersionUID = 1L;
-
- public static final byte CODE_NORMAL = 0;
- public final static byte CODE_ERROR = -1;
-
- private byte code = CODE_NORMAL;
- private Object dataObject;
- private String codeMessage;
- private Throwable exception;
-
- /**
- * Creates an empty AggregateResults object.
- */
- public AggregateResults()
- {
- }
-
- /**
- * Creates a new AggregatedResults object with the data object
- * contains results.
- * @param dataObject The data object that contains the task results.
- */
- public AggregateResults(Object dataObject)
- {
- this.dataObject = dataObject;
- }
-
- /**
- * Returns the data object set by AggregateFunction.
- */
- public Object getDataObject() {
- return dataObject;
- }
-
- /**
- * Sets the data object.
- * @param dataObject The data object representing the aggregated
- * results from one partition.
- */
- public void setDataObject(Object dataObject)
- {
- this.dataObject = dataObject;
- }
-
- /**
- * Returns the code set by the AggregateFunction. It is typically
- * used for sending error code. The default value is 0.
- * @return code
- */
- public byte getCode() {
- return code;
- }
-
- /**
- * Sets code.
- * @param code
- */
- public void setCode(byte code) {
- this.code = code;
- }
-
- /**
- * Returns the message associated with the code. The default
- * value is null.
- */
- public String getCodeMessage() {
- return codeMessage;
- }
-
- /**
- * Sets the code message.
- * @param codeMessage
- */
- public void setCodeMessage(String codeMessage) {
- this.codeMessage = codeMessage;
- }
-
- /**
- * Returns the partition exception if any.
- */
- public Throwable getException() {
- return exception;
- }
-
- /**
- * Sets the partition exception.
- * @param exception The exception caught in AggregateFunction.run().
- */
- public void setException(Throwable exception) {
- this.exception = exception;
- }
-
- public void toData(DataOutput out) throws IOException
- {
- out.writeByte(code);
- DataSerializer.writeString(codeMessage, out);
- DataSerializer.writeObject(exception, out);
- DataSerializer.writeObject(dataObject, out);
- }
-
- public void fromData(DataInput in) throws IOException, ClassNotFoundException
- {
- code = in.readByte();
- codeMessage = DataSerializer.readString(in);
- exception = (Throwable)DataSerializer.readObject(in);
- dataObject = DataSerializer.readObject(in);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/49d99d4e/gemfire-core/src/main/java/com/gemstone/gemfire/internal/tools/gfsh/aggregator/AggregatorPartitionFunction.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/tools/gfsh/aggregator/AggregatorPartitionFunction.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/tools/gfsh/aggregator/AggregatorPartitionFunction.java
deleted file mode 100644
index 833869f..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/tools/gfsh/aggregator/AggregatorPartitionFunction.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*=========================================================================
- * Copyright (c) 2002-2014 Pivotal Software, Inc. All Rights Reserved.
- * This product is protected by U.S. and international copyright
- * and intellectual property laws. Pivotal products are covered by
- * more patents listed at http://www.pivotal.io/patents.
- *========================================================================
- */
-package com.gemstone.gemfire.internal.tools.gfsh.aggregator;
-
-import java.util.Properties;
-
-//import com.gemstone.gemfire.cache.Declarable;
-import com.gemstone.gemfire.cache.execute.Function;
-import com.gemstone.gemfire.cache.execute.FunctionContext;
-import com.gemstone.gemfire.internal.InternalEntity;
-import com.gemstone.gemfire.internal.tools.gfsh.aggregator.AggregateFunction;
-
-/**
- * The Aggregator partition function. Used internally.
- *
- * @author dpark
- */
-public class AggregatorPartitionFunction implements /*Declarable, */Function, InternalEntity {
- private static final long serialVersionUID = 1L;
-
- public final static String ID = "__gfsh_aggregator";
-
- public AggregatorPartitionFunction() {
- }
-
- public String getId() {
- return ID;
- }
-
- public void execute(FunctionContext context) {
- AggregateFunction aggregator = (AggregateFunction) context.getArguments();
- context.getResultSender().lastResult(aggregator.run(context));
- }
-
- public void init(Properties p) {
- }
-
- public boolean hasResult() {
- return true;
- }
-
- public boolean optimizeForWrite() {
- return true;
- }
-
- public boolean isHA() {
- return false;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/49d99d4e/gemfire-core/src/main/java/com/gemstone/gemfire/internal/tools/gfsh/app/CommandExecutable.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/tools/gfsh/app/CommandExecutable.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/tools/gfsh/app/CommandExecutable.java
deleted file mode 100644
index 9285d94..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/tools/gfsh/app/CommandExecutable.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package com.gemstone.gemfire.internal.tools.gfsh.app;
-
-public interface CommandExecutable
-{
- void execute(String command) throws Exception;
-
- void help();
-}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/49d99d4e/gemfire-core/src/main/java/com/gemstone/gemfire/internal/tools/gfsh/app/Gfsh.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/tools/gfsh/app/Gfsh.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/tools/gfsh/app/Gfsh.java
deleted file mode 100644
index b893ffc..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/tools/gfsh/app/Gfsh.java
+++ /dev/null
@@ -1,2027 +0,0 @@
-package com.gemstone.gemfire.internal.tools.gfsh.app;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.LineNumberReader;
-import java.io.PrintStream;
-import java.io.Reader;
-import java.io.StringReader;
-import java.lang.reflect.Constructor;
-import java.lang.reflect.Method;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
-import java.util.Stack;
-import java.util.TreeMap;
-import java.util.TreeSet;
-
-import jline.ArgumentCompletor;
-import jline.ConsoleReader;
-import jline.History;
-import jline.SimpleCompletor;
-
-import com.gemstone.gemfire.DataSerializable;
-import com.gemstone.gemfire.Instantiator;
-import com.gemstone.gemfire.cache.CacheException;
-import com.gemstone.gemfire.cache.Region;
-import com.gemstone.gemfire.cache.client.Pool;
-import com.gemstone.gemfire.cache.client.PoolFactory;
-import com.gemstone.gemfire.cache.client.PoolManager;
-import com.gemstone.gemfire.cache.query.SelectResults;
-import com.gemstone.gemfire.cache.query.Struct;
-import com.gemstone.gemfire.cache.query.types.CollectionType;
-import com.gemstone.gemfire.cache.query.types.ObjectType;
-import com.gemstone.gemfire.cache.query.types.StructType;
-import com.gemstone.gemfire.cache.server.CacheServer;
-import com.gemstone.gemfire.internal.tools.gfsh.app.aggregator.Aggregator;
-import com.gemstone.gemfire.internal.tools.gfsh.app.cache.CacheBase;
-import com.gemstone.gemfire.internal.tools.gfsh.app.cache.InstantiatorClassLoader;
-import com.gemstone.gemfire.internal.tools.gfsh.app.cache.data.GenericMessage;
-import com.gemstone.gemfire.internal.tools.gfsh.app.cache.data.ListMap;
-import com.gemstone.gemfire.internal.tools.gfsh.app.cache.data.ListMapMessage;
-import com.gemstone.gemfire.internal.tools.gfsh.app.cache.data.ListMessage;
-import com.gemstone.gemfire.internal.tools.gfsh.app.cache.data.MapMessage;
-import com.gemstone.gemfire.internal.tools.gfsh.app.cache.data.Mappable;
-import com.gemstone.gemfire.internal.tools.gfsh.app.cache.index.EntryMap;
-import com.gemstone.gemfire.internal.tools.gfsh.app.cache.index.IndexInfo;
-import com.gemstone.gemfire.internal.tools.gfsh.app.cache.index.LookupService;
-import com.gemstone.gemfire.internal.tools.gfsh.app.cache.index.task.ForceGCTask;
-import com.gemstone.gemfire.internal.tools.gfsh.app.cache.index.task.IndexInfoTask;
-import com.gemstone.gemfire.internal.tools.gfsh.app.cache.index.task.QuerySizeTask;
-import com.gemstone.gemfire.internal.tools.gfsh.app.cache.index.task.QueryTask;
-import com.gemstone.gemfire.internal.tools.gfsh.app.command.CommandClient;
-import com.gemstone.gemfire.internal.tools.gfsh.app.command.task.EchoTask;
-import com.gemstone.gemfire.internal.tools.gfsh.app.command.task.PartitionedRegionAttributeTask;
-import com.gemstone.gemfire.internal.tools.gfsh.app.command.task.RefreshAggregatorRegionTask;
-import com.gemstone.gemfire.internal.tools.gfsh.app.command.task.RegionClearTask;
-import com.gemstone.gemfire.internal.tools.gfsh.app.command.task.RegionCreateTask;
-import com.gemstone.gemfire.internal.tools.gfsh.app.command.task.RegionDestroyTask;
-import com.gemstone.gemfire.internal.tools.gfsh.app.command.task.RegionPathTask;
-import com.gemstone.gemfire.internal.tools.gfsh.app.command.task.RegionSizeTask;
-import com.gemstone.gemfire.internal.tools.gfsh.app.command.task.data.MemberInfo;
-import com.gemstone.gemfire.internal.tools.gfsh.app.command.task.data.PartitionAttributeInfo;
-import com.gemstone.gemfire.internal.tools.gfsh.app.command.task.data.RegionAttributeInfo;
-import com.gemstone.gemfire.internal.tools.gfsh.app.misc.util.ClassFinder;
-import com.gemstone.gemfire.internal.tools.gfsh.app.misc.util.ReflectionUtil;
-import com.gemstone.gemfire.internal.tools.gfsh.app.misc.util.StringUtil;
-import com.gemstone.gemfire.internal.tools.gfsh.app.pogo.MapLite;
-import com.gemstone.gemfire.internal.tools.gfsh.app.util.ObjectUtil;
-import com.gemstone.gemfire.internal.tools.gfsh.app.util.PrintUtil;
-import com.gemstone.gemfire.internal.tools.gfsh.app.util.SimplePrintUtil;
-import com.gemstone.gemfire.internal.tools.gfsh.command.CommandResults;
-
-public class Gfsh extends CacheBase
-{
-
- public final static String PROPERTY_GFSH_INIT_FILE = "gfshInitFile";
- public final static String PROPERTY_DEFAULT_DATA_SERIALIZABLES_FILE = "gfsh.dataSerialiables.file";
- public final static String PROPERTY_COMMAND_JAR_PATH = "gfsh.command.jar.path";
- public final static String PROPERTY_COMMAND_OPT_JAR_PATH = "gfsh.command.opt.jar.path";
- public final static String PROPERTY_USER_COMMAND_JAR_PATHS = "gfsh.user.command.jar.paths";
- public final static String PROPERTY_USER_COMMAND_PACKAGES = "gfsh.user.command.packages";
- public final static String PROPERTY_PLUGIN_JARS = "gfsh.plugin.jars";
- private final static String PROMPT = "gfsh:";
- private final static Set<String> DISABLED_COMMANDS = new HashSet<String>();
-
- private boolean debug = Boolean.getBoolean("gfsh.debug");
-
- private String startupDir = System.getProperty("gfsh.pwd");
-
- // User specified arguments. These override .gfshrc.
- private String locators;
- private String servers;
- private String inputFilePath;
- private String dataSerializableClassNames;
- private String dataSerializablesFilePath;
- private String jarDirectoryPath;
- private String jarPaths;
- private TreeSet<String> enumCommandSet = new TreeSet<String>();
- private boolean isAdvancedMode;
- private static final String[] advancedCommands = new String[] {"bcp", "class", "db", "deploy", "gc", "rebalance"/*, "zone"*/};
-
- // Contains all of the supported commands (commandName, CommandExecutable)
- private HashMap commandMap = new HashMap();
-
- // All fields are initialized in postInit().
- private boolean echo = false;
- private long zoneDifference = 0;
- private boolean showTime = true;
- private boolean showResults;
- private String queryKeyClassName;
- private Class<?> queryKeyClass;
- private String valueClassName;
- private Class<?> valueClass;
- private LookupService lookupService;
- private String endpoints = "localhost:40401";
- private int readTimeout = 300000; // 300 sec or 5 min
- private boolean isLocator = false;
- private String serverGroup = null;
- private Pool pool;
-
- private Properties envProperties = new Properties();
-
- private CommandClient commandClient;
- private String commandRegionPath = "/__command";
- private String aggregateRegionPath = commandRegionPath + "/pr";
- private Aggregator aggregator;
- private String currentPath = "/";
- private Region<?, ?> currentRegion;
- private List<?> lsKeyList;
- private int selectLimit;
- private int fetchSize = 100;
- private boolean tableFormat = false;
- private boolean printType = true;
- private int collectionEntryPrintCount;
-
- private SimpleDateFormat dateFormat = new SimpleDateFormat();
-
- // jline reader
- private ConsoleReader consoleReader;
-
- private BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
-
- private String[] commands;
-
- static {
- DISABLED_COMMANDS.add("look");
- DISABLED_COMMANDS.add("perf");
- DISABLED_COMMANDS.add("zone");
- }
-
- public Gfsh(String args[]) throws Exception {
- // parse user provide args
- parseArgs(args);
-
- println();
-
- initCommands();
- initJline();
-
- initializeLogStatsResources();
- // Initialize the cache
- initializeCache();
-
- setEcho(false);
- setShowResults(true);
- setShowTime(true);
-
- postInit(args);
-
- println();
-
- if (isConnected() == false) {
- println("Warning: not connected. Use the 'connect' command to connect to");
- println(" locator(s) or cache server(s).");
- println();
- }
- }
-
- protected void initializeCache() throws CacheException, IOException
- {
- // Load the default DataSerializable objects required by the utility packages.
- try {
- // gfaddon-util package - The base id is 200
- // gfcommand package - The base id is 300
- // MapLite registration
- Class.forName("com.gemstone.gemfire.internal.tools.gfsh.app.DataSerializablesInitializer");
-
- } catch (ClassNotFoundException ex) {
- println("Error: ClassNotFoundException. Unable to load the utility classes - " + ex.getMessage());
- if (isDebug()) {
- ex.printStackTrace();
- }
- }
-
- // Load the default DataSerializable file
- try {
- String defaultDataSerializablesFilePath = System.getProperty(PROPERTY_DEFAULT_DATA_SERIALIZABLES_FILE, "etc/DataSerializables.txt");
- InstantiatorClassLoader.loadDataSerializables(defaultDataSerializablesFilePath);
- } catch (IOException e) {
- // ignore
- } catch (ClassNotFoundException ex) {
- println("Error: ClassNotFoundException. Unabled to load class - " + ex.getMessage());
- if (isDebug()) {
- ex.printStackTrace();
- }
- }
- }
-
- private boolean isImplement(Class cls, Class interf)
- {
- Class interfaces[] = cls.getInterfaces();
- for (int i = 0; i < interfaces.length; i++) {
- if (interfaces[i] == interf) {
- return true;
- }
- }
- return false;
- }
-
- private void loadCommands(String packageName, String commandPackageName, HashSet<Class> classSet) throws Exception
- {
- Class classes[] = ClassFinder.getClasses(commandPackageName);
- if (classes.length == 0) {
- String jarPath = System.getProperty(packageName);
- classes = ClassFinder.getClasses(jarPath, commandPackageName);
- }
-
- List<String> commands = Arrays.asList(advancedCommands);
-
- for (int i = 0; i < classes.length; i++) {
- if (isImplement(classes[i], CommandExecutable.class)) {
- String commandName = classes[i].getSimpleName();
- if ( !(!isAdvancedMode && commands.contains(commandName))
- && !DISABLED_COMMANDS.contains(commandName) ) {
- classSet.add(classes[i]);
- }
- }
- }
- }
-
- private void loadPlugins()
- {
- String pluginJars = System.getProperty(PROPERTY_PLUGIN_JARS);
- if (pluginJars == null) {
- return;
- }
- pluginJars = pluginJars.trim();
- if (pluginJars.length() == 0) {
- return;
- }
-
- String pathSeparator = System.getProperty("path.separator");
- String split[] = pluginJars.split(pathSeparator);
- for (int i = 0; i < split.length; i++) {
- try {
- ClassFinder.getAllClasses(split[i]);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
-
- private void initCommands() throws Exception
- {
- // Read all core command classes found in the package
- // com.gemstone.gemfire.internal.tools.gfsh.commands
- HashSet<Class> classSet = new HashSet<Class>();
- loadCommands(PROPERTY_COMMAND_JAR_PATH, "com.gemstone.gemfire.internal.tools.gfsh.app.commands", classSet);
-
- // Read all optional command classes found in the package
- // com.gemstone.gemfire.internal.tools.gfsh.commands.optional
-// boolean optEnabled = Boolean.getBoolean("gfsh.opt.command.enabled");
-// if (optEnabled) {
-// loadCommands(PROPERTY_COMMAND_OPT_JAR_PATH, "com.gemstone.gemfire.internal.tools.gfsh.app.commands.optional", classSet);
-// }
-
- // Read user specified command classes
- String userPackageNames = System.getProperty(PROPERTY_USER_COMMAND_PACKAGES);
- if (userPackageNames != null) {
- userPackageNames = userPackageNames.trim();
- String packageSplit[] = null;
- if (userPackageNames.length() > 0) {
- packageSplit = userPackageNames.split(",");
- for (int i = 0; i < packageSplit.length; i++) {
- Class[] classes2 = ClassFinder.getClasses(packageSplit[i]);
- for (int j = 0; j < classes2.length; j++) {
- if (isImplement(classes2[j], CommandExecutable.class)) {
- classSet.add(classes2[j]);
- }
- }
- }
- }
-
- String jarPaths = System.getProperty(PROPERTY_USER_COMMAND_JAR_PATHS);
- if (jarPaths != null && packageSplit != null) {
- jarPaths = jarPaths.trim();
- if (jarPaths.length() > 0) {
- String split[] = jarPaths.split(",");
- for (int i = 0; i < split.length; i++) {
- for (int k = 0; k < packageSplit.length; k++) {
- Class[] classes2 = ClassFinder.getClasses(split[i], packageSplit[k]);
- for (int j = 0; j < classes2.length; j++) {
- if (isImplement(classes2[j], CommandExecutable.class)) {
- classSet.add(classes2[j]);
- }
- }
- }
- }
- }
- }
- }
-
- ArrayList<String> commandList = new ArrayList();
- for (Class class1 : classSet) {
- commandList.add(getCommandName(class1));
- }
- Collections.sort(commandList);
- commands = commandList.toArray(new String[0]);
-
- for (Class commandClass : classSet) {
- Constructor constructor = commandClass.getConstructor(this.getClass());
- Object commandObject = constructor.newInstance(this);
- commandMap.put(getCommandName(commandObject.getClass()), commandObject);
- }
- }
-
- private String getCommandName(Class class1)
- {
- String name = class1.getSimpleName();
- if (name.equals("classloader")) {
- name = "class";
- }
- return name;
- }
-
- private void initFile(String relativeFilePath) throws IOException
- {
- // Load data classes
- if (dataSerializableClassNames != null) {
- String split[] = dataSerializableClassNames.split(",");
- for (int i = 0; i < split.length; i++) {
- try {
- Class clazz = Class.forName(split[i]);
- println("Loaded " + clazz.getName());
- } catch (ClassNotFoundException e) {
- println(split[i] + " - " + e.getClass().getSimpleName() + ": " + e.getMessage());
- if (isDebug()) {
- e.printStackTrace();
- }
- }
- }
- }
-
- // Load data classes listed in DataSerializables.txt
- File dataSerializablesFile = null;
- if (dataSerializablesFilePath != null) {
- if (dataSerializablesFilePath.startsWith("/") || dataSerializablesFilePath.indexOf(':') >= 0) {
- // absolute path
- dataSerializablesFile = new File(dataSerializablesFilePath);
- } else {
- // relative path
- if (startupDir != null) {
- dataSerializablesFile = new File(startupDir, dataSerializablesFilePath);
- } else {
- dataSerializablesFile = new File(dataSerializablesFilePath);
- }
- }
- }
-
- if (dataSerializablesFile != null) {
- if (dataSerializablesFile.exists() == false) {
- println();
- println("Error: specified file does not exist: " + dataSerializablesFile.getAbsolutePath());
- println();
- System.exit(-1);
- }
-
- execute("class -d " + dataSerializablesFile.getAbsolutePath());
- }
-
-
- // Load jars in directory
- if (jarDirectoryPath != null) {
- File file = new File(jarDirectoryPath);
- if (file.exists() == false) {
- println();
- println("Error: specified file does not exist: " + jarDirectoryPath);
- println();
- System.exit(-1);
- }
- execute("class -dir " + jarDirectoryPath);
- }
-
- // Load jars
- if (jarPaths != null) {
- execute("class -jar " + jarPaths);
- }
-
- // Load all plugins - DataSerializables.txt not needed if
- // the data class jar files are placed in the addons/plugins
- // directory. Note that loadPlugins() loads all classes
- // in that directory including subdirectories.
- loadPlugins();
-
-
- // Get .gfshrc file
- File gfshrcFile = null;
- if (inputFilePath != null) {
- if (inputFilePath.startsWith("/") || inputFilePath.indexOf(':') >= 0) {
- // absolute path
- gfshrcFile = new File(inputFilePath);
- } else {
- // relative path
- if (startupDir != null) {
- gfshrcFile = new File(startupDir, inputFilePath);
- } else {
- gfshrcFile = new File(inputFilePath);
- }
- }
- }
-
- String userHomeDir = System.getProperty("user.home");
-
- // if the input file is valid
- if (gfshrcFile != null) {
- if (gfshrcFile.exists() == false || gfshrcFile.isFile() == false) {
- println();
- println("Error: invalid input file - " + inputFilePath);
- println();
- System.exit(-1);
- }
- } else {
- gfshrcFile = new File(userHomeDir, relativeFilePath);
- if (gfshrcFile.exists() == false) {
- gfshrcFile = new File(userHomeDir, ".gfshrc");
- if (gfshrcFile.exists() == false) {
- gfshrcFile.createNewFile();
- }
- }
- }
-
- File gfshDir = new File(userHomeDir, ".gemfire");
- if (gfshDir.exists() == false) {
- gfshDir.mkdir();
- }
-
- File etcDir = new File(gfshDir, "etc");
- if (etcDir.exists() == false) {
- etcDir.mkdir();
- }
-// File logDir = new File(gfshDir, "log");
-// if (logDir.exists() == false) {
-// logDir.mkdir();
-// }
-// File statsDir = new File(gfshDir, "stats");
-// if (statsDir.exists() == false) {
-// statsDir.mkdir();
-// }
-
- LineNumberReader reader = new LineNumberReader(new FileReader(gfshrcFile));
- String line = reader.readLine();
- String command;
- ArrayList<String> commandList = new ArrayList();
- StringBuffer buffer = new StringBuffer();
- while (line != null) {
- command = line.trim();
- if (command.length() > 0 && command.startsWith("#") == false) {
- if (command.endsWith("\\")) {
- buffer.append(command.substring(0, command.length() - 1));
- } else {
- buffer.append(command);
- commandList.add(buffer.toString().trim());
- buffer = new StringBuffer();
- }
- }
- line = reader.readLine();
- }
- reader.close();
-
- // Connect first if locators or servers are specified
- command = null;
- if (locators != null) {
- command = "connect -l " + locators;
- } else if (servers != null) {
- command = "connect -s " + servers;
- } else {
- command = "connect -s localhost:"+CacheServer.DEFAULT_PORT;
- println("Connecting using defaults: -s localhost:"+CacheServer.DEFAULT_PORT);
- }
- if (command != null) {
- execute(command);
- }
-
- // Execute commands
- String commandName = null;
- for (int i = 0; i < commandList.size(); i++) {
- command = commandList.get(i);
- command = expandProperties(command);
-
- if (isEcho()) {
- println(command);
- }
-
- // if locators or servers are specified then override
- // the connect command.
-// if (locators != null || servers != null) {
-// if (command.startsWith("connect") &&
-// (command.indexOf("-l") >= 0 || command.indexOf("-s") >= 0))
-// {
-// String newCommand = "connect";
-//
-// // keep non-connection options
-// ArrayList<String> list = new ArrayList();
-// parseCommand(command, list);
-// for (int j = 1; j < list.size(); j++) {
-// String token = list.get(i);
-// if (token.equals("-s")) {
-// j++;
-// } else if (token.equals("-l")) {
-// j++;
-// } else if (token.equals("-r")) {
-// j++;
-// newCommand = newCommand + " -r " + list.get(j);
-// }
-// }
-//
-// if (newCommand.length() > "connect".length()) {
-// execute(newCommand);
-// }
-// }
-// } else {
- execute(command);
-// }
- }
- }
-
- public void setDebug(boolean debug)
- {
- this.debug = debug;
- }
-
- public boolean isDebug()
- {
- return debug;
- }
-
- public void execute(String command)
- {
- String commandName = null;
- if (command != null) {
- command = command.trim();
- String[] split = command.split(" ");
- commandName = split[0];
- }
-
- if (command == null /* EOF */|| command.startsWith("exit") || command.startsWith("quit")) {
- close();
- System.exit(0);
- }
-
- CommandExecutable executable = getCommand(commandName);
- if (executable == null) {
- println("Error: undefined command: " + commandName);
- } else {
- try {
- executable.execute(command);
- } catch (Exception ex) {
- getCache().getLogger().error("While executing '"+command+"'", ex);
- println("Error: " + command + " -- " + getCauseMessage(ex));
- }
- }
- }
-
- public CommandExecutable getCommand(String commandName)
- {
- if (commandName.equals("n")) {
- commandName = "next";
- } else if (commandName.equals("class")) {
-
- }
- return (CommandExecutable) commandMap.get(commandName);
- }
-
- public String getEnumCommands()
- {
- return enumCommandSet.toString();
- }
-
- public void addEnumCommand(String command)
- {
- enumCommandSet.add(command);
- }
-
- private void postInit(String args[])
- {
- String iniFilePath = System.getProperty(PROPERTY_GFSH_INIT_FILE, ".gfshrc");
-
- zoneDifference = 0;
- endpoints = null;
- queryKeyClassName = null;
- fetchSize = 100;
- showResults = true;
- showTime = true;
- setCollectionEntryPrintCount(5);
- setPrintType(true);
- setTableFormat(true);
-
- try {
- initFile(iniFilePath);
- } catch (IOException ex) {
- println("Error: reading file " + iniFilePath + " -- " + getCauseMessage(ex));
- if (isDebug()) {
- ex.printStackTrace();
- }
- }
-
- // If the initialization did not create the cache then create it.
- // No connection to the server but only local cache.
- if (cache == null) {
- try {
- open();
- } catch (IOException ex) {
- println("Error: unable to create cache - " + ex.getMessage());
- if (isDebug()) {
- ex.printStackTrace();
- }
- }
- }
- }
-
- public String getLine(String prompt) throws IOException
- {
- if (prompt == null) {
- prompt = PROMPT + currentPath + ">";
- }
-
- StringBuffer cmdBuffer = null;
- boolean keepGoing;
- String nextLine;
- do {
- keepGoing = false;
- if (consoleReader == null) {
- print(prompt);
- nextLine = bufferedReader.readLine();
- } else {
- nextLine = consoleReader.readLine(prompt);
- }
-
- // if nextLine is null then we encountered EOF.
- // In that case, leave cmdBuffer null if it is still null
-
- if (this.isEcho()) {
- if (nextLine == null) {
- println("EOF");
- } else if (nextLine.length() != 0) {
-// println(nextLine); //FIXME: echo here not required? it echoes twice
- }
- }
-
- if (nextLine == null) {
- break;
- } else if (cmdBuffer == null) {
- cmdBuffer = new StringBuffer();
- }
-
- // if last character is a backward slash, replace backward slash
- // with LF and continue to next line
- if (nextLine.endsWith("\\")) {
- nextLine = nextLine.substring(0, nextLine.length() - 1);
- keepGoing = true;
- }
- cmdBuffer.append(nextLine);
-// if (keepGoing) {
-// cmdBuffer.append('\n');
-// }
- } while (keepGoing);
-
-// if (this.isEcho())
-// println();
-
- return cmdBuffer == null ? null : cmdBuffer.toString();
- }
-
-//FindBugs - private method never called
-// private String getLine(BufferedReader bin) throws IOException
-// {
-// String prompt = currentPath;
-//
-// StringBuffer cmdBuffer = null;
-// boolean keepGoing;
-// String nextLine;
-// do {
-// keepGoing = false;
-// if (consoleReader == null) {
-// print(prompt + "> ");
-// nextLine = bin.readLine();
-// } else {
-// nextLine = consoleReader.readLine(prompt + "> ");
-// }
-//
-// // if nextLine is null then we encountered EOF.
-// // In that case, leave cmdBuffer null if it is still null
-//
-// if (this.echo) {
-// if (nextLine == null) {
-// println("EOF");
-// } else if (nextLine.length() != 0) {
-// println(nextLine);
-// }
-// }
-//
-// if (nextLine == null) {
-// break;
-// } else if (cmdBuffer == null) {
-// cmdBuffer = new StringBuffer();
-// }
-//
-// // if last character is a backward slash, replace backward slash
-// // with
-// // LF and continue to next line
-// if (nextLine.endsWith("\\")) {
-// nextLine = nextLine.substring(0, nextLine.length() - 1);
-// keepGoing = true;
-// }
-// cmdBuffer.append(nextLine);
-// if (keepGoing) {
-// cmdBuffer.append('\n');
-// }
-// } while (keepGoing);
-//
-// if (this.echo)
-// println();
-//
-// return cmdBuffer == null ? null : cmdBuffer.toString();
-// }
-
- /**
- * Returns a data object for the specified function call
- * @param value The data function of the formant "to_date('date', 'simple date formant')"
- * @throws ParseException
- */
- public Date getDate(String value) throws ParseException
- {
- Date date = null;
-
- // to_date('10/10/2008', 'MM/dd/yyyy')
- String lowercase = value.toLowerCase();
- boolean error = false;
- if (lowercase.startsWith("to_date") == false) {
- error = true;
- } else {
- int index = value.indexOf('(');
- if (index == -1) {
- error = true;
- }
- value = value.substring(index + 1);
- String split2[] = value.split(",");
- if (split2.length != 2) {
- error = true;
- } else {
- for (int j = 0; j < split2.length; j++) {
- split2[j] = split2[j].trim();
- }
- String dateStr = StringUtil.trim(split2[0], '\'');
- String format = StringUtil.trim(StringUtil.trimRight(split2[1], ')'), '\'');
- dateFormat.applyPattern(format);
- date = dateFormat.parse(dateStr);
- }
- }
- if (error) {
- println(" Invalid date macro. Must use to_date('<date>', '<format>'). Ex, to_date('10/10/08', 'MM/dd/yy')");
- }
- return date;
- }
-
- public void println(Object obj)
- {
- System.out.println(obj);
- }
-
- public void println()
- {
- System.out.println();
- }
-
- public void print(String s)
- {
- System.out.print(s);
- }
-
- /**
- * Prints information on how this program should be used.
- */
- public void showHelp()
- {
- PrintStream out = System.out;
- out.println();
- out.println("Commands:");
- out.println();
-
- for (int i = 0; i < commands.length; i++) {
- CommandExecutable exe = getCommand(commands[i]);
- exe.help();
- }
-
- out.println("exit or quit");
- out.println(" Close the current cache and exits");
- out.println();
-
- }
-
- public void showHelp(String command)
- {
- PrintStream out = System.out;
- CommandExecutable exe = getCommand(command);
- if (exe != null) {
- exe.help();
- } else {
- out.println("Could not find command: "+command);
- }
- out.println();
- }
-
- private TreeMap<String, Mappable> memberMap = new TreeMap<String, Mappable>();
-
- public List<Mappable> setMemberList(List<Mappable> memberMapList)
- {
- memberMap.clear();
- for (Mappable mappable : memberMapList) {
- String memberId;
- try {
- memberId = mappable.getString("MemberId");
- memberMap.put(memberId, mappable);
- } catch (Exception ex) {
- // ignore
- }
- }
- ArrayList<Mappable> sortedList = new ArrayList(memberMap.values());
- return sortedList;
- }
-
- public String getMemberId(int memberNumber)
- {
- Set<String> set = memberMap.keySet();
- int index = memberNumber - 1;
- if (set.size() > index) {
- int i = 0;
- for (String memberId : set) {
- if (index == i) {
- return memberId;
- }
- }
- }
- return null;
- }
-
- private void initJline() throws Exception
- {
-// String osName = System.getProperty("os.name");
-// if (osName.startsWith("Windows")) {
-// return;
-// }
-
- consoleReader = new ConsoleReader();
- consoleReader.setBellEnabled(false);
-// consoleReader.setDebug(new java.io.PrintWriter("jline-debug.txt"));
- History history = consoleReader.getHistory();
- if (history == null) {
- history = new History();
- consoleReader.setHistory(history);
- }
- File historyFile = new File(System.getProperty("user.home"), ".gfshhistory");
- history.setHistoryFile(historyFile);
-// reader.setDebug(new PrintWriter(new FileWriter("writer.debug", true)));
-
- List completors = new LinkedList();
- completors.add(new SimpleCompletor(commands));
- consoleReader.addCompletor(new ArgumentCompletor(completors));
- }
-
- /**
- * Prompts the user for input and executes the command accordingly.
- */
- void go()
- {
- println();
- println("Enter 'help' or '?' for help at the command prompt.");
- println("");
-// BufferedReader bin = new BufferedReader(new InputStreamReader(System.in));
- String[] split;
- String commandName = null;
-
- while (true) {
- try {
- println();
- String command = getLine((String)null);
- println();
- if (command != null) {
- command = command.trim();
- command = expandProperties(command);
- if (isEcho()) {
- println(command);
- }
- split = command.split(" ");
- commandName = split[0];
- }
-
- if (command == null /* EOF */|| command.startsWith("exit") || command.startsWith("quit")) {
- close();
- System.exit(0);
- }
-
- // Execute the command found in the map
- CommandExecutable executable = getCommand(commandName);
- if (executable != null) {
- executable.execute(command);
- continue;
- }
-
- // Some command name exceptions...
- if (command.matches("\\(.*select.*")) {
- executable = getCommand("select");
- } else if (command.startsWith("?")) {
- executable = getCommand("help");
- }
- if (executable != null) {
- executable.execute(command);
- continue;
- }
-
- // the specified command not supported
- if (command.length() != 0) {
- println("Unrecognized command. Enter 'help' or '?' to get a list of commands.");
- }
-
- } catch (Exception ex) {
- println("Error: " + getCauseMessage(ex));
-// cache.getLogger().info(ex);
- if (debug) {
- ex.printStackTrace();
- }
- }
- }
- }
-
- public String getCauseMessage(Throwable ex)
- {
- Throwable cause = ex.getCause();
- String causeMessage = null;
- if (cause != null) {
- causeMessage = getCauseMessage(cause);
- } else {
- causeMessage = ex.getClass().getSimpleName();
- causeMessage += " -- " + ex.getMessage();
- }
- return causeMessage;
- }
-
- /**
- * Parses a <code>command</code> and places each of its tokens in a
- * <code>List</code>. Tokens are separated by whitespace, or can be wrapped
- * with double-quotes
- */
- public static boolean parseCommand(String command, List list)
- {
- Reader in = new StringReader(command);
- StringBuffer currToken = new StringBuffer();
- String delim = " \t\n\r\f";
- int c;
- boolean inQuotes = false;
- do {
- try {
- c = in.read();
- } catch (IOException e) {
- throw new Error("unexpected exception", e);
- }
-
- if (c < 0)
- break;
-
- if (c == '"') {
- if (inQuotes) {
- inQuotes = false;
- list.add(currToken.toString().trim());
- currToken = new StringBuffer();
- } else {
- inQuotes = true;
- }
- continue;
- }
-
- if (inQuotes) {
- currToken.append((char) c);
- continue;
- }
-
- if (delim.indexOf((char) c) >= 0) {
- // whitespace
- if (currToken.length() > 0) {
- list.add(currToken.toString().trim());
- currToken = new StringBuffer();
- }
- continue;
- }
-
- currToken.append((char) c);
- } while (true);
-
- if (currToken.length() > 0) {
- list.add(currToken.toString().trim());
- }
- return true;
- }
-
- public Object getKeyFromKeyList(int keyNum)
- {
- int index = keyNum - 1;
- if (getLsKeyList() == null || getLsKeyList().size() <= index) {
- return null;
- }
- return getLsKeyList().get(index);
- }
-
- public Map getKeyMap(List list, int startIndex)
- {
- HashMap keyMap = new HashMap();
- for (int i = startIndex; i < list.size(); i++) {
- String val = (String)list.get(i);
- String split[] = val.split("-");
- if (split.length == 2) {
- int startI = Integer.parseInt(split[0]);
- int endIndex = Integer.parseInt(split[1]);
- if (endIndex > getLsKeyList().size()) {
- if (getLsKeyList().size() == 0) {
- println("Error: Key list empty.");
- } else {
- println("Error: Out of range. Valid range: 1-" + getLsKeyList().size());
- }
- return keyMap;
- }
- for (int j = startI; j <= endIndex; j++) {
- Object key = getLsKeyList().get(j-1);
- keyMap.put(j, key);
- }
- } else {
- int index = Integer.parseInt(split[0]);
- Object key = getLsKeyList().get(index-1);
- keyMap.put(index, key);
- }
- }
- return keyMap;
- }
-
- public Object getQueryKey(List list, int startIndex) throws Exception
- {
- // See if key is a primitive
- String input = (String) list.get(startIndex);
- Object key = null;
- if (input.startsWith("'")) {
- int lastIndex = -1;
- if (input.endsWith("'") == false) {
- lastIndex = input.length();
- } else {
- lastIndex = input.lastIndexOf("'");
- }
- if (lastIndex <= 1) {
- println("Error: Invalid key. Empty string not allowed.");
- return null;
- }
- key = input.subSequence(1, lastIndex); // lastIndex exclusive
- } else {
- key = ObjectUtil.getPrimitive(this, input, false);
- }
- if (key != null) {
- return key;
- }
-
-
- // Key is an object
-
- // query key class must be defined
- if (queryKeyClass == null) {
- println("Error: key undefined. Use the key command to specify the key class.");
- return null;
- }
-
- // f1=v1 and f2='v2' and f3=v3
-
- // Build the query predicate from the argument list
- String queryPredicate = "";
- for (int i = startIndex; i < list.size(); i++) {
- queryPredicate += list.get(i) + " ";
- }
- String[] split = queryPredicate.split("and");
-
- // Create the query key by invoking setters for each
- // parameter listed in the queryPredicate
- Object queryKey = queryKeyClass.newInstance();
- Map<String, Method> setterMap = ReflectionUtil.getAllSettersMap(queryKey.getClass());
- for (int i = 0; i < split.length; i++) {
- String token = split[i];
- String[] tokenSplit = token.split("=");
- if (tokenSplit.length < 2) {
- println("Error: Invalid query: " + token);
- return null;
- }
- String field = tokenSplit[0].trim();
- String value = tokenSplit[1].trim();
- String setterMethodName = "set" + field;
-
- Method setterMethod = setterMap.get(setterMethodName);
- if (setterMethod == null) {
- println("Error: " + setterMethodName + " undefined in " + queryKeyClass.getName());
- return null;
- }
- Class types[] = setterMethod.getParameterTypes();
- Class arg = types[0];
- if (arg == byte.class || arg == Byte.class) {
- setterMethod.invoke(queryKey, Byte.parseByte(value));
- } else if (arg == char.class || arg == Character.class) {
- setterMethod.invoke(queryKey, value.charAt(0));
- } else if (arg == short.class || arg == Short.class) {
- setterMethod.invoke(queryKey, Short.parseShort(value));
- } else if (arg == int.class || arg == Integer.class) {
- setterMethod.invoke(queryKey, Integer.parseInt(value));
- } else if (arg == long.class || arg == Long.class) {
- setterMethod.invoke(queryKey, Long.parseLong(value));
- } else if (arg == float.class || arg == Float.class) {
- setterMethod.invoke(queryKey, Float.parseFloat(value));
- } else if (arg == double.class || arg == Double.class) {
- setterMethod.invoke(queryKey, Double.parseDouble(value));
- } else if (arg == Date.class) {
- Date date = getDate(value);
- if (date == null) {
- println("Error: Unable to parse date.");
- return null;
- } else {
- setterMethod.invoke(queryKey, date);
- }
- } else if (arg == String.class) {
- if (value.startsWith("'")) {
- value = value.substring(1);
- if (value.endsWith("'")) {
- value = value.substring(0, value.length() - 1);
- }
- }
- setterMethod.invoke(queryKey, value);
- } else {
- println("Error: Unsupported type: " + setterMethod.getName() + "(" + arg.getName() + ")");
- return null;
- }
- }
-
- return queryKey;
- }
-
- public int printSelectResults(SelectResults sr, int rowCount)
- {
- if (sr == null) {
- println("Error: SelectResults is null");
- return 0;
- }
-
- StringBuffer sb = new StringBuffer();
- CollectionType type = sr.getCollectionType();
- sb.append(sr.size());
- sb.append(" results in a collection of type ");
- sb.append(type);
- sb.append("\n");
-
- ObjectType elementType = type.getElementType();
- int row = 1;
- if (rowCount == -1) {
- rowCount = Integer.MAX_VALUE;
- }
- for (Iterator iter = sr.iterator(); iter.hasNext() && row <= rowCount;) {
- Object element = iter.next();
- if (elementType.isStructType()) {
- StructType structType = (StructType) elementType;
- Struct struct = (Struct) element;
- ObjectType[] fieldTypes = structType.getFieldTypes();
- String[] fieldNames = structType.getFieldNames();
- Object[] fieldValues = struct.getFieldValues();
-
- sb.append(" Struct with ");
- sb.append(fieldTypes.length);
- sb.append(" fields\n");
-
- for (int i = 0; i < fieldTypes.length; i++) {
- ObjectType fieldType = fieldTypes[i];
- String fieldName = fieldNames[i];
- Object fieldValue = fieldValues[i];
-
- sb.append(" ");
- sb.append(fieldValue.getClass().getName());
- sb.append(" ");
- if (/*fieldName instanceof String || */element.getClass().isPrimitive()) { //FindBugs - instanceof not needed here
- sb.append(fieldName);
- } else {
- sb.append(ReflectionUtil.toStringGettersAnd(fieldName));
- }
- sb.append(" = ");
- if (fieldValue instanceof String || element.getClass().isPrimitive()) {
- sb.append(fieldValue);
- } else {
- sb.append(ReflectionUtil.toStringGettersAnd(fieldValue));
- }
- sb.append("\n");
- }
-
- } else {
- sb.append(" ");
- sb.append(row);
- sb.append(". ");
- if (element instanceof String || element.getClass().isPrimitive()) {
- sb.append(element);
- } else {
- sb.append(ReflectionUtil.toStringGettersAnd(element));
- }
- }
-
- sb.append("\n");
- row++;
- }
-
- println(sb);
- return row - 1;
- }
-
- public void refreshAggregatorRegion()
- {
- commandClient.execute(new RefreshAggregatorRegionTask());
- }
-
- public void printEntry(Object key, Object value)
- {
- if (key instanceof String || key.getClass().isPrimitive()) {
- System.out.print(key);
- } else {
- System.out.print(ReflectionUtil.toStringGettersAnd(key));
- }
- System.out.print(" ==> ");
- if (value instanceof String || value.getClass().isPrimitive()) {
- System.out.print(value);
- } else {
- System.out.print(ReflectionUtil.toStringGettersAnd(value));
- }
- }
-
- /**
- * Returns the full path. Supports '..'.
- *
- * @param newPath
- * The new path to be evaluated
- * @param currentPath
- * The current path
- * @return Returns null if the new path is invalid.
- */
- public String getFullPath(String newPath, String currentPath)
- {
- if (newPath == null) {
- return null;
- }
- if (newPath.startsWith("/")) {
- return newPath;
- }
-
- if (currentPath == null) {
- currentPath = "/";
- }
-
- String path = currentPath;
- String[] split = currentPath.split("/");
- Stack pathStack = new Stack<String>();
- for (int i = 0; i < split.length; i++) {
- if (split[i].length() == 0) {
- continue;
- }
- pathStack.add(split[i]);
- }
- split = newPath.split("/");
- boolean invalidPath = false;
- for (int i = 0; i < split.length; i++) {
- if (split[i].length() == 0) {
- continue;
- }
- String dirName = split[i];
- if (dirName.equals("..")) {
- if (pathStack.size() == 0) {
- invalidPath = true;
- break;
- }
- pathStack.pop();
- } else if (dirName.equals(".")) {
- continue;
- } else {
- pathStack.add(dirName);
- }
- }
-
- if (invalidPath) {
- return null;
- }
-
- String fullPath = "";
- while (pathStack.size() > 0) {
- fullPath = "/" + pathStack.pop() + fullPath;
- }
- if (fullPath.length() == 0) {
- fullPath = "/";
- }
- return fullPath;
- }
-
- public void reconnect() throws Exception
- {
- if (commandClient != null) {
- try {
- commandClient.close();
- } catch (Exception ex) {
- // ignore
- }
- }
- if (lookupService != null) {
- try {
- lookupService.close();
- } catch (Exception ex) {
- // ignore
- }
- }
- if (aggregator != null) {
- try {
- aggregator.close();
- } catch (Exception ex) {
- // ignore
- }
- }
-
- // close and reopen the cache
- close();
- open();
-
- PoolFactory factory = PoolManager.createFactory();
- factory.setReadTimeout(readTimeout);
- String split[] = endpoints.split(",");
- for (int i = 0; i < split.length; i++) {
- String locator = split[i];
- String sp2[] = locator.split(":");
- String host = sp2[0];
- int port = Integer.parseInt(sp2[1]);
- if (isLocator) {
- factory.addLocator(host, port);
- } else {
- factory.addServer(host, port);
- }
- if (serverGroup != null) {
- factory.setServerGroup(serverGroup);
- }
- }
- pool = factory.create("connectionPool");
- commandClient = new CommandClient(commandRegionPath, pool);
-
- lookupService = new LookupService(commandClient);
- aggregator = new Aggregator(commandClient);
- if (logger != null && logger.configEnabled()) {
- logger.config("Available Commands : "+Arrays.toString(commands));
- }
- }
-
- public Pool getPool()
- {
- return pool;
- }
-
- public boolean isConnected()
- {
- try {
- CommandResults results = commandClient.execute(new EchoTask("hello, world"));
- return true;
- } catch (Exception ex) {
- return false;
- }
-
- }
-
- public void close()
- {
- if (cache != null && cache.isClosed() == false) {
- cache.close();
- }
- }
-
- public boolean isShowResults()
- {
- return showResults;
- }
-
- public void setShowResults(boolean showResults)
- {
- this.showResults = showResults;
- }
-
- public String getCurrentPath()
- {
- return currentPath;
- }
-
- public void setCurrentPath(String regionPath)
- {
- this.currentPath = regionPath;
- }
-
- public Region getCurrentRegion()
- {
- return currentRegion;
- }
-
- public void setCurrentRegion(Region region)
- {
- currentRegion = region;
- }
-
- public boolean isEcho()
- {
- return echo;
- }
-
- public void setEcho(boolean echo)
- {
- this.echo = echo;
- }
-
- public long getZoneDifference()
- {
- return zoneDifference;
- }
-
- public void setZoneDifference(long zoneDifference)
- {
- this.zoneDifference = zoneDifference;
- }
-
- public String getQueryKeyClassName()
- {
- return queryKeyClassName;
- }
-
- public void setQueryKeyClassName(String queryKeyClassName)
- {
- this.queryKeyClassName = queryKeyClassName;
- }
-
- public Class getQueryKeyClass()
- {
- return queryKeyClass;
- }
-
- public void setQueryKeyClass(Class queryKeyClass)
- {
- this.queryKeyClass = queryKeyClass;
- }
-
- public void setKeyClass(String queryKeyClassName)
- {
- try {
- queryKeyClass = Class.forName(queryKeyClassName);
- this.queryKeyClassName = queryKeyClassName;
- } catch (ClassNotFoundException e) {
- println(e.getMessage());
- }
- }
-
- public String getValueClassName()
- {
- return valueClassName;
- }
-
- public void setValueClassName(String valueClassName)
- {
- this.valueClassName = valueClassName;
- }
-
- public Class getValueClass()
- {
- return valueClass;
- }
-
- public void setValueClass(Class valueClass)
- {
- this.valueClass = valueClass;
- }
-
- public void setValueClass(String valueClassName)
- {
- try {
- valueClass = Class.forName(valueClassName);
- this.valueClassName = valueClassName;
- } catch (ClassNotFoundException e) {
- println(e.getMessage());
- }
- }
-
- public String getEndpoints()
- {
- return endpoints;
- }
-
- public void setEndpoints(String endpoints, boolean isLocator, String serverGroup, int readTimeout)
- {
- this.endpoints = endpoints;
- this.isLocator = isLocator;
- this.serverGroup = serverGroup;
- this.readTimeout = readTimeout;
- }
-
- public String getServerGroup()
- {
- return serverGroup;
- }
-
- public int getReadTimeout()
- {
- return readTimeout;
- }
-
- public String getCommandRegionPath()
- {
- return commandRegionPath;
- }
-
- public void setCommandRegionPath(String commandRegionPath)
- {
- this.commandRegionPath = commandRegionPath;
- setAggregateRegionPath(commandRegionPath + "/pr");
- }
-
- public String getAggregateRegionPath()
- {
- return aggregateRegionPath;
- }
-
- public void setAggregateRegionPath(String aggregateRegionPath)
- {
- this.aggregateRegionPath = aggregateRegionPath;
- }
-
- public Aggregator getAggregator()
- {
- return aggregator;
- }
-
- public void setAggregator(Aggregator aggregator)
- {
- this.aggregator = aggregator;
- }
-
- public int getSelectLimit()
- {
- return selectLimit;
- }
-
- public void setSelectLimit(int selectLimit)
- {
- this.selectLimit = selectLimit;
- }
-
- public int getFetchSize()
- {
- return fetchSize;
- }
-
- public void setFetchSize(int fetchSize)
- {
- this.fetchSize = fetchSize;
- }
-
- public boolean isTableFormat()
- {
- return tableFormat;
- }
-
- public void setTableFormat(boolean tableFormat)
- {
- this.tableFormat = tableFormat;
- PrintUtil.setTableFormat(tableFormat);
- }
-
- public boolean isPrintType()
- {
- return printType;
- }
-
- public void setPrintType(boolean printType)
- {
- this.printType = printType;
- SimplePrintUtil.setPrintType(printType);
- }
-
- public int getCollectionEntryPrintCount()
- {
- return collectionEntryPrintCount;
- }
-
- public void setCollectionEntryPrintCount(int collectionEntryPrintCount)
- {
- this.collectionEntryPrintCount = collectionEntryPrintCount;
- SimplePrintUtil.setCollectionEntryPrintCount(collectionEntryPrintCount);
- }
-
- public LookupService getLookupService()
- {
- return lookupService;
- }
-
- public CommandClient getCommandClient()
- {
- return commandClient;
- }
-
- public boolean isShowTime()
- {
- return showTime;
- }
-
- public void setShowTime(boolean showTime)
- {
- this.showTime = showTime;
- }
-
- public List getLsKeyList()
- {
- return lsKeyList;
- }
-
- public void setLsKeyList(List list)
- {
- this.lsKeyList = list;
- }
-
- public boolean isLocator()
- {
- return isLocator;
- }
-
-
- public String expandProperties(String value)
- {
- value = value.trim();
-
- // Find properties and place them in list.
- String split[] = value.split("\\$\\{");
- ArrayList<String> list = new ArrayList<String>();
- for (int i = 0; i < split.length; i++) {
- int index = split[i].indexOf('}');
- if (index != -1) {
- list.add(split[i].substring(0, index));
- }
- }
-
- // appply each property (key) in the list
- for (String key : list) {
- String val = getProperty(key);
- if (val == null) {
- value = value.replaceAll("\\$\\{" + key + "\\}", "");
- } else {
- value = value.replaceAll("\\$\\{" + key + "\\}", val);
- }
- }
- return value;
- }
-
- public String getProperty(String key)
- {
- return envProperties.getProperty(key);
- }
-
- public void setProperty(String key, String value)
- {
- if (value == null || value.length() == 0) {
- envProperties.remove(key);
- } else {
- envProperties.setProperty(key, value);
- }
- }
-
- public void printProperties()
- {
- ArrayList<String> list = new ArrayList(envProperties.keySet());
- Collections.sort(list);
- for (String key : list) {
- String value = getProperty(key);
- println(key + "=" + value);
- }
- }
-
- private void parseArgs(String args[])
- {
- String arg;
-
- for (int i = 0; i < args.length; i++) {
- arg = args[i];
-
- if (arg.equalsIgnoreCase("-?")) {
- usage();
- } else if (arg.equalsIgnoreCase("-c")) {
- i++;
- if (i < args.length) {
- dataSerializableClassNames = args[i];
- }
- } else if (arg.equalsIgnoreCase("-d")) {
- i++;
- if (i < args.length) {
- dataSerializablesFilePath = args[i];
- }
- } else if (arg.equalsIgnoreCase("-dir")) {
- i++;
- if (i < args.length) {
- jarDirectoryPath = args[i];
- }
- } else if (arg.equalsIgnoreCase("-i")) {
- i++;
- if (i < args.length) {
- inputFilePath = args[i];
- }
- } else if (arg.equalsIgnoreCase("-jar")) {
- i++;
- if (i < args.length) {
- jarPaths = args[i];
- }
- } else if (arg.equalsIgnoreCase("-l")) {
- i++;
- if (i < args.length) {
- locators = args[i];
- }
- } else if (arg.equalsIgnoreCase("-s")) {
- i++;
- if (i < args.length) {
- servers = args[i];
- }
- } else if (arg.equalsIgnoreCase("-advanced")) {
- isAdvancedMode = true;
- } else {
- System.out.println("Unknown option: '"+arg+"'");
- usage();
- }
- }
- }
-
- private static void usage()
- {
- String homeDir = System.getProperty("user.home");
- String fileSeparator = System.getProperty("file.separator");
- System.out.println();
- System.out.println("Usage:");
- System.out.println(" gfsh [-c <comma separated fully-qualified class names>]");
- System.out.println(" [-d <DataSerializables.txt file>]");
- System.out.println(" [-dir <directory>]");
- System.out.println(" [-i <.gfshrc file>]");
- System.out.println(" [-jar <jar paths>]");
- System.out.println(" [-l <host:port>|-s <host:port>]");
- System.out.println(" [-advanced]");
- System.out.println(" [-? | -h[elp]]");
- System.out.println();
- System.out.println(" -c <comma separated fully-qualified class names>] - specifies");
- System.out.println(" the names of classes to load. These classes typically");
- System.out.println(" contain static blocks that register GemFire data class");
- System.out.println(" ids via Instantiator.");
- System.out.println();
- System.out.println(" -d <DataSerializables.txt file>] - specifies the file path of");
- System.out.println(" DataSerializables.txt that overrides ");
- System.out.println(" " + homeDir + fileSeparator + ".gemfire" + fileSeparator + "etc" + fileSeparator + "DataSerializables.txt.");
- System.out.println(" This option is equivalent to 'class -d <DataSerializables.txt>.");
- System.out.println(" The file path can be relative or absolute.");
- System.out.println();
- System.out.println(" -dir <directory> - specifies the directory in which the jar files");
- System.out.println(" that contain data files are located. Gfsh loads all of the classes");
- System.out.println(" in the jar files including the jar files in the subdirectories.");
- System.out.println(" The directory can be relative or absolute. This options is");
- System.out.println(" equivalent to 'class -dir <directory>'.");
- System.out.println();
- System.out.println(" -i <.gfshrc path> - specifies the input file that overrides the default");
- System.out.println(" .gfshrc file in " + homeDir + ".");
- System.out.println(" The file path can be relative or absolute.");
- System.out.println();
- System.out.println(" -jar <jar paths> - specifies the jar paths separated by ',', ';',");
- System.out.println(" or ':'. Gfsh loads all the the classes in the jar files. The");
- System.out.println(" jar files can be relative or absolute. This options is equivalent");
- System.out.println(" to 'class -jar <jar paths>'.");
- System.out.println();
- System.out.println(" -advanced - enables these advanced commands : " + Arrays.toString(advancedCommands));
- System.out.println();
- System.out.println(" -l <host:port> - specifies locators.");
- System.out.println();
- System.out.println(" -s <host:port> - specifies cache servers.");
- System.out.println();
- System.out.println(" -version - shows gfsh version.");
- System.out.println();
- System.out.println(" -? OR -help - displays this help message.");
- System.out.println();
- System.out.println("Example 1: Start gfsh using a relative path");
- System.out.println(" cd /home/foo/app");
- System.out.println(" export GEMFIRE_APP_CLASSPATH=classes");
- System.out.println(" gfsh -l localhost:37000 -jar lib/foo.jar,lib/yong.jar");
- System.out.println();
- System.out.println("Example 2: Start gfsh using an app specific .gfshrc");
- System.out.println(" export GEMFIRE_APP_JAR_DIR=/home/foo/app/lib");
- System.out.println(" gfsh -l localhost:37000 -i /home/foo/app/.gfshrc");
- System.out.println();
- System.out.println("By default, during startup, gfsh sequentially executes the commands listed");
- System.out.println("in the .gfshrc file found in your home directory. The gfsh options");
- System.out.println("specified in the command line override the commands listed in .gfshrc.");
- System.out.println();
- System.exit(0);
- }
-
- public static void main(String args[]) throws Exception
- {
- if (args.length > 0) {
- if (args[0].equals("-h") || args[0].equals("-help") || args[0].equals("-?")) {
- usage();//System.exit is called from within usage()
- } else if (args[0].equals("version") || args[0].equals("-version")) {
- boolean fullVersion = (args.length > 1) && "FULL".equals(args[1].trim());
- System.out.println(GfshVersion.asString(fullVersion));
- return;
- }
- }
-
- Gfsh gfsh = new Gfsh(args);
- gfsh.go();
- }
-}
-
-/*
- * FIXME: We can simply add a loadXXX() method in this class and move the code
- * from static block to that method. This would not require us to load this
- * class in Gfsh.initializeCache()
- */
-class DataSerializablesInitializer {
-
- private final static int POGO_CLASS_ID_BASE = Integer.getInteger("pogo.classId.base", 0).intValue();
- private final static int UTIL_CLASS_ID_BASE = Integer.getInteger("util.classId.base", POGO_CLASS_ID_BASE + 200).intValue();
- private final static int COMMAND_CLASS_ID_BASE = Integer.getInteger("command.classId.base", 300);
-
- //code from com/gemstone/gemfire/internal/tools/gfsh/app/command/DataSerializables.java
- static {
-
- // Allow the deprecated command.classId.base base if defined
- // else use util.cassId.base as the standard base. As of GemFire 6.5,
- // all add-on libraries are tied to a single base id, util.cassId.base.
- // POGO reserves class Ids less than 1000, i.e, 1-999, inclusive.
-
- String oldCommandBaseId = System.getProperty("command.classId.base");
- int classId;
- if (oldCommandBaseId != null) {
- classId = COMMAND_CLASS_ID_BASE;
- } else {
- classId = Integer.getInteger("util.classId.base", 200) + 100;
- }
-
- Instantiator.register(new Instantiator(CommandResults.class, classId++) {
- public DataSerializable newInstance() {
- return new CommandResults();
- }
- });
-
- Instantiator.register(new Instantiator(RegionCreateTask.class, classId++) {
- public DataSerializable newInstance() {
- return new RegionCreateTask();
- }
- });
-
- Instantiator.register(new Instantiator(RegionDestroyTask.class, classId++) {
- public DataSerializable newInstance() {
- return new RegionDestroyTask();
- }
- });
-
- Instantiator.register(new Instantiator(RegionPathTask.class, classId++) {
- public DataSerializable newInstance() {
- return new RegionPathTask();
- }
- });
-
- Instantiator.register(new Instantiator(ForceGCTask.class, classId++) {
- public DataSerializable newInstance() {
- return new ForceGCTask();
- }
- });
-
- Instantiator.register(new Instantiator(IndexInfoTask.class, classId++) {
- public DataSerializable newInstance() {
- return new IndexInfoTask();
- }
- });
-
- Instantiator.register(new Instantiator(QuerySizeTask.class, classId++) {
- public DataSerializable newInstance() {
- return new QuerySizeTask();
- }
- });
-
- Instantiator.register(new Instantiator(QueryTask.class, classId++) {
- public DataSerializable newInstance() {
- return new QueryTask();
- }
- });
-
- Instantiator.register(new Instantiator(IndexInfo.class, classId++) {
- public DataSerializable newInstance() {
- return new IndexInfo();
- }
- });
-
- Instantiator.register(new Instantiator(EntryMap.class, classId++) {
- public DataSerializable newInstance() {
- return new EntryMap();
- }
- });
-
- Instantiator.register(new Instantiator(
- PartitionedRegionAttributeTask.class, classId++) {
- public DataSerializable newInstance() {
- return new PartitionedRegionAttributeTask();
- }
- });
-
- Instantiator.register(new Instantiator(MemberInfo.class, classId++) {
- public DataSerializable newInstance() {
- return new MemberInfo();
- }
- });
-
- Instantiator.register(new Instantiator(RegionAttributeInfo.class, classId++) {
- public DataSerializable newInstance() {
- return new RegionAttributeInfo();
- }
- });
-
- Instantiator.register(new Instantiator(EchoTask.class, classId++) {
- public DataSerializable newInstance() {
- return new EchoTask();
- }
- });
-
- Instantiator.register(new Instantiator(RegionSizeTask.class, classId++) {
- public DataSerializable newInstance() {
- return new RegionSizeTask();
- }
- });
-
- Instantiator.register(new Instantiator(PartitionAttributeInfo.class,
- classId++) {
- public DataSerializable newInstance() {
- return new PartitionAttributeInfo();
- }
- });
-
- Instantiator.register(new Instantiator(RegionClearTask.class, classId++) {
- public DataSerializable newInstance() {
- return new RegionClearTask();
- }
- });
- } //static 1
-
- //code from com/gemstone/gemfire/internal/tools/gfsh/app/misc/util/DataSerializables.java
- static {
- int classId = UTIL_CLASS_ID_BASE;
-
- // default: 200
- Instantiator.register(new Instantiator(GenericMessage.class, classId++) {
- public DataSerializable newInstance() {
- return new GenericMessage();
- }
- });
-
- // default: 201
- Instantiator.register(new Instantiator(ListMap.class, classId++) {
- public DataSerializable newInstance() {
- return new ListMap();
- }
- });
-
- // default: 202
- Instantiator.register(new Instantiator(ListMapMessage.class, classId++) {
- public DataSerializable newInstance() {
- return new ListMapMessage();
- }
- });
-
- // default: 203
- Instantiator.register(new Instantiator(ListMessage.class, classId++) {
- public DataSerializable newInstance() {
- return new ListMessage();
- }
- });
-
- // default: 204
- Instantiator.register(new Instantiator(MapMessage.class, classId++) {
- public DataSerializable newInstance() {
- return new MapMessage();
- }
- });
-
- // default: 205
- Instantiator.register(new Instantiator(MapLite.class, classId++) {
- public DataSerializable newInstance() {
- return new MapLite();
- }
- });
- } //static 2
-
-}
-