[jboss-svn-commits] JBL Code SVN: r7406 - in labs/jbossforums/trunk/forums/src: main/org/jboss/portlet/forums/impl main/org/jboss/portlet/forums/ui/view resources/portal-forums-war/views/forums
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sat Nov 4 22:04:23 EST 2006
Author: unibrew
Date: 2006-11-04 22:04:18 -0500 (Sat, 04 Nov 2006)
New Revision: 7406
Modified:
labs/jbossforums/trunk/forums/src/main/org/jboss/portlet/forums/impl/ForumsModuleImpl.java
labs/jbossforums/trunk/forums/src/main/org/jboss/portlet/forums/impl/TopicImpl.java
labs/jbossforums/trunk/forums/src/main/org/jboss/portlet/forums/ui/view/ViewForum.java
labs/jbossforums/trunk/forums/src/main/org/jboss/portlet/forums/ui/view/ViewJumpbox.java
labs/jbossforums/trunk/forums/src/resources/portal-forums-war/views/forums/viewforum_body.xhtml
Log:
[JBFORUMS-135] Performance tuning of ForumView and Jumpbox.
Modified: labs/jbossforums/trunk/forums/src/main/org/jboss/portlet/forums/impl/ForumsModuleImpl.java
===================================================================
--- labs/jbossforums/trunk/forums/src/main/org/jboss/portlet/forums/impl/ForumsModuleImpl.java 2006-11-05 02:49:22 UTC (rev 7405)
+++ labs/jbossforums/trunk/forums/src/main/org/jboss/portlet/forums/impl/ForumsModuleImpl.java 2006-11-05 03:04:18 UTC (rev 7406)
@@ -1165,7 +1165,15 @@
{
Session session = getSession();
Query query =
- session.createQuery("from PostImpl as p where p.topic = :topicId order by p.createDate desc");
+ // Old query considered as inefficient
+ //session.createQuery("from PostImpl as p where p.topic = :topicId order by p.createDate desc");
+
+ session.createQuery("select p " +
+ "from PostImpl as p " +
+ "join fetch p.poster " +
+ "where p.topic = :topicId " +
+ "AND p.createDate = :lastPostDate ");
+ query.setDate("lastPostDate", topic.getLastPostDate());
query.setString("topicId", "" + topic.getId());
query.setFirstResult(0);
query.setMaxResults(1);
Modified: labs/jbossforums/trunk/forums/src/main/org/jboss/portlet/forums/impl/TopicImpl.java
===================================================================
--- labs/jbossforums/trunk/forums/src/main/org/jboss/portlet/forums/impl/TopicImpl.java 2006-11-05 02:49:22 UTC (rev 7405)
+++ labs/jbossforums/trunk/forums/src/main/org/jboss/portlet/forums/impl/TopicImpl.java 2006-11-05 03:04:18 UTC (rev 7406)
@@ -32,7 +32,7 @@
private Forum forum;
private int viewCount;
//private Date date;
- //private int replies;
+ private int replies;
//private Post firstPost;
//private Post lastPost;
//this field is cached but was left as it's easier to sort topics with HQL having such column
@@ -187,8 +187,8 @@
public int getReplies()
{
- return getPosts().size() - 1;
- //return replies;
+ //return getPosts().size() - 1;
+ return replies;
}
/**
@@ -198,7 +198,7 @@
*/
public void setReplies(int replies)
{
- //this.replies = replies;
+ this.replies = replies;
}
//TODO: Can be optimized
@@ -209,17 +209,13 @@
*/
public Post getFirstPost()
{
- //return firstPost;
- //Hibernate.initialize(posts);
- Iterator i = getPosts().iterator();
- if (i.hasNext())
- {
- return (Post)i.next();
- }
- else
- {
- return null;
- }
+ //return firstPost;
+ //Hibernate.initialize(posts);
+ if (posts == null || (posts.size() == 0))
+ {
+ return null;
+ }
+ return (Post)posts.get(0);
}
/**
Modified: labs/jbossforums/trunk/forums/src/main/org/jboss/portlet/forums/ui/view/ViewForum.java
===================================================================
--- labs/jbossforums/trunk/forums/src/main/org/jboss/portlet/forums/ui/view/ViewForum.java 2006-11-05 02:49:22 UTC (rev 7405)
+++ labs/jbossforums/trunk/forums/src/main/org/jboss/portlet/forums/ui/view/ViewForum.java 2006-11-05 03:04:18 UTC (rev 7406)
@@ -289,7 +289,6 @@
{
//setup the business objects like the forum, topics etc that will be displayed
this.forum = BaseController.getForumsModule().findForumById(new Integer(forumId));
- List allTopics = this.forum.getTopics();
Object[] topicObjects = findTopics(forum,
Constants.POST_NORMAL,
-1,
Modified: labs/jbossforums/trunk/forums/src/main/org/jboss/portlet/forums/ui/view/ViewJumpbox.java
===================================================================
--- labs/jbossforums/trunk/forums/src/main/org/jboss/portlet/forums/ui/view/ViewJumpbox.java 2006-11-05 02:49:22 UTC (rev 7405)
+++ labs/jbossforums/trunk/forums/src/main/org/jboss/portlet/forums/ui/view/ViewJumpbox.java 2006-11-05 03:04:18 UTC (rev 7406)
@@ -24,6 +24,8 @@
import java.util.List;
+import org.hibernate.Hibernate;
+
import org.jboss.portlet.forums.ui.BaseController;
import org.jboss.portlet.forums.ui.Constants;
import org.jboss.portlet.forums.ui.ForumUtil;
@@ -35,24 +37,38 @@
public class ViewJumpbox extends BaseController
{
+ private List categories;
+
/**
* @author Ryszard Kozmik
*/
public ViewJumpbox () {
- super();
+ super();
}
public List getCategories()
{
- try
- {
- return getForumsModule().findCategories();
+ if (categories!=null) {
+ return categories;
}
- catch(Exception e)
- {
- JSFUtil.handleException(e);
+ synchronized (this) {
+ if (categories!=null) {
+ return categories;
+ }
+ try
+ {
+ categories = getForumsModule().findCategories();
+ if (categories!= null && !Hibernate.isInitialized(categories)) {
+ Hibernate.initialize(categories);
+ }
+ return categories;
+ }
+ catch(Exception e)
+ {
+ JSFUtil.handleException(e);
+ }
+ return null ;
}
- return null ;
}
Modified: labs/jbossforums/trunk/forums/src/resources/portal-forums-war/views/forums/viewforum_body.xhtml
===================================================================
--- labs/jbossforums/trunk/forums/src/resources/portal-forums-war/views/forums/viewforum_body.xhtml 2006-11-05 02:49:22 UTC (rev 7405)
+++ labs/jbossforums/trunk/forums/src/resources/portal-forums-war/views/forums/viewforum_body.xhtml 2006-11-05 03:04:18 UTC (rev 7406)
@@ -222,7 +222,7 @@
</td>
<td class="row3" align="center" valign="middle">
<span class="name">
- ${topicrow.firstPost.poster.user.userName}
+ ${topicrow.poster.user.userName}
</span>
</td>
<td class="row2" align="center" valign="middle">
@@ -323,7 +323,7 @@
</td>
<td class="row3" align="center" valign="middle">
<span class="name">
- ${topicrow.firstPost.poster.user.userName}
+ ${topicrow.poster.user.userName}
</span>
</td>
<td class="row2" align="center" valign="middle">
@@ -423,7 +423,7 @@
</td>
<td class="row3" align="center" valign="middle">
<span class="name">
- ${topicrow.firstPost.poster.user.userName}
+ ${topicrow.poster.user.userName}
</span>
</td>
<td class="row2" align="center" valign="middle">
More information about the jboss-svn-commits
mailing list