[jboss-svn-commits] JBL Code SVN: r7405 - in labs/jbossforums/branches/forums22/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 21:49:27 EST 2006
Author: unibrew
Date: 2006-11-04 21:49:22 -0500 (Sat, 04 Nov 2006)
New Revision: 7405
Modified:
labs/jbossforums/branches/forums22/forums/src/main/org/jboss/portlet/forums/impl/ForumImpl.java
labs/jbossforums/branches/forums22/forums/src/main/org/jboss/portlet/forums/impl/ForumsModuleImpl.java
labs/jbossforums/branches/forums22/forums/src/main/org/jboss/portlet/forums/impl/TopicImpl.java
labs/jbossforums/branches/forums22/forums/src/main/org/jboss/portlet/forums/ui/view/ViewForum.java
labs/jbossforums/branches/forums22/forums/src/main/org/jboss/portlet/forums/ui/view/ViewJumpbox.java
labs/jbossforums/branches/forums22/forums/src/resources/portal-forums-war/views/forums/viewforum_body.xhtml
Log:
[JBFORUMS-135] Performance tuning of ForumView and Jumpbox.
Modified: labs/jbossforums/branches/forums22/forums/src/main/org/jboss/portlet/forums/impl/ForumImpl.java
===================================================================
--- labs/jbossforums/branches/forums22/forums/src/main/org/jboss/portlet/forums/impl/ForumImpl.java 2006-11-04 22:22:19 UTC (rev 7404)
+++ labs/jbossforums/branches/forums22/forums/src/main/org/jboss/portlet/forums/impl/ForumImpl.java 2006-11-05 02:49:22 UTC (rev 7405)
@@ -238,7 +238,6 @@
setTopicCount(topicCount + 1);
}
- //TODO: Can be optimized
/**
* @hibernate.property column="jbp_post_count"
* unique="false"
Modified: labs/jbossforums/branches/forums22/forums/src/main/org/jboss/portlet/forums/impl/ForumsModuleImpl.java
===================================================================
--- labs/jbossforums/branches/forums22/forums/src/main/org/jboss/portlet/forums/impl/ForumsModuleImpl.java 2006-11-04 22:22:19 UTC (rev 7404)
+++ labs/jbossforums/branches/forums22/forums/src/main/org/jboss/portlet/forums/impl/ForumsModuleImpl.java 2006-11-05 02:49:22 UTC (rev 7405)
@@ -1166,7 +1166,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/branches/forums22/forums/src/main/org/jboss/portlet/forums/impl/TopicImpl.java
===================================================================
--- labs/jbossforums/branches/forums22/forums/src/main/org/jboss/portlet/forums/impl/TopicImpl.java 2006-11-04 22:22:19 UTC (rev 7404)
+++ labs/jbossforums/branches/forums22/forums/src/main/org/jboss/portlet/forums/impl/TopicImpl.java 2006-11-05 02:49:22 UTC (rev 7405)
@@ -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
@@ -211,15 +211,11 @@
{
//return firstPost;
//Hibernate.initialize(posts);
- Iterator i = getPosts().iterator();
- if (i.hasNext())
+ if (posts == null || (posts.size() == 0))
{
- return (Post)i.next();
- }
- else
- {
return null;
}
+ return (Post)posts.get(0);
}
/**
Modified: labs/jbossforums/branches/forums22/forums/src/main/org/jboss/portlet/forums/ui/view/ViewForum.java
===================================================================
--- labs/jbossforums/branches/forums22/forums/src/main/org/jboss/portlet/forums/ui/view/ViewForum.java 2006-11-04 22:22:19 UTC (rev 7404)
+++ labs/jbossforums/branches/forums22/forums/src/main/org/jboss/portlet/forums/ui/view/ViewForum.java 2006-11-05 02:49:22 UTC (rev 7405)
@@ -72,7 +72,8 @@
public Forum getForum()
{
return this.forum;
- }
+ }
+
//page navigation related methods on this bean--------------------------------------------------------------------------------------------
/**
*
@@ -227,8 +228,7 @@
query.setMaxResults(perPage);
query.setString("forumid", "" + forum.getId());
query.setString("type", "" + type);
- Iterator iterator = query.iterate();
- return Tools.toList(iterator);
+ return query.list();
}
catch (HibernateException e)
{
@@ -290,7 +290,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/branches/forums22/forums/src/main/org/jboss/portlet/forums/ui/view/ViewJumpbox.java
===================================================================
--- labs/jbossforums/branches/forums22/forums/src/main/org/jboss/portlet/forums/ui/view/ViewJumpbox.java 2006-11-04 22:22:19 UTC (rev 7404)
+++ labs/jbossforums/branches/forums22/forums/src/main/org/jboss/portlet/forums/ui/view/ViewJumpbox.java 2006-11-05 02:49:22 UTC (rev 7405)
@@ -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/branches/forums22/forums/src/resources/portal-forums-war/views/forums/viewforum_body.xhtml
===================================================================
--- labs/jbossforums/branches/forums22/forums/src/resources/portal-forums-war/views/forums/viewforum_body.xhtml 2006-11-04 22:22:19 UTC (rev 7404)
+++ labs/jbossforums/branches/forums22/forums/src/resources/portal-forums-war/views/forums/viewforum_body.xhtml 2006-11-05 02:49:22 UTC (rev 7405)
@@ -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