[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