You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by ag...@apache.org on 2005/07/22 21:33:21 UTC

svn commit: r224390 - in /incubator/roller/trunk/src/org/roller/presentation: velocity/ velocity/wrappers/ weblog/actions/ weblog/tags/

Author: agilliland
Date: Fri Jul 22 12:33:16 2005
New Revision: 224390

URL: http://svn.apache.org/viewcvs?rev=224390&view=rev
Log:
modifying velocity rendering process to ensure that all pojos are properly wrapped.

removed old TemplateWrapper object because we have a new one that gets generated via xdoclet.

Removed:
    incubator/roller/trunk/src/org/roller/presentation/velocity/wrappers/TemplateWrapper.java
Modified:
    incubator/roller/trunk/src/org/roller/presentation/velocity/ContextLoader.java
    incubator/roller/trunk/src/org/roller/presentation/velocity/Macros.java
    incubator/roller/trunk/src/org/roller/presentation/velocity/PageHelper.java
    incubator/roller/trunk/src/org/roller/presentation/velocity/PageModel.java
    incubator/roller/trunk/src/org/roller/presentation/weblog/actions/WeblogEntryFormAction.java
    incubator/roller/trunk/src/org/roller/presentation/weblog/tags/ApplyPluginsTag.java
    incubator/roller/trunk/src/org/roller/presentation/weblog/tags/WeblogEntryMacros.java

Modified: incubator/roller/trunk/src/org/roller/presentation/velocity/ContextLoader.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/presentation/velocity/ContextLoader.java?rev=224390&r1=224389&r2=224390&view=diff
==============================================================================
--- incubator/roller/trunk/src/org/roller/presentation/velocity/ContextLoader.java (original)
+++ incubator/roller/trunk/src/org/roller/presentation/velocity/ContextLoader.java Fri Jul 22 12:33:16 2005
@@ -33,12 +33,15 @@
 import org.roller.pojos.UserData;
 import org.roller.pojos.WeblogEntryData;
 import org.roller.pojos.WebsiteData;
+import org.roller.pojos.wrapper.CommentDataWrapper;
+import org.roller.pojos.wrapper.TemplateWrapper;
+import org.roller.pojos.wrapper.WeblogEntryDataWrapper;
+import org.roller.pojos.wrapper.WebsiteDataWrapper;
 import org.roller.presentation.LanguageUtil;
 import org.roller.presentation.RollerContext;
 import org.roller.presentation.RollerRequest;
 import org.roller.presentation.RollerSession;
 import org.roller.presentation.newsfeeds.NewsfeedCache;
-import org.roller.presentation.velocity.wrappers.TemplateWrapper;
 import org.roller.presentation.weblog.formbeans.CommentFormEx;
 import org.roller.util.RegexUtil;
 import org.roller.util.StringUtils;
@@ -129,6 +132,8 @@
      */
     private static void loadStatusMessage(Context ctx, RollerRequest rreq)
     {
+        mLogger.debug("Loading status message");
+        
         HttpSession session = rreq.getRequest().getSession(false);
         String msg = null;
         if (session != null)
@@ -160,8 +165,10 @@
        Context ctx, RollerRequest rreq, RollerContext rollerCtx, String userName)
        throws RollerException
     {
+        mLogger.debug("Loading weblog values");
+        
         // if there is an "_entry" page, only load it once
-        WebsiteData website = rreq.getRoller().getUserManager().getWebsite(userName);
+        WebsiteData website = RollerFactory.getRoller().getUserManager().getWebsite(userName);
         //PageModel pageModel = (PageModel)ctx.get("pageModel");
         if (website != null) 
         {
@@ -169,12 +176,12 @@
             Template entryPage = website.getPageByName("_entry");
             if (entryPage != null)
             {
-                ctx.put("entryPage", new TemplateWrapper(entryPage));
+                ctx.put("entryPage", TemplateWrapper.wrap(entryPage));
             }
             Template descPage = website.getPageByName("_desc");
             if (descPage != null)
             {
-                ctx.put("descPage", new TemplateWrapper(descPage));
+                ctx.put("descPage", TemplateWrapper.wrap(descPage));
             }
         }
     }
@@ -210,6 +217,8 @@
        Context ctx, RollerRequest rreq, RollerContext rollerCtx ) 
        throws RollerException
     {
+        mLogger.debug("Loading comment values");
+        
         HttpServletRequest request = rreq.getRequest();
         
         String escapeHtml = RollerRuntimeConfig.getProperty("users.comments.escapehtml");
@@ -241,11 +250,11 @@
             ArrayList list = new ArrayList();
             CommentData cd = new CommentData();
             commentForm.copyTo(cd, request.getLocale());
-            list.add(cd);
+            list.add(CommentDataWrapper.wrap(cd));
             ctx.put("previewComments",list);            
         }
         WeblogEntryData entry = rreq.getWeblogEntry();
-        ctx.put("entry",entry);            
+        ctx.put("entry", WeblogEntryDataWrapper.wrap(entry));            
     }   
 
     //------------------------------------------------------------------------
@@ -254,6 +263,8 @@
         Context ctx, RollerRequest rreq, RollerContext rollerCtx, String userName) 
         throws RollerException
     {
+        mLogger.debug("Loading path values");
+        
         HttpServletRequest request = rreq.getRequest();
         String url = null;
         if ( userName != null && !userName.equals("zzz_none_zzz"))
@@ -286,6 +297,8 @@
     
     protected static void loadRequestParamKeys(Context ctx)
     {
+        mLogger.debug("Loading request param keys");
+        
         // Since Velocity *requires* accessor methods, these values from
         // RollerRequest are not available to it, put them into the context
         ctx.put("USERNAME_KEY",           RollerRequest.USERNAME_KEY);
@@ -311,6 +324,8 @@
     protected static void loadRssValues(
        Context ctx, RollerRequest rreq, String userName) throws RollerException
     {
+        mLogger.debug("Loading rss values");
+        
         HttpServletRequest request = rreq.getRequest();
         
         int entryLength = -1;
@@ -357,13 +372,14 @@
         Context ctx, RollerRequest rreq, RollerContext rollerCtx, String username)
         throws RollerException
     {
-
+        mLogger.debug("Loading utility objects");
+        
         // date formatter for macro's
         // set this up with the Locale to make sure we can reuse it with other patterns
         // in the macro's
         Locale viewLocale = (Locale) ctx.get("viewLocale");
         SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd", viewLocale);
-        WebsiteData website = rreq.getRoller().getUserManager().getWebsite(username);
+        WebsiteData website = RollerFactory.getRoller().getUserManager().getWebsite(username);
         if (website != null)
         {
             sdf.setTimeZone(website.getTimeZoneInstance());
@@ -376,7 +392,7 @@
         // the Entry Day link.
         ctx.put("plainFormat", "yyyyMMdd");
 
-        ctx.put("page",            new TemplateWrapper(rreq.getPage()));
+        ctx.put("page",            TemplateWrapper.wrap(rreq.getPage()));
         ctx.put("utilities",       new Utilities() );
         ctx.put("stringUtils",     new StringUtils() );        
         ctx.put("rollerVersion",   rollerCtx.getRollerVersion() );
@@ -393,6 +409,8 @@
         Context ctx, RollerRequest rreq, RollerContext rollerCtx )
         throws RollerException
     {
+        mLogger.debug("Loading website values");
+        
         String userName = null;
         UserData user = null;
         WebsiteData website = null;
@@ -413,7 +431,7 @@
         if ( user != null )
         {
             userName = user.getUserName();
-            website = rreq.getRoller().getUserManager().getWebsite(userName);
+            website = RollerFactory.getRoller().getUserManager().getWebsite(userName);
             ctx.put("userName",      user.getUserName() );
             ctx.put("fullName",      user.getFullName() );
             ctx.put("emailAddress",  user.getEmailAddress() );
@@ -441,7 +459,7 @@
             ctx.put("locale", Locale.getDefault());
             ctx.put("timezone", TimeZone.getDefault());
         }
-        ctx.put("website", website );
+        ctx.put("website", WebsiteDataWrapper.wrap(website) );
 
         String siteName = ((RollerPropertyData)props.get("site.name")).getValue();
         if ("Roller-based Site".equals(siteName)) siteName = "Main";
@@ -468,6 +486,8 @@
      */
     public static void initializePagePlugins(ServletContext mContext)
     {
+        mLogger.debug("Initializing page plugins");
+        
         String pluginStr = RollerConfig.getProperty("plugins.page");
         if (mLogger.isDebugEnabled()) mLogger.debug(pluginStr);
         if (pluginStr != null)
@@ -540,6 +560,8 @@
     private static ToolboxContext loadToolboxContext(
                     HttpServletRequest request, HttpServletResponse response, Context ctx) 
     {
+        mLogger.debug("Loading toolbox context");
+        
         ServletContext servletContext = RollerContext.getServletContext();
 
         // get the toolbox manager

Modified: incubator/roller/trunk/src/org/roller/presentation/velocity/Macros.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/presentation/velocity/Macros.java?rev=224390&r1=224389&r2=224390&view=diff
==============================================================================
--- incubator/roller/trunk/src/org/roller/presentation/velocity/Macros.java (original)
+++ incubator/roller/trunk/src/org/roller/presentation/velocity/Macros.java Fri Jul 22 12:33:16 2005
@@ -7,8 +7,6 @@
 import org.apache.velocity.VelocityContext;
 import org.apache.velocity.runtime.RuntimeSingleton;
 import org.roller.model.RefererManager;
-import org.roller.model.UserManager;
-import org.roller.pojos.WeblogTemplate;
 import org.roller.pojos.RefererData;
 import org.roller.pojos.UserData;
 import org.roller.pojos.WeblogCategoryData;
@@ -37,6 +35,8 @@
 import javax.servlet.jsp.PageContext;
 import org.roller.config.RollerRuntimeConfig;
 import org.roller.model.RollerFactory;
+import org.roller.pojos.wrapper.UserDataWrapper;
+import org.roller.pojos.wrapper.WebsiteDataWrapper;
 
 /**
  * Provides the macros object that is available to Roller templates and 
@@ -279,11 +279,11 @@
      * @see org.roller.pojos.UserData
      * @return User object.
      */
-    public UserData getUser()
+    public UserDataWrapper getUser()
     {
         try
         {
-            return getRollerRequest().getUser();
+            return UserDataWrapper.wrap(getRollerRequest().getUser());
         }
         catch (Exception e)
         {
@@ -300,11 +300,11 @@
      * @see org.roller.pojos.WebsiteData
      * @return Website object.
      */
-    public WebsiteData getWebsite()
+    public WebsiteDataWrapper getWebsite()
     {
         try
         {
-            return getRollerRequest().getWebsite();
+            return WebsiteDataWrapper.wrap(getRollerRequest().getWebsite());
         }
         catch (Exception e)
         {
@@ -494,7 +494,7 @@
             sb.append("excerpts</a>]");
             sb.append("<br />");
 
-			List cats = rreq.getRoller().getWeblogManager()
+			List cats = RollerFactory.getRoller().getWeblogManager()
                 .getWeblogCategories(rreq.getWebsite(), false);
 			for (Iterator wbcItr = cats.iterator(); wbcItr.hasNext();) {
 				WeblogCategoryData category = (WeblogCategoryData) wbcItr.next();
@@ -1022,7 +1022,7 @@
         try
         {
             RollerRequest rreq = getRollerRequest();
-            RefererManager refmgr = rreq.getRoller().getRefererManager();
+            RefererManager refmgr = RollerFactory.getRoller().getRefererManager();
 
             StringBuffer sb = new StringBuffer();
             

Modified: incubator/roller/trunk/src/org/roller/presentation/velocity/PageHelper.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/presentation/velocity/PageHelper.java?rev=224390&r1=224389&r2=224390&view=diff
==============================================================================
--- incubator/roller/trunk/src/org/roller/presentation/velocity/PageHelper.java (original)
+++ incubator/roller/trunk/src/org/roller/presentation/velocity/PageHelper.java Fri Jul 22 12:33:16 2005
@@ -5,10 +5,8 @@
 import org.apache.struts.Globals;
 import org.apache.struts.util.RequestUtils;
 import org.apache.velocity.VelocityContext;
-import org.apache.velocity.app.Velocity;
 import org.apache.velocity.context.Context;
 import org.roller.RollerException;
-import org.roller.pojos.RefererData;
 import org.roller.pojos.UserData;
 import org.roller.pojos.WeblogEntryData;
 import org.roller.presentation.LanguageUtil;
@@ -21,8 +19,6 @@
 import org.roller.presentation.weblog.tags.BigWeblogCalendarModel;
 import org.roller.presentation.weblog.tags.WeblogCalendarModel;
 import org.roller.util.StringUtils;
-
-import java.io.StringWriter;
 import java.net.MalformedURLException;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -35,6 +31,8 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.jsp.PageContext;
+import org.roller.pojos.wrapper.RefererDataWrapper;
+import org.roller.pojos.wrapper.WeblogEntryDataWrapper;
 
 /**
  * Provides assistance to VelociMacros, filling in where Velocity falls.
@@ -181,7 +179,7 @@
     }
    
     /** Build the URL for editing an WeblogEntry **/
-    public String getEntryEditUrl(WeblogEntryData entry)
+    public String getEntryEditUrl(WeblogEntryDataWrapper entry)
     {
         Hashtable params = new Hashtable();
         params.put( RollerRequest.WEBLOGENTRYID_KEY, entry.getId());
@@ -204,7 +202,7 @@
     }
     
     //-------------------------------------------------------------------------
-    public String getToggleLinkbackDisplayHTML(RefererData referer)
+    public String getToggleLinkbackDisplayHTML(RefererDataWrapper referer)
     {
         String ret = "";
         String link = null;
@@ -473,14 +471,21 @@
      */
     public String renderPlugins(String str)
     {
+        mLogger.debug("Rendering page plugins on String");
+        
         if (mPagePlugins != null)
         {
             Iterator iter = mPagePlugins.iterator();
+            PagePlugin plugin = null;
             while (iter.hasNext())
             {
-                str = ((PagePlugin)iter.next()).render(str);
+                plugin = (PagePlugin) iter.next();
+                
+                mLogger.debug("applying plugin - ");
+                str = plugin.render(str);
             }
         }
+        
         return str;
     }
     
@@ -491,12 +496,14 @@
      * @param str
      * @return
      */
-    public String renderPlugins(WeblogEntryData entry)
+    public String renderPlugins(WeblogEntryDataWrapper entry)
     {
+        mLogger.debug("Rendering page plugins on WeblogEntryData");
+        
         // we have to make a copy to temporarily store the
         // changes wrought by Plugins (otherwise they might
         // end up persisted!).
-        WeblogEntryData copy = new WeblogEntryData(entry);
+        WeblogEntryData copy = new WeblogEntryData(entry.getPojo());
         
         if (mPagePlugins != null)
         {
@@ -526,6 +533,7 @@
                 }
             }
         }
+        
         return copy.getText();
     }
     

Modified: incubator/roller/trunk/src/org/roller/presentation/velocity/PageModel.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/presentation/velocity/PageModel.java?rev=224390&r1=224389&r2=224390&view=diff
==============================================================================
--- incubator/roller/trunk/src/org/roller/presentation/velocity/PageModel.java (original)
+++ incubator/roller/trunk/src/org/roller/presentation/velocity/PageModel.java Fri Jul 22 12:33:16 2005
@@ -15,19 +15,25 @@
 import org.roller.config.RollerRuntimeConfig;
 import org.roller.model.BookmarkManager;
 import org.roller.model.RefererManager;
+import org.roller.model.Roller;
+import org.roller.model.RollerFactory;
 import org.roller.pojos.Template;
 import org.roller.model.UserManager;
 import org.roller.model.WeblogManager;
-import org.roller.pojos.BookmarkComparator;
+import org.roller.pojos.CommentData;
 import org.roller.pojos.FolderData;
-import org.roller.pojos.WeblogTemplate;
 import org.roller.pojos.RefererData;
 import org.roller.pojos.UserData;
 import org.roller.pojos.WeblogCategoryData;
 import org.roller.pojos.WeblogEntryData;
 import org.roller.pojos.WebsiteData;
+import org.roller.pojos.wrapper.CommentDataWrapper;
+import org.roller.pojos.wrapper.FolderDataWrapper;
+import org.roller.pojos.wrapper.RefererDataWrapper;
+import org.roller.pojos.wrapper.TemplateWrapper;
+import org.roller.pojos.wrapper.WeblogCategoryDataWrapper;
+import org.roller.pojos.wrapper.WeblogEntryDataWrapper;
 import org.roller.presentation.RollerRequest;
-import org.roller.presentation.velocity.wrappers.TemplateWrapper;
 import org.roller.util.StringUtils;
 
 /**
@@ -54,12 +60,12 @@
     private String               mUsername = null;
     private WebsiteData          mWebsite = null;
     
-    private WeblogEntryData      mNextEntry = null;
-    private WeblogEntryData      mPreviousEntry = null;
+    private WeblogEntryDataWrapper      mNextEntry = null;
+    private WeblogEntryDataWrapper      mPreviousEntry = null;
 
-    private WeblogEntryData      mLastEntry = null;
+    private WeblogEntryDataWrapper      mLastEntry = null;
 
-    private WeblogEntryData mFirstEntry;
+    private WeblogEntryDataWrapper      mFirstEntry = null;
         
     //------------------------------------------------------------------------
     
@@ -91,10 +97,11 @@
         
         try
         {
-            mBookmarkMgr = rreq.getRoller().getBookmarkManager();
-            mRefererMgr  = rreq.getRoller().getRefererManager();
-            mUserMgr     = rreq.getRoller().getUserManager();
-            mWeblogMgr   = rreq.getRoller().getWeblogManager();
+            Roller mRoller = RollerFactory.getRoller();
+            mBookmarkMgr = mRoller.getBookmarkManager();
+            mRefererMgr  = mRoller.getRefererManager();
+            mUserMgr     = mRoller.getUserManager();
+            mWeblogMgr   = mRoller.getWeblogManager();
             
             /** 
              * Preload what we can for encapsulation.  What we cannot preload we
@@ -113,7 +120,7 @@
                 while (pageIter.hasNext())
                 {
                     Template page = (Template) pageIter.next();
-                    mPageMap.put(page.getName(), new TemplateWrapper(page));
+                    mPageMap.put(page.getName(), TemplateWrapper.wrap(page));
                 }
             }
             
@@ -127,12 +134,19 @@
     //------------------------------------------------------------------------
     
     /** Encapsulates folder.getBookmarks() & sorting */
-    public Collection getBookmarks(FolderData folder)
+    public Collection getBookmarks(FolderDataWrapper folder)
     {
+        mLogger.debug("Getting bookmarks for folder : "+folder.getName());
+        
+        // since we already have a wrapped pojo we know the output
+        // will be wrapped as well :)
         Collection bookmarks = folder.getBookmarks();
-        List list = new ArrayList(bookmarks);
-        Collections.sort( list, new BookmarkComparator() );
-        return list;
+        
+        // TODO: need to setup new BookmarkWrapperComparator
+        //List mBookmarks = new ArrayList(bookmarks);
+        //Collections.sort( mBookmarks, new BookmarkComparator() );
+        
+        return bookmarks;
     }
     
     //------------------------------------------------------------------------
@@ -140,10 +154,19 @@
     /** Get top level bookmark folders. */
     public Collection getTopLevelFolders()
     {
-        Collection tops = null;
+        List tops = null;
         try
         {
-         tops= mBookmarkMgr.getRootFolder(mWebsite).getFolders();
+            Collection mTops = mBookmarkMgr.getRootFolder(mWebsite).getFolders();
+            
+            // wrap pojos
+            tops = new ArrayList(mTops.size());
+            Iterator it = mTops.iterator();
+            int i=0;
+            while(it.hasNext()) {
+                tops.add(i, FolderDataWrapper.wrap((FolderData) it.next()));
+                i++;
+            }
         }
         catch (RollerException e)
         {
@@ -173,15 +196,25 @@
     /** Get comments for weblog entry specified by request */
     public List getComments( WeblogEntryData entry )
     {
+        List comments = new ArrayList();
         try
         {
-            return mWeblogMgr.getComments( entry.getId() );
+            Collection mComments = mWeblogMgr.getComments( entry.getId() );
+            
+            // wrap pojos
+            comments = new ArrayList(mComments.size());
+            Iterator it = mComments.iterator();
+            int i=0;
+            while(it.hasNext()) {
+                comments.add(i, CommentDataWrapper.wrap((CommentData) it.next()));
+                i++;
+            }
         }
         catch (RollerException e)
         {
             mLogger.error("PageModel getComments()", e);
         }
-        return new ArrayList();
+        return comments;
     }
     
     //------------------------------------------------------------------------
@@ -203,12 +236,12 @@
     //------------------------------------------------------------------------
     
     /** Encapsulates BookmarkManager.getFolder() */
-    public FolderData getFolder(String folderPath)
+    public FolderDataWrapper getFolder(String folderPath)
     {
         try
         {
-            return mBookmarkMgr.getFolder(
-                mWebsite, folderPath);
+            return FolderDataWrapper.wrap(
+                    mBookmarkMgr.getFolder(mWebsite, folderPath));
         }
         catch (RollerException e)
         {
@@ -220,9 +253,9 @@
     //------------------------------------------------------------------------
     
     /** Encapsulates UserManager.getPageByName() */
-    public Template getUsersPageByName(WebsiteData website, String pageName)
+    public TemplateWrapper getUsersPageByName(WebsiteData website, String pageName)
     {
-        Template page = null;
+        TemplateWrapper page = null;
         try
         {
             if (website == null) 
@@ -231,7 +264,7 @@
             if (pageName == null) 
                 throw new NullPointerException("pageName is null");
                 
-            page = website.getPageByName(pageName);
+            page = TemplateWrapper.wrap(website.getPageByName(pageName));
         }
         catch (NullPointerException npe)
         {
@@ -247,9 +280,9 @@
     //------------------------------------------------------------------------
     
     /** Encapsulates UserManager.getPageByName() */
-    public WeblogTemplate getPageByName(String pageName)
+    public TemplateWrapper getPageByName(String pageName)
     {
-        return (WeblogTemplate)mPageMap.get(pageName);
+        return (TemplateWrapper) mPageMap.get(pageName);
     }
     
     //------------------------------------------------------------------------
@@ -336,7 +369,7 @@
                 }
             }
             
-            ret = mRollerReq.getRoller().getWeblogManager().getWeblogEntryObjectMap(
+            Map mRet = RollerFactory.getRoller().getWeblogManager().getWeblogEntryObjectMap(
                             mRollerReq.getWebsite(),  
                             null,                     // startDate
                             day,                 // endDate
@@ -344,6 +377,22 @@
                             WeblogManager.PUB_ONLY,   // status
                             new Integer(maxEntries)); // maxEntries
             
+            // need to wrap pojos
+            java.util.Date key = null;
+            Iterator days = mRet.keySet().iterator();
+            while(days.hasNext()) {
+                key = (java.util.Date)days.next();
+                
+                // now we need to go through each entry in a day and wrap
+                List wrappedEntries = new ArrayList();
+                List entries = (List) mRet.get(key);
+                for(int i=0; i < entries.size(); i++) {
+                    wrappedEntries.add(i, 
+                            WeblogEntryDataWrapper.wrap((WeblogEntryData)entries.get(i)));
+                }
+                ret.put(key, wrappedEntries);
+            }
+            
             setFirstAndLastEntries( ret );
         }
         catch (Exception e)
@@ -370,7 +419,7 @@
             int valSize = vals.size();
             if (valSize > 0) 
             {
-                mFirstEntry = (WeblogEntryData)vals.get(0);
+                mFirstEntry = (WeblogEntryDataWrapper)vals.get(0);
             }
             
             // get last entry in map
@@ -378,7 +427,7 @@
             valSize = vals.size();
             if (valSize > 0)
             {
-                mLastEntry = (WeblogEntryData)vals.get(--valSize);
+                mLastEntry = (WeblogEntryDataWrapper)vals.get(--valSize);
             }
         }
     }
@@ -426,18 +475,27 @@
                     catParam = null;
                 }
             }
-            WeblogManager mgr = mRollerReq.getRoller().getWeblogManager();
+            WeblogManager mgr = RollerFactory.getRoller().getWeblogManager();
             
             //ret = mgr.getRecentWeblogEntriesArray( 
                 //name, day, catParam, maxEntries, true );
             
-            ret = mgr.getWeblogEntries(
+            List mEntries = mgr.getWeblogEntries(
                             mRollerReq.getWebsite(), 
                             null,                    // startDate
                             day,                      // endDate
                             catParam,                 // catName
                             WeblogManager.PUB_ONLY,   // status
                             new Integer(maxEntries)); // maxEntries
+            
+            // wrap pojos
+            ret = new ArrayList(mEntries.size());
+            Iterator it = mEntries.iterator();
+            int i=0;
+            while(it.hasNext()) {
+                ret.add(i, WeblogEntryDataWrapper.wrap((WeblogEntryData) it.next()));
+                i++;
+            }
         }
         catch (Exception e)
         {
@@ -468,7 +526,7 @@
                     if (   referer.getVisible().booleanValue() 
                         || this.mRollerReq.isUserAuthorizedToEdit() )
                     { 
-                        referers.add(referer);
+                        referers.add(RefererDataWrapper.wrap(referer));
                     }
                 }
             }
@@ -490,7 +548,16 @@
         List referers = null;
         try
         {
-            referers = mRefererMgr.getTodaysReferers(mRollerReq.getWebsite());
+            List mReferers = mRefererMgr.getTodaysReferers(mRollerReq.getWebsite());
+            
+            // wrap pojos
+            referers = new ArrayList(mReferers.size());
+            Iterator it = mReferers.iterator();
+            int i=0;
+            while(it.hasNext()) {
+                referers.add(i, RefererDataWrapper.wrap((RefererData) it.next()));
+                i++;
+            }
          
         }
         catch (RollerException e)
@@ -528,6 +595,7 @@
         Iterator iter = weblogEntries.iterator();
         while (iter.hasNext())
         {
+            // NOTE: this will need to be WeblogEntryDataWrapper
             WeblogEntryData wd = (WeblogEntryData)iter.next();
             if ( updateTime == null )
             {
@@ -570,7 +638,18 @@
                 {
                     category = mRollerReq.getWebsite().getDefaultCategory();
                 }
-                ret = category.getWeblogCategories();
+                
+                List mRet = category.getWeblogCategories();
+                
+                // wrap pojos
+                ret = new ArrayList(mRet.size());
+                Iterator it = mRet.iterator();
+                int i=0;
+                while(it.hasNext()) {
+                    ret.add(i, WeblogCategoryDataWrapper.wrap((WeblogCategoryData) it.next()));
+                    i++;
+                }
+        
                 mCategories.put(categoryName, ret);
             }
             catch (RollerException e) 
@@ -584,9 +663,14 @@
     //------------------------------------------------------------------------
     
     /** Encapsulates RollerRequest.getWeblogEntry() */
-    public WeblogEntryData getWeblogEntry()
+    public WeblogEntryDataWrapper getWeblogEntry()
     {
-        return mRollerReq.getWeblogEntry();
+        WeblogEntryData entry = mRollerReq.getWeblogEntry();
+        
+        if(entry != null)
+            return WeblogEntryDataWrapper.wrap(entry);
+        else
+            return null;
     }
     
     //------------------------------------------------------------------------
@@ -594,9 +678,9 @@
     /**
      * Get the next occurring Entry.
      */
-    public WeblogEntryData getNextEntry()
+    public WeblogEntryDataWrapper getNextEntry()
     {
-        WeblogEntryData currentEntry = getWeblogEntry();
+        WeblogEntryDataWrapper currentEntry = getWeblogEntry();
         if (mFirstEntry != null) currentEntry = mFirstEntry;
         if (mNextEntry == null && currentEntry != null) 
         {
@@ -607,7 +691,11 @@
             }
             try
             {
-                mNextEntry = mWeblogMgr.getNextEntry(currentEntry, catName);
+                WeblogEntryData nextEntry = 
+                        mWeblogMgr.getNextEntry(currentEntry.getPojo(), catName);
+                
+                if(nextEntry != null)
+                    mNextEntry = WeblogEntryDataWrapper.wrap(nextEntry);
                 
                 // make sure that mNextEntry is not published to future
                 if (mNextEntry != null && 
@@ -629,12 +717,12 @@
     /**
      * Get the previous occurring Entry.
      */
-    public WeblogEntryData getPreviousEntry()
+    public WeblogEntryDataWrapper getPreviousEntry()
     {
-        WeblogEntryData currentEntry = getWeblogEntry();
+        WeblogEntryDataWrapper currentEntry = getWeblogEntry();
         if (mLastEntry != null) currentEntry = mLastEntry;
         if (mPreviousEntry == null && currentEntry != null )
-        {
+        {   
             String catName = null;
             if (mRollerReq.getWeblogCategory() != null)
             {
@@ -642,7 +730,11 @@
             }
             try
             {
-                mPreviousEntry = mWeblogMgr.getPreviousEntry(currentEntry, catName);
+                WeblogEntryData prevEntry = 
+                        mWeblogMgr.getPreviousEntry(currentEntry.getPojo(), catName);
+                
+                if(prevEntry != null)
+                    mPreviousEntry = WeblogEntryDataWrapper.wrap(prevEntry);
             }
             catch (RollerException e)
             {
@@ -676,18 +768,22 @@
     
     //------------------------------------------------------------------------
     
-    public FolderData getFolderByPath(String path)
+    public FolderDataWrapper getFolderByPath(String path)
     {
         try
         {
-            return mBookmarkMgr.getFolderByPath(
+            FolderData folder = mBookmarkMgr.getFolderByPath(
                 mUserMgr.getWebsite(mUsername), null, path);
+            
+            if(folder != null)
+                return FolderDataWrapper.wrap(folder);
         }
         catch (RollerException e)
         {
             mLogger.error(e);
-            return null;
         }
+        
+        return null;
     }
 
     /**
@@ -698,15 +794,25 @@
      */
     public List getRecentComments(int maxCount)
     {
+        List recentComments = new ArrayList();
         try
         {
-            return mWeblogMgr.getRecentComments(mRollerReq.getWebsite(), maxCount);
+            List recent = mWeblogMgr.getRecentComments(mRollerReq.getWebsite(), maxCount);
+            
+            // wrap pojos
+            recentComments = new ArrayList(recent.size());
+            Iterator it = recent.iterator();
+            int i=0;
+            while(it.hasNext()) {
+                recentComments.add(i, CommentDataWrapper.wrap((CommentData) it.next()));
+                i++;
+            }
         }
         catch (RollerException e)
         {
             mLogger.error(e);
-            return new ArrayList();
         }
+        return recentComments;
     }
  
     public boolean getEmailComments() 

Modified: incubator/roller/trunk/src/org/roller/presentation/weblog/actions/WeblogEntryFormAction.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/presentation/weblog/actions/WeblogEntryFormAction.java?rev=224390&r1=224389&r2=224390&view=diff
==============================================================================
--- incubator/roller/trunk/src/org/roller/presentation/weblog/actions/WeblogEntryFormAction.java (original)
+++ incubator/roller/trunk/src/org/roller/presentation/weblog/actions/WeblogEntryFormAction.java Fri Jul 22 12:33:16 2005
@@ -44,6 +44,7 @@
 import org.roller.pojos.UserData;
 import org.roller.pojos.WeblogEntryData;
 import org.roller.pojos.WebsiteData;
+import org.roller.pojos.wrapper.WeblogEntryDataWrapper;
 import org.roller.presentation.MainPageAction;
 import org.roller.presentation.RollerContext;
 import org.roller.presentation.RollerRequest;
@@ -53,6 +54,7 @@
 import org.roller.util.Utilities;
 
 import com.swabunga.spell.event.SpellCheckEvent;
+import org.roller.model.RollerFactory;
 
 
 
@@ -126,7 +128,7 @@
             RollerRequest rreq = RollerRequest.getRollerRequest(request);
             if ( rreq.isUserAuthorizedToEdit() )
             {
-                WeblogManager wmgr = rreq.getRoller().getWeblogManager();
+                WeblogManager wmgr = RollerFactory.getRoller().getWeblogManager();
                 WeblogEntryData entry = rreq.getWeblogEntry();
                 WeblogEntryFormEx form = (WeblogEntryFormEx)actionForm;
                 if (entry == null && form.getId() != null)
@@ -233,8 +235,8 @@
             RollerRequest rreq = RollerRequest.getRollerRequest(request);
             if ( rreq.isUserAuthorizedToEdit() )
             {
-                UserManager userMgr = rreq.getRoller().getUserManager();
-                WeblogManager weblogMgr = rreq.getRoller().getWeblogManager();
+                UserManager userMgr = RollerFactory.getRoller().getUserManager();
+                WeblogManager weblogMgr = RollerFactory.getRoller().getWeblogManager();
 
                 UserData user = rreq.getUser();
                 WebsiteData site = userMgr.getWebsite( user.getUserName() );
@@ -290,12 +292,12 @@
                 entry.setUpdateTime(new Timestamp(new Date().getTime()));
                 mLogger.debug("Saving entry");
                 entry.save();
-                rreq.getRoller().commit();
+                RollerFactory.getRoller().commit();
 
                 mLogger.debug("Populating form");
                 wf.copyFrom(entry, request.getLocale());
                 
-                reindexEntry(rreq.getRoller(), entry);
+                reindexEntry(RollerFactory.getRoller(), entry);
                 
                 // open up a new session, because we will forward to the edit action
                 //rreq.getRoller().begin(); // begin already called by RequestFilter
@@ -424,7 +426,7 @@
             {
                 WeblogEntryFormEx wf = (WeblogEntryFormEx)actionForm;
                 WeblogEntryData wd = 
-                    rreq.getRoller().getWeblogManager().retrieveWeblogEntry(wf.getId());
+                    RollerFactory.getRoller().getWeblogManager().retrieveWeblogEntry(wf.getId());
                 wf.copyFrom(wd, request.getLocale());
                 if (wd == null || wd.getId() == null)
                 {
@@ -462,17 +464,17 @@
             RollerRequest rreq = RollerRequest.getRollerRequest(request);
             if ( rreq.isUserAuthorizedToEdit() )
             {
-                WeblogManager mgr = rreq.getRoller().getWeblogManager();
+                WeblogManager mgr = RollerFactory.getRoller().getWeblogManager();
                 WeblogEntryData wd = mgr.retrieveWeblogEntry(request.getParameter("id"));
                 UserData user = rreq.getUser();
                 
 				// remove the index for it
                 wd.setPublishEntry(Boolean.FALSE);
-		        reindexEntry(rreq.getRoller(), wd);
+		        reindexEntry(RollerFactory.getRoller(), wd);
 
                 // remove entry itself
                 wd.remove();
-                rreq.getRoller().commit();
+                RollerFactory.getRoller().commit();
 
 				// flush caches
                 PageCacheFilter.removeFromCache(request, user);
@@ -628,7 +630,7 @@
                 WeblogEntryFormEx form = (WeblogEntryFormEx)actionForm;
 
                 // If form indicates that comments should be deleted, then delete
-                WeblogManager mgr = rreq.getRoller().getWeblogManager();
+                WeblogManager mgr = RollerFactory.getRoller().getWeblogManager();
                 String[] deleteIds = form.getDeleteComments();
                 if (deleteIds != null && deleteIds.length > 0)
                 {
@@ -659,9 +661,9 @@
                     }
                 }
 
-                rreq.getRoller().commit();
+                RollerFactory.getRoller().commit();
                 
-                reindexEntry(rreq.getRoller(), wd);
+                reindexEntry(RollerFactory.getRoller(), wd);
                 
                 request.setAttribute("model",
                         new WeblogEntryPageModel(request, response, mapping, 
@@ -712,7 +714,7 @@
                }
 
                RollerContext rctx= RollerContext.getRollerContext(request);
-               WeblogManager wmgr= rreq.getRoller().getWeblogManager();
+               WeblogManager wmgr= RollerFactory.getRoller().getWeblogManager();
                entry = wmgr.retrieveWeblogEntry(entryid);
 
                String title = entry.getTitle();
@@ -720,7 +722,9 @@
                // Run entry through registered PagePlugins
                PageHelper pageHelper = PageHelper.createPageHelper(request, response);
                pageHelper.setSkipFlag(true); // don't process ReadMorePlugin
-               String excerpt = pageHelper.renderPlugins(entry);
+               // we have to wrap the entry for rendering because the
+               // page helper requires wrapped objects
+               String excerpt = pageHelper.renderPlugins(WeblogEntryDataWrapper.wrap(entry));
                excerpt = StringUtils.left( Utilities.removeHTML(excerpt),255 );
 
                String url = rctx.createEntryPermalink(entry, request, true);

Modified: incubator/roller/trunk/src/org/roller/presentation/weblog/tags/ApplyPluginsTag.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/presentation/weblog/tags/ApplyPluginsTag.java?rev=224390&r1=224389&r2=224390&view=diff
==============================================================================
--- incubator/roller/trunk/src/org/roller/presentation/weblog/tags/ApplyPluginsTag.java (original)
+++ incubator/roller/trunk/src/org/roller/presentation/weblog/tags/ApplyPluginsTag.java Fri Jul 22 12:33:16 2005
@@ -16,6 +16,7 @@
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.jsp.JspException;
 import javax.servlet.jsp.tagext.TagSupport;
+import org.roller.pojos.wrapper.WeblogEntryDataWrapper;
 
 /**
  * Apply configured PagePlugins to WeblogEntryData and display the result.
@@ -58,7 +59,7 @@
             }
             helper.setSkipFlag(skipFlag);
     
-            xformed = helper.renderPlugins(entry);
+            xformed = helper.renderPlugins(WeblogEntryDataWrapper.wrap(entry));
         }
         else
         {

Modified: incubator/roller/trunk/src/org/roller/presentation/weblog/tags/WeblogEntryMacros.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/presentation/weblog/tags/WeblogEntryMacros.java?rev=224390&r1=224389&r2=224390&view=diff
==============================================================================
--- incubator/roller/trunk/src/org/roller/presentation/weblog/tags/WeblogEntryMacros.java (original)
+++ incubator/roller/trunk/src/org/roller/presentation/weblog/tags/WeblogEntryMacros.java Fri Jul 22 12:33:16 2005
@@ -7,7 +7,6 @@
 import org.roller.model.Roller;
 import org.roller.model.WeblogManager;
 import org.roller.pojos.RefererData;
-import org.roller.pojos.WeblogEntryData;
 import org.roller.presentation.RollerRequest;
 import org.roller.presentation.velocity.Macros;
 
@@ -20,6 +19,9 @@
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.jsp.PageContext;
+import org.roller.model.RollerFactory;
+import org.roller.pojos.wrapper.RefererDataWrapper;
+import org.roller.pojos.wrapper.WeblogEntryDataWrapper;
 
 //////////////////////////////////////////////////////////////////////////////
 
@@ -53,11 +55,11 @@
         {
             List refs = null;
             
-            Roller roller = getRollerRequest().getRoller();
+            Roller roller = RollerFactory.getRoller();
             String userName = getRollerRequest().getUser().getUserName();
             RefererManager refmgr = roller.getRefererManager();
              
-            refs = refmgr.getReferersToDate( getWebsite(), view("yyyyMMdd") ); 
+            refs = refmgr.getReferersToDate( getWebsite().getPojo(), view("yyyyMMdd") ); 
                 
             for (Iterator rdItr = refs.iterator(); rdItr.hasNext();) {
 					RefererData referer = (RefererData) rdItr.next();
@@ -70,7 +72,7 @@
 					if (   referer.getVisible().booleanValue() 
 						|| getRollerRequest().isUserAuthorizedToEdit() )
 					{ 
-						list.add( referer );
+						list.add( RefererDataWrapper.wrap(referer) );
 					}
 				}
               
@@ -115,7 +117,7 @@
      * instead.
      * @return HTML for displaying entry permalink icon with permalink.
      */
-    public String showEntryPermalink( WeblogEntryData entry )
+    public String showEntryPermalink( WeblogEntryDataWrapper entry )
     {
         HttpServletRequest request = getRollerRequest().getRequest();
         String userName = getRollerRequest().getUser().getUserName();
@@ -189,7 +191,7 @@
 
     //-----------------------------------------------------------------------
 
-    public String showCommentsLink( WeblogEntryData entry )
+    public String showCommentsLink( WeblogEntryDataWrapper entry )
     {
         if (entry.getWebsite().getAllowComments().booleanValue())
         {
@@ -201,7 +203,7 @@
             try
             {
                 rreq = RollerRequest.getRollerRequest(request);
-                WeblogManager mgr = rreq.getRoller().getWeblogManager();
+                WeblogManager mgr = RollerFactory.getRoller().getWeblogManager();
                 List comments = mgr.getComments( entry.getId() );
                 commentCount = comments.size();
             }