[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