001 package hirondelle.web4j; 002 003 import hirondelle.web4j.model.DateTime; 004 005 /** 006 Static, descriptive information for a web application. 007 008 <P>Implemenations of this interface are usually quite simple. 009 Here is the 010 <a href="http://www.javapractices.com/apps/fish/javadoc/src-html/hirondelle/web4j/config/AppInfo.html">implementation</a> 011 used in the WEB4J example application. 012 013 <P>See {@link hirondelle.web4j.BuildImpl} for important information on how this item is configured. 014 {@link hirondelle.web4j.BuildImpl#forApplicationInfo()} 015 returns the configured implementation of this interface. 016 017 <P>Upon startup, WEB4J creates an object which implements this interface, 018 and places it into application scope under a {@link ApplicationInfo#KEY}, 019 where it is accessible to response pages. 020 (For example, it may be referenced in a footer.) 021 For access in code, the caller can simply refer directly to 022 {@link hirondelle.web4j.BuildImpl#forApplicationInfo()}. 023 In addition, this data is logged during startup, and contributes to 024 the content of {@link hirondelle.web4j.webmaster.TroubleTicket} emails. 025 026 <P>No method in this interface returns a <tt>null</tt> object reference. 027 */ 028 public interface ApplicationInfo { 029 030 /** 031 The name of this web application. 032 */ 033 String getName(); 034 035 /** 036 The version of this web application. 037 038 <P>The content is arbitrary, and make take any desired form. Examples : 039 "<tt>1.2.3</tt>", "<tt>Build 1426</tt>". 040 */ 041 String getVersion(); 042 043 /** 044 The author of this web application. 045 */ 046 String getAuthor(); 047 048 /** 049 The date which this binary version of the web application was built. 050 */ 051 DateTime getBuildDate(); 052 053 /** 054 URL for more information regarding this application. 055 */ 056 String getLink(); 057 058 /** 059 A general message of arbitrary content. 060 */ 061 String getMessage(); 062 063 /** 064 Key for the <tt>ApplicationInfo</tt> object placed in application scope. 065 */ 066 public static final String KEY = "web4j_key_for_app_info"; 067 }