net.sf.appinfo
Class AbstractInitAwareApplicationInfo

java.lang.Object
  extended by net.sf.appinfo.AbstractInitAwareApplicationInfo
All Implemented Interfaces:
ApplicationInfo, InitAwareApplicationInfo
Direct Known Subclasses:
ChainedApplicationInfo, FallbackApplicationInfo, SimplierManifestApplicationInfo

public abstract class AbstractInitAwareApplicationInfo
extends Object
implements InitAwareApplicationInfo

Abstract ApplicationInfo implementation with base mechanisms related to initlialization. Class should be extended by every ApplicationInfo implementation with initilization.

Since:
0.4.0
Author:
Marcin ZajÄ…czkowski, 2010-10-03

Field Summary
protected  org.slf4j.Logger log
           
 
Fields inherited from interface net.sf.appinfo.InitAwareApplicationInfo
DEFAULT_NOT_INITED
 
Fields inherited from interface net.sf.appinfo.ApplicationInfo
DEFAULT_BUILD_DATE, DEFAULT_BUILD_NUMBER, DEFAULT_NAME, DEFAULT_SCM_REVISION, DEFAULT_VERSION
 
Constructor Summary
AbstractInitAwareApplicationInfo()
           
 
Method Summary
 String getBuildDate()
          Returns creation date of current build.
 String getBuildNumber()
          Returns current build number (np.
 String getName()
          Returns application name.
 String getScmRevision()
          Returns current SCM revision.
 String getVersion()
          Returns application version.
protected abstract  void initClass()
          Performs internal class initialization.
 void initInfo()
          Starts initialization process of ApplicationInfo instance.
 boolean isInited()
          Returns information if class is already initialized.
protected  void printErrorWithStackTrace(String errorMessage, Exception exception)
          Artificial construction logging given error message and stacktrace.
protected  void setBuildDate(String buildDate)
           
protected  void setBuildNumber(String buildNumber)
           
protected  void setName(String name)
           
protected  void setScmRevision(String scmRevision)
           
protected  void setVersion(String version)
           
 void standaloneSafeInit()
          Initializes applicationInfo in a safe way - no exception is thrown.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

log

protected final org.slf4j.Logger log
Constructor Detail

AbstractInitAwareApplicationInfo

public AbstractInitAwareApplicationInfo()
Method Detail

isInited

public boolean isInited()
Returns information if class is already initialized.

Specified by:
isInited in interface InitAwareApplicationInfo
Returns:
true - class is inited false - class is not inited

initInfo

public final void initInfo()
                    throws InitializationException
Starts initialization process of ApplicationInfo instance. TODO: MZA: Find better name (cannot be init to prevent accidental init in Spring)

Specified by:
initInfo in interface InitAwareApplicationInfo
Throws:
InitializationException - problem with initialization

initClass

protected abstract void initClass()
                           throws InitializationException
Performs internal class initialization. Has to be implemented in every subclass.

Throws:
InitializationException - problem with initialization

standaloneSafeInit

public void standaloneSafeInit()
Initializes applicationInfo in a safe way - no exception is thrown. Should be used for initialization in stand alone mode - e.g. from IoC contener. Initialization from other ApplicationInfo classes should use initInfo().


printErrorWithStackTrace

protected void printErrorWithStackTrace(String errorMessage,
                                        Exception exception)
Artificial construction logging given error message and stacktrace. Created to prevent stack trace in log during tests. Thanks for Jarek Woloch for a suggestion.

Parameters:
errorMessage - error message
exception - exception

getName

public String getName()
Description copied from interface: ApplicationInfo
Returns application name.

Specified by:
getName in interface ApplicationInfo
Returns:
application name

getVersion

public String getVersion()
Description copied from interface: ApplicationInfo
Returns application version.

Specified by:
getVersion in interface ApplicationInfo
Returns:
application version

getBuildNumber

public String getBuildNumber()
Description copied from interface: ApplicationInfo
Returns current build number (np. from CI server).

Specified by:
getBuildNumber in interface ApplicationInfo
Returns:
build number

getBuildDate

public String getBuildDate()
Description copied from interface: ApplicationInfo
Returns creation date of current build.

Specified by:
getBuildDate in interface ApplicationInfo
Returns:
build creation date

getScmRevision

public String getScmRevision()
Description copied from interface: ApplicationInfo
Returns current SCM revision.

Specified by:
getScmRevision in interface ApplicationInfo
Returns:
SCM revision

setName

protected void setName(String name)

setVersion

protected void setVersion(String version)

setBuildNumber

protected void setBuildNumber(String buildNumber)

setBuildDate

protected void setBuildDate(String buildDate)

setScmRevision

protected void setScmRevision(String scmRevision)


Copyright © 2010-2011. All Rights Reserved.