GEODE-2601: Made banner and configs log only once and added a test to verify changes
Project: http://git-wip-us.apache.org/repos/asf/geode/repo Commit: http://git-wip-us.apache.org/repos/asf/geode/commit/c5520f95 Tree: http://git-wip-us.apache.org/repos/asf/geode/tree/c5520f95 Diff: http://git-wip-us.apache.org/repos/asf/geode/diff/c5520f95 Branch: refs/heads/feature/GEM-1483 Commit: c5520f95635ebc3493aa4246e975f1f7e4aac828 Parents: 0bce1ea Author: YehEmily <emilyyeh1...@gmail.com> Authored: Tue Jun 27 12:56:40 2017 -0700 Committer: YehEmily <emilyyeh1...@gmail.com> Committed: Mon Jul 17 11:31:17 2017 -0700 ---------------------------------------------------------------------- .../cli/commands/GfshStartLocatorLogTest.java | 61 ++++++++++++++++++++ .../distributed/internal/InternalLocator.java | 6 -- .../apache/geode/internal/AbstractConfig.java | 18 +++--- .../java/org/apache/geode/internal/Banner.java | 8 +-- .../geode/internal/i18n/LocalizedStrings.java | 2 +- .../internal/logging/LogWriterFactory.java | 2 +- .../logging/log4j/LogWriterAppenders.java | 8 +-- .../internal/logging/TestLogWriterFactory.java | 4 +- .../geode/test/dunit/SerializableCallable.java | 2 +- 9 files changed, 85 insertions(+), 26 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/geode/blob/c5520f95/geode-assembly/src/test/java/org/apache/geode/management/internal/cli/commands/GfshStartLocatorLogTest.java ---------------------------------------------------------------------- diff --git a/geode-assembly/src/test/java/org/apache/geode/management/internal/cli/commands/GfshStartLocatorLogTest.java b/geode-assembly/src/test/java/org/apache/geode/management/internal/cli/commands/GfshStartLocatorLogTest.java new file mode 100644 index 0000000..eadbea8 --- /dev/null +++ b/geode-assembly/src/test/java/org/apache/geode/management/internal/cli/commands/GfshStartLocatorLogTest.java @@ -0,0 +1,61 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more contributor license + * agreements. See the NOTICE file distributed with this work for additional information regarding + * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. You may obtain a + * copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. + */ +package org.apache.geode.management.internal.cli.commands; + +import static org.assertj.core.api.Assertions.assertThat; + +import java.io.File; +import java.nio.charset.StandardCharsets; + +import com.google.common.io.Files; +import org.junit.Rule; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +import org.apache.geode.internal.AbstractConfig; +import org.apache.geode.internal.Banner; +import org.apache.geode.internal.i18n.LocalizedStrings; +import org.apache.geode.internal.logging.log4j.LocalizedMessage; +import org.apache.geode.test.dunit.rules.gfsh.GfshExecution; +import org.apache.geode.test.dunit.rules.gfsh.GfshRule; +import org.apache.geode.test.dunit.rules.gfsh.GfshScript; +import org.apache.geode.test.junit.categories.DistributedTest; + +@Category(DistributedTest.class) +public class GfshStartLocatorLogTest { + @Rule + public GfshRule gfshRule = new GfshRule(); + + @Test + public void bannerOnlyLogsOnce() throws Exception { + final String banner = "Licensed to the Apache Software Foundation (ASF)"; + String lines = getExecutionLogs(); + assertThat(lines.indexOf(banner)).isEqualTo(lines.lastIndexOf(banner)); + } + + @Test + public void startupConfigsOnlyLogsOnce() throws Exception { + final String startupConfigs = AbstractConfig.GEM_FIRE_PROPERTIES_USING_DEFAULT_VALUES; + String lines = getExecutionLogs(); + assertThat(lines.indexOf(startupConfigs)).isEqualTo(lines.lastIndexOf(startupConfigs)); + } + + private String getExecutionLogs() throws Exception { + GfshExecution gfshExecution = GfshScript.of("start locator").execute(gfshRule); + File[] files = gfshExecution.getWorkingDir().listFiles(); + String logName = files[0].getAbsolutePath() + "/" + files[0].getName() + ".log"; + return Files.readLines(new File(logName), StandardCharsets.UTF_8).toString(); + } +} http://git-wip-us.apache.org/repos/asf/geode/blob/c5520f95/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalLocator.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalLocator.java b/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalLocator.java index 6eaaec2..ffe3be4 100644 --- a/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalLocator.java +++ b/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalLocator.java @@ -675,7 +675,6 @@ public class InternalLocator extends Locator implements ConnectListener { System.setProperty(propName, locatorsProp); } } - // No longer default mcast-port to zero. See 46277. } @@ -686,11 +685,6 @@ public class InternalLocator extends Locator implements ConnectListener { logger.info( LocalizedMessage.create(LocalizedStrings.InternalLocator_STARTING_DISTRIBUTED_SYSTEM)); - // LOG:CONFIG: changed from config to info - logger.info(LogMarker.CONFIG, - LocalizedMessage.create( - LocalizedStrings.InternalDistributedSystem_STARTUP_CONFIGURATIONN_0, - this.config.toLoggerString())); this.myDs = (InternalDistributedSystem) DistributedSystem.connect(connectEnv); http://git-wip-us.apache.org/repos/asf/geode/blob/c5520f95/geode-core/src/main/java/org/apache/geode/internal/AbstractConfig.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/internal/AbstractConfig.java b/geode-core/src/main/java/org/apache/geode/internal/AbstractConfig.java index 7bb2de9..9b9c0da 100644 --- a/geode-core/src/main/java/org/apache/geode/internal/AbstractConfig.java +++ b/geode-core/src/main/java/org/apache/geode/internal/AbstractConfig.java @@ -49,6 +49,12 @@ import org.apache.geode.internal.security.SecurableCommunicationChannel; */ public abstract class AbstractConfig implements Config { + public static final String GEM_FIRE_PROPERTIES_USING_DEFAULT_VALUES = + "### GemFire Properties using default values ###"; + public static final String GEM_FIRE_PROPERTIES_DEFINED_WITH_PREFIX = + "### GemFire Properties defined with "; + public static final String GEM_FIRE_PROPERTIES_DEFINED_WITH_SUFFIX = " ###"; + /** * Returns the string to use as the exception message when an attempt is made to set an * unmodifiable attribute. @@ -173,9 +179,10 @@ public abstract class AbstractConfig implements Config { if (!sourceFound) { sourceFound = true; if (source == null) { - pw.println("### GemFire Properties using default values ###"); + pw.println(GEM_FIRE_PROPERTIES_USING_DEFAULT_VALUES); } else { - pw.println("### GemFire Properties defined with " + source.getDescription() + " ###"); + pw.println(GEM_FIRE_PROPERTIES_DEFINED_WITH_PREFIX + source.getDescription() + + GEM_FIRE_PROPERTIES_DEFINED_WITH_SUFFIX); } } // hide the shiro-init configuration for now. Remove after we can allow customer to specify @@ -205,10 +212,7 @@ public abstract class AbstractConfig implements Config { if (attName.startsWith(DistributionConfig.SYS_PROP_NAME)) { return false; } - if (attName.toLowerCase().contains("password") /* bug 45381 */) { - return false; - } - return true; + return !attName.toLowerCase().contains("password"); } /** @@ -388,7 +392,7 @@ public abstract class AbstractConfig implements Config { String trimAttName = trimAttributeName(attName); throw new UnmodifiableException( LocalizedStrings.AbstractConfig_THE_0_CONFIGURATION_ATTRIBUTE_CAN_NOT_BE_SET_FROM_THE_COMMAND_LINE_SET_1_FOR_EACH_INDIVIDUAL_PARAMETER_INSTEAD - .toLocalizedString(new Object[] {attName, trimAttName})); + .toLocalizedString(attName, trimAttName)); } } else if (valueType.equals(FlowControlParams.class)) { String values[] = attValue.split(","); http://git-wip-us.apache.org/repos/asf/geode/blob/c5520f95/geode-core/src/main/java/org/apache/geode/internal/Banner.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/internal/Banner.java b/geode-core/src/main/java/org/apache/geode/internal/Banner.java index a218a5b..38b3a31 100755 --- a/geode-core/src/main/java/org/apache/geode/internal/Banner.java +++ b/geode-core/src/main/java/org/apache/geode/internal/Banner.java @@ -59,7 +59,7 @@ public class Banner { static void print(PrintWriter out, String args[]) { Map sp = new TreeMap((Properties) System.getProperties().clone()); // fix for 46822 int processId = -1; - final String SEPERATOR = + final String SEPARATOR = "---------------------------------------------------------------------------"; try { processId = OSProcess.getId(); @@ -80,7 +80,7 @@ public class Banner { final String productName = GemFireVersion.getProductName(); - out.println(SEPERATOR); + out.println(SEPARATOR); out.println(" "); out.println(" Licensed to the Apache Software Foundation (ASF) under one or more"); @@ -100,7 +100,7 @@ public class Banner { out.println(" under the License."); out.println(" "); - out.println(SEPERATOR); + out.println(SEPARATOR); GemFireVersion.print(out); @@ -153,7 +153,7 @@ public class Banner { out.println("Log4J 2 Configuration:"); out.println(" " + LogService.getConfigInformation()); } - out.println(SEPERATOR); + out.println(SEPARATOR); } /** http://git-wip-us.apache.org/repos/asf/geode/blob/c5520f95/geode-core/src/main/java/org/apache/geode/internal/i18n/LocalizedStrings.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/internal/i18n/LocalizedStrings.java b/geode-core/src/main/java/org/apache/geode/internal/i18n/LocalizedStrings.java index baad039..3a32db8 100755 --- a/geode-core/src/main/java/org/apache/geode/internal/i18n/LocalizedStrings.java +++ b/geode-core/src/main/java/org/apache/geode/internal/i18n/LocalizedStrings.java @@ -1112,7 +1112,7 @@ public class LocalizedStrings { new StringId(1690, "Running in local mode since no locators were specified."); public static final StringId InternalDistributedSystem_SHUTDOWNLISTENER__0__THREW = new StringId(1691, "ShutdownListener < {0} > threw..."); - public static final StringId InternalDistributedSystem_STARTUP_CONFIGURATIONN_0 = + public static final StringId InternalDistributedSystem_STARTUP_CONFIGURATION_0 = new StringId(1692, "Startup Configuration:\n {0}"); public static final StringId InternalInstantiator_CLASS_0_DOES_NOT_HAVE_A_TWOARGUMENT_CLASS_INT_CONSTRUCTOR = http://git-wip-us.apache.org/repos/asf/geode/blob/c5520f95/geode-core/src/main/java/org/apache/geode/internal/logging/LogWriterFactory.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/internal/logging/LogWriterFactory.java b/geode-core/src/main/java/org/apache/geode/internal/logging/LogWriterFactory.java index 4202afd..e8c283c 100755 --- a/geode-core/src/main/java/org/apache/geode/internal/logging/LogWriterFactory.java +++ b/geode-core/src/main/java/org/apache/geode/internal/logging/LogWriterFactory.java @@ -95,7 +95,7 @@ public class LogWriterFactory { // LOG:CONFIG: changed from config to info logger.info(LogMarker.CONFIG, LocalizedMessage.create( - LocalizedStrings.InternalDistributedSystem_STARTUP_CONFIGURATIONN_0, + LocalizedStrings.InternalDistributedSystem_STARTUP_CONFIGURATION_0, config.toLoggerString())); } return logger; http://git-wip-us.apache.org/repos/asf/geode/blob/c5520f95/geode-core/src/main/java/org/apache/geode/internal/logging/log4j/LogWriterAppenders.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/internal/logging/log4j/LogWriterAppenders.java b/geode-core/src/main/java/org/apache/geode/internal/logging/log4j/LogWriterAppenders.java index 310deb2..a500654 100644 --- a/geode-core/src/main/java/org/apache/geode/internal/logging/log4j/LogWriterAppenders.java +++ b/geode-core/src/main/java/org/apache/geode/internal/logging/log4j/LogWriterAppenders.java @@ -40,14 +40,14 @@ public class LogWriterAppenders { MAIN(false), SECURITY(true); private final boolean isSecure; - private Identifier(final boolean isSecure) { + Identifier(final boolean isSecure) { this.isSecure = isSecure; } public boolean isSecure() { return this.isSecure; } - }; + } private static Map<Identifier, LogWriterAppender> appenders = new HashMap<Identifier, LogWriterAppender>(); @@ -151,7 +151,7 @@ public class LogWriterAppenders { } else { firstMsgWarning = true; firstMsg = LocalizedStrings.InternalDistributedSystem_COULD_NOT_RENAME_0_TO_1 - .toLocalizedString(new Object[] {logFile, oldMain}); + .toLocalizedString(logFile, oldMain); } } } @@ -220,7 +220,7 @@ public class LogWriterAppenders { if (logConfig) { if (!isLoner) { // LOG:CONFIG: changed from config to info - logWriter.info(LocalizedStrings.InternalDistributedSystem_STARTUP_CONFIGURATIONN_0, + logWriter.info(LocalizedStrings.InternalDistributedSystem_STARTUP_CONFIGURATION_0, config.toLoggerString()); } } http://git-wip-us.apache.org/repos/asf/geode/blob/c5520f95/geode-core/src/test/java/org/apache/geode/internal/logging/TestLogWriterFactory.java ---------------------------------------------------------------------- diff --git a/geode-core/src/test/java/org/apache/geode/internal/logging/TestLogWriterFactory.java b/geode-core/src/test/java/org/apache/geode/internal/logging/TestLogWriterFactory.java index 87f370c..17fdd05 100644 --- a/geode-core/src/test/java/org/apache/geode/internal/logging/TestLogWriterFactory.java +++ b/geode-core/src/test/java/org/apache/geode/internal/logging/TestLogWriterFactory.java @@ -71,7 +71,7 @@ public class TestLogWriterFactory extends Assert { } else { firstMsgWarning = true; firstMsg = LocalizedStrings.InternalDistributedSystem_COULD_NOT_RENAME_0_TO_1 - .toLocalizedString(new Object[] {logFile, oldMain}); + .toLocalizedString(logFile, oldMain); } } } @@ -114,7 +114,7 @@ public class TestLogWriterFactory extends Assert { } if (logConfig && logger.configEnabled()) { logger.convertToLogWriterI18n().config( - LocalizedStrings.InternalDistributedSystem_STARTUP_CONFIGURATIONN_0, + LocalizedStrings.InternalDistributedSystem_STARTUP_CONFIGURATION_0, config.toLoggerString()); } http://git-wip-us.apache.org/repos/asf/geode/blob/c5520f95/geode-core/src/test/java/org/apache/geode/test/dunit/SerializableCallable.java ---------------------------------------------------------------------- diff --git a/geode-core/src/test/java/org/apache/geode/test/dunit/SerializableCallable.java b/geode-core/src/test/java/org/apache/geode/test/dunit/SerializableCallable.java index 68d5229..29b083a 100644 --- a/geode-core/src/test/java/org/apache/geode/test/dunit/SerializableCallable.java +++ b/geode-core/src/test/java/org/apache/geode/test/dunit/SerializableCallable.java @@ -22,7 +22,7 @@ import java.util.concurrent.Callable; * conjunction with {@link VM#invoke(SerializableCallableIF)}. * * <PRE> - * public void testRepilcatedRegionPut() { + * public void testReplicatedRegionPut() { * final Host host = Host.getHost(0); * VM vm0 = host.getVM(0); * VM vm1 = host.getVM(1);