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 5ce1e0d1b3e2..ec25b0c4e51a 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 @@ -37,12 +37,13 @@ public static GfeConsoleReader getDefaultConsoleReader() { } public static GfeConsoleReader createConsoleReader() { - GfeConsoleReader consoleReader = null; + GfeConsoleReader consoleReader; if (Gfsh.getCurrentInstance() != null) { - LogWrapper.getInstance().info("GfeConsoleReaderFactory.createConsoleReader(): isGfshVM"); + LogWrapper logWrapper = Gfsh.getCurrentInstance().getGfshFileLogger(); + logWrapper.info("GfeConsoleReaderFactory.createConsoleReader(): isGfshVM"); consoleReader = new GfshConsoleReader(); - LogWrapper.getInstance().info("GfeConsoleReaderFactory.createConsoleReader(): consoleReader: " + logWrapper.info("GfeConsoleReaderFactory.createConsoleReader(): consoleReader: " + consoleReader + "=" + consoleReader.isSupported()); } else { consoleReader = new GfeConsoleReader(); diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/beans/MemberMBeanBridge.java b/geode-core/src/main/java/org/apache/geode/management/internal/beans/MemberMBeanBridge.java index a7fc57404379..d50a5e60c22e 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/beans/MemberMBeanBridge.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/beans/MemberMBeanBridge.java @@ -340,7 +340,7 @@ public MemberMBeanBridge(InternalCache cache, SystemManagementService service) { this.config = system.getConfig(); try { this.commandProcessor = - new OnlineCommandProcessor(system.getProperties(), cache.getSecurityService()); + new OnlineCommandProcessor(system.getProperties(), cache.getSecurityService(), cache); } catch (Exception e) { commandServiceInitError = e.getMessage(); logger.info(LogMarker.CONFIG, "Command processor could not be initialized. {}", 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 b57bc900311a..2c21ef83c753 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 @@ -34,16 +34,16 @@ import java.util.List; import java.util.Map; import java.util.Set; +import java.util.function.Supplier; import java.util.stream.Collectors; import java.util.zip.DataFormatException; import java.util.zip.Deflater; import java.util.zip.Inflater; import org.apache.commons.lang.ArrayUtils; -import org.apache.commons.lang.StringUtils; +import org.apache.geode.cache.Cache; import org.apache.geode.cache.CacheClosedException; -import org.apache.geode.cache.CacheFactory; import org.apache.geode.cache.Region; import org.apache.geode.cache.execute.Execution; import org.apache.geode.cache.execute.Function; @@ -54,6 +54,7 @@ import org.apache.geode.internal.ClassPathLoader; import org.apache.geode.internal.cache.InternalCache; import org.apache.geode.internal.cache.execute.AbstractExecution; +import org.apache.geode.internal.lang.StringUtils; import org.apache.geode.internal.util.IOUtils; import org.apache.geode.management.DistributedRegionMXBean; import org.apache.geode.management.ManagementService; @@ -74,16 +75,18 @@ public class CliUtil { public static final FileFilter JAR_FILE_FILTER = new CustomFileFilter(".jar"); - public static InternalCache getCacheIfExists() { - InternalCache cache; + /** + * Returns the InternalCache returned by the provided method. + * If the provided method would raise a CacheClosedException, returns null instead. + */ + public static InternalCache getCacheIfExists(Supplier getCacheMethod) { + InternalCache cache = null; try { - cache = getInternalCache(); - } catch (CacheClosedException e) { - // ignore & return null - cache = null; + cache = getCacheMethod.get(); + } catch (CacheClosedException ignored) { } - return cache; + } public static String cliDependenciesExist(boolean includeGfshDependencies) { @@ -212,7 +215,7 @@ public static Set getAllMembers(InternalDistributedSystem int public static Set getMembersWithAsyncEventQueue(InternalCache cache, String queueId) { - Set members = findMembers(null, null); + Set members = findMembers(null, null, cache); return members.stream().filter(m -> getAsyncEventQueueIds(cache, m).contains(queueId)) .collect(Collectors.toSet()); } @@ -224,8 +227,7 @@ public static Set getAsyncEventQueueIds(InternalCache cache, Distributed .map(x -> x.getKeyProperty("queue")).collect(Collectors.toSet()); } - public static Set getAllRegionNames() { - InternalCache cache = getInternalCache(); + public static Set getAllRegionNames(Cache cache) { Set regionNames = new HashSet<>(); Set> rootRegions = cache.rootRegions(); @@ -246,10 +248,8 @@ public static Set getAllRegionNames() { * groups or members. */ public static Set findMembersIncludingLocators(String[] groups, - String[] members) { - InternalCache cache = getInternalCache(); + String[] members, InternalCache cache) { Set allMembers = getAllMembers(cache); - return findMembers(allMembers, groups, members); } @@ -257,8 +257,8 @@ public static Set findMembersIncludingLocators(String[] group * Finds all Servers which belong to the given arrays of groups or members. Does not include * locators. */ - public static Set findMembers(String[] groups, String[] members) { - InternalCache cache = getInternalCache(); + public static Set findMembers(String[] groups, String[] members, + InternalCache cache) { Set allNormalMembers = getAllNormalMembers(cache); return findMembers(allNormalMembers, groups, members); @@ -303,23 +303,18 @@ private static Set findMembers(Set members return matchingMembers; } - public static DistributedMember getDistributedMemberByNameOrId(String memberNameOrId) { - DistributedMember memberFound = null; - - if (memberNameOrId != null) { - InternalCache cache = getInternalCache(); - Set memberSet = CliUtil.getAllMembers(cache); - for (DistributedMember member : memberSet) { - if (memberNameOrId.equalsIgnoreCase(member.getId()) - || memberNameOrId.equalsIgnoreCase(member.getName())) { - memberFound = member; - break; - } - } + public static DistributedMember getDistributedMemberByNameOrId(String memberNameOrId, + InternalCache cache) { + if (memberNameOrId == null) { + return null; } - return memberFound; + + Set memberSet = CliUtil.getAllMembers(cache); + return memberSet.stream().filter(member -> memberNameOrId.equalsIgnoreCase(member.getId()) + || memberNameOrId.equalsIgnoreCase(member.getName())).findFirst().orElse(null); } + /** * Even thought this is only used in a test, caller of MemberMXBean.processCommand(String, Map, * Byte[][]) will need to use this method to convert a fileList to Byte[][] to call that @@ -566,10 +561,7 @@ public static void runLessCommandAsExternalViewer(Result commandResult) { } } - static class CustomFileFilter implements FileFilter { - - private String extensionWithDot; public CustomFileFilter(String extensionWithDot) { @@ -581,14 +573,12 @@ public boolean accept(File pathname) { String name = pathname.getName(); return name.endsWith(extensionWithDot); } - } public static class DeflaterInflaterData implements Serializable { - private static final long serialVersionUID = 1104813333595216795L; - private final int dataLength; + private final int dataLength; private final byte[] data; public DeflaterInflaterData(int dataLength, byte[] data) { @@ -609,10 +599,4 @@ public String toString() { return String.valueOf(dataLength); } } - - // Methods that will be removed by the next commit: - - private static InternalCache getInternalCache() { - return (InternalCache) CacheFactory.getAnyInstance(); - } } diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/CommandManager.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/CommandManager.java index 44617d3f18aa..b0ef5d0f2568 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/CommandManager.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/CommandManager.java @@ -35,6 +35,7 @@ import org.springframework.shell.core.annotation.CliAvailabilityIndicator; import org.springframework.shell.core.annotation.CliCommand; +import org.apache.geode.cache.Cache; import org.apache.geode.distributed.ConfigurationProperties; import org.apache.geode.distributed.internal.DistributionConfig; import org.apache.geode.internal.ClassPathLoader; @@ -53,7 +54,6 @@ public class CommandManager { public static final String USER_CMD_PACKAGES_PROPERTY = DistributionConfig.GEMFIRE_PREFIX + USER_COMMAND_PACKAGES; public static final String USER_CMD_PACKAGES_ENV_VARIABLE = "GEMFIRE_USER_COMMAND_PACKAGES"; - private static final Object INSTANCE_LOCK = new Object(); private final Helper helper = new Helper(); @@ -68,18 +68,18 @@ public class CommandManager { * environment. used by Gfsh. */ public CommandManager() { - this(null); + this(null, null); } /** * this is used when getting the instance in a cache server. We are getting the * user-command-package from distribution properties. used by OnlineCommandProcessor. */ - public CommandManager(final Properties cacheProperties) { + public CommandManager(final Properties cacheProperties, Cache cache) { if (cacheProperties != null) { this.cacheProperties = cacheProperties; } - logWrapper = LogWrapper.getInstance(); + logWrapper = LogWrapper.getInstance(cache); loadCommands(); } @@ -260,8 +260,6 @@ public List getCommandMarkers() { /** * Method to add new Converter - * - * @param converter */ void add(Converter converter) { if (CommandManagerAware.class.isAssignableFrom(converter.getClass())) { @@ -272,8 +270,6 @@ void add(Converter converter) { /** * Method to add new Commands to the parser - * - * @param commandMarker */ void add(CommandMarker commandMarker) { if (CommandManagerAware.class.isAssignableFrom(commandMarker.getClass())) { diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/Launcher.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/Launcher.java index a652255a50c0..49c35c9b1907 100755 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/Launcher.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/Launcher.java @@ -315,7 +315,8 @@ private static class StartupTimeLogHelper { public void logStartupTime() { done = System.currentTimeMillis(); - LogWrapper.getInstance().info("Startup done in " + ((done - start) / 1000.0) + " seconds."); + LogWrapper.getInstance(null) + .info("Startup done in " + ((done - start) / 1000.0) + " seconds."); } @Override diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/LogWrapper.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/LogWrapper.java index 2cd15f4c7e95..f342828d2c07 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/LogWrapper.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/LogWrapper.java @@ -45,10 +45,9 @@ public class LogWrapper { private Logger logger; - private LogWrapper() { + private LogWrapper(Cache cache) { logger = Logger.getLogger(this.getClass().getCanonicalName()); - Cache cache = CliUtil.getCacheIfExists(); if (cache != null && !cache.isClosed()) { logger.addHandler(cache.getLogger().getHandler()); CommandResponseWriterHandler handler = new CommandResponseWriterHandler(); @@ -59,11 +58,11 @@ private LogWrapper() { logger.setUseParentHandlers(false); } - public static LogWrapper getInstance() { + public static LogWrapper getInstance(Cache cache) { if (INSTANCE == null) { synchronized (INSTANCE_LOCK) { if (INSTANCE == null) { - INSTANCE = new LogWrapper(); + INSTANCE = new LogWrapper(cache); } } } diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/AlterRuntimeConfigCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/AlterRuntimeConfigCommand.java index f3c5cd47af43..9aec858a93b1 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/AlterRuntimeConfigCommand.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/AlterRuntimeConfigCommand.java @@ -96,7 +96,7 @@ public Result alterRuntimeConfig( Map runTimeDistributionConfigAttributes = new HashMap<>(); Map rumTimeCacheAttributes = new HashMap<>(); - Set targetMembers = CliUtil.findMembers(group, memberNameOrId); + Set targetMembers = CliUtil.findMembers(group, memberNameOrId, getCache()); if (targetMembers.isEmpty()) { return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE); diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ChangeLogLevelCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ChangeLogLevelCommand.java index 03ba084d3f48..fe09b3ecd2df 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ChangeLogLevelCommand.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ChangeLogLevelCommand.java @@ -135,7 +135,8 @@ public Result changeLogLevel( } } catch (Exception ex) { - LogWrapper.getInstance().warning("change log level command exception " + ex); + LogWrapper.getInstance(CliUtil.getCacheIfExists(this::getCache)) + .warning("change log level command exception " + ex); } } diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CloseDurableCQsCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CloseDurableCQsCommand.java index 61dd9144465d..5cad87af9711 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CloseDurableCQsCommand.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CloseDurableCQsCommand.java @@ -57,7 +57,7 @@ public Result closeDurableCqs(@CliOption(key = CliStrings.CLOSE_DURABLE_CQS__DUR optionContext = ConverterHint.MEMBERGROUP) final String[] group) { Result result; try { - Set targetMembers = CliUtil.findMembers(group, memberNameOrId); + Set targetMembers = CliUtil.findMembers(group, memberNameOrId, getCache()); if (targetMembers.isEmpty()) { return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE); diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CloseDurableClientCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CloseDurableClientCommand.java index 14c9731da6c0..3b2826607f1f 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CloseDurableClientCommand.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CloseDurableClientCommand.java @@ -55,7 +55,7 @@ public Result closeDurableClient( Result result; try { - Set targetMembers = CliUtil.findMembers(group, memberNameOrId); + Set targetMembers = CliUtil.findMembers(group, memberNameOrId, getCache()); if (targetMembers.isEmpty()) { return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE); diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CompactDiskStoreCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CompactDiskStoreCommand.java index ced374969776..80064634cadd 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CompactDiskStoreCommand.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CompactDiskStoreCommand.java @@ -122,7 +122,7 @@ public Result compactDiskStore( } String notExecutedMembers = CompactRequest.getNotExecutedMembers(); if (notExecutedMembers != null && !notExecutedMembers.isEmpty()) { - LogWrapper.getInstance() + LogWrapper.getInstance(CliUtil.getCacheIfExists(this::getCache)) .info("compact disk-store \"" + diskStoreName + "\" message was scheduled to be sent to but was not send to " + notExecutedMembers); @@ -159,7 +159,7 @@ public Result compactDiskStore( } // all members' if } // disk store exists' if } catch (RuntimeException e) { - LogWrapper.getInstance().info(e.getMessage(), e); + LogWrapper.getInstance(CliUtil.getCacheIfExists(this::getCache)).info(e.getMessage(), e); result = ResultBuilder.createGemFireErrorResult( CliStrings.format(CliStrings.COMPACT_DISK_STORE__ERROR_WHILE_COMPACTING_REASON_0, new Object[] {e.getMessage()})); diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CompactOfflineDiskStoreCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CompactOfflineDiskStoreCommand.java index 2fdd8d719c04..521b1f58b638 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CompactOfflineDiskStoreCommand.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CompactOfflineDiskStoreCommand.java @@ -54,7 +54,7 @@ public Result compactOfflineDiskStore( @CliOption(key = CliStrings.COMPACT_OFFLINE_DISK_STORE__J, help = CliStrings.COMPACT_OFFLINE_DISK_STORE__J__HELP) String[] jvmProps) { Result result; - LogWrapper logWrapper = LogWrapper.getInstance(); + LogWrapper logWrapper = LogWrapper.getInstance(CliUtil.getCacheIfExists(this::getCache)); StringBuilder output = new StringBuilder(); StringBuilder error = new StringBuilder(); diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ConfigurePDXCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ConfigurePDXCommand.java index 8c490f4d6898..3a8659520035 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ConfigurePDXCommand.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ConfigurePDXCommand.java @@ -63,7 +63,7 @@ public Result configurePDX( && (patterns != null && patterns.length > 0)) { return ResultBuilder.createUserErrorResult(CliStrings.CONFIGURE_PDX__ERROR__MESSAGE); } - if (!CliUtil.getAllNormalMembers(CliUtil.getCacheIfExists()).isEmpty()) { + if (!CliUtil.getAllNormalMembers(getCache()).isEmpty()) { ird.addLine(CliStrings.CONFIGURE_PDX__NORMAL__MEMBERS__WARNING); } // Set persistent and the disk-store diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ConnectCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ConnectCommand.java index 9e87f1c6c9bb..53b67d5e1929 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ConnectCommand.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ConnectCommand.java @@ -282,7 +282,7 @@ Result httpConnect(Properties gfProperties, String url, boolean skipSslVerificat gfsh.setOperationInvoker(operationInvoker); - LogWrapper.getInstance() + LogWrapper.getInstance(CliUtil.getCacheIfExists(this::getCache)) .info(CliStrings.format(CliStrings.CONNECT__MSG__SUCCESS, operationInvoker.toString())); return ResultBuilder.createInfoResult( CliStrings.format(CliStrings.CONNECT__MSG__SUCCESS, operationInvoker.toString())); @@ -358,8 +358,8 @@ Result jmxConnect(Properties gfProperties, boolean useSsl, ConnectionEndpoint me gfsh.setOperationInvoker(operationInvoker); infoResultData.addLine(CliStrings.format(CliStrings.CONNECT__MSG__SUCCESS, jmxHostPortToConnect.toString(false))); - LogWrapper.getInstance().info(CliStrings.format(CliStrings.CONNECT__MSG__SUCCESS, - jmxHostPortToConnect.toString(false))); + LogWrapper.getInstance(CliUtil.getCacheIfExists(this::getCache)).info(CliStrings + .format(CliStrings.CONNECT__MSG__SUCCESS, jmxHostPortToConnect.toString(false))); return ResultBuilder.buildResult(infoResultData); } catch (SecurityException | AuthenticationFailedException e) { // if it's security exception, and we already sent in username and password, still returns the @@ -497,7 +497,7 @@ private Result handleException(Exception e) { } private Result handleException(Exception e, String errorMessage) { - LogWrapper.getInstance().severe(errorMessage, e); + LogWrapper.getInstance(CliUtil.getCacheIfExists(this::getCache)).severe(errorMessage, e); return ResultBuilder.createConnectionErrorResult(errorMessage); } diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CountDurableCQEventsCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CountDurableCQEventsCommand.java index 8ebc4dadb6a7..e208e32e5b42 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CountDurableCQEventsCommand.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CountDurableCQEventsCommand.java @@ -56,7 +56,7 @@ public Result countDurableCqEvents( Result result; try { - Set targetMembers = CliUtil.findMembers(group, memberNameOrId); + Set targetMembers = CliUtil.findMembers(group, memberNameOrId, getCache()); if (targetMembers.isEmpty()) { return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE); diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CreateRegionCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CreateRegionCommand.java index 7e2ecbf52479..e1a1d349bc8d 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CreateRegionCommand.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CreateRegionCommand.java @@ -455,7 +455,7 @@ RegionAttributesWrapper getRegionAttributes(InternalCache cache, String regionPa throw (IllegalArgumentException) object; } else if (object instanceof Throwable) { Throwable th = (Throwable) object; - LogWrapper.getInstance().info(ExceptionUtils.getStackTrace((th))); + LogWrapper.getInstance(getCache()).info(ExceptionUtils.getStackTrace((th))); throw new IllegalArgumentException(CliStrings.format( CliStrings.CREATE_REGION__MSG__COULD_NOT_RETRIEVE_REGION_ATTRS_FOR_PATH_0_REASON_1, regionPath, th.getMessage())); diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DeployCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DeployCommand.java index e01078316761..610fd8065070 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DeployCommand.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DeployCommand.java @@ -85,7 +85,7 @@ public Result deploy( List jarFullPaths = CommandExecutionContext.getFilePathFromShell(); Set targetMembers; - targetMembers = CliUtil.findMembers(groups, null); + targetMembers = CliUtil.findMembers(groups, null, getCache()); List results = new ArrayList(); ManagementAgent agent = ((SystemManagementService) getManagementService()).getManagementAgent(); diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DescribeClientCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DescribeClientCommand.java index d8135f0dd42e..cf208897c742 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DescribeClientCommand.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DescribeClientCommand.java @@ -118,7 +118,7 @@ public Result describeClient(@CliOption(key = CliStrings.DESCRIBE_CLIENT__ID, ma for (Object aResultList : resultList) { Object object = aResultList; if (object instanceof Throwable) { - LogWrapper.getInstance().warning( + LogWrapper.getInstance(CliUtil.getCacheIfExists(this::getCache)).warning( "Exception in Describe Client " + ((Throwable) object).getMessage(), ((Throwable) object)); continue; @@ -156,7 +156,8 @@ public Result describeClient(@CliOption(key = CliStrings.DESCRIBE_CLIENT__ID, ma return ResultBuilder.createGemFireErrorResult(CliStrings.DESCRIBE_CLIENT_NO_MEMBERS); } - LogWrapper.getInstance().info("describe client result " + result); + LogWrapper.getInstance(CliUtil.getCacheIfExists(this::getCache)) + .info("describe client result " + result); return result; } @@ -207,13 +208,14 @@ private void buildTableResult(CompositeResultData.SectionResultData sectionResul String poolStatsStr = entry.getValue(); String str[] = poolStatsStr.split(";"); - LogWrapper.getInstance().info("describe client clientHealthStatus min conn=" + LogWrapper logWrapper = LogWrapper.getInstance(CliUtil.getCacheIfExists(this::getCache)); + logWrapper.info("describe client clientHealthStatus min conn=" + str[0].substring(str[0].indexOf("=") + 1)); - LogWrapper.getInstance().info("describe client clientHealthStatus max conn =" + logWrapper.info("describe client clientHealthStatus max conn =" + str[1].substring(str[1].indexOf("=") + 1)); - LogWrapper.getInstance().info("describe client clientHealthStatus redundancy =" + logWrapper.info("describe client clientHealthStatus redundancy =" + str[2].substring(str[2].indexOf("=") + 1)); - LogWrapper.getInstance().info("describe client clientHealthStatus CQs =" + logWrapper.info("describe client clientHealthStatus CQs =" + str[3].substring(str[3].indexOf("=") + 1)); poolStatsResultTable.accumulate(CliStrings.DESCRIBE_CLIENT_MIN_CONN, diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DestroyIndexCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DestroyIndexCommand.java index ae6e08a6e6f7..6d7af27fc2ec 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DestroyIndexCommand.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DestroyIndexCommand.java @@ -70,7 +70,7 @@ public Result destroyIndex( } IndexInfo indexInfo = new IndexInfo(indexName, regionName); indexInfo.setIfExists(ifExists); - Set targetMembers = CliUtil.findMembers(group, memberNameOrID); + Set targetMembers = CliUtil.findMembers(group, memberNameOrID, getCache()); if (targetMembers.isEmpty()) { return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE); diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DisconnectCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DisconnectCommand.java index 2d7da45d2bf5..d675fcab4820 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DisconnectCommand.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DisconnectCommand.java @@ -19,6 +19,7 @@ import org.apache.geode.management.cli.CliMetaData; import org.apache.geode.management.cli.Result; +import org.apache.geode.management.internal.cli.CliUtil; import org.apache.geode.management.internal.cli.LogWrapper; import org.apache.geode.management.internal.cli.i18n.CliStrings; import org.apache.geode.management.internal.cli.result.InfoResultData; @@ -45,8 +46,8 @@ public Result disconnect() { operationInvoker.stop(); infoResultData.addLine(CliStrings.format(CliStrings.DISCONNECT__MSG__DISCONNECTED, operationInvoker.toString())); - LogWrapper.getInstance().info(CliStrings.format(CliStrings.DISCONNECT__MSG__DISCONNECTED, - operationInvoker.toString())); + LogWrapper.getInstance(CliUtil.getCacheIfExists(this::getCache)).info(CliStrings + .format(CliStrings.DISCONNECT__MSG__DISCONNECTED, operationInvoker.toString())); if (!gfshInstance.isHeadlessMode()) { gfshInstance.setPromptPath(gfshInstance.getEnvAppContextPath()); } diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ExportConfigCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ExportConfigCommand.java index a5e7f87b818d..49d5e389c05a 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ExportConfigCommand.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ExportConfigCommand.java @@ -68,7 +68,7 @@ public Result exportConfig( help = CliStrings.EXPORT_CONFIG__DIR__HELP) String dir) { InfoResultData infoData = ResultBuilder.createInfoResultData(); - Set targetMembers = CliUtil.findMembers(group, member); + Set targetMembers = CliUtil.findMembers(group, member, getCache()); if (targetMembers.isEmpty()) { return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE); } diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ExportOfflineDiskStoreCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ExportOfflineDiskStoreCommand.java index c704364a9d0c..cf57263698aa 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ExportOfflineDiskStoreCommand.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ExportOfflineDiskStoreCommand.java @@ -24,6 +24,7 @@ import org.apache.geode.internal.cache.DiskStoreImpl; import org.apache.geode.management.cli.CliMetaData; import org.apache.geode.management.cli.Result; +import org.apache.geode.management.internal.cli.CliUtil; import org.apache.geode.management.internal.cli.LogWrapper; import org.apache.geode.management.internal.cli.i18n.CliStrings; import org.apache.geode.management.internal.cli.result.ResultBuilder; @@ -60,7 +61,7 @@ public Result exportOfflineDiskStore( throw e; } catch (Throwable th) { SystemFailure.checkFailure(); - LogWrapper.getInstance().warning(th.getMessage(), th); + LogWrapper.getInstance(CliUtil.getCacheIfExists(this::getCache)).warning(th.getMessage(), th); return ResultBuilder.createGemFireErrorResult(CliStrings .format(CliStrings.EXPORT_OFFLINE_DISK_STORE__ERROR, diskStoreName, th.toString())); } diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/GCCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/GCCommand.java index 9a039bd55775..06d2ec59f4d8 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/GCCommand.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/GCCommand.java @@ -86,12 +86,12 @@ private Result executeAndBuildResult(TabularResultData resultTable, for (Object object : resultList) { if (object instanceof Exception) { - LogWrapper.getInstance().fine("Exception in GC " + ((Throwable) object).getMessage(), - ((Throwable) object)); + LogWrapper.getInstance(CliUtil.getCacheIfExists(this::getCache)) + .fine("Exception in GC " + ((Throwable) object).getMessage(), ((Throwable) object)); continue; } else if (object instanceof Throwable) { - LogWrapper.getInstance().fine("Exception in GC " + ((Throwable) object).getMessage(), - ((Throwable) object)); + LogWrapper.getInstance(CliUtil.getCacheIfExists(this::getCache)) + .fine("Exception in GC " + ((Throwable) object).getMessage(), ((Throwable) object)); continue; } @@ -106,7 +106,8 @@ private Result executeAndBuildResult(TabularResultData resultTable, resultMap.get("TimeSpentInGC")); } } else { - LogWrapper.getInstance().fine("ResultMap was null "); + LogWrapper.getInstance(CliUtil.getCacheIfExists(this::getCache)) + .fine("ResultMap was null "); } } diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/GfshCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/GfshCommand.java index 58e73af6f0fe..b7304cee04b1 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/GfshCommand.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/GfshCommand.java @@ -116,7 +116,7 @@ default DistributedMember getMember(final String memberName) { * this will return the member found or null if no member with that name */ default DistributedMember findMember(final String memberName) { - return CliUtil.getDistributedMemberByNameOrId(memberName); + return CliUtil.getDistributedMemberByNameOrId(memberName, getCache()); } /** @@ -141,7 +141,7 @@ default Execution getMembersFunctionExecutor(final Set member * if no members matches these names, an empty set would return, this does not include locators */ default Set findMembers(String[] groups, String[] members) { - return CliUtil.findMembers(groups, members); + return CliUtil.findMembers(groups, members, getCache()); } /** @@ -159,7 +159,7 @@ default Set getMembers(String[] groups, String[] members) { * if no members matches these names, an empty set would return */ default Set findMembersIncludingLocators(String[] groups, String[] members) { - return CliUtil.findMembersIncludingLocators(groups, members); + return CliUtil.findMembersIncludingLocators(groups, members, getCache()); } /** diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ListAsyncEventQueuesCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ListAsyncEventQueuesCommand.java index 8b3d1bd22548..6c9e529f39c9 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ListAsyncEventQueuesCommand.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ListAsyncEventQueuesCommand.java @@ -46,7 +46,7 @@ public Result listAsyncEventQueues() { TabularResultData tabularData = ResultBuilder.createTabularResultData(); boolean accumulatedData = false; - Set targetMembers = CliUtil.findMembers(null, null); + Set targetMembers = CliUtil.getAllNormalMembers(getCache()); if (targetMembers.isEmpty()) { return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE); diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ListClientCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ListClientCommand.java index 3f76b2ca9ada..b5142b5211fc 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ListClientCommand.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ListClientCommand.java @@ -29,6 +29,7 @@ import org.apache.geode.management.ManagementService; import org.apache.geode.management.cli.CliMetaData; import org.apache.geode.management.cli.Result; +import org.apache.geode.management.internal.cli.CliUtil; import org.apache.geode.management.internal.cli.LogWrapper; import org.apache.geode.management.internal.cli.i18n.CliStrings; import org.apache.geode.management.internal.cli.result.CompositeResultData; @@ -110,9 +111,8 @@ public Result listClient() throws Exception { } result = ResultBuilder.buildResult(compositeResultData); - - - LogWrapper.getInstance().info("list client result " + result); + LogWrapper.getInstance(CliUtil.getCacheIfExists(this::getCache)) + .info("list client result " + result); return result; } diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ListDeployedCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ListDeployedCommand.java index 4c2bc53fc558..7f429e12d60c 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ListDeployedCommand.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ListDeployedCommand.java @@ -55,7 +55,7 @@ public Result listDeployed(@CliOption(key = {CliStrings.GROUP, CliStrings.GROUPS TabularResultData tabularData = ResultBuilder.createTabularResultData(); boolean accumulatedData = false; - Set targetMembers = CliUtil.findMembers(group, null); + Set targetMembers = CliUtil.findMembers(group, null, getCache()); if (targetMembers.isEmpty()) { return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE); diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ListDurableClientCQsCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ListDurableClientCQsCommand.java index 011bfde751c9..e202d0f7b86e 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ListDurableClientCQsCommand.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ListDurableClientCQsCommand.java @@ -60,7 +60,7 @@ public Result listDurableClientCQs( try { boolean noResults = true; - Set targetMembers = CliUtil.findMembers(group, memberNameOrId); + Set targetMembers = CliUtil.findMembers(group, memberNameOrId, getCache()); if (targetMembers.isEmpty()) { return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE); diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ListFunctionCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ListFunctionCommand.java index 86b89856025d..a5afc10ce9cc 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ListFunctionCommand.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ListFunctionCommand.java @@ -56,7 +56,7 @@ public Result listFunction( TabularResultData tabularData = ResultBuilder.createTabularResultData(); boolean accumulatedData = false; - Set targetMembers = CliUtil.findMembers(groups, members); + Set targetMembers = CliUtil.findMembers(groups, members, getCache()); if (targetMembers.isEmpty()) { return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE); diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ListRegionCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ListRegionCommand.java index cd58449cc298..644e586fbc42 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ListRegionCommand.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ListRegionCommand.java @@ -32,9 +32,7 @@ import org.apache.geode.management.cli.CliMetaData; import org.apache.geode.management.cli.ConverterHint; import org.apache.geode.management.cli.Result; -import org.apache.geode.management.internal.cli.AbstractCliAroundInterceptor; import org.apache.geode.management.internal.cli.CliUtil; -import org.apache.geode.management.internal.cli.GfshParseResult; import org.apache.geode.management.internal.cli.domain.RegionInformation; import org.apache.geode.management.internal.cli.functions.GetRegionsFunction; import org.apache.geode.management.internal.cli.i18n.CliStrings; @@ -61,7 +59,7 @@ public Result listRegion( try { Set regionInfoSet = new LinkedHashSet<>(); ResultCollector rc; - Set targetMembers = CliUtil.findMembers(group, memberNameOrId); + Set targetMembers = CliUtil.findMembers(group, memberNameOrId, getCache()); if (targetMembers.isEmpty()) { return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE); diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/NetstatCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/NetstatCommand.java index 0bf2d4002b75..cff33636a791 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/NetstatCommand.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/NetstatCommand.java @@ -171,13 +171,13 @@ public Result netstat( } result = ResultBuilder.buildResult(resultData); } catch (IllegalArgumentException e) { - LogWrapper.getInstance() + LogWrapper.getInstance(CliUtil.getCacheIfExists(this::getCache)) .info(CliStrings.format( CliStrings.NETSTAT__MSG__ERROR_OCCURRED_WHILE_EXECUTING_NETSTAT_ON_0, new Object[] {Arrays.toString(members)})); result = ResultBuilder.createUserErrorResult(e.getMessage()); } catch (RuntimeException e) { - LogWrapper.getInstance() + LogWrapper.getInstance(CliUtil.getCacheIfExists(this::getCache)) .info(CliStrings.format( CliStrings.NETSTAT__MSG__ERROR_OCCURRED_WHILE_EXECUTING_NETSTAT_ON_0, new Object[] {Arrays.toString(members)}), e); diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/RebalanceCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/RebalanceCommand.java index d0e1fd454e7e..560c718e2b0d 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/RebalanceCommand.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/RebalanceCommand.java @@ -94,7 +94,8 @@ public Result rebalance( } catch (TimeoutException timeoutException) { result = ResultBuilder.createInfoResult(CliStrings.REBALANCE__MSG__REBALANCE_WILL_CONTINUE); } - LogWrapper.getInstance().info("Rebalance returning result >>>" + result); + LogWrapper.getInstance(CliUtil.getCacheIfExists(this::getCache)) + .info("Rebalance returning result >>>" + result); return result; } @@ -108,8 +109,9 @@ private boolean checkResultList(CompositeResultData rebalanceResultData, List re CliStrings.format(CliStrings.REBALANCE__MSG__NO_EXECUTION, member.getId()), ((Exception) object).getMessage()); - LogWrapper.getInstance().info(CliStrings.REBALANCE__MSG__NO_EXECUTION + member.getId() - + " exception=" + ((Throwable) object).getMessage(), ((Throwable) object)); + LogWrapper.getInstance(CliUtil.getCacheIfExists(this::getCache)) + .info(CliStrings.REBALANCE__MSG__NO_EXECUTION + member.getId() + " exception=" + + ((Throwable) object).getMessage(), ((Throwable) object)); toContinueForOtherMembers = true; break; @@ -118,15 +120,16 @@ private boolean checkResultList(CompositeResultData rebalanceResultData, List re CliStrings.format(CliStrings.REBALANCE__MSG__NO_EXECUTION, member.getId()), ((Throwable) object).getMessage()); - LogWrapper.getInstance().info(CliStrings.REBALANCE__MSG__NO_EXECUTION + member.getId() - + " exception=" + ((Throwable) object).getMessage(), ((Throwable) object)); + LogWrapper.getInstance(CliUtil.getCacheIfExists(this::getCache)) + .info(CliStrings.REBALANCE__MSG__NO_EXECUTION + member.getId() + " exception=" + + ((Throwable) object).getMessage(), ((Throwable) object)); toContinueForOtherMembers = true; break; } } } else { - LogWrapper.getInstance().info( + LogWrapper.getInstance(CliUtil.getCacheIfExists(this::getCache)).info( "Rebalancing for member=" + member.getId() + ", resultList is either null or empty"); rebalanceResultData.addSection().addData("Rebalancing for member=" + member.getId(), ", resultList is either null or empty"); @@ -247,8 +250,9 @@ Result executeRebalanceWithTimeout(String[] includeRegions, String[] excludeRegi DistributedMember member = getAssociatedMembers(regionName, cache); if (member == null) { - LogWrapper.getInstance().info(CliStrings.format( - CliStrings.REBALANCE__MSG__NO_ASSOCIATED_DISTRIBUTED_MEMBER, regionName)); + LogWrapper.getInstance(CliUtil.getCacheIfExists(RebalanceCommand.this::getCache)) + .info(CliStrings.format( + CliStrings.REBALANCE__MSG__NO_ASSOCIATED_DISTRIBUTED_MEMBER, regionName)); continue; } @@ -271,7 +275,7 @@ Result executeRebalanceWithTimeout(String[] includeRegions, String[] excludeRegi resultList = (ArrayList) executeFunction(rebalanceFunction, functionArgs, member) .getResult(); } catch (Exception ex) { - LogWrapper.getInstance() + LogWrapper.getInstance(CliUtil.getCacheIfExists(RebalanceCommand.this::getCache)) .info(CliStrings.format( CliStrings.REBALANCE__MSG__EXCEPTION_IN_REBALANCE_FOR_MEMBER_0_Exception_1, member.getId(), ex.getMessage()), ex); @@ -297,7 +301,7 @@ Result executeRebalanceWithTimeout(String[] includeRegions, String[] excludeRegi resultList = (ArrayList) executeFunction(rebalanceFunction, functionArgs, member) .getResult(); } catch (Exception ex) { - LogWrapper.getInstance() + LogWrapper.getInstance(CliUtil.getCacheIfExists(RebalanceCommand.this::getCache)) .info(CliStrings.format( CliStrings.REBALANCE__MSG__EXCEPTION_IN_REBALANCE_FOR_MEMBER_0_Exception_1, member.getId(), ex.getMessage()), ex); @@ -346,16 +350,19 @@ Result executeRebalanceWithTimeout(String[] includeRegions, String[] excludeRegi } index++; } - LogWrapper.getInstance().info("Rebalance returning result " + result); + LogWrapper.getInstance(CliUtil.getCacheIfExists(RebalanceCommand.this::getCache)) + .info("Rebalance returning result " + result); return result; } else { result = executeRebalanceOnDS(cache, String.valueOf(simulate), excludeRegions); - LogWrapper.getInstance().info("Starting Rebalance simulate false result >> " + result); + LogWrapper.getInstance(CliUtil.getCacheIfExists(RebalanceCommand.this::getCache)) + .info("Starting Rebalance simulate false result >> " + result); } } catch (Exception e) { result = ResultBuilder.createGemFireErrorResult(e.getMessage()); } - LogWrapper.getInstance().info("Rebalance returning result >>>" + result); + LogWrapper.getInstance(CliUtil.getCacheIfExists(RebalanceCommand.this::getCache)) + .info("Rebalance returning result >>>" + result); return result; } } diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ResumeGatewaySenderCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ResumeGatewaySenderCommand.java index 3407027808ce..16286ef74eec 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ResumeGatewaySenderCommand.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ResumeGatewaySenderCommand.java @@ -67,7 +67,7 @@ public Result resumeGatewaySender(@CliOption(key = CliStrings.RESUME_GATEWAYSEND TabularResultData resultData = ResultBuilder.createTabularResultData(); - Set dsMembers = CliUtil.findMembers(onGroup, onMember); + Set dsMembers = CliUtil.findMembers(onGroup, onMember, getCache()); if (dsMembers.isEmpty()) { return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE); diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ShCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ShCommand.java index 753bbe149b9f..d46a16e8dd34 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ShCommand.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ShCommand.java @@ -25,6 +25,7 @@ import org.apache.geode.internal.lang.SystemUtils; import org.apache.geode.management.cli.CliMetaData; import org.apache.geode.management.cli.Result; +import org.apache.geode.management.internal.cli.CliUtil; import org.apache.geode.management.internal.cli.LogWrapper; import org.apache.geode.management.internal.cli.i18n.CliStrings; import org.apache.geode.management.internal.cli.result.InfoResultData; @@ -46,7 +47,7 @@ public Result sh( ResultBuilder.buildResult(executeCommand(Gfsh.getCurrentInstance(), command, useConsole)); } catch (IllegalStateException | IOException e) { result = ResultBuilder.createUserErrorResult(e.getMessage()); - LogWrapper.getInstance() + LogWrapper.getInstance(CliUtil.getCacheIfExists(this::getCache)) .warning("Unable to execute command \"" + command + "\". Reason:" + e.getMessage() + "."); } return result; diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/SleepCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/SleepCommand.java index b931d7e8a60c..3d658ab8ddc0 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/SleepCommand.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/SleepCommand.java @@ -20,6 +20,7 @@ import org.apache.geode.management.cli.CliMetaData; import org.apache.geode.management.cli.Result; +import org.apache.geode.management.internal.cli.CliUtil; import org.apache.geode.management.internal.cli.LogWrapper; import org.apache.geode.management.internal.cli.i18n.CliStrings; import org.apache.geode.management.internal.cli.result.ResultBuilder; @@ -30,7 +31,8 @@ public class SleepCommand implements GfshCommand { public Result sleep(@CliOption(key = {CliStrings.SLEEP__TIME}, unspecifiedDefaultValue = "3", help = CliStrings.SLEEP__TIME__HELP) double time) { try { - LogWrapper.getInstance().fine("Sleeping for " + time + "seconds."); + LogWrapper.getInstance(CliUtil.getCacheIfExists(this::getCache)) + .fine("Sleeping for " + time + "seconds."); Thread.sleep(Math.round(time * 1000)); } catch (InterruptedException ignored) { } diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/StartGatewayReceiverCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/StartGatewayReceiverCommand.java index d220374edd69..b8a4fa5bf5ee 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/StartGatewayReceiverCommand.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/StartGatewayReceiverCommand.java @@ -63,7 +63,7 @@ public Result startGatewayReceiver(@CliOption(key = {CliStrings.GROUP, CliString TabularResultData resultData = ResultBuilder.createTabularResultData(); - Set dsMembers = CliUtil.findMembers(onGroup, onMember); + Set dsMembers = CliUtil.findMembers(onGroup, onMember, getCache()); if (dsMembers.isEmpty()) { return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE); diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/StatusGatewayReceiverCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/StatusGatewayReceiverCommand.java index a8829d3085f7..6b405913a734 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/StatusGatewayReceiverCommand.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/StatusGatewayReceiverCommand.java @@ -68,7 +68,7 @@ public Result statusGatewayReceiver(@CliOption(key = {CliStrings.GROUP, CliStrin crd.addSection(CliStrings.SECTION_GATEWAY_RECEIVER_NOT_AVAILABLE) .addTable(CliStrings.TABLE_GATEWAY_RECEIVER); - Set dsMembers = CliUtil.findMembers(onGroup, onMember); + Set dsMembers = CliUtil.findMembers(onGroup, onMember, getCache()); if (dsMembers.isEmpty()) { return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE); diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/StatusGatewaySenderCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/StatusGatewaySenderCommand.java index c0ce5d8d5d00..89c0f9229d32 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/StatusGatewaySenderCommand.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/StatusGatewaySenderCommand.java @@ -75,7 +75,7 @@ public Result statusGatewaySender(@CliOption(key = CliStrings.STATUS_GATEWAYSEND crd.addSection(CliStrings.SECTION_GATEWAY_SENDER_NOT_AVAILABLE) .addTable(CliStrings.TABLE_GATEWAY_SENDER); - Set dsMembers = CliUtil.findMembers(onGroup, onMember); + Set dsMembers = CliUtil.findMembers(onGroup, onMember, getCache()); if (dsMembers.isEmpty()) { return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE); diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/StopGatewayReceiverCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/StopGatewayReceiverCommand.java index e183b20c43e6..0b6f6f9410dd 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/StopGatewayReceiverCommand.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/StopGatewayReceiverCommand.java @@ -62,7 +62,7 @@ public Result stopGatewayReceiver(@CliOption(key = {CliStrings.GROUP, CliStrings TabularResultData resultData = ResultBuilder.createTabularResultData(); - Set dsMembers = CliUtil.findMembers(onGroup, onMember); + Set dsMembers = CliUtil.findMembers(onGroup, onMember, getCache()); if (dsMembers.isEmpty()) { return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE); diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/StopGatewaySenderCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/StopGatewaySenderCommand.java index cc67fc4f5e02..1a4841292411 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/StopGatewaySenderCommand.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/StopGatewaySenderCommand.java @@ -68,7 +68,7 @@ public Result stopGatewaySender(@CliOption(key = CliStrings.STOP_GATEWAYSENDER__ TabularResultData resultData = ResultBuilder.createTabularResultData(); - Set dsMembers = CliUtil.findMembers(onGroup, onMember); + Set dsMembers = CliUtil.findMembers(onGroup, onMember, getCache()); if (dsMembers.isEmpty()) { return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE); diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/UndeployCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/UndeployCommand.java index e0189df253b8..630b33ce3802 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/UndeployCommand.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/UndeployCommand.java @@ -61,7 +61,7 @@ public Result undeploy( TabularResultData tabularData = ResultBuilder.createTabularResultData(); boolean accumulatedData = false; - Set targetMembers = CliUtil.findMembers(groups, null); + Set targetMembers = CliUtil.findMembers(groups, null, getCache()); if (targetMembers.isEmpty()) { return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE); diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/UpgradeOfflineDiskStoreCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/UpgradeOfflineDiskStoreCommand.java index bf2b5056e7b6..10b05c8d0206 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/UpgradeOfflineDiskStoreCommand.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/UpgradeOfflineDiskStoreCommand.java @@ -52,11 +52,10 @@ public Result upgradeOfflineDiskStore( unspecifiedDefaultValue = "-1", help = CliStrings.UPGRADE_OFFLINE_DISK_STORE__MAXOPLOGSIZE__HELP) long maxOplogSize, @CliOption(key = CliStrings.UPGRADE_OFFLINE_DISK_STORE__J, - help = CliStrings.UPGRADE_OFFLINE_DISK_STORE__J__HELP) String[] jvmProps) - throws InterruptedException { + help = CliStrings.UPGRADE_OFFLINE_DISK_STORE__J__HELP) String[] jvmProps) { Result result; - LogWrapper logWrapper = LogWrapper.getInstance(); + LogWrapper logWrapper = LogWrapper.getInstance(CliUtil.getCacheIfExists(this::getCache)); StringBuilder output = new StringBuilder(); StringBuilder error = new StringBuilder(); diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GetMemberInformationFunction.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GetMemberInformationFunction.java index fa8b9c6c27c8..cb9e8cb702e8 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GetMemberInformationFunction.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GetMemberInformationFunction.java @@ -63,10 +63,8 @@ public boolean isHA() { return true; } + /* Read only function */ @Override - /** - * Read only function - */ public boolean optimizeForWrite() { return false; } @@ -76,10 +74,6 @@ public void execute(FunctionContext functionContext) { try { Cache cache = functionContext.getCache(); - /* - * TODO: 1) Get the CPU usage% - */ - InternalDistributedSystem system = (InternalDistributedSystem) cache.getDistributedSystem(); DistributionConfig config = system.getConfig(); String serverBindAddress = config.getServerBindAddress(); @@ -99,7 +93,7 @@ public void execute(FunctionContext functionContext) { memberInfo.setHeapUsage(Long.toString(bytesToMeg(memUsage.getUsed()))); memberInfo.setMaxHeapSize(Long.toString(bytesToMeg(memUsage.getMax()))); memberInfo.setInitHeapSize(Long.toString(bytesToMeg(memUsage.getInit()))); - memberInfo.setHostedRegions(CliUtil.getAllRegionNames()); + memberInfo.setHostedRegions(CliUtil.getAllRegionNames(cache)); List csList = cache.getCacheServers(); diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/json/GfJsonArray.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/json/GfJsonArray.java index ff5f58b9eaf6..bfc6672d23bd 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/json/GfJsonArray.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/json/GfJsonArray.java @@ -17,10 +17,11 @@ import java.util.Collection; import java.util.Map; +import org.apache.logging.log4j.Logger; import org.json.JSONArray; import org.json.JSONException; -import org.apache.geode.management.internal.cli.LogWrapper; +import org.apache.geode.internal.logging.LogService; /** * Wrapper over JSONArray. @@ -29,6 +30,8 @@ * @since GemFire 7.0 */ public class GfJsonArray { + private static final Logger logger = LogService.getLogger(); + private JSONArray jsonArray; public GfJsonArray() { @@ -36,8 +39,6 @@ public GfJsonArray() { } /** - * - * @param array * @throws GfJsonException If not an array. */ public GfJsonArray(Object array) throws GfJsonException { @@ -53,8 +54,6 @@ public GfJsonArray(Object array) throws GfJsonException { } /** - * - * @param source * @throws GfJsonException If there is a syntax error. */ public GfJsonArray(String source) throws GfJsonException { @@ -68,7 +67,6 @@ public GfJsonArray(String source) throws GfJsonException { /** * Get the object value associated with an index. * - * @param index * @return An object value. * @throws GfJsonException If there is no value for the index. */ @@ -95,9 +93,6 @@ public GfJsonArray put(Object value) { } /** - * - * @param index - * @param value * @return this GfJsonArray * @throws GfJsonException If the index is negative or if the the value is an invalid number. */ @@ -116,9 +111,6 @@ public GfJsonArray put(Collection value) { } /** - * - * @param index - * @param value * @return this GfJsonArray * @throws GfJsonException If the index is negative or if the value is not finite. */ @@ -137,9 +129,6 @@ public GfJsonArray put(Map value) { } /** - * - * @param index - * @param value * @return this GfJsonArray * @throws GfJsonException If the index is negative or if the the value is an invalid number. */ @@ -162,8 +151,6 @@ public String toString() { } /** - * - * @param indentFactor * @return this GfJsonArray * @throws GfJsonException If the object contains an invalid number. */ @@ -202,7 +189,7 @@ public static String[] toStringArray(GfJsonArray jsonArray) { try { stringArray[i] = String.valueOf(jsonArray.get(i)); } catch (GfJsonException e) { - LogWrapper.getInstance().info("", e); + logger.info("", e); stringArray = null; } } diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/remote/MemberCommandService.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/remote/MemberCommandService.java index 6130117d2eda..3df27a3c928e 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/remote/MemberCommandService.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/remote/MemberCommandService.java @@ -36,7 +36,7 @@ public MemberCommandService(InternalCache cache) throws CommandServiceException this.cache = cache; try { this.onlineCommandProcessor = new OnlineCommandProcessor( - cache.getDistributedSystem().getProperties(), cache.getSecurityService()); + cache.getDistributedSystem().getProperties(), cache.getSecurityService(), cache); } catch (Exception e) { throw new CommandServiceException("Could not load commands.", e); } diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/remote/OnlineCommandProcessor.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/remote/OnlineCommandProcessor.java index 4fc563adf646..1698d6f69836 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/remote/OnlineCommandProcessor.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/remote/OnlineCommandProcessor.java @@ -14,7 +14,6 @@ */ package org.apache.geode.management.internal.cli.remote; -import java.io.IOException; import java.lang.reflect.Method; import java.util.Collections; import java.util.List; @@ -26,8 +25,8 @@ import org.springframework.util.StringUtils; import org.apache.geode.annotations.TestingOnly; +import org.apache.geode.cache.Cache; import org.apache.geode.internal.security.SecurityService; -import org.apache.geode.internal.security.SecurityServiceFactory; import org.apache.geode.management.cli.CliMetaData; import org.apache.geode.management.cli.CommandProcessingException; import org.apache.geode.management.cli.Result; @@ -50,20 +49,15 @@ public class OnlineCommandProcessor { private final SecurityService securityService; - @TestingOnly - public OnlineCommandProcessor() throws ClassNotFoundException, IOException { - this(new Properties(), SecurityServiceFactory.create()); - } - - public OnlineCommandProcessor(Properties cacheProperties, SecurityService securityService) - throws ClassNotFoundException, IOException { - this(cacheProperties, securityService, new CommandExecutor()); + public OnlineCommandProcessor(Properties cacheProperties, SecurityService securityService, + Cache cache) { + this(cacheProperties, securityService, new CommandExecutor(), cache); } @TestingOnly public OnlineCommandProcessor(Properties cacheProperties, SecurityService securityService, - CommandExecutor commandExecutor) { - this.gfshParser = new GfshParser(new CommandManager(cacheProperties)); + CommandExecutor commandExecutor, Cache cache) { + this.gfshParser = new GfshParser(new CommandManager(cacheProperties, cache)); this.executor = commandExecutor; this.securityService = securityService; } diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/result/CommandResult.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/result/CommandResult.java index b7aac061dad6..0f6c563a427e 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/result/CommandResult.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/result/CommandResult.java @@ -25,11 +25,12 @@ import java.util.Vector; import java.util.zip.DataFormatException; +import org.apache.logging.log4j.Logger; import org.json.JSONArray; +import org.apache.geode.internal.logging.LogService; import org.apache.geode.management.cli.Result; import org.apache.geode.management.internal.cli.GfshParser; -import org.apache.geode.management.internal.cli.LogWrapper; import org.apache.geode.management.internal.cli.json.GfJsonArray; import org.apache.geode.management.internal.cli.json.GfJsonException; import org.apache.geode.management.internal.cli.json.GfJsonObject; @@ -44,6 +45,7 @@ */ public class CommandResult implements Result { + private static final Logger logger = LogService.getLogger(); private GfJsonObject gfJsonObject; private Status status; @@ -168,7 +170,7 @@ private void buildInfoErrorData(RowGroup rowGroup, GfJsonObject content) throws } } - void buildObjectResultOutput() { + private void buildObjectResultOutput() { try { Table resultTable = TableBuilder.newTable(); resultTable.setColumnSeparator(" : "); @@ -378,7 +380,7 @@ private boolean isPrimitiveOrStringOrWrapperArray(Object object) { return isPrimitive; } - void buildComposite() { + private void buildComposite() { try { GfJsonObject content = getContent(); if (content != null) { @@ -404,7 +406,7 @@ void buildComposite() { } catch (GfJsonException e) { resultLines .add("Error occurred while processing Command Result. Internal Error - Invalid Result."); - LogWrapper.getInstance().info( + logger.info( "Error occurred while processing Command Result. Internal Error - Invalid Result.", e); } finally { isDataBuilt = true; @@ -472,11 +474,6 @@ private static String[] getValuesSeparatedByLines(Object object) { return valueString.split(GfshParser.LINE_SEPARATOR); } - /** - * @param rowGroup - * @param content - * @throws GfJsonException - */ private void buildTable(RowGroup rowGroup, GfJsonObject content) throws GfJsonException { GfJsonArray columnNames = content.names(); int numOfColumns = columnNames.size(); @@ -508,13 +505,6 @@ private void buildTable(RowGroup rowGroup, GfJsonObject content) throws GfJsonEx } } - /** - * @param rowGroup - * @param dataRows - * @param accumulatedData - * @return rows - * @throws GfJsonException - */ private Row[] buildRows(RowGroup rowGroup, Row[] dataRows, GfJsonArray accumulatedData) throws GfJsonException { int size = accumulatedData.size(); @@ -535,6 +525,7 @@ private Row[] buildRows(RowGroup rowGroup, Row[] dataRows, GfJsonArray accumulat return dataRows; } + @Override public boolean hasIncomingFiles() { GfJsonArray fileDataArray = null; try { @@ -552,6 +543,7 @@ public int getNumTimesSaved() { return numTimesSaved; } + @Override public void saveIncomingFiles(String directory) throws IOException { // dump file data if any try { @@ -651,7 +643,7 @@ public String getFooter() { return getFooter(gfJsonObject); } - public String getFooter(GfJsonObject gfJsonObject) { + private String getFooter(GfJsonObject gfJsonObject) { return gfJsonObject.getString(ResultData.RESULT_FOOTER); } 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 cd3e4ed81170..50ca6110fafc 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 @@ -163,8 +163,6 @@ public Gfsh() { * Create a GemFire shell with console using the specified arguments. * * @param args arguments to be used to create a GemFire shell instance - * @throws IOException - * @throws ClassNotFoundException */ protected Gfsh(String[] args) { this(true, args, new GfshConfig()); @@ -176,8 +174,6 @@ protected Gfsh(String[] args) { * * @param launchShell whether to make Console available * @param args arguments to be used to create a GemFire shell instance or execute command - * @throws IOException - * @throws ClassNotFoundException */ protected Gfsh(boolean launchShell, String[] args, GfshConfig gfshConfig) { // 1. Disable suppressing of duplicate messages @@ -185,7 +181,8 @@ protected Gfsh(boolean launchShell, String[] args, GfshConfig gfshConfig) { // 2. set & use gfshConfig this.gfshConfig = gfshConfig; - this.gfshFileLogger = LogWrapper.getInstance(); + // The cache doesn't exist yet, since we are still setting up parsing. + this.gfshFileLogger = LogWrapper.getInstance(null); this.gfshFileLogger.configure(this.gfshConfig); this.ansiHandler = ANSIHandler.getInstance(this.gfshConfig.isANSISupported()); @@ -236,7 +233,7 @@ protected Gfsh(boolean launchShell, String[] args, GfshConfig gfshConfig) { System.setProperty("jline.terminal", GfshUnsupportedTerminal.class.getName()); env.put(ENV_APP_QUIET_EXECUTION, String.valueOf(true)); // Only in headless mode, we do not want Gfsh's logger logs on screen - LogWrapper.getInstance().setParentFor(logger); + this.gfshFileLogger.setParentFor(logger); } // we want to direct internal JDK logging to file in either mode redirectInternalJavaLoggers(); @@ -310,7 +307,7 @@ private static String removeBackslash(String result) { * logWrapper disables any parents's log handler, and only logs to the file if specified. This * would prevent JDK's logging show up in the console */ - public static void redirectInternalJavaLoggers() { + public void redirectInternalJavaLoggers() { // Do we need to this on re-connect? LogManager logManager = LogManager.getLogManager(); @@ -328,12 +325,12 @@ public static void redirectInternalJavaLoggers() { * properly handle the case where the Logger has been garbage collected. */ if (javaLogger != null) { - LogWrapper.getInstance().setParentFor(javaLogger); + this.gfshFileLogger.setParentFor(javaLogger); } } } } catch (SecurityException e) { - LogWrapper.getInstance().warning(e.getMessage(), e); + this.gfshFileLogger.warning(e.getMessage(), e); } } @@ -560,8 +557,8 @@ public Parser getParser() { return parser; } - public GfshParser getGfshParser() { - return parser; + public LogWrapper getGfshFileLogger() { + return gfshFileLogger; } /** 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 62b9c3188a1a..be641d865a84 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 @@ -54,7 +54,7 @@ public class GfshExecutionStrategy implements ExecutionStrategy { GfshExecutionStrategy(Gfsh shell) { this.shell = shell; - this.logWrapper = LogWrapper.getInstance(); + this.logWrapper = shell.getGfshFileLogger(); } /** @@ -220,7 +220,7 @@ private Result executeOnRemote(GfshParseResult parseResult) { debugInfo = debugInfo.replaceAll("\n", "\n[From Manager : " + commandResponse.getSender() + "]"); debugInfo = "[From Manager : " + commandResponse.getSender() + "]" + debugInfo; - LogWrapper.getInstance().info(debugInfo); + this.logWrapper.info(debugInfo); } commandResult = ResultBuilder.fromJson((String) response); } else if (response instanceof Path) { diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/shell/JmxOperationInvoker.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/shell/JmxOperationInvoker.java index 14318e85b226..bb0073164367 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/shell/JmxOperationInvoker.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/shell/JmxOperationInvoker.java @@ -48,8 +48,10 @@ import com.healthmarketscience.rmiio.RemoteOutputStreamClient; import org.apache.commons.io.IOUtils; +import org.apache.logging.log4j.Logger; import org.apache.geode.internal.admin.SSLConfig; +import org.apache.geode.internal.logging.LogService; import org.apache.geode.internal.net.SSLConfigurationFactory; import org.apache.geode.internal.security.SecurableCommunicationChannel; import org.apache.geode.management.DistributedSystemMXBean; @@ -59,7 +61,6 @@ import org.apache.geode.management.internal.beans.FileUploader; import org.apache.geode.management.internal.beans.FileUploaderMBean; import org.apache.geode.management.internal.cli.CommandRequest; -import org.apache.geode.management.internal.cli.LogWrapper; import org.apache.geode.management.internal.security.ResourceConstants; /** @@ -68,6 +69,7 @@ * @since GemFire 7.0 */ public class JmxOperationInvoker implements OperationInvoker { + private static final Logger logger = LogService.getLogger(); public static final String JMX_URL_FORMAT = "service:jmx:rmi://{0}/jndi/rmi://{0}:{1}/jmxrmi"; @@ -159,15 +161,14 @@ public JmxOperationInvoker(final String host, final int port, Properties gfPrope MBeanJMXAdapter.getDistributedSystemName(), DistributedSystemMXBean.class); if (this.distributedSystemMXBeanProxy == null) { - LogWrapper.getInstance().info( + logger.info( "DistributedSystemMXBean is not present on member with endpoints : " + this.endpoints); throw new JMXConnectionException(JMXConnectionException.MANAGER_NOT_FOUND_EXCEPTION); } else { this.managerMemberObjectName = this.distributedSystemMXBeanProxy.getMemberObjectName(); if (this.managerMemberObjectName == null || !JMX.isMXBeanInterface(MemberMXBean.class)) { - LogWrapper.getInstance() - .info("MemberMXBean with ObjectName " + this.managerMemberObjectName - + " is not present on member with endpoints : " + endpoints); + logger.info("MemberMXBean with ObjectName " + this.managerMemberObjectName + + " is not present on member with endpoints : " + endpoints); throw new JMXConnectionException(JMXConnectionException.MANAGER_NOT_FOUND_EXCEPTION); } else { this.memberMXBeanProxy = @@ -376,14 +377,9 @@ public static String checkAndConvertToCompatibleIPv6Syntax(String hostAddress) { // if host string contains ":", considering it as an IPv6 Address // Conforming to RFC2732 - http://www.ietf.org/rfc/rfc2732.txt if (hostAddress.contains(":")) { - LogWrapper logger = LogWrapper.getInstance(); - if (logger.fineEnabled()) { - logger.fine("IPv6 host address detected, using IPv6 syntax for host in JMX connection URL"); - } + logger.debug("IPv6 host address detected, using IPv6 syntax for host in JMX connection URL"); hostAddress = "[" + hostAddress + "]"; - if (logger.fineEnabled()) { - logger.fine("Compatible host address is : " + hostAddress); - } + logger.debug("Compatible host address is : " + hostAddress); } return hostAddress; } diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/util/MergeLogs.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/util/MergeLogs.java index cd9f72fa60c6..67446e35caff 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/util/MergeLogs.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/util/MergeLogs.java @@ -20,7 +20,6 @@ import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; -import java.io.FilenameFilter; import java.io.InputStream; import java.io.InputStreamReader; import java.io.PrintWriter; @@ -31,13 +30,12 @@ import java.util.List; import org.apache.commons.io.FileUtils; +import org.apache.logging.log4j.Logger; +import org.apache.geode.internal.logging.LogService; import org.apache.geode.internal.logging.MergeLogFiles; -import org.apache.geode.management.cli.Result; import org.apache.geode.management.internal.cli.GfshParser; -import org.apache.geode.management.internal.cli.LogWrapper; import org.apache.geode.management.internal.cli.i18n.CliStrings; -import org.apache.geode.management.internal.cli.result.ResultBuilder; /** * @@ -45,10 +43,23 @@ */ public class MergeLogs { + private static final Logger logger = LogService.getLogger(); + + public static void main(String[] args) { + if (args.length < 1 || args.length > 1) { + throw new IllegalArgumentException("Requires only 1 arguments : "); + } + try { + String result = mergeLogFile(args[0]).getCanonicalPath(); + System.out.println("Merged logs to: " + result); + } catch (Exception e) { + System.out.println(e.getMessage()); + } + } public static void mergeLogsInNewProcess(Path logDirectory) { // create a new process for merging - LogWrapper.getInstance().fine("Exporting logs merging logs" + logDirectory); + logger.info("Exporting logs merging logs" + logDirectory); List commandList = new ArrayList(); commandList.add( System.getProperty("java.home") + File.separatorChar + "bin" + File.separatorChar + "java"); @@ -60,9 +71,8 @@ public static void mergeLogsInNewProcess(Path logDirectory) { ProcessBuilder procBuilder = new ProcessBuilder(commandList); StringBuilder output = new StringBuilder(); - String errorString = new String(); try { - LogWrapper.getInstance().fine("Exporting logs now merging logs"); + logger.info("Exporting logs now merging logs"); Process mergeProcess = procBuilder.redirectErrorStream(true).start(); mergeProcess.waitFor(); @@ -76,27 +86,13 @@ public static void mergeLogsInNewProcess(Path logDirectory) { } mergeProcess.destroy(); } catch (Exception e) { - LogWrapper.getInstance().severe(e.getMessage()); + logger.error(e.getMessage()); } if (output.toString().contains("Merged logs to: ")) { - LogWrapper.getInstance().fine("Exporting logs Sucessfully merged logs"); + logger.info("Exporting logs successfully merged logs"); } else { - LogWrapper.getInstance().severe("Could not merge"); - } - } - - public static void main(String[] args) { - if (args.length < 1 || args.length > 1) { - throw new IllegalArgumentException("Requires only 1 arguments : "); + logger.error("Could not merge"); } - try { - String result = mergeLogFile(args[0]).getCanonicalPath(); - System.out.println("Merged logs to: " + result); - } catch (Exception e) { - System.out.println(e.getMessage()); - } - - } protected static List findLogFilesToMerge(File dir) { @@ -125,7 +121,7 @@ static File mergeLogFile(String dirName) throws Exception { + new SimpleDateFormat("yyyy-MM-dd_HH-mm-ss").format(new java.util.Date()) + ".log"; mergedLogFile = new File(mergeLog); mergedLog = new PrintWriter(mergedLogFile); - boolean flag = MergeLogFiles.mergeLogFiles(logFiles, logFileNames, mergedLog); + MergeLogFiles.mergeLogFiles(logFiles, logFileNames, mergedLog); } catch (FileNotFoundException e) { throw new Exception( "FileNotFoundException in creating PrintWriter in MergeLogFiles" + e.getMessage()); diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/CliUtilDUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/CliUtilDUnitTest.java index 4bb7326107d3..0eccaf2c1b5b 100644 --- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/CliUtilDUnitTest.java +++ b/geode-core/src/test/java/org/apache/geode/management/internal/cli/CliUtilDUnitTest.java @@ -88,43 +88,49 @@ public static void setUpCluster() throws Exception { @Test public void findMembers() throws Exception { locator.invoke(() -> { + InternalCache cache = ClusterStartupRule.getCache(); // can't pass in both group and names - assertThatThrownBy(() -> CliUtil.findMembers("group1".split(","), "member1".split(","))) - .isInstanceOf(UserErrorException.class); + assertThatThrownBy( + () -> CliUtil.findMembers("group1".split(","), "member1".split(","), cache)) + .isInstanceOf(UserErrorException.class); // finds all servers - members = CliUtil.findMembers(null, null); + members = CliUtil.findMembers(null, null, cache); assertThat(getNames(members)).containsExactlyInAnyOrder("member1", "member2", "member3", "member4"); // find only one member - members = CliUtil.findMembers(null, "member1".split(",")); + members = CliUtil.findMembers(null, "member1".split(","), cache); assertThat(getNames(members)).containsExactly("member1"); // find multiple members - members = CliUtil.findMembers(null, "member1,member3".split(",")); + members = CliUtil.findMembers(null, "member1,member3".split(","), cache); assertThat(getNames(members)).containsExactlyInAnyOrder("member1", "member3"); // find multiple members - members = CliUtil.findMembers(null, "MembER1,member3".split(",")); + members = CliUtil.findMembers(null, "MembER1,member3".split(","), cache); assertThat(getNames(members)).containsExactlyInAnyOrder("member1", "member3"); // find only one group - members = CliUtil.findMembers("group1".split(","), null); + members = CliUtil.findMembers("group1".split(","), null, cache); assertThat(getNames(members)).containsExactlyInAnyOrder("member1", "member2"); // find multiple groups - members = CliUtil.findMembers("group1,group2".split(","), null); + members = CliUtil.findMembers("group1,group2".split(","), null, cache); assertThat(getNames(members)).containsExactlyInAnyOrder("member1", "member2", "member3", "member4"); }); } - public void getMember() throws Exception { + public void getMember() { locator.invoke(() -> { - assertThat(CliUtil.getDistributedMemberByNameOrId("notValidName")).isNull(); - assertThat(CliUtil.getDistributedMemberByNameOrId("member1").getName()).isEqualTo("member1"); - assertThat(CliUtil.getDistributedMemberByNameOrId("MembER1").getName()).isEqualTo("member1"); + assertThat( + CliUtil.getDistributedMemberByNameOrId("notValidName", ClusterStartupRule.getCache())) + .isNull(); + assertThat(CliUtil.getDistributedMemberByNameOrId("member1", ClusterStartupRule.getCache()) + .getName()).isEqualTo("member1"); + assertThat(CliUtil.getDistributedMemberByNameOrId("MembER1", ClusterStartupRule.getCache()) + .getName()).isEqualTo("member1"); }); } @@ -174,12 +180,13 @@ public void getRegionsAssociatedMembers() throws Exception { @Test public void getMemberByNameOrId() throws Exception { locator.invoke(() -> { - DistributedMember member = CliUtil.getDistributedMemberByNameOrId("member1"); + DistributedMember member = + CliUtil.getDistributedMemberByNameOrId("member1", ClusterStartupRule.getCache()); assertThat(member.getName()).isEqualTo("member1"); assertThat(member.getId()).contains("member1:"); assertThat(member.getGroups()).containsExactly("group1"); - member = CliUtil.getDistributedMemberByNameOrId("member100"); + member = CliUtil.getDistributedMemberByNameOrId("member100", ClusterStartupRule.getCache()); assertThat(member).isNull(); }); } diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ShowLogCommandDUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ShowLogCommandDUnitTest.java index c13c1af0c264..0a66d2512368 100644 --- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ShowLogCommandDUnitTest.java +++ b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ShowLogCommandDUnitTest.java @@ -163,8 +163,10 @@ public void testShowLogInvalidMember() throws Exception { private static boolean allMembersAreConnected() { return manager.getVM().invoke(() -> { InternalCache cache = (InternalCache) CacheFactory.getAnyInstance(); - DistributedMember server1 = CliUtil.getDistributedMemberByNameOrId(SERVER1_NAME); - DistributedMember server2 = CliUtil.getDistributedMemberByNameOrId(SERVER2_NAME); + DistributedMember server1 = + CliUtil.getDistributedMemberByNameOrId(SERVER1_NAME, ClusterStartupRule.getCache()); + DistributedMember server2 = + CliUtil.getDistributedMemberByNameOrId(SERVER2_NAME, ClusterStartupRule.getCache()); ShowLogCommand showLogCommand = new ShowLogCommand(); diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/remote/OnlineCommandProcessorTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/remote/OnlineCommandProcessorTest.java index f4e2955d03bd..89a3e6cc6ff5 100644 --- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/remote/OnlineCommandProcessorTest.java +++ b/geode-core/src/test/java/org/apache/geode/management/internal/cli/remote/OnlineCommandProcessorTest.java @@ -55,7 +55,8 @@ public void before() { result = mock(Result.class); when(executor.execute(any())).thenReturn(result); - onlineCommandProcessor = new OnlineCommandProcessor(properties, securityService, executor); + onlineCommandProcessor = + new OnlineCommandProcessor(properties, securityService, executor, null); } diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/shell/GfshExecutionStrategyTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/shell/GfshExecutionStrategyTest.java index bc5362bb733e..201e1f8125f7 100644 --- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/shell/GfshExecutionStrategyTest.java +++ b/geode-core/src/test/java/org/apache/geode/management/internal/cli/shell/GfshExecutionStrategyTest.java @@ -29,6 +29,7 @@ import org.apache.geode.management.internal.cli.CommandRequest; import org.apache.geode.management.internal.cli.CommandResponseBuilder; import org.apache.geode.management.internal.cli.GfshParseResult; +import org.apache.geode.management.internal.cli.LogWrapper; import org.apache.geode.management.internal.cli.result.CommandResult; import org.apache.geode.management.internal.cli.result.ResultBuilder; import org.apache.geode.test.junit.categories.UnitTest; @@ -38,8 +39,8 @@ */ @Category(UnitTest.class) public class GfshExecutionStrategyTest { - private static final String COMMAND1_SUCESS = "Command1 Executed successfully"; - private static final String COMMAND2_SUCESS = "Command2 Executed successfully"; + private static final String COMMAND1_SUCCESS = "Command1 Executed successfully"; + private static final String COMMAND2_SUCCESS = "Command2 Executed successfully"; private Gfsh gfsh; private GfshParseResult parsedCommand; @@ -48,6 +49,7 @@ public class GfshExecutionStrategyTest { @Before public void before() { gfsh = mock(Gfsh.class); + when(gfsh.getGfshFileLogger()).thenReturn(LogWrapper.getInstance(null)); parsedCommand = mock(GfshParseResult.class); gfshExecutionStrategy = new GfshExecutionStrategy(gfsh); } @@ -60,7 +62,7 @@ public void testOfflineCommand() throws Exception { when(parsedCommand.getMethod()).thenReturn(Commands.class.getDeclaredMethod("offlineCommand")); when(parsedCommand.getInstance()).thenReturn(new Commands()); Result result = (Result) gfshExecutionStrategy.execute(parsedCommand); - assertThat(result.nextLine().trim()).isEqualTo(COMMAND1_SUCESS); + assertThat(result.nextLine().trim()).isEqualTo(COMMAND1_SUCCESS); } /** @@ -88,7 +90,7 @@ public void testOnLineCommandWhenGfshisOnLine() throws Exception { when(invoker.processCommand(any(CommandRequest.class))).thenReturn(jsonResult); when(gfsh.getOperationInvoker()).thenReturn(invoker); Result result = (Result) gfshExecutionStrategy.execute(parsedCommand); - assertThat(result.nextLine().trim()).isEqualTo(COMMAND2_SUCESS); + assertThat(result.nextLine().trim()).isEqualTo(COMMAND2_SUCCESS); } /** @@ -97,12 +99,12 @@ public void testOnLineCommandWhenGfshisOnLine() throws Exception { public static class Commands implements CommandMarker { @CliMetaData(shellOnly = true) public Result offlineCommand() { - return ResultBuilder.createInfoResult(COMMAND1_SUCESS); + return ResultBuilder.createInfoResult(COMMAND1_SUCCESS); } @CliMetaData(shellOnly = false) public Result onlineCommand() { - return ResultBuilder.createInfoResult(COMMAND2_SUCESS); + return ResultBuilder.createInfoResult(COMMAND2_SUCCESS); } } } diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/shell/GfshInitFileJUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/shell/GfshInitFileJUnitTest.java index ca89f0682d2b..fe19ca453fdb 100755 --- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/shell/GfshInitFileJUnitTest.java +++ b/geode-core/src/test/java/org/apache/geode/management/internal/cli/shell/GfshInitFileJUnitTest.java @@ -14,7 +14,10 @@ */ package org.apache.geode.management.internal.cli.shell; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; import java.io.ByteArrayOutputStream; import java.io.File; @@ -124,7 +127,7 @@ public void setUp() throws Exception { this.junitLoggerHandler = new JUnitLoggerHandler(); - this.gfshFileLogger = LogWrapper.getInstance(); + this.gfshFileLogger = LogWrapper.getInstance(null); Field logWrapper_INSTANCE = LogWrapper.class.getDeclaredField("INSTANCE"); logWrapper_INSTANCE.setAccessible(true); logWrapper_INSTANCE.set(null, this.gfshFileLogger); diff --git a/geode-cq/src/test/java/org/apache/geode/management/internal/cli/commands/DescribeClientCommandDUnitTest.java b/geode-cq/src/test/java/org/apache/geode/management/internal/cli/commands/DescribeClientCommandDUnitTest.java index e36e96f3d984..7834312081cb 100644 --- a/geode-cq/src/test/java/org/apache/geode/management/internal/cli/commands/DescribeClientCommandDUnitTest.java +++ b/geode-cq/src/test/java/org/apache/geode/management/internal/cli/commands/DescribeClientCommandDUnitTest.java @@ -461,8 +461,9 @@ private void waitForMixedClients() { } } } catch (Exception e) { - LogWrapper.getInstance().warning("waitForMixedClients Exception in waitForMBean ::: " - + ExceptionUtils.getStackTrace(e)); + LogWrapper.getInstance(cache) + .warning("waitForMixedClients Exception in waitForMBean ::: " + + ExceptionUtils.getStackTrace(e)); } return false; })); @@ -611,7 +612,7 @@ private void waitForListClientMBean3() { return false; } catch (Exception e) { - LogWrapper.getInstance() + LogWrapper.getInstance(cache) .warning("waitForListClientMBean3 Exception in waitForListClientMbean ::: " + ExceptionUtils.getStackTrace(e)); } @@ -652,7 +653,7 @@ private void waitForMBean() { } return false; } catch (Exception e) { - LogWrapper.getInstance().warning( + LogWrapper.getInstance(cache).warning( "waitForMBean Exception in waitForMBean ::: " + ExceptionUtils.getStackTrace(e)); } return false; @@ -754,7 +755,7 @@ private void waitForNonSubCliMBean() { } } } catch (Exception e) { - LogWrapper.getInstance() + LogWrapper.getInstance(cache) .warning("waitForNonSubScribedClientMBean Exception in waitForMBean ::: " + ExceptionUtils.getStackTrace(e)); } diff --git a/geode-cq/src/test/java/org/apache/geode/management/internal/cli/commands/ListClientCommandDUnitTest.java b/geode-cq/src/test/java/org/apache/geode/management/internal/cli/commands/ListClientCommandDUnitTest.java index 4d84f1e17293..4b1bf0bf9aef 100644 --- a/geode-cq/src/test/java/org/apache/geode/management/internal/cli/commands/ListClientCommandDUnitTest.java +++ b/geode-cq/src/test/java/org/apache/geode/management/internal/cli/commands/ListClientCommandDUnitTest.java @@ -57,7 +57,6 @@ import org.apache.geode.management.ManagementService; import org.apache.geode.management.cli.Result; import org.apache.geode.management.internal.SystemManagementService; -import org.apache.geode.management.internal.cli.CliUtil; import org.apache.geode.management.internal.cli.LogWrapper; import org.apache.geode.management.internal.cli.i18n.CliStrings; import org.apache.geode.management.internal.cli.result.CommandResult; @@ -298,7 +297,7 @@ private void waitForListClientMbean3() { return false; } catch (Exception e) { - LogWrapper.getInstance() + LogWrapper.getInstance(cache) .warning("waitForListClientMbean3 Exception in waitForListClientMbean ::: " + ExceptionUtils.getStackTrace(e)); } @@ -383,7 +382,7 @@ private void waitForListClientMbean() { } return false; } catch (Exception e) { - LogWrapper.getInstance() + LogWrapper.getInstance(cache) .warning("waitForListClientMbean Exception in waitForListClientMbean ::: " + ExceptionUtils.getStackTrace(e)); }