Author: tchemit Date: 2008-04-25 07:32:20 +0000 (Fri, 25 Apr 2008) New Revision: 19 Modified: trunk/lutinrss/src/main/java/org/codelutin/rss/RSSServlet.java Log: utilisation RSSConfigInitializer + introduction parametre resolv pour forcer la resolution Modified: trunk/lutinrss/src/main/java/org/codelutin/rss/RSSServlet.java =================================================================== --- trunk/lutinrss/src/main/java/org/codelutin/rss/RSSServlet.java 2008-04-25 07:31:11 UTC (rev 18) +++ trunk/lutinrss/src/main/java/org/codelutin/rss/RSSServlet.java 2008-04-25 07:32:20 UTC (rev 19) @@ -2,11 +2,8 @@ import java.io.*; -import java.util.logging.Level; -import java.util.logging.Logger; import javax.servlet.*; import javax.servlet.http.*; -import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -39,10 +36,6 @@ private static final Log log = LogFactory.getLog(RSSServlet.class); /** - * la propriete de configuration qui definit le prefix a jouter pour scruter la configuration - */ - protected static final String CONFIGURATION_PREFIX_PROPERTY= RSSServlet.class.getSimpleName()+"_configuration_prefix"; - /** * L'objet permettant de recupérer la representation HTML d'un feed */ protected transient RSSHelper rss; @@ -92,13 +85,17 @@ public void init(ServletConfig config,boolean initRssConfig) throws ServletException { try { super.init(config); - if (initRssConfig) { - + if (initRssConfig) { // init depuis la config de servlet - initRssConfig(config); + new RSSConfig.RSSConfigInitializer<ServletConfig>() { + @Override + protected String getConfigValue(ServletConfig config, String fullConfigName) { + return config.getInitParameter(fullConfigName); + } + }.init(config); // instanciate rss avec les implanatation par defaut - initDefaultRssHelper(); + rss = RSSHelper.newDefaultInstance(); } } catch (Exception eee) { log.warn("Can't configure Servlet", eee); @@ -134,51 +131,16 @@ PrintWriter out = response.getWriter(); try { String feedRepr = request.getParameter("feedRepr"); - Integer nbItem = convertToInt(request.getParameter("nbItem")); - out.println(getHTML(feedName, feedRepr, nbItem)); + Integer nbItem = convertToInt(request.getParameter("nbItem")); + String t = request.getParameter("resolv"); + Boolean resolv = t!=null && "true".equals(t); + out.println(rss.getHTML(feedName, feedRepr, nbItem,resolv)); } finally { out.close(); } } - } - - protected void initDefaultRssHelper() throws ServletException { - try { - rss = new RSSHelper(RSSConfig.DEFAULT_RESOLVER_CLASS.newInstance(), - RSSConfig.DEFAULT_RENDERER_CLASS.newInstance()); - } catch (Exception ex) { - log.warn("Can't configure rsshelper", ex); - throw new ServletException("Can't configure rsshelper", ex); - } - } - - protected void initRssConfig(ServletConfig config) throws Exception { - // recherche de la propriete RSSServlet_configuration_prefix - String prefixConfig = config.getInitParameter(CONFIGURATION_PREFIX_PROPERTY); - prefixConfig = prefixConfig==null?"":prefixConfig.trim(); - loadConfig(config, prefixConfig,"TIME_FORCE_RETRIEVED"); - loadConfig(config, prefixConfig,"DEFAULT_RENDERER_CONFIG"); - loadConfig(config, prefixConfig,"DEFAULT_NB_ITEM"); - loadConfig(config, prefixConfig,"DEFAULT_RENDERER_CLASS"); - loadConfig(config, prefixConfig,"DEFAULT_RESOLVER_CLASS"); - } + } - protected void loadConfig(ServletConfig config,String prefix, String configName) throws Exception { - String value = config.getInitParameter(prefix+configName); - loadConfig(configName,value); - } - - protected void loadConfig(String configName,String value ) throws Exception { - if (value != null && !"".equals(value)) { - log.info("key: "+configName+", value:"+value); - BeanUtils.setProperty(new RSSConfig(), configName, value); - } - } - - protected String getHTML(String feedName,String feedRepr,Integer nbItems) { - return rss.getHTML(feedName, feedRepr, nbItems); - } - protected Integer convertToInt(String parameter) { Integer result = null; try {