﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-yooli88-随笔分类-mvn学习笔记</title><link>http://www.blogjava.net/yooli88/category/25736.html</link><description /><language>zh-cn</language><lastBuildDate>Tue, 11 Sep 2007 04:57:33 GMT</lastBuildDate><pubDate>Tue, 11 Sep 2007 04:57:33 GMT</pubDate><ttl>60</ttl><item><title>MVNForumGlobal </title><link>http://www.blogjava.net/yooli88/archive/2007/09/11/144207.html</link><dc:creator>迷茫在java的世界里</dc:creator><author>迷茫在java的世界里</author><pubDate>Tue, 11 Sep 2007 03:33:00 GMT</pubDate><guid>http://www.blogjava.net/yooli88/archive/2007/09/11/144207.html</guid><wfw:comment>http://www.blogjava.net/yooli88/comments/144207.html</wfw:comment><comments>http://www.blogjava.net/yooli88/archive/2007/09/11/144207.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yooli88/comments/commentRss/144207.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yooli88/services/trackbacks/144207.html</trackback:ping><description><![CDATA[<p><span style="color: #0000ff">/*<br />
&nbsp;* $Header: /cvsroot/mvnforum/mvnforum/src/com/mvnforum/MVNForumGlobal.java,v 1.17 2005/01/18 11:52:08 minhnn Exp $<br />
&nbsp;* $Author: minhnn $<br />
&nbsp;* $Revision: 1.17 $<br />
&nbsp;* $Date: 2005/01/18 11:52:08 $<br />
&nbsp;*<br />
&nbsp;* ====================================================================<br />
&nbsp;*<br />
&nbsp;* Copyright (C) 2002-2005 by MyVietnam.net<br />
&nbsp;*<br />
&nbsp;* This program is free software; you can redistribute it and/or<br />
&nbsp;* modify it under the terms of the GNU General Public License<br />
&nbsp;* as published by the Free Software Foundation; either version 2<br />
&nbsp;* of the License, or any later version.<br />
&nbsp;*<br />
&nbsp;* All copyright notices regarding mvnForum MUST remain intact<br />
&nbsp;* in the scripts and in the outputted HTML.<br />
&nbsp;* The "powered by" text/logo with a link back to<br />
&nbsp;* http://www.mvnForum.com and http://www.MyVietnam.net in the<br />
&nbsp;* footer of the pages MUST remain visible when the pages<br />
&nbsp;* are viewed on the internet or intranet.<br />
&nbsp;*<br />
&nbsp;* This program is distributed in the hope that it will be useful,<br />
&nbsp;* but WITHOUT ANY WARRANTY; without even the implied warranty of<br />
&nbsp;* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br />
&nbsp;* GNU General Public License for more details.<br />
&nbsp;*<br />
&nbsp;* You should have received a copy of the GNU General Public License<br />
&nbsp;* along with this program; if not, write to the Free Software<br />
&nbsp;* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA&nbsp; 02111-1307, USA.<br />
&nbsp;*<br />
&nbsp;* Support can be obtained from support forums at:<br />
&nbsp;* http://www.mvnForum.com/mvnforum/index<br />
&nbsp;*<br />
&nbsp;* Correspondence and Marketing Questions can be sent to:<br />
&nbsp;* info@MyVietnam.net<br />
&nbsp;*<br />
&nbsp;* @author: Minh Nguyen&nbsp; minhnn@MyVietnam.net<br />
&nbsp;* @author: Mai&nbsp; Nguyen&nbsp; mai.nh@MyVietnam.net<br />
&nbsp;*/<br />
package com.mvnforum;</span></p>
<p><span style="color: #0000ff">public class MVNForumGlobal {</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; private MVNForumGlobal() {<br />
&nbsp;&nbsp;&nbsp; }</span></p>
<p><span style="color: #0000ff">/*************************************************************************<br />
&nbsp;* NOTE: below constants can be changed for each build,<br />
&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; these constant MUST NOT break the compatibility<br />
&nbsp;*************************************************************************/<br />
&nbsp;&nbsp;&nbsp; public final static String IMAGE_DIR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = "/mvnplugin/mvnforum/images";</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public final static String EMOTION_DIR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = "/mvnplugin/mvnforum/images/emotion/";</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public final static String CSS_FULLPATH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = "/mvnplugin/mvnforum/css/style.css";</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public final static String LOGO_FULLPATH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = "/mvnplugin/mvnforum/images/logo.gif";</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; // Note that we cannot put / at the end because getRealPath will remove it in Tomcat 4.1.7 :((<br />
&nbsp;&nbsp;&nbsp; public final static String UPLOADED_AVATAR_DIR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = "/mvnplugin/mvnforum/upload/memberavatars";</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public final static String UPLOADED_COMPANY_DIR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = "/mvnplugin/mvnforum/upload/company";</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public final static String COMPANY_DEFAULT_CSS_PATH&nbsp; = "/mvnplugin/mvnforum/upload/company/style.css";</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public final static String COMPANY_DEFAULT_LOGO_PATH = "/mvnplugin/mvnforum/upload/company/logo.gif";</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public final static String RESOURCE_BUNDLE_NAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = "mvnForum_i18n";</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; /** value to control the flood prevention. Note value from 0 to 999 is belong to mvnCore */<br />
&nbsp;&nbsp;&nbsp; public final static Integer FLOOD_ID_NEW_POST&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = new Integer(1000);<br />
&nbsp;&nbsp;&nbsp; public final static Integer FLOOD_ID_NEW_MEMBER&nbsp;&nbsp;&nbsp;&nbsp; = new Integer(1001);<br />
&nbsp;&nbsp;&nbsp; public final static Integer FLOOD_ID_LOGIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = new Integer(1002);<br />
&nbsp;&nbsp;&nbsp; public final static Integer FLOOD_ID_NEW_MESSAGE&nbsp;&nbsp;&nbsp; = new Integer(1003);</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; /** The maximum length of the email in database */<br />
&nbsp;&nbsp;&nbsp; public final static int MAX_MEMBER_EMAIL_LENGTH = 60;</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; /** The maximum length of the member login name in database */<br />
&nbsp;&nbsp;&nbsp; public final static int MAX_MEMBER_LOGIN_LENGTH = 30;</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public final static String TEMPLATE_SENDACTIVATECODE_PREFIX&nbsp; = "sendactivemailtemplate";<br />
&nbsp;&nbsp;&nbsp; public final static String TEMPLATE_SENDACTIVATECODE_SUBJECT = "sendactivemailtemplate-subject.ftl";<br />
&nbsp;&nbsp;&nbsp; public final static String TEMPLATE_SENDACTIVATECODE_BODY&nbsp;&nbsp;&nbsp; = "sendactivemailtemplate-body.ftl";</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public final static String TEMPLATE_FORGOTPASSWORD_PREFIX&nbsp;&nbsp;&nbsp; = "forgotpasswordtemplate";<br />
&nbsp;&nbsp;&nbsp; public final static String TEMPLATE_FORGOTPASSWORD_SUBJECT&nbsp;&nbsp; = "forgotpasswordtemplate-subject.ftl";<br />
&nbsp;&nbsp;&nbsp; public final static String TEMPLATE_FORGOTPASSWORD_BODY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = "forgotpasswordtemplate-body.ftl";</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public final static String TEMPLATE_WATCHMAIL_PREFIX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = "watchmailtemplate";<br />
&nbsp;&nbsp;&nbsp; public final static String TEMPLATE_WATCHMAIL_SUBJECT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = "watchmailtemplate-subject.ftl";<br />
&nbsp;&nbsp;&nbsp; public final static String TEMPLATE_WATCHMAIL_BODY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = "watchmailtemplate-body.ftl";</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; // Constant for Company module<br />
&nbsp;&nbsp;&nbsp; public final static String COMPANY_GROUP_FREFIX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = "CompanyGroup: ";<br />
}<br />
</span></p>
<img src ="http://www.blogjava.net/yooli88/aggbug/144207.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yooli88/" target="_blank">迷茫在java的世界里</a> 2007-09-11 11:33 <a href="http://www.blogjava.net/yooli88/archive/2007/09/11/144207.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MVNForumContextListener </title><link>http://www.blogjava.net/yooli88/archive/2007/09/11/144204.html</link><dc:creator>迷茫在java的世界里</dc:creator><author>迷茫在java的世界里</author><pubDate>Tue, 11 Sep 2007 03:32:00 GMT</pubDate><guid>http://www.blogjava.net/yooli88/archive/2007/09/11/144204.html</guid><wfw:comment>http://www.blogjava.net/yooli88/comments/144204.html</wfw:comment><comments>http://www.blogjava.net/yooli88/archive/2007/09/11/144204.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yooli88/comments/commentRss/144204.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yooli88/services/trackbacks/144204.html</trackback:ping><description><![CDATA[<p><span style="color: #0000ff">/*<br />
&nbsp;* $Header: /cvsroot/mvnforum/mvnforum/src/com/mvnforum/MVNForumContextListener.java,v 1.6 2005/01/18 11:52:08 minhnn Exp $<br />
&nbsp;* $Author: minhnn $<br />
&nbsp;* $Revision: 1.6 $<br />
&nbsp;* $Date: 2005/01/18 11:52:08 $<br />
&nbsp;*<br />
&nbsp;* ====================================================================<br />
&nbsp;*<br />
&nbsp;* Copyright (C) 2002-2005 by MyVietnam.net<br />
&nbsp;*<br />
&nbsp;* This program is free software; you can redistribute it and/or<br />
&nbsp;* modify it under the terms of the GNU General Public License<br />
&nbsp;* as published by the Free Software Foundation; either version 2<br />
&nbsp;* of the License, or any later version.<br />
&nbsp;*<br />
&nbsp;* All copyright notices regarding mvnForum MUST remain intact<br />
&nbsp;* in the scripts and in the outputted HTML.<br />
&nbsp;* The "powered by" text/logo with a link back to<br />
&nbsp;* http://www.mvnForum.com and http://www.MyVietnam.net in the<br />
&nbsp;* footer of the pages MUST remain visible when the pages<br />
&nbsp;* are viewed on the internet or intranet.<br />
&nbsp;*<br />
&nbsp;* This program is distributed in the hope that it will be useful,<br />
&nbsp;* but WITHOUT ANY WARRANTY; without even the implied warranty of<br />
&nbsp;* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br />
&nbsp;* GNU General Public License for more details.<br />
&nbsp;*<br />
&nbsp;* You should have received a copy of the GNU General Public License<br />
&nbsp;* along with this program; if not, write to the Free Software<br />
&nbsp;* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA&nbsp; 02111-1307, USA.<br />
&nbsp;*<br />
&nbsp;* Support can be obtained from support forums at:<br />
&nbsp;* http://www.mvnForum.com/mvnforum/index<br />
&nbsp;*<br />
&nbsp;* Correspondence and Marketing Questions can be sent to:<br />
&nbsp;* info@MyVietnam.net<br />
&nbsp;*<br />
&nbsp;* @author: Minh Nguyen&nbsp; minhnn@MyVietnam.net<br />
&nbsp;* @author: Mai&nbsp; Nguyen&nbsp; mai.nh@MyVietnam.net<br />
&nbsp;*/<br />
package com.mvnforum;</span></p>
<p><span style="color: #0000ff">import java.sql.Timestamp;</span></p>
<p><span style="color: #0000ff">import javax.servlet.*;</span></p>
<p><span style="color: #0000ff">import net.myvietnam.mvncore.util.DateUtil;<br />
import net.myvietnam.mvncore.util.FileUtil;<br />
import org.apache.commons.logging.Log;<br />
import org.apache.commons.logging.LogFactory;</span></p>
<p><span style="color: #0000ff">public class MVNForumContextListener implements ServletContextListener {</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; private static Log log = LogFactory.getLog(MVNForumContextListener.class);</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; private static MVNForumContextListener instance;</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; private Timestamp startTimestamp;</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; /**<br />
&nbsp;&nbsp;&nbsp;&nbsp; * The servlet context with which we are associated.<br />
&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;&nbsp;&nbsp; private ServletContext context = null;</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public MVNForumContextListener() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; instance = this;<br />
&nbsp;&nbsp;&nbsp; }</span></p>
<p><br />
<span style="color: #0000ff">&nbsp;&nbsp;&nbsp; /**<br />
&nbsp;&nbsp;&nbsp;&nbsp; * Notification that the web application is ready to process requests.<br />
&nbsp;&nbsp;&nbsp;&nbsp; *<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @param event ServletContextEvent<br />
&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;&nbsp;&nbsp; public void contextInitialized(ServletContextEvent event) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; log.debug("contextInitialized");</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.context = event.getServletContext();</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String realPath = context.getRealPath("/WEB-INF/classes");// Add '/' before WEB-INF to fix the Oracle 10G bug<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FileUtil.setServletClassesPath(realPath);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; startTimestamp = DateUtil.getCurrentGMTTimestamp();<br />
&nbsp;&nbsp;&nbsp; }</span></p>
<p><br />
<span style="color: #0000ff">&nbsp;&nbsp;&nbsp; /**<br />
&nbsp;&nbsp;&nbsp;&nbsp; * Notification that the servlet context is about to be shut down.<br />
&nbsp;&nbsp;&nbsp;&nbsp; *<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @param event ServletContextEvent<br />
&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;&nbsp;&nbsp; public void contextDestroyed(ServletContextEvent event) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; log.debug("contextDestroyed");</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.context = null;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; instance = null;<br />
&nbsp;&nbsp;&nbsp; }</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; // below are add on method</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public static MVNForumContextListener getInstance() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return instance;<br />
&nbsp;&nbsp;&nbsp; }</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public Timestamp getStartTimestamp() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return startTimestamp;<br />
&nbsp;&nbsp;&nbsp; }</span></p>
<p><span style="color: #0000ff">}<br />
</span></p>
<img src ="http://www.blogjava.net/yooli88/aggbug/144204.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yooli88/" target="_blank">迷茫在java的世界里</a> 2007-09-11 11:32 <a href="http://www.blogjava.net/yooli88/archive/2007/09/11/144204.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MVNForumFactoryConfig </title><link>http://www.blogjava.net/yooli88/archive/2007/09/11/144206.html</link><dc:creator>迷茫在java的世界里</dc:creator><author>迷茫在java的世界里</author><pubDate>Tue, 11 Sep 2007 03:32:00 GMT</pubDate><guid>http://www.blogjava.net/yooli88/archive/2007/09/11/144206.html</guid><wfw:comment>http://www.blogjava.net/yooli88/comments/144206.html</wfw:comment><comments>http://www.blogjava.net/yooli88/archive/2007/09/11/144206.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yooli88/comments/commentRss/144206.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yooli88/services/trackbacks/144206.html</trackback:ping><description><![CDATA[<p><span style="color: #0000ff">/*<br />
&nbsp;* $Header: /cvsroot/mvnforum/mvnforum/src/com/mvnforum/MVNForumFactoryConfig.java,v 1.12 2005/01/18 11:52:08 minhnn Exp $<br />
&nbsp;* $Author: minhnn $<br />
&nbsp;* $Revision: 1.12 $<br />
&nbsp;* $Date: 2005/01/18 11:52:08 $<br />
&nbsp;*<br />
&nbsp;* ====================================================================<br />
&nbsp;*<br />
&nbsp;* Copyright (C) 2002-2005 by MyVietnam.net<br />
&nbsp;*<br />
&nbsp;* This program is free software; you can redistribute it and/or<br />
&nbsp;* modify it under the terms of the GNU General Public License<br />
&nbsp;* as published by the Free Software Foundation; either version 2<br />
&nbsp;* of the License, or any later version.<br />
&nbsp;*<br />
&nbsp;* All copyright notices regarding mvnForum MUST remain intact<br />
&nbsp;* in the scripts and in the outputted HTML.<br />
&nbsp;* The "powered by" text/logo with a link back to<br />
&nbsp;* http://www.mvnForum.com and http://www.MyVietnam.net in the<br />
&nbsp;* footer of the pages MUST remain visible when the pages<br />
&nbsp;* are viewed on the internet or intranet.<br />
&nbsp;*<br />
&nbsp;* This program is distributed in the hope that it will be useful,<br />
&nbsp;* but WITHOUT ANY WARRANTY; without even the implied warranty of<br />
&nbsp;* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br />
&nbsp;* GNU General Public License for more details.<br />
&nbsp;*<br />
&nbsp;* You should have received a copy of the GNU General Public License<br />
&nbsp;* along with this program; if not, write to the Free Software<br />
&nbsp;* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA&nbsp; 02111-1307, USA.<br />
&nbsp;*<br />
&nbsp;* Support can be obtained from support forums at:<br />
&nbsp;* http://www.mvnForum.com/mvnforum/index<br />
&nbsp;*<br />
&nbsp;* Correspondence and Marketing Questions can be sent to:<br />
&nbsp;* info@MyVietnam.net<br />
&nbsp;*<br />
&nbsp;* @author: Luis Miguel Hernanz &lt;luish@germinus.com&gt;<br />
&nbsp;* @author: Minh Nguyen&nbsp; minhnn@MyVietnam.net<br />
&nbsp;*/<br />
package com.mvnforum;</span></p>
<p><span style="color: #0000ff">import java.io.File;</span></p>
<p><span style="color: #0000ff">import net.myvietnam.mvncore.configuration.DOM4JConfiguration;<br />
import org.apache.commons.logging.Log;<br />
import org.apache.commons.logging.LogFactory;<br />
import net.myvietnam.mvncore.util.FileUtil;</span></p>
<p><span style="color: #0000ff">/**<br />
&nbsp;* Class that loads and makes accesible the factory configuration.<br />
&nbsp;*<br />
&nbsp;* @author &lt;a href="luish@germinus.com"&gt;Luis Miguel Hernanz&lt;/a&gt;<br />
&nbsp;* @version $Revision: 1.12 $<br />
&nbsp;*/<br />
public class MVNForumFactoryConfig {</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; private static Log log = LogFactory.getLog(MVNForumFactoryConfig.class);</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; private static final String OPTION_FILE_NAME&nbsp;&nbsp;&nbsp;&nbsp; = "mvnforum.xml";</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; private static String authenticatorClassName&nbsp;&nbsp;&nbsp;&nbsp; = null;<br />
&nbsp;&nbsp;&nbsp; private static String memberManagerClassName&nbsp;&nbsp;&nbsp;&nbsp; = "com.mvnforum.db.jdbc.MemberDAOImplJDBC";<br />
&nbsp;&nbsp;&nbsp; private static String onlineUserFactoryClassName = "com.mvnforum.auth.OnlineUserFactoryImpl";<br />
&nbsp;&nbsp;&nbsp; private static String requestProcessorClassName&nbsp; = "com.mvnforum.RequestProcessorDefault";<br />
&nbsp;&nbsp;&nbsp; private static String luceneAnalyzerClassName&nbsp;&nbsp;&nbsp; = "org.apache.lucene.analysis.standard.StandardAnalyzer";</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public static String getMemberManagerClassName() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return memberManagerClassName;<br />
&nbsp;&nbsp;&nbsp; }</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public static String getOnlineUserFactoryClassName() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return onlineUserFactoryClassName;<br />
&nbsp;&nbsp;&nbsp; }</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public static String getAuthenticatorClassName() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return authenticatorClassName;<br />
&nbsp;&nbsp;&nbsp; }</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public static String getRequestProcessorClassName() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return requestProcessorClassName;<br />
&nbsp;&nbsp;&nbsp; }</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public static String getLuceneAnalyzerClassName() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return luceneAnalyzerClassName;<br />
&nbsp;&nbsp;&nbsp; }</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; static {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String strPathName&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = FileUtil.getServletClassesPath();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String configFilename&nbsp;&nbsp; = strPathName + OPTION_FILE_NAME;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DOM4JConfiguration conf = new DOM4JConfiguration(new File(configFilename));</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; memberManagerClassName&nbsp;&nbsp;&nbsp;&nbsp; = conf.getString("mvnforumfactoryconfig.member_implementation", memberManagerClassName);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; onlineUserFactoryClassName = conf.getString("mvnforumfactoryconfig.onlineuser_implementation", onlineUserFactoryClassName);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; authenticatorClassName&nbsp;&nbsp;&nbsp;&nbsp; = conf.getString("mvnforumfactoryconfig.authenticator_implementation", authenticatorClassName);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; requestProcessorClassName&nbsp; = conf.getString("mvnforumfactoryconfig.requestprocessor_implementation", requestProcessorClassName);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; luceneAnalyzerClassName&nbsp;&nbsp;&nbsp; = conf.getString("mvnforumfactoryconfig.lucene_analyzer_implementation", luceneAnalyzerClassName);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (Exception e) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; log.error("Error loading the factory properties", e);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
}<br />
</span></p>
<img src ="http://www.blogjava.net/yooli88/aggbug/144206.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yooli88/" target="_blank">迷茫在java的世界里</a> 2007-09-11 11:32 <a href="http://www.blogjava.net/yooli88/archive/2007/09/11/144206.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MVNForumConfig </title><link>http://www.blogjava.net/yooli88/archive/2007/09/11/144201.html</link><dc:creator>迷茫在java的世界里</dc:creator><author>迷茫在java的世界里</author><pubDate>Tue, 11 Sep 2007 03:31:00 GMT</pubDate><guid>http://www.blogjava.net/yooli88/archive/2007/09/11/144201.html</guid><wfw:comment>http://www.blogjava.net/yooli88/comments/144201.html</wfw:comment><comments>http://www.blogjava.net/yooli88/archive/2007/09/11/144201.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yooli88/comments/commentRss/144201.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yooli88/services/trackbacks/144201.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: /*&nbsp;* $Header: /cvsroot/mvnforum/mvnforum/src/com/mvnforum/MVNForumConfig.java,v 1.75 2005/01/29 19:29:26 minhnn Exp $&nbsp;* $Author: minhnn $&nbsp;* $Revision: 1.75 $&nbsp;* $Date: 2005/...&nbsp;&nbsp;<a href='http://www.blogjava.net/yooli88/archive/2007/09/11/144201.html'>阅读全文</a><img src ="http://www.blogjava.net/yooli88/aggbug/144201.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yooli88/" target="_blank">迷茫在java的世界里</a> 2007-09-11 11:31 <a href="http://www.blogjava.net/yooli88/archive/2007/09/11/144201.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MVNForumConstant </title><link>http://www.blogjava.net/yooli88/archive/2007/09/11/144202.html</link><dc:creator>迷茫在java的世界里</dc:creator><author>迷茫在java的世界里</author><pubDate>Tue, 11 Sep 2007 03:31:00 GMT</pubDate><guid>http://www.blogjava.net/yooli88/archive/2007/09/11/144202.html</guid><wfw:comment>http://www.blogjava.net/yooli88/comments/144202.html</wfw:comment><comments>http://www.blogjava.net/yooli88/archive/2007/09/11/144202.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yooli88/comments/commentRss/144202.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yooli88/services/trackbacks/144202.html</trackback:ping><description><![CDATA[<p><span style="color: #0000ff">/*<br />
&nbsp;* $Header: /cvsroot/mvnforum/mvnforum/src/com/mvnforum/MVNForumConstant.java,v 1.8 2005/01/18 11:52:08 minhnn Exp $<br />
&nbsp;* $Author: minhnn $<br />
&nbsp;* $Revision: 1.8 $<br />
&nbsp;* $Date: 2005/01/18 11:52:08 $<br />
&nbsp;*<br />
&nbsp;* ====================================================================<br />
&nbsp;*<br />
&nbsp;* Copyright (C) 2002-2005 by MyVietnam.net<br />
&nbsp;*<br />
&nbsp;* This program is free software; you can redistribute it and/or<br />
&nbsp;* modify it under the terms of the GNU General Public License<br />
&nbsp;* as published by the Free Software Foundation; either version 2<br />
&nbsp;* of the License, or any later version.<br />
&nbsp;*<br />
&nbsp;* All copyright notices regarding mvnForum MUST remain intact<br />
&nbsp;* in the scripts and in the outputted HTML.<br />
&nbsp;* The "powered by" text/logo with a link back to<br />
&nbsp;* http://www.mvnForum.com and http://www.MyVietnam.net in the<br />
&nbsp;* footer of the pages MUST remain visible when the pages<br />
&nbsp;* are viewed on the internet or intranet.<br />
&nbsp;*<br />
&nbsp;* This program is distributed in the hope that it will be useful,<br />
&nbsp;* but WITHOUT ANY WARRANTY; without even the implied warranty of<br />
&nbsp;* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br />
&nbsp;* GNU General Public License for more details.<br />
&nbsp;*<br />
&nbsp;* You should have received a copy of the GNU General Public License<br />
&nbsp;* along with this program; if not, write to the Free Software<br />
&nbsp;* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA&nbsp; 02111-1307, USA.<br />
&nbsp;*<br />
&nbsp;* Support can be obtained from support forums at:<br />
&nbsp;* http://www.mvnForum.com/mvnforum/index<br />
&nbsp;*<br />
&nbsp;* Correspondence and Marketing Questions can be sent to:<br />
&nbsp;* info@MyVietnam.net<br />
&nbsp;*<br />
&nbsp;* @author: Minh Nguyen&nbsp; minhnn@MyVietnam.net<br />
&nbsp;* @author: Mai&nbsp; Nguyen&nbsp; mai.nh@MyVietnam.net<br />
&nbsp;* @author: Igor Manic&nbsp;&nbsp; imanic@users.sourceforge.net<br />
&nbsp;*/<br />
package com.mvnforum;</span></p>
<p><span style="color: #0000ff">public final class MVNForumConstant {</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; /** Cannot instantiate. */<br />
&nbsp;&nbsp;&nbsp; private MVNForumConstant() {<br />
&nbsp;&nbsp;&nbsp; }</span></p>
<p><span style="color: #0000ff">/*************************************************************************<br />
&nbsp;* NOTE: below constants MUST NOT be changed IN ALL CASES,<br />
&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; or it will break the compatibility<br />
&nbsp;*************************************************************************/</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; /** Guest/anonymous site visitor. */<br />
&nbsp;&nbsp;&nbsp; public static final int MEMBER_ID_OF_GUEST&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0;<br />
&nbsp;&nbsp;&nbsp; /** System administrator. */<br />
&nbsp;&nbsp;&nbsp; public static final int MEMBER_ID_OF_ADMIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 1;<br />
&nbsp;&nbsp;&nbsp; /**<br />
&nbsp;&nbsp;&nbsp;&nbsp; * The highest reserved MemberID.<br />
&nbsp;&nbsp;&nbsp;&nbsp; * All IDs from 0 through this value should not be used for "regular" members.<br />
&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;&nbsp;&nbsp; public static final int LAST_RESERVED_MEMBER_ID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 1;<br />
&nbsp;&nbsp;&nbsp; /* IMPORTANT: When we have a group without group owner, GroupOwnerID is set to 0.<br />
&nbsp;&nbsp;&nbsp;&nbsp; * Similiar is for other IDs in the database - 0 means there is no reference.<br />
&nbsp;&nbsp;&nbsp;&nbsp; * Also, the other reason why MemberID=0 should not be used for Guest is<br />
&nbsp;&nbsp;&nbsp;&nbsp; * that DBMS could refuse to insert a record with 0 in that field, since it's<br />
&nbsp;&nbsp;&nbsp;&nbsp; * marked as non-null autoincrement primary key.<br />
&nbsp;&nbsp;&nbsp;&nbsp; */</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; /** Unused GroupID. */<br />
&nbsp;&nbsp;&nbsp; public static final int GROUP_ID_UNUSED0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0;<br />
&nbsp;&nbsp;&nbsp; /**<br />
&nbsp;&nbsp;&nbsp;&nbsp; * Unused GroupID. In the previous versions of mvnForum it was used for some<br />
&nbsp;&nbsp;&nbsp;&nbsp; * special purposes, but should not be used anymore.<br />
&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;&nbsp;&nbsp; public static final int GROUP_ID_OF_GUEST&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 1;<br />
&nbsp;&nbsp;&nbsp; /** "Registered Members" virtual group. All members are listed in this group. */<br />
&nbsp;&nbsp;&nbsp; public static final int GROUP_ID_OF_REGISTERED_MEMBERS = 2;<br />
&nbsp;&nbsp;&nbsp; /**<br />
&nbsp;&nbsp;&nbsp;&nbsp; * The highest reserved GroupID.<br />
&nbsp;&nbsp;&nbsp;&nbsp; * All IDs from 0 through this value should not be used for "regular" groups.<br />
&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;&nbsp;&nbsp; public static final int LAST_RESERVED_GROUP_ID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 2;</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; /** "Inbox" message folder created by default for each member. */<br />
&nbsp;&nbsp;&nbsp; public static final String MESSAGE_FOLDER_INBOX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = "Inbox";<br />
&nbsp;&nbsp;&nbsp; /** "Sent" message folder created by default for each member. */<br />
&nbsp;&nbsp;&nbsp; public static final String MESSAGE_FOLDER_SENT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = "Sent";<br />
&nbsp;&nbsp;&nbsp; /** "Draft" message folder created by default for each member. */<br />
&nbsp;&nbsp;&nbsp; public static final String MESSAGE_FOLDER_DRAFT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = "Draft";<br />
&nbsp;&nbsp;&nbsp; /** "Trash" message folder created by default for each member. */<br />
&nbsp;&nbsp;&nbsp; public static final String MESSAGE_FOLDER_TRASH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = "Trash";</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public static final String dtdschemaDecl="&lt;!DOCTYPE mvnforum SYSTEM \"http://www.mvnforum.com/dtd/mvnforum_1_0_rc2.dtd\"&gt;";</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public static final String VN_TYPER_MODE = "mvnforum.vntypermode";<br />
}<br />
</span></p>
<img src ="http://www.blogjava.net/yooli88/aggbug/144202.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yooli88/" target="_blank">迷茫在java的世界里</a> 2007-09-11 11:31 <a href="http://www.blogjava.net/yooli88/archive/2007/09/11/144202.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ManagerFactory </title><link>http://www.blogjava.net/yooli88/archive/2007/09/11/144200.html</link><dc:creator>迷茫在java的世界里</dc:creator><author>迷茫在java的世界里</author><pubDate>Tue, 11 Sep 2007 03:30:00 GMT</pubDate><guid>http://www.blogjava.net/yooli88/archive/2007/09/11/144200.html</guid><wfw:comment>http://www.blogjava.net/yooli88/comments/144200.html</wfw:comment><comments>http://www.blogjava.net/yooli88/archive/2007/09/11/144200.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yooli88/comments/commentRss/144200.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yooli88/services/trackbacks/144200.html</trackback:ping><description><![CDATA[<p><span style="color: #0000ff">/*<br />
&nbsp;* $Header: /cvsroot/mvnforum/mvnforum/src/com/mvnforum/ManagerFactory.java,v 1.6 2005/01/18 11:52:08 minhnn Exp $<br />
&nbsp;* $Author: minhnn $<br />
&nbsp;* $Revision: 1.6 $<br />
&nbsp;* $Date: 2005/01/18 11:52:08 $<br />
&nbsp;*<br />
&nbsp;* ====================================================================<br />
&nbsp;*<br />
&nbsp;* Copyright (C) 2002-2005 by MyVietnam.net<br />
&nbsp;*<br />
&nbsp;* This program is free software; you can redistribute it and/or<br />
&nbsp;* modify it under the terms of the GNU General Public License<br />
&nbsp;* as published by the Free Software Foundation; either version 2<br />
&nbsp;* of the License, or any later version.<br />
&nbsp;*<br />
&nbsp;* All copyright notices regarding mvnForum MUST remain intact<br />
&nbsp;* in the scripts and in the outputted HTML.<br />
&nbsp;* The "powered by" text/logo with a link back to<br />
&nbsp;* http://www.mvnForum.com and http://www.MyVietnam.net in the<br />
&nbsp;* footer of the pages MUST remain visible when the pages<br />
&nbsp;* are viewed on the internet or intranet.<br />
&nbsp;*<br />
&nbsp;* This program is distributed in the hope that it will be useful,<br />
&nbsp;* but WITHOUT ANY WARRANTY; without even the implied warranty of<br />
&nbsp;* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br />
&nbsp;* GNU General Public License for more details.<br />
&nbsp;*<br />
&nbsp;* You should have received a copy of the GNU General Public License<br />
&nbsp;* along with this program; if not, write to the Free Software<br />
&nbsp;* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA&nbsp; 02111-1307, USA.<br />
&nbsp;*<br />
&nbsp;* Support can be obtained from support forums at:<br />
&nbsp;* http://www.mvnForum.com/mvnforum/index<br />
&nbsp;*<br />
&nbsp;* Correspondence and Marketing Questions can be sent to:<br />
&nbsp;* info@MyVietnam.net<br />
&nbsp;*<br />
&nbsp;* @author: Luis Miguel Hernanz &lt;luish@germinus.com&gt;<br />
&nbsp;* @author: Minh Nguyen&nbsp; minhnn@MyVietnam.net<br />
&nbsp;*/<br />
package com.mvnforum;</span></p>
<p><span style="color: #0000ff">import org.apache.commons.logging.Log;<br />
import org.apache.commons.logging.LogFactory;<br />
import com.mvnforum.auth.Authenticator;<br />
import com.mvnforum.auth.OnlineUserFactory;</span></p>
<p><span style="color: #0000ff">/**<br />
&nbsp;* Instance that returns the right implementation for the different<br />
&nbsp;* parts of the mvnforum system.<br />
&nbsp;*<br />
&nbsp;* @author &lt;a href="luish@germinus.com"&gt;Luis Miguel Hernanz&lt;/a&gt;<br />
&nbsp;* @version $Revision: 1.6 $<br />
&nbsp;*/<br />
// @todo : split this class to new class DAOFactory<br />
public class ManagerFactory {</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; private static Log log = LogFactory.getLog(ManagerFactory.class);</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; /**<br />
&nbsp;&nbsp;&nbsp;&nbsp; * Creates a new &lt;code&gt;ManagerFactory&lt;/code&gt; instance.<br />
&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;&nbsp;&nbsp; protected ManagerFactory() {}</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; private static OnlineUserFactory onlineUserFactory = null;<br />
&nbsp;&nbsp;&nbsp; private static Authenticator authenticator = null;<br />
&nbsp;&nbsp;&nbsp; private static RequestProcessor requestProcessor = null;</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public static synchronized OnlineUserFactory getOnlineUserFactory() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (onlineUserFactory == null) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Class c = Class.forName(MVNForumFactoryConfig.getOnlineUserFactoryClassName());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; onlineUserFactory = (OnlineUserFactory) c.newInstance();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; log.info("onlineUserFactory = " + onlineUserFactory);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (Exception e) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; log.error("Error returning the online user factory.", e);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throw new RuntimeException(e.getMessage());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return onlineUserFactory;<br />
&nbsp;&nbsp;&nbsp; }</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public static synchronized Authenticator getAuthenticator() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String authenticatorClass = MVNForumFactoryConfig.getAuthenticatorClassName();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ((null != authenticatorClass) &amp;&amp; !authenticatorClass.trim().equals("")) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; log.debug("Using the authenticator: " + authenticatorClass);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (authenticator == null) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Class c = Class.forName(authenticatorClass);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; authenticator = (Authenticator) c.newInstance();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; log.info("authenticator = " + authenticator);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return authenticator;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (Exception e){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; log.error("Error getting the authentication object", e);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return null;<br />
&nbsp;&nbsp;&nbsp; }</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public static synchronized RequestProcessor getRequestProcessor() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (requestProcessor == null) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Class c = Class.forName(MVNForumFactoryConfig.getRequestProcessorClassName());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; requestProcessor = (RequestProcessor) c.newInstance();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; log.info("requestProcessor = " + requestProcessor);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (Exception e) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // This should never happen<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; log.error("Error returning the requestProcessor.", e);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throw new RuntimeException(e.getMessage());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return requestProcessor;<br />
&nbsp;&nbsp;&nbsp; }<br />
}<br />
</span></p>
<img src ="http://www.blogjava.net/yooli88/aggbug/144200.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yooli88/" target="_blank">迷茫在java的世界里</a> 2007-09-11 11:30 <a href="http://www.blogjava.net/yooli88/archive/2007/09/11/144200.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>URLMap </title><link>http://www.blogjava.net/yooli88/archive/2007/09/11/144199.html</link><dc:creator>迷茫在java的世界里</dc:creator><author>迷茫在java的世界里</author><pubDate>Tue, 11 Sep 2007 03:29:00 GMT</pubDate><guid>http://www.blogjava.net/yooli88/archive/2007/09/11/144199.html</guid><wfw:comment>http://www.blogjava.net/yooli88/comments/144199.html</wfw:comment><comments>http://www.blogjava.net/yooli88/archive/2007/09/11/144199.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yooli88/comments/commentRss/144199.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yooli88/services/trackbacks/144199.html</trackback:ping><description><![CDATA[<p><span style="color: #0000ff">/*<br />
&nbsp;* $Header: /cvsroot/mvnforum/mvnforum/src/com/mvnforum/URLMap.java,v 1.3 2005/01/18 11:52:08 minhnn Exp $<br />
&nbsp;* $Author: minhnn $<br />
&nbsp;* $Revision: 1.3 $<br />
&nbsp;* $Date: 2005/01/18 11:52:08 $<br />
&nbsp;*<br />
&nbsp;* ====================================================================<br />
&nbsp;*<br />
&nbsp;* Copyright (C) 2002-2005 by MyVietnam.net<br />
&nbsp;*<br />
&nbsp;* This program is free software; you can redistribute it and/or<br />
&nbsp;* modify it under the terms of the GNU General Public License<br />
&nbsp;* as published by the Free Software Foundation; either version 2<br />
&nbsp;* of the License, or any later version.<br />
&nbsp;*<br />
&nbsp;* All copyright notices regarding mvnForum MUST remain intact<br />
&nbsp;* in the scripts and in the outputted HTML.<br />
&nbsp;* The "powered by" text/logo with a link back to<br />
&nbsp;* http://www.mvnForum.com and http://www.MyVietnam.net in the<br />
&nbsp;* footer of the pages MUST remain visible when the pages<br />
&nbsp;* are viewed on the internet or intranet.<br />
&nbsp;*<br />
&nbsp;* This program is distributed in the hope that it will be useful,<br />
&nbsp;* but WITHOUT ANY WARRANTY; without even the implied warranty of<br />
&nbsp;* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br />
&nbsp;* GNU General Public License for more details.<br />
&nbsp;*<br />
&nbsp;* You should have received a copy of the GNU General Public License<br />
&nbsp;* along with this program; if not, write to the Free Software<br />
&nbsp;* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA&nbsp; 02111-1307, USA.<br />
&nbsp;*<br />
&nbsp;* Support can be obtained from support forums at:<br />
&nbsp;* http://www.mvnForum.com/mvnforum/index<br />
&nbsp;*<br />
&nbsp;* Correspondence and Marketing Questions can be sent to:<br />
&nbsp;* info@MyVietnam.net<br />
&nbsp;*<br />
&nbsp;* @author: Minh Nguyen&nbsp; minhnn@MyVietnam.net<br />
&nbsp;* @author: Mai&nbsp; Nguyen&nbsp; mai.nh@MyVietnam.net<br />
&nbsp;*/<br />
package com.mvnforum;</span></p>
<p><span style="color: #0000ff">public class URLMap {<br />
&nbsp;&nbsp;&nbsp; private String response = null;</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public URLMap() {<br />
&nbsp;&nbsp;&nbsp; }</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public void setResponse(String newvalue) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; response = newvalue;<br />
&nbsp;&nbsp;&nbsp; }</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public String getResponse() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return response;<br />
&nbsp;&nbsp;&nbsp; }<br />
}<br />
</span></p>
<img src ="http://www.blogjava.net/yooli88/aggbug/144199.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yooli88/" target="_blank">迷茫在java的世界里</a> 2007-09-11 11:29 <a href="http://www.blogjava.net/yooli88/archive/2007/09/11/144199.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MyUtil</title><link>http://www.blogjava.net/yooli88/archive/2007/09/11/144194.html</link><dc:creator>迷茫在java的世界里</dc:creator><author>迷茫在java的世界里</author><pubDate>Tue, 11 Sep 2007 03:27:00 GMT</pubDate><guid>http://www.blogjava.net/yooli88/archive/2007/09/11/144194.html</guid><wfw:comment>http://www.blogjava.net/yooli88/comments/144194.html</wfw:comment><comments>http://www.blogjava.net/yooli88/archive/2007/09/11/144194.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yooli88/comments/commentRss/144194.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yooli88/services/trackbacks/144194.html</trackback:ping><description><![CDATA[<p><span style="color: #0000ff">/*<br />
&nbsp;* $Header: /cvsroot/mvnforum/mvnforum/src/com/mvnforum/MyUtil.java,v 1.30 2005/01/29 11:58:09 minhnn Exp $<br />
&nbsp;* $Author: minhnn $<br />
&nbsp;* $Revision: 1.30 $<br />
&nbsp;* $Date: 2005/01/29 11:58:09 $<br />
&nbsp;*<br />
&nbsp;* ====================================================================<br />
&nbsp;*<br />
&nbsp;* Copyright (C) 2002-2005 by MyVietnam.net<br />
&nbsp;*<br />
&nbsp;* This program is free software; you can redistribute it and/or<br />
&nbsp;* modify it under the terms of the GNU General Public License<br />
&nbsp;* as published by the Free Software Foundation; either version 2<br />
&nbsp;* of the License, or any later version.<br />
&nbsp;*<br />
&nbsp;* All copyright notices regarding mvnForum MUST remain intact<br />
&nbsp;* in the scripts and in the outputted HTML.<br />
&nbsp;* The "powered by" text/logo with a link back to<br />
&nbsp;* http://www.mvnForum.com and http://www.MyVietnam.net in the<br />
&nbsp;* footer of the pages MUST remain visible when the pages<br />
&nbsp;* are viewed on the internet or intranet.<br />
&nbsp;*<br />
&nbsp;* This program is distributed in the hope that it will be useful,<br />
&nbsp;* but WITHOUT ANY WARRANTY; without even the implied warranty of<br />
&nbsp;* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br />
&nbsp;* GNU General Public License for more details.<br />
&nbsp;*<br />
&nbsp;* You should have received a copy of the GNU General Public License<br />
&nbsp;* along with this program; if not, write to the Free Software<br />
&nbsp;* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA&nbsp; 02111-1307, USA.<br />
&nbsp;*<br />
&nbsp;* Support can be obtained from support forums at:<br />
&nbsp;* http://www.mvnForum.com/mvnforum/index<br />
&nbsp;*<br />
&nbsp;* Correspondence and Marketing Questions can be sent to:<br />
&nbsp;* info@MyVietnam.net<br />
&nbsp;*<br />
&nbsp;* @author: Minh Nguyen&nbsp; minhnn@MyVietnam.net<br />
&nbsp;* @author: Mai&nbsp; Nguyen&nbsp; mai.nh@MyVietnam.net<br />
&nbsp;*/<br />
package com.mvnforum;</span></p>
<p><span style="color: #0000ff">import java.awt.image.BufferedImage;<br />
import java.io.*;<br />
import java.util.*;</span></p>
<p><span style="color: #0000ff">import javax.servlet.ServletContext;<br />
import javax.servlet.http.*;</span></p>
<p><span style="color: #0000ff">import com.mvnforum.auth.*;<br />
import com.mvnforum.common.PrivateMessageUtil;<br />
import com.mvnforum.db.*;<br />
import com.mvnforum.search.member.MemberIndexer;<br />
import com.sun.image.codec.jpeg.JPEGCodec;<br />
import com.sun.image.codec.jpeg.JPEGImageEncoder;<br />
import net.myvietnam.mvncore.MVNCoreInfo;<br />
import net.myvietnam.mvncore.exception.*;<br />
import net.myvietnam.mvncore.filter.*;<br />
import net.myvietnam.mvncore.util.*;<br />
import org.apache.commons.logging.Log;<br />
import org.apache.commons.logging.LogFactory;</span></p>
<p><span style="color: #0000ff">public class MyUtil {</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; private static Log log = LogFactory.getLog(MyUtil.class);</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; private static RankCache rankCache = RankCache.getInstance();</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public static String filter(String input, boolean enableHTML, boolean enableEmotion,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; boolean enableMVNCode, boolean enableNewLine, boolean enableURL) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String output = input;</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (enableHTML) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; output = EnableHtmlTagFilter.filter(output);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; output = DisableHtmlTagFilter.filter(output);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (enableEmotion) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; output = EnableEmotionFilter.filter(output, ParamUtil.getContextPath() + MVNForumGlobal.EMOTION_DIR);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (enableMVNCode) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; output = EnableMVNCodeFilter.filter(output);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (enableNewLine) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; output = HtmlNewLineFilter.filter(output);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (enableURL) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; output = URLFilter.filter(output);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return output;<br />
&nbsp;&nbsp;&nbsp; }</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public static String getMemberTitle(int postCount) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String title = "";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ArrayList rankBeans = rankCache.getBeans();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i = 0; i &lt; rankBeans.size(); i++) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RankBean rankBean = (RankBean)rankBeans.get(i);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (rankBean.getRankMinPosts() &lt;= postCount) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; title = EnableMVNCodeFilter.filter(rankBean.getRankTitle());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }//for<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (Exception ex) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; log.error("Exception in getMemberTitile", ex);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return title;<br />
&nbsp;&nbsp;&nbsp; }</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public static String getForumIconName(long lastLogon, long lastPost) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String forumIcon = null;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (lastLogon &gt; lastPost) {// no new post<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; forumIcon = "f_norm_no.gif";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {// new post<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; forumIcon = "f_norm_new.gif";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return forumIcon;<br />
&nbsp;&nbsp;&nbsp; }</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public static String getThreadIconName(long lastLogon, long lastPost, int postCount) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String threadIcon = null;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (postCount &lt; MVNForumConfig.getHotTopicThreshold()) {//not hot topic<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (lastLogon &gt; lastPost) {// no new post<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; threadIcon = "f_norm_no.gif";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {// new post<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; threadIcon = "f_norm_new.gif";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {// hot topic<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (lastLogon &gt; lastPost) {// no new post<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; threadIcon = "f_hot_no.gif";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {// new post<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; threadIcon = "f_hot_new.gif";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return threadIcon;<br />
&nbsp;&nbsp;&nbsp; }</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public static String getThreadStatusName(Locale locale, int threadStatus) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String result = null;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; switch (threadStatus) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case ThreadBean.THREAD_STATUS_DEFAULT:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; result = MVNForumResourceBundle.getString(locale, "mvnforum.common.thread.status.normal");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case ThreadBean.THREAD_STATUS_DISABLED:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; result = MVNForumResourceBundle.getString(locale, "mvnforum.common.thread.status.disabled");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case ThreadBean.THREAD_STATUS_LOCKED:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; result = MVNForumResourceBundle.getString(locale, "mvnforum.common.thread.status.locked");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case ThreadBean.THREAD_STATUS_CLOSED:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; result = MVNForumResourceBundle.getString(locale, "mvnforum.common.thread.status.closed");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; default:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //throw new AssertionException("Cannot find matching thread status.");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return result;<br />
&nbsp;&nbsp;&nbsp; }</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public static String getThreadTypeName(Locale locale, int threadType) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String result = "Unknown";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; switch (threadType) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case ThreadBean.THREAD_TYPE_DEFAULT:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; result = MVNForumResourceBundle.getString(locale, "mvnforum.common.thread.type.normal_thread");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case ThreadBean.THREAD_TYPE_STICKY:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; result = MVNForumResourceBundle.getString(locale, "mvnforum.common.thread.type.sticky_thread");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case ThreadBean.THREAD_TYPE_FORUM_ANNOUNCEMENT:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; result = MVNForumResourceBundle.getString(locale, "mvnforum.common.thread.type.announcement_thread");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case ThreadBean.THREAD_TYPE_GLOBAL_ANNOUNCEMENT:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; result = MVNForumResourceBundle.getString(locale, "mvnforum.common.thread.type.global_announcement_thread");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; default:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //throw new AssertionException("Cannot find matching thread type.");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return result;<br />
&nbsp;&nbsp;&nbsp; }</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public static String getForumStatusName(Locale locale, int forumStatus) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String result = null;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; switch (forumStatus) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case ForumBean.FORUM_STATUS_DEFAULT:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; result = MVNForumResourceBundle.getString(locale, "mvnforum.common.forum.status.normal");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case ForumBean.FORUM_STATUS_DISABLED:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; result = MVNForumResourceBundle.getString(locale, "mvnforum.common.forum.status.disabled");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case ForumBean.FORUM_STATUS_LOCKED:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; result = MVNForumResourceBundle.getString(locale, "mvnforum.common.forum.status.locked");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case ForumBean.FORUM_STATUS_CLOSED:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; result = MVNForumResourceBundle.getString(locale, "mvnforum.common.forum.status.closed");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; default:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //throw new AssertionException("Cannot find matching forum status.");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return result;<br />
&nbsp;&nbsp;&nbsp; }</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public static boolean canViewAnyForumInCategory(int categoryID, MVNForumPermission permission) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Collection forumBeans = ForumCache.getInstance().getBeans();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (Iterator iter = forumBeans.iterator(); iter.hasNext(); ) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ForumBean forumBean = (ForumBean)iter.next();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (forumBean.getCategoryID() == categoryID) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (canViewForum(forumBean, permission)) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return true;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (DatabaseException ex) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; log.error("Cannot load the data in table Forum", ex);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false;<br />
&nbsp;&nbsp;&nbsp; }</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public static boolean canViewForum(ForumBean forumBean, MVNForumPermission permission) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (permission.canReadPost(forumBean.getForumID()) &amp;&amp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (forumBean.getForumStatus() != ForumBean.FORUM_STATUS_DISABLED) ) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return true;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false;<br />
&nbsp;&nbsp;&nbsp; }</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public static int getViewablePosts(Collection forumBeans, MVNForumPermission permission) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int count = 0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (Iterator iter = forumBeans.iterator(); iter.hasNext(); ) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ForumBean forumBean = (ForumBean)iter.next();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (canViewForum(forumBean, permission)) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; count += forumBean.getForumPostCount();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return count;<br />
&nbsp;&nbsp;&nbsp; }</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public static int getViewableThreads(Collection forumBeans, MVNForumPermission permission) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int count = 0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (Iterator iter = forumBeans.iterator(); iter.hasNext(); ) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ForumBean forumBean = (ForumBean)iter.next();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (canViewForum(forumBean, permission)) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; count += forumBean.getForumThreadCount();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return count;<br />
&nbsp;&nbsp;&nbsp; }</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public static int getViewableForums(Collection forumBeans, MVNForumPermission permission) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int count = 0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (Iterator iter = forumBeans.iterator(); iter.hasNext(); ) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ForumBean forumBean = (ForumBean)iter.next();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (canViewForum(forumBean, permission)) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; count++;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return count;<br />
&nbsp;&nbsp;&nbsp; }</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public static int getViewableCategories(Collection categoryBeans, MVNForumPermission permission) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int count = 0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (Iterator iter = categoryBeans.iterator(); iter.hasNext(); ) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CategoryBean categoryBean = (CategoryBean)iter.next();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (canViewAnyForumInCategory(categoryBean.getCategoryID(), permission)) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; count++;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return count;<br />
&nbsp;&nbsp;&nbsp; }</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; /**<br />
&nbsp;&nbsp;&nbsp;&nbsp; * Get the String with a slash character '/' before the locale name<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @param localeName the user's preferred locale<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @return the String with a slash character '/' before the locale name if<br />
&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this locale is configed to support it. Otherwise,<br />
&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; an empty String will be return<br />
&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;&nbsp;&nbsp; public static String getLocaleNameAndSlash(String localeName) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ( (localeName == null) || (localeName.length() == 0) ) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return "";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String retValue = "";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String[] supportedLocales = MVNForumConfig.getSupportedLocaleNames();</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (supportedLocales == null) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; log.error("Assertion in MyUtil.getLocaleNameAndSlash. Please check your configuration.");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return "";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i = 0; i &lt; supportedLocales.length; i++) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (localeName.equals(supportedLocales[i])) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; retValue = "/" + localeName;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return retValue;<br />
&nbsp;&nbsp;&nbsp; }</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public static String getCompanyCssPath(CompanyBean companyBean, String contextPath) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String cssPath = null;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (companyBean.getCompanyCss().length() &gt; 0) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cssPath = companyBean.getCompanyCss();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // use default company css<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cssPath = MVNForumGlobal.COMPANY_DEFAULT_CSS_PATH;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return contextPath + cssPath;<br />
&nbsp;&nbsp;&nbsp; }</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public static String getCompanyLogoPath(CompanyBean companyBean, String contextPath) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String logoPath = null;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (companyBean.getCompanyLogo().length() &gt; 0) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; logoPath = companyBean.getCompanyLogo();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // use default company logo<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; logoPath = MVNForumGlobal.COMPANY_DEFAULT_LOGO_PATH;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return contextPath + logoPath;<br />
&nbsp;&nbsp;&nbsp; }</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; /**<br />
&nbsp;&nbsp;&nbsp;&nbsp; * Get the locale from locale name<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @param localeName : in this format la_CO_VA, eg. en_US<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @return the locale instance of the localeName<br />
&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;&nbsp;&nbsp; public static Locale getLocale(String localeName) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // now, find out the 3 elements of a locale: language, country, variant<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String[] localeElement = StringUtil.getStringArray(localeName, "_");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String language = "";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String country = "";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String variant = "";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (localeElement.length &gt;= 1) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; language = localeElement[0];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (localeElement.length &gt;= 2) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; country = localeElement[1];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (localeElement.length &gt;= 3) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; variant = localeElement[2];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return new Locale(language, country, variant);<br />
&nbsp;&nbsp;&nbsp; }</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public static void ensureCorrectCurrentPassword(HttpServletRequest request)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throws BadInputException, AssertionException, DatabaseException, AuthenticationException {</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OnlineUser onlineUser = OnlineUserManager.getInstance().getOnlineUser(request);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OnlineUserFactory onlineUserFactory = ManagerFactory.getOnlineUserFactory();</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (onlineUser.getAuthenticationType() == OnlineUser.AUTHENTICATION_TYPE_REALM) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; onlineUserFactory.ensureCorrectPassword(onlineUser.getMemberName(), OnlineUserManager.PASSWORD_OF_METHOD_REALM, true);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else if (onlineUser.getAuthenticationType() == OnlineUser.AUTHENTICATION_TYPE_CUSTOMIZATION) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(MVNForumConfig.getEnablePasswordlessAuth()) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // dont need password<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; onlineUserFactory.ensureCorrectPassword(onlineUser.getMemberName(), OnlineUserManager.PASSWORD_OF_METHOD_CUSTOMIZATION, true);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // must have password<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // @todo: implement this case by using Authenticator<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; onlineUserFactory.ensureCorrectPassword(onlineUser.getMemberName(), OnlineUserManager.PASSWORD_OF_METHOD_CUSTOMIZATION, true);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //This user did not login by REALM or CUSTOMIZATION<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String memberPassword = "";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String memberPasswordMD5 = ParamUtil.getParameter(request, "md5pw", false);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (memberPasswordMD5.length() == 0 || (memberPasswordMD5.endsWith("==") == false)) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // md5 is not valid, try to use unencoded password method<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; memberPassword = ParamUtil.getParameterPassword(request, "MemberCurrentMatkhau", 3, 0);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (memberPassword.length() &gt; 0) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // that is we cannot find the md5 password<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; onlineUserFactory.ensureCorrectPassword(onlineUser.getMemberName(), memberPassword, false);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // have the md5, go ahead<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; onlineUserFactory.ensureCorrectPassword(onlineUser.getMemberName(), memberPasswordMD5, true);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (AuthenticationException e) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Locale locale = I18nUtil.getLocaleInRequest(request);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String localizedMessage = MVNForumResourceBundle.getString(locale, "mvncore.exception.BadInputException.wrong_password");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throw new BadInputException(localizedMessage);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //throw new BadInputException("You have typed the wrong password. Cannot proceed.");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public static void writeMvnForumImage(HttpServletRequest request, HttpServletResponse response) throws IOException {</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BufferedImage image = MVNForumInfo.getImage();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OutputStream outputStream = null;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; outputStream = response.getOutputStream();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; response.setContentType("image/jpeg");</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(outputStream);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; encoder.encode(image);</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; outputStream.flush();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (IOException ex) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throw ex;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } finally {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (outputStream != null) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; outputStream.close();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (IOException ex) { }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public static void writeMvnCoreImage(HttpServletRequest request, HttpServletResponse response) throws IOException {</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BufferedImage image = MVNCoreInfo.getImage();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OutputStream outputStream = null;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; outputStream = response.getOutputStream();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; response.setContentType("image/jpeg");</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(outputStream);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; encoder.encode(image);</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; outputStream.flush();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (IOException ex) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throw ex;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } finally {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (outputStream != null) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; outputStream.close();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (IOException ex) { }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public static void checkClassName(Locale locale, String className, boolean required) throws BadInputException {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (required == false) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (className.length() == 0) return;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Class.forName(className);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (ClassNotFoundException ex) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throw new BadInputException("Cannot load class: " + className);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public static void saveVNTyperMode(HttpServletRequest request, HttpServletResponse response) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String vnTyperMode = ParamUtil.getParameter(request, "vnselector");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (vnTyperMode.equals("VNI") || vnTyperMode.equals("TELEX") ||<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vnTyperMode.equals("VIQR") || vnTyperMode.equals("NOVN")) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Cookie typerModeCookie = new Cookie(MVNForumConstant.VN_TYPER_MODE, vnTyperMode);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; typerModeCookie.setPath("/");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; response.addCookie(typerModeCookie);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public static Hashtable checkMembers(String[] memberNames, Locale locale)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throws AssertionException, DatabaseException, BadInputException {</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Hashtable memberMap = new Hashtable();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; boolean isFailed = false;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; StringBuffer missingNames = new StringBuffer(512);</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i = 0; i &lt; memberNames.length; i++) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int receivedMemberID = -1;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String memberName = memberNames[i];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; StringUtil.checkGoodName(memberName);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; receivedMemberID = DAOFactory.getMemberDAO().getMemberIDFromMemberName(memberName);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (ObjectNotFoundException ex) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; isFailed = true;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (missingNames.length() &gt; 0) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; missingNames.append(", ");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; missingNames.append(memberName);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; continue;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; memberMap.put(new Integer(receivedMemberID), memberName);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } // end for</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (isFailed) { // the receivers does not exist.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String localizedMessage = MVNForumResourceBundle.getString(locale, "mvncore.exception.BadInputException.receivers_are_not_members", new Object[] {missingNames});<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throw new BadInputException(localizedMessage);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return memberMap;<br />
&nbsp;&nbsp;&nbsp; }<br />
}</span></p>
<p><span style="color: #0000ff">&nbsp;</span></p>
<img src ="http://www.blogjava.net/yooli88/aggbug/144194.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yooli88/" target="_blank">迷茫在java的世界里</a> 2007-09-11 11:27 <a href="http://www.blogjava.net/yooli88/archive/2007/09/11/144194.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MVNForumResourceBundle</title><link>http://www.blogjava.net/yooli88/archive/2007/09/11/144193.html</link><dc:creator>迷茫在java的世界里</dc:creator><author>迷茫在java的世界里</author><pubDate>Tue, 11 Sep 2007 03:26:00 GMT</pubDate><guid>http://www.blogjava.net/yooli88/archive/2007/09/11/144193.html</guid><wfw:comment>http://www.blogjava.net/yooli88/comments/144193.html</wfw:comment><comments>http://www.blogjava.net/yooli88/archive/2007/09/11/144193.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yooli88/comments/commentRss/144193.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yooli88/services/trackbacks/144193.html</trackback:ping><description><![CDATA[<p style="color: #0000ff"><span style="color: #0000ff"><span style="color: #0000ff"><span style="color: #0000ff">/*<br />
&nbsp;* $Header: /cvsroot/mvnforum/mvnforum/src/com/mvnforum/MVNForumResourceBundle.java,v 1.6 2005/01/18 11:52:08 minhnn Exp $<br />
&nbsp;* $Author: minhnn $<br />
&nbsp;* $Revision: 1.6 $<br />
&nbsp;* $Date: 2005/01/18 11:52:08 $<br />
&nbsp;*<br />
&nbsp;* ====================================================================<br />
&nbsp;*<br />
&nbsp;* Copyright (C) 2002-2005 by MyVietnam.net<br />
&nbsp;*<br />
&nbsp;* This program is free software; you can redistribute it and/or<br />
&nbsp;* modify it under the terms of the GNU General Public License<br />
&nbsp;* as published by the Free Software Foundation; either version 2<br />
&nbsp;* of the License, or any later version.<br />
&nbsp;*<br />
&nbsp;* All copyright notices regarding mvnForum MUST remain intact<br />
&nbsp;* in the scripts and in the outputted HTML.<br />
&nbsp;* The "powered by" text/logo with a link back to<br />
&nbsp;* http://www.mvnForum.com and http://www.MyVietnam.net in the<br />
&nbsp;* footer of the pages MUST remain visible when the pages<br />
&nbsp;* are viewed on the internet or intranet.<br />
&nbsp;*<br />
&nbsp;* This program is distributed in the hope that it will be useful,<br />
&nbsp;* but WITHOUT ANY WARRANTY; without even the implied warranty of<br />
&nbsp;* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br />
&nbsp;* GNU General Public License for more details.<br />
&nbsp;*<br />
&nbsp;* You should have received a copy of the GNU General Public License<br />
&nbsp;* along with this program; if not, write to the Free Software<br />
&nbsp;* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA&nbsp; 02111-1307, USA.<br />
&nbsp;*<br />
&nbsp;* Support can be obtained from support forums at:<br />
&nbsp;* http://www.mvnForum.com/mvnforum/index<br />
&nbsp;*<br />
&nbsp;* Correspondence and Marketing Questions can be sent to:<br />
&nbsp;* info@MyVietnam.net<br />
&nbsp;*<br />
&nbsp;* @author: Minh Nguyen&nbsp; minhnn@MyVietnam.net<br />
&nbsp;* @author: Pavel Av<br />
&nbsp;*/<br />
package com.mvnforum;</span></span></span></p>
<p><span style="color: #0000ff"><span style="color: #ff6600"><span style="color: #0000ff">import java.util.Locale;<br />
import java.util.ResourceBundle;</span></span></span></p>
<p><span style="color: #0000ff"><span style="color: #ff6600"><span style="color: #0000ff">import net.myvietnam.mvncore.i18n.CacheResourceBundle;</span></span></span></p>
<p><span style="color: #0000ff"><span style="color: #ff6600"><span style="color: #0000ff">public class MVNForumResourceBundle {</span></span></span></p>
<p><span style="color: #0000ff"><span style="color: #ff6600"><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; private static CacheResourceBundle cacheResourceBundle = new CacheResourceBundle(MVNForumGlobal.RESOURCE_BUNDLE_NAME);</span></span></span></p>
<p><span style="color: #0000ff"><span style="color: #ff6600"><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; private MVNForumResourceBundle() {<br />
&nbsp;&nbsp;&nbsp; }</span></span></span></p>
<p><span style="color: #0000ff"><span style="color: #ff6600"><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public static ResourceBundle getResourceBundle(Locale locale) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return cacheResourceBundle.getResourceBundle(locale);<br />
&nbsp;&nbsp;&nbsp; }</span></span></span></p>
<p><span style="color: #0000ff"><span style="color: #ff6600"><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public static String getString(Locale locale, String key) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return cacheResourceBundle.getString(locale, key);<br />
&nbsp;&nbsp;&nbsp; }</span></span></span></p>
<p><span style="color: #0000ff"><span style="color: #ff6600"><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public static String getString(Locale locale, String key, Object[] args) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return cacheResourceBundle.getString(locale, key, args);<br />
&nbsp;&nbsp;&nbsp; }<br />
}<br />
</span></span></span></p>
<img src ="http://www.blogjava.net/yooli88/aggbug/144193.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yooli88/" target="_blank">迷茫在java的世界里</a> 2007-09-11 11:26 <a href="http://www.blogjava.net/yooli88/archive/2007/09/11/144193.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MVNForumInfo</title><link>http://www.blogjava.net/yooli88/archive/2007/09/11/144190.html</link><dc:creator>迷茫在java的世界里</dc:creator><author>迷茫在java的世界里</author><pubDate>Tue, 11 Sep 2007 03:22:00 GMT</pubDate><guid>http://www.blogjava.net/yooli88/archive/2007/09/11/144190.html</guid><description><![CDATA[<p align="center"><span style="color: #0000ff">&nbsp;</span></p>
<p><span style="color: #0000ff">/*<br />
&nbsp;* $Header: /cvsroot/mvnforum/mvnforum/src/com/mvnforum/MVNForumInfo.java,v 1.36.2.2 2005/06/17 17:53:37 minhnn Exp $<br />
&nbsp;* $Author: minhnn $<br />
&nbsp;* $Revision: 1.36.2.2 $<br />
&nbsp;* $Date: 2005/06/17 17:53:37 $<br />
&nbsp;*<br />
&nbsp;* ====================================================================<br />
&nbsp;*<br />
&nbsp;* Copyright (C) 2002-2005 by MyVietnam.net<br />
&nbsp;*<br />
&nbsp;* This program is free software; you can redistribute it and/or<br />
&nbsp;* modify it under the terms of the GNU General Public License<br />
&nbsp;* as published by the Free Software Foundation; either version 2<br />
&nbsp;* of the License, or any later version.<br />
&nbsp;*<br />
&nbsp;* All copyright notices regarding mvnForum MUST remain intact<br />
&nbsp;* in the scripts and in the outputted HTML.<br />
&nbsp;* The "powered by" text/logo with a link back to<br />
&nbsp;* http://www.mvnForum.com and http://www.MyVietnam.net in the<br />
&nbsp;* footer of the pages MUST remain visible when the pages<br />
&nbsp;* are viewed on the internet or intranet.<br />
&nbsp;*<br />
&nbsp;* This program is distributed in the hope that it will be useful,<br />
&nbsp;* but WITHOUT ANY WARRANTY; without even the implied warranty of<br />
&nbsp;* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br />
&nbsp;* GNU General Public License for more details.<br />
&nbsp;*<br />
&nbsp;* You should have received a copy of the GNU General Public License<br />
&nbsp;* along with this program; if not, write to the Free Software<br />
&nbsp;* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA&nbsp; 02111-1307, USA.<br />
&nbsp;*<br />
&nbsp;* Support can be obtained from support forums at:<br />
&nbsp;* http://www.mvnForum.com/mvnforum/index<br />
&nbsp;*<br />
&nbsp;* Correspondence and Marketing Questions can be sent to:<br />
&nbsp;* info@MyVietnam.net<br />
&nbsp;*<br />
&nbsp;* @author: Minh Nguyen&nbsp; minhnn@MyVietnam.net<br />
&nbsp;* @author: Mai&nbsp; Nguyen&nbsp; mai.nh@MyVietnam.net<br />
&nbsp;*/<br />
package com.mvnforum;</span></p>
<p><span style="color: #0000ff">import java.awt.*;<br />
import java.awt.image.BufferedImage;</span></p>
<p><span style="color: #0000ff">public class MVNForumInfo {</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; private MVNForumInfo() {<br />
&nbsp;&nbsp;&nbsp; }</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; private static String PRODUCT_NAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = "mvnForum";</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; private static String PRODUCT_DESC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = "mvnForum 1.0.0 RC4 Update 4";</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; private static String PRODUCT_VERSION&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = "1.0.0-RC4_04";</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; private static String PRODUCT_RELEASE_DATE = "18 June 2005";</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; private static String PRODUCT_HOMEPAGE&nbsp;&nbsp;&nbsp;&nbsp; = "http://www.mvnForum.com";</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public static String getProductName() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return PRODUCT_NAME;<br />
&nbsp;&nbsp;&nbsp; }</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public static String getProductDesc() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return PRODUCT_DESC;<br />
&nbsp;&nbsp;&nbsp; }</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public static String getProductVersion() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return PRODUCT_VERSION;<br />
&nbsp;&nbsp;&nbsp; }</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public static String getProductReleaseDate() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return PRODUCT_RELEASE_DATE;<br />
&nbsp;&nbsp;&nbsp; }</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public static String getProductHomepage() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return PRODUCT_HOMEPAGE;<br />
&nbsp;&nbsp;&nbsp; }</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public static BufferedImage getImage() {</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String str = PRODUCT_VERSION + " on " + PRODUCT_RELEASE_DATE;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int IMAGE_WIDTH&nbsp; = 250;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int IMAGE_HEIGHT = 30;</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BufferedImage bufferedImage = new BufferedImage(IMAGE_WIDTH, IMAGE_HEIGHT, BufferedImage.TYPE_INT_RGB);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Graphics2D g = bufferedImage.createGraphics();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; g.setBackground(Color.blue);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; g.setColor(Color.white);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; g.draw3DRect(0, 0, IMAGE_WIDTH, IMAGE_HEIGHT, false);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FontMetrics fontMetrics = g.getFontMetrics();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int strWidth&nbsp; = fontMetrics.stringWidth(str);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int strHeight = fontMetrics.getAscent() + fontMetrics.getDescent();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; g.drawString(str, (IMAGE_WIDTH - strWidth) / 2, IMAGE_HEIGHT - ((IMAGE_HEIGHT - strHeight) / 2) - fontMetrics.getDescent());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; g.dispose(); // free resource<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return bufferedImage;<br />
&nbsp;&nbsp;&nbsp; }</span></p>
<p><span style="color: #0000ff">}<br />
</span></p>
  <img src ="http://www.blogjava.net/yooli88/aggbug/144190.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yooli88/" target="_blank">迷茫在java的世界里</a> 2007-09-11 11:22 <a href="http://www.blogjava.net/yooli88/archive/2007/09/11/144190.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>