From 59e810cd47d80359a6dcbefd659f7d16acfcdd46 Mon Sep 17 00:00:00 2001 From: Jinmei Liao Date: Mon, 25 Jan 2016 20:20:32 -0800 Subject: [PATCH] GEODE-854: refactor gemfire-pulse not to generate a pulseverion.properties file --- gemfire-pulse/build.gradle | 63 +--------------- .../pulse/internal/PulseAppListener.java | 71 +++++-------------- .../pulse/internal/data/PulseConstants.java | 8 --- .../gemfire/tools/pulse/tests/PulseTest.java | 36 +++------- 4 files changed, 30 insertions(+), 148 deletions(-) diff --git a/gemfire-pulse/build.gradle b/gemfire-pulse/build.gradle index f2076b5d3d9f..38b25d6863e0 100755 --- a/gemfire-pulse/build.gradle +++ b/gemfire-pulse/build.gradle @@ -15,21 +15,8 @@ * limitations under the License. */ -buildscript { - repositories { - maven { - url "https://plugins.gradle.org/m2/" - } - } - dependencies { - classpath "org.ajoberstar:gradle-git:1.3.2" - } -} - apply plugin: 'war' -def resDir="$projectDir/src/main/resources" - sourceSets { main { resources { @@ -63,6 +50,7 @@ dependencies { provided 'org.mortbay.jetty:servlet-api:2.5-20081211' provided 'com.google.guava:guava:15.0' provided project(path: ':gemfire-junit', configuration: 'testOutput') + provided project(':gemfire-core') testCompile 'org.apache.tomcat.embed:tomcat-embed-core:7.0.30' testCompile 'org.apache.tomcat.embed:tomcat-embed-jasper:7.0.30' @@ -76,55 +64,9 @@ dependencies { testRuntime 'org.apache.commons:commons-exec:1.3' } -// Creates the version properties file and writes it to the resources dir -task createPulsePropFile { - description 'Creates a new Pule properties file with build/ version information' - def propertiesFile = file(resDir + "/pulseversion.properties"); - outputs.file propertiesFile - inputs.dir resDir - - doLast { - try { - def grgit = org.ajoberstar.grgit.Grgit.open() - ext.branch = grgit.branch.getCurrent().name - ext.commitId = grgit.head().id - ext.sourceDate = grgit.head().getDate().format('yyyy-MM-dd HH:mm:ss Z') - grgit.close() - } catch (Exception e) { - logger.warn('***** Unable to find Git workspace. Using default version information *****') - ext.branch = 'UNKNOWN' - ext.commitId = 'UNKNOWN' - ext.sourceDate = 'UNKNOWN' - } - // Build machine & java information - for screen output only - ext.osArch = System.getProperty('os.arch') - ext.osName = System.getProperty('os.name') - ext.osVersion = System.getProperty('os.version') - ext.jdkVersion = System.getProperty('java.version') - - ext.buildDate = new Date().format('yyyy-MM-dd HH:mm:ss Z') - ext.buildNumber = new Date().format('MMddyy') - - def props = [ - "pulse.version" : version, - "Build-Id" : ext.buildNumber, - "Build-Date" : ext.buildDate, - "Source-Date" : ext.sourceDate, - "Source-Revision" : ext.commitId, - "Source-Repository" : ext.branch - ] as Properties - - new FileOutputStream(propertiesFile).withStream { fos -> - props.store(fos, '') - } - } -} jar { from sourceSets.main.output - doFirst { - project.createPulsePropFile - } } eclipse.classpath.file { @@ -143,10 +85,7 @@ artifacts { archives war } -def pulseWarFile = "gemfire-pulse-"+version+".war" - war { - dependsOn createPulsePropFile classpath configurations.runtime classpath project(':gemfire-core').webJar.archivePath } diff --git a/gemfire-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/PulseAppListener.java b/gemfire-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/PulseAppListener.java index 784caed7db5e..96747e0ee95a 100644 --- a/gemfire-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/PulseAppListener.java +++ b/gemfire-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/PulseAppListener.java @@ -19,6 +19,16 @@ package com.vmware.gemfire.tools.pulse.internal; +import com.gemstone.gemfire.internal.GemFireVersion; +import com.vmware.gemfire.tools.pulse.internal.controllers.PulseController; +import com.vmware.gemfire.tools.pulse.internal.data.PulseConfig; +import com.vmware.gemfire.tools.pulse.internal.data.PulseConstants; +import com.vmware.gemfire.tools.pulse.internal.data.Repository; +import com.vmware.gemfire.tools.pulse.internal.log.PulseLogWriter; +import com.vmware.gemfire.tools.pulse.internal.util.StringUtils; + +import javax.servlet.ServletContextEvent; +import javax.servlet.ServletContextListener; import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; @@ -27,25 +37,10 @@ import java.net.UnknownHostException; import java.text.DateFormat; import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Properties; -import java.util.ResourceBundle; -import java.util.Set; +import java.util.*; import java.util.Map.Entry; import java.util.logging.Level; -import javax.servlet.ServletContextEvent; -import javax.servlet.ServletContextListener; - -import com.vmware.gemfire.tools.pulse.internal.controllers.PulseController; -import com.vmware.gemfire.tools.pulse.internal.data.PulseConfig; -import com.vmware.gemfire.tools.pulse.internal.data.PulseConstants; -import com.vmware.gemfire.tools.pulse.internal.data.Repository; -import com.vmware.gemfire.tools.pulse.internal.log.PulseLogWriter; -import com.vmware.gemfire.tools.pulse.internal.util.StringUtils; - /** * This class is used for checking the application running mode i.e. Embedded or * not @@ -210,43 +205,13 @@ public void contextInitialized(ServletContextEvent event) { // Function to load pulse version details from properties file private void loadPulseVersionDetails() { - - // Read version details from version property file - ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); - InputStream inputStream = classLoader - .getResourceAsStream(PulseConstants.PULSE_VERSION_PROPERTIES_FILE); - - if (inputStream != null) { - Properties properties = new Properties(); - try { - properties.load(inputStream); - } catch (IOException e) { - messagesToBeLogged = messagesToBeLogged - .concat(formatLogString(resourceBundle - .getString("LOG_MSG_EXCEPTION_LOADING_PROPERTIES_FILE"))); - } finally { - try { - inputStream.close(); - } catch (IOException e) { - messagesToBeLogged = messagesToBeLogged - .concat(formatLogString(resourceBundle - .getString("LOG_MSG_EXCEPTION_CLOSING_INPUT_STREAM"))); - } - } - // Set pulse version details in common object - PulseController.pulseVersion.setPulseVersion(properties.getProperty( - PulseConstants.PROPERTY_PULSE_VERSION, "")); - PulseController.pulseVersion.setPulseBuildId(properties.getProperty( - PulseConstants.PROPERTY_BUILD_ID, "")); - PulseController.pulseVersion.setPulseBuildDate(properties.getProperty( - PulseConstants.PROPERTY_BUILD_DATE, "")); - PulseController.pulseVersion.setPulseSourceDate(properties.getProperty( - PulseConstants.PROPERTY_SOURCE_DATE, "")); - PulseController.pulseVersion.setPulseSourceRevision(properties - .getProperty(PulseConstants.PROPERTY_SOURCE_REVISION, "")); - PulseController.pulseVersion.setPulseSourceRepository(properties - .getProperty(PulseConstants.PROPERTY_SOURCE_REPOSITORY, "")); - } + // Set pulse version details in common object + PulseController.pulseVersion.setPulseVersion(GemFireVersion.getGemFireVersion()); + PulseController.pulseVersion.setPulseBuildId(GemFireVersion.getBuildId()); + PulseController.pulseVersion.setPulseBuildDate(GemFireVersion.getBuildDate()); + PulseController.pulseVersion.setPulseSourceDate(GemFireVersion.getSourceDate()); + PulseController.pulseVersion.setPulseSourceRevision(GemFireVersion.getSourceRevision()); + PulseController.pulseVersion.setPulseSourceRepository(GemFireVersion.getSourceRepository()); // Log Pulse Version details into log file messagesToBeLogged = messagesToBeLogged diff --git a/gemfire-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/PulseConstants.java b/gemfire-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/PulseConstants.java index 9c22a039bce4..1589278a385d 100644 --- a/gemfire-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/PulseConstants.java +++ b/gemfire-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/PulseConstants.java @@ -36,14 +36,6 @@ public class PulseConstants { public static final String APPLICATION_LANGUAGE = "en"; public static final String APPLICATION_COUNTRY = "US"; - // Pulse version details properties from properties file - public static final String PULSE_VERSION_PROPERTIES_FILE = "pulseversion.properties"; - public static final String PROPERTY_PULSE_VERSION = "pulse.version"; - public static final String PROPERTY_BUILD_ID = "Build-Id"; - public static final String PROPERTY_BUILD_DATE = "Build-Date"; - public static final String PROPERTY_SOURCE_DATE = "Source-Date"; - public static final String PROPERTY_SOURCE_REVISION = "Source-Revision"; - public static final String PROPERTY_SOURCE_REPOSITORY = "Source-Repository"; // DEFAULT CONFIGUARTION VALUES FOR PULSE LOGGER // Log File diff --git a/gemfire-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/PulseTest.java b/gemfire-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/PulseTest.java index d30c14c8e49d..67767ed2a98e 100644 --- a/gemfire-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/PulseTest.java +++ b/gemfire-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/PulseTest.java @@ -18,23 +18,12 @@ */ package com.vmware.gemfire.tools.pulse.tests; -import java.io.*; -import java.text.DecimalFormat; -import java.util.List; -import java.util.Properties; -import java.util.concurrent.TimeUnit; - -import com.gemstone.gemfire.test.junit.categories.IntegrationTest; +import com.gemstone.gemfire.internal.GemFireVersion; +import com.gemstone.gemfire.management.internal.AgentUtil; import com.gemstone.gemfire.test.junit.categories.UITest; -import com.gemstone.gemfire.test.junit.categories.UnitTest; import junit.framework.Assert; - import org.apache.catalina.startup.Tomcat; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.FixMethodOrder; -import org.junit.Ignore; -import org.junit.Test; +import org.junit.*; import org.junit.experimental.categories.Category; import org.junit.runners.MethodSorters; import org.openqa.selenium.By; @@ -47,6 +36,13 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.openqa.selenium.support.ui.WebDriverWait; +import java.io.BufferedReader; +import java.io.FileReader; +import java.io.IOException; +import java.text.DecimalFormat; +import java.util.List; +import java.util.concurrent.TimeUnit; + @Category(UITest.class) @FixMethodOrder(MethodSorters.JVM) public class PulseTest { @@ -178,17 +174,7 @@ public WebElement apply(WebDriver d) { } public static String getPulseWarPath() throws Exception{ - String warPath = null; - ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); - InputStream inputStream = classLoader - .getResourceAsStream("pulseversion.properties"); - Properties properties = new Properties(); - properties.load(inputStream); - String version = properties.getProperty("pulse.version"); - warPath = "gemfire-pulse-"+version+".war"; - String propFilePath = classLoader.getResource("pulseversion.properties").getPath(); - warPath = propFilePath.substring(0, propFilePath.indexOf("resources"))+"libs/"+warPath; - return warPath; + return new AgentUtil(GemFireVersion.getGemFireVersion()).findWarLocation("gemfire-pulse"); } protected void searchByLinkAndClick(String linkText) {