[jboss-cvs] JBossBlog SVN: r284 - in trunk: resources-portlet/WEB-INF and 9 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Apr 7 08:04:47 EDT 2008


Author: adamw
Date: 2008-04-07 08:04:47 -0400 (Mon, 07 Apr 2008)
New Revision: 284

Removed:
   trunk/src/action/org/jboss/blog/session/cache/FeedsServiceGetPostsInterceptor.java
   trunk/src/action/org/jboss/blog/session/cache/XmlServiceWriteXmlInterceptor.java
Modified:
   trunk/build.properties
   trunk/resources-portlet/WEB-INF/portlet.xml
   trunk/src/action/org/jboss/blog/session/feed/FeedsServiceImpl.java
   trunk/src/action/org/jboss/blog/session/feed/posts/DatabaseFeedPosts.java
   trunk/src/action/org/jboss/blog/session/group/GroupModBean.java
   trunk/src/action/org/jboss/blog/session/group/GroupsServiceImpl.java
   trunk/src/action/org/jboss/blog/session/security/filtering/HighlightsSecurity.java
   trunk/src/action/org/jboss/blog/session/view/LinkServiceImpl.java
   trunk/src/action/org/jboss/blog/session/xml/XmlService.java
   trunk/src/action/org/jboss/blog/session/xml/velocity/VelocityXmlService.java
   trunk/src/services/org/jboss/blog/service/FeedsService.java
   trunk/src/services/org/jboss/blog/service/GroupsService.java
   trunk/src/services/org/jboss/blog/service/LinkService.java
Log:


Modified: trunk/build.properties
===================================================================
--- trunk/build.properties	2008-04-03 10:45:31 UTC (rev 283)
+++ trunk/build.properties	2008-04-07 12:04:47 UTC (rev 284)
@@ -1,6 +1,6 @@
 #jboss.home = /Users/adamwarski/portal-extensions/feeds/binaries
-jboss.home = /Users/adamwarski/jboss/jboss-4.2
-#jboss.home = /Users/adamwarski/jboss/jboss-4.0.5
-profile = dev
-#profile = prod
+#jboss.home = /Users/adamwarski/jboss/jboss-4.2
+jboss.home = /Users/adamwarski/jboss/jboss-4.0.5
+#profile = dev
+profile = prod
 #jboss.home = /Users/adamwarski/jboss/jboss-design
\ No newline at end of file

Modified: trunk/resources-portlet/WEB-INF/portlet.xml
===================================================================
--- trunk/resources-portlet/WEB-INF/portlet.xml	2008-04-03 10:45:31 UTC (rev 283)
+++ trunk/resources-portlet/WEB-INF/portlet.xml	2008-04-07 12:04:47 UTC (rev 284)
@@ -12,7 +12,7 @@
             <portlet-mode>VIEW</portlet-mode>
         </supports>
         <supported-locale>en</supported-locale>
-        <expiration-cache>0</expiration-cache>
+        <expiration-cache>60</expiration-cache>
         <portlet-info>
             <title>JBoss Blog Portlet</title>
         </portlet-info>

Deleted: trunk/src/action/org/jboss/blog/session/cache/FeedsServiceGetPostsInterceptor.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/cache/FeedsServiceGetPostsInterceptor.java	2008-04-03 10:45:31 UTC (rev 283)
+++ trunk/src/action/org/jboss/blog/session/cache/FeedsServiceGetPostsInterceptor.java	2008-04-07 12:04:47 UTC (rev 284)
@@ -1,39 +0,0 @@
-package org.jboss.blog.session.cache;
-
-import org.jboss.seam.annotations.intercept.Interceptor;
-import org.jboss.seam.Component;
-import org.jboss.blog.model.feed.Feed;
-import org.jboss.blog.model.RestrictedPost;
-
-import javax.interceptor.AroundInvoke;
-import javax.interceptor.InvocationContext;
-import java.util.List;
-
-/**
- * @author <a href="mailto:adam at warski.org">Adam Warski</a>
- */
- at Interceptor(stateless = true)
-public class FeedsServiceGetPostsInterceptor {
-    @AroundInvoke
-    public Object cachePosts(InvocationContext invocation) throws Exception {
-        CacheManager cacheManager = (CacheManager) Component.getInstance("cacheManager");
-
-        Feed feed = (Feed) invocation.getParameters()[0];
-        Integer from = (Integer) invocation.getParameters()[1];
-        Integer to = (Integer) invocation.getParameters()[2];
-
-        List<? extends RestrictedPost> inCache = cacheManager.getFeedPosts(feed.getName(), from, to);
-
-        if (inCache != null) {
-            return inCache;
-        } else {
-            //noinspection unchecked
-            List<? extends RestrictedPost> posts = (List<? extends RestrictedPost>) invocation.proceed();
-            if (posts != null) {
-                cacheManager.putFeedPosts(feed, posts, from, to);
-            }
-
-            return posts;
-        }
-    }
-}

Deleted: trunk/src/action/org/jboss/blog/session/cache/XmlServiceWriteXmlInterceptor.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/cache/XmlServiceWriteXmlInterceptor.java	2008-04-03 10:45:31 UTC (rev 283)
+++ trunk/src/action/org/jboss/blog/session/cache/XmlServiceWriteXmlInterceptor.java	2008-04-07 12:04:47 UTC (rev 284)
@@ -1,47 +0,0 @@
-package org.jboss.blog.session.cache;
-
-import org.jboss.seam.annotations.intercept.Interceptor;
-import org.jboss.seam.Component;
-import org.jboss.blog.session.xml.content.InMemoryContentResponse;
-import org.jboss.blog.session.xml.content.ContentResponse;
-import org.jboss.blog.tools.GeneralTools;
-
-import javax.interceptor.AroundInvoke;
-import javax.interceptor.InvocationContext;
-import java.io.CharArrayWriter;
-import java.io.CharArrayReader;
-
-/**
- * @author <a href="mailto:adam at warski.org">Adam Warski</a>
- */
- at Interceptor(stateless = true)
-public class XmlServiceWriteXmlInterceptor {
-    @AroundInvoke
-    public Object cacheFeeds(InvocationContext invocation) throws Exception {
-        CacheManager cacheManager = (CacheManager) Component.getInstance("cacheManager");
-
-        String feedName = (String) invocation.getParameters()[0];
-        String feedType = (String) invocation.getParameters()[1];
-        ContentResponse response = (ContentResponse) invocation.getParameters()[2];
-
-        InMemoryContentResponse inCache = cacheManager.getFeedXml(feedName, feedType);
-
-        if (inCache == null) {
-            inCache = new InMemoryContentResponse();
-
-            //noinspection unchecked
-            invocation.setParameters(new Object[] { feedName, feedType, inCache });
-            invocation.proceed();
-
-            cacheManager.putFeedXml(feedName, feedType, inCache);
-        }
-
-        response.setCharacterEncoding(inCache.getCharacterEncoding());
-        response.setContentType(inCache.getContentType());
-              
-        GeneralTools.transfer(new CharArrayReader(((CharArrayWriter) inCache.getWriter()).toCharArray()),
-                response.getWriter());
-
-        return inCache;
-    }
-}

Modified: trunk/src/action/org/jboss/blog/session/feed/FeedsServiceImpl.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/feed/FeedsServiceImpl.java	2008-04-03 10:45:31 UTC (rev 283)
+++ trunk/src/action/org/jboss/blog/session/feed/FeedsServiceImpl.java	2008-04-07 12:04:47 UTC (rev 284)
@@ -9,26 +9,21 @@
 import org.jboss.blog.service.PostNotFoundException;
 import org.jboss.blog.session.feed.type.FeedTypes;
 import org.jboss.blog.session.feed.posts.DatabaseFeedPosts;
-import org.jboss.blog.session.cache.FeedsServiceGetPostsInterceptor;
-import org.jboss.seam.annotations.AutoCreate;
-import org.jboss.seam.annotations.In;
-import org.jboss.seam.annotations.Name;
-import org.jboss.seam.annotations.Logger;
+import org.jboss.blog.session.cache.CacheManager;
+import org.jboss.seam.annotations.*;
 import org.jboss.seam.log.Log;
+import org.jboss.seam.ScopeType;
 
-import javax.ejb.Remove;
-import javax.ejb.Stateless;
 import javax.persistence.EntityManager;
 import javax.persistence.NoResultException;
-import javax.interceptor.Interceptors;
 import java.util.List;
 import java.util.ArrayList;
 
 /**
  * @author <a href="mailto:adam at warski.org">Adam Warski</a>
  */
- at Stateless
 @Name("feedsService")
+ at Scope(ScopeType.STATELESS)
 @AutoCreate
 public class FeedsServiceImpl implements FeedsService {
     @In
@@ -40,6 +35,9 @@
     @In
     private DatabaseFeedPosts databaseFeedPosts;
 
+    @In
+    private CacheManager cacheManager;
+
     @Logger
     private Log log;
 
@@ -73,23 +71,34 @@
         }
     }
 
-    @Interceptors(FeedsServiceGetPostsInterceptor.class)
     public List<? extends RestrictedPost> getPosts(RestrictedFeed feed, int from, int to) {
-        log.debug("Reading feed '#0' posts, from #1 to #2.", feed.getName(), from, to);
-        try {
-            return feedTypes.getFeedDao(feed).getPosts(from, to);
-        } catch (InvalidFeedTypeException e) {
-            log.error(e);
-            return new ArrayList<RestrictedPost>();
+        List<? extends RestrictedPost> inCache = cacheManager.getFeedPosts(feed.getName(), from, to);
+
+        if (inCache != null) {
+            return inCache;
+        } else {
+            //noinspection unchecked
+            List<? extends RestrictedPost> posts;
+
+            try {
+                log.debug("Reading feed '#0' posts from the DB, from #1 to #2.", feed.getName(), from, to);
+                posts = feedTypes.getFeedDao(feed).getPosts(from, to);
+            } catch (InvalidFeedTypeException e) {
+                log.error(e);
+                return new ArrayList<RestrictedPost>();
+            }
+
+            if (posts != null) {
+                cacheManager.putFeedPosts(feed, posts, from, to);
+            }
+
+            return posts;
         }
     }
 
     public List<? extends RestrictedPost> getPosts(int from, int to) {
-        log.debug("Reading posts from the DB, from #01 to #1.", from, to);
+        log.debug("Reading posts from the DB, from #0 to #1.", from, to);
 
         return databaseFeedPosts.getPosts(from, to);
     }
-
-    @Remove
-    public void remove() { }
 }

Modified: trunk/src/action/org/jboss/blog/session/feed/posts/DatabaseFeedPosts.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/feed/posts/DatabaseFeedPosts.java	2008-04-03 10:45:31 UTC (rev 283)
+++ trunk/src/action/org/jboss/blog/session/feed/posts/DatabaseFeedPosts.java	2008-04-07 12:04:47 UTC (rev 284)
@@ -33,6 +33,7 @@
     public List<? extends RestrictedPost> getPosts(int from, int to) {
         return (List<Post>) entityManager.createQuery(
                 "select post from Post post order by post.published desc, post.link")
-                .setMaxResults(to-from).setFirstResult(from).getResultList();
+                .setMaxResults(to-from).setFirstResult(from)
+                .setHint("org.hibernate.cacheable", Boolean.TRUE).getResultList();
     }
 }

Modified: trunk/src/action/org/jboss/blog/session/group/GroupModBean.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/group/GroupModBean.java	2008-04-03 10:45:31 UTC (rev 283)
+++ trunk/src/action/org/jboss/blog/session/group/GroupModBean.java	2008-04-07 12:04:47 UTC (rev 284)
@@ -13,13 +13,14 @@
 
 import javax.persistence.EntityManager;
 import javax.faces.application.FacesMessage;
+import java.io.Serializable;
 
 /**
  * @author <a href="mailto:adam at warski.org">Adam Warski</a>
  */
 @Name("groupMod")
 @Scope(ScopeType.CONVERSATION)
-public class GroupModBean {
+public class GroupModBean implements Serializable {
     @In
     private EntityManager entityManager;
 

Modified: trunk/src/action/org/jboss/blog/session/group/GroupsServiceImpl.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/group/GroupsServiceImpl.java	2008-04-03 10:45:31 UTC (rev 283)
+++ trunk/src/action/org/jboss/blog/session/group/GroupsServiceImpl.java	2008-04-07 12:04:47 UTC (rev 284)
@@ -6,16 +6,16 @@
 import org.jboss.seam.annotations.Name;
 import org.jboss.seam.annotations.AutoCreate;
 import org.jboss.seam.annotations.In;
+import org.jboss.seam.annotations.Scope;
+import org.jboss.seam.ScopeType;
 
 import javax.persistence.EntityManager;
-import javax.ejb.Stateless;
-import javax.ejb.Remove;
 import java.util.List;
 
 /**
  * @author <a href="mailto:adam at warski.org">Adam Warski</a>
  */
- at Stateless
+ at Scope(ScopeType.STATELESS)
 @Name("groupsService")
 @AutoCreate
 public class GroupsServiceImpl implements GroupsService {
@@ -41,7 +41,4 @@
                 .createQuery("select feed from Feed feed where feed.group = ?1 and not (feed.accepted = true)")
                 .setParameter(1, group).setHint("org.hibernate.cacheable", Boolean.TRUE).getResultList();
     }
-
-    @Remove
-    public void remove() { }
 }

Modified: trunk/src/action/org/jboss/blog/session/security/filtering/HighlightsSecurity.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/security/filtering/HighlightsSecurity.java	2008-04-03 10:45:31 UTC (rev 283)
+++ trunk/src/action/org/jboss/blog/session/security/filtering/HighlightsSecurity.java	2008-04-07 12:04:47 UTC (rev 284)
@@ -8,6 +8,7 @@
 import javax.persistence.EntityManager;
 import java.util.List;
 import java.util.ArrayList;
+import java.io.Serializable;
 
 /**
  * @author <a href="mailto:adam at warski.org">Adam Warski</a>
@@ -15,7 +16,7 @@
 @Name("highlightsSecurity")
 @Scope(ScopeType.CONVERSATION)
 @AutoCreate
-public class HighlightsSecurity {
+public class HighlightsSecurity implements Serializable {
     @In
     private EntityManager entityManager;
 

Modified: trunk/src/action/org/jboss/blog/session/view/LinkServiceImpl.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/view/LinkServiceImpl.java	2008-04-03 10:45:31 UTC (rev 283)
+++ trunk/src/action/org/jboss/blog/session/view/LinkServiceImpl.java	2008-04-07 12:04:47 UTC (rev 284)
@@ -6,15 +6,14 @@
 import org.jboss.blog.service.LinkService;
 import org.jboss.seam.annotations.AutoCreate;
 import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Scope;
+import org.jboss.seam.ScopeType;
 
-import javax.ejb.Remove;
-import javax.ejb.Stateless;
-
 /**
  * @author <a href="mailto:adam at warski.org">Adam Warski</a>
  */
 @AutoCreate
- at Stateless
+ at Scope(ScopeType.STATELESS)
 @Name("linkService")
 public class LinkServiceImpl implements LinkService {
     private String serverAddress;
@@ -47,7 +46,4 @@
     public String generatePostLink(Post post) {
         return serverAddress + "/" + contextName + "/post/" + post.getTitleAsId();
     }
-
-    @Remove
-    public void remove() { }
 }

Modified: trunk/src/action/org/jboss/blog/session/xml/XmlService.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/xml/XmlService.java	2008-04-03 10:45:31 UTC (rev 283)
+++ trunk/src/action/org/jboss/blog/session/xml/XmlService.java	2008-04-07 12:04:47 UTC (rev 284)
@@ -2,15 +2,10 @@
 
 import org.jboss.blog.session.xml.content.ContentResponse;
 
-import javax.ejb.Local;
-
 /**
  * @author <a href="mailto:adam at warski.org">Adam Warski</a>
  */
- at Local
 public interface XmlService {
     void writeXml(String feedType, String feedName, ContentResponse response)
             throws Exception;
-
-    void remove();
 }

Modified: trunk/src/action/org/jboss/blog/session/xml/velocity/VelocityXmlService.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/xml/velocity/VelocityXmlService.java	2008-04-03 10:45:31 UTC (rev 283)
+++ trunk/src/action/org/jboss/blog/session/xml/velocity/VelocityXmlService.java	2008-04-07 12:04:47 UTC (rev 284)
@@ -9,35 +9,37 @@
 import org.jboss.blog.service.FeedsService;
 import org.jboss.blog.session.xml.XmlService;
 import org.jboss.blog.session.xml.content.ContentResponse;
+import org.jboss.blog.session.xml.content.InMemoryContentResponse;
 import org.jboss.blog.session.xml.velocity.tools.XmlTools;
 import org.jboss.blog.session.xml.velocity.tools.AtomXmlTools;
 import org.jboss.blog.session.xml.velocity.tools.Rss2XmlTools;
-import org.jboss.blog.session.cache.XmlServiceWriteXmlInterceptor;
-import org.jboss.seam.annotations.AutoCreate;
-import org.jboss.seam.annotations.In;
-import org.jboss.seam.annotations.Name;
-import org.jboss.seam.annotations.Logger;
+import org.jboss.blog.session.cache.CacheManager;
+import org.jboss.blog.tools.GeneralTools;
+import org.jboss.seam.annotations.*;
 import org.jboss.seam.log.Log;
+import org.jboss.seam.ScopeType;
 
-import javax.ejb.Remove;
-import javax.ejb.Stateless;
 import javax.annotation.PostConstruct;
-import javax.interceptor.Interceptors;
 import java.util.List;
 import java.util.Properties;
 import java.util.Map;
 import java.util.HashMap;
+import java.io.CharArrayReader;
+import java.io.CharArrayWriter;
 
 /**
  * @author <a href="mailto:adam at warski.org">Adam Warski</a>
  */
 @Name("xmlService")
- at Stateless
+ at Scope(ScopeType.STATELESS)
 @AutoCreate
 public class VelocityXmlService implements XmlService {
     @In
     private FeedsService feedsService;
 
+    @In
+    private CacheManager cacheManager;
+
     @Logger
     private Log log;
 
@@ -54,46 +56,56 @@
         try {
             Properties props = new Properties();
             props.load(this.getClass().getResourceAsStream("/velocity.properties"));
-        
+
             engine = new VelocityEngine(props);
         } catch (Exception e) {
             throw new RuntimeException(e);
         }
     }
 
-    @Interceptors(XmlServiceWriteXmlInterceptor.class)
     public void writeXml(String feedType, String feedName, ContentResponse response)
             throws Exception {
-        log.debug("Generating xml for feed '#0' of type: #1.", feedName, feedType);
+        InMemoryContentResponse inCache = cacheManager.getFeedXml(feedName, feedType);
 
-        XmlType xmlType;
-        try {
-            xmlType = XmlType.valueOf(feedType == null ? "" : feedType.toUpperCase());
-        } catch (IllegalArgumentException e) {
-            throw new InvalidTemplateTypeException(e);
-        }
+        if (inCache == null) {
+            inCache = new InMemoryContentResponse();
 
-        Feed feed = feedsService.getFeed(feedName);
+            log.debug("Generating xml for feed '#0' of type: #1.", feedName, feedType);
 
-        if (feed.getTemplates().get(xmlType) == null) {
-            throw new InvalidTemplateTypeException();
-        }
+            XmlType xmlType;
+            try {
+                xmlType = XmlType.valueOf(feedType == null ? "" : feedType.toUpperCase());
+            } catch (IllegalArgumentException e) {
+                throw new InvalidTemplateTypeException(e);
+            }
 
-        List<? extends RestrictedPost> posts = feedsService.getPosts(feed, 0, feed.getMaxPostsInFeed());
+            Feed feed = feedsService.getFeed(feedName);
 
-        response.setContentType(xmlType.contentType());
-        response.setCharacterEncoding("utf-8");
+            if (feed.getTemplates().get(xmlType) == null) {
+                throw new InvalidTemplateTypeException();
+            }
 
-        VelocityContext context = new VelocityContext();
-        context.put("posts", posts);
-        context.put("feed", feed);
-        context.put("tools", xmlTools.get(xmlType));
-        context.put("xmlType", xmlType);
+            List<? extends RestrictedPost> posts = feedsService.getPosts(feed, 0, feed.getMaxPostsInFeed());
 
-        Template template = engine.getTemplate(feed.getTemplates().get(xmlType).getName());
-        template.merge(context, response.getWriter());
+            inCache.setContentType(xmlType.contentType());
+            inCache.setCharacterEncoding("utf-8");
+
+            VelocityContext context = new VelocityContext();
+            context.put("posts", posts);
+            context.put("feed", feed);
+            context.put("tools", xmlTools.get(xmlType));
+            context.put("xmlType", xmlType);
+
+            Template template = engine.getTemplate(feed.getTemplates().get(xmlType).getName());
+            template.merge(context, inCache.getWriter());
+
+            cacheManager.putFeedXml(feedName, feedType, inCache);
+        }
+
+        response.setCharacterEncoding(inCache.getCharacterEncoding());
+        response.setContentType(inCache.getContentType());
+
+        GeneralTools.transfer(new CharArrayReader(((CharArrayWriter) inCache.getWriter()).toCharArray()),
+                response.getWriter());
     }
-
-    @Remove
-    public void remove() { }
 }

Modified: trunk/src/services/org/jboss/blog/service/FeedsService.java
===================================================================
--- trunk/src/services/org/jboss/blog/service/FeedsService.java	2008-04-03 10:45:31 UTC (rev 283)
+++ trunk/src/services/org/jboss/blog/service/FeedsService.java	2008-04-07 12:04:47 UTC (rev 284)
@@ -3,16 +3,13 @@
 import org.jboss.blog.model.feed.Feed;
 import org.jboss.blog.model.feed.RestrictedFeed;
 import org.jboss.blog.model.Post;
-import org.jboss.blog.model.Group;
 import org.jboss.blog.model.RestrictedPost;
 
-import javax.ejb.Local;
 import java.util.List;
 
 /**
  * @author <a href="mailto:adam at warski.org">Adam Warski</a>
  */
- at Local
 public interface FeedsService {
     Post getPost(String titleAsId) throws PostNotFoundException;
 
@@ -20,7 +17,5 @@
 
     List<? extends RestrictedPost> getPosts(RestrictedFeed feed, int from, int to);
 
-    void remove();
-
     List<? extends RestrictedPost> getPosts(int from, int to);
 }

Modified: trunk/src/services/org/jboss/blog/service/GroupsService.java
===================================================================
--- trunk/src/services/org/jboss/blog/service/GroupsService.java	2008-04-03 10:45:31 UTC (rev 283)
+++ trunk/src/services/org/jboss/blog/service/GroupsService.java	2008-04-07 12:04:47 UTC (rev 284)
@@ -3,19 +3,15 @@
 import org.jboss.blog.model.feed.Feed;
 import org.jboss.blog.model.Group;
 
-import javax.ejb.Local;
 import java.util.List;
 
 /**
  * @author <a href="mailto:adam at warski.org">Adam Warski</a>
  */
- at Local
 public interface GroupsService {
     List<Group> getAllGroups();
 
     List<Feed> acceptedFeeds(Group group);
 
     List<Feed> unacceptedFeeds(Group group);
-
-    void remove();
 }

Modified: trunk/src/services/org/jboss/blog/service/LinkService.java
===================================================================
--- trunk/src/services/org/jboss/blog/service/LinkService.java	2008-04-03 10:45:31 UTC (rev 283)
+++ trunk/src/services/org/jboss/blog/service/LinkService.java	2008-04-07 12:04:47 UTC (rev 284)
@@ -4,13 +4,9 @@
 import org.jboss.blog.model.XmlType;
 import org.jboss.blog.model.Post;
 
-import javax.ejb.Local;
-import javax.ejb.Remove;
-
 /**
  * @author <a href="mailto:adam at warski.org">Adam Warski</a>
  */
- at Local
 public interface LinkService {
     String getServerAddress();
 
@@ -25,7 +21,4 @@
     String generateFeedPageLink(Feed feed);
 
     String generatePostLink(Post post);
-
-    @Remove
-    void remove();
 }




More information about the jboss-cvs-commits mailing list