View Javadoc
1   package atg.presentation.jsf;
2   
3   import java.io.IOException;
4   
5   import javax.faces.webapp.FacesServlet;
6   import javax.servlet.Servlet;
7   import javax.servlet.ServletConfig;
8   import javax.servlet.ServletException;
9   import javax.servlet.ServletRequest;
10  import javax.servlet.ServletResponse;
11  
12  import atg.service.constante.AtgConstantes;
13  import atg.service.constante.AtgConstantesWF;
14  import atg.service.log.ATGILogable;
15  import atg.service.log.AtgLogFormatter;
16  import atg.service.log.AtgLogManager;
17  
18  /**
19   * <p>
20   * Titre : Classe ATGFacesServlet (Faces Servlet de JSF)
21   * </p>
22   * <p>
23   * Description : Cette classe sera utilisée à la place de Faces Servlet de JSF
24   * </p>
25   * <p>
26   * Copyright : YSMAL Vincent
27   * </p>
28   * 
29   * @author YSMAL Vincent
30   * @version 1.0 Ce logiciel est régi par la licence CeCILL soumise au droit
31   *          français et respectant les principes de diffusion des logiciels
32   *          libres. Vous pouvez utiliser, modifier et/ou redistribuer ce
33   *          programme sous les conditions de la licence CeCILL telle que
34   *          diffusée par le CEA, le CNRS et l'INRIA sur le site
35   *          http://www.cecill.info.
36   * 
37   * Le fait que vous puissiez accéder à cet en-tête signifie que vous avez pris
38   * connaissance de la licence CeCILL, et que vous en avez accepté les termes.
39   */
40  public class ATGFacesServlet implements Servlet, ATGILogable {
41  	private FacesServlet facesServlet = null;
42  
43  	public ATGFacesServlet() {
44  		facesServlet = new FacesServlet();
45  	}
46  
47  	public void destroy() {
48  		facesServlet.destroy();
49  		facesServlet = null;
50  	}
51  
52  	public ServletConfig getServletConfig() {
53  		return facesServlet.getServletConfig();
54  	}
55  
56  	public String getServletInfo() {
57  		return getClass().getName();
58  	}
59  
60  	public void init(ServletConfig servletConfig) throws ServletException {
61  	    atg.service.constante.AtgConstantesWF.init(new atg.service.constante.AtgConstantesWF());
62  		AtgLogManager.setPathFileProperties(AtgConstantesWF
63  				.getValue(AtgConstantes.ATG_LOG_LOGGING_PATH_FILE_NAME)
64  				+ AtgConstantes.ATG_LOG_DEFAULT_FILE_LOGGING);
65  
66  		logConfig("Chargement des constantes terminé");
67  		logConfig("Initialisation des traces");
68  
69  		facesServlet.init(servletConfig);
70  	}
71  
72  	public void service(ServletRequest request, ServletResponse response)
73  			throws IOException, ServletException {
74  		this.logFinest("Passage dans le service de ATGFacesServlet");
75  		facesServlet.service(request, response);
76  	}
77  
78  	/**
79  	 * Ecrit une trace de niveau 'severe'
80  	 * 
81  	 * @param message
82  	 *            Message d'information
83  	 */
84  	public void logSevere(String message) {
85  		getLogger().logp(java.util.logging.Level.SEVERE, getClass().getName(),
86  				AtgLogFormatter.getCallerMethod(), message);
87  	}
88  
89  	/**
90  	 * Ecrit une trace de niveau 'config'
91  	 * 
92  	 * @param message
93  	 *            Message d'information
94  	 */
95  	public void logConfig(String message) {
96  		getLogger().logp(java.util.logging.Level.CONFIG, getClass().getName(),
97  				AtgLogFormatter.getCallerMethod(), message);
98  	}
99  
100 	/**
101 	 * Ecrit une trace de niveau 'warning'
102 	 * 
103 	 * @param message
104 	 *            Message d'information
105 	 */
106 	public void logWarning(String message) {
107 		getLogger().logp(java.util.logging.Level.WARNING, getClass().getName(),
108 				AtgLogFormatter.getCallerMethod(), message);
109 	}
110 
111 	/**
112 	 * Ecrit une trace de niveau 'fine'
113 	 * 
114 	 * @param message
115 	 *            Message d'information
116 	 */
117 	public void logFine(String message) {
118 		getLogger().logp(java.util.logging.Level.FINE, getClass().getName(),
119 				AtgLogFormatter.getCallerMethod(), message);
120 	}
121 
122 	/**
123 	 * Ecrit une trace de niveau 'finer'
124 	 * 
125 	 * @param message
126 	 *            Message d'information
127 	 */
128 	public void logFiner(String message) {
129 		getLogger().logp(java.util.logging.Level.FINER, getClass().getName(),
130 				AtgLogFormatter.getCallerMethod(), message);
131 	}
132 
133 	/**
134 	 * Ecrit une trace de niveau 'finest'
135 	 * 
136 	 * @param message
137 	 *            Message d'information
138 	 */
139 	public void logFinest(String message) {
140 		getLogger().logp(java.util.logging.Level.FINEST, getClass().getName(),
141 				AtgLogFormatter.getCallerMethod(), message);
142 	}
143 
144 	/**
145 	 * Ecrit une trace de niveau 'info'
146 	 * 
147 	 * @param message
148 	 *            Message d'information
149 	 */
150 	public void logInfo(String message) {
151 		getLogger().logp(java.util.logging.Level.INFO, getClass().getName(),
152 				AtgLogFormatter.getCallerMethod(), message);
153 	}
154 
155 	// ***************************************************************************
156 	// Méthodes protected
157 	// ***************************************************************************
158 
159 	/**
160 	 * Retourne le log associé
161 	 * 
162 	 * @return java.util.logging.Logger Log associé
163 	 */
164 	protected java.util.logging.Logger getLogger() {
165 		if (logger_ == null)
166 			logger_ = AtgLogManager
167 					.getLog(AtgConstantes.ATG_LOG_CATEGORY_PRESENTATION_FACES_SERVLET);
168 
169 		return logger_;
170 	}
171 
172 	// ***************************************************************************
173 	// Attributs
174 	// ***************************************************************************
175 
176 	/**
177 	 * Contient le log associé
178 	 * java.util.logging.Logger Log associé
179 	 */
180 	protected static java.util.logging.Logger logger_ = null;
181 
182 }