/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.web.boot; import org.apache.commons.lang.SystemUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.enonic.cms.core.home.HomeDir; import com.enonic.cms.core.home.HomeResolver; import com.enonic.cms.core.product.ProductVersion; final class BootEnvironment { private final static Logger LOG = LoggerFactory.getLogger( BootEnvironment.class ); private final static String BANNER = "\n" + " _______ _______ _______ _______ _______ ______ ______ _______ _______ \n" + "| ___| | | | | |_ _| | | | | | __|\n" + "| ___| | - | |_| |_| ---| | ---| |__ |\n" + "|_______|__|____|_______|__|____|_______|______| |______|__|_|__|_______|\n\n"; public void initialize() { try { doInitialize(); } catch ( final Exception e ) { LOG.error( "Error occurred starting system", e ); if ( e instanceof RuntimeException ) { throw (RuntimeException) e; } else { throw new RuntimeException( e ); } } } private void doInitialize() throws Exception { resolveHomeDir(); logBanner(); } private void resolveHomeDir() { final HomeResolver resolver = new HomeResolver(); resolver.addSystemProperties( System.getenv() ); resolver.addSystemProperties( System.getProperties() ); resolver.resolve(); } private void logBanner() { final StringBuilder str = new StringBuilder( BANNER ); str.append( " # " ).append( ProductVersion.getFullTitleAndVersion() ).append( "\n" ); str.append( " # " ).append( getFormattedJvmInfo() ).append( "\n" ); str.append( " # " ).append( getFormattedOsInfo() ).append( "\n" ); str.append( " # Home directory is " ).append( HomeDir.get() ).append( "\n" ); LOG.info( str.toString() ); } private String getFormattedJvmInfo() { final StringBuilder str = new StringBuilder(); str.append( SystemUtils.JAVA_RUNTIME_NAME ).append( " " ).append( SystemUtils.JAVA_RUNTIME_VERSION ).append( " (" ).append( SystemUtils.JAVA_VENDOR ).append( ")" ); return str.toString(); } private String getFormattedOsInfo() { final StringBuilder str = new StringBuilder(); str.append( SystemUtils.OS_NAME ).append( " " ).append( SystemUtils.OS_VERSION ).append( " (" ).append( SystemUtils.OS_ARCH ).append( ")" ); return str.toString(); } }