[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