You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by ag...@apache.org on 2005/11/28 20:52:22 UTC
svn commit: r349483 - in /incubator/roller/trunk/src/org/roller:
presentation/bookmarks/actions/ presentation/servlets/
presentation/velocity/ presentation/weblog/actions/
presentation/website/actions/ presentation/xmlrpc/ util/
Author: agilliland
Date: Mon Nov 28 11:52:14 2005
New Revision: 349483
URL: http://svn.apache.org/viewcvs?rev=349483&view=rev
Log:
more changes for caching rewrite.
- update struts actions and servlets to invalidate using the CacheManager
- add toBase64() method in Utilities class
Modified:
incubator/roller/trunk/src/org/roller/presentation/bookmarks/actions/BookmarksAction.java
incubator/roller/trunk/src/org/roller/presentation/bookmarks/actions/FolderSaveAction.java
incubator/roller/trunk/src/org/roller/presentation/servlets/CommentServlet.java
incubator/roller/trunk/src/org/roller/presentation/servlets/TrackbackServlet.java
incubator/roller/trunk/src/org/roller/presentation/velocity/FlavorServlet.java
incubator/roller/trunk/src/org/roller/presentation/weblog/actions/ImportEntriesAction.java
incubator/roller/trunk/src/org/roller/presentation/weblog/actions/ToggleLinkbackDisplayAction.java
incubator/roller/trunk/src/org/roller/presentation/website/actions/MaintenanceAction.java
incubator/roller/trunk/src/org/roller/presentation/website/actions/ThemeEditorAction.java
incubator/roller/trunk/src/org/roller/presentation/website/actions/WebsiteFormAction.java
incubator/roller/trunk/src/org/roller/presentation/xmlrpc/BaseAPIHandler.java
incubator/roller/trunk/src/org/roller/util/Utilities.java
Modified: incubator/roller/trunk/src/org/roller/presentation/bookmarks/actions/BookmarksAction.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/presentation/bookmarks/actions/BookmarksAction.java?rev=349483&r1=349482&r2=349483&view=diff
==============================================================================
--- incubator/roller/trunk/src/org/roller/presentation/bookmarks/actions/BookmarksAction.java (original)
+++ incubator/roller/trunk/src/org/roller/presentation/bookmarks/actions/BookmarksAction.java Mon Nov 28 11:52:14 2005
@@ -34,8 +34,8 @@
import org.roller.presentation.BasePageModel;
import org.roller.presentation.RollerRequest;
import org.roller.presentation.RollerSession;
-import org.roller.presentation.pagecache.PageCacheFilter;
import org.roller.presentation.bookmarks.formbeans.BookmarksForm;
+import org.roller.presentation.cache.CacheManager;
/**
* Actions that are initiated from the BookmarksForm.
@@ -126,7 +126,8 @@
}
}
roller.commit();
- PageCacheFilter.removeFromCache(request,website);
+
+ CacheManager.invalidate(website);
// recreate model now that folder is deleted
pageModel = new BookmarksPageModel(
@@ -210,7 +211,9 @@
}
}
roller.commit();
- PageCacheFilter.removeFromCache(request,website);
+
+ CacheManager.invalidate(website);
+
saveMessages(request, messages);
}
catch (RollerException e)
Modified: incubator/roller/trunk/src/org/roller/presentation/bookmarks/actions/FolderSaveAction.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/presentation/bookmarks/actions/FolderSaveAction.java?rev=349483&r1=349482&r2=349483&view=diff
==============================================================================
--- incubator/roller/trunk/src/org/roller/presentation/bookmarks/actions/FolderSaveAction.java (original)
+++ incubator/roller/trunk/src/org/roller/presentation/bookmarks/actions/FolderSaveAction.java Mon Nov 28 11:52:14 2005
@@ -19,8 +19,8 @@
import org.roller.pojos.WebsiteData;
import org.roller.presentation.RollerRequest;
import org.roller.presentation.RollerSession;
-import org.roller.presentation.pagecache.PageCacheFilter;
import org.roller.presentation.bookmarks.formbeans.FolderFormEx;
+import org.roller.presentation.cache.CacheManager;
/**
* @struts.action path="/editor/folderSave" name="folderFormEx"
@@ -68,7 +68,8 @@
form.copyTo(fd, request.getLocale());
fd.save();
RollerFactory.getRoller().commit();
- PageCacheFilter.removeFromCache(request,website);
+
+ CacheManager.invalidate(fd);
}
else
{
Modified: incubator/roller/trunk/src/org/roller/presentation/servlets/CommentServlet.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/presentation/servlets/CommentServlet.java?rev=349483&r1=349482&r2=349483&view=diff
==============================================================================
--- incubator/roller/trunk/src/org/roller/presentation/servlets/CommentServlet.java (original)
+++ incubator/roller/trunk/src/org/roller/presentation/servlets/CommentServlet.java Mon Nov 28 11:52:14 2005
@@ -32,13 +32,13 @@
import org.roller.pojos.UserData;
import org.roller.pojos.WeblogEntryData;
import org.roller.pojos.WebsiteData;
-import org.roller.presentation.pagecache.PageCacheFilter;
import org.roller.presentation.velocity.CommentAuthenticator;
import org.roller.presentation.weblog.formbeans.CommentFormEx;
import org.roller.util.CommentSpamChecker;
import org.roller.util.MailUtil;
import org.roller.util.StringUtils;
import org.roller.presentation.*;
+import org.roller.presentation.cache.CacheManager;
/**
@@ -171,7 +171,8 @@
reindexEntry(entry);
// Refresh user's entries in page cache
- PageCacheFilter.removeFromCache(request, website);
+ //PageCacheFilter.removeFromCache(request, website);
+ CacheManager.invalidate(comment);
// Send email notifications
sendEmailNotification(request, rreq, entry, comment);
Modified: incubator/roller/trunk/src/org/roller/presentation/servlets/TrackbackServlet.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/presentation/servlets/TrackbackServlet.java?rev=349483&r1=349482&r2=349483&view=diff
==============================================================================
--- incubator/roller/trunk/src/org/roller/presentation/servlets/TrackbackServlet.java (original)
+++ incubator/roller/trunk/src/org/roller/presentation/servlets/TrackbackServlet.java Mon Nov 28 11:52:14 2005
@@ -20,7 +20,7 @@
import org.roller.model.RollerFactory;
import org.roller.pojos.WeblogEntryData;
import org.roller.presentation.RollerRequest;
-import org.roller.presentation.pagecache.PageCacheFilter;
+import org.roller.presentation.cache.CacheManager;
/**
@@ -152,7 +152,8 @@
RollerFactory.getRoller().commit();
// Refresh user's entries in page cache
- PageCacheFilter.removeFromCache(req, entry.getWebsite());
+ //PageCacheFilter.removeFromCache(req, entry.getWebsite());
+ CacheManager.invalidate(comment);
// Send email notifications
CommentServlet.sendEmailNotification(req, rreq, entry, comment);
Modified: incubator/roller/trunk/src/org/roller/presentation/velocity/FlavorServlet.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/presentation/velocity/FlavorServlet.java?rev=349483&r1=349482&r2=349483&view=diff
==============================================================================
--- incubator/roller/trunk/src/org/roller/presentation/velocity/FlavorServlet.java (original)
+++ incubator/roller/trunk/src/org/roller/presentation/velocity/FlavorServlet.java Mon Nov 28 11:52:14 2005
@@ -9,11 +9,16 @@
import org.roller.RollerException;
import org.roller.presentation.RollerRequest;
import java.io.IOException;
+import java.util.Date;
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.roller.model.Roller;
+import org.roller.model.RollerFactory;
+import org.roller.model.UserManager;
+import org.roller.model.WeblogManager;
/////////////////////////////////////////////////////////////////////////////
/**
@@ -44,8 +49,8 @@
{
static final long serialVersionUID = -2720532269434186051L;
- private static Log mLogger = LogFactory.getFactory()
- .getInstance(RollerRequest.class);
+ private static Log mLogger = LogFactory.getLog(FlavorServlet.class);
+
public Template handleRequest(HttpServletRequest request,
HttpServletResponse response, Context ctx)
{
@@ -90,6 +95,23 @@
JspFactory.getDefaultFactory().getPageContext(
this, request, response, "", true, 8192, true);
rreq.setPageContext(pageContext);
+
+ // get update time before loading context
+ // TODO: this should really be handled elsewhere
+ if(rreq.getWebsite() != null) {
+ String catname =
+ request.getParameter(RollerRequest.WEBLOGCATEGORYNAME_KEY);
+
+ Roller roller = RollerFactory.getRoller();
+ UserManager umgr = roller.getUserManager();
+ WeblogManager wmgr = roller.getWeblogManager();
+
+ Date updateTime = wmgr.getWeblogLastPublishTime(
+ umgr.getWebsiteByHandle(rreq.getWebsite().getHandle()), catname);
+
+ request.setAttribute("updateTime", updateTime);
+ }
+
ContextLoader.setupContext(ctx, rreq, response);
final String useTemplate;
Modified: incubator/roller/trunk/src/org/roller/presentation/weblog/actions/ImportEntriesAction.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/presentation/weblog/actions/ImportEntriesAction.java?rev=349483&r1=349482&r2=349483&view=diff
==============================================================================
--- incubator/roller/trunk/src/org/roller/presentation/weblog/actions/ImportEntriesAction.java (original)
+++ incubator/roller/trunk/src/org/roller/presentation/weblog/actions/ImportEntriesAction.java Mon Nov 28 11:52:14 2005
@@ -21,11 +21,10 @@
import org.apache.struts.action.ActionMessages;
import org.apache.struts.actions.DispatchAction;
import org.roller.pojos.WebsiteData;
-import org.roller.presentation.MainPageAction;
import org.roller.presentation.RollerContext;
import org.roller.presentation.RollerRequest;
import org.roller.presentation.RollerSession;
-import org.roller.presentation.pagecache.PageCacheFilter;
+import org.roller.presentation.cache.CacheManager;
import org.roller.presentation.weblog.formbeans.ImportEntriesForm;
import org.roller.util.StringUtils;
@@ -87,7 +86,8 @@
saveMessages(request, notices);
// Flush the page cache
- PageCacheFilter.removeFromCache(request, website);
+ //PageCacheFilter.removeFromCache(request, website);
+ CacheManager.invalidate(website);
}
else
{
Modified: incubator/roller/trunk/src/org/roller/presentation/weblog/actions/ToggleLinkbackDisplayAction.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/presentation/weblog/actions/ToggleLinkbackDisplayAction.java?rev=349483&r1=349482&r2=349483&view=diff
==============================================================================
--- incubator/roller/trunk/src/org/roller/presentation/weblog/actions/ToggleLinkbackDisplayAction.java (original)
+++ incubator/roller/trunk/src/org/roller/presentation/weblog/actions/ToggleLinkbackDisplayAction.java Mon Nov 28 11:52:14 2005
@@ -16,7 +16,7 @@
import org.roller.presentation.RollerContext;
import org.roller.presentation.RollerRequest;
import org.roller.presentation.RollerSession;
-import org.roller.presentation.pagecache.PageCacheFilter;
+import org.roller.presentation.cache.CacheManager;
/**
@@ -57,7 +57,8 @@
RollerFactory.getRoller().commit();
- PageCacheFilter.removeFromCache( req, rreq.getWebsite() );
+ //PageCacheFilter.removeFromCache( req, rreq.getWebsite() );
+ CacheManager.invalidate(rreq.getWebsite());
}
}
}
Modified: incubator/roller/trunk/src/org/roller/presentation/website/actions/MaintenanceAction.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/presentation/website/actions/MaintenanceAction.java?rev=349483&r1=349482&r2=349483&view=diff
==============================================================================
--- incubator/roller/trunk/src/org/roller/presentation/website/actions/MaintenanceAction.java (original)
+++ incubator/roller/trunk/src/org/roller/presentation/website/actions/MaintenanceAction.java Mon Nov 28 11:52:14 2005
@@ -27,7 +27,7 @@
import org.roller.presentation.BasePageModel;
import org.roller.presentation.RollerRequest;
import org.roller.presentation.RollerSession;
-import org.roller.presentation.pagecache.PageCacheFilter;
+import org.roller.presentation.cache.CacheManager;
/**
* Allows user to perform Website maintenence operations such as flushing
@@ -123,7 +123,8 @@
RollerSession rses = RollerSession.getRollerSession(request);
if ( rses.isUserAuthorizedToAdmin(website) )
{
- PageCacheFilter.removeFromCache(request, website);
+ //PageCacheFilter.removeFromCache(request, website);
+ CacheManager.invalidate(website);
ActionMessages messages = new ActionMessages();
messages.add(null, new ActionMessage("maintenance.message.flushed"));
Modified: incubator/roller/trunk/src/org/roller/presentation/website/actions/ThemeEditorAction.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/presentation/website/actions/ThemeEditorAction.java?rev=349483&r1=349482&r2=349483&view=diff
==============================================================================
--- incubator/roller/trunk/src/org/roller/presentation/website/actions/ThemeEditorAction.java (original)
+++ incubator/roller/trunk/src/org/roller/presentation/website/actions/ThemeEditorAction.java Mon Nov 28 11:52:14 2005
@@ -30,7 +30,7 @@
import org.roller.pojos.ThemeTemplate;
import org.roller.presentation.BasePageModel;
import org.roller.presentation.RollerSession;
-import org.roller.presentation.pagecache.PageCacheFilter;
+import org.roller.presentation.cache.CacheManager;
/**
@@ -287,8 +287,9 @@
" for "+username);
// make sure to flush the page cache so ppl can see the change
- PageCacheFilter.removeFromCache(request, website);
-
+ //PageCacheFilter.removeFromCache(request, website);
+ CacheManager.invalidate(website);
+
// update complete ... now just send them back to edit
return this.edit(mapping, form, request, response);
@@ -361,7 +362,8 @@
}
// make sure to flush the page cache so ppl can see the change
- PageCacheFilter.removeFromCache(request, website);
+ //PageCacheFilter.removeFromCache(request, website);
+ CacheManager.invalidate(website);
}
} catch(ThemeNotFoundException tnfe) {
Modified: incubator/roller/trunk/src/org/roller/presentation/website/actions/WebsiteFormAction.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/presentation/website/actions/WebsiteFormAction.java?rev=349483&r1=349482&r2=349483&view=diff
==============================================================================
--- incubator/roller/trunk/src/org/roller/presentation/website/actions/WebsiteFormAction.java (original)
+++ incubator/roller/trunk/src/org/roller/presentation/website/actions/WebsiteFormAction.java Mon Nov 28 11:52:14 2005
@@ -37,7 +37,7 @@
import org.roller.presentation.BasePageModel;
import org.roller.presentation.RollerRequest;
import org.roller.presentation.RollerSession;
-import org.roller.presentation.pagecache.PageCacheFilter;
+import org.roller.presentation.cache.CacheManager;
import org.roller.presentation.velocity.ContextLoader;
import org.roller.presentation.velocity.PagePlugin;
import org.roller.presentation.website.formbeans.WebsiteFormEx;
@@ -175,7 +175,8 @@
RollerRequest.WEBSITEID_KEY, form.getId());
// clear the page cache for this user
- PageCacheFilter.removeFromCache(request, wd);
+ //PageCacheFilter.removeFromCache(request, wd);
+ CacheManager.invalidate(wd);
// set the Editor Page list
ServletContext ctx = request.getSession().getServletContext();
@@ -284,7 +285,9 @@
website.remove();
RollerFactory.getRoller().commit();
- PageCacheFilter.removeFromCache(request, website);
+ //PageCacheFilter.removeFromCache(request, website);
+ CacheManager.invalidate(website);
+
actionForm.reset(mapping, request);
}
else
Modified: incubator/roller/trunk/src/org/roller/presentation/xmlrpc/BaseAPIHandler.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/presentation/xmlrpc/BaseAPIHandler.java?rev=349483&r1=349482&r2=349483&view=diff
==============================================================================
--- incubator/roller/trunk/src/org/roller/presentation/xmlrpc/BaseAPIHandler.java (original)
+++ incubator/roller/trunk/src/org/roller/presentation/xmlrpc/BaseAPIHandler.java Mon Nov 28 11:52:14 2005
@@ -13,10 +13,9 @@
import org.roller.model.UserManager;
import org.roller.pojos.UserData;
import org.roller.pojos.WebsiteData;
-import org.roller.presentation.MainPageAction;
import org.roller.presentation.RollerContext;
import org.roller.presentation.RollerRequest;
-import org.roller.presentation.pagecache.PageCacheFilter;
+import org.roller.presentation.cache.CacheManager;
import org.roller.util.Utilities;
/**
@@ -201,6 +200,7 @@
protected void flushPageCache(WebsiteData website) throws Exception
{
RollerRequest rreq = RollerRequest.getRollerRequest();
- PageCacheFilter.removeFromCache( rreq.getRequest(), website);
+ //PageCacheFilter.removeFromCache( rreq.getRequest(), website);
+ CacheManager.invalidate(website);
}
}
Modified: incubator/roller/trunk/src/org/roller/util/Utilities.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/util/Utilities.java?rev=349483&r1=349482&r2=349483&view=diff
==============================================================================
--- incubator/roller/trunk/src/org/roller/util/Utilities.java (original)
+++ incubator/roller/trunk/src/org/roller/util/Utilities.java Mon Nov 28 11:52:14 2005
@@ -1123,4 +1123,35 @@
{
return StringEscapeUtils.unescapeHtml(str);
}
+
+
+ /**
+ * Convert a byte array into a Base64 string (as used in mime formats)
+ */
+ public static String toBase64(byte[] aValue) {
+
+ final String m_strBase64Chars =
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
+
+ int byte1;
+ int byte2;
+ int byte3;
+ int iByteLen = aValue.length;
+ StringBuffer tt = new StringBuffer();
+
+ for (int i = 0; i < iByteLen; i += 3) {
+ boolean bByte2 = (i + 1) < iByteLen;
+ boolean bByte3 = (i + 2) < iByteLen;
+ byte1 = aValue[i] & 0xFF;
+ byte2 = (bByte2) ? (aValue[i + 1] & 0xFF) : 0;
+ byte3 = (bByte3) ? (aValue[i + 2] & 0xFF) : 0;
+
+ tt.append(m_strBase64Chars.charAt(byte1 / 4));
+ tt.append(m_strBase64Chars.charAt((byte2 / 16) + ((byte1 & 0x3) * 16)));
+ tt.append(((bByte2) ? m_strBase64Chars.charAt((byte3 / 64) + ((byte2 & 0xF) * 4)) : '='));
+ tt.append(((bByte3) ? m_strBase64Chars.charAt(byte3 & 0x3F) : '='));
+ }
+
+ return tt.toString();
+ }
}