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/24 23:57:33 UTC
svn commit: r425199 - in /incubator/roller/branches/roller_3.0:
src/org/apache/roller/ui/rendering/model/
src/org/apache/roller/ui/rendering/servlets/ web/WEB-INF/classes/
Author: agilliland
Date: Mon Jul 24 14:57:33 2006
New Revision: 425199
URL: http://svn.apache.org/viewvc?rev=425199&view=rev
Log:
update model loading process so that it's fully configurable. all models are defined in the roller.properties config now.
Modified:
incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/model/ModelLoader.java
incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/servlets/FeedServlet.java
incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/servlets/PageServlet.java
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/servlets/SearchServlet.java
incubator/roller/branches/roller_3.0/web/WEB-INF/classes/roller.properties
Modified: incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/model/ModelLoader.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/model/ModelLoader.java?rev=425199&r1=425198&r2=425199&view=diff
==============================================================================
--- incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/model/ModelLoader.java (original)
+++ incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/model/ModelLoader.java Mon Jul 24 14:57:33 2006
@@ -33,50 +33,13 @@
/**
- * Loads page models (read-only data access objects which implement Model)
- * and helpers (which "help" with HTML gen.) needed by page rendering process.
+ * Helps with model loading process.
*/
public class ModelLoader {
private static Log log = LogFactory.getLog(ModelLoader.class);
- /**
- * Load helpers needed in weblog pages (e.g. calendar, menu).
- */
- public static void loadWeblogHelpers(Map model, Map initData)
- throws RollerException {
-
- // helps render the calendar
- CalendarModel calendarTag = new CalendarModel();
- calendarTag.init(initData);
- model.put(calendarTag.getModelName(), calendarTag);
-
- // helps render menus
- MenuModel menuTag = new MenuModel();
- menuTag.init(initData);
- model.put(menuTag.getModelName(), menuTag);
-
- // helps url building
- URLModel urlModel = new URLModel();
- urlModel.init(initData);
- model.put(urlModel.getModelName(), urlModel);
- }
-
-
- /**
- * Load generic utility helpers.
- */
- public static void loadUtilityHelpers(Map model, Map initData)
- throws RollerException {
-
- // general set of utilities
- UtilitiesModel utils = new UtilitiesModel();
- utils.init(initData);
- model.put(utils.getModelName(), utils);
- }
-
-
/**
* Load old page models, but only if velocity.pagemodel.classname defined.
*/
@@ -97,94 +60,18 @@
/**
- * Load set of common weblog models.
- *
- * This is the list of models defined by rendering.weblogPageModels
- */
- public static void loadPageModels(Map model, Map initData)
- throws RollerException {
-
- String weblogModels =
- RollerConfig.getProperty("rendering.pageRenderModels");
- loadModels(weblogModels, model, initData);
- }
-
-
- /**
- * Load set of common feed models.
- *
- * This is the list of models defined by rendering.feedRendererModels
- */
- public static void loadFeedModels(Map model, Map initData)
- throws RollerException {
-
- // feeds need url building too
- URLModel urlModel = new URLModel();
- urlModel.init(initData);
- model.put(urlModel.getModelName(), urlModel);
-
- String weblogModels =
- RollerConfig.getProperty("rendering.feedRenderModels");
- loadModels(weblogModels, model, initData);
- }
-
-
- /**
- * Load set of common search models.
- *
- * This is the list of models defined by rendering.searchRendererModels
- */
- public static void loadSearchModels(Map model, Map initData)
- throws RollerException {
-
- String searchModels =
- RollerConfig.getProperty("rendering.searchRenderModels");
- loadModels(searchModels, model, initData);
- }
-
-
- /**
- * Load set of common site-wide models.
- *
- * This is the list of models defined by rendering.sitePageModels
- */
- public static void loadSiteModels(Map model, Map initData)
- throws RollerException {
-
- String weblogModels =
- RollerConfig.getProperty("rendering.siteRenderModels");
- loadModels(weblogModels, model, initData);
- }
-
-
- /**
- * Load set of custom models allowed for the given weblog.
+ * Load set of custom models set for the given weblog.
*
* Does not fail if there is a problem with one of the models.
*/
- public static void loadCustomModels(
- WebsiteData weblog,
- Map model,
- Map initData) {
+ public static void loadCustomModels(WebsiteData weblog, Map model, Map initData) {
if (weblog.getPageModels() != null) {
- String[] weblogModels =
- Utilities.stringToStringArray(weblog.getPageModels(), ",");
- for (int i=0; i<weblogModels.length; i++) {
- try { // don't die just because of one bad custom model
- Class modelClass = Class.forName(weblogModels[i]);
- Model pageModel = (Model)modelClass.newInstance();
- pageModel.init(initData);
- model.put(pageModel.getModelName(), pageModel);
- } catch (RollerException re) {
- log.warn("ERROR: initializing a plugin: " + weblogModels[i]);
- } catch (ClassNotFoundException cnfe) {
- log.warn("ERROR: can't find model: " + weblogModels[i]);
- } catch (InstantiationException ie) {
- log.warn("ERROR: insantiating model: " + weblogModels[i]);
- } catch (IllegalAccessException iae) {
- log.warn("ERROR: access exception model: " + weblogModels[i]);
- }
+ try {
+ loadModels(weblog.getPageModels(), model, initData, false);
+ } catch(RollerException ex) {
+ // shouldn't happen, but log it just in case
+ log.error("Error loading weblog custom models", ex);
}
}
}
@@ -192,29 +79,46 @@
/**
* Convenience method to load a comma-separated list of page models.
- * If any of the models fail to load, throws an exception.
+ *
+ * Optionally fails if any exceptions are thrown when initializing
+ * the Model instances.
*/
- private static void loadModels(
- String modelsString,
- Map model,
- Map initData) throws RollerException {
+ public static void loadModels(String modelsString, Map model,
+ Map initData, boolean fail)
+ throws RollerException {
- String currentModel = null;
- try { // if we can't load a configued page models, then bail out
- String[] models = Utilities.stringToStringArray(modelsString, ",");
- for (int i=0; i<models.length; i++) {
- currentModel = models[i];
- Class modelClass = Class.forName(currentModel);
+ String[] models = Utilities.stringToStringArray(modelsString, ",");
+ for(int i=0; i < models.length; i++) {
+ try {
+ Class modelClass = Class.forName(models[i]);
Model pageModel = (Model) modelClass.newInstance();
- pageModel.init(initData);
+ pageModel.init(initData);
model.put(pageModel.getModelName(), pageModel);
+ } catch (RollerException re) {
+ if(fail) {
+ throw re;
+ } else {
+ log.warn("Error initializing model: " + models[i]);
+ }
+ } catch (ClassNotFoundException cnfe) {
+ if(fail) {
+ throw new RollerException("Error finding model: " + models[i], cnfe);
+ } else {
+ log.warn("Error finding model: " + models[i]);
+ }
+ } catch (InstantiationException ie) {
+ if(fail) {
+ throw new RollerException("Error insantiating model: " + models[i], ie);
+ } else {
+ log.warn("Error insantiating model: " + models[i]);
+ }
+ } catch (IllegalAccessException iae) {
+ if(fail) {
+ throw new RollerException("Error accessing model: " + models[i], iae);
+ } else {
+ log.warn("Error accessing model: " + models[i]);
+ }
}
- } catch (ClassNotFoundException cnfe) {
- throw new RollerException("ERROR: can't find model: " + currentModel);
- } catch (InstantiationException ie) {
- throw new RollerException("ERROR: insantiating model: " + currentModel);
- } catch (IllegalAccessException iae) {
- throw new RollerException("ERROR: access exception model: " + currentModel);
}
}
Modified: incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/servlets/FeedServlet.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/servlets/FeedServlet.java?rev=425199&r1=425198&r2=425199&view=diff
==============================================================================
--- incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/servlets/FeedServlet.java (original)
+++ incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/servlets/FeedServlet.java Mon Jul 24 14:57:33 2006
@@ -29,6 +29,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.roller.RollerException;
+import org.apache.roller.config.RollerConfig;
import org.apache.roller.config.RollerRuntimeConfig;
import org.apache.roller.pojos.StaticTemplate;
import org.apache.roller.pojos.Template;
@@ -186,18 +187,17 @@
initData.put("feedRequest", feedRequest);
initData.put("weblogRequest", feedRequest);
- // Feeds get the weblog specific page model
- ModelLoader.loadFeedModels(model, initData);
-
- // special handling for site wide feed
- if (RollerRuntimeConfig.isSiteWideWeblog(weblog.getHandle())) {
- ModelLoader.loadSiteModels(model, initData);
+ // Load models for feeds
+ String feedModels = RollerConfig.getProperty("rendering.feedModels");
+ ModelLoader.loadModels(feedModels, model, initData, true);
+
+ // Load special models for site-wide blog
+ if(RollerRuntimeConfig.isSiteWideWeblog(weblog.getHandle())) {
+ String siteModels = RollerConfig.getProperty("rendering.siteModels");
+ ModelLoader.loadModels(siteModels, model, initData, true);
}
-
- // utility helpers and plugin helpers
- ModelLoader.loadUtilityHelpers(model, initData);
- // Feeds get weblog's custom models too
+ // Load weblog custom models
ModelLoader.loadCustomModels(weblog, model, initData);
} catch (RollerException ex) {
Modified: incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/servlets/PageServlet.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/servlets/PageServlet.java?rev=425199&r1=425198&r2=425199&view=diff
==============================================================================
--- incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/servlets/PageServlet.java (original)
+++ incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/servlets/PageServlet.java Mon Jul 24 14:57:33 2006
@@ -275,19 +275,17 @@
initData.put("weblogRequest", pageRequest);
initData.put("pageContext", pageContext);
- // Feeds get the weblog specific page model
- ModelLoader.loadPageModels(model, initData);
+ // Load models for pages
+ String pageModels = RollerConfig.getProperty("rendering.pageModels");
+ ModelLoader.loadModels(pageModels, model, initData, true);
- // special handling for site wide weblog
- if(isSiteWide) {
- ModelLoader.loadSiteModels(model, initData);
+ // Load special models for site-wide blog
+ if(RollerRuntimeConfig.isSiteWideWeblog(weblog.getHandle())) {
+ String siteModels = RollerConfig.getProperty("rendering.siteModels");
+ ModelLoader.loadModels(siteModels, model, initData, true);
}
-
- // add helpers
- ModelLoader.loadUtilityHelpers(model, initData);
- ModelLoader.loadWeblogHelpers(model, initData);
- // Feeds get weblog's custom models too
+ // Load weblog custom models
ModelLoader.loadCustomModels(weblog, model, initData);
// ick, gotta load pre-3.0 model stuff as well :(
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=425199&r1=425198&r2=425199&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 Mon Jul 24 14:57:33 2006
@@ -31,6 +31,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.roller.RollerException;
+import org.apache.roller.config.RollerConfig;
import org.apache.roller.config.RollerRuntimeConfig;
import org.apache.roller.pojos.Template;
import org.apache.roller.pojos.Theme;
@@ -150,20 +151,18 @@
initData.put("weblogRequest", previewRequest);
initData.put("pageContext", pageContext);
- // standard weblog models
- ModelLoader.loadPageModels(model, initData);
-
- // special handling for site wide weblog
- if (RollerRuntimeConfig.isSiteWideWeblog(tmpWebsite.getHandle())) {
- ModelLoader.loadSiteModels(model, initData);
+ // Load models for pages
+ String pageModels = RollerConfig.getProperty("rendering.pageModels");
+ ModelLoader.loadModels(pageModels, model, initData, true);
+
+ // Load special models for site-wide blog
+ if(RollerRuntimeConfig.isSiteWideWeblog(weblog.getHandle())) {
+ String siteModels = RollerConfig.getProperty("rendering.siteModels");
+ ModelLoader.loadModels(siteModels, model, initData, true);
}
-
- // add helpers
- ModelLoader.loadUtilityHelpers(model, initData);
- ModelLoader.loadWeblogHelpers(model, initData);
-
- // weblog's custom models
- ModelLoader.loadCustomModels(tmpWebsite, model, initData);
+
+ // Load weblog custom models
+ ModelLoader.loadCustomModels(weblog, model, initData);
// ick, gotta load pre-3.0 model stuff as well :(
ModelLoader.loadOldModels(model, request, response, pageContext, previewRequest);
Modified: incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/servlets/SearchServlet.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/servlets/SearchServlet.java?rev=425199&r1=425198&r2=425199&view=diff
==============================================================================
--- incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/servlets/SearchServlet.java (original)
+++ incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/servlets/SearchServlet.java Mon Jul 24 14:57:33 2006
@@ -31,6 +31,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.roller.RollerException;
+import org.apache.roller.config.RollerConfig;
import org.apache.roller.config.RollerRuntimeConfig;
import org.apache.roller.model.RollerFactory;
import org.apache.roller.model.UserManager;
@@ -129,19 +130,17 @@
pageRequest.setWeblogCategoryName(searchRequest.getWeblogCategoryName());
initData.put("pageRequest", pageRequest);
- // default weblog models
- ModelLoader.loadSearchModels(model, initData);
-
- // special site wide models
- if (RollerRuntimeConfig.isSiteWideWeblog(weblog.getHandle())) {
- ModelLoader.loadSiteModels(model, initData);
+ // Load models for pages
+ String searchModels = RollerConfig.getProperty("rendering.searchModels");
+ ModelLoader.loadModels(searchModels, model, initData, true);
+
+ // Load special models for site-wide blog
+ if(RollerRuntimeConfig.isSiteWideWeblog(weblog.getHandle())) {
+ String siteModels = RollerConfig.getProperty("rendering.siteModels");
+ ModelLoader.loadModels(siteModels, model, initData, true);
}
-
- // add helpers
- ModelLoader.loadUtilityHelpers(model, initData);
- ModelLoader.loadWeblogHelpers(model, initData);
- // Search gets weblog's custom models too
+ // Load weblog custom models
ModelLoader.loadCustomModels(weblog, model, initData);
// ick, gotta load pre-3.0 model stuff as well :(
Modified: incubator/roller/branches/roller_3.0/web/WEB-INF/classes/roller.properties
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_3.0/web/WEB-INF/classes/roller.properties?rev=425199&r1=425198&r2=425199&view=diff
==============================================================================
--- incubator/roller/branches/roller_3.0/web/WEB-INF/classes/roller.properties (original)
+++ incubator/roller/branches/roller_3.0/web/WEB-INF/classes/roller.properties Mon Jul 24 14:57:33 2006
@@ -92,23 +92,34 @@
# The set of user defined request mappers. These are prepended to the list above.
rendering.userRequestMappers=
-# Set of page models to be created for weblog rendering
-rendering.pageRenderModels=\
+# Set of models to be made available for weblog page rendering
+rendering.pageModels=\
org.apache.roller.ui.rendering.model.PageModel,\
-org.apache.roller.ui.rendering.model.ConfigModel
+org.apache.roller.ui.rendering.model.ConfigModel,\
+org.apache.roller.ui.rendering.model.UtilitiesModel,\
+org.apache.roller.ui.rendering.model.URLModel,\
+org.apache.roller.ui.rendering.model.CalendarModel,\
+org.apache.roller.ui.rendering.model.MenuModel
-rendering.feedRenderModels=\
+# Set of models to be made available for weblog feed rendering
+rendering.feedModels=\
org.apache.roller.ui.rendering.model.FeedModel,\
-org.apache.roller.ui.rendering.model.ConfigModel
+org.apache.roller.ui.rendering.model.ConfigModel,\
+org.apache.roller.ui.rendering.model.UtilitiesModel,\
+org.apache.roller.ui.rendering.model.URLModel
-rendering.searchRenderModels=\
+# Set of models to be made available for weblog search rendering
+rendering.searchModels=\
org.apache.roller.ui.rendering.model.SearchResultsModel,\
-org.apache.roller.ui.rendering.model.ConfigModel
+org.apache.roller.ui.rendering.model.ConfigModel,\
+org.apache.roller.ui.rendering.model.UtilitiesModel,\
+org.apache.roller.ui.rendering.model.URLModel,\
+org.apache.roller.ui.rendering.model.CalendarModel,\
+org.apache.roller.ui.rendering.model.MenuModel
-# Set of page models to be created for site-wide rendering
-rendering.siteRenderModels=\
-org.apache.roller.ui.rendering.model.SiteModel,\
-org.apache.roller.ui.rendering.model.PlanetModel
+# Set of page models specifically for site-wide rendering
+rendering.siteModels=\
+org.apache.roller.ui.rendering.model.SiteModel
# Deprecated Roller 2.X page model configuration
# Comment out this property to completely disable Roller 2.X page models