[jboss-cvs] JBossBlog SVN: r329 - in trunk: src/action/org/jboss/blog/session/feed/mod and 5 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Sep 11 01:48:42 EDT 2008


Author: adamw
Date: 2008-09-11 01:48:41 -0400 (Thu, 11 Sep 2008)
New Revision: 329

Added:
   trunk/resources/templates/rss1_standard.vm
   trunk/src/action/org/jboss/blog/session/xml/velocity/tools/Rss1XmlTools.java
Modified:
   trunk/src/action/org/jboss/blog/session/feed/mod/FeedModBean.java
   trunk/src/action/org/jboss/blog/session/tools/AdminBean.java
   trunk/src/action/org/jboss/blog/session/xml/velocity/TemplateBootstrap.java
   trunk/src/action/org/jboss/blog/session/xml/velocity/VelocityXmlService.java
   trunk/src/model/org/jboss/blog/model/XmlType.java
   trunk/view/manage/index.xhtml
Log:
RSS1 support

Copied: trunk/resources/templates/rss1_standard.vm (from rev 320, trunk/resources/templates/rss2_standard.vm)
===================================================================
--- trunk/resources/templates/rss1_standard.vm	                        (rev 0)
+++ trunk/resources/templates/rss1_standard.vm	2008-09-11 05:48:41 UTC (rev 329)
@@ -0,0 +1,27 @@
+<?xml version="1.0"?>
+
+<rdf:RDF
+  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+  xmlns="http://purl.org/rss/1.0/"
+>
+        <channel>
+                <title>$feed.title</title>
+                <link>$tools.feedPageLink($feed)</link>
+
+                <items>
+                    <rdf:Seq>
+                    #foreach($post in $posts)
+                        <rdf:li resource="$tools.postLink($post)" />
+                    #end
+                    </rdf:Seq>
+                </items>
+        </channel>
+
+        #foreach($post in $posts)
+        <item rdf:about="$tools.postLink($post)">
+            <title><![CDATA[$post.title]]></title>
+            <link>$tools.postLink($post)</link>
+            <description><![CDATA[$post.content]]></description>
+        </item>
+        #end
+</rdf:RDF>
\ No newline at end of file


Property changes on: trunk/resources/templates/rss1_standard.vm
___________________________________________________________________
Name: svn:mergeinfo
   + 

Modified: trunk/src/action/org/jboss/blog/session/feed/mod/FeedModBean.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/feed/mod/FeedModBean.java	2008-09-10 15:28:13 UTC (rev 328)
+++ trunk/src/action/org/jboss/blog/session/feed/mod/FeedModBean.java	2008-09-11 05:48:41 UTC (rev 329)
@@ -63,6 +63,7 @@
 
         feed.getTemplates().put(XmlType.ATOM, templateService.templatesOfType(XmlType.ATOM).get(0));
         feed.getTemplates().put(XmlType.RSS2, templateService.templatesOfType(XmlType.RSS2).get(0));
+        feed.getTemplates().put(XmlType.RSS1, templateService.templatesOfType(XmlType.RSS1).get(0));
     }
 
     public Feed getFeed() {

Modified: trunk/src/action/org/jboss/blog/session/tools/AdminBean.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/tools/AdminBean.java	2008-09-10 15:28:13 UTC (rev 328)
+++ trunk/src/action/org/jboss/blog/session/tools/AdminBean.java	2008-09-11 05:48:41 UTC (rev 329)
@@ -7,10 +7,13 @@
 import org.jboss.seam.log.Log;
 import org.jboss.blog.model.Group;
 import org.jboss.blog.model.Post;
+import org.jboss.blog.model.XmlType;
+import org.jboss.blog.model.Template;
 import org.jboss.blog.model.feed.Feed;
 import org.jboss.blog.tools.StringTools;
 import org.jboss.blog.service.GroupsService;
 import org.jboss.blog.session.cache.CacheManager;
+import org.jboss.blog.session.xml.velocity.TemplateServiceBean;
 
 import javax.persistence.EntityManager;
 import java.util.List;
@@ -34,9 +37,34 @@
     @In
     private FacesMessages facesMessages;
 
+    @In
+    private TemplateServiceBean templateService;
+
     @Logger
     private Log log;
 
+    private void updateFeedTemplates(Template atomTemplate, Template rss2Template, Template rss1Template, Feed feed) {
+        if (feed.getTemplates().get(XmlType.ATOM) == null) { feed.getTemplates().put(XmlType.ATOM, atomTemplate); }
+        if (feed.getTemplates().get(XmlType.RSS2) == null) { feed.getTemplates().put(XmlType.RSS2, rss2Template); }
+        if (feed.getTemplates().get(XmlType.RSS1) == null) { feed.getTemplates().put(XmlType.RSS1, rss1Template); }
+    }
+
+    public void updateMissingTemplates() {
+        Template atomTemplate = templateService.templatesOfType(XmlType.ATOM).get(0);
+        Template rss2Template = templateService.templatesOfType(XmlType.RSS2).get(0);
+        Template rss1Template = templateService.templatesOfType(XmlType.RSS1).get(0);
+
+        for (Group group : groupsService.getAllGroups()) {
+            for (Feed feed : groupsService.unacceptedFeeds(group)) {
+                updateFeedTemplates(atomTemplate, rss2Template, rss1Template, feed);
+            }
+
+            for (Feed feed : groupsService.allAcceptedFeeds(group)) {
+                updateFeedTemplates(atomTemplate, rss2Template, rss1Template, feed);
+            }
+        }
+    }
+
     @Restrict("#{identity.hasPermission('admin', null)}")
     public void fixHtml() {
         for (Group group : groupsService.getAllGroups()) {

Modified: trunk/src/action/org/jboss/blog/session/xml/velocity/TemplateBootstrap.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/xml/velocity/TemplateBootstrap.java	2008-09-10 15:28:13 UTC (rev 328)
+++ trunk/src/action/org/jboss/blog/session/xml/velocity/TemplateBootstrap.java	2008-09-11 05:48:41 UTC (rev 329)
@@ -18,11 +18,18 @@
 public class TemplateBootstrap {
     @In
     private EntityManager entityManager;
+
+    private long getTemplateCount(XmlType type) {
+        return (Long) entityManager
+                .createQuery("select count(t) from Template t where t.type = :type")
+                .setParameter("type", type)
+                .getSingleResult();
+    }
     
     @Observer("org.jboss.blog.postBlogInit")
     @Transactional
     public void initAtomTemplate() throws IOException {
-        if (((Long) entityManager.createQuery("select count(t) from Template t").getSingleResult()) == 0) {
+        if (getTemplateCount(XmlType.ATOM) == 0) {
             String templateText = GeneralTools.readInputStream(
                     this.getClass().getResourceAsStream("/templates/atom_standard.vm"));
             
@@ -40,7 +47,7 @@
     @Observer("org.jboss.blog.postBlogInit")
     @Transactional
     public void initRss2Template() throws IOException {
-        if (((Long) entityManager.createQuery("select count(t) from Template t").getSingleResult()) == 0) {
+        if (getTemplateCount(XmlType.RSS2) == 0) {
             String templateText = GeneralTools.readInputStream(
                     this.getClass().getResourceAsStream("/templates/rss2_standard.vm"));
 
@@ -54,4 +61,22 @@
             entityManager.flush();
         }
     }
+
+    @Observer("org.jboss.blog.postBlogInit")
+    @Transactional
+    public void initRss1Template() throws IOException {
+        if (getTemplateCount(XmlType.RSS1) == 0) {
+            String templateText = GeneralTools.readInputStream(
+                    this.getClass().getResourceAsStream("/templates/rss1_standard.vm"));
+
+            Template rss1Template = new Template();
+            rss1Template.setType(XmlType.RSS1);
+            rss1Template.setLastModified(new Date());
+            rss1Template.setName("0_rss1_standard");
+            rss1Template.setText(templateText);
+
+            entityManager.persist(rss1Template);
+            entityManager.flush();
+        }
+    }
 }

Modified: trunk/src/action/org/jboss/blog/session/xml/velocity/VelocityXmlService.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/xml/velocity/VelocityXmlService.java	2008-09-10 15:28:13 UTC (rev 328)
+++ trunk/src/action/org/jboss/blog/session/xml/velocity/VelocityXmlService.java	2008-09-11 05:48:41 UTC (rev 329)
@@ -14,6 +14,7 @@
 import org.jboss.blog.session.xml.velocity.tools.XmlTools;
 import org.jboss.blog.session.xml.velocity.tools.AtomXmlTools;
 import org.jboss.blog.session.xml.velocity.tools.Rss2XmlTools;
+import org.jboss.blog.session.xml.velocity.tools.Rss1XmlTools;
 import org.jboss.blog.session.cache.CacheManager;
 import org.jboss.blog.session.tools.PostToToolsBean;
 import org.jboss.blog.session.security.SecurityUserKeys;
@@ -70,6 +71,7 @@
         xmlTools = new HashMap<XmlType, XmlTools>();
         xmlTools.put(XmlType.ATOM, new AtomXmlTools());
         xmlTools.put(XmlType.RSS2, new Rss2XmlTools());
+        xmlTools.put(XmlType.RSS1, new Rss1XmlTools());
 
         try {
             Properties props = new Properties();

Copied: trunk/src/action/org/jboss/blog/session/xml/velocity/tools/Rss1XmlTools.java (from rev 315, trunk/src/action/org/jboss/blog/session/xml/velocity/tools/Rss2XmlTools.java)
===================================================================
--- trunk/src/action/org/jboss/blog/session/xml/velocity/tools/Rss1XmlTools.java	                        (rev 0)
+++ trunk/src/action/org/jboss/blog/session/xml/velocity/tools/Rss1XmlTools.java	2008-09-11 05:48:41 UTC (rev 329)
@@ -0,0 +1,13 @@
+package org.jboss.blog.session.xml.velocity.tools;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+/**
+ * @author Adam Warski (adam at warski dot org)
+ */
+public class Rss1XmlTools extends XmlTools {
+    public String formatDate(Date date) {
+        return new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z").format(date);
+    }
+}
\ No newline at end of file


Property changes on: trunk/src/action/org/jboss/blog/session/xml/velocity/tools/Rss1XmlTools.java
___________________________________________________________________
Name: svn:mergeinfo
   + 

Modified: trunk/src/model/org/jboss/blog/model/XmlType.java
===================================================================
--- trunk/src/model/org/jboss/blog/model/XmlType.java	2008-09-10 15:28:13 UTC (rev 328)
+++ trunk/src/model/org/jboss/blog/model/XmlType.java	2008-09-11 05:48:41 UTC (rev 329)
@@ -5,7 +5,8 @@
  */
 public enum XmlType {
     ATOM("application/atom+xml"),
-    RSS2("application/xhtml+xml");
+    RSS2("application/xhtml+xml"),
+    RSS1("application/xhtml+xml");
 
     private final String contentType;
 

Modified: trunk/view/manage/index.xhtml
===================================================================
--- trunk/view/manage/index.xhtml	2008-09-10 15:28:13 UTC (rev 328)
+++ trunk/view/manage/index.xhtml	2008-09-11 05:48:41 UTC (rev 329)
@@ -70,6 +70,7 @@
             <hr />
             <dd><s:link value="Fix html in all posts" action="#{adminBean.fixHtml}" /></dd>
             <dd><s:link value="Remove duplicates" action="#{adminBean.removeDuplicates}" /></dd>
+            <dd><s:link value="Update missing templates" action="#{adminBean.updateMissingTemplates}" /></dd>
             <dd><s:link value="Re-index posts (for search)" action="#{postSearch.reindex}" /></dd>
         </s:fragment>
         <dt>Existing feed operations:</dt>




More information about the jboss-cvs-commits mailing list