/* * 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 <jross@redhat.com> * * @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); } } } } }