[jboss-cvs] JBossBlog SVN: r149 - in trunk: resources/META-INF and 7 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Dec 3 14:37:49 EST 2007
Author: adamw
Date: 2007-12-03 14:37:49 -0500 (Mon, 03 Dec 2007)
New Revision: 149
Added:
trunk/resources/templates/atom_standard.vm
trunk/src/action/org/jboss/blog/session/view/LinkServiceBean.java
Modified:
trunk/resources/META-INF/persistence-dev.xml
trunk/resources/META-INF/persistence-prod.xml
trunk/resources/WEB-INF/components.xml
trunk/resources/blog-dev-ds.xml
trunk/resources/blog-prod-ds.xml
trunk/resources/templates/rss2_standard.vm
trunk/src/action/org/jboss/blog/session/template/VelocityTemplateService.java
trunk/src/action/org/jboss/blog/session/template/tools/TemplateTools.java
trunk/src/model/org/jboss/blog/model/TemplateType.java
trunk/view/manage/template/template_mod.xhtml
Log:
Modified: trunk/resources/META-INF/persistence-dev.xml
===================================================================
--- trunk/resources/META-INF/persistence-dev.xml 2007-12-03 14:26:16 UTC (rev 148)
+++ trunk/resources/META-INF/persistence-dev.xml 2007-12-03 19:37:49 UTC (rev 149)
@@ -14,6 +14,8 @@
<property name="hibernate.show_sql" value="false"/>
<property name="hibernate.format_sql" value="true"/>
<property name="jboss.entity.manager.factory.jndi.name" value="java:/blogEntityManagerFactory"/>
+ <property name="hibernate.connection.useUnicode" value="true" />
+ <property name="hibernate.connection.characterEncoding" value="UTF-8" />
</properties>
</persistence-unit>
Modified: trunk/resources/META-INF/persistence-prod.xml
===================================================================
--- trunk/resources/META-INF/persistence-prod.xml 2007-12-03 14:26:16 UTC (rev 148)
+++ trunk/resources/META-INF/persistence-prod.xml 2007-12-03 19:37:49 UTC (rev 149)
@@ -13,6 +13,8 @@
<property name="hibernate.hbm2ddl.auto" value="validate"/>
<property name="hibernate.jdbc.batch_size" value="20"/>
<property name="jboss.entity.manager.factory.jndi.name" value="java:/blogEntityManagerFactory"/>
+ <property name="hibernate.connection.useUnicode" value="true" />
+ <property name="hibernate.connection.characterEncoding" value="UTF-8" />
</properties>
</persistence-unit>
Modified: trunk/resources/WEB-INF/components.xml
===================================================================
--- trunk/resources/WEB-INF/components.xml 2007-12-03 14:26:16 UTC (rev 148)
+++ trunk/resources/WEB-INF/components.xml 2007-12-03 19:37:49 UTC (rev 149)
@@ -52,6 +52,11 @@
<web:context-filter url-pattern="/feeds.seam"/>
+ <component name="linkService">
+ <property name="serverAddress">http://localhost:8080</property>
+ <property name="contextName">blog</property>
+ </component>
+
<!-- For use with jBPM pageflow or process management -->
<!--
<bpm:jbpm>
Modified: trunk/resources/blog-dev-ds.xml
===================================================================
--- trunk/resources/blog-dev-ds.xml 2007-12-03 14:26:16 UTC (rev 148)
+++ trunk/resources/blog-dev-ds.xml 2007-12-03 19:37:49 UTC (rev 149)
@@ -8,19 +8,19 @@
<local-tx-datasource>
<jndi-name>blogDatasource</jndi-name>
- <connection-url>jdbc:mysql:///blog</connection-url>
+ <connection-url>jdbc:mysql:///blog?useUnicode=true&characterEncoding=UTF-8</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<user-name>root</user-name>
<password></password>
-<!--
- <exception-sorter-class-name>
- org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter
- </exception-sorter-class-name>
- <metadata>
- <type-mapping>mySQL</type-mapping>
- </metadata>
--->
- </local-tx-datasource>
+<!--
+ <exception-sorter-class-name>
+ org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter
+ </exception-sorter-class-name>
+ <metadata>
+ <type-mapping>mySQL</type-mapping>
+ </metadata>
+-->
+ </local-tx-datasource>
</datasources>
Modified: trunk/resources/blog-prod-ds.xml
===================================================================
--- trunk/resources/blog-prod-ds.xml 2007-12-03 14:26:16 UTC (rev 148)
+++ trunk/resources/blog-prod-ds.xml 2007-12-03 19:37:49 UTC (rev 149)
@@ -8,19 +8,19 @@
<local-tx-datasource>
<jndi-name>blogDatasource</jndi-name>
- <connection-url>jdbc:mysql:///blog</connection-url>
+ <connection-url>jdbc:mysql:///blog?useUnicode=true&characterEncoding=UTF-8</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<user-name>root</user-name>
<password></password>
-<!--
- <exception-sorter-class-name>
- org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter
- </exception-sorter-class-name>
- <metadata>
- <type-mapping>mySQL</type-mapping>
- </metadata>
--->
- </local-tx-datasource>
+<!--
+ <exception-sorter-class-name>
+ org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter
+ </exception-sorter-class-name>
+ <metadata>
+ <type-mapping>mySQL</type-mapping>
+ </metadata>
+-->
+ </local-tx-datasource>
</datasources>
Added: trunk/resources/templates/atom_standard.vm
===================================================================
--- trunk/resources/templates/atom_standard.vm (rev 0)
+++ trunk/resources/templates/atom_standard.vm 2007-12-03 19:37:49 UTC (rev 149)
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom">
+ <id>$tools.feedLink($feed)</id>
+ <title><![CDATA[$feed.title]]></title>
+ <updated>$tools.formatDate($tools.feedPubDate($feed, $posts))</updated>
+ <author>
+ <name>$feed.author</name>
+ </author>
+ <link rel="alternate" type="text/html" href="$tools.feedPageLink($feed)"/>
+ <link rel="self" href="$tools.feedLink($feed, $templateType)"/>
+
+ #foreach($post in $posts)
+ <entry>
+ <id>$tools.postLink($post)</id>
+ <title><![CDATA[$post.title]]></title>
+ <link rel="alternate" type="text/html" href="$tools.postLink($post)"/>
+
+ <updated>$tools.formatDate($post.modified)</updated>
+ <published>$tools.formatDate($post.published)</published>
+
+ <content type="text/html" xml:lang="en">
+ <![CDATA[$post.content]]>
+ </content>
+ </entry>
+ #end
+</feed>
\ No newline at end of file
Modified: trunk/resources/templates/rss2_standard.vm
===================================================================
--- trunk/resources/templates/rss2_standard.vm 2007-12-03 14:26:16 UTC (rev 148)
+++ trunk/resources/templates/rss2_standard.vm 2007-12-03 19:37:49 UTC (rev 149)
@@ -1,24 +1,26 @@
-<?xml version="1.0"?>
-<rss version="2.0">
+<?xml version="1.0" encoding="UTF-8"?>
+<rss version="2.0"
+ xmlns:content="http://purl.org/rss/1.0/modules/content/"
+ xmlns:wfw="http://wellformedweb.org/CommentAPI/"
+ xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
- <title>$escape.all($feed.title)</title>
- <link>$feed.link</link>
- <description>$escape.all($description)</description>
+ <title>$feed.title</title>
+ <link>$tools.feedPageLink($feed)</link>
+ <description>$feed.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>
+ <pubDate>$tools.formatDate($tools.feedPubDate($feed, $posts))</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>
+ <title><![CDATA[$post.title]]></title>
+ <link>$tools.postLink($post)</link>
+ <description><![CDATA[$post.content]]></description>
+ <guid>$tools.postLink($post)</guid>
<pubDate>$tools.formatDate($post.published)</pubDate>
+ <dc:creator>$post.author</dc:creator>
</item>
#end
Modified: trunk/src/action/org/jboss/blog/session/template/VelocityTemplateService.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/template/VelocityTemplateService.java 2007-12-03 14:26:16 UTC (rev 148)
+++ trunk/src/action/org/jboss/blog/session/template/VelocityTemplateService.java 2007-12-03 19:37:49 UTC (rev 149)
@@ -64,11 +64,13 @@
List<Post> posts = feedsService.getPosts(feed, 0, feed.getMaxPostsInFeed());
response.setContentType(templateType.contentType());
+ response.setCharacterEncoding("utf-8");
VelocityContext context = new VelocityContext();
context.put("posts", posts);
context.put("feed", feed);
context.put("tools", templateType.tools().newInstance());
+ context.put("templateType", templateType);
Template template = engine.getTemplate(feed.getTemplates().get(templateType).getName());
template.merge(context, response.getWriter());
Modified: trunk/src/action/org/jboss/blog/session/template/tools/TemplateTools.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/template/tools/TemplateTools.java 2007-12-03 14:26:16 UTC (rev 148)
+++ trunk/src/action/org/jboss/blog/session/template/tools/TemplateTools.java 2007-12-03 19:37:49 UTC (rev 149)
@@ -1,7 +1,15 @@
package org.jboss.blog.session.template.tools;
+import org.jboss.blog.model.Feed;
+import org.jboss.blog.model.Post;
+import org.jboss.blog.model.TemplateType;
+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>
@@ -10,4 +18,31 @@
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, TemplateType type) {
+ return getLinkService().generateFeedLink(feed, type);
+ }
+
+ public String postLink(Post post) {
+ return getLinkService().generatePostLink(post);
+ }
}
Added: trunk/src/action/org/jboss/blog/session/view/LinkServiceBean.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/view/LinkServiceBean.java (rev 0)
+++ trunk/src/action/org/jboss/blog/session/view/LinkServiceBean.java 2007-12-03 19:37:49 UTC (rev 149)
@@ -0,0 +1,51 @@
+package org.jboss.blog.session.view;
+
+import org.jboss.blog.model.Feed;
+import org.jboss.blog.model.Post;
+import org.jboss.blog.model.TemplateType;
+import org.jboss.seam.ScopeType;
+import org.jboss.seam.annotations.AutoCreate;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Scope;
+
+import javax.ejb.Local;
+
+/**
+ * @author <a href="mailto:adam at warski.org">Adam Warski</a>
+ */
+ at Local
+ at AutoCreate
+ at Scope(ScopeType.STATELESS)
+ at Name("linkService")
+public class LinkServiceBean {
+ private String serverAddress;
+ private String contextName;
+
+ public String getServerAddress() {
+ return serverAddress;
+ }
+
+ public void setServerAddress(String serverAddress) {
+ this.serverAddress = serverAddress;
+ }
+
+ public String getContextName() {
+ return contextName;
+ }
+
+ public void setContextName(String contextName) {
+ this.contextName = contextName;
+ }
+
+ public String generateFeedLink(Feed feed, TemplateType type) {
+ return serverAddress + "/" + contextName + "/feeds.seam?type=" + type + "&name=" + feed.getName();
+ }
+
+ public String generateFeedPageLink(Feed feed) {
+ return serverAddress + "/" + contextName + "/view/feed.seam?name=" + feed.getName();
+ }
+
+ public String generatePostLink(Post post) {
+ return serverAddress + "/" + contextName + "/view/post.seam?post=" + post.getTitleAsId();
+ }
+}
Modified: trunk/src/model/org/jboss/blog/model/TemplateType.java
===================================================================
--- trunk/src/model/org/jboss/blog/model/TemplateType.java 2007-12-03 14:26:16 UTC (rev 148)
+++ trunk/src/model/org/jboss/blog/model/TemplateType.java 2007-12-03 19:37:49 UTC (rev 149)
@@ -18,7 +18,7 @@
return contentType;
}
- public Class<?> tools() {
+ public Class<? extends TemplateTools> tools() {
return tools;
}
Modified: trunk/view/manage/template/template_mod.xhtml
===================================================================
--- trunk/view/manage/template/template_mod.xhtml 2007-12-03 14:26:16 UTC (rev 148)
+++ trunk/view/manage/template/template_mod.xhtml 2007-12-03 19:37:49 UTC (rev 149)
@@ -58,4 +58,29 @@
</h:panelGroup>
</h:panelGrid>
</h:form>
+
+ <p>
+ When creating a template, the context contains the following variables:
+ </p>
+ <ul>
+ <li>$feed - the <code>org.jboss.blog.model.Feed</code> object, for which the feed is being generated</li>
+ <li>$posts - a list of <code>org.jboss.blog.model.Post</code> objects, which is the list of posts
+ for the feed</li>
+ <li>$templateType - the type of the template being generated (one of the enum values
+ <code>org.jboss.blog.model.TemplateType</code>)</li>
+ <li>$tools - a utility object containing the following functions:
+ <ul>
+ <li>$tools.formatDate(java.util.Date) - formats the date using a format appropriate for this
+ template type</li>
+ <li>$tools.feedPubDate(org.jboss.blog.model.Feed, java.util.List<org.jboss.blog.model.Post> -
+ generates the feed publish date, which is the published date of the newest post</li>
+ <li>$tools.feedPageLink(org.jboss.blog.model.Feed) - generates a link to the html version of the
+ given feed</li>
+ <li>$tools.feedLink(org.jboss.blog.model.Feed, org.jboss.blog.model.TemplateType) - generates
+ a link to a feed of the given type</li>
+ <li>$tools.postLink(org.jboss.blog.model.Post) - generates a link to the html version of the
+ given post</li>
+ </ul>
+ </li>
+ </ul>
</ui:composition>
More information about the jboss-cvs-commits
mailing list