[jboss-cvs] JBossBlog SVN: r148 - in trunk: resources/WEB-INF and 6 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Dec 3 09:26:16 EST 2007
Author: adamw
Date: 2007-12-03 09:26:16 -0500 (Mon, 03 Dec 2007)
New Revision: 148
Added:
trunk/resources/templates/
trunk/resources/templates/rss2_standard.vm
trunk/src/action/org/jboss/blog/session/template/tools/
trunk/src/action/org/jboss/blog/session/template/tools/AtomTemplateTools.java
trunk/src/action/org/jboss/blog/session/template/tools/Rss2TemplateTools.java
trunk/src/action/org/jboss/blog/session/template/tools/TemplateTools.java
Modified:
trunk/resources/WEB-INF/components.xml
trunk/resources/WEB-INF/web.xml
trunk/src/action/org/jboss/blog/session/template/VelocityTemplateService.java
trunk/src/model/org/jboss/blog/model/TemplateType.java
trunk/view/manage/template/template_mod.xhtml
trunk/view/view/feed.xhtml
Log:
Modified: trunk/resources/WEB-INF/components.xml
===================================================================
--- trunk/resources/WEB-INF/components.xml 2007-12-03 13:29:10 UTC (rev 147)
+++ trunk/resources/WEB-INF/components.xml 2007-12-03 14:26:16 UTC (rev 148)
@@ -50,7 +50,7 @@
<async:quartz-dispatcher />
- <web:context-filter url-pattern="/feeds/*"/>
+ <web:context-filter url-pattern="/feeds.seam"/>
<!-- For use with jBPM pageflow or process management -->
<!--
Modified: trunk/resources/WEB-INF/web.xml
===================================================================
--- trunk/resources/WEB-INF/web.xml 2007-12-03 13:29:10 UTC (rev 147)
+++ trunk/resources/WEB-INF/web.xml 2007-12-03 14:26:16 UTC (rev 148)
@@ -114,6 +114,6 @@
<servlet-mapping>
<servlet-name>Feeds Servlet</servlet-name>
- <url-pattern>/feeds/*</url-pattern>
+ <url-pattern>/feeds.seam</url-pattern>
</servlet-mapping>
</web-app>
Added: trunk/resources/templates/rss2_standard.vm
===================================================================
--- trunk/resources/templates/rss2_standard.vm (rev 0)
+++ trunk/resources/templates/rss2_standard.vm 2007-12-03 14:26:16 UTC (rev 148)
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<rss version="2.0">
+ <channel>
+ <title>$escape.all($feed.title)</title>
+ <link>$feed.link</link>
+ <description>$escape.all($description)</description>
+ <language>en</language>
+ <docs>http://blogs.law.harvard.edu/tech/rss</docs>
+ <generator>JBoss Feeds</generator>
+ <managingEditor>$feed.author</managingEditor>
+ <webMaster>$feed.author</webMaster>
+ <pubDate>$rssDateFormat.format($nodesYoungest)</pubDate>
+
+ #foreach($post in $posts)
+ #set($nodeLink="$baseServerAddress/$linkBase/$node.getName()")
+ <item>
+ <title>$escape.all($post.title)</title>
+ <link>$post.link</link>
+ <description>$escape.all($posts.content)</description>
+ <guid>$post.link</guid>
+ <pubDate>$tools.formatDate($post.published)</pubDate>
+ </item>
+ #end
+
+ </channel>
+</rss>
\ No newline at end of file
Modified: trunk/src/action/org/jboss/blog/session/template/VelocityTemplateService.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/template/VelocityTemplateService.java 2007-12-03 13:29:10 UTC (rev 147)
+++ trunk/src/action/org/jboss/blog/session/template/VelocityTemplateService.java 2007-12-03 14:26:16 UTC (rev 148)
@@ -56,6 +56,11 @@
}
Feed feed = feedsService.getFeed(feedName);
+
+ if (feed.getTemplates().get(templateType) == null) {
+ throw new InvalidTemplateTypeException();
+ }
+
List<Post> posts = feedsService.getPosts(feed, 0, feed.getMaxPostsInFeed());
response.setContentType(templateType.contentType());
@@ -63,8 +68,9 @@
VelocityContext context = new VelocityContext();
context.put("posts", posts);
context.put("feed", feed);
+ context.put("tools", templateType.tools().newInstance());
- Template template = engine.getTemplate("standard_rss2");
+ Template template = engine.getTemplate(feed.getTemplates().get(templateType).getName());
template.merge(context, response.getWriter());
}
Added: trunk/src/action/org/jboss/blog/session/template/tools/AtomTemplateTools.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/template/tools/AtomTemplateTools.java (rev 0)
+++ trunk/src/action/org/jboss/blog/session/template/tools/AtomTemplateTools.java 2007-12-03 14:26:16 UTC (rev 148)
@@ -0,0 +1,16 @@
+package org.jboss.blog.session.template.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/template/tools/Rss2TemplateTools.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/template/tools/Rss2TemplateTools.java (rev 0)
+++ trunk/src/action/org/jboss/blog/session/template/tools/Rss2TemplateTools.java 2007-12-03 14:26:16 UTC (rev 148)
@@ -0,0 +1,13 @@
+package org.jboss.blog.session.template.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/template/tools/TemplateTools.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/template/tools/TemplateTools.java (rev 0)
+++ trunk/src/action/org/jboss/blog/session/template/tools/TemplateTools.java 2007-12-03 14:26:16 UTC (rev 148)
@@ -0,0 +1,13 @@
+package org.jboss.blog.session.template.tools;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+/**
+ * @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);
+ }
+}
Modified: trunk/src/model/org/jboss/blog/model/TemplateType.java
===================================================================
--- trunk/src/model/org/jboss/blog/model/TemplateType.java 2007-12-03 13:29:10 UTC (rev 147)
+++ trunk/src/model/org/jboss/blog/model/TemplateType.java 2007-12-03 14:26:16 UTC (rev 148)
@@ -1,19 +1,29 @@
package org.jboss.blog.model;
+import org.jboss.blog.session.template.tools.TemplateTools;
+import org.jboss.blog.session.template.tools.Rss2TemplateTools;
+import org.jboss.blog.session.template.tools.AtomTemplateTools;
+
/**
* @author <a href="mailto:adam at warski.org">Adam Warski</a>
*/
public enum TemplateType {
- ATOM("application/atom+xml"),
- RSS2("application/xhtml+xml");
+ 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;
}
- TemplateType(String contentType) {
+ public Class<?> tools() {
+ return tools;
+ }
+
+ TemplateType(String contentType, Class<? extends TemplateTools> tools) {
this.contentType = contentType;
+ this.tools = tools;
}
}
Modified: trunk/view/manage/template/template_mod.xhtml
===================================================================
--- trunk/view/manage/template/template_mod.xhtml 2007-12-03 13:29:10 UTC (rev 147)
+++ trunk/view/manage/template/template_mod.xhtml 2007-12-03 14:26:16 UTC (rev 148)
@@ -40,7 +40,7 @@
<h:outputLabel for="text"><span class="required">*</span> Text:</h:outputLabel>
<h:panelGroup>
- <h:inputTextarea id="text" value="#{templateMod.template.text}" rows="8" cols="64" required="true">
+ <h:inputTextarea id="text" value="#{templateMod.template.text}" rows="32" cols="128" required="true">
<a:support event="onblur" reRender="textMessage" ajaxSingle="true" bypassUpdates="true"/>
<s:validate />
</h:inputTextarea>
Modified: trunk/view/view/feed.xhtml
===================================================================
--- trunk/view/view/feed.xhtml 2007-12-03 13:29:10 UTC (rev 147)
+++ trunk/view/view/feed.xhtml 2007-12-03 14:26:16 UTC (rev 148)
@@ -12,6 +12,19 @@
<h1>View feed: #{feedView.feed.title}</h1>
<p>
+ Feeds: <br />
+ <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>
+
+ <p>
<s:link view="/view/feed.xhtml" value="« Next" rendered="#{feedView.showNext}"
propagation="none">
<f:param name="from" value="#{feedView.nextFrom}" />
More information about the jboss-cvs-commits
mailing list