Author: tchemit Date: 2008-06-04 11:35:29 +0000 (Wed, 04 Jun 2008) New Revision: 82 Modified: trunk/lutinrss/pom.xml trunk/lutinrss/src/main/java/org/codelutin/rss/Field.java trunk/lutinrss/src/main/java/org/codelutin/rss/RSSGenerator.java trunk/lutinrss/src/main/java/org/codelutin/rss/RSSGeneratorConfig.java trunk/lutinrss/src/main/java/org/codelutin/rss/RSSGeneratorServlet.java trunk/lutinrss/src/main/java/org/codelutin/rss/RSSIOUtil.java trunk/lutinrss/src/main/webapp/testGenerator.html trunk/lutinrss/src/test/java/org/codelutin/rss/RSSGeneratorHelperTest.java Log: ajout des catagories dans le feed (unqiuement pour la g?\195?\169n?\195?\169ration pour le moment) Modified: trunk/lutinrss/pom.xml =================================================================== --- trunk/lutinrss/pom.xml 2008-06-04 09:04:35 UTC (rev 81) +++ trunk/lutinrss/pom.xml 2008-06-04 11:35:29 UTC (rev 82) @@ -24,7 +24,7 @@ <packaging>war</packaging> <!--Version--> - <version>2.2</version> + <version>2.3</version> <!--Description--> <description>Servlet pouvant etre appeler depuis du JS pour recuperer un Modified: trunk/lutinrss/src/main/java/org/codelutin/rss/Field.java =================================================================== --- trunk/lutinrss/src/main/java/org/codelutin/rss/Field.java 2008-06-04 09:04:35 UTC (rev 81) +++ trunk/lutinrss/src/main/java/org/codelutin/rss/Field.java 2008-06-04 11:35:29 UTC (rev 82) @@ -12,7 +12,7 @@ */ public enum Field { - NAME('n'), IMAGE('i'), DESCRIPTION('d'), AUTHOR('a'), TIME('t'),LINK('l'); + NAME('n'), IMAGE('i'), DESCRIPTION('d'), AUTHOR('a'), TIME('t'),LINK('l'),CATEGORY('c'); /** le caractere utilise pour la version compactee d'une configuration de renderer */ private char c; Modified: trunk/lutinrss/src/main/java/org/codelutin/rss/RSSGenerator.java =================================================================== --- trunk/lutinrss/src/main/java/org/codelutin/rss/RSSGenerator.java 2008-06-04 09:04:35 UTC (rev 81) +++ trunk/lutinrss/src/main/java/org/codelutin/rss/RSSGenerator.java 2008-06-04 11:35:29 UTC (rev 82) @@ -77,6 +77,7 @@ feedProperties.put(Field.DESCRIPTION, "description"); feedProperties.put(Field.AUTHOR, "author"); feedProperties.put(Field.TIME, "publishedDate"); + feedProperties.put(Field.CATEGORY, "categories"); itemProperties = new EnumMap<Field, String>(Field.class); itemProperties.put(Field.NAME, "title"); Modified: trunk/lutinrss/src/main/java/org/codelutin/rss/RSSGeneratorConfig.java =================================================================== --- trunk/lutinrss/src/main/java/org/codelutin/rss/RSSGeneratorConfig.java 2008-06-04 09:04:35 UTC (rev 81) +++ trunk/lutinrss/src/main/java/org/codelutin/rss/RSSGeneratorConfig.java 2008-06-04 11:35:29 UTC (rev 82) @@ -12,10 +12,14 @@ * la propriete de configuration qui definit le prefix a jouter pour scruter la configuration */ private static final String CONFIGURATION_PREFIX_PROPERTY = RSSGeneratorServlet.class.getSimpleName() + "_configuration_prefix"; - + /** nombre d'items max à ecrire dans le fichier du flux */ public static int DEFAULT_GENERATOR_NB_ITEM = 100; + /** le format par défaut duflux à générer */ public static String DEFAULT_GENERATOR_FORMAT = "RSS_2_0"; + /** le répertoire où générer les flux */ public static String GENERATOR_DIRECTORY = "/tmp/rssinclude"; + /** le caractère séparateur des listes de métas (categorie par exemple) */ + public static String DEFAULT_LIST_SEPARATOR = ";"; public void setDEFAULT_GENERATOR_NB_ITEM(int DEFAULT_GENERATOR_NB_ITEM) { RSSGeneratorConfig.DEFAULT_GENERATOR_NB_ITEM = DEFAULT_GENERATOR_NB_ITEM; @@ -29,6 +33,9 @@ RSSGeneratorConfig.GENERATOR_DIRECTORY = GENERATOR_DIRECTORY; } + public void setDEFAULT_LIST_SEPARATOR(String DEFAULT_LIST_SEPARATOR) { + RSSGeneratorConfig.DEFAULT_LIST_SEPARATOR = DEFAULT_LIST_SEPARATOR; + } /** * * @param S la classe source de la configuration @@ -45,6 +52,7 @@ super.init(CONFIGURATION_PREFIX_PROPERTY,RSSGeneratorConfig.class, config, "DEFAULT_GENERATOR_NB_ITEM", "DEFAULT_GENERATOR_FORMAT", + "DEFAULT_LIST_SEPARATOR", "GENERATOR_DIRECTORY"); // create delegate directory Modified: trunk/lutinrss/src/main/java/org/codelutin/rss/RSSGeneratorServlet.java =================================================================== --- trunk/lutinrss/src/main/java/org/codelutin/rss/RSSGeneratorServlet.java 2008-06-04 09:04:35 UTC (rev 81) +++ trunk/lutinrss/src/main/java/org/codelutin/rss/RSSGeneratorServlet.java 2008-06-04 11:35:29 UTC (rev 82) @@ -36,11 +36,13 @@ String description = request.getParameter("feedDescription"); String link = request.getParameter("feedLink"); String author = request.getParameter("feedAuthor"); + String categories = request.getParameter("feedCategories"); Map<Field, Object> values = new HashMap<Field, Object>(); values.put(Field.NAME, feedName); addFieldValue(Field.DESCRIPTION, description, values); addFieldValue(Field.LINK, link, values); addFieldValue(Field.AUTHOR, author, values); + addFieldValue(Field.CATEGORY, categories, values); values.put(Field.TIME, RSSGenerator.DATE_PARSER.format(new java.util.Date())); try { delegate.createFeedFile(file.toURI().toURL(), feedType, values); Modified: trunk/lutinrss/src/main/java/org/codelutin/rss/RSSIOUtil.java =================================================================== --- trunk/lutinrss/src/main/java/org/codelutin/rss/RSSIOUtil.java 2008-06-04 09:04:35 UTC (rev 81) +++ trunk/lutinrss/src/main/java/org/codelutin/rss/RSSIOUtil.java 2008-06-04 11:35:29 UTC (rev 82) @@ -1,5 +1,7 @@ package org.codelutin.rss; +import com.sun.syndication.feed.synd.SyndCategory; +import com.sun.syndication.feed.synd.SyndCategoryImpl; import com.sun.syndication.feed.synd.SyndContent; import com.sun.syndication.feed.synd.SyndContentImpl; import com.sun.syndication.feed.synd.SyndEntry; @@ -88,6 +90,23 @@ case TIME: realValue = RSSGenerator.DATE_PARSER.parse((String) value); break; + case CATEGORY: + List<String> categoriesAsString = new java.util.ArrayList<String>(); + if (value instanceof List) { + categoriesAsString = (List) value; + } else { + // categories as String + String cats = String.valueOf(value); + String[] categories = cats.split(RSSGeneratorConfig.DEFAULT_LIST_SEPARATOR); + categoriesAsString = java.util.Arrays.asList(categories); + } + realValue = new java.util.ArrayList<SyndCategory>(); + for (String cat : categoriesAsString) { + SyndCategory scat = new SyndCategoryImpl(); + scat.setName(cat); + ((List)realValue).add(scat); + } + break; default: realValue = value; } Modified: trunk/lutinrss/src/main/webapp/testGenerator.html =================================================================== --- trunk/lutinrss/src/main/webapp/testGenerator.html 2008-06-04 09:04:35 UTC (rev 81) +++ trunk/lutinrss/src/main/webapp/testGenerator.html 2008-06-04 11:35:29 UTC (rev 82) @@ -10,7 +10,7 @@ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <style type="text/css"> .error {color:red; display:block;} - fieldset {height:120px;} + fieldset {height:140px;} iframe { width:100%;height:400px;} </style> <script src="rssgenerator.js"></script> @@ -57,6 +57,10 @@ <td>feedAuthor : </td> <td><input name="feedAuthor" type="text" size="50"></td> </tr> + <tr> + <td>feedCategories : </td> + <td><input name="feedCategories" type="text" size="50"></td> + </tr> <tr><td style="font-size:11px">(*) Mandatory field</td></tr> </table> </fieldset> Modified: trunk/lutinrss/src/test/java/org/codelutin/rss/RSSGeneratorHelperTest.java =================================================================== --- trunk/lutinrss/src/test/java/org/codelutin/rss/RSSGeneratorHelperTest.java 2008-06-04 09:04:35 UTC (rev 81) +++ trunk/lutinrss/src/test/java/org/codelutin/rss/RSSGeneratorHelperTest.java 2008-06-04 11:35:29 UTC (rev 82) @@ -4,6 +4,7 @@ */ package org.codelutin.rss; +import com.sun.syndication.feed.synd.SyndCategory; import com.sun.syndication.feed.synd.SyndEntry; import com.sun.syndication.feed.synd.SyndFeed; import java.io.File; @@ -43,6 +44,8 @@ values.put(Field.NAME, "feedName : " + f.getName()); values.put(Field.DESCRIPTION, "feedDescription : " + f.getName()); values.put(Field.LINK, f.toURI().toURL() + ""); + values.put(Field.AUTHOR, "feed author"); + values.put(Field.CATEGORY, java.util.Arrays.asList("categorie1","categorie2")); values.put(Field.TIME, RSSGenerator.DATE_PARSER.format(new java.util.Date())); assertFalse(f.exists()); @@ -63,6 +66,12 @@ assertEquals(feed.getLink(), values.get(Field.LINK)); assertEquals(feed.getTitle(), values.get(Field.NAME)); assertEquals(feed.getDescription(), values.get(Field.DESCRIPTION)); + assertEquals(feed.getAuthor(), values.get(Field.AUTHOR)); + List cats = (List) values.get(Field.CATEGORY); + for (Object o : feed.getCategories()) { + SyndCategory cat = (SyndCategory) o; + assertTrue(cats.contains(cat.getName())); + } assertEquals(feed.getPublishedDate(), RSSGenerator.DATE_PARSER.parse((String) values.get(Field.TIME))); } @@ -173,6 +182,7 @@ assertEquals(entry.getLink(), values.get(Field.LINK)); assertEquals(entry.getTitle(), values.get(Field.NAME)); assertEquals(entry.getDescription().getValue(), values.get(Field.DESCRIPTION)); + assertEquals(entry.getAuthor(), values.get(Field.AUTHOR)); assertEquals(entry.getPublishedDate(), RSSGenerator.DATE_PARSER.parse((String) values.get(Field.TIME))); } @@ -184,6 +194,7 @@ Map<Field, Object> values = new java.util.HashMap<Field, Object>(); values.put(Field.NAME, "entryName : " + f.getName() + "-" + number); values.put(Field.DESCRIPTION, "entryDescription : " + f.getName() + "-" + number); + values.put(Field.AUTHOR, "author-" + number); values.put(Field.LINK, f.toURI().toURL() + "/entry-" + number); values.put(Field.TIME, RSSGenerator.DATE_PARSER.format(new java.util.Date())); return values;