[jboss-svn-commits] JBL Code SVN: r7262 - in labs/jbossforums/branches/forums22/forums/src/main/org/jboss/portlet/forums: impl ui/view

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Oct 31 22:28:42 EST 2006


Author: unibrew
Date: 2006-10-31 22:28:39 -0500 (Tue, 31 Oct 2006)
New Revision: 7262

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/ui/view/ViewCategory.java
Log:
[JBFORUMS-135] Improving topicCount and postCount for CategoryView to be efficient.

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-01 00:23:55 UTC (rev 7261)
+++ labs/jbossforums/branches/forums22/forums/src/main/org/jboss/portlet/forums/impl/ForumImpl.java	2006-11-01 03:28:39 UTC (rev 7262)
@@ -20,8 +20,6 @@
 
 import javax.naming.NamingException;
 
-import javax.portlet.PortletException;
-
 import org.hibernate.Query;
 import org.hibernate.Session;
 import org.hibernate.SessionFactory;
@@ -62,8 +60,8 @@
    //private Post       lastPost;
    private String name;
    private int order;
-   //private int        topicCount;
-   //private int        postCount;
+   private int        topicCount;
+   private int        postCount;
    //private boolean pruneEnable;
    //private int pruneNext;
    private int status;
@@ -71,18 +69,7 @@
    private Collection watch;
    //private int        type;
    private List watches;
-   private static ForumsModule fm;
-   
 
-   private static void initializeForumsModule () {
-      try {
-        fm = (ForumsModule)new InitialContext().lookup("java:portal/ForumsModule");
-      } catch (NamingException e) {
-          e.printStackTrace();
-      }
-   }
-
-
    /**
     * @hibernate.many-to-one column="jbp_category_id"
     * class="org.jboss.portlet.forums.impl.CategoryImpl"
@@ -144,9 +131,8 @@
     * _column_="jbp_last_post_id"
     * _class_="org.jboss.portlet.forums.impl.PostImpl"
     */
-   public Post getLastPost()
+   /*public Post getLastPost()
    {   
-   if (fm==null) initializeForumsModule();
                 //"select post from ForumImpl as forum" +
                 //"join forum.topics as topic" +
                 //"join topic.posts as post +
@@ -155,37 +141,33 @@
                 //"select topic from ForumImpl as forum" +
                 //"join forum.topics as topic" +
                 //"where topic.lastPostDate=(select MIN(t.lastPostDate) from forum.topics t)"
-       Session session = fm.getHibernate().getSessionFactory().getCurrentSession();
-                 /*Query query = session.createQuery(            
+       Session session = singleton.getCurrentSession();
+                 Query query = session.createQuery(            
                 "select post from ForumImpl as forum " +
                 "join forum.topics as topic " +
                 "join topic.posts as post " +
                 "where forum.id=:forumId " +
                 "AND post.date=(select MIN(t.lastPostDate) from forum.topics t)");
-      */
-                  Query query =
-                     session.createQuery("from PostImpl as p where p.topic.forum  = :forumId order by p.createDate desc");
-                  query.setString("forumId", "" + getId());
-                  query.setFirstResult(0);
-                  query.setMaxResults(1);
-                  Post lastPost = (Post)query.uniqueResult();
+      
+          query.setString("forumId",getId().toString());
+       Post post2 = (Post)query.uniqueResult();
       Post post = null; 
       for (Iterator i = getTopics().iterator(); i.hasNext();)
       {
          post = ((Topic)i.next()).getLastPost();
-      }
-      return lastPost;
-   }
+      }      
+      return post;
+   }*/
 
    /**
     * DOCUMENT_ME
     *
     * @param lastPost DOCUMENT_ME
     */
-   public void setLastPost(Post lastPost)
+   /*public void setLastPost(Post lastPost)
    {
       //this.lastPost = lastPost;
-   }
+   }*/
 
    /**
     * @hibernate.property column="jbp_name"
@@ -193,7 +175,7 @@
     * update="true"
     */
    public String getName()
-   {      
+   {
       return name;
    }
 
@@ -234,8 +216,8 @@
     */
    public int getTopicCount()
    {
-      //return topicCount;
-      return getTopics().size();
+      return topicCount;
+      //return getTopics().size();
    }
 
    /**
@@ -245,7 +227,7 @@
     */
    public void setTopicCount(int size)
    {
-      //this.topicCount = size;
+      this.topicCount = size;
    }
 
    /**
@@ -253,7 +235,7 @@
     */
    public void addTopicSize()
    {
-      //setTopicCount(topicCount + 1);
+      setTopicCount(topicCount + 1);
    }
 
        //TODO: Can be optimized
@@ -264,14 +246,14 @@
     */
    public int getPostCount()
    {
-      int sum = 0;
-      for (Iterator i = getTopics().iterator(); i.hasNext();)
-      {
-         Topic topic = (Topic)i.next();
-         sum += topic.getPosts().size();
-      }
-      return sum;
-      //return postCount;
+      //int sum = 0;
+      //for (Iterator i = getTopics().iterator(); i.hasNext();)
+      //{
+      //   Topic topic = (Topic)i.next();
+      //  sum += topic.getPosts().size();
+      //}
+      //return sum;
+      return postCount;
    }
 
    /**
@@ -281,7 +263,7 @@
     */
    public void setPostCount(int size)
    {
-      //this.postCount = size;
+      this.postCount = size;
    }
 
    /**
@@ -289,7 +271,7 @@
     */
    public void addPostSize()
    {
-      //setPostCount(postCount + 1);
+      setPostCount(postCount + 1);
    }
 
    /**

Modified: labs/jbossforums/branches/forums22/forums/src/main/org/jboss/portlet/forums/ui/view/ViewCategory.java
===================================================================
--- labs/jbossforums/branches/forums22/forums/src/main/org/jboss/portlet/forums/ui/view/ViewCategory.java	2006-11-01 00:23:55 UTC (rev 7261)
+++ labs/jbossforums/branches/forums22/forums/src/main/org/jboss/portlet/forums/ui/view/ViewCategory.java	2006-11-01 03:28:39 UTC (rev 7262)
@@ -27,6 +27,8 @@
 import java.util.ArrayList;
 import java.util.HashMap;
 
+import org.hibernate.Hibernate;
+
 import org.jboss.portlet.forums.ForumsModule;
 import org.jboss.portlet.forums.model.Category;
 import org.jboss.portlet.forums.model.Forum;
@@ -154,6 +156,9 @@
             Collection cour = BaseController.getForumsModule().findCategories();
             if(cour!=null)
             {
+                if (!Hibernate.isInitialized(cour)) {
+                    Hibernate.initialize(cour);
+                }
                 Iterator iterator = cour.iterator();
                 while (iterator.hasNext())
                 {
@@ -184,7 +189,11 @@
            this.getCategories().add(category);
            
            //process the forums associated with this category
-           Iterator forumsIterator = BaseController.getForumsModule().findForumsByCategoryId(category.getId()).iterator();
+           Collection forums = BaseController.getForumsModule().findForumsByCategoryId(category.getId());
+           if (forums!=null && !Hibernate.isInitialized(forums)) {
+               Hibernate.initialize(forums);
+           }
+           Iterator forumsIterator = forums.iterator();
            Collection categoryForums = new ArrayList();
            while (forumsIterator.hasNext())
            {




More information about the jboss-svn-commits mailing list