[jboss-cvs] JBossBlog SVN: r158 - in trunk: resources/templates and 9 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Dec 10 06:04:38 EST 2007


Author: adamw
Date: 2007-12-10 06:04:38 -0500 (Mon, 10 Dec 2007)
New Revision: 158

Added:
   trunk/src/action/org/jboss/blog/session/xml/
   trunk/src/action/org/jboss/blog/session/xml/XmlService.java
   trunk/src/action/org/jboss/blog/session/xml/velocity/
   trunk/src/action/org/jboss/blog/session/xml/velocity/DatabaseResourceLoader.java
   trunk/src/action/org/jboss/blog/session/xml/velocity/InvalidTemplateTypeException.java
   trunk/src/action/org/jboss/blog/session/xml/velocity/TemplateModBean.java
   trunk/src/action/org/jboss/blog/session/xml/velocity/VelocityXmlService.java
   trunk/src/action/org/jboss/blog/session/xml/velocity/tools/
   trunk/src/action/org/jboss/blog/session/xml/velocity/tools/AtomTemplateTools.java
   trunk/src/action/org/jboss/blog/session/xml/velocity/tools/Rss2TemplateTools.java
   trunk/src/action/org/jboss/blog/session/xml/velocity/tools/TemplateTools.java
   trunk/src/model/org/jboss/blog/model/XmlType.java
Removed:
   trunk/src/action/org/jboss/blog/session/xml/InvalidTemplateTypeException.java
   trunk/src/action/org/jboss/blog/session/xml/TemplateService.java
   trunk/src/action/org/jboss/blog/session/xml/VelocityTemplateService.java
Modified:
   trunk/resources/templates/atom_standard.vm
   trunk/resources/velocity.properties
   trunk/src/action/org/jboss/blog/servlet/FeedsServlet.java
   trunk/src/action/org/jboss/blog/session/feed/FeedModBean.java
   trunk/src/action/org/jboss/blog/session/view/LinkServiceBean.java
   trunk/src/model/org/jboss/blog/model/Feed.java
   trunk/src/model/org/jboss/blog/model/Template.java
   trunk/view/view/feed.xhtml
Log:


Modified: trunk/resources/templates/atom_standard.vm
===================================================================
--- trunk/resources/templates/atom_standard.vm	2007-12-06 17:08:39 UTC (rev 157)
+++ trunk/resources/templates/atom_standard.vm	2007-12-10 11:04:38 UTC (rev 158)
@@ -7,7 +7,7 @@
       <name>$feed.author</name>
    </author>
    <link rel="alternate" type="text/html" href="$tools.feedPageLink($feed)"/>
-   <link rel="self" href="$tools.feedLink($feed, $templateType)"/>
+   <link rel="self" href="$tools.feedLink($feed, $xmlType)"/>
 
    #foreach($post in $posts)
         <entry>

Modified: trunk/resources/velocity.properties
===================================================================
--- trunk/resources/velocity.properties	2007-12-06 17:08:39 UTC (rev 157)
+++ trunk/resources/velocity.properties	2007-12-10 11:04:38 UTC (rev 158)
@@ -4,6 +4,6 @@
 resource.loader = database
 
 database.resource.loader.description = Velocity File Resource Loader
-database.resource.loader.class = org.jboss.blog.session.template.DatabaseResourceLoader
+database.resource.loader.class = org.jboss.blog.session.xml.velocity.DatabaseResourceLoader
 database.resource.loader.cache = false
 database.resource.loader.modificationCheckInterval = 2
\ No newline at end of file

Modified: trunk/src/action/org/jboss/blog/servlet/FeedsServlet.java
===================================================================
--- trunk/src/action/org/jboss/blog/servlet/FeedsServlet.java	2007-12-06 17:08:39 UTC (rev 157)
+++ trunk/src/action/org/jboss/blog/servlet/FeedsServlet.java	2007-12-10 11:04:38 UTC (rev 158)
@@ -1,8 +1,8 @@
 package org.jboss.blog.servlet;
 
 import org.jboss.blog.service.FeedNotFoundException;
-import org.jboss.blog.session.template.InvalidTemplateTypeException;
-import org.jboss.blog.session.template.TemplateService;
+import org.jboss.blog.session.xml.velocity.InvalidTemplateTypeException;
+import org.jboss.blog.session.xml.XmlService;
 import org.jboss.seam.Component;
 import org.jboss.seam.log.Logging;
 
@@ -51,8 +51,8 @@
 
             // TODO: expires, created, if-not-modified-since
 
-            TemplateService templateService = (TemplateService) Component.getInstance("templateService");
-            templateService.writeTemplate(feedType, feedName, response);
+            XmlService xmlService = (XmlService) Component.getInstance("xmlService");
+            xmlService.writeXml(feedType, feedName, response);
             response.getWriter().flush();
 
             if (txStarted) {

Modified: trunk/src/action/org/jboss/blog/session/feed/FeedModBean.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/feed/FeedModBean.java	2007-12-06 17:08:39 UTC (rev 157)
+++ trunk/src/action/org/jboss/blog/session/feed/FeedModBean.java	2007-12-10 11:04:38 UTC (rev 158)
@@ -3,7 +3,7 @@
 import org.jboss.blog.model.Feed;
 import org.jboss.blog.model.Post;
 import org.jboss.blog.model.Template;
-import org.jboss.blog.model.TemplateType;
+import org.jboss.blog.model.XmlType;
 import org.jboss.blog.session.merge.MergeServiceBean;
 import org.jboss.seam.ScopeType;
 import org.jboss.seam.annotations.AutoCreate;
@@ -39,7 +39,7 @@
         this.feed = feed;
         feed.setMaxPostsInFeed(10);
         feed.setMaxPostsOnPage(10);
-        feed.setTemplates(new HashMap<TemplateType, Template>());
+        feed.setTemplates(new HashMap<XmlType, Template>());
     }
 
     public Feed getFeed() {
@@ -50,8 +50,8 @@
         this.feed = feed;
     }
 
-    public TemplateType[] getTemplateTypes() {
-        return TemplateType.values();
+    public XmlType[] getTemplateTypes() {
+        return new XmlType[] { XmlType.ATOM };
     }
 
     public void saveNew() {

Modified: trunk/src/action/org/jboss/blog/session/view/LinkServiceBean.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/view/LinkServiceBean.java	2007-12-06 17:08:39 UTC (rev 157)
+++ trunk/src/action/org/jboss/blog/session/view/LinkServiceBean.java	2007-12-10 11:04:38 UTC (rev 158)
@@ -2,7 +2,7 @@
 
 import org.jboss.blog.model.Feed;
 import org.jboss.blog.model.Post;
-import org.jboss.blog.model.TemplateType;
+import org.jboss.blog.model.XmlType;
 import org.jboss.seam.ScopeType;
 import org.jboss.seam.annotations.AutoCreate;
 import org.jboss.seam.annotations.Name;
@@ -34,7 +34,7 @@
         this.contextName = contextName;
     }
 
-    public String generateFeedLink(Feed feed, TemplateType type) {
+    public String generateFeedLink(Feed feed, XmlType type) {
         return serverAddress + "/" + contextName + "/feeds.seam?type=" + type + "&name=" + feed.getName();
     }
 

Copied: trunk/src/action/org/jboss/blog/session/xml (from rev 144, trunk/src/action/org/jboss/blog/session/template)

Deleted: trunk/src/action/org/jboss/blog/session/xml/InvalidTemplateTypeException.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/template/InvalidTemplateTypeException.java	2007-11-29 14:20:31 UTC (rev 144)
+++ trunk/src/action/org/jboss/blog/session/xml/InvalidTemplateTypeException.java	2007-12-10 11:04:38 UTC (rev 158)
@@ -1,21 +0,0 @@
-package org.jboss.blog.session.template;
-
-/**
- * @author <a href="mailto:adam at warski.org">Adam Warski</a>
- */
-public class InvalidTemplateTypeException extends Exception {
-    public InvalidTemplateTypeException() {
-    }
-
-    public InvalidTemplateTypeException(String message) {
-        super(message);
-    }
-
-    public InvalidTemplateTypeException(String message, Throwable cause) {
-        super(message, cause);
-    }
-
-    public InvalidTemplateTypeException(Throwable cause) {
-        super(cause);
-    }
-}

Deleted: trunk/src/action/org/jboss/blog/session/xml/TemplateService.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/template/TemplateService.java	2007-11-29 14:20:31 UTC (rev 144)
+++ trunk/src/action/org/jboss/blog/session/xml/TemplateService.java	2007-12-10 11:04:38 UTC (rev 158)
@@ -1,14 +0,0 @@
-package org.jboss.blog.session.template;
-
-import org.jboss.blog.tools.Pair;
-import org.jboss.blog.service.FeedNotFoundException;
-
-import java.io.InputStream;
-
-/**
- * @author <a href="mailto:adam at warski.org">Adam Warski</a>
- */
-public interface TemplateService {
-    Pair<String, InputStream> getData(String feedType, String feedName)
-            throws FeedNotFoundException, InvalidTemplateTypeException;
-}

Deleted: trunk/src/action/org/jboss/blog/session/xml/VelocityTemplateService.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/template/VelocityTemplateService.java	2007-11-29 14:20:31 UTC (rev 144)
+++ trunk/src/action/org/jboss/blog/session/xml/VelocityTemplateService.java	2007-12-10 11:04:38 UTC (rev 158)
@@ -1,54 +0,0 @@
-package org.jboss.blog.session.template;
-
-import org.apache.velocity.VelocityContext;
-import org.apache.velocity.app.VelocityEngine;
-import org.jboss.blog.model.Feed;
-import org.jboss.blog.model.Post;
-import org.jboss.blog.model.TemplateType;
-import org.jboss.blog.service.FeedNotFoundException;
-import org.jboss.blog.service.FeedsService;
-import org.jboss.blog.tools.Pair;
-import org.jboss.seam.Component;
-import org.jboss.seam.ScopeType;
-import org.jboss.seam.annotations.*;
-
-import java.io.InputStream;
-import java.util.List;
-
-/**
- * @author <a href="mailto:adam at warski.org">Adam Warski</a>
- */
- at Name("templateService")
- at Scope(ScopeType.STATELESS)
- at AutoCreate
-public class VelocityTemplateService implements TemplateService {
-    @In
-    private FeedsService feedsService;
-
-    private VelocityEngine engine;
-
-    @Create
-    public void initVeloctiy() {
-        engine = new VelocityEngine();
-    }
-
-    public Pair<String, InputStream> getData(String feedType, String feedName)
-            throws FeedNotFoundException, InvalidTemplateTypeException {
-        TemplateType templateType;
-        try {
-            templateType = TemplateType.valueOf(feedType == null? "" : feedType.toUpperCase());
-        } catch (IllegalArgumentException e) {
-            throw new InvalidTemplateTypeException(e);
-        }
-
-        FeedsService feedsService = (FeedsService) Component.getInstance("feedsService");
-        Feed feed = feedsService.getFeed(feedName);
-        List<Post> posts = feedsService.getPosts(feed, 0, feed.getMaxPostsInFeed());
-
-        VelocityContext context = new VelocityContext();
-        context.put("posts", posts);
-        context.put("feed", feed);
-
-        return null;
-    }
-}

Added: trunk/src/action/org/jboss/blog/session/xml/XmlService.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/xml/XmlService.java	                        (rev 0)
+++ trunk/src/action/org/jboss/blog/session/xml/XmlService.java	2007-12-10 11:04:38 UTC (rev 158)
@@ -0,0 +1,23 @@
+package org.jboss.blog.session.xml;
+
+import org.jboss.blog.model.Template;
+import org.jboss.blog.model.XmlType;
+
+import javax.ejb.Local;
+import javax.servlet.ServletResponse;
+import java.util.List;
+
+/**
+ * @author <a href="mailto:adam at warski.org">Adam Warski</a>
+ */
+ at Local
+public interface XmlService {
+    void writeXml(String feedType, String feedName, ServletResponse response)
+            throws Exception;
+
+    List<Template> getAllTemplates();
+
+    List<Template> templatesOfType(XmlType type);
+
+    void remove();
+}

Added: trunk/src/action/org/jboss/blog/session/xml/velocity/DatabaseResourceLoader.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/xml/velocity/DatabaseResourceLoader.java	                        (rev 0)
+++ trunk/src/action/org/jboss/blog/session/xml/velocity/DatabaseResourceLoader.java	2007-12-10 11:04:38 UTC (rev 158)
@@ -0,0 +1,50 @@
+package org.jboss.blog.session.xml.velocity;
+
+import org.apache.commons.collections.ExtendedProperties;
+import org.apache.velocity.exception.ResourceNotFoundException;
+import org.apache.velocity.runtime.resource.Resource;
+import org.apache.velocity.runtime.resource.loader.ResourceLoader;
+import org.jboss.blog.model.Template;
+import org.jboss.seam.Component;
+
+import javax.persistence.EntityManager;
+import javax.persistence.NoResultException;
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+
+/**
+ * @author <a href="mailto:adam at warski.org">Adam Warski</a>
+ */
+public class DatabaseResourceLoader extends ResourceLoader {
+    public void init(ExtendedProperties extendedProperties) {
+    }
+
+    private Template getTemplate(String name) {
+        return (Template) ((EntityManager) Component.getInstance("entityManager")).createQuery(
+                "select t from Template t where t.name = ?1").setParameter(1, name).getSingleResult();
+    }
+
+    public InputStream getResourceStream(String name) throws ResourceNotFoundException {
+        try {
+            return new ByteArrayInputStream(getTemplate(name).getText().getBytes());
+        } catch (NoResultException e) {
+            return null;
+        }
+    }
+
+    public boolean isSourceModified(Resource resource) {
+        try {
+            return resource.getLastModified() != getLastModified(resource);
+        } catch (NoResultException e) {
+            return false;
+        }
+    }
+
+    public long getLastModified(Resource resource) {
+        try {
+            return getTemplate(resource.getName()).getLastModified().getTime();
+        } catch (NoResultException e) {
+            return 0;
+        }
+    }
+}

Added: trunk/src/action/org/jboss/blog/session/xml/velocity/InvalidTemplateTypeException.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/xml/velocity/InvalidTemplateTypeException.java	                        (rev 0)
+++ trunk/src/action/org/jboss/blog/session/xml/velocity/InvalidTemplateTypeException.java	2007-12-10 11:04:38 UTC (rev 158)
@@ -0,0 +1,21 @@
+package org.jboss.blog.session.xml.velocity;
+
+/**
+ * @author <a href="mailto:adam at warski.org">Adam Warski</a>
+ */
+public class InvalidTemplateTypeException extends Exception {
+    public InvalidTemplateTypeException() {
+    }
+
+    public InvalidTemplateTypeException(String message) {
+        super(message);
+    }
+
+    public InvalidTemplateTypeException(String message, Throwable cause) {
+        super(message, cause);
+    }
+
+    public InvalidTemplateTypeException(Throwable cause) {
+        super(cause);
+    }
+}

Added: trunk/src/action/org/jboss/blog/session/xml/velocity/TemplateModBean.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/xml/velocity/TemplateModBean.java	                        (rev 0)
+++ trunk/src/action/org/jboss/blog/session/xml/velocity/TemplateModBean.java	2007-12-10 11:04:38 UTC (rev 158)
@@ -0,0 +1,57 @@
+package org.jboss.blog.session.xml.velocity;
+
+import org.jboss.blog.model.Template;
+import org.jboss.seam.annotations.In;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.faces.FacesMessages;
+
+import javax.persistence.EntityManager;
+import javax.faces.application.FacesMessage;
+
+/**
+ * @author <a href="mailto:adam at warski.org">Adam Warski</a>
+ */
+ at Name("templateMod")
+public class TemplateModBean {
+    @In
+    private EntityManager entityManager;
+
+    @In
+    private FacesMessages facesMessages;
+
+    private Template template;
+
+    public Template getTemplate() {
+        if (template == null) {
+            template = new Template();
+        }
+
+        return template;
+    }
+
+    public void setTemplate(Template template) {
+        this.template = template;
+    }
+
+    public void saveNew() {
+        entityManager.persist(template);
+        entityManager.flush();
+
+        facesMessages.addFromResourceBundle(FacesMessage.SEVERITY_INFO, "blog.template.added", template.getName(),
+                template.getType());
+    }
+
+    public void saveExisting() {
+        entityManager.flush();
+
+        facesMessages.addFromResourceBundle(FacesMessage.SEVERITY_INFO, "blog.template.updated", template.getName(),
+                template.getType());
+    }
+
+    public void delete() {
+        entityManager.remove(template);
+
+        facesMessages.addFromResourceBundle(FacesMessage.SEVERITY_INFO, "blog.template.deleted", template.getName(),
+                template.getType());
+    }
+}

Added: trunk/src/action/org/jboss/blog/session/xml/velocity/VelocityXmlService.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/xml/velocity/VelocityXmlService.java	                        (rev 0)
+++ trunk/src/action/org/jboss/blog/session/xml/velocity/VelocityXmlService.java	2007-12-10 11:04:38 UTC (rev 158)
@@ -0,0 +1,93 @@
+package org.jboss.blog.session.xml.velocity;
+
+import org.apache.velocity.Template;
+import org.apache.velocity.VelocityContext;
+import org.apache.velocity.app.VelocityEngine;
+import org.jboss.blog.model.Feed;
+import org.jboss.blog.model.Post;
+import org.jboss.blog.model.XmlType;
+import org.jboss.blog.service.FeedsService;
+import org.jboss.blog.session.xml.XmlService;
+import org.jboss.seam.annotations.AutoCreate;
+import org.jboss.seam.annotations.In;
+import org.jboss.seam.annotations.Name;
+
+import javax.ejb.Remove;
+import javax.ejb.Stateless;
+import javax.persistence.EntityManager;
+import javax.servlet.ServletResponse;
+import javax.annotation.PostConstruct;
+import java.util.List;
+import java.util.Properties;
+
+/**
+ * @author <a href="mailto:adam at warski.org">Adam Warski</a>
+ */
+ at Name("xmlService")
+ at Stateless
+ at AutoCreate
+public class VelocityXmlService implements XmlService {
+    @In
+    private FeedsService feedsService;
+
+    @In
+    private EntityManager entityManager;
+
+    private VelocityEngine engine;
+
+    @PostConstruct
+    public void initVeloctiy() {
+        try {
+            Properties props = new Properties();
+            props.load(this.getClass().getResourceAsStream("/velocity.properties"));
+        
+            engine = new VelocityEngine(props);
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    public void writeXml(String feedType, String feedName, ServletResponse response)
+            throws Exception {
+        XmlType xmlType;
+        try {
+            xmlType = XmlType.valueOf(feedType == null? "" : feedType.toUpperCase());
+        } catch (IllegalArgumentException e) {
+            throw new InvalidTemplateTypeException(e);
+        }
+
+        Feed feed = feedsService.getFeed(feedName);
+
+        if (feed.getTemplates().get(xmlType) == null) {
+            throw new InvalidTemplateTypeException();
+        }
+
+        List<Post> posts = feedsService.getPosts(feed, 0, feed.getMaxPostsInFeed());
+
+        response.setContentType(xmlType.contentType());
+        response.setCharacterEncoding("utf-8");
+
+        VelocityContext context = new VelocityContext();
+        context.put("posts", posts);
+        context.put("feed", feed);
+        context.put("tools", xmlType.tools().newInstance());
+        context.put("xmlType", xmlType);
+
+        Template template = engine.getTemplate(feed.getTemplates().get(xmlType).getName());
+        template.merge(context, response.getWriter());
+    }
+
+    @SuppressWarnings("unchecked")
+    public List<org.jboss.blog.model.Template> getAllTemplates() {
+        return entityManager.createQuery("select t from Template t order by t.name, t.type").getResultList();
+    }
+
+    @SuppressWarnings("unchecked")
+    public List<org.jboss.blog.model.Template> templatesOfType(XmlType type) {
+        return entityManager.createQuery("select t from Template t where t.type = ?1 order by t.name")
+                .setParameter(1, type).getResultList();
+    }
+
+    @Remove
+    public void remove() { }
+}

Added: trunk/src/action/org/jboss/blog/session/xml/velocity/tools/AtomTemplateTools.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/xml/velocity/tools/AtomTemplateTools.java	                        (rev 0)
+++ trunk/src/action/org/jboss/blog/session/xml/velocity/tools/AtomTemplateTools.java	2007-12-10 11:04:38 UTC (rev 158)
@@ -0,0 +1,16 @@
+package org.jboss.blog.session.xml.velocity.tools;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+/**
+ * @author <a href="mailto:adam at warski.org">Adam Warski</a>
+ */
+public class AtomTemplateTools extends TemplateTools {
+    public String formatDate(Date date) {
+		String noZoneDate = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss").format(date);
+		String zone = new SimpleDateFormat("Z").format(date);
+
+		return noZoneDate + zone.substring(0, 3) + ":" + zone.substring(3, 5);
+    }
+}

Added: trunk/src/action/org/jboss/blog/session/xml/velocity/tools/Rss2TemplateTools.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/xml/velocity/tools/Rss2TemplateTools.java	                        (rev 0)
+++ trunk/src/action/org/jboss/blog/session/xml/velocity/tools/Rss2TemplateTools.java	2007-12-10 11:04:38 UTC (rev 158)
@@ -0,0 +1,13 @@
+package org.jboss.blog.session.xml.velocity.tools;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+/**
+ * @author <a href="mailto:adam at warski.org">Adam Warski</a>
+ */
+public class Rss2TemplateTools extends TemplateTools {
+    public String formatDate(Date date) {
+        return new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z").format(date);
+    }
+}

Added: trunk/src/action/org/jboss/blog/session/xml/velocity/tools/TemplateTools.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/xml/velocity/tools/TemplateTools.java	                        (rev 0)
+++ trunk/src/action/org/jboss/blog/session/xml/velocity/tools/TemplateTools.java	2007-12-10 11:04:38 UTC (rev 158)
@@ -0,0 +1,48 @@
+package org.jboss.blog.session.xml.velocity.tools;
+
+import org.jboss.blog.model.Feed;
+import org.jboss.blog.model.Post;
+import org.jboss.blog.model.XmlType;
+import org.jboss.blog.session.view.LinkServiceBean;
+import org.jboss.seam.Component;
+
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author <a href="mailto:adam at warski.org">Adam Warski</a>
+ */
+public class TemplateTools {
+    public String formatDate(Date date) {
+        return new SimpleDateFormat("MM/dd/yy").format(date);
+    }
+
+    public Date feedPubDate(Feed feed, List<Post> posts) {
+        if (posts.size() != 0) {
+            return posts.get(0).getPublished();
+        }
+
+        Calendar cal = Calendar.getInstance();
+        cal.setTimeInMillis(0);
+
+        return cal.getTime();
+    }
+
+    private LinkServiceBean getLinkService() {
+        return (LinkServiceBean) Component.getInstance("linkService");
+    }
+
+    public String feedPageLink(Feed feed) {
+        return getLinkService().generateFeedPageLink(feed);
+    }
+
+    public String feedLink(Feed feed, XmlType type) {
+        return getLinkService().generateFeedLink(feed, type);
+    }
+
+    public String postLink(Post post) {
+        return getLinkService().generatePostLink(post);
+    }
+}

Modified: trunk/src/model/org/jboss/blog/model/Feed.java
===================================================================
--- trunk/src/model/org/jboss/blog/model/Feed.java	2007-12-06 17:08:39 UTC (rev 157)
+++ trunk/src/model/org/jboss/blog/model/Feed.java	2007-12-10 11:04:38 UTC (rev 158)
@@ -43,7 +43,7 @@
     private String description;
 
     @ManyToMany
-    private Map<TemplateType, Template> templates;
+    private Map<XmlType, Template> templates;
 
     @Column
     private int maxPostsInFeed;
@@ -110,11 +110,11 @@
         this.description = description;
     }
 
-    public Map<TemplateType, Template> getTemplates() {
+    public Map<XmlType, Template> getTemplates() {
         return templates;
     }
 
-    public void setTemplates(Map<TemplateType, Template> templates) {
+    public void setTemplates(Map<XmlType, Template> templates) {
         this.templates = templates;
     }
 

Modified: trunk/src/model/org/jboss/blog/model/Template.java
===================================================================
--- trunk/src/model/org/jboss/blog/model/Template.java	2007-12-06 17:08:39 UTC (rev 157)
+++ trunk/src/model/org/jboss/blog/model/Template.java	2007-12-10 11:04:38 UTC (rev 158)
@@ -26,7 +26,7 @@
     private String text;
 
     @Enumerated
-    private TemplateType type;
+    private XmlType type;
 
     @Temporal(value = TemporalType.TIMESTAMP)
     private Date lastModified;
@@ -55,11 +55,11 @@
         this.text = text;
     }
 
-    public TemplateType getType() {
+    public XmlType getType() {
         return type;
     }
 
-    public void setType(TemplateType type) {
+    public void setType(XmlType type) {
         this.type = type;
     }
 

Copied: trunk/src/model/org/jboss/blog/model/XmlType.java (from rev 149, trunk/src/model/org/jboss/blog/model/TemplateType.java)
===================================================================
--- trunk/src/model/org/jboss/blog/model/XmlType.java	                        (rev 0)
+++ trunk/src/model/org/jboss/blog/model/XmlType.java	2007-12-10 11:04:38 UTC (rev 158)
@@ -0,0 +1,29 @@
+package org.jboss.blog.model;
+
+import org.jboss.blog.session.xml.velocity.tools.TemplateTools;
+import org.jboss.blog.session.xml.velocity.tools.Rss2TemplateTools;
+import org.jboss.blog.session.xml.velocity.tools.AtomTemplateTools;
+
+/**
+ * @author <a href="mailto:adam at warski.org">Adam Warski</a>
+ */
+public enum XmlType {
+    ATOM("application/atom+xml", AtomTemplateTools.class),
+    RSS2("application/xhtml+xml", Rss2TemplateTools.class);
+
+    private final String contentType;
+    private final Class<? extends TemplateTools> tools;
+
+    public String contentType() {
+        return contentType;
+    }
+
+    public Class<? extends TemplateTools> tools() {
+        return tools;
+    }
+
+    XmlType(String contentType, Class<? extends TemplateTools> tools) {
+        this.contentType = contentType;
+        this.tools = tools;
+    }
+}

Modified: trunk/view/view/feed.xhtml
===================================================================
--- trunk/view/view/feed.xhtml	2007-12-06 17:08:39 UTC (rev 157)
+++ trunk/view/view/feed.xhtml	2007-12-10 11:04:38 UTC (rev 158)
@@ -12,15 +12,10 @@
         <h1>View feed: #{feedView.feed.title}</h1>
 
         <p>
-            Feeds: <br />
+            Feeds:
             <s:link view="/feeds.xhtml" value="Atom" propagation="none">
                 <f:param name="type" value="atom" />
                 <f:param name="name" value="#{feedView.feed.name}" />
-            </s:link> <br />
-
-            <s:link view="/feeds.xhtml" value="Rss2" propagation="none">
-                <f:param name="type" value="rss2" />
-                <f:param name="name" value="#{feedView.feed.name}" />
             </s:link>
         </p>
 




More information about the jboss-cvs-commits mailing list