libreccm-legacy/ccm-forum/src/com/arsdigita/forum/ForumServlet.java

91 lines
3.1 KiB
Java
Executable File

/*
* Copyright (C) 2002-2004 Red Hat Inc. All Rights Reserved.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
* as published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
package com.arsdigita.forum;
import com.arsdigita.bebop.Page;
import com.arsdigita.bebop.page.BebopApplicationServlet;
// unused import
// import com.arsdigita.bebop.parameters.BigDecimalParameter;
import com.arsdigita.forum.ui.Constants;
import java.util.Iterator;
// unused import
//import java.util.Map;
import javax.servlet.ServletException;
import org.apache.log4j.Logger;
/**
*
* @author Justin Ross &lt;<a href="mailto:jross@redhat.com">jross@redhat.com</a>&gt;
*
* @author Chris Gilbert (chris.gilbert@westsussex.gov.uk) updated to make use of
* PageFactory and to enable disablement of client/middleware
* caching
* @version $Id: ForumServlet.java 1628 2007-09-17 08:10:40Z chrisg23 $
*/
public class ForumServlet extends BebopApplicationServlet
implements Constants {
/** Private logger instance for debugging purpose */
private static final Logger s_log = Logger.getLogger(ForumServlet.class);
/**
*
* @throws ServletException
*/
@Override
public void init() throws ServletException {
super.init();
s_log.debug("creating forum page");
final Page forum = ForumPageFactory.getPage(ForumPageFactory.FORUM_PAGE);
s_log.debug("creating thread page");
final Page thread = ForumPageFactory.getPage(ForumPageFactory.THREAD_PAGE);
put("/", forum);
put("/index.jsp", forum);
put("/thread.jsp", thread);
if (Forum.getConfig().disableClientPageCaching()) {
s_log.debug("caching disabled");
disableClientCaching("/");
disableClientCaching("/index.jsp");
disableClientCaching("/thread.jsp");
}
// allow other pages to be added
// eg - allows categorised forum to add load-category page
// for AJAX category asignment
Iterator it = ForumPageFactory.getPages();
while (it.hasNext()) {
Object key = (Object)it.next();
if (!key.equals(ForumPageFactory.FORUM_PAGE) &&
!key.equals(ForumPageFactory.THREAD_PAGE)) {
put("/" + key, ForumPageFactory.getPage((String)key));
if (Forum.getConfig().disableClientPageCaching()) {
disableClientCaching("/" + key);
}
}
}
}
}