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 2007/04/03 22:07:50 UTC

svn commit: r525260 [3/3] - in /incubator/roller/branches/roller_4.0_newbackend: ./ docs/devguide/ docs/examples/ docs/examples/configs/ docs/examples/configs/resin/ docs/examples/configs/tomcat/ docs/examples/configs/wbloggar/ metadata/database/tmpls/...

Modified: incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/servlets/FeedServlet.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/servlets/FeedServlet.java?view=diff&rev=525260&r1=525259&r2=525260
==============================================================================
--- incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/servlets/FeedServlet.java (original)
+++ incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/servlets/FeedServlet.java Tue Apr  3 13:07:41 2007
@@ -236,7 +236,7 @@
             // Load weblog custom models
             ModelLoader.loadCustomModels(weblog, model, initData);
             
-            if("search".equals(feedRequest.getType())) {
+            if("entries".equals(feedRequest.getType()) && feedRequest.getTerm() != null) {
                 pageId = "templates/feeds/weblog-search-atom.vm";                
                 ModelLoader.loadModels(SearchResultsFeedModel.class.getName(), model, initData, true);
             }                        

Modified: incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/servlets/PageServlet.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/servlets/PageServlet.java?view=diff&rev=525260&r1=525259&r2=525260
==============================================================================
--- incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/servlets/PageServlet.java (original)
+++ incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/servlets/PageServlet.java Tue Apr  3 13:07:41 2007
@@ -41,9 +41,9 @@
 import org.apache.roller.config.RollerRuntimeConfig;
 import org.apache.roller.business.RollerFactory;
 import org.apache.roller.business.WeblogManager;
+import org.apache.roller.pojos.StaticTemplate;
 import org.apache.roller.pojos.Template;
 import org.apache.roller.pojos.WeblogEntryData;
-import org.apache.roller.pojos.WeblogTemplate;
 import org.apache.roller.pojos.WebsiteData;
 import org.apache.roller.ui.core.RollerContext;
 import org.apache.roller.ui.rendering.util.InvalidRequestException;
@@ -221,9 +221,9 @@
                 log.debug("MISS "+cacheKey);
             }
         }
-
         
-        // figure out what we are going to render
+        
+        // figure out what template to use
         Template page = null;
         
         // If this is a popup request, then deal with it specially
@@ -238,21 +238,46 @@
             
             // User doesn't have one so return the default
             if(page == null) {
-                page = new WeblogTemplate("templates/weblog/popupcomments.vm", weblog,
-                        "Comments", "Comments", "dummy_link",
-                        "dummy_template", new Date(), "velocity", true, false, null);
+                page = new StaticTemplate("templates/weblog/popupcomments.vm", null, "velocity");
             }
             
         // If request specified the page, then go with that
-        } else if (pageRequest.getWeblogPageName() != null) {
+        } else if("page".equals(pageRequest.getContext())) {
             page = pageRequest.getWeblogPage();
             
-        // If page not available from request, then use weblog's default
-        } else {
+        // If request specified tags section index, then look for custom template
+        } else if("tags".equals(pageRequest.getContext()) &&
+                pageRequest.getTags() == null) {
+            try {
+                page = weblog.getPageByAction(Template.ACTION_TAGSINDEX);
+            } catch(Exception e) {
+                log.error("Error getting weblog page for action 'tagsIndex'", e);
+            }
+            
+            // if we don't have a custom tags page then 404, we don't let
+            // this one fall through to the default template
+            if(page == null) {
+                if(!response.isCommitted()) response.reset();
+                response.sendError(HttpServletResponse.SC_NOT_FOUND);
+                return;
+            }
+            
+        // If this is a permalink then look for a permalink template
+        } else if(pageRequest.getWeblogAnchor() != null) {
+            try {
+                page = weblog.getPageByAction(Template.ACTION_PERMALINK);
+            } catch(Exception e) {
+                log.error("Error getting weblog page for action 'permalink'", e);
+            }
+        }
+        
+        // if we haven't found a page yet then try our default page
+        if(page == null) {
             try {
                 page = weblog.getDefaultPage();
             } catch(Exception e) {
-                log.error("Error getting weblogs default page", e);
+                log.error("Error getting default page for weblog = "+
+                        weblog.getHandle(), e);
             }
         }
         

Modified: incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/servlets/PreviewResourceServlet.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/servlets/PreviewResourceServlet.java?view=diff&rev=525260&r1=525259&r2=525260
==============================================================================
--- incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/servlets/PreviewResourceServlet.java (original)
+++ incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/servlets/PreviewResourceServlet.java Tue Apr  3 13:07:41 2007
@@ -34,7 +34,7 @@
 import org.apache.roller.RollerException;
 import org.apache.roller.business.FileManager;
 import org.apache.roller.business.RollerFactory;
-import org.apache.roller.business.ThemeManager;
+import org.apache.roller.business.themes.ThemeManager;
 import org.apache.roller.pojos.Theme;
 import org.apache.roller.pojos.WeblogResource;
 import org.apache.roller.pojos.WebsiteData;
@@ -106,19 +106,22 @@
         if(resourceRequest.getThemeName() != null) {
             Theme theme = resourceRequest.getTheme();
             File resource = theme.getResource(resourceRequest.getResourcePath());
-            resourceLastMod = resource.lastModified();
-            resourceStream = new FileInputStream(resource);
+            if(resource != null) {
+                resourceLastMod = resource.lastModified();
+                resourceStream = new FileInputStream(resource);
+            }
         }
         
         // second, see if resource comes from weblog's configured shared theme
-        if(resourceStream == null && !Theme.CUSTOM.equals(weblog.getEditorTheme())) {
+        if(resourceStream == null) {
             try {
-                ThemeManager themeMgr = RollerFactory.getRoller().getThemeManager();
-                Theme weblogTheme = themeMgr.getTheme(weblog.getEditorTheme());
-                File resource = weblogTheme.getResource(resourceRequest.getResourcePath());
-                if(resource != null) {
-                    resourceLastMod = resource.lastModified();
-                    resourceStream = new FileInputStream(resource);
+                Theme weblogTheme = weblog.getTheme();
+                if(weblogTheme != null) {
+                    File resource = weblogTheme.getResource(resourceRequest.getResourcePath());
+                    if(resource != null) {
+                        resourceLastMod = resource.lastModified();
+                        resourceStream = new FileInputStream(resource);
+                    }
                 }
             } catch (Exception ex) {
                 // hmmm, some kind of error getting theme.  that's an error.

Modified: incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/servlets/PreviewServlet.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/servlets/PreviewServlet.java?view=diff&rev=525260&r1=525259&r2=525260
==============================================================================
--- incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/servlets/PreviewServlet.java (original)
+++ incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/servlets/PreviewServlet.java Tue Apr  3 13:07:41 2007
@@ -106,7 +106,7 @@
         WebsiteData tmpWebsite = new WebsiteData();
         tmpWebsite.setData(weblog);
         if(previewTheme != null && previewTheme.isEnabled()) {
-            tmpWebsite.setEditorTheme(previewTheme.getName());
+            tmpWebsite.setEditorTheme(previewTheme.getId());
         } else if(Theme.CUSTOM.equals(previewRequest.getThemeName())) {
             tmpWebsite.setEditorTheme(Theme.CUSTOM);
         }

Modified: incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/servlets/ResourceServlet.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/servlets/ResourceServlet.java?view=diff&rev=525260&r1=525259&r2=525260
==============================================================================
--- incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/servlets/ResourceServlet.java (original)
+++ incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/servlets/ResourceServlet.java Tue Apr  3 13:07:41 2007
@@ -34,7 +34,7 @@
 import org.apache.roller.RollerException;
 import org.apache.roller.business.FileManager;
 import org.apache.roller.business.RollerFactory;
-import org.apache.roller.business.ThemeManager;
+import org.apache.roller.business.themes.ThemeManager;
 import org.apache.roller.pojos.Theme;
 import org.apache.roller.pojos.WeblogResource;
 import org.apache.roller.pojos.WebsiteData;
@@ -104,20 +104,19 @@
         InputStream resourceStream = null;
         
         // first see if resource comes from weblog's shared theme
-        if(!Theme.CUSTOM.equals(weblog.getEditorTheme())) {
-            try {
-                ThemeManager themeMgr = RollerFactory.getRoller().getThemeManager();
-                Theme weblogTheme = themeMgr.getTheme(weblog.getEditorTheme());
+        try {
+            Theme weblogTheme = weblog.getTheme();
+            if(weblogTheme != null) {
                 File resource = weblogTheme.getResource(resourceRequest.getResourcePath());
                 if(resource != null) {
                     resourceLastMod = resource.lastModified();
                     resourceStream = new FileInputStream(resource);
                 }
-            } catch (Exception ex) {
-                // hmmm, some kind of error getting theme.  that's an error.
-                response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
-                return;
             }
+        } catch (Exception ex) {
+            // hmmm, some kind of error getting theme.  that's an error.
+            response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+            return;
         }
         
         // if not from theme then see if resource is in weblog's upload dir

Modified: incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/servlets/SearchServlet.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/servlets/SearchServlet.java?view=diff&rev=525260&r1=525259&r2=525260
==============================================================================
--- incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/servlets/SearchServlet.java (original)
+++ incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/servlets/SearchServlet.java Tue Apr  3 13:07:41 2007
@@ -95,16 +95,25 @@
             return;
         }
         
-        // get their default page template to use for rendering
+        // lookup template to use for rendering
         Template page = null;
         try {
-            page = weblog.getDefaultPage();
+            // first try looking for a specific search page
+            page = weblog.getPageByAction(Template.ACTION_SEARCH);
+            
+            // if not found then fall back on default page
+            if(page == null) {
+                page = weblog.getDefaultPage();
+            }
+            
+            // if still null then that's a problem
             if(page == null) {
                 throw new RollerException("Could not lookup default page "+
                         "for weblog "+weblog.getHandle());
             }
         } catch(Exception e) {
-            log.error("Error getting weblogs default page", e);
+            log.error("Error getting default page for weblog "+
+                    weblog.getHandle(), e);
         }
         
         // set the content type

Modified: incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/util/WeblogPageRequest.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/util/WeblogPageRequest.java?view=diff&rev=525260&r1=525259&r2=525260
==============================================================================
--- incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/util/WeblogPageRequest.java (original)
+++ incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/util/WeblogPageRequest.java Tue Apr  3 13:07:41 2007
@@ -108,7 +108,7 @@
          * /entry/<anchor> - permalink
          * /date/<YYYYMMDD> - date collection view
          * /category/<category> - category collection view
-         * /tags/spring+framework - tags
+         * /tags/<tag>+<tag> - tags
          * /page/<pagelink> - custom page
          *
          * path info may be null, which indicates the weblog homepage
@@ -116,22 +116,14 @@
         if(pathInfo != null && pathInfo.trim().length() > 0) {
             
             // all views use 2 path elements, except category
-            String[] pathElements = pathInfo.split("/");
-            if(pathElements.length > 1 && "category".equals(pathElements[0])) {
-                
-                // category may have multiple path elements, so re-split with max 2
-                pathElements = pathInfo.split("/", 2);
-                this.context = pathElements[0];
-                this.weblogCategoryName = "/"+URLUtilities.decode(pathElements[1]);
-                
-                // all categories must start with a /
-                if(!this.weblogCategoryName.startsWith("/")) {
-                    this.weblogCategoryName = "/"+this.weblogCategoryName;
-                }
-
-            } else if(pathElements.length == 2) {
+            String[] pathElements = pathInfo.split("/", 2);
+            
+            // the first part of the path always represents the context
+            this.context = pathElements[0];
+            
+            // now check the rest of the path and extract other details
+            if(pathElements.length == 2) {
                 
-                this.context = pathElements[0];
                 if("entry".equals(this.context)) {
                     this.weblogAnchor = URLUtilities.decode(pathElements[1]);
                     
@@ -143,6 +135,14 @@
                             request.getRequestURL());
                     }
                     
+                } else if("category".equals(this.context)) {
+                    this.weblogCategoryName = URLUtilities.decode(pathElements[1]);
+                    
+                    // all categories must start with a /
+                    if(!this.weblogCategoryName.startsWith("/")) {
+                        this.weblogCategoryName = "/"+this.weblogCategoryName;
+                    }
+                    
                 } else if("page".equals(this.context)) {
                     this.weblogPageName = pathElements[1];
 
@@ -159,8 +159,11 @@
                 }
                 
             } else {
-                throw new InvalidRequestException("bad path info, "+
-                        request.getRequestURL());
+                // empty data is only allowed for the tags section
+                if(!"tags".equals(this.context)) {
+                    throw new InvalidRequestException("invalid index page, "+
+                            request.getRequestURL());
+                }
             }
             
         } else {

Modified: incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/util/WeblogPreviewRequest.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/util/WeblogPreviewRequest.java?view=diff&rev=525260&r1=525259&r2=525260
==============================================================================
--- incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/util/WeblogPreviewRequest.java (original)
+++ incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/util/WeblogPreviewRequest.java Tue Apr  3 13:07:41 2007
@@ -22,9 +22,9 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.roller.RollerException;
-import org.apache.roller.business.ThemeNotFoundException;
+import org.apache.roller.business.themes.ThemeNotFoundException;
 import org.apache.roller.business.RollerFactory;
-import org.apache.roller.business.ThemeManager;
+import org.apache.roller.business.themes.ThemeManager;
 import org.apache.roller.business.WeblogManager;
 import org.apache.roller.pojos.Theme;
 import org.apache.roller.pojos.WeblogEntryData;

Modified: incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/util/WeblogPreviewResourceRequest.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/util/WeblogPreviewResourceRequest.java?view=diff&rev=525260&r1=525259&r2=525260
==============================================================================
--- incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/util/WeblogPreviewResourceRequest.java (original)
+++ incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/util/WeblogPreviewResourceRequest.java Tue Apr  3 13:07:41 2007
@@ -22,9 +22,9 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.roller.RollerException;
-import org.apache.roller.business.ThemeNotFoundException;
+import org.apache.roller.business.themes.ThemeNotFoundException;
 import org.apache.roller.business.RollerFactory;
-import org.apache.roller.business.ThemeManager;
+import org.apache.roller.business.themes.ThemeManager;
 import org.apache.roller.pojos.Theme;
 
 

Modified: incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/util/cache/SiteWideCache.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/util/cache/SiteWideCache.java?view=diff&rev=525260&r1=525259&r2=525260
==============================================================================
--- incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/util/cache/SiteWideCache.java (original)
+++ incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/util/cache/SiteWideCache.java Tue Apr  3 13:07:41 2007
@@ -25,6 +25,7 @@
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
+import java.util.Set;
 import java.util.TreeSet;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -228,10 +229,13 @@
                 key.append("/").append(cat);
             }
             
-            if(pageRequest.getTags() != null && pageRequest.getTags().size() > 0) {
-              String[] tags = new String[pageRequest.getTags().size()];
-              new TreeSet(pageRequest.getTags()).toArray(tags);
-              key.append("/tags/").append(Utilities.stringArrayToString(tags,"+"));
+            if("tags".equals(pageRequest.getContext())) {
+                key.append("/tags/");
+                if(pageRequest.getTags() != null && pageRequest.getTags().size() > 0) {
+                    Set ordered = new TreeSet(pageRequest.getTags());
+                    String[] tags = (String[]) ordered.toArray(new String[ordered.size()]);
+                    key.append(Utilities.stringArrayToString(tags,"+"));
+                }
             }
         }
         

Modified: incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/util/cache/WeblogPageCache.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/util/cache/WeblogPageCache.java?view=diff&rev=525260&r1=525259&r2=525260
==============================================================================
--- incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/util/cache/WeblogPageCache.java (original)
+++ incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/util/cache/WeblogPageCache.java Tue Apr  3 13:07:41 2007
@@ -201,11 +201,14 @@
                 key.append("/").append(cat);
             }
             
-            if(pageRequest.getTags() != null && pageRequest.getTags().size() > 0) {
-              Set ordered = new TreeSet(pageRequest.getTags());
-              String[] tags = (String[]) ordered.toArray(new String[ordered.size()]);  
-              key.append("/tags/").append(Utilities.stringArrayToString(tags,"+"));
-            }            
+            if("tags".equals(pageRequest.getContext())) {
+                key.append("/tags/");
+                if(pageRequest.getTags() != null && pageRequest.getTags().size() > 0) {
+                    Set ordered = new TreeSet(pageRequest.getTags());
+                    String[] tags = (String[]) ordered.toArray(new String[ordered.size()]);
+                    key.append(Utilities.stringArrayToString(tags,"+"));
+                }
+            }
         }
         
         if(pageRequest.getLocale() != null) {

Modified: incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/velocity/ThemeResourceLoader.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/velocity/ThemeResourceLoader.java?view=diff&rev=525260&r1=525259&r2=525260
==============================================================================
--- incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/velocity/ThemeResourceLoader.java (original)
+++ incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/velocity/ThemeResourceLoader.java Tue Apr  3 13:07:41 2007
@@ -33,9 +33,9 @@
 import org.apache.velocity.runtime.resource.Resource;
 import org.apache.velocity.runtime.resource.loader.ResourceLoader;
 import org.apache.roller.RollerException;
-import org.apache.roller.business.ThemeNotFoundException;
+import org.apache.roller.business.themes.ThemeNotFoundException;
 import org.apache.roller.business.RollerFactory;
-import org.apache.roller.business.ThemeManager;
+import org.apache.roller.business.themes.ThemeManager;
 import org.apache.roller.pojos.Theme;
 import org.apache.roller.pojos.ThemeTemplate;
 

Modified: incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/velocity/deprecated/ContextLoader.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/velocity/deprecated/ContextLoader.java?view=diff&rev=525260&r1=525259&r2=525260
==============================================================================
--- incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/velocity/deprecated/ContextLoader.java (original)
+++ incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/velocity/deprecated/ContextLoader.java Tue Apr  3 13:07:41 2007
@@ -48,7 +48,6 @@
 import org.apache.roller.pojos.wrapper.TemplateWrapper;
 import org.apache.roller.pojos.wrapper.WeblogEntryDataWrapper;
 import org.apache.roller.pojos.wrapper.WebsiteDataWrapper;
-import org.apache.roller.ui.core.RollerContext;
 import org.apache.roller.ui.core.RollerSession;
 import org.apache.roller.ui.rendering.velocity.deprecated.NewsfeedCache;
 import org.apache.roller.ui.rendering.util.WeblogEntryCommentForm;
@@ -112,8 +111,6 @@
         
         mLogger.debug("setupContext( ctx = "+ctx+")");
         
-        RollerContext rollerCtx = RollerContext.getRollerContext( );
-        
         WebsiteData weblog = null;
         WeblogEntryData entry = null;
         WeblogCategoryData category = null;
@@ -197,9 +194,9 @@
         
         // Load standard Roller objects and values into the context
         loadWeblogValues(ctx, weblog, pageRequest.getLocaleInstance(), request);
-        loadPathValues(ctx, request, rollerCtx, weblog, locale);
+        loadPathValues(ctx, request, weblog, locale);
         loadRssValues(ctx, request, weblog, category);
-        loadUtilityObjects(ctx, request, rollerCtx, weblog, page);
+        loadUtilityObjects(ctx, request, weblog, page);
         loadRequestParamKeys(ctx);
         loadStatusMessage(ctx, request);
         
@@ -368,7 +365,6 @@
     private static void loadUtilityObjects(
             Map ctx,
             HttpServletRequest request,
-            RollerContext rollerCtx,
             WebsiteData website,
             Template page) throws RollerException {
         
@@ -407,7 +403,6 @@
     private static void loadPathValues(
             Map ctx,
             HttpServletRequest request,
-            RollerContext rollerCtx,
             WebsiteData   website,
             String locale) throws RollerException {
         

Modified: incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/velocity/deprecated/OldPageHelper.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/velocity/deprecated/OldPageHelper.java?view=diff&rev=525260&r1=525259&r2=525260
==============================================================================
--- incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/velocity/deprecated/OldPageHelper.java (original)
+++ incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/velocity/deprecated/OldPageHelper.java Tue Apr  3 13:07:41 2007
@@ -43,7 +43,6 @@
 import org.apache.roller.pojos.wrapper.RefererDataWrapper;
 import org.apache.roller.pojos.wrapper.WeblogEntryDataWrapper;
 import org.apache.roller.ui.core.RequestConstants;
-import org.apache.roller.ui.core.RollerContext;
 import org.apache.roller.ui.core.RollerSession;
 import org.apache.roller.ui.core.tags.calendar.CalendarModel;
 import org.apache.roller.ui.core.tags.calendar.CalendarTag;

Modified: incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/webservices/atomprotocol/RollerAtomHandler.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/webservices/atomprotocol/RollerAtomHandler.java?view=diff&rev=525260&r1=525259&r2=525260
==============================================================================
--- incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/webservices/atomprotocol/RollerAtomHandler.java (original)
+++ incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/webservices/atomprotocol/RollerAtomHandler.java Tue Apr  3 13:07:41 2007
@@ -44,7 +44,6 @@
 import org.apache.roller.pojos.WeblogCategoryData;
 import org.apache.roller.pojos.WeblogEntryData;
 import org.apache.roller.pojos.WebsiteData;
-import org.apache.roller.ui.core.RollerContext;
 import org.apache.roller.util.RollerMessages;
 import org.apache.roller.util.Utilities;
 import org.apache.roller.util.WSSEUtilities;
@@ -115,7 +114,6 @@
 public class RollerAtomHandler implements AtomHandler {
     private HttpServletRequest mRequest;
     private Roller             mRoller;
-    private RollerContext      mRollerContext;
     private UserData           user;
     private int                mMaxEntries = 20;
     //private MessageDigest    md5Helper = null;
@@ -134,7 +132,6 @@
     public RollerAtomHandler(HttpServletRequest request) {
         mRequest = request;
         mRoller = RollerFactory.getRoller();
-        mRollerContext = RollerContext.getRollerContext();
         
         // TODO: decide what to do about authentication, is WSSE going to fly?
         //String userName = authenticateWSSE(request);
@@ -938,8 +935,6 @@
                             boolean enabled = user.getEnabled().booleanValue();
                             if (enabled) {
                                 // are passwords encrypted?
-                                RollerContext rollerContext =
-                                        RollerContext.getRollerContext();
                                 String encrypted =
                                         RollerConfig.getProperty("passwds.encryption.enabled");
                                 password = userPass.substring(p+1);

Modified: incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/webservices/xmlrpc/BaseAPIHandler.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/webservices/xmlrpc/BaseAPIHandler.java?view=diff&rev=525260&r1=525259&r2=525260
==============================================================================
--- incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/webservices/xmlrpc/BaseAPIHandler.java (original)
+++ incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/webservices/xmlrpc/BaseAPIHandler.java Tue Apr  3 13:07:41 2007
@@ -30,7 +30,6 @@
 import org.apache.roller.business.UserManager;
 import org.apache.roller.pojos.UserData;
 import org.apache.roller.pojos.WebsiteData;
-import org.apache.roller.ui.core.RollerContext;
 import org.apache.roller.util.cache.CacheManager;
 import org.apache.roller.util.Utilities;
 
@@ -128,9 +127,7 @@
             }
             
             if (user != null) {
-                // are passwords encrypted?
-                RollerContext rollerContext =
-                        RollerContext.getRollerContext();
+                // are passwords encrypted
                 String encrypted =
                         RollerConfig.getProperty("passwds.encryption.enabled");
                 //System.out.print("password was [" + password + "] ");
@@ -186,8 +183,6 @@
             enabled = user.getEnabled().booleanValue();
             if (enabled) {
                 // are passwords encrypted?
-                RollerContext rollerContext =
-                        RollerContext.getRollerContext();
                 String encrypted =
                         RollerConfig.getProperty("passwds.encryption.enabled");
                 //System.out.print("password was [" + password + "] ");

Modified: incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/webservices/xmlrpc/MetaWeblogAPIHandler.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/webservices/xmlrpc/MetaWeblogAPIHandler.java?view=diff&rev=525260&r1=525259&r2=525260
==============================================================================
--- incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/webservices/xmlrpc/MetaWeblogAPIHandler.java (original)
+++ incubator/roller/branches/roller_4.0_newbackend/src/org/apache/roller/webservices/xmlrpc/MetaWeblogAPIHandler.java Tue Apr  3 13:07:41 2007
@@ -41,7 +41,6 @@
 import org.apache.roller.pojos.WeblogCategoryData;
 import org.apache.roller.pojos.WeblogEntryData;
 import org.apache.roller.pojos.WebsiteData;
-import org.apache.roller.ui.core.RollerContext;
 import org.apache.roller.util.RollerMessages;
 import org.apache.roller.util.URLUtilities;
 import org.apache.roller.util.Utilities;

Modified: incubator/roller/branches/roller_4.0_newbackend/testdata/roller-custom.properties
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_4.0_newbackend/testdata/roller-custom.properties?view=diff&rev=525260&r1=525259&r2=525260
==============================================================================
--- incubator/roller/branches/roller_4.0_newbackend/testdata/roller-custom.properties (original)
+++ incubator/roller/branches/roller_4.0_newbackend/testdata/roller-custom.properties Tue Apr  3 13:07:41 2007
@@ -17,11 +17,11 @@
 jdbc.password=APP
 hibernate.dialect=org.hibernate.dialect.DerbyDialect
 
-jdbc.driverClass=com.mysql.jdbc.Driver
-jdbc.connectionURL=jdbc:mysql://localhost:3306/rollertest
-jdbc.username=scott
-jdbc.password=tiger
+#jdbc.driverClass=com.mysql.jdbc.Driver
+#jdbc.connectionURL=jdbc:mysql://localhost:3306/rollertest
+#jdbc.username=scott
+#jdbc.password=tiger
 #hibernate.dialect=org.hibernate.dialect.MySQLDialect
-openjpa.jdbc.DBDictionary=mysql(SupportsSubselect=false, SearchStringEscape=\\\\)
+#openjpa.jdbc.DBDictionary=mysql(SupportsSubselect=false, SearchStringEscape=\\\\)
 
 openjpa.Log=DefaultLevel=WARN, Runtime=INFO, Tool=INFO, SQL=TRACE

Modified: incubator/roller/branches/roller_4.0_newbackend/tests/org/apache/roller/business/WeblogEntryTest.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_4.0_newbackend/tests/org/apache/roller/business/WeblogEntryTest.java?view=diff&rev=525260&r1=525259&r2=525260
==============================================================================
--- incubator/roller/branches/roller_4.0_newbackend/tests/org/apache/roller/business/WeblogEntryTest.java (original)
+++ incubator/roller/branches/roller_4.0_newbackend/tests/org/apache/roller/business/WeblogEntryTest.java Tue Apr  3 13:07:41 2007
@@ -226,7 +226,7 @@
         
         // get all (non-future) PUBLISHED entries only 
         entries = null;
-        entries = mgr.getWeblogEntries(testWeblog, null, null, null, null, null, null, WeblogEntryData.PUBLISHED, null, null, null, 0, -1);
+        entries = mgr.getWeblogEntries(testWeblog, null, null, null, null, null, WeblogEntryData.PUBLISHED, null, null, null, null, 0, -1);
         assertNotNull(entries);
         assertEquals(3, entries.size());
         

Modified: incubator/roller/branches/roller_4.0_newbackend/tests/org/apache/roller/business/WeblogPageTest.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_4.0_newbackend/tests/org/apache/roller/business/WeblogPageTest.java?view=diff&rev=525260&r1=525259&r2=525260
==============================================================================
--- incubator/roller/branches/roller_4.0_newbackend/tests/org/apache/roller/business/WeblogPageTest.java (original)
+++ incubator/roller/branches/roller_4.0_newbackend/tests/org/apache/roller/business/WeblogPageTest.java Tue Apr  3 13:07:41 2007
@@ -69,6 +69,7 @@
         }
         
         testPage = new WeblogTemplate();
+        testPage.setAction(WeblogTemplate.ACTION_WEBLOG);
         testPage.setName("testTemplate");
         testPage.setDescription("Test Weblog Template");
         testPage.setLink("testTemp");
@@ -154,9 +155,15 @@
         assertNotNull(page);
         assertEquals(testPage.getContents(), page.getContents());
         
-        // lookup by name
+        // lookup by action
         page = null;
         testWeblog = TestUtils.getManagedWebsite(testWeblog);
+        page = mgr.getPageByAction(testWeblog, testPage.getAction());
+        assertNotNull(page);
+        assertEquals(testPage.getContents(), page.getContents());
+        
+        // lookup by name
+        page = null;
         page = mgr.getPageByName(testWeblog, testPage.getName());
         assertNotNull(page);
         assertEquals(testPage.getContents(), page.getContents());

Modified: incubator/roller/branches/roller_4.0_newbackend/tests/org/apache/roller/ui/MockRollerContext.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_4.0_newbackend/tests/org/apache/roller/ui/MockRollerContext.java?view=diff&rev=525260&r1=525259&r2=525260
==============================================================================
--- incubator/roller/branches/roller_4.0_newbackend/tests/org/apache/roller/ui/MockRollerContext.java (original)
+++ incubator/roller/branches/roller_4.0_newbackend/tests/org/apache/roller/ui/MockRollerContext.java Tue Apr  3 13:07:41 2007
@@ -1 +1 @@
-/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 *  contributor license agreements.  The ASF licenses this file to You
 * under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.  For additional information regarding
 * copyright in this work, please see the NOTICE file in the top level
 * directory of this distribution.
 */
/*
 * Created on Mar 4, 2004
 */
package org.apache.roller.ui;
import java.io.File;

import javax.servlet.ServletContext;
import javax.servlet.ServletC
 ontextEvent;
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.ui.core.*;

/**
 * @author lance.lavandowska
 */
public class MockRollerContext extends RollerContext {
    private static Log mLogger =
            LogFactory.getFactory().getInstance(MockRollerContext.class);
    
    private static ServletContext mContext = null;
    
    public void init(ServletContext sc) {
        mLogger.debug("MockRollerContext initializing");
        
        // initialize super
        super.contextInitialized(new ServletContextEvent(sc));
        
        // Save context in self and self in context
        mContext = sc;
        mContext.setAttribute(ROLLER_CONTEXT, this);
        mContext.setAttribute("org.apache.roller.absoluteContextURL", "/");
    }
    //-----------------------------------------------------------------------
    /** B
 ecause I cannot set the super's values, I have to
     * overide the methods as well */
    public static RollerContext getRollerContext() {
        // get roller from servlet context
        return (RollerContext) mContext.getAttribute(ROLLER_CONTEXT);
    }
    //-----------------------------------------------------------------------
    /** Because I cannot set the super's values, I have to
     * overide the methods as well */
    public static ServletContext getServletContext() {
        return mContext;
    }
        
    //-----------------------------------------------------------------------
    /** Because I cannot set the super's values, I have to
     * overide the methods as well */
    public String getAbsoluteContextUrl() {
        return "";
    }
    //-----------------------------------------------------------------------
    /** Because I cannot set the super's values, I have to
     * overide the methods as well */
    public String getAbsoluteContextUrl(
 HttpServletRequest request) {
        return "http://localhost:8080/roller";
    }
    //-----------------------------------------------------------------------
    /** Because I cannot set the super's values, I have to
     * overide the methods as well */
    /* not available anymore ... use the new config classes instead -- Allen G
    public RollerConfigData getRollerConfig()
    {
        return super.getRollerConfig();
    }
     */
    //------------------------------------------------------------------------
    public String getConfigPath() {
        String root = System.getProperty("ro.build");
        String configPath =
                root
                + File.separator
                + "roller"
                + File.separator
                + "WEB-INF"
                + File.separator
                + "roller-config.xml";
        return configPath;
    }
    protected void upgradeDatabaseIfNeeded() throws RollerException {
        // for now, this is a no
 -op
    }
    
}
\ No newline at end of file
+/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 *  contributor license agreements.  The ASF licenses this file to You
 * under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.  For additional information regarding
 * copyright in this work, please see the NOTICE file in the top level
 * directory of this distribution.
 */
/*
 * Created on Mar 4, 2004
 */
package org.apache.roller.ui;
import java.io.File;

import javax.servlet.ServletContext;
import javax.servlet.ServletC
 ontextEvent;
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.ui.core.*;

/**
 * @author lance.lavandowska
 */
public class MockRollerContext extends RollerContext {
    private static Log mLogger =
            LogFactory.getFactory().getInstance(MockRollerContext.class);
    
    private static ServletContext mContext = null;
    
    public void init(ServletContext sc) {
        mLogger.debug("MockRollerContext initializing");
        
        // initialize super
        super.contextInitialized(new ServletContextEvent(sc));
        
        // Save context in self and self in context
        mContext = sc;
        mContext.setAttribute("org.apache.roller.absoluteContextURL", "/");
    }
    //-----------------------------------------------------------------------
    /** Because I cannot set the super's values, I have to
   
   * overide the methods as well */
    public static ServletContext getServletContext() {
        return mContext;
    }
        
    //-----------------------------------------------------------------------
    /** Because I cannot set the super's values, I have to
     * overide the methods as well */
    public String getAbsoluteContextUrl() {
        return "";
    }
    //-----------------------------------------------------------------------
    /** Because I cannot set the super's values, I have to
     * overide the methods as well */
    public String getAbsoluteContextUrl(HttpServletRequest request) {
        return "http://localhost:8080/roller";
    }
    //-----------------------------------------------------------------------
    /** Because I cannot set the super's values, I have to
     * overide the methods as well */
    /* not available anymore ... use the new config classes instead -- Allen G
    public RollerConfigData getRollerConfig()
    {
        ret
 urn super.getRollerConfig();
    }
     */
    //------------------------------------------------------------------------
    public String getConfigPath() {
        String root = System.getProperty("ro.build");
        String configPath =
                root
                + File.separator
                + "roller"
                + File.separator
                + "WEB-INF"
                + File.separator
                + "roller-config.xml";
        return configPath;
    }
    protected void upgradeDatabaseIfNeeded() throws RollerException {
        // for now, this is a no-op
    }
    
}
\ No newline at end of file

Modified: incubator/roller/branches/roller_4.0_newbackend/tests/org/apache/roller/webservices/adminapi/AappTest.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_4.0_newbackend/tests/org/apache/roller/webservices/adminapi/AappTest.java?view=diff&rev=525260&r1=525259&r2=525260
==============================================================================
--- incubator/roller/branches/roller_4.0_newbackend/tests/org/apache/roller/webservices/adminapi/AappTest.java (original)
+++ incubator/roller/branches/roller_4.0_newbackend/tests/org/apache/roller/webservices/adminapi/AappTest.java Tue Apr  3 13:07:41 2007
@@ -21,12 +21,12 @@
 import java.util.Locale;
 import java.util.TimeZone;
 import junit.framework.TestCase;
-import org.apache.roller.webservices.adminapi.sdk.MemberEntry;
-import org.apache.roller.webservices.adminapi.sdk.MemberEntrySet;
-import org.apache.roller.webservices.adminapi.sdk.UserEntry;
-import org.apache.roller.webservices.adminapi.sdk.UserEntrySet;
-import org.apache.roller.webservices.adminapi.sdk.WeblogEntry;
-import org.apache.roller.webservices.adminapi.sdk.WeblogEntrySet;
+import org.apache.roller.webservices.adminprotocol.sdk.MemberEntry;
+import org.apache.roller.webservices.adminprotocol.sdk.MemberEntrySet;
+import org.apache.roller.webservices.adminprotocol.sdk.UserEntry;
+import org.apache.roller.webservices.adminprotocol.sdk.UserEntrySet;
+import org.apache.roller.webservices.adminprotocol.sdk.WeblogEntry;
+import org.apache.roller.webservices.adminprotocol.sdk.WeblogEntrySet;
 
 public abstract class AappTest extends TestCase {
     private static final Date sampleDate = new Date();

Modified: incubator/roller/branches/roller_4.0_newbackend/tests/org/apache/roller/webservices/adminapi/HandlerBaseTest.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_4.0_newbackend/tests/org/apache/roller/webservices/adminapi/HandlerBaseTest.java?view=diff&rev=525260&r1=525259&r2=525260
==============================================================================
--- incubator/roller/branches/roller_4.0_newbackend/tests/org/apache/roller/webservices/adminapi/HandlerBaseTest.java (original)
+++ incubator/roller/branches/roller_4.0_newbackend/tests/org/apache/roller/webservices/adminapi/HandlerBaseTest.java Tue Apr  3 13:07:41 2007
@@ -27,13 +27,13 @@
 import org.apache.commons.httpclient.methods.PostMethod;
 import org.apache.commons.httpclient.methods.PutMethod;
 import org.apache.commons.httpclient.util.Base64;
-import org.apache.roller.webservices.adminapi.sdk.MemberEntry;
-import org.apache.roller.webservices.adminapi.sdk.MemberEntrySet;
-import org.apache.roller.webservices.adminapi.sdk.UnexpectedRootElementException;
-import org.apache.roller.webservices.adminapi.sdk.UserEntry;
-import org.apache.roller.webservices.adminapi.sdk.UserEntrySet;
-import org.apache.roller.webservices.adminapi.sdk.WeblogEntry;
-import org.apache.roller.webservices.adminapi.sdk.WeblogEntrySet;
+import org.apache.roller.webservices.adminprotocol.sdk.MemberEntry;
+import org.apache.roller.webservices.adminprotocol.sdk.MemberEntrySet;
+import org.apache.roller.webservices.adminprotocol.sdk.UnexpectedRootElementException;
+import org.apache.roller.webservices.adminprotocol.sdk.UserEntry;
+import org.apache.roller.webservices.adminprotocol.sdk.UserEntrySet;
+import org.apache.roller.webservices.adminprotocol.sdk.WeblogEntry;
+import org.apache.roller.webservices.adminprotocol.sdk.WeblogEntrySet;
 import org.jdom.JDOMException;
 
 public abstract class HandlerBaseTest extends AappTest {

Modified: incubator/roller/branches/roller_4.0_newbackend/tests/org/apache/roller/webservices/adminapi/MemberHandlerTest.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_4.0_newbackend/tests/org/apache/roller/webservices/adminapi/MemberHandlerTest.java?view=diff&rev=525260&r1=525259&r2=525260
==============================================================================
--- incubator/roller/branches/roller_4.0_newbackend/tests/org/apache/roller/webservices/adminapi/MemberHandlerTest.java (original)
+++ incubator/roller/branches/roller_4.0_newbackend/tests/org/apache/roller/webservices/adminapi/MemberHandlerTest.java Tue Apr  3 13:07:41 2007
@@ -18,8 +18,8 @@
 package org.apache.roller.webservices.adminapi;
 
 import java.io.IOException;
-import org.apache.roller.webservices.adminapi.sdk.MemberEntrySet;
-import org.apache.roller.webservices.adminapi.sdk.UnexpectedRootElementException;
+import org.apache.roller.webservices.adminprotocol.sdk.MemberEntrySet;
+import org.apache.roller.webservices.adminprotocol.sdk.UnexpectedRootElementException;
 import org.jdom.JDOMException;
 
 public class MemberHandlerTest extends HandlerBaseTest {

Modified: incubator/roller/branches/roller_4.0_newbackend/tests/org/apache/roller/webservices/adminapi/UserHandlerTest.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_4.0_newbackend/tests/org/apache/roller/webservices/adminapi/UserHandlerTest.java?view=diff&rev=525260&r1=525259&r2=525260
==============================================================================
--- incubator/roller/branches/roller_4.0_newbackend/tests/org/apache/roller/webservices/adminapi/UserHandlerTest.java (original)
+++ incubator/roller/branches/roller_4.0_newbackend/tests/org/apache/roller/webservices/adminapi/UserHandlerTest.java Tue Apr  3 13:07:41 2007
@@ -18,9 +18,9 @@
 package org.apache.roller.webservices.adminapi;
 
 import java.io.IOException;
-import org.apache.roller.webservices.adminapi.sdk.UnexpectedRootElementException;
-import org.apache.roller.webservices.adminapi.sdk.UserEntry;
-import org.apache.roller.webservices.adminapi.sdk.UserEntrySet;
+import org.apache.roller.webservices.adminprotocol.sdk.UnexpectedRootElementException;
+import org.apache.roller.webservices.adminprotocol.sdk.UserEntry;
+import org.apache.roller.webservices.adminprotocol.sdk.UserEntrySet;
 import org.jdom.JDOMException;
 
 /**

Modified: incubator/roller/branches/roller_4.0_newbackend/tests/org/apache/roller/webservices/adminapi/WeblogHandlerTest.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_4.0_newbackend/tests/org/apache/roller/webservices/adminapi/WeblogHandlerTest.java?view=diff&rev=525260&r1=525259&r2=525260
==============================================================================
--- incubator/roller/branches/roller_4.0_newbackend/tests/org/apache/roller/webservices/adminapi/WeblogHandlerTest.java (original)
+++ incubator/roller/branches/roller_4.0_newbackend/tests/org/apache/roller/webservices/adminapi/WeblogHandlerTest.java Tue Apr  3 13:07:41 2007
@@ -18,9 +18,9 @@
 package org.apache.roller.webservices.adminapi;
 
 import java.io.IOException;
-import org.apache.roller.webservices.adminapi.sdk.UnexpectedRootElementException;
-import org.apache.roller.webservices.adminapi.sdk.WeblogEntry;
-import org.apache.roller.webservices.adminapi.sdk.WeblogEntrySet;
+import org.apache.roller.webservices.adminprotocol.sdk.UnexpectedRootElementException;
+import org.apache.roller.webservices.adminprotocol.sdk.WeblogEntry;
+import org.apache.roller.webservices.adminprotocol.sdk.WeblogEntrySet;
 import org.jdom.JDOMException;
 
 public class WeblogHandlerTest extends HandlerBaseTest {

Modified: incubator/roller/branches/roller_4.0_newbackend/tests/org/apache/roller/webservices/adminapi/sdk/MemberEntryTest.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_4.0_newbackend/tests/org/apache/roller/webservices/adminapi/sdk/MemberEntryTest.java?view=diff&rev=525260&r1=525259&r2=525260
==============================================================================
--- incubator/roller/branches/roller_4.0_newbackend/tests/org/apache/roller/webservices/adminapi/sdk/MemberEntryTest.java (original)
+++ incubator/roller/branches/roller_4.0_newbackend/tests/org/apache/roller/webservices/adminapi/sdk/MemberEntryTest.java Tue Apr  3 13:07:41 2007
@@ -17,6 +17,8 @@
 */
 package org.apache.roller.webservices.adminapi.sdk;
 
+import org.apache.roller.webservices.adminprotocol.sdk.MemberEntrySet;
+import org.apache.roller.webservices.adminprotocol.sdk.UnexpectedRootElementException;
 import org.jdom.Document;
 import java.io.InputStream;
 import java.io.ByteArrayInputStream;

Modified: incubator/roller/branches/roller_4.0_newbackend/tests/org/apache/roller/webservices/adminapi/sdk/UserEntryTest.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_4.0_newbackend/tests/org/apache/roller/webservices/adminapi/sdk/UserEntryTest.java?view=diff&rev=525260&r1=525259&r2=525260
==============================================================================
--- incubator/roller/branches/roller_4.0_newbackend/tests/org/apache/roller/webservices/adminapi/sdk/UserEntryTest.java (original)
+++ incubator/roller/branches/roller_4.0_newbackend/tests/org/apache/roller/webservices/adminapi/sdk/UserEntryTest.java Tue Apr  3 13:07:41 2007
@@ -17,6 +17,8 @@
 */
 package org.apache.roller.webservices.adminapi.sdk;
 
+import org.apache.roller.webservices.adminprotocol.sdk.UnexpectedRootElementException;
+import org.apache.roller.webservices.adminprotocol.sdk.UserEntrySet;
 import org.jdom.Document;
 import java.io.InputStream;
 import java.io.ByteArrayInputStream;

Modified: incubator/roller/branches/roller_4.0_newbackend/tests/org/apache/roller/webservices/adminapi/sdk/WeblogEntryTest.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_4.0_newbackend/tests/org/apache/roller/webservices/adminapi/sdk/WeblogEntryTest.java?view=diff&rev=525260&r1=525259&r2=525260
==============================================================================
--- incubator/roller/branches/roller_4.0_newbackend/tests/org/apache/roller/webservices/adminapi/sdk/WeblogEntryTest.java (original)
+++ incubator/roller/branches/roller_4.0_newbackend/tests/org/apache/roller/webservices/adminapi/sdk/WeblogEntryTest.java Tue Apr  3 13:07:41 2007
@@ -17,6 +17,8 @@
 */
 package org.apache.roller.webservices.adminapi.sdk;
 
+import org.apache.roller.webservices.adminprotocol.sdk.UnexpectedRootElementException;
+import org.apache.roller.webservices.adminprotocol.sdk.WeblogEntrySet;
 import org.jdom.Document;
 import java.io.InputStream;
 import java.io.ByteArrayInputStream;

Added: incubator/roller/branches/roller_4.0_newbackend/tools/openjpa-0.9.6/geronimo-jta_1.0.1B_spec-1.0.1.jar
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_4.0_newbackend/tools/openjpa-0.9.6/geronimo-jta_1.0.1B_spec-1.0.1.jar?view=auto&rev=525260
==============================================================================
Binary file - no diff available.

Propchange: incubator/roller/branches/roller_4.0_newbackend/tools/openjpa-0.9.6/geronimo-jta_1.0.1B_spec-1.0.1.jar
------------------------------------------------------------------------------
    svn:executable = *

Propchange: incubator/roller/branches/roller_4.0_newbackend/tools/openjpa-0.9.6/geronimo-jta_1.0.1B_spec-1.0.1.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/roller/branches/roller_4.0_newbackend/tools/spring-1.2/ehcache-1.1.jar
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_4.0_newbackend/tools/spring-1.2/ehcache-1.1.jar?view=auto&rev=525260
==============================================================================
Binary file - no diff available.

Propchange: incubator/roller/branches/roller_4.0_newbackend/tools/spring-1.2/ehcache-1.1.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Modified: incubator/roller/branches/roller_4.0_newbackend/web/WEB-INF/classes/ApplicationResources.properties
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_4.0_newbackend/web/WEB-INF/classes/ApplicationResources.properties?view=diff&rev=525260&r1=525259&r2=525260
==============================================================================
--- incubator/roller/branches/roller_4.0_newbackend/web/WEB-INF/classes/ApplicationResources.properties (original)
+++ incubator/roller/branches/roller_4.0_newbackend/web/WEB-INF/classes/ApplicationResources.properties Tue Apr  3 13:07:41 2007
@@ -888,6 +888,7 @@
 
 pageForm.advancedSettings=Advanced Settings
 pagesForm.name=Name
+pagesForm.action=Action
 pagesForm.link=Link
 pagesForm.description=Description
 pagesForm.edit=Edit

Modified: incubator/roller/branches/roller_4.0_newbackend/web/WEB-INF/classes/roller.properties
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_4.0_newbackend/web/WEB-INF/classes/roller.properties?view=diff&rev=525260&r1=525259&r2=525260
==============================================================================
--- incubator/roller/branches/roller_4.0_newbackend/web/WEB-INF/classes/roller.properties (original)
+++ incubator/roller/branches/roller_4.0_newbackend/web/WEB-INF/classes/roller.properties Tue Apr  3 13:07:41 2007
@@ -100,7 +100,7 @@
 org.apache.roller.ui.rendering.velocity.VelocityRendererFactory
 
 # List of available template languages
-rendering.templateLanguages=velocity,groovlet,gsp,javascript
+rendering.templateLanguages=velocity
 
 # The set of user defined renderer factories.  These are prepended to the list above.
 rendering.userRendererFactories=

Modified: incubator/roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/authoring/edit-page.jsp
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/authoring/edit-page.jsp?view=diff&rev=525260&r1=525259&r2=525260
==============================================================================
--- incubator/roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/authoring/edit-page.jsp (original)
+++ incubator/roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/authoring/edit-page.jsp Tue Apr  3 13:07:41 2007
@@ -38,6 +38,7 @@
     <html:hidden property="id"/>
     <html:hidden property="decoratorName" />
     <html:hidden property="required" />
+    <html:hidden property="action" />
     <input type="hidden" name="method" value="update" />
     <input type="hidden" name="weblog" value='<c:out value="${model.website.handle}" />' />
     

Modified: incubator/roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/authoring/edit-pages-sidebar.jsp
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/authoring/edit-pages-sidebar.jsp?view=diff&rev=525260&r1=525259&r2=525260
==============================================================================
--- incubator/roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/authoring/edit-pages-sidebar.jsp (original)
+++ incubator/roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/authoring/edit-pages-sidebar.jsp Tue Apr  3 13:07:41 2007
@@ -26,10 +26,31 @@
              <hr size="1" noshade="noshade" />
              
              <html:form action="/roller-ui/authoring/page" method="post" focus="name">
-
-                <fmt:message key="pagesForm.name"/>: <input type="text" name="name" size="12" />
-
-                <input type="submit" value='<fmt:message key="pagesForm.add" />' />
+                 <table cellpadding="0" cellspacing="0">
+                     <tr>
+                         <td><fmt:message key="pagesForm.name"/>:</td>
+                         <td><input type="text" name="name" size="12" /></td>
+                     </tr>
+                     
+                     <c:if test="${ not empty availableActions }" >
+                         <tr>
+                             <td><fmt:message key="pagesForm.action"/>:</td>
+                             <td>
+                                 <html:select property="action">
+                                     <c:forEach var="act" items="${availableActions}">
+                                         <option value="<c:out value="${act}"/>"><c:out value="${act}"/></option>
+                                     </c:forEach>
+                                 </html:select>
+                             </td>
+                         </tr>
+                     </c:if>
+                     
+                     <tr>
+                         <td></td>
+                         <td><input type="submit" value='<fmt:message key="pagesForm.add" />' /></td>
+                     </tr>
+                 </table>
+                
                 <input type="hidden" name="weblog" value='<c:out value="${model.website.handle}" />' />
                 <html:hidden property="method" value="add"/>
 

Modified: incubator/roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/authoring/theme-editor.jsp
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/authoring/theme-editor.jsp?view=diff&rev=525260&r1=525259&r2=525260
==============================================================================
--- incubator/roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/authoring/theme-editor.jsp (original)
+++ incubator/roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/authoring/theme-editor.jsp Tue Apr  3 13:07:41 2007
@@ -43,11 +43,11 @@
         <tr>
             <td>
                 <p>
-                    <fmt:message key="themeEditor.yourCurrentTheme" />: <b><c:out value="${currentTheme}"/></b><br/>
+                    <fmt:message key="themeEditor.yourCurrentTheme" />: <b><c:out value="${currentTheme.name}"/></b><br/>
                     
                     <c:choose>
                         <c:when test="${currentTheme ne previewTheme}" >
-                            <fmt:message key="themeEditor.themeBelowIsCalled" /> <b><c:out value="${previewTheme}" /></b><br/>
+                            <fmt:message key="themeEditor.themeBelowIsCalled" /> <b><c:out value="${previewTheme.name}" /></b><br/>
                             <fmt:message key="themeEditor.savePrompt" /><br/>
                             <input type="button" 
                                 value='<fmt:message key="themeEditor.save" />'
@@ -62,7 +62,7 @@
                                 tabindex="4" />
                         </c:when>
                         
-                        <c:when test="${(currentTheme ne customTheme) and allowCustom}">
+                        <c:when test="${(currentTheme.id ne customTheme) and allowCustom}">
                             <fmt:message key="themeEditor.youMayCustomize" /><br/>
                             <input type="button" 
                                 value='<fmt:message key="themeEditor.customize" />'
@@ -84,20 +84,25 @@
                 <p>
                 <fmt:message key="themeEditor.selectTheme" /> : 
                 <select name="theme" size="1" onchange="this.form.submit()" >
-                    <c:forEach var="themeName" items="${themesList}">
+                    <c:forEach var="theme" items="${themesList}">
                         <c:choose>
-                            <c:when test="${themeName eq previewTheme}">
-                                <option value="<c:out value="${themeName}"/>" selected>
-                                    <c:out value="${themeName}"/>
+                            <c:when test="${theme.id eq previewTheme.id}">
+                                <option value="<c:out value="${theme.id}"/>" selected>
+                                    <c:out value="${theme.name}"/>
                                 </option>
                             </c:when>
                             <c:otherwise>
-                                <option value="<c:out value="${themeName}"/>">
-                                    <c:out value="${themeName}"/>
+                                <option value="<c:out value="${theme.id}"/>">
+                                    <c:out value="${theme.name}"/>
                                 </option>
                             </c:otherwise>
                         </c:choose>
                     </c:forEach>
+                    <c:if test="${allowCustomOption}">
+                            <option value="<c:out value="${customTheme}"/>" <c:if test="${previewTheme.id eq customTheme}">selected</c:if>>
+                            <c:out value="${customTheme}"/>
+                        </option>
+                    </c:if>
                 </select>
                 </p>
             </td>
@@ -106,7 +111,7 @@
         <tr>
             <td>
                 <iframe name="preview" id="preview" 
-                src='<%= request.getContextPath() %>/roller-ui/authoring/preview/<c:out value="${model.website.handle}" />?theme=<c:out value="${previewTheme}"/>' 
+                src='<%= request.getContextPath() %>/roller-ui/authoring/preview/<c:out value="${model.website.handle}" />?theme=<c:out value="${previewTheme.id}"/>' 
                 frameborder=1 width="100%" height="400" 
                 marginheight="0" marginwidth="0"></iframe>
             </td>

Modified: incubator/roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/core/CreateWebsite.jsp
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/core/CreateWebsite.jsp?view=diff&rev=525260&r1=525259&r2=525260
==============================================================================
--- incubator/roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/core/CreateWebsite.jsp (original)
+++ incubator/roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/core/CreateWebsite.jsp Tue Apr  3 13:07:41 2007
@@ -15,6 +15,10 @@
   copyright in this work, please see the NOTICE file in the top level
   directory of this distribution.
 -->
+<%
+java.util.List themes = ((org.apache.roller.ui.core.struts.actions.CreateWebsiteAction.CreateWebsitePageModel)request.getAttribute("model")).getThemes();
+request.setAttribute("themes", themes);
+%>
 <%@ include file="/WEB-INF/jsps/taglibs.jsp" %>
 <script type="text/javascript">
 <!--
@@ -101,11 +105,11 @@
     <td class="label"><label for="theme" /><fmt:message key="createWebsite.theme" /></label></td>
     <td class="field">
        <html:select property="theme" size="1" onchange="previewImage(this[selectedIndex].value)">
-           <html:options name="model" property="themes" />
+           <html:options collection="themes" property="id" labelProperty="name" />
        </html:select>
        <br />
        <br />
-       <img name="preview" src='<%= request.getContextPath() %>/themes/<c:out value="${model.themes[0]}"/>/sm-theme-<c:out value="${model.themes[0]}" />.png' />
+       <img name="preview" src='<%= request.getContextPath() %>/themes/<c:out value="${model.themes[0].id}"/>/sm-theme-<c:out value="${model.themes[0].id}" />.png' />
     </td>
     <td class="description"><fmt:message key="createWebsite.tip.theme" /></td>
 </tr>

Modified: incubator/roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/taglibs-error.jsp
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/taglibs-error.jsp?view=diff&rev=525260&r1=525259&r2=525260
==============================================================================
--- incubator/roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/taglibs-error.jsp (original)
+++ incubator/roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/taglibs-error.jsp Tue Apr  3 13:07:41 2007
@@ -42,7 +42,6 @@
 
 <%@ page import="org.apache.roller.ui.core.RequestConstants" %>
 <%@ page import="org.apache.roller.ui.core.BasePageModel" %>
-<%@ page import="org.apache.roller.ui.core.RollerContext" %>
 <%@ page import="org.apache.roller.ui.core.RollerSession" %>
 
 <%   

Modified: incubator/roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/taglibs.jsp
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/taglibs.jsp?view=diff&rev=525260&r1=525259&r2=525260
==============================================================================
--- incubator/roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/taglibs.jsp (original)
+++ incubator/roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/taglibs.jsp Tue Apr  3 13:07:41 2007
@@ -41,7 +41,6 @@
 
 <%@ page import="org.apache.roller.ui.core.RequestConstants" %>
 <%@ page import="org.apache.roller.ui.core.BasePageModel" %>
-<%@ page import="org.apache.roller.ui.core.RollerContext" %>
 <%@ page import="org.apache.roller.ui.core.RollerSession" %>
 
 <%   

Modified: incubator/roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/tiles/bannerStatus.jsp
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/tiles/bannerStatus.jsp?view=diff&rev=525260&r1=525259&r2=525260
==============================================================================
--- incubator/roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/tiles/bannerStatus.jsp (original)
+++ incubator/roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/tiles/bannerStatus.jsp Tue Apr  3 13:07:41 2007
@@ -17,7 +17,6 @@
 --%>
 <%@ include file="/WEB-INF/jsps/taglibs.jsp" %>
 <%
-RollerContext rctx = RollerContext.getRollerContext();
 RollerSession rollerSession = RollerSession.getRollerSession(request);
 UserData user = rollerSession.getAuthenticatedUser();
 

Modified: incubator/roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/tiles/head.jsp
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/tiles/head.jsp?view=diff&rev=525260&r1=525259&r2=525260
==============================================================================
--- incubator/roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/tiles/head.jsp (original)
+++ incubator/roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/tiles/head.jsp Tue Apr  3 13:07:41 2007
@@ -13,18 +13,7 @@
 <link rel="stylesheet" type="text/css" media="all" 
     href='<c:url value="/roller-ui/styles/calendar.css"/>'>
       
-<%
-//String theme = theme = RollerConfig.getProperty("editor.theme");
-
-String theme = request.getParameter("look");
-if (theme == null && session != null) {
-    theme = (String)session.getAttribute("look");
-}
-if (theme == null) {
-    theme = RollerConfig.getProperty("editor.theme");
-}
-if (session !=null) session.setAttribute("look", theme);
-%>
+<% String theme = theme = RollerConfig.getProperty("editor.theme"); %>
 
 <link rel="stylesheet" type="text/css" media="all" 
     href="<%= request.getContextPath() %>/roller-ui/theme/<%= theme %>/colors.css" />  

Modified: incubator/roller/branches/roller_4.0_newbackend/web/WEB-INF/velocity/weblog.vm
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_4.0_newbackend/web/WEB-INF/velocity/weblog.vm?view=diff&rev=525260&r1=525259&r2=525260
==============================================================================
--- incubator/roller/branches/roller_4.0_newbackend/web/WEB-INF/velocity/weblog.vm (original)
+++ incubator/roller/branches/roller_4.0_newbackend/web/WEB-INF/velocity/weblog.vm Tue Apr  3 13:07:41 2007
@@ -88,7 +88,7 @@
     #end
 
     #else
-    <link rel="alternate" type="application/rss+xml"  title="Search results for '$utils.escapeHTML($model.term)'"  href="$utils.escapeHTML($url.feed.entries.search($model.term))" />
+    <link rel="alternate" type="application/rss+xml"  title="Search results for '$utils.escapeHTML($model.term)'"  href="$utils.escapeHTML($url.feed.entries.search($model.term,$model.weblogCategory.path))" />
     #end
 #end
 

Modified: incubator/roller/branches/roller_4.0_newbackend/web/roller-ui/widgets/date.jsp
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_4.0_newbackend/web/roller-ui/widgets/date.jsp?view=diff&rev=525260&r1=525259&r2=525260
==============================================================================
--- incubator/roller/branches/roller_4.0_newbackend/web/roller-ui/widgets/date.jsp (original)
+++ incubator/roller/branches/roller_4.0_newbackend/web/roller-ui/widgets/date.jsp Tue Apr  3 13:07:41 2007
@@ -20,7 +20,8 @@
 String formName = request.getAttribute(prefix+"_formName").toString(); 
 String dateField = request.getAttribute(prefix+"_property").toString(); 
 String dateFormat = request.getAttribute(prefix+"_dateFormat").toString();
-String value = request.getAttribute(prefix+"_value").toString();
+// value comes from request, must escape to avoid XSS vulnerability
+String value = org.apache.roller.util.Utilities.escapeHTML(request.getAttribute(prefix+"_value").toString());
 Boolean readOnly = (Boolean)request.getAttribute(prefix+"_readOnly");
 %>
 <script type="text/javascript" >