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 2006/07/14 20:27:48 UTC
svn commit: r421978 - in
/incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering:
servlets/PreviewServlet.java util/WeblogPreviewRequest.java
Author: agilliland
Date: Fri Jul 14 11:27:47 2006
New Revision: 421978
URL: http://svn.apache.org/viewvc?rev=421978&view=rev
Log:
couple more tweaks to fix up previewing.
- parsed preview request now supports heavyweight accessors for Theme pojo.
- preview servlet now uses heavyweight methods of preview request.
- preview servlet no longer makes ad-hoc page request for model init data, it can use a real preview request since that is now a subclass of page request.
Modified:
incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/servlets/PreviewServlet.java
incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/util/WeblogPreviewRequest.java
Modified: incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/servlets/PreviewServlet.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/servlets/PreviewServlet.java?rev=421978&r1=421977&r2=421978&view=diff
==============================================================================
--- incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/servlets/PreviewServlet.java (original)
+++ incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/servlets/PreviewServlet.java Fri Jul 14 11:27:47 2006
@@ -31,10 +31,6 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.roller.RollerException;
-import org.apache.roller.ThemeNotFoundException;
-import org.apache.roller.model.RollerFactory;
-import org.apache.roller.model.ThemeManager;
-import org.apache.roller.model.UserManager;
import org.apache.roller.pojos.Template;
import org.apache.roller.pojos.Theme;
import org.apache.roller.pojos.WebsiteData;
@@ -43,7 +39,6 @@
import org.apache.roller.ui.rendering.Renderer;
import org.apache.roller.ui.rendering.RendererManager;
import org.apache.roller.ui.rendering.model.ModelLoader;
-import org.apache.roller.ui.rendering.util.WeblogPageRequest;
import org.apache.roller.ui.rendering.util.WeblogPreviewRequest;
@@ -81,7 +76,6 @@
log.debug("Entering");
- Theme previewTheme = null;
WebsiteData weblog = null;
WeblogPreviewRequest previewRequest = null;
@@ -89,37 +83,22 @@
previewRequest = new WeblogPreviewRequest(request);
// lookup weblog specified by preview request
- UserManager uMgr = RollerFactory.getRoller().getUserManager();
- weblog = uMgr.getWebsiteByHandle(previewRequest.getWeblogHandle());
+ weblog = previewRequest.getWeblog();
if(weblog == null) {
throw new RollerException("unable to lookup weblog: "+
previewRequest.getWeblogHandle());
}
} catch (Exception e) {
- // some kind of error parsing the request
+ // some kind of error parsing the request or getting weblog
log.error("error creating preview request", e);
response.sendError(HttpServletResponse.SC_NOT_FOUND);
return;
}
// try getting the preview theme
- log.debug("preview theme = "+previewRequest.getTheme());
- if(previewRequest.getTheme() != null) {
- try {
- ThemeManager themeMgr = RollerFactory.getRoller().getThemeManager();
- previewTheme = themeMgr.getTheme(previewRequest.getTheme());
-
- } catch(ThemeNotFoundException tnfe) {
- // bogus theme specified ... don't worry about it
- // possibly "custom", but we'll handle that below
- } catch(RollerException re) {
-
- response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
- log.error("Error doing theme preview", re);
- return;
- }
- }
+ log.debug("preview theme = "+previewRequest.getThemeName());
+ Theme previewTheme = previewRequest.getTheme();
// construct a temporary Website object for this request
// and set the EditorTheme to our previewTheme
@@ -127,7 +106,7 @@
tmpWebsite.setData(weblog);
if(previewTheme != null && previewTheme.isEnabled()) {
tmpWebsite.setEditorTheme(previewTheme.getName());
- } else if(previewRequest.getTheme().equals(Theme.CUSTOM)) {
+ } else if(Theme.CUSTOM.equals(previewRequest.getThemeName())) {
tmpWebsite.setEditorTheme(Theme.CUSTOM);
}
@@ -159,11 +138,7 @@
// populate the rendering model
Map initData = new HashMap();
initData.put("request", request);
-
- // we need to add a simple page request to use weblog models
- WeblogPageRequest pageRequest = new WeblogPageRequest();
- pageRequest.setWeblogHandle(previewRequest.getWeblogHandle());
- initData.put("pageRequest", pageRequest);
+ initData.put("pageRequest", previewRequest);
// page context for helpers which use jsp tags :/
PageContext pageContext = JspFactory.getDefaultFactory().getPageContext(
@@ -186,7 +161,7 @@
ModelLoader.loadCustomModels(tmpWebsite, model, initData);
// ick, gotta load pre-3.0 model stuff as well :(
- ModelLoader.loadOldModels(model, request, response, pageContext, pageRequest);
+ ModelLoader.loadOldModels(model, request, response, pageContext, previewRequest);
} catch (RollerException ex) {
log.error("ERROR loading model for page", ex);
@@ -247,7 +222,7 @@
* Post requests are not allowed, send a 404.
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
+ throws ServletException, IOException {
response.sendError(HttpServletResponse.SC_NOT_FOUND);
}
Modified: incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/util/WeblogPreviewRequest.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/util/WeblogPreviewRequest.java?rev=421978&r1=421977&r2=421978&view=diff
==============================================================================
--- incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/util/WeblogPreviewRequest.java (original)
+++ incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/util/WeblogPreviewRequest.java Fri Jul 14 11:27:47 2006
@@ -19,6 +19,13 @@
package org.apache.roller.ui.rendering.util;
import javax.servlet.http.HttpServletRequest;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.roller.RollerException;
+import org.apache.roller.ThemeNotFoundException;
+import org.apache.roller.model.RollerFactory;
+import org.apache.roller.model.ThemeManager;
+import org.apache.roller.pojos.Theme;
/**
@@ -26,9 +33,15 @@
*/
public class WeblogPreviewRequest extends WeblogPageRequest {
+ private static Log log = LogFactory.getLog(WeblogPreviewRequest.class);
+
private static final String PREVIEW_SERVLET = "/roller-ui/authoring/preview";
- private String theme = null;
+ // lightweight attributes
+ private String themeName = null;
+
+ // heavyweight attributes
+ private Theme theme = null;
public WeblogPreviewRequest(HttpServletRequest request)
@@ -40,7 +53,11 @@
// all we need to worry about is the query params
// the only param we expect is "theme"
if(request.getParameter("theme") != null) {
- this.theme = request.getParameter("theme");
+ this.themeName = request.getParameter("theme");
+ }
+
+ if(log.isDebugEnabled()) {
+ log.debug("theme = "+this.themeName);
}
}
@@ -50,12 +67,12 @@
}
- public String getTheme() {
- return theme;
+ public String getThemeName() {
+ return themeName;
}
- public void setTheme(String theme) {
- this.theme = theme;
+ public void setThemeName(String theme) {
+ this.themeName = theme;
}
// override so that previews never show login status
@@ -66,6 +83,26 @@
// override so that previews never show login status
public boolean isLoggedIn() {
return false;
+ }
+
+ public Theme getTheme() {
+
+ if(theme == null && themeName != null) {
+ try {
+ ThemeManager themeMgr = RollerFactory.getRoller().getThemeManager();
+ theme = themeMgr.getTheme(themeName);
+ } catch(ThemeNotFoundException tnfe) {
+ // bogus theme specified ... don't worry about it
+ } catch(RollerException re) {
+ log.error("Error looking up theme "+themeName, re);
+ }
+ }
+
+ return theme;
+ }
+
+ public void setTheme(Theme theme) {
+ this.theme = theme;
}
}