[jboss-svn-commits] JBL Code SVN: r6866 - in labs/jbossforums/branches/forums22/forums/src: main/org/jboss/portlet/forums main/org/jboss/portlet/forums/impl main/org/jboss/portlet/forums/model main/org/jboss/portlet/forums/ui main/org/jboss/portlet/forums/ui/view resources/portal-forums-sar/conf/hibernate resources/portal-forums-war/WEB-INF resources/portal-forums-war/views/category

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Oct 17 14:10:05 EDT 2006


Author: unibrew
Date: 2006-10-17 14:09:55 -0400 (Tue, 17 Oct 2006)
New Revision: 6866

Modified:
   labs/jbossforums/branches/forums22/forums/src/main/org/jboss/portlet/forums/ForumsPortlet.java
   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/PollImpl.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/model/Forum.java
   labs/jbossforums/branches/forums22/forums/src/main/org/jboss/portlet/forums/ui/ForumUtil.java
   labs/jbossforums/branches/forums22/forums/src/main/org/jboss/portlet/forums/ui/view/ViewCategory.java
   labs/jbossforums/branches/forums22/forums/src/resources/portal-forums-sar/conf/hibernate/hibernate.cfg.xml
   labs/jbossforums/branches/forums22/forums/src/resources/portal-forums-war/WEB-INF/forums.taglib.xml
   labs/jbossforums/branches/forums22/forums/src/resources/portal-forums-war/views/category/viewcategory_body.xhtml
Log:
[JBFORUMS-135] Repairing one significant bug in Forums model plus doing couple of performance improvements.

Modified: labs/jbossforums/branches/forums22/forums/src/main/org/jboss/portlet/forums/ForumsPortlet.java
===================================================================
--- labs/jbossforums/branches/forums22/forums/src/main/org/jboss/portlet/forums/ForumsPortlet.java	2006-10-17 17:38:36 UTC (rev 6865)
+++ labs/jbossforums/branches/forums22/forums/src/main/org/jboss/portlet/forums/ForumsPortlet.java	2006-10-17 18:09:55 UTC (rev 6866)
@@ -3244,7 +3244,7 @@
                   // Get forum data
                   int currentForumStatus = currentForum.getStatus();
                   Integer currentForumId = currentForum.getId();
-                  Post lastPost = currentForum.getLastPost();
+                  Post lastPost = forumsModule.findLastPost(currentForum);
                   String currentForumDescription = currentForum
                      .getDescription();
                   int currentForumPostSize = currentForum.getPostCount();

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-10-17 17:38:36 UTC (rev 6865)
+++ labs/jbossforums/branches/forums22/forums/src/main/org/jboss/portlet/forums/impl/ForumImpl.java	2006-10-17 18:09:55 UTC (rev 6866)
@@ -16,6 +16,16 @@
 import java.util.ArrayList;
 import java.util.Iterator;
 
+import javax.naming.InitialContext;
+
+import javax.naming.NamingException;
+
+import org.hibernate.Query;
+import org.hibernate.Session;
+import org.hibernate.SessionFactory;
+
+import org.jboss.portal.core.modules.ModuleException;
+import org.jboss.portlet.forums.ForumsModule;
 import org.jboss.portlet.forums.model.Category;
 import org.jboss.portlet.forums.model.Forum;
 import org.jboss.portlet.forums.model.Post;
@@ -27,6 +37,7 @@
  * @author <a href="mailto:julien at jboss.org">Julien Viet </a>
  * @author <a href="mailto:theute at jboss.org">Thomas Heute </a>
  * @author <a href="mailto:boleslaw.dawidowicz at jboss.com">Boleslaw Dawidowicz</a>
+ * @author <a href="mailto:ryszard.kozmik at jboss.com">Ryszard Kozmik</a>
  * @version $Revision: 1124 $
  * @hibernate.class table="jbp_forums_forums"
  */
@@ -34,6 +45,7 @@
    implements Serializable,
    Forum
 {
+
    /**
     * Creates a new {@link ForumImpl} object.
     */
@@ -111,32 +123,51 @@
       this.id = id;
    }
 
+
+    //TODO: This method can be optimized by adding lastPost column in table
    /**
     * _ at _hibernate.many-to-one
     * _cascade_="all"
     * _column_="jbp_last_post_id"
     * _class_="org.jboss.portlet.forums.impl.PostImpl"
     */
-   public Post getLastPost()
-   {
-      Post post = null;
+   /*public Post getLastPost()
+   {   
+                //"select post from ForumImpl as forum" +
+                //"join forum.topics as topic" +
+                //"join topic.posts as post +
+                //"order by topic.lastPostDate");       
+                
+                //"select topic from ForumImpl as forum" +
+                //"join forum.topics as topic" +
+                //"where topic.lastPostDate=(select MIN(t.lastPostDate) from forum.topics t)"
+       /*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.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 post;
-      //return lastPost;
-   }
+   }*/
 
    /**
     * DOCUMENT_ME
     *
     * @param lastPost DOCUMENT_ME
     */
-   public void setLastPost(Post lastPost)
+ /*public void setLastPost(Post lastPost)
    {
-      //this.lastPost = lastPost;
-   }
+      this.lastPost = lastPost;
+   }*/
 
    /**
     * @hibernate.property column="jbp_name"
@@ -207,6 +238,7 @@
       //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-10-17 17:38:36 UTC (rev 6865)
+++ labs/jbossforums/branches/forums22/forums/src/main/org/jboss/portlet/forums/impl/ForumsModuleImpl.java	2006-10-17 18:09:55 UTC (rev 6866)
@@ -49,6 +49,7 @@
 /**
  * @author <a href="mailto:theute at jboss.org">Thomas Heute </a>
  * @author <a href="mailto:boleslaw.dawidowicz at jboss.com">Boleslaw Dawidowicz</a>
+ * @author <a href="mailto:ryszard.kozmik at jboss.com">Ryszard Kozmik</a>
  * @version $Revision: 1981 $
  * @jmx.mbean
  * @jboss.xmbean

Modified: labs/jbossforums/branches/forums22/forums/src/main/org/jboss/portlet/forums/impl/PollImpl.java
===================================================================
--- labs/jbossforums/branches/forums22/forums/src/main/org/jboss/portlet/forums/impl/PollImpl.java	2006-10-17 17:38:36 UTC (rev 6865)
+++ labs/jbossforums/branches/forums22/forums/src/main/org/jboss/portlet/forums/impl/PollImpl.java	2006-10-17 18:09:55 UTC (rev 6866)
@@ -152,7 +152,7 @@
    {
       this.voted = voted;
    }
-
+    //TODO: Can be optimized
    public int getVotesSum()
    {
       int sum = 0;

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-10-17 17:38:36 UTC (rev 6865)
+++ labs/jbossforums/branches/forums22/forums/src/main/org/jboss/portlet/forums/impl/TopicImpl.java	2006-10-17 18:09:55 UTC (rev 6866)
@@ -201,6 +201,7 @@
       //this.replies = replies;
    }
 
+       //TODO: Can be optimized
    /**
     * _ at _hibernate.many-to-one
     * _column_="jbp_first_post_id"

Modified: labs/jbossforums/branches/forums22/forums/src/main/org/jboss/portlet/forums/model/Forum.java
===================================================================
--- labs/jbossforums/branches/forums22/forums/src/main/org/jboss/portlet/forums/model/Forum.java	2006-10-17 17:38:36 UTC (rev 6865)
+++ labs/jbossforums/branches/forums22/forums/src/main/org/jboss/portlet/forums/model/Forum.java	2006-10-17 18:09:55 UTC (rev 6866)
@@ -17,6 +17,7 @@
 /**
  * @author <a href="mailto:theute at jboss.org">Thomas Heute</a>
  * @author <a href="mailto:boleslaw.dawidowicz at jboss.com">Boleslaw Dawidowicz</a>
+ * @author <a href="mailto:ryszard.kozmik at jboss.com">Ryszard Kozmik</a>
  * @version $Revision: 916 $
  */
 public interface Forum
@@ -61,14 +62,14 @@
     *
     * @return DOCUMENT_ME
     */
-   Post getLastPost();
+   //Post getLastPost();
 
    /**
     * DOCUMENT_ME
     *
     * @param lastpost DOCUMENT_ME
     */
-   void setLastPost(Post lastpost);
+   //void setLastPost(Post lastpost);
 
    /**
     * DOCUMENT_ME

Modified: labs/jbossforums/branches/forums22/forums/src/main/org/jboss/portlet/forums/ui/ForumUtil.java
===================================================================
--- labs/jbossforums/branches/forums22/forums/src/main/org/jboss/portlet/forums/ui/ForumUtil.java	2006-10-17 17:38:36 UTC (rev 6865)
+++ labs/jbossforums/branches/forums22/forums/src/main/org/jboss/portlet/forums/ui/ForumUtil.java	2006-10-17 18:09:55 UTC (rev 6866)
@@ -29,11 +29,16 @@
 import javax.portlet.ActionRequest;
 import javax.portlet.PortletRequest;
 
+import org.jboss.portal.core.modules.ModuleException;
 import org.jboss.portal.format.render.bbcodehtml.ToHTMLConfig;
+import org.jboss.portlet.forums.ForumsModule;
+import org.jboss.portlet.forums.model.Forum;
+import org.jboss.portlet.forums.model.Post;
 
 
 /**
  * @author <a href="mailto:sohil.shah at jboss.com">Sohil Shah</a>
+ * @author <a href="mailto:ryszard.kozmik at jboss.com">Ryszard Kozmik</a>
  *
  */
 public class ForumUtil 
@@ -99,4 +104,12 @@
         return dateStr;
     }
     
+    public static Post getLastPost(ForumsModule fm, Forum forum) {
+        try {
+            return fm.findLastPost(forum);    
+        } catch (ModuleException e) {
+            return null;
+        }
+    }
+    
 }

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-10-17 17:38:36 UTC (rev 6865)
+++ labs/jbossforums/branches/forums22/forums/src/main/org/jboss/portlet/forums/ui/view/ViewCategory.java	2006-10-17 18:09:55 UTC (rev 6866)
@@ -27,6 +27,7 @@
 import java.util.ArrayList;
 import java.util.HashMap;
 
+import org.jboss.portlet.forums.ForumsModule;
 import org.jboss.portlet.forums.model.Category;
 import org.jboss.portlet.forums.model.Forum;
 import org.jboss.portlet.forums.ui.BaseController;
@@ -40,7 +41,7 @@
 
 /**
  * @author <a href="mailto:sohil.shah at jboss.com">Sohil Shah</a>
- *
+ * @author <a href="mailto:ryszard.kozmik at jboss.com">Ryszard Kozmik</a>
  * 
  */
 public class ViewCategory extends BaseController
@@ -84,6 +85,10 @@
         return this.forums;
     }
     
+    public ForumsModule getModule () throws Exception {
+        return BaseController.getForumsModule();
+    }
+    
         
     /**
      * @return Returns the forumImageDescriptions.

Modified: labs/jbossforums/branches/forums22/forums/src/resources/portal-forums-sar/conf/hibernate/hibernate.cfg.xml
===================================================================
--- labs/jbossforums/branches/forums22/forums/src/resources/portal-forums-sar/conf/hibernate/hibernate.cfg.xml	2006-10-17 17:38:36 UTC (rev 6865)
+++ labs/jbossforums/branches/forums22/forums/src/resources/portal-forums-sar/conf/hibernate/hibernate.cfg.xml	2006-10-17 18:09:55 UTC (rev 6866)
@@ -5,6 +5,7 @@
 <hibernate-configuration>
    <session-factory>
       <property name="connection.datasource">java:@portal.datasource.name@</property>
+      <property name="hibernate.cache.use_query_cache">true</property>
       <property name="show_sql">false</property>
 
       <!-- Force the dialect instead of using autodetection -->

Modified: labs/jbossforums/branches/forums22/forums/src/resources/portal-forums-war/WEB-INF/forums.taglib.xml
===================================================================
--- labs/jbossforums/branches/forums22/forums/src/resources/portal-forums-war/WEB-INF/forums.taglib.xml	2006-10-17 17:38:36 UTC (rev 6865)
+++ labs/jbossforums/branches/forums22/forums/src/resources/portal-forums-war/WEB-INF/forums.taglib.xml	2006-10-17 18:09:55 UTC (rev 6866)
@@ -68,6 +68,16 @@
   		<function-class>org.jboss.portlet.forums.ui.ForumUtil</function-class>
   		<function-signature>java.lang.String getDateStr(java.util.Date)</function-signature>
 	</function>	
+        
+        <!--
+	-->
+	<function>
+		<function-name>lastPost</function-name>
+  		<function-class>org.jboss.portlet.forums.ui.ForumUtil</function-class>
+  		<function-signature>
+                    org.jboss.portlet.forums.model.Post getLastPost(org.jboss.portlet.forums.ForumsModule,org.jboss.portlet.forums.model.Forum)
+                </function-signature>
+	</function>	
 	
 	<!-- application specific functions -->	
 	<!--

Modified: labs/jbossforums/branches/forums22/forums/src/resources/portal-forums-war/views/category/viewcategory_body.xhtml
===================================================================
--- labs/jbossforums/branches/forums22/forums/src/resources/portal-forums-war/views/category/viewcategory_body.xhtml	2006-10-17 17:38:36 UTC (rev 6865)
+++ labs/jbossforums/branches/forums22/forums/src/resources/portal-forums-war/views/category/viewcategory_body.xhtml	2006-10-17 18:09:55 UTC (rev 6866)
@@ -91,22 +91,22 @@
 		        <td class="row2" align="center" valign="middle" height="50" nowrap="nowrap">
 		        	<span class="gensmall">        	    	
 		        	    <c:choose>
-		        	            <c:when test="#{forumrow.lastPost!=null}">
-			        				#{forums:dateStr(forumrow.lastPost.createDate)}
+		        	            <c:when test="#{(forums:lastPost(category.module,forumrow))!=null}">
+			        				#{forums:dateStr((forums:lastPost(category.module,forumrow)).createDate)}
 			        				<br/>
 			        				<c:choose>
 				        				<c:when test="#{category.anonymous}">
-				        					${forumrow.lastPost.poster.user.userName} 
+				        					${(forums:lastPost(category.module,forumrow)).poster.user.userName} 
 				        				</c:when>
 				        				<c:otherwise>				        				    
 				        					<h:outputLink value="#{forums:outputLink(shared.links['profile'],true)}">
-				        						<f:param name="uid" value="#{forumrow.lastPost.poster.user.id}"/>
-				        						<h:outputText value="${forumrow.lastPost.poster.user.userName}"/>
+				        						<f:param name="uid" value="#{(forums:lastPost(category.module,forumrow)).poster.user.id}"/>
+				        						<h:outputText value="${(forums:lastPost(category.module,forumrow)).poster.user.userName}"/>
 				        					</h:outputLink>
 				        				</c:otherwise>
 			        				</c:choose>			                        
 			        				<h:outputLink value="#{forums:outputLink(shared.links['topic'],true)}" style="text-decoration: none;">
-			        					<f:param name="t" value="#{forumrow.lastPost.topic.id}"/>
+			        					<f:param name="t" value="#{(forums:lastPost(category.module,forumrow)).topic.id}"/>
 			        				    <f:verbatim>
 			        						<img border="0" src="#{forums:themeURL('resourceIconLatestReplyURL')}"/>
 			        					</f:verbatim>




More information about the jboss-svn-commits mailing list