[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&amp;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&amp;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&lt;org.jboss.blog.model.Post&gt; -
+                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