001package org.kuali.common.util.execute.impl; 002 003import java.nio.charset.Charset; 004import java.util.Locale; 005 006import org.apache.commons.lang3.StringUtils; 007import org.kuali.common.util.execute.Executable; 008import org.kuali.common.util.file.CanonicalFile; 009import org.kuali.common.util.log.LoggerUtils; 010import org.slf4j.Logger; 011 012public class ShowEnvExec implements Executable { 013 014 private static final Logger logger = LoggerUtils.make(); 015 016 public ShowEnvExec() { 017 this(false); 018 } 019 020 public ShowEnvExec(boolean skip) { 021 this.skip = skip; 022 } 023 024 private final boolean skip; 025 026 @Override 027 public void execute() { 028 if (skip) { 029 return; 030 } 031 Object[] java = { System.getProperty("java.runtime.version"), System.getProperty("java.vm.name"), System.getProperty("java.vm.vendor") }; 032 Object[] javaHome = { new CanonicalFile(System.getProperty("java.home")) }; 033 Object[] JAVA_HOME = getJavaHomeEnvironmentVariable(); 034 Object[] other = { Locale.getDefault().toString(), Charset.defaultCharset().displayName() }; 035 Object[] os = { System.getProperty("os.name"), System.getProperty("os.version"), System.getProperty("os.arch") }; 036 logger.info("Java version: {}, name: {}, vendor: {}", java); 037 logger.info("Java home: {}", javaHome); 038 logger.info("JAVA_HOME: {}", JAVA_HOME); 039 logger.info("Default locale: {}, platform encoding: {}", other); 040 logger.info("OS name: {}, version: {}, arch: {}", os); 041 } 042 043 public Object[] getJavaHomeEnvironmentVariable() { 044 String javaHome = System.getenv("JAVA_HOME"); 045 if (StringUtils.isBlank(javaHome)) { 046 return new Object[] { "-- Not set --" }; 047 } else { 048 return new Object[] { new CanonicalFile(javaHome) }; 049 } 050 } 051 052 public boolean isSkip() { 053 return skip; 054 } 055 056}