You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by sn...@apache.org on 2005/08/08 16:43:03 UTC
svn commit: r230810 [4/6] - in /incubator/roller/branches/roller_2.0: ./
contrib/plugins/src/org/roller/presentation/velocity/plugins/acronyms/
contrib/plugins/src/org/roller/presentation/velocity/plugins/convertbreaks/
contrib/plugins/src/org/roller/p...
Modified: incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/ContextLoader.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/ContextLoader.java?rev=230810&r1=230809&r2=230810&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/ContextLoader.java (original)
+++ incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/ContextLoader.java Mon Aug 8 07:41:04 2005
@@ -27,11 +27,15 @@
import org.roller.config.RollerRuntimeConfig;
import org.roller.model.Roller;
import org.roller.model.RollerFactory;
+import org.roller.pojos.Template;
import org.roller.pojos.CommentData;
-import org.roller.pojos.PageData;
import org.roller.pojos.RollerPropertyData;
import org.roller.pojos.WeblogEntryData;
import org.roller.pojos.WebsiteData;
+import org.roller.pojos.wrapper.CommentDataWrapper;
+import org.roller.pojos.wrapper.TemplateWrapper;
+import org.roller.pojos.wrapper.WeblogEntryDataWrapper;
+import org.roller.pojos.wrapper.WebsiteDataWrapper;
import org.roller.presentation.LanguageUtil;
import org.roller.presentation.RollerContext;
import org.roller.presentation.RollerRequest;
@@ -123,6 +127,8 @@
*/
private static void loadStatusMessage(Context ctx, RollerRequest rreq)
{
+ mLogger.debug("Loading status message");
+
HttpSession session = rreq.getRequest().getSession(false);
String msg = null;
if (session != null)
@@ -154,47 +160,29 @@
Context ctx, RollerRequest rreq, RollerContext rollerCtx, String handle)
throws RollerException
{
+ mLogger.debug("Loading weblog values");
+
// if there is an "_entry" page, only load it once
WebsiteData website =
RollerFactory.getRoller().getUserManager().getWebsiteByHandle(handle);
- PageModel pageModel = (PageModel)ctx.get("pageModel");
- if (website != null && pageModel != null)
+ if (website != null)
{
/* alternative display pages - customization */
- PageData entryPage = pageModel.getUsersPageByName(website, "_entry");
+ Template entryPage = website.getPageByName("_entry");
if (entryPage != null)
{
- ctx.put("entryPage", entryPage);
+ ctx.put("entryPage", TemplateWrapper.wrap(entryPage));
}
- PageData descPage = pageModel.getUsersPageByName(website, "_desc");
+ Template descPage = website.getPageByName("_desc");
if (descPage != null)
{
- ctx.put("descPage", descPage);
+ ctx.put("descPage", TemplateWrapper.wrap(descPage));
}
}
}
private static String figureResourcePath( RollerRequest rreq )
- {
- /* old way -- Allen G
- HttpServletRequest request = rreq.getRequest();
- RollerContext rCtx = RollerContext.getRollerContext( request );
- RollerConfigData rollerConfig = rCtx.getRollerConfig();
-
- StringBuffer sb = new StringBuffer();
- String uploadPath = rollerConfig.getUploadPath();
- if ( uploadPath != null && uploadPath.trim().length() > 0 )
- {
- sb.append( uploadPath );
- }
- else
- {
- sb.append( request.getContextPath() );
- sb.append( RollerContext.USER_RESOURCES );
- }
- return sb.toString();
- */
-
+ {
String uploadurl = null;
try {
uploadurl = RollerFactory.getRoller().getFileManager().getUploadUrl();
@@ -209,6 +197,8 @@
Context ctx, RollerRequest rreq, RollerContext rollerCtx )
throws RollerException
{
+ mLogger.debug("Loading comment values");
+
HttpServletRequest request = rreq.getRequest();
String escapeHtml = RollerRuntimeConfig.getProperty("users.comments.escapehtml");
@@ -221,7 +211,7 @@
// Make sure comment form object is available in context
CommentFormEx commentForm =
- (CommentFormEx)request.getAttribute("commentForm");
+ (CommentFormEx) request.getAttribute("commentForm");
if ( commentForm == null )
{
commentForm = new CommentFormEx();
@@ -240,11 +230,11 @@
ArrayList list = new ArrayList();
CommentData cd = new CommentData();
commentForm.copyTo(cd, request.getLocale());
- list.add(cd);
+ list.add(CommentDataWrapper.wrap(cd));
ctx.put("previewComments",list);
}
WeblogEntryData entry = rreq.getWeblogEntry();
- ctx.put("entry",entry);
+ ctx.put("entry", WeblogEntryDataWrapper.wrap(entry));
}
//------------------------------------------------------------------------
@@ -253,6 +243,8 @@
Context ctx, RollerRequest rreq, RollerContext rollerCtx, String userName)
throws RollerException
{
+ mLogger.debug("Loading path values");
+
HttpServletRequest request = rreq.getRequest();
String url = null;
if ( userName != null && !userName.equals("zzz_none_zzz"))
@@ -285,6 +277,8 @@
protected static void loadRequestParamKeys(Context ctx)
{
+ mLogger.debug("Loading request param keys");
+
// Since Velocity *requires* accessor methods, these values from
// RollerRequest are not available to it, put them into the context
ctx.put("USERNAME_KEY", RollerRequest.USERNAME_KEY);
@@ -310,6 +304,8 @@
protected static void loadRssValues(
Context ctx, RollerRequest rreq, String handle) throws RollerException
{
+ mLogger.debug("Loading rss values");
+
HttpServletRequest request = rreq.getRequest();
int entryLength = -1;
@@ -356,7 +352,8 @@
Context ctx, RollerRequest rreq, RollerContext rollerCtx, String handle)
throws RollerException
{
-
+ mLogger.debug("Loading utility objects");
+
// date formatter for macro's
// set this up with the Locale to make sure we can reuse it with other patterns
// in the macro's
@@ -375,7 +372,7 @@
// the Entry Day link.
ctx.put("plainFormat", "yyyyMMdd");
- ctx.put("page", rreq.getPage() );
+ ctx.put("page", TemplateWrapper.wrap(rreq.getPage()));
ctx.put("utilities", new Utilities() );
ctx.put("stringUtils", new StringUtils() );
ctx.put("rollerVersion", rollerCtx.getRollerVersion() );
@@ -414,7 +411,6 @@
ctx.put("userName", handle);
ctx.put("fullName", website.getName() );
ctx.put("emailAddress", website.getEmailAddress() );
-
ctx.put("encodedEmail", RegexUtil.encode(website.getEmailAddress()));
ctx.put("obfuscatedEmail", RegexUtil.obfuscateEmail(website.getEmailAddress()));
@@ -440,7 +436,7 @@
ctx.put("timezone", TimeZone.getDefault());
ctx.put("timeZone", TimeZone.getDefault());
}
- ctx.put("website", website );
+ ctx.put("website", WebsiteDataWrapper.wrap(website) );
String siteName = ((RollerPropertyData)props.get("site.name")).getValue();
if ("Roller-based Site".equals(siteName)) siteName = "Main";
@@ -467,6 +463,8 @@
*/
public static void initializePagePlugins(ServletContext mContext)
{
+ mLogger.debug("Initializing page plugins");
+
String pluginStr = RollerConfig.getProperty("plugins.page");
if (mLogger.isDebugEnabled()) mLogger.debug(pluginStr);
if (pluginStr != null)
@@ -539,6 +537,8 @@
private static ToolboxContext loadToolboxContext(
HttpServletRequest request, HttpServletResponse response, Context ctx)
{
+ mLogger.debug("Loading toolbox context");
+
ServletContext servletContext = RollerContext.getServletContext();
// get the toolbox manager
Modified: incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/ExportRss.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/ExportRss.java?rev=230810&r1=230809&r2=230810&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/ExportRss.java (original)
+++ incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/ExportRss.java Mon Aug 8 07:41:04 2005
@@ -1,17 +1,5 @@
package org.roller.presentation.velocity;
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.StringWriter;
-import java.text.SimpleDateFormat;
-import java.util.Collection;
-import java.util.Date;
-import java.util.Locale;
-import java.util.Properties;
-import java.util.TimeZone;
-
import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.VelocityEngine;
@@ -26,6 +14,18 @@
import org.roller.util.StringUtils;
import org.roller.util.Utilities;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.StringWriter;
+import java.text.SimpleDateFormat;
+import java.util.Collection;
+import java.util.Date;
+import java.util.Locale;
+import java.util.Properties;
+import java.util.TimeZone;
+
/**
* Does a lot of the same work as ContextLoader in preparing
* a VelocityContext for parsing. However, it is ignorant of
@@ -197,12 +197,12 @@
ctx.put("locale", locale);
// setup Timezone for future rendering
- ctx.put("timeZone", website.getTimeZoneInstance());
+ ctx.put("timezone", website.getTimeZoneInstance());
// date formats need to be run through the Localized
// SimpleDateFormat and pulled back out as localized patterns.
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd", locale);
- sdf.setTimeZone( (TimeZone)ctx.get("timeZone") );
+ sdf.setTimeZone( (TimeZone)ctx.get("timezone") );
ctx.put("plainFormat", sdf.toLocalizedPattern());
sdf.applyPattern("EEEE MMMM dd, yyyy");
Modified: incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/FlavorServlet.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/FlavorServlet.java?rev=230810&r1=230809&r2=230810&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/FlavorServlet.java (original)
+++ incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/FlavorServlet.java Mon Aug 8 07:41:04 2005
@@ -1,11 +1,4 @@
package org.roller.presentation.velocity;
-import java.io.IOException;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.jsp.JspFactory;
-import javax.servlet.jsp.PageContext;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
@@ -15,6 +8,13 @@
import org.apache.velocity.servlet.VelocityServlet;
import org.roller.RollerException;
import org.roller.presentation.RollerRequest;
+import java.io.IOException;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.jsp.JspFactory;
+import javax.servlet.jsp.PageContext;
+
/////////////////////////////////////////////////////////////////////////////
/**
* <p>Responsible for rendering RSS feeds and other "flavors" of output for a
Modified: incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/FoafServlet.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/FoafServlet.java?rev=230810&r1=230809&r2=230810&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/FoafServlet.java (original)
+++ incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/FoafServlet.java Mon Aug 8 07:41:04 2005
@@ -1,11 +1,5 @@
package org.roller.presentation.velocity;
-import java.io.IOException;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.velocity.Template;
@@ -13,17 +7,27 @@
import org.apache.velocity.servlet.VelocityServlet;
import org.roller.RollerException;
import org.roller.model.UserManager;
-import org.roller.pojos.PageData;
+import org.roller.pojos.UserData;
import org.roller.pojos.WebsiteData;
import org.roller.presentation.RollerContext;
import org.roller.presentation.RollerRequest;
import org.roller.util.Utilities;
+import java.io.IOException;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.roller.model.Roller;
+import org.roller.model.RollerFactory;
+import org.roller.presentation.RollerSession;
+
//////////////////////////////////////////////////////////////////////////////
/**
- * <p>Responsible for rendering FOAF feed. This servlet requires
+ * <p>ROLLER_2.0: FOAF is broken in Roller 2.0.
+ * Responsible for rendering FOAF feed. This servlet requires
* that the RequestFilter is in place for it, and should also
* have the IfModifiedFilter configured.</p>
*
@@ -110,33 +114,38 @@
{
HttpServletRequest request = rreq.getRequest();
RollerContext rollerCtx = RollerContext.getRollerContext( request );
-
- WebsiteData website = rreq.getWebsite();
- ctx.put("fullName", website.getName()); // name for FlavorServlet compatibility
+ RollerSession rses = RollerSession.getRollerSession(request);
+ Roller roller = RollerFactory.getRoller();
+ // ROLLER_2.0 : figure out how to fix FOAF servlet (does anybody use it?)
+ // UserData user =
+ // roller.getUserManager().getUser(userName, Boolean.TRUE);
+ // ctx.put("fullName", user.getFullName()); // name for FlavorServlet compatibility
// foaf:homepage to equal base URL for user
- String homepage = Utilities.escapeHTML(
- rollerCtx.getAbsoluteContextUrl(request) +
- "/page/" + website.getHandle() );
- ctx.put("websiteURL", homepage); // name for FlavorServlet compatibility
+ //String homepage = Utilities.escapeHTML(
+ //rollerCtx.getAbsoluteContextUrl(request) +
+ //"/page/" + user.getUserName() );
+ //ctx.put("websiteURL", homepage); // name for FlavorServlet compatibility
// see if foaf:weblog is different Page
+ WebsiteData website = rreq.getWebsite();
UserManager usrMgr = RollerContext.getRoller(request).getUserManager();
- PageData weblog = usrMgr.getPageByName(website, "Weblog");
+ org.roller.pojos.Template weblog = website.getPageByName("Weblog");
+
// if weblog != homepage, add to context
if (weblog != null && !website.getDefaultPageId().equals(weblog.getId()))
{
- String weblogUrl = Utilities.escapeHTML(
- rollerCtx.getAbsoluteContextUrl(request) +
- "/page/" + website.getHandle() +
- "/" + weblog.getLink() );
- ctx.put("weblog", weblogUrl);
+ //String weblogUrl = Utilities.escapeHTML(
+ //rollerCtx.getAbsoluteContextUrl(request) +
+ //"/page/" + user.getUserName() +
+ //"/" + weblog.getLink() );
+ //ctx.put("weblog", weblogUrl);
}
// use SHA1 encrypted email address, including mailto: prefix
- String shaEmail = Utilities.encodePassword(
- "mailto:" + website.getEmailAddress(), "SHA");
- ctx.put("shaEmail", shaEmail);
+ //String shaEmail = Utilities.encodePassword(
+ //"mailto:" + user.getEmailAddress(), "SHA");
+ //ctx.put("shaEmail", shaEmail);
}
//------------------------------------------------------------------------
Modified: incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/PageHelper.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/PageHelper.java?rev=230810&r1=230809&r2=230810&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/PageHelper.java (original)
+++ incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/PageHelper.java Mon Aug 8 07:41:04 2005
@@ -1,6 +1,4 @@
package org.roller.presentation.velocity;
-
-import java.io.StringWriter;
import java.net.MalformedURLException;
import java.util.ArrayList;
import java.util.Collection;
@@ -19,12 +17,12 @@
import org.apache.struts.Globals;
import org.apache.struts.util.RequestUtils;
import org.apache.velocity.VelocityContext;
-import org.apache.velocity.app.Velocity;
import org.apache.velocity.context.Context;
import org.roller.RollerException;
-import org.roller.pojos.RefererData;
import org.roller.pojos.WeblogEntryData;
import org.roller.pojos.WebsiteData;
+import org.roller.pojos.wrapper.RefererDataWrapper;
+import org.roller.pojos.wrapper.WeblogEntryDataWrapper;
import org.roller.presentation.LanguageUtil;
import org.roller.presentation.RollerContext;
import org.roller.presentation.RollerRequest;
@@ -165,29 +163,20 @@
/**
* Evaluates the String as a Velocimacro, returning the results.
+ *
+ * @deprecated shouldn't be used anymore because it's dangerous
*
* @param str String
* @return String
*/
public String evaluateString(String str)
{
- if (mVelocityContext == null) return str;
-
- StringWriter sw = new StringWriter();
- try
- {
- Velocity.evaluate( mVelocityContext, sw, "evalStr", str );
- return sw.toString();
- }
- catch (Exception e)
- {
- mLogger.warn("VelocityHelper.evaluateString()", e);
- }
- return "";
+ // we no longer allow users to do this because it is dangerous
+ return str;
}
/** Build the URL for editing an WeblogEntry **/
- public String getEntryEditUrl(WeblogEntryData entry)
+ public String getEntryEditUrl(WeblogEntryDataWrapper entry)
{
Hashtable params = new Hashtable();
params.put( RollerRequest.WEBLOGENTRYID_KEY, entry.getId());
@@ -210,7 +199,7 @@
}
//-------------------------------------------------------------------------
- public String getToggleLinkbackDisplayHTML(RefererData referer)
+ public String getToggleLinkbackDisplayHTML(RefererDataWrapper referer)
{
String ret = "";
String link = null;
@@ -483,14 +472,21 @@
*/
public String renderPlugins(String str)
{
+ mLogger.debug("Rendering page plugins on String");
+
if (mPagePlugins != null)
{
Iterator iter = mPagePlugins.iterator();
+ PagePlugin plugin = null;
while (iter.hasNext())
{
- str = ((PagePlugin)iter.next()).render(str);
+ plugin = (PagePlugin) iter.next();
+
+ mLogger.debug("applying plugin - ");
+ str = plugin.render(str);
}
}
+
return str;
}
@@ -501,12 +497,14 @@
* @param str
* @return
*/
- public String renderPlugins(WeblogEntryData entry)
+ public String renderPlugins(WeblogEntryDataWrapper entry)
{
+ mLogger.debug("Rendering page plugins on WeblogEntryData");
+
// we have to make a copy to temporarily store the
// changes wrought by Plugins (otherwise they might
// end up persisted!).
- WeblogEntryData copy = new WeblogEntryData(entry);
+ WeblogEntryData copy = new WeblogEntryData(entry.getPojo());
if (mPagePlugins != null)
{
@@ -536,6 +534,7 @@
}
}
}
+
return copy.getText();
}
Modified: incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/PageModel.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/PageModel.java?rev=230810&r1=230809&r2=230810&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/PageModel.java (original)
+++ incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/PageModel.java Mon Aug 8 07:41:04 2005
@@ -15,16 +15,23 @@
import org.roller.config.RollerRuntimeConfig;
import org.roller.model.BookmarkManager;
import org.roller.model.RefererManager;
+import org.roller.model.Roller;
import org.roller.model.RollerFactory;
+import org.roller.pojos.Template;
import org.roller.model.UserManager;
import org.roller.model.WeblogManager;
-import org.roller.pojos.BookmarkComparator;
+import org.roller.pojos.CommentData;
import org.roller.pojos.FolderData;
-import org.roller.pojos.PageData;
import org.roller.pojos.RefererData;
import org.roller.pojos.WeblogCategoryData;
import org.roller.pojos.WeblogEntryData;
import org.roller.pojos.WebsiteData;
+import org.roller.pojos.wrapper.CommentDataWrapper;
+import org.roller.pojos.wrapper.FolderDataWrapper;
+import org.roller.pojos.wrapper.RefererDataWrapper;
+import org.roller.pojos.wrapper.TemplateWrapper;
+import org.roller.pojos.wrapper.WeblogCategoryDataWrapper;
+import org.roller.pojos.wrapper.WeblogEntryDataWrapper;
import org.roller.presentation.RollerRequest;
import org.roller.presentation.RollerSession;
import org.roller.util.StringUtils;
@@ -51,14 +58,11 @@
private HashMap mPageMap = new HashMap();
private RollerRequest mRollerReq = null;
private String mHandle = null;
- private WebsiteData mWebsite = null;
-
- private WeblogEntryData mNextEntry = null;
- private WeblogEntryData mPreviousEntry = null;
-
- private WeblogEntryData mLastEntry = null;
-
- private WeblogEntryData mFirstEntry;
+ private WebsiteData mWebsite = null;
+ private WeblogEntryDataWrapper mNextEntry = null;
+ private WeblogEntryDataWrapper mPreviousEntry = null;
+ private WeblogEntryDataWrapper mLastEntry = null;
+ private WeblogEntryDataWrapper mFirstEntry = null;
//------------------------------------------------------------------------
@@ -98,12 +102,16 @@
// Get the pages, put into context & load map
if (mWebsite != null)
{
- List pages = mUserMgr.getPages(mWebsite);
+ // if we have website from RollerRequest, use it
+ mWebsite = rreq.getWebsite();
+
+ // Get the pages, put into context & load map
+ List pages = mWebsite.getPages();
Iterator pageIter = pages.iterator();
while (pageIter.hasNext())
{
- PageData page = (PageData) pageIter.next();
- mPageMap.put(page.getName(), page);
+ Template page = (Template) pageIter.next();
+ mPageMap.put(page.getName(), TemplateWrapper.wrap(page));
}
}
}
@@ -116,12 +124,19 @@
//------------------------------------------------------------------------
/** Encapsulates folder.getBookmarks() & sorting */
- public Collection getBookmarks(FolderData folder)
+ public Collection getBookmarks(FolderDataWrapper folder)
{
+ mLogger.debug("Getting bookmarks for folder : "+folder.getName());
+
+ // since we already have a wrapped pojo we know the output
+ // will be wrapped as well :)
Collection bookmarks = folder.getBookmarks();
- List list = new ArrayList(bookmarks);
- Collections.sort( list, new BookmarkComparator() );
- return list;
+
+ // TODO: need to setup new BookmarkWrapperComparator
+ //List mBookmarks = new ArrayList(bookmarks);
+ //Collections.sort( mBookmarks, new BookmarkComparator() );
+
+ return bookmarks;
}
//------------------------------------------------------------------------
@@ -129,11 +144,20 @@
/** Get top level bookmark folders. */
public Collection getTopLevelFolders()
{
- Collection tops = null;
+ List tops = null;
try
{
- tops = mBookmarkMgr.getRootFolder(
- mUserMgr.getWebsiteByHandle(mHandle)).getFolders();
+ Collection mTops = mBookmarkMgr.getRootFolder(
+ mUserMgr.getWebsiteByHandle(mHandle)).getFolders();
+
+ // wrap pojos
+ tops = new ArrayList(mTops.size());
+ Iterator it = mTops.iterator();
+ int i=0;
+ while(it.hasNext()) {
+ tops.add(i, FolderDataWrapper.wrap((FolderData) it.next()));
+ i++;
+ }
}
catch (RollerException e)
{
@@ -163,15 +187,25 @@
/** Get comments for weblog entry specified by request */
public List getComments( WeblogEntryData entry )
{
+ List comments = new ArrayList();
try
{
- return mWeblogMgr.getComments( entry.getId() );
+ Collection mComments = mWeblogMgr.getComments( entry.getId() );
+
+ // wrap pojos
+ comments = new ArrayList(mComments.size());
+ Iterator it = mComments.iterator();
+ int i=0;
+ while(it.hasNext()) {
+ comments.add(i, CommentDataWrapper.wrap((CommentData) it.next()));
+ i++;
+ }
}
catch (RollerException e)
{
mLogger.error("PageModel getComments()", e);
}
- return new ArrayList();
+ return comments;
}
//------------------------------------------------------------------------
@@ -193,12 +227,13 @@
//------------------------------------------------------------------------
/** Encapsulates BookmarkManager.getFolder() */
- public FolderData getFolder(String folderPath)
+ public FolderDataWrapper getFolder(String folderPath)
{
try
{
- return mBookmarkMgr.getFolder(
- mUserMgr.getWebsiteByHandle(mHandle), folderPath);
+ return FolderDataWrapper.wrap(
+ mBookmarkMgr.getFolder(
+ mUserMgr.getWebsiteByHandle(mHandle), folderPath));
}
catch (RollerException e)
{
@@ -210,9 +245,9 @@
//------------------------------------------------------------------------
/** Encapsulates UserManager.getPageByName() */
- public PageData getUsersPageByName(WebsiteData website, String pageName)
+ public TemplateWrapper getUsersPageByName(WebsiteData website, String pageName)
{
- PageData page = null;
+ TemplateWrapper page = null;
try
{
if (website == null)
@@ -221,7 +256,7 @@
if (pageName == null)
throw new NullPointerException("pageName is null");
- page = mUserMgr.getPageByName(website, pageName);
+ page = TemplateWrapper.wrap(website.getPageByName(pageName));
}
catch (NullPointerException npe)
{
@@ -237,9 +272,9 @@
//------------------------------------------------------------------------
/** Encapsulates UserManager.getPageByName() */
- public PageData getPageByName(String pageName)
+ public TemplateWrapper getPageByName(String pageName)
{
- return (PageData)mPageMap.get(pageName);
+ return (TemplateWrapper) mPageMap.get(pageName);
}
//------------------------------------------------------------------------
@@ -247,15 +282,20 @@
/** Encapsulates UserManager.getPageByName() */
public String getPageIdByName(String pageName)
{
- PageData pd = (PageData)mPageMap.get(pageName);
- if ( pd != null )
- {
- return pd.getId();
- }
- else
- {
- return null;
+ mLogger.debug("looking up page ["+pageName+"]");
+
+ String template_id = null;
+
+ try {
+ Template pd = mWebsite.getPageByName(pageName);
+ template_id = pd.getId();
+ } catch(Exception e) {
+ mLogger.error(e);
}
+
+ mLogger.debug("returning template id ["+template_id+"]");
+
+ return template_id;
}
//------------------------------------------------------------------------
@@ -321,7 +361,7 @@
}
}
- ret = RollerFactory.getRoller().getWeblogManager().getWeblogEntryObjectMap(
+ Map mRet = RollerFactory.getRoller().getWeblogManager().getWeblogEntryObjectMap(
mRollerReq.getWebsite(),
null, // startDate
day, // endDate
@@ -329,6 +369,24 @@
WeblogEntryData.PUBLISHED, // status
new Integer(maxEntries)); // maxEntries
+ // need to wrap pojos
+ java.util.Date key = null;
+ Iterator days = mRet.keySet().iterator();
+ while(days.hasNext()) {
+ key = (java.util.Date)days.next();
+
+ // now we need to go through each entry in a day and wrap
+ List wrappedEntries = new ArrayList();
+ List entries = (List) mRet.get(key);
+ for(int i=0; i < entries.size(); i++) {
+ wrappedEntries.add(i,
+ WeblogEntryDataWrapper.wrap((WeblogEntryData)entries.get(i)));
+ }
+ mRet.put(key, wrappedEntries);
+ }
+
+ ret = mRet;
+
setFirstAndLastEntries( ret );
}
catch (Exception e)
@@ -355,7 +413,7 @@
int valSize = vals.size();
if (valSize > 0)
{
- mFirstEntry = (WeblogEntryData)vals.get(0);
+ mFirstEntry = (WeblogEntryDataWrapper)vals.get(0);
}
// get last entry in map
@@ -363,7 +421,7 @@
valSize = vals.size();
if (valSize > 0)
{
- mLastEntry = (WeblogEntryData)vals.get(--valSize);
+ mLastEntry = (WeblogEntryDataWrapper)vals.get(--valSize);
}
}
}
@@ -416,13 +474,22 @@
//ret = mgr.getRecentWeblogEntriesArray(
//name, day, catParam, maxEntries, true );
- ret = mgr.getWeblogEntries(
+ List mEntries = mgr.getWeblogEntries(
mRollerReq.getWebsite(),
null, // startDate
day, // endDate
catParam, // catName
WeblogEntryData.PUBLISHED, // status
new Integer(maxEntries)); // maxEntries
+
+ // wrap pojos
+ ret = new ArrayList(mEntries.size());
+ Iterator it = mEntries.iterator();
+ int i=0;
+ while(it.hasNext()) {
+ ret.add(i, WeblogEntryDataWrapper.wrap((WeblogEntryData) it.next()));
+ i++;
+ }
}
catch (Exception e)
{
@@ -455,7 +522,7 @@
if ( referer.getVisible().booleanValue()
|| rollerSession.isUserAuthorizedToAdmin() )
{
- referers.add(referer);
+ referers.add(RefererDataWrapper.wrap(referer));
}
}
}
@@ -477,7 +544,16 @@
List referers = null;
try
{
- referers = mRefererMgr.getTodaysReferers(mRollerReq.getWebsite());
+ List mReferers = mRefererMgr.getTodaysReferers(mRollerReq.getWebsite());
+
+ // wrap pojos
+ referers = new ArrayList(mReferers.size());
+ Iterator it = mReferers.iterator();
+ int i=0;
+ while(it.hasNext()) {
+ referers.add(i, RefererDataWrapper.wrap((RefererData) it.next()));
+ i++;
+ }
}
catch (RollerException e)
@@ -515,6 +591,7 @@
Iterator iter = weblogEntries.iterator();
while (iter.hasNext())
{
+ // NOTE: this will need to be WeblogEntryDataWrapper
WeblogEntryData wd = (WeblogEntryData)iter.next();
if ( updateTime == null )
{
@@ -557,7 +634,18 @@
{
category = mRollerReq.getWebsite().getDefaultCategory();
}
- ret = category.getWeblogCategories();
+
+ List mRet = category.getWeblogCategories();
+
+ // wrap pojos
+ ret = new ArrayList(mRet.size());
+ Iterator it = mRet.iterator();
+ int i=0;
+ while(it.hasNext()) {
+ ret.add(i, WeblogCategoryDataWrapper.wrap((WeblogCategoryData) it.next()));
+ i++;
+ }
+
mCategories.put(categoryName, ret);
}
catch (RollerException e)
@@ -571,9 +659,14 @@
//------------------------------------------------------------------------
/** Encapsulates RollerRequest.getWeblogEntry() */
- public WeblogEntryData getWeblogEntry()
+ public WeblogEntryDataWrapper getWeblogEntry()
{
- return mRollerReq.getWeblogEntry();
+ WeblogEntryData entry = mRollerReq.getWeblogEntry();
+
+ if(entry != null)
+ return WeblogEntryDataWrapper.wrap(entry);
+ else
+ return null;
}
//------------------------------------------------------------------------
@@ -581,9 +674,9 @@
/**
* Get the next occurring Entry.
*/
- public WeblogEntryData getNextEntry()
+ public WeblogEntryDataWrapper getNextEntry()
{
- WeblogEntryData currentEntry = getWeblogEntry();
+ WeblogEntryDataWrapper currentEntry = getWeblogEntry();
if (mFirstEntry != null) currentEntry = mFirstEntry;
if (mNextEntry == null && currentEntry != null)
{
@@ -594,7 +687,11 @@
}
try
{
- mNextEntry = mWeblogMgr.getNextEntry(currentEntry, catName);
+ WeblogEntryData nextEntry =
+ mWeblogMgr.getNextEntry(currentEntry.getPojo(), catName);
+
+ if(nextEntry != null)
+ mNextEntry = WeblogEntryDataWrapper.wrap(nextEntry);
// make sure that mNextEntry is not published to future
if (mNextEntry != null &&
@@ -616,12 +713,12 @@
/**
* Get the previous occurring Entry.
*/
- public WeblogEntryData getPreviousEntry()
+ public WeblogEntryDataWrapper getPreviousEntry()
{
- WeblogEntryData currentEntry = getWeblogEntry();
+ WeblogEntryDataWrapper currentEntry = getWeblogEntry();
if (mLastEntry != null) currentEntry = mLastEntry;
if (mPreviousEntry == null && currentEntry != null )
- {
+ {
String catName = null;
if (mRollerReq.getWeblogCategory() != null)
{
@@ -629,7 +726,11 @@
}
try
{
- mPreviousEntry = mWeblogMgr.getPreviousEntry(currentEntry, catName);
+ WeblogEntryData prevEntry =
+ mWeblogMgr.getPreviousEntry(currentEntry.getPojo(), catName);
+
+ if(prevEntry != null)
+ mPreviousEntry = WeblogEntryDataWrapper.wrap(prevEntry);
}
catch (RollerException e)
{
@@ -672,17 +773,22 @@
//------------------------------------------------------------------------
- public FolderData getFolderByPath(String path)
+ public FolderDataWrapper getFolderByPath(String path)
{
try
{
- return mBookmarkMgr.getFolderByPath(mWebsite, null, path);
+ FolderData folder = mBookmarkMgr.getFolderByPath(
+ mWebsite, null, path);
+
+ if(folder != null)
+ return FolderDataWrapper.wrap(folder);
}
catch (RollerException e)
{
mLogger.error(e);
- return null;
}
+
+ return null;
}
/**
@@ -693,15 +799,25 @@
*/
public List getRecentComments(int maxCount)
{
+ List recentComments = new ArrayList();
try
{
- return mWeblogMgr.getRecentComments(mRollerReq.getWebsite(), maxCount);
+ List recent = mWeblogMgr.getRecentComments(mRollerReq.getWebsite(), maxCount);
+
+ // wrap pojos
+ recentComments = new ArrayList(recent.size());
+ Iterator it = recent.iterator();
+ int i=0;
+ while(it.hasNext()) {
+ recentComments.add(i, CommentDataWrapper.wrap((CommentData) it.next()));
+ i++;
+ }
}
catch (RollerException e)
{
mLogger.error(e);
- return new ArrayList();
}
+ return recentComments;
}
public boolean getEmailComments()
Modified: incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/PageServlet.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/PageServlet.java?rev=230810&r1=230809&r2=230810&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/PageServlet.java (original)
+++ incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/PageServlet.java Mon Aug 8 07:41:04 2005
@@ -1,4 +1,3 @@
-
package org.roller.presentation.velocity;
import java.util.Properties;
@@ -16,9 +15,12 @@
import org.apache.velocity.exception.ParseErrorException;
import org.apache.velocity.exception.ResourceNotFoundException;
-
/**
- * Extend RollerServlet to load proper resource loader for page execution.
+ * The PageServlet handles all requests for weblog pages at /page/*
+ *
+ * All the real work is handled by the BasePageServlet though.
+ *
+ * @see org.roller.presentation.velocity.BasePageServlet
*
* @web.servlet name="PageServlet" load-on-startup="0"
* @web.servlet-init-param name="org.apache.velocity.properties"
@@ -26,114 +28,12 @@
*
* @web.servlet-mapping url-pattern="/page/*"
*/
-public class PageServlet extends BasePageServlet
-{
- static final long serialVersionUID = 5083624357559616805L;
+public class PageServlet extends BasePageServlet {
- private static Log mLogger =
- LogFactory.getFactory().getInstance(PageServlet.class);
-
- /** We are overriding the default Runtime Velocity
- * singleton to gain control over the initialization
- * and so that the PreviewResourceLoader is not set
- * for the PageServlet.
- */
- transient VelocityEngine ve = null;
-
- public Template handleRequest( HttpServletRequest request,
- HttpServletResponse response,
- Context ctx ) throws Exception
- {
- return super.handleRequest(request, response, ctx);
- }
-
- /**
- * Override initVelocity() so we can man-handle the list of
- * resource loaders and remove "preview" if it is present.
- * @see org.apache.velocity.servlet.VelocityServlet#initVelocity(ServletConfig)
- */
- protected void initVelocity( ServletConfig config )
- throws ServletException
- {
- try
- {
- /*
- * call the overridable method to allow the
- * derived classes a shot at altering the configuration
- * before initializing Runtime
- */
- Properties props = loadConfiguration( config );
-
- // remove "preview," from the beginning of the
- // resource.loader list
- String resourceLoaders = (String)props.get("resource.loader");
- if (resourceLoaders != null &&
- resourceLoaders.indexOf("preview") > -1)
- {
- int begin = resourceLoaders.indexOf("preview");
- int length = "preview".length() + 1;
- String tempStr = "";
- if (begin > 0)
- {
- tempStr = resourceLoaders.substring(0,begin);
- }
- resourceLoaders = tempStr + resourceLoaders.substring(begin+length);
-
- //System.out.println("PageServlet RESOURCELOADERS: " + resourceLoaders);
- props.put("resource.loader", resourceLoaders);
- }
-
- // remove all trace of the PreviewResourceLoader
- props.remove("preview.resource.loader.public.name");
- props.remove("preview.resource.loader.description");
- props.remove("preview.resource.loader.class");
- props.remove("preview.resource.loader.cache");
- props.remove("preview.resource.loader.modificationCheckInterval");
-
- /** set custom logging file */
- props.setProperty( "runtime.log", "page_servlet.log" );
-
- // make user WebappResourceLoader has what it needs
- WebappResourceLoader.setServletContext( getServletContext() );
-
- if (mLogger.isDebugEnabled())
- {
- mLogger.debug("VelocityEngine props: " + props.toString());
- }
-
- ve = new VelocityEngine();
- ve.info("*******************************************");
- ve.info("Initializing VelocityEngine for PageServlet");
- ve.init( props );
- ve.info("Done initializing VelocityEngine for PageServlet");
- ve.info("************************************************");
- }
- catch( Exception e )
- {
- String msg = "Error initializing Velocity: " + e.toString();
- mLogger.error(msg, e);
- throw new ServletException(msg, e);
- }
- }
-
- /**
- * Override the parent getTemplate( String name ) method.
- * @see org.apache.velocity.servlet.VelocityServlet#getTemplate(String, String)
- */
- public Template getTemplate( String name )
- throws ResourceNotFoundException, ParseErrorException, Exception
- {
- return ve.getTemplate( name );
- }
-
- /**
- * Override the parent getTemplate(String name, String encoding) method.
- * @see org.apache.velocity.servlet.VelocityServlet#getTemplate(String, String)
- */
- public Template getTemplate( String name, String encoding )
- throws ResourceNotFoundException, ParseErrorException, Exception
- {
- return ve.getTemplate( name, encoding );
- }
+ /**
+ * This class used to have some special velocity init code that was
+ * related to how previewing worked, but it became obsolete when we
+ * redid the theme management stuff, so now this class does nothing.
+ */
}
Modified: incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/PlanetFeedServlet.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/PlanetFeedServlet.java?rev=230810&r1=230809&r2=230810&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/PlanetFeedServlet.java (original)
+++ incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/PlanetFeedServlet.java Mon Aug 8 07:41:04 2005
@@ -1,11 +1,10 @@
package org.roller.presentation.velocity;
+
import java.io.IOException;
import java.util.Date;
-
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.velocity.Template;
@@ -64,7 +63,8 @@
RollerFactory.getRoller().getPlanetManager();
if (request.getParameter("group") != null)
{
- context.put("groupName", request.getParameter("group"));
+ context.put("group",
+ planet.getGroup(request.getParameter("group")));
}
context.put("planet", planet);
context.put("date", new Date());
Modified: incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/PreviewServlet.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/PreviewServlet.java?rev=230810&r1=230809&r2=230810&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/PreviewServlet.java (original)
+++ incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/PreviewServlet.java Mon Aug 8 07:41:04 2005
@@ -1,26 +1,145 @@
-
package org.roller.presentation.velocity;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-
+import java.io.StringWriter;
import org.apache.velocity.Template;
import org.apache.velocity.context.Context;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.jsp.JspFactory;
+import javax.servlet.jsp.PageContext;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.roller.ThemeNotFoundException;
+import org.roller.model.Roller;
+import org.roller.model.RollerFactory;
+import org.roller.model.ThemeManager;
+import org.roller.model.UserManager;
+import org.roller.pojos.Theme;
+import org.roller.pojos.UserData;
+import org.roller.pojos.WeblogTemplate;
+import org.roller.pojos.WebsiteData;
+import org.roller.presentation.RollerRequest;
/**
- * Extend RollerServlet to load proper resource loader for page execution.
- *
+ * Allow users to preview what their blog would look like in a given theme.
+ *
* @web.servlet name="PreviewServlet" load-on-startup="1"
- * @web.servlet-init-param name="properties" value="/WEB-INF/velocity.properties"
+ * @web.servlet-init-param name="properties" value="/WEB-INF/velocity.properties"
* @web.servlet-mapping url-pattern="/preview/*"
- */
-public class PreviewServlet extends BasePageServlet
-{
+ */
+public class PreviewServlet extends BasePageServlet {
+
+ private static Log mLogger =
+ LogFactory.getFactory().getInstance(PreviewServlet.class);
+
+
+ /**
+ * We function exactly like the PageServlet except that we temporarily
+ * modify the users theme for this request.
+ */
public Template handleRequest( HttpServletRequest request,
- HttpServletResponse response,
- Context ctx ) throws Exception
- {
- return super.handleRequest(request, response, ctx);
+ HttpServletResponse response,
+ Context ctx ) throws Exception {
+
+ Theme previewTheme = null;
+
+ // try getting the preview theme
+ String themeName = request.getParameter("theme");
+ if (themeName != null) {
+ try {
+ Roller roller = RollerFactory.getRoller();
+ ThemeManager themeMgr = roller.getThemeManager();
+ previewTheme = themeMgr.getTheme(themeName);
+
+ } catch(ThemeNotFoundException tnfe) {
+ // bogus theme specified ... don't worry about it
+ // possibly "custom", but we'll handle that below
+ }
+ }
+
+ if((previewTheme == null || !previewTheme.isEnabled()) &&
+ !themeName.equals(Theme.CUSTOM)) {
+
+ // if we don't have a valid preview theme then
+ // leave it up to our parent
+ return super.handleRequest(request, response, ctx);
+
+ }
+
+ Template outty = null;
+ Exception pageException = null;
+
+ try {
+ PageContext pageContext =
+ JspFactory.getDefaultFactory().getPageContext(
+ this, request, response,"", true, 8192, true);
+ // Needed to init request attributes, etc.
+ RollerRequest rreq = RollerRequest.getRollerRequest(pageContext);
+ UserManager userMgr = RollerFactory.getRoller().getUserManager();
+
+ WebsiteData website = null;
+ if (request.getAttribute(RollerRequest.OWNING_WEBSITE) != null)
+ {
+ UserData user = (UserData)
+ request.getAttribute(RollerRequest.OWNING_WEBSITE);
+ }
+ else
+ {
+ website = rreq.getWebsite();
+ }
+
+ // construct a temporary Website object for this request
+ // and set the EditorTheme to our previewTheme
+ WebsiteData tmpWebsite = new WebsiteData();
+ tmpWebsite.setData(website);
+ if(previewTheme != null)
+ tmpWebsite.setEditorTheme(previewTheme.getName());
+ else
+ tmpWebsite.setEditorTheme(Theme.CUSTOM);
+
+ org.roller.pojos.Template page = null;
+
+ page = tmpWebsite.getDefaultPage();
+
+ // Still no page ID ... probably someone with no templates
+ // trying to preview a "custom" theme
+ if ( page == null ) {
+ // lets just call it a 404 and return
+ response.sendError(404);
+ return null;
+ }
+
+ // update our roller request object
+ rreq.setPage(page);
+ rreq.setWebsite(tmpWebsite);
+
+ // this sets up the page we want to render
+ outty = prepareForPageExecution(ctx, rreq, response, page);
+
+ // if there is a decorator template then apply it
+ if (website != null) {
+ // parse/merge Page template
+ StringWriter sw = new StringWriter();
+ outty.merge(ctx, sw);
+ ctx.put("decorator_body", sw.toString());
+
+ // replace outty with decorator Template
+ outty = findDecorator(tmpWebsite, (String) ctx.get("decorator"));
+ }
+
+ } catch( Exception e ) {
+ pageException = e;
+ response.setStatus( HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+ }
+
+ if (pageException != null) {
+ mLogger.error("EXCEPTION: in RollerServlet", pageException);
+ request.setAttribute("DisplayException", pageException);
+ }
+
+ return outty;
}
}
Modified: incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/RollerResourceLoader.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/RollerResourceLoader.java?rev=230810&r1=230809&r2=230810&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/RollerResourceLoader.java (original)
+++ incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/RollerResourceLoader.java Mon Aug 8 07:41:04 2005
@@ -12,7 +12,7 @@
import org.apache.velocity.runtime.resource.loader.ResourceLoader;
import org.roller.RollerException;
import org.roller.model.Roller;
-import org.roller.pojos.PageData;
+import org.roller.pojos.WeblogTemplate;
import org.roller.presentation.RollerContext;
/**
@@ -77,14 +77,14 @@
try
{
- PageData page = getPage( name );
+ WeblogTemplate page = getPage( name );
if (page == null)
{
throw new ResourceNotFoundException(
"RollerResourceLoader: page \"" +
name + "\" not found");
}
- return new ByteArrayInputStream( page.getTemplate().getBytes("UTF-8") );
+ return new ByteArrayInputStream( page.getContents().getBytes("UTF-8") );
}
catch (UnsupportedEncodingException uex)
{
@@ -118,14 +118,14 @@
String name = resource.getName();
try
{
- PageData page = getPage( name );
+ WeblogTemplate page = getPage( name );
if (mLogger.isDebugEnabled())
{
mLogger.debug(name + ": resource=" + resource.getLastModified() +
- " vs. page=" + page.getUpdateTime().getTime());
+ " vs. page=" + page.getLastModified().getTime());
}
- return page.getUpdateTime().getTime();
+ return page.getLastModified().getTime();
}
catch (RollerException re)
{
@@ -134,7 +134,7 @@
return 0;
}
- public PageData getPage(String id) throws RollerException
+ public WeblogTemplate getPage(String id) throws RollerException
{
if (getRoller() == null) throw new RollerException(
"RollerResourceLoader.getRoller() returned NULL");
Modified: incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/SearchServlet.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/SearchServlet.java?rev=230810&r1=230809&r2=230810&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/SearchServlet.java (original)
+++ incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/SearchServlet.java Mon Aug 8 07:41:04 2005
@@ -1,14 +1,11 @@
package org.roller.presentation.velocity;
import java.io.IOException;
-import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
import java.util.TreeSet;
-
-import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.jsp.JspFactory;
@@ -24,6 +21,7 @@
import org.roller.RollerException;
import org.roller.business.search.FieldConstants;
import org.roller.business.search.operations.SearchOperation;
+import org.roller.config.RollerConfig;
import org.roller.model.IndexManager;
import org.roller.model.Roller;
import org.roller.model.RollerFactory;
@@ -39,6 +37,7 @@
import org.roller.util.StringUtils;
+
/**
* This servlet retrieves (and displays) search results.
*
@@ -59,25 +58,42 @@
/* Where to start fetching results */
private static int OFFSET = 0;
+
+ /* is searching enabled? */
+ private boolean searchEnabled = true;
+
//~ Methods ================================================================
public Template handleRequest(HttpServletRequest request,
HttpServletResponse response, Context ctx) throws Exception
{
- // set request Charcter Encoding here, because the SearchServlet
- // is not preceeded by the RequestFilter
- mLogger.debug("handleRequest()");
- try
- {
- // insure that incoming data is parsed as UTF-8
- request.setCharacterEncoding("UTF-8");
- }
- catch (UnsupportedEncodingException e)
- {
- throw new ServletException("Can't set incoming encoding to UTF-8");
- }
-
+ // Note: Removed request character encoding here; was too late; it is now set uniformly in CharEncodingFilter.
+ // See ROL-760.
+
+ String enabled = RollerConfig.getProperty("search.enabled");
+ if("false".equalsIgnoreCase(enabled))
+ this.searchEnabled = false;
+
+ if(! this.searchEnabled) {
+ Template outty = null;
+ Exception pageException = null;
+ try {
+ ContextLoader.setupContext(
+ ctx, RollerRequest.getRollerRequest(request), response );
+ outty = getTemplate( "searchdisabled.vm", "UTF-8" );
+ } catch (Exception e) {
+ pageException = e;
+ response.setStatus( HttpServletResponse.SC_INTERNAL_SERVER_ERROR );
+ }
+
+ if (pageException != null) {
+ mLogger.error("EXCEPTION: in RollerServlet", pageException);
+ request.setAttribute("DisplayException", pageException);
+ }
+ return outty;
+ }
+
ctx.put("term", "");
ctx.put("hits", new Integer(0));
ctx.put("searchResults", new TreeMap());
Modified: incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/VelocityPageInsert.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/VelocityPageInsert.java?rev=230810&r1=230809&r2=230810&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/VelocityPageInsert.java (original)
+++ incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/VelocityPageInsert.java Mon Aug 8 07:41:04 2005
@@ -4,7 +4,7 @@
import javax.servlet.http.HttpServletResponse;
import org.apache.velocity.VelocityContext;
-import org.roller.pojos.PageData;
+import org.roller.pojos.WeblogTemplate;
/**
* A web page insert is a big of HTML that is inserted into a page into
@@ -15,7 +15,7 @@
public interface VelocityPageInsert
{
public void display(
- PageData page,
+ WeblogTemplate page,
VelocityContext context,
HttpServletRequest request,
HttpServletResponse response);
Modified: incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/package.html
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/package.html?rev=230810&r1=230809&r2=230810&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/package.html (original)
+++ incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/package.html Mon Aug 8 07:41:04 2005
@@ -4,6 +4,7 @@
<title></title>
</head>
<body>
-Velocity integration, Page Servlet and Macros object.<br>
+Velocity based page-engine: servlets and supporting model classes.
+
</body>
</html>
Propchange: incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/roller-velocity.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Modified: incubator/roller/branches/roller_2.0/src/org/roller/presentation/weblog/TrackbackServlet.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/presentation/weblog/TrackbackServlet.java?rev=230810&r1=230809&r2=230810&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/src/org/roller/presentation/weblog/TrackbackServlet.java (original)
+++ incubator/roller/branches/roller_2.0/src/org/roller/presentation/weblog/TrackbackServlet.java Mon Aug 8 07:41:04 2005
@@ -11,6 +11,11 @@
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import java.sql.Timestamp;
+import java.util.Date;
+import org.roller.model.RollerFactory;
+import org.roller.pojos.CommentData;
+import org.roller.util.CommentSpamChecker;
import org.roller.model.RollerFactory;
import org.roller.pojos.WeblogEntryData;
@@ -131,14 +136,38 @@
if (entry!=null && entry.getCommentsStillAllowed())
{
- entry.addTrackback(url,title,excerpt,blogName);
- RollerFactory.getRoller().commit();
-
- pw.println("<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>");
- pw.println("<response>");
- pw.println("<error>0</error>");
- pw.println("</response>");
- pw.flush();
+ String modTitle = blogName + ": " + title;
+ if (modTitle.length() >= 250) {
+ modTitle = modTitle.substring(0, 257);
+ modTitle += "...";
+ }
+
+ // Track trackbacks as comments
+ CommentData comment = new CommentData();
+ comment.setContent("[Trackback] "+excerpt);
+ comment.setName(blogName);
+ comment.setUrl(url);
+ comment.setWeblogEntry(entry);
+ comment.setNotify(Boolean.FALSE);
+ comment.setPostTime(new Timestamp(new Date().getTime()));
+
+ // check if this is spam
+ CommentSpamChecker checker = new CommentSpamChecker();
+ checker.testComment(comment);
+ if (comment.getSpam().booleanValue()) {
+ error = "Trackback spam!";
+
+ } else {
+ // save, commit, send response
+ comment.save();
+ RollerFactory.getRoller().commit();
+
+ pw.println("<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>");
+ pw.println("<response>");
+ pw.println("<error>0</error>");
+ pw.println("</response>");
+ pw.flush();
+ }
}
else if (entry!=null)
{
Modified: incubator/roller/branches/roller_2.0/src/org/roller/presentation/weblog/actions/WeblogEntryFormAction.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/presentation/weblog/actions/WeblogEntryFormAction.java?rev=230810&r1=230809&r2=230810&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/src/org/roller/presentation/weblog/actions/WeblogEntryFormAction.java (original)
+++ incubator/roller/branches/roller_2.0/src/org/roller/presentation/weblog/actions/WeblogEntryFormAction.java Mon Aug 8 07:41:04 2005
@@ -54,6 +54,7 @@
import org.roller.pojos.UserData;
import org.roller.pojos.WeblogEntryData;
import org.roller.pojos.WebsiteData;
+import org.roller.pojos.wrapper.WeblogEntryDataWrapper;
import org.roller.presentation.MainPageAction;
import org.roller.presentation.RollerContext;
import org.roller.presentation.RollerRequest;
@@ -65,6 +66,7 @@
import org.roller.util.Utilities;
import com.swabunga.spell.event.SpellCheckEvent;
+import org.roller.model.RollerFactory;
/////////////////////////////////////////////////////////////////////////////
@@ -598,18 +600,21 @@
if ( rollerSession.isUserAuthorizedToAuthor()
|| (rollerSession.isUserAuthorized() && wd.isDraft()) )
{
-
// Flush the page cache
PageCacheFilter.removeFromCache(request,
RollerSession.getRollerSession(request).getCurrentWebsite());
-
// remove the index for it
wd.setStatus(WeblogEntryData.DRAFT);
- reindexEntry(RollerFactory.getRoller(), wd);
+ reindexEntry(RollerFactory.getRoller(), wd);
+ // remove entry itself
wd.remove();
RollerFactory.getRoller().commit();
+ // flush caches
+ PageCacheFilter.removeFromCache(request, wd.getWebsite());
+ MainPageAction.flushMainPageCache();
+
ActionMessages uiMessages = new ActionMessages();
uiMessages.add(null,
new ActionMessage("weblogEdit.entryRemoved"));
@@ -861,7 +866,9 @@
PageHelper pageHelper =
PageHelper.createPageHelper(request, response);
pageHelper.setSkipFlag(true); // don't process ReadMorePlugin
- String excerpt = pageHelper.renderPlugins(entry);
+ // we have to wrap the entry for rendering because the
+ // page helper requires wrapped objects
+ String excerpt = pageHelper.renderPlugins(WeblogEntryDataWrapper.wrap(entry));
excerpt = StringUtils.left( Utilities.removeHTML(excerpt),255 );
String url = rctx.createEntryPermalink(entry, request, true);
Modified: incubator/roller/branches/roller_2.0/src/org/roller/presentation/weblog/actions/WeblogEntryPageModel.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/presentation/weblog/actions/WeblogEntryPageModel.java?rev=230810&r1=230809&r2=230810&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/src/org/roller/presentation/weblog/actions/WeblogEntryPageModel.java (original)
+++ incubator/roller/branches/roller_2.0/src/org/roller/presentation/weblog/actions/WeblogEntryPageModel.java Mon Aug 8 07:41:04 2005
@@ -236,12 +236,14 @@
return this.form;
}
+ /** returns a dummied-up weblog entry object */
public WeblogEntryData getWeblogEntry() throws RollerException
{
if (weblogEntry == null)
{
RollerSession rollerSession = RollerSession.getRollerSession(getRequest());
weblogEntry = new WeblogEntryData();
+ weblogEntry.setWebsite(rollerSession.getCurrentWebsite());
form.copyTo(weblogEntry,
getRequest().getLocale(), getRequest().getParameterMap());
weblogEntry.setWebsite(rollerSession.getCurrentWebsite());
Modified: incubator/roller/branches/roller_2.0/src/org/roller/presentation/weblog/actions/package.html
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/presentation/weblog/actions/package.html?rev=230810&r1=230809&r2=230810&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/src/org/roller/presentation/weblog/actions/package.html (original)
+++ incubator/roller/branches/roller_2.0/src/org/roller/presentation/weblog/actions/package.html Mon Aug 8 07:41:04 2005
@@ -4,6 +4,7 @@
<title></title>
</head>
<body>
-Actions for weblog forms.<br>
+Struts actions for weblog entries, categories and pings.
+
</body>
</html>
Modified: incubator/roller/branches/roller_2.0/src/org/roller/presentation/weblog/formbeans/WeblogEntryFormEx.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/presentation/weblog/formbeans/WeblogEntryFormEx.java?rev=230810&r1=230809&r2=230810&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/src/org/roller/presentation/weblog/formbeans/WeblogEntryFormEx.java (original)
+++ incubator/roller/branches/roller_2.0/src/org/roller/presentation/weblog/formbeans/WeblogEntryFormEx.java Mon Aug 8 07:41:04 2005
@@ -19,6 +19,7 @@
import org.roller.pojos.CommentData;
import org.roller.pojos.EntryAttributeData;
import org.roller.pojos.WeblogEntryData;
+import org.roller.pojos.WebsiteData;
import org.roller.presentation.RollerRequest;
import org.roller.presentation.RollerSession;
import org.roller.presentation.forms.WeblogEntryForm;
@@ -63,16 +64,17 @@
public void initNew(HttpServletRequest request, HttpServletResponse response)
{
RollerRequest rreq = RollerRequest.getRollerRequest(request);
- if (RollerSession.getRollerSession(request).getCurrentWebsite().getDefaultPlugins() != null)
+ RollerSession rses = RollerSession.getRollerSession(request);
+ if (rses.getCurrentWebsite().getDefaultPlugins() != null)
{
setPluginsArray(StringUtils.split(
- RollerSession.getRollerSession(request).getCurrentWebsite().getDefaultPlugins(), ",") );
+ rses.getCurrentWebsite().getDefaultPlugins(), ",") );
}
status = WeblogEntryData.DRAFT;
allowComments = Boolean.TRUE;
updateTime = new Timestamp(new Date().getTime());
pubTime = updateTime;
- initPubTimeDateString(request.getLocale());
+ initPubTimeDateStrings(rses.getCurrentWebsite(), request.getLocale());
}
/**
@@ -82,6 +84,8 @@
throws RollerException
{
super.copyTo(entry, locale);
+
+ // First parts the date string from the calendar
final DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, locale);
final Date newDate;
try
@@ -92,8 +96,11 @@
{
throw new RollerException("ERROR parsing date.");
}
+
+ // Now handle the time from the hour, minute and second combos
final Calendar cal = Calendar.getInstance(locale);
cal.setTime(newDate);
+ cal.setTimeZone(entry.getWebsite().getTimeZoneInstance());
cal.set(Calendar.HOUR_OF_DAY, getHours().intValue());
cal.set(Calendar.MINUTE, getMinutes().intValue());
cal.set(Calendar.SECOND, getSeconds().intValue());
@@ -151,7 +158,7 @@
mCategoryId = entry.getCategory().getId();
mCreatorId = entry.getCreator().getId();
- initPubTimeDateString(locale);
+ initPubTimeDateStrings(entry.getWebsite(), locale);
if (entry.getPlugins() != null)
{
@@ -196,14 +203,17 @@
* Localize the PubTime date string.
* @param locale
*/
- private void initPubTimeDateString(Locale locale)
+ private void initPubTimeDateStrings(WebsiteData website, Locale locale)
{
- Calendar cal = Calendar.getInstance(locale);
- cal.setTime(getPubTime());
+ Calendar cal = Calendar.getInstance();
+ cal.setTime(getPubTime());
+ cal.setTimeZone(website.getTimeZoneInstance());
mHours = new Integer(cal.get(Calendar.HOUR_OF_DAY));
mMinutes = new Integer(cal.get(Calendar.MINUTE));
- mSeconds = new Integer(cal.get(Calendar.SECOND));
- DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, locale);
+ mSeconds = new Integer(cal.get(Calendar.SECOND));
+
+ DateFormat df = DateFormat.getDateInstance(
+ DateFormat.SHORT, locale);
mDateString = df.format(getPubTime());
}
Modified: incubator/roller/branches/roller_2.0/src/org/roller/presentation/weblog/formbeans/package.html
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/presentation/weblog/formbeans/package.html?rev=230810&r1=230809&r2=230810&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/src/org/roller/presentation/weblog/formbeans/package.html (original)
+++ incubator/roller/branches/roller_2.0/src/org/roller/presentation/weblog/formbeans/package.html Mon Aug 8 07:41:04 2005
@@ -4,6 +4,7 @@
<title></title>
</head>
<body>
-Form beans for weblog forms.<br>
+Form beans needed for weblog entries, categories and pings.
+
</body>
</html>
Modified: incubator/roller/branches/roller_2.0/src/org/roller/presentation/weblog/package.html
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/presentation/weblog/package.html?rev=230810&r1=230809&r2=230810&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/src/org/roller/presentation/weblog/package.html (original)
+++ incubator/roller/branches/roller_2.0/src/org/roller/presentation/weblog/package.html Mon Aug 8 07:41:04 2005
@@ -4,11 +4,7 @@
<title></title>
</head>
<body>
-
-<p>
-Struts Actions, Form beans, and JSP tags for Weblog Entry related things
-such as the Weblog Entry Editor, Weblog Comments, Weblog Categories, and such.
-</p>
+Home of TrackbackServlet.
</body>
</html>
Modified: incubator/roller/branches/roller_2.0/src/org/roller/presentation/weblog/tags/ApplyPluginsTag.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/presentation/weblog/tags/ApplyPluginsTag.java?rev=230810&r1=230809&r2=230810&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/src/org/roller/presentation/weblog/tags/ApplyPluginsTag.java (original)
+++ incubator/roller/branches/roller_2.0/src/org/roller/presentation/weblog/tags/ApplyPluginsTag.java Mon Aug 8 07:41:04 2005
@@ -16,6 +16,13 @@
import org.roller.pojos.WeblogEntryData;
import org.roller.presentation.velocity.PageHelper;
import org.roller.util.Utilities;
+import java.io.IOException;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.jsp.JspException;
+import javax.servlet.jsp.tagext.TagSupport;
+import org.roller.pojos.wrapper.WeblogEntryDataWrapper;
/**
* Apply configured PagePlugins to WeblogEntryData and display the result.
@@ -58,7 +65,7 @@
}
helper.setSkipFlag(skipFlag);
- xformed = helper.renderPlugins(entry);
+ xformed = helper.renderPlugins(WeblogEntryDataWrapper.wrap(entry));
}
else
{
Modified: incubator/roller/branches/roller_2.0/src/org/roller/presentation/weblog/tags/package.html
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/presentation/weblog/tags/package.html?rev=230810&r1=230809&r2=230810&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/src/org/roller/presentation/weblog/tags/package.html (original)
+++ incubator/roller/branches/roller_2.0/src/org/roller/presentation/weblog/tags/package.html Mon Aug 8 07:41:04 2005
@@ -4,6 +4,7 @@
<title></title>
</head>
<body>
-JSP tags for displaying and editing weblog entries.<br>
+JSP tags used in weblog editor interface (plus calendar tag implementations).
+
</body>
</html>
Modified: incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/CreateWebsiteAction.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/CreateWebsiteAction.java?rev=230810&r1=230809&r2=230810&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/CreateWebsiteAction.java (original)
+++ incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/CreateWebsiteAction.java Mon Aug 8 07:41:04 2005
@@ -103,7 +103,7 @@
// Need system user to add new user
RollerFactory.getRoller().setUser(UserData.SYSTEM_USER);
- HashMap pages = rollerContext.readThemeMacros(form.getTheme());
+ HashMap pages = null; //rollerContext.readThemeMacros(form.getTheme());
WebsiteData website = mgr.createWebsite(
user,
pages,
@@ -149,7 +149,7 @@
{
super(request, response, mapping);
RollerContext rollerContext = RollerContext.getRollerContext(request);
- themes = Arrays.asList(rollerContext.getThemeNames());
+ // ROLLER_2.0: fix this: themes = Arrays.asList(rollerContext.getThemeNames());
if (wd != null)
{
contextURL = rollerContext.getAbsoluteContextUrl(request);