[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