You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by el...@apache.org on 2006/09/22 05:17:27 UTC

svn commit: r448786 - in /incubator/roller/trunk: src/org/apache/roller/business/hibernate/ src/org/apache/roller/business/search/operations/ src/org/apache/roller/model/ src/org/apache/roller/pojos/ src/org/apache/roller/ui/authoring/struts/actions/ s...

Author: eliast
Date: Thu Sep 21 20:17:26 2006
New Revision: 448786

URL: http://svn.apache.org/viewvc?view=rev&rev=448786
Log:
Refactored WeblogManager method for getWeblogEntries method to support tags
- Updated all classes that used the method to include tagging information
  (NOTE: most of the cases, tags was set to NULL, but as we add support for tags, all we have to do is pass the desired tag list)
- Updated all Cache key generation to include tagging
- Removed WeblogEntriesTagPager and was able to reuse existing pagers to leverage all URL parameters

Removed:
    incubator/roller/trunk/src/org/apache/roller/ui/rendering/pagers/WeblogEntriesTagsPager.java
Modified:
    incubator/roller/trunk/src/org/apache/roller/business/hibernate/HibernateRollerPlanetManagerImpl.java
    incubator/roller/trunk/src/org/apache/roller/business/hibernate/HibernateWeblogManagerImpl.java
    incubator/roller/trunk/src/org/apache/roller/business/search/operations/RebuildWebsiteIndexOperation.java
    incubator/roller/trunk/src/org/apache/roller/model/WeblogManager.java
    incubator/roller/trunk/src/org/apache/roller/pojos/WebsiteData.java
    incubator/roller/trunk/src/org/apache/roller/ui/authoring/struts/actions/WeblogEntryManagementAction.java
    incubator/roller/trunk/src/org/apache/roller/ui/authoring/struts/actions/WeblogEntryPageModel.java
    incubator/roller/trunk/src/org/apache/roller/ui/core/tags/calendar/BigWeblogCalendarModel.java
    incubator/roller/trunk/src/org/apache/roller/ui/core/tags/calendar/WeblogCalendarModel.java
    incubator/roller/trunk/src/org/apache/roller/ui/rendering/model/FeedModel.java
    incubator/roller/trunk/src/org/apache/roller/ui/rendering/model/SiteModel.java
    incubator/roller/trunk/src/org/apache/roller/ui/rendering/pagers/WeblogEntriesDayPager.java
    incubator/roller/trunk/src/org/apache/roller/ui/rendering/pagers/WeblogEntriesLatestPager.java
    incubator/roller/trunk/src/org/apache/roller/ui/rendering/pagers/WeblogEntriesListPager.java
    incubator/roller/trunk/src/org/apache/roller/ui/rendering/pagers/WeblogEntriesMonthPager.java
    incubator/roller/trunk/src/org/apache/roller/ui/rendering/util/SiteWideCache.java
    incubator/roller/trunk/src/org/apache/roller/ui/rendering/util/WeblogFeedCache.java
    incubator/roller/trunk/src/org/apache/roller/ui/rendering/util/WeblogFeedRequest.java
    incubator/roller/trunk/src/org/apache/roller/ui/rendering/util/WeblogPageCache.java
    incubator/roller/trunk/src/org/apache/roller/ui/rendering/velocity/deprecated/OldWeblogPageModel.java
    incubator/roller/trunk/src/org/apache/roller/util/cache/FuturePostingsInvalidationJob.java
    incubator/roller/trunk/src/org/apache/roller/webservices/atomprotocol/RollerAtomHandler.java
    incubator/roller/trunk/src/org/apache/roller/webservices/xmlrpc/BloggerAPIHandler.java
    incubator/roller/trunk/src/org/apache/roller/webservices/xmlrpc/MetaWeblogAPIHandler.java
    incubator/roller/trunk/tests/org/apache/roller/business/WeblogEntryTest.java

Modified: incubator/roller/trunk/src/org/apache/roller/business/hibernate/HibernateRollerPlanetManagerImpl.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/src/org/apache/roller/business/hibernate/HibernateRollerPlanetManagerImpl.java?view=diff&rev=448786&r1=448785&r2=448786
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/business/hibernate/HibernateRollerPlanetManagerImpl.java (original)
+++ incubator/roller/trunk/src/org/apache/roller/business/hibernate/HibernateRollerPlanetManagerImpl.java Thu Sep 21 20:17:26 2006
@@ -117,6 +117,7 @@
                             null,                        // startDate
                             new Date(),                  // endDate
                             null,                        // catName
+                            null,                        // tags
                             WeblogEntryData.PUBLISHED,   // status
                             null,                        // sortby (null means pubTime)
                             null,                        // locale

Modified: incubator/roller/trunk/src/org/apache/roller/business/hibernate/HibernateWeblogManagerImpl.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/src/org/apache/roller/business/hibernate/HibernateWeblogManagerImpl.java?view=diff&rev=448786&r1=448785&r2=448786
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/business/hibernate/HibernateWeblogManagerImpl.java (original)
+++ incubator/roller/trunk/src/org/apache/roller/business/hibernate/HibernateWeblogManagerImpl.java Thu Sep 21 20:17:26 2006
@@ -402,6 +402,7 @@
             Date        startDate,
             Date        endDate,
             String      catName,
+            List        tags,
             String      status,
             String      sortby,
             String      locale,
@@ -416,57 +417,79 @@
         if (catName != null && catName.trim().equals("/")) {
             catName = null;
         }
-        
+                
         try {
             Session session = ((HibernatePersistenceStrategy)this.strategy).getSession();
-            Criteria criteria = session.createCriteria(WeblogEntryData.class);
             
+            ArrayList params = new ArrayList();
+            StringBuffer queryString = new StringBuffer();
+            queryString.append("select distinct e from WeblogEntryData e where ");
+
             if (website != null) {
-                criteria.add(Expression.eq("website", website));
+                queryString.append("website.id = ? ");                
+                params.add(website.getId());
             } else {
-                criteria.createAlias("website","w");
-                criteria.add(Expression.eq("w.enabled", Boolean.TRUE));
+                queryString.append("website.enabled = ? ");                
+                params.add(Boolean.TRUE);                
             }
             
             if (user != null) {
-                criteria.add(Expression.eq("creator", user));
+                queryString.append("and creator.id = ? ");
+                params.add(user.getId());
             }
 
             if (startDate != null) {
-                criteria.add(
-                        Expression.ge("pubTime", startDate));
+                queryString.append("and pubTime >= ? ");
+                params.add(startDate);
             }
             
             if (endDate != null) {
-                criteria.add(
-                        Expression.le("pubTime", endDate));
+                queryString.append("and pubTime <= ? ");
+                params.add(endDate);                
             }
             
             if (cat != null && website != null) {
-                criteria.add(Expression.eq("category", cat));
+                queryString.append("and category.id = ? ");
+                params.add(cat.getId());                
+            }
+            
+            if (tags != null && tags.size() > 0) {
+              for(int i = 0; i < tags.size(); i++) {
+                queryString.append(" and tagSet.name = ?");
+                params.add(tags.get(i));
+              }
             }
             
             if (status != null) {
-                criteria.add(Expression.eq("status", status));
+                queryString.append("and status = ? ");
+                params.add(status);
             }
             
             if (locale != null) {
-                criteria.add(Expression.ilike("locale", locale, MatchMode.START));
+                queryString.append("lower(locale) like ? ");
+                params.add("%" + locale.toLowerCase());
             }
             
             if (sortby != null && sortby.equals("updateTime")) {
-                criteria.addOrder(Order.desc("updateTime"));
+                queryString.append("order by updateTime desc ");
             } else {
-                criteria.addOrder(Order.desc("pubTime"));
+                queryString.append("order by pubTime desc ");
             }
             
+            Query query = session.createQuery(queryString.toString());
+            
+            // set params
+            for(int i = 0; i < params.size(); i++) {
+              query.setParameter(i, params.get(i));
+            }
+                        
             if (offset != 0) {
-                criteria.setFirstResult(offset);
+                query.setFirstResult(offset);
             }
             if (length != -1) {
-                criteria.setMaxResults(length);
+                query.setMaxResults(length);
             }
-            return criteria.list();
+            return query.list();
             
         } catch (HibernateException e) {
             log.error(e);
@@ -791,37 +814,7 @@
             throw new RollerException(e);
         }
     }
-        
-    public List getWeblogEntriesByTags(WebsiteData website, List tags) throws RollerException {
-      try {
-               
-        if(tags == null || tags.size() == 0)
-          return Collections.EMPTY_LIST;
-        
-        Session session = ((HibernatePersistenceStrategy) strategy).getSession();
-        
-        StringBuffer queryString = new StringBuffer();
-        queryString.append("select distinct e ");
-        queryString.append("from WeblogEntryData e ");
-        queryString.append("where ");
-        queryString.append(" e.tagSet.name = ?");
-        for(int i = 1; tags.size() > 1 && i < tags.size(); i++)
-          queryString.append(" and e.tagSet.name = ?");
-        if(website != null)
-          queryString.append("and t.website.id = '" + website.getId() + "' ");
-        queryString.append("order by e.tagSet.time desc");
-
-        Query query = session.createQuery(queryString.toString());
-        for(int i = 0; i < tags.size(); i++)
-          query.setString(i, (String) tags.get(i));
-              
-        return query.list();
-        
-      } catch (HibernateException e) {
-        throw new RollerException(e);
-      }
-    }
-    
+            
     public List getTags(Date startDate,
         Date endDate,
         WebsiteData website,
@@ -1029,6 +1022,7 @@
             Date    startDate,
             Date    endDate,
             String  catName,
+            List    tags,            
             String  status,
             String  locale,
             int     offset,
@@ -1038,6 +1032,7 @@
             startDate,
             endDate,
             catName,
+            tags,
             status,
             false,
             locale,
@@ -1050,6 +1045,7 @@
             Date    startDate,
             Date    endDate,
             String  catName,
+            List    tags,            
             String  status,
             String  locale,
             int     offset,
@@ -1060,6 +1056,7 @@
             startDate,
             endDate,
             catName,
+            tags,
             status,
             true,
             locale,
@@ -1073,6 +1070,7 @@
             Date    startDate,
             Date    endDate,
             String  catName,
+            List    tags,
             String  status,
             boolean stringsOnly,
             String  locale,
@@ -1088,6 +1086,7 @@
             startDate,
             endDate,
             catName,
+            tags,
             status,
             null,
 locale,             offset,

Modified: incubator/roller/trunk/src/org/apache/roller/business/search/operations/RebuildWebsiteIndexOperation.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/src/org/apache/roller/business/search/operations/RebuildWebsiteIndexOperation.java?view=diff&rev=448786&r1=448785&r2=448786
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/business/search/operations/RebuildWebsiteIndexOperation.java (original)
+++ incubator/roller/trunk/src/org/apache/roller/business/search/operations/RebuildWebsiteIndexOperation.java Thu Sep 21 20:17:26 2006
@@ -108,6 +108,7 @@
                         null,                      // startDate
                         new Date(),                // endDate (don't index 'future' entries)
                         null,                      // catName
+                        null,
                         WeblogEntryData.PUBLISHED, // status
                         null,                      // sortby (null means pubTime)
 null,                         0, -1);     // offset, length, locale

Modified: incubator/roller/trunk/src/org/apache/roller/model/WeblogManager.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/src/org/apache/roller/model/WeblogManager.java?view=diff&rev=448786&r1=448785&r2=448786
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/model/WeblogManager.java (original)
+++ incubator/roller/trunk/src/org/apache/roller/model/WeblogManager.java Thu Sep 21 20:17:26 2006
@@ -79,6 +79,7 @@
             Date        startDate,
             Date        endDate,
             String      catName,
+            List        tags,
             String      status,
             String      sortBy,
             String      locale,             
@@ -105,6 +106,7 @@
             Date        startDate,
             Date        endDate,
             String      catName,
+            List        tags,            
             String      status,
             String      locale,
             int         offset,
@@ -130,6 +132,7 @@
             Date        startDate,
             Date        endDate,
             String      catName,
+            List        tags,            
             String      status,
             String      locale,
             int         offset,
@@ -301,17 +304,7 @@
      * Get all ancestor associates for a category.
      */
     public List getWeblogCategoryAncestorAssocs(WeblogCategoryData data) throws RollerException;
-    
-    /**
-     * Get all entries in a website that contain a specific tag
-     * @param website
-     * @param tag
-     * @return
-     * @throws RollerException
-     */
-    public List getWeblogEntriesByTags(WebsiteData website, List tags) throws RollerException;
-    
-    
+        
     /**
      * Get all tag (name, count) pairs for a specific date range, optionally only for a given site or user.
      * @param startDate

Modified: incubator/roller/trunk/src/org/apache/roller/pojos/WebsiteData.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/src/org/apache/roller/pojos/WebsiteData.java?view=diff&rev=448786&r1=448785&r2=448786
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/pojos/WebsiteData.java (original)
+++ incubator/roller/trunk/src/org/apache/roller/pojos/WebsiteData.java Thu Sep 21 20:17:26 2006
@@ -1206,6 +1206,7 @@
                     null,       // startDate
                     new Date(), // endDate
                     cat,        // cat or null
+                    null, 
                     WeblogEntryData.PUBLISHED, 
                     "pubTime",  // sortby
                     null, 

Modified: incubator/roller/trunk/src/org/apache/roller/ui/authoring/struts/actions/WeblogEntryManagementAction.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/src/org/apache/roller/ui/authoring/struts/actions/WeblogEntryManagementAction.java?view=diff&rev=448786&r1=448785&r2=448786
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/ui/authoring/struts/actions/WeblogEntryManagementAction.java (original)
+++ incubator/roller/trunk/src/org/apache/roller/ui/authoring/struts/actions/WeblogEntryManagementAction.java Thu Sep 21 20:17:26 2006
@@ -153,6 +153,7 @@
                     startDate,
                     endDate,
                     category,
+                    null,
                     status,
                     queryForm.getSortby(),
 null,                     queryForm.getOffset(),

Modified: incubator/roller/trunk/src/org/apache/roller/ui/authoring/struts/actions/WeblogEntryPageModel.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/src/org/apache/roller/ui/authoring/struts/actions/WeblogEntryPageModel.java?view=diff&rev=448786&r1=448785&r2=448786
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/ui/authoring/struts/actions/WeblogEntryPageModel.java (original)
+++ incubator/roller/trunk/src/org/apache/roller/ui/authoring/struts/actions/WeblogEntryPageModel.java Thu Sep 21 20:17:26 2006
@@ -137,6 +137,7 @@
                 null,              // startDate
                 null,              // endDate
                 null,              // catName
+                null,              // tags
                 WeblogEntryData.PUBLISHED, // status
                 null,              // sortby (null for pubTime)
 null,                 0, 20);   
@@ -158,6 +159,7 @@
                 null,              // startDate
                 null,              // endDate
                 null,              // catName
+                null,              // tags
                 WeblogEntryData.DRAFT, // status
                 "updateTime",      // sortby 
 null,                 0, 20);  // maxEntries
@@ -179,6 +181,7 @@
                 null,              // startDate
                 null,              // endDate
                 null,              // catName
+                null,              // tags
                 WeblogEntryData.PENDING, // status
                 "updateTime",      // sortby
 null,                 0, 20);  

Modified: incubator/roller/trunk/src/org/apache/roller/ui/core/tags/calendar/BigWeblogCalendarModel.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/src/org/apache/roller/ui/core/tags/calendar/BigWeblogCalendarModel.java?view=diff&rev=448786&r1=448785&r2=448786
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/ui/core/tags/calendar/BigWeblogCalendarModel.java (original)
+++ incubator/roller/trunk/src/org/apache/roller/ui/core/tags/calendar/BigWeblogCalendarModel.java Thu Sep 21 20:17:26 2006
@@ -61,6 +61,7 @@
                     startDate,                 // startDate
                     endDate,                   // endDate
                     catName,                   // cat
+                    null,                      // tags
                     WeblogEntryData.PUBLISHED, // status
                     locale,
                     0, -1);

Modified: incubator/roller/trunk/src/org/apache/roller/ui/core/tags/calendar/WeblogCalendarModel.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/src/org/apache/roller/ui/core/tags/calendar/WeblogCalendarModel.java?view=diff&rev=448786&r1=448785&r2=448786
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/ui/core/tags/calendar/WeblogCalendarModel.java (original)
+++ incubator/roller/trunk/src/org/apache/roller/ui/core/tags/calendar/WeblogCalendarModel.java Thu Sep 21 20:17:26 2006
@@ -122,6 +122,7 @@
                     startDate,                 // startDate
                     endDate,                   // endDate
                     catName,                   // cat
+                    null,                      // tags
                     WeblogEntryData.PUBLISHED, // status
                     locale,
                     0, -1);

Modified: incubator/roller/trunk/src/org/apache/roller/ui/rendering/model/FeedModel.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/src/org/apache/roller/ui/rendering/model/FeedModel.java?view=diff&rev=448786&r1=448785&r2=448786
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/ui/rendering/model/FeedModel.java (original)
+++ incubator/roller/trunk/src/org/apache/roller/ui/rendering/model/FeedModel.java Thu Sep 21 20:17:26 2006
@@ -131,6 +131,7 @@
                     null, 
                     new Date(), 
                     feedRequest.getWeblogCategoryName(), 
+                    null, 
                     WeblogEntryData.PUBLISHED, 
                     "pubTime", 
                     feedRequest.getLocale(), 

Modified: incubator/roller/trunk/src/org/apache/roller/ui/rendering/model/SiteModel.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/src/org/apache/roller/ui/rendering/model/SiteModel.java?view=diff&rev=448786&r1=448785&r2=448786
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/ui/rendering/model/SiteModel.java (original)
+++ incubator/roller/trunk/src/org/apache/roller/ui/rendering/model/SiteModel.java Thu Sep 21 20:17:26 2006
@@ -47,8 +47,8 @@
 import org.apache.roller.ui.rendering.pagers.Pager;
 import org.apache.roller.ui.rendering.pagers.UsersPager;
 import org.apache.roller.ui.rendering.pagers.WeblogEntriesListPager;
-import org.apache.roller.ui.rendering.pagers.WeblogEntriesTagsPager;
 import org.apache.roller.ui.rendering.pagers.WeblogsPager;
+import org.apache.roller.ui.rendering.util.WeblogFeedRequest;
 import org.apache.roller.ui.rendering.util.WeblogPageRequest;
 import org.apache.roller.ui.rendering.util.WeblogRequest;
 import org.apache.roller.util.URLUtilities;
@@ -85,6 +85,8 @@
             pageLink = (weblogPage != null) ? weblogPage.getLink() : null;
             pageNum = ((WeblogPageRequest)weblogRequest).getPageNum();
             tags = ((WeblogPageRequest)weblogRequest).getTags();
+        } else if (weblogRequest instanceof WeblogFeedRequest) {
+            tags = ((WeblogFeedRequest)weblogRequest).getTags();
         }
         
         // extract weblog object
@@ -104,17 +106,9 @@
                 weblogRequest.getLocale(), pageLink, 
                 null, null, null, null, 0, false);
         
-        if(tags.size() > 0) {
-          return new WeblogEntriesTagsPager(
-              pagerUrl, null, null, tags,
-              weblogRequest.getLocale(),
-              sinceDays,
-              pageNum, 
-              length);        
-        }        
-        
         return new WeblogEntriesListPager(
             pagerUrl, null, null, null,
+            tags,
             weblogRequest.getLocale(),
             sinceDays,
             pageNum, 
@@ -159,17 +153,10 @@
         String pagerUrl = URLUtilities.getWeblogPageURL(weblog, 
                 weblogRequest.getLocale(), pageLink, 
                 null, null, null, null, 0, false);
-        
-        if(tags.size() > 0) {
-          return new WeblogEntriesTagsPager(
-              pagerUrl, queryWeblog, user, tags,
-              weblogRequest.getLocale(),
-              sinceDays,
-              pageNum, 
-              length);        
-        }
+       
         return new WeblogEntriesListPager(
             pagerUrl, queryWeblog, user, cat,
+            tags,
             weblogRequest.getLocale(),
             sinceDays,
             pageNum, 

Modified: incubator/roller/trunk/src/org/apache/roller/ui/rendering/pagers/WeblogEntriesDayPager.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/src/org/apache/roller/ui/rendering/pagers/WeblogEntriesDayPager.java?view=diff&rev=448786&r1=448785&r2=448786
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/ui/rendering/pagers/WeblogEntriesDayPager.java (original)
+++ incubator/roller/trunk/src/org/apache/roller/ui/rendering/pagers/WeblogEntriesDayPager.java Thu Sep 21 20:17:26 2006
@@ -115,6 +115,7 @@
                         startDate,
                         endDate,
                         catPath,
+                        tags,
                         WeblogEntryData.PUBLISHED, 
                         locale,
                         offset,  

Modified: incubator/roller/trunk/src/org/apache/roller/ui/rendering/pagers/WeblogEntriesLatestPager.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/src/org/apache/roller/ui/rendering/pagers/WeblogEntriesLatestPager.java?view=diff&rev=448786&r1=448785&r2=448786
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/ui/rendering/pagers/WeblogEntriesLatestPager.java (original)
+++ incubator/roller/trunk/src/org/apache/roller/ui/rendering/pagers/WeblogEntriesLatestPager.java Thu Sep 21 20:17:26 2006
@@ -80,6 +80,7 @@
                         null,
                         new Date(),
                         catPath,
+                        tags,
                         WeblogEntryData.PUBLISHED,
                         locale,
                         offset,

Modified: incubator/roller/trunk/src/org/apache/roller/ui/rendering/pagers/WeblogEntriesListPager.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/src/org/apache/roller/ui/rendering/pagers/WeblogEntriesListPager.java?view=diff&rev=448786&r1=448785&r2=448786
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/ui/rendering/pagers/WeblogEntriesListPager.java (original)
+++ incubator/roller/trunk/src/org/apache/roller/ui/rendering/pagers/WeblogEntriesListPager.java Thu Sep 21 20:17:26 2006
@@ -50,6 +50,7 @@
     private WebsiteData queryWeblog = null;
     private UserData queryUser = null;
     private String queryCat = null;
+    private List queryTags = null;
     
     // entries for the pager
     private List entries;
@@ -63,6 +64,7 @@
             WebsiteData    queryWeblog,
             UserData       queryUser,
             String         queryCat,
+            List           queryTags,
             String         locale,
             int            sinceDays,
             int            pageNum,
@@ -74,6 +76,7 @@
         this.queryWeblog = queryWeblog;
         this.queryUser = queryUser;
         this.queryCat = queryCat;
+        this.queryTags = queryTags;
         this.locale = locale;
         this.sinceDays = sinceDays;
         this.length = length;
@@ -104,6 +107,7 @@
                         startDate,
                         new Date(),
                         queryCat,
+                        queryTags,
                         WeblogEntryData.PUBLISHED,
                         "pubTime",
                         locale,

Modified: incubator/roller/trunk/src/org/apache/roller/ui/rendering/pagers/WeblogEntriesMonthPager.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/src/org/apache/roller/ui/rendering/pagers/WeblogEntriesMonthPager.java?view=diff&rev=448786&r1=448785&r2=448786
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/ui/rendering/pagers/WeblogEntriesMonthPager.java (original)
+++ incubator/roller/trunk/src/org/apache/roller/ui/rendering/pagers/WeblogEntriesMonthPager.java Thu Sep 21 20:17:26 2006
@@ -110,6 +110,7 @@
                         startDate,
                         endDate,
                         catPath,
+                        tags,
                         WeblogEntryData.PUBLISHED, 
                         locale,
                         offset,  

Modified: incubator/roller/trunk/src/org/apache/roller/ui/rendering/util/SiteWideCache.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/src/org/apache/roller/ui/rendering/util/SiteWideCache.java?view=diff&rev=448786&r1=448785&r2=448786
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/ui/rendering/util/SiteWideCache.java (original)
+++ incubator/roller/trunk/src/org/apache/roller/ui/rendering/util/SiteWideCache.java Thu Sep 21 20:17:26 2006
@@ -25,6 +25,8 @@
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
+import java.util.TreeSet;
+
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.roller.config.RollerConfig;
@@ -174,7 +176,7 @@
      *
      * <handle>/<ctx>[/anchor][/language][/user]
      *   or
-     * <handle>/<ctx>[/weblogPage][/date][/category][/language][/user]
+     * <handle>/<ctx>[/weblogPage][/date][/category][/tags][/language][/user]
      *
      *
      * examples ...
@@ -224,6 +226,12 @@
                 
                 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(pageRequest.getLocale() != null) {
@@ -293,6 +301,12 @@
         if(feedRequest.isExcerpts()) {
             key.append("/excerpts");
         }
+        
+        if(feedRequest.getTags() != null && feedRequest.getTags().size() > 0) {
+          String[] tags = new String[feedRequest.getTags().size()];
+          new TreeSet(feedRequest.getTags()).toArray(tags);
+          key.append("/tags/").append(Utilities.stringArrayToString(tags,"+"));
+        }       
         
         return key.toString();
     }

Modified: incubator/roller/trunk/src/org/apache/roller/ui/rendering/util/WeblogFeedCache.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/src/org/apache/roller/ui/rendering/util/WeblogFeedCache.java?view=diff&rev=448786&r1=448785&r2=448786
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/ui/rendering/util/WeblogFeedCache.java (original)
+++ incubator/roller/trunk/src/org/apache/roller/ui/rendering/util/WeblogFeedCache.java Thu Sep 21 20:17:26 2006
@@ -23,6 +23,8 @@
 import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.TreeSet;
+
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.roller.config.RollerConfig;
@@ -173,6 +175,11 @@
             
             key.append("/").append(cat);
         }
+        
+        if(feedRequest.getTags() != null && feedRequest.getTags().size() > 0) {
+          String[] tags = (String[])new TreeSet(feedRequest.getTags()).toArray();
+          key.append("/tags/").append(Utilities.stringArrayToString(tags,"+"));
+        }        
         
         if(feedRequest.getLocale() != null) {
             key.append("/").append(feedRequest.getLocale());

Modified: incubator/roller/trunk/src/org/apache/roller/ui/rendering/util/WeblogFeedRequest.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/src/org/apache/roller/ui/rendering/util/WeblogFeedRequest.java?view=diff&rev=448786&r1=448785&r2=448786
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/ui/rendering/util/WeblogFeedRequest.java (original)
+++ incubator/roller/trunk/src/org/apache/roller/ui/rendering/util/WeblogFeedRequest.java Thu Sep 21 20:17:26 2006
@@ -18,7 +18,12 @@
 
 package org.apache.roller.ui.rendering.util;
 
+import java.util.Arrays;
+import java.util.List;
+
 import javax.servlet.http.HttpServletRequest;
+
+import org.apache.commons.lang.StringUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.roller.RollerException;
@@ -46,6 +51,7 @@
     private String type = null;
     private String format = null;
     private String weblogCategoryName = null;
+    private List   tags = null;
     private boolean excerpts = false;
     
     // heavyweight attributes
@@ -122,6 +128,10 @@
             }
         }
         
+        if(request.getParameter("tags") != null) {
+          this.tags = Arrays.asList(StringUtils.split(URLUtilities.decode(request.getParameter("tags")),"+"));
+        }        
+        
         if(request.getParameter("excerpts") != null) {
             this.excerpts = Boolean.valueOf(request.getParameter("excerpts")).booleanValue();
         }
@@ -156,6 +166,14 @@
 
     public void setWeblogCategoryName(String weblogCategory) {
         this.weblogCategoryName = weblogCategory;
+    }
+    
+    public List getTags() {
+      return tags;
+    }
+
+    public void setTags(List tags) {
+      this.tags = tags;
     }
 
     public boolean isExcerpts() {

Modified: incubator/roller/trunk/src/org/apache/roller/ui/rendering/util/WeblogPageCache.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/src/org/apache/roller/ui/rendering/util/WeblogPageCache.java?view=diff&rev=448786&r1=448785&r2=448786
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/ui/rendering/util/WeblogPageCache.java (original)
+++ incubator/roller/trunk/src/org/apache/roller/ui/rendering/util/WeblogPageCache.java Thu Sep 21 20:17:26 2006
@@ -24,6 +24,8 @@
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
+import java.util.TreeSet;
+
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.roller.config.RollerConfig;
@@ -197,6 +199,11 @@
                 
                 key.append("/").append(cat);
             }
+            
+            if(pageRequest.getTags() != null && pageRequest.getTags().size() > 0) {
+              String[] tags = (String[])new TreeSet(pageRequest.getTags()).toArray();
+              key.append("/tags/").append(Utilities.stringArrayToString(tags,"+"));
+            }            
         }
         
         if(pageRequest.getLocale() != null) {

Modified: incubator/roller/trunk/src/org/apache/roller/ui/rendering/velocity/deprecated/OldWeblogPageModel.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/src/org/apache/roller/ui/rendering/velocity/deprecated/OldWeblogPageModel.java?view=diff&rev=448786&r1=448785&r2=448786
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/ui/rendering/velocity/deprecated/OldWeblogPageModel.java (original)
+++ incubator/roller/trunk/src/org/apache/roller/ui/rendering/velocity/deprecated/OldWeblogPageModel.java Thu Sep 21 20:17:26 2006
@@ -379,6 +379,7 @@
                     startDate,                    // startDate
                     endDate,                      // endDate
                     catParam,                     // catName
+                    null,                         // tags
                     WeblogEntryData.PUBLISHED,    // status
                     mLocale, 0, limit);  
             
@@ -481,6 +482,7 @@
                     null,                        // startDate
                     day,                         // endDate
                     catParam,                    // catName
+                    null,                        // tags
                     WeblogEntryData.PUBLISHED,   // status
                     null,                        // sortby (null for pubTime)
                     mLocale, 0, mWebsite.getEntryDisplayCount());    

Modified: incubator/roller/trunk/src/org/apache/roller/util/cache/FuturePostingsInvalidationJob.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/src/org/apache/roller/util/cache/FuturePostingsInvalidationJob.java?view=diff&rev=448786&r1=448785&r2=448786
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/util/cache/FuturePostingsInvalidationJob.java (original)
+++ incubator/roller/trunk/src/org/apache/roller/util/cache/FuturePostingsInvalidationJob.java Thu Sep 21 20:17:26 2006
@@ -114,7 +114,7 @@
             
             // get all published entries between start and end date
             List expiringEntries = wMgr.getWeblogEntries(null, null, now, end, null, 
-                    null, WeblogEntryData.PUBLISHED, null, 0, -1);
+                    null, null, WeblogEntryData.PUBLISHED, null, 0, -1);
             
             // we only really want the weblog ids
             Set expiringWeblogs = new HashSet();

Modified: incubator/roller/trunk/src/org/apache/roller/webservices/atomprotocol/RollerAtomHandler.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/src/org/apache/roller/webservices/atomprotocol/RollerAtomHandler.java?view=diff&rev=448786&r1=448785&r2=448786
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/webservices/atomprotocol/RollerAtomHandler.java (original)
+++ incubator/roller/trunk/src/org/apache/roller/webservices/atomprotocol/RollerAtomHandler.java Thu Sep 21 20:17:26 2006
@@ -286,6 +286,7 @@
                         null,              // startDate
                         null,              // endDate
                         null,              // catName
+                        null,              // tags
                         null,              // status
                         "updateTime",      // sortby
                         null,              // locale

Modified: incubator/roller/trunk/src/org/apache/roller/webservices/xmlrpc/BloggerAPIHandler.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/src/org/apache/roller/webservices/xmlrpc/BloggerAPIHandler.java?view=diff&rev=448786&r1=448785&r2=448786
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/webservices/xmlrpc/BloggerAPIHandler.java (original)
+++ incubator/roller/trunk/src/org/apache/roller/webservices/xmlrpc/BloggerAPIHandler.java Thu Sep 21 20:17:26 2006
@@ -463,6 +463,7 @@
                         null,                   // startDate
                         new Date(),             // endDate
                         null,                   // catName
+                        null,                   // tags
                         null, null, 0, -1);
                 
                 Iterator iter = entries.values().iterator();

Modified: incubator/roller/trunk/src/org/apache/roller/webservices/xmlrpc/MetaWeblogAPIHandler.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/src/org/apache/roller/webservices/xmlrpc/MetaWeblogAPIHandler.java?view=diff&rev=448786&r1=448785&r2=448786
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/webservices/xmlrpc/MetaWeblogAPIHandler.java (original)
+++ incubator/roller/trunk/src/org/apache/roller/webservices/xmlrpc/MetaWeblogAPIHandler.java Thu Sep 21 20:17:26 2006
@@ -413,6 +413,7 @@
                         null,              // startDate
                         null,              // endDate
                         null,              // catName
+                        null,              // tags
                         null,              // status
                         "updateTime",      // sortby
                         null,                     0, numposts);

Modified: incubator/roller/trunk/tests/org/apache/roller/business/WeblogEntryTest.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/tests/org/apache/roller/business/WeblogEntryTest.java?view=diff&rev=448786&r1=448785&r2=448786
==============================================================================
--- incubator/roller/trunk/tests/org/apache/roller/business/WeblogEntryTest.java (original)
+++ incubator/roller/trunk/tests/org/apache/roller/business/WeblogEntryTest.java Thu Sep 21 20:17:26 2006
@@ -191,7 +191,7 @@
         
         // get all entries for weblog
         entries = null;
-        entries = mgr.getWeblogEntries(testWeblog, null, null, null, null, null, null, null, 0, -1);
+        entries = mgr.getWeblogEntries(testWeblog, null, null, null, null, null, null, null, null, 0, -1);
         assertNotNull(entries);
         assertEquals(3, entries.size());
         assertEquals(entry3, entries.get(0));
@@ -204,39 +204,39 @@
         
         // get all published entries only 
         entries = null;
-        entries = mgr.getWeblogEntries(testWeblog, null, null, null, null, WeblogEntryData.PUBLISHED, null, null, 0, -1);
+        entries = mgr.getWeblogEntries(testWeblog, null, null, null, null, null, WeblogEntryData.PUBLISHED, null, null, 0, -1);
         assertNotNull(entries);
         assertEquals(2, entries.size());
         
         // get all entries in date range
         entries = null;
-        entries = mgr.getWeblogEntries(testWeblog, null, entry2.getPubTime(), entry2.getPubTime(), null, null, null, null, 0, -1);
+        entries = mgr.getWeblogEntries(testWeblog, null, entry2.getPubTime(), entry2.getPubTime(), null, null, null, null, null, 0, -1);
         assertNotNull(entries);
         assertEquals(1, entries.size());
         assertEquals(entry2, entries.get(0));
         
         // get all entries, limited to maxSize
         entries = null;
-        entries = mgr.getWeblogEntries(testWeblog, null, null, null, null, null, null, null, 0, 2);
+        entries = mgr.getWeblogEntries(testWeblog, null, null, null, null, null, null, null, null, 0, 2);
         assertNotNull(entries);
         assertEquals(2, entries.size());
         
         // get all entries in category
         entries = null;
-        entries = mgr.getWeblogEntries(testWeblog, null, null, null, testWeblog.getDefaultCategory().getName(), null, null, null, 0, -1);
+        entries = mgr.getWeblogEntries(testWeblog, null, null, null, testWeblog.getDefaultCategory().getName(), null, null, null, null, 0, -1);
         assertNotNull(entries);
         assertEquals(3, entries.size());
         
         // get all entries, limited by offset/range
         entries = null;
-        entries = mgr.getWeblogEntries(testWeblog, null, null, null, null, null, null, null, 1, 1);
+        entries = mgr.getWeblogEntries(testWeblog, null, null, null, null, null, null, null, null, 1, 1);
         assertNotNull(entries);
         assertEquals(1, entries.size());
         assertEquals(entry2, entries.get(0));
         
         // get all entries, limited by locale
         entries = null;
-        entries = mgr.getWeblogEntries(testWeblog, null, null, null, null, null, null, "en_US", 0, -1);
+        entries = mgr.getWeblogEntries(testWeblog, null, null, null, null, null, null, null, "en_US", 0, -1);
         assertNotNull(entries);
         assertEquals(1, entries.size());
         assertEquals(entry1, entries.get(0));
@@ -276,13 +276,13 @@
         
         // get object map
         entryMap = null;
-        entryMap = mgr.getWeblogEntryObjectMap(testWeblog, null, null, null, null, null, 0, -1);
+        entryMap = mgr.getWeblogEntryObjectMap(testWeblog, null, null, null, null, null, null, 0, -1);
         assertNotNull(entryMap);
         assertTrue(entryMap.keySet().size() > 1);
         
         // get string map
         entryMap = null;
-        entryMap = mgr.getWeblogEntryStringMap(testWeblog, null, null, null, null, null, 0, -1);
+        entryMap = mgr.getWeblogEntryStringMap(testWeblog, null, null, null, null, null, null, 0, -1);
         assertNotNull(entryMap);
         assertTrue(entryMap.keySet().size() > 1);
                 
@@ -551,11 +551,11 @@
       String id = entry.getId();
       TestUtils.endSession(true);
       
-      List results = mgr.getWeblogEntriesByTags(testWeblog, Arrays.asList(new String[] {"testTag"}));
+      List results = mgr.getWeblogEntries(testWeblog, null, null, null, null, Arrays.asList(new String[] {"testTag"}), null, null, null, 0, -1);
       assertEquals(1,results.size());
       WeblogEntryData testEntry = (WeblogEntryData) results.iterator().next();
       assertEquals(entry, testEntry);
-      
+
       // teardown our test entry
       TestUtils.teardownWeblogEntry(id);
       TestUtils.endSession(true);      
@@ -571,16 +571,17 @@
       String id = entry.getId();
       TestUtils.endSession(true);
       
-      List results = mgr.getWeblogEntriesByTags(testWeblog, Arrays.asList(new String[] {"testTag"}));
+      List results = mgr.getWeblogEntries(testWeblog, null, null, null, null, Arrays.asList(new String[] {"testTag"}), null, null, null, 0, -1);
       assertEquals(1,results.size());
       WeblogEntryData testEntry = (WeblogEntryData) results.iterator().next();
       assertEquals(entry, testEntry);
-      
+
       // teardown our test entry
       TestUtils.teardownWeblogEntry(id);
       TestUtils.endSession(true);      
 
-      results = mgr.getWeblogEntriesByTags(testWeblog, Arrays.asList(new String[] {"testTag"}));
+      
+      results = mgr.getWeblogEntries(testWeblog, null, null, null, null, Arrays.asList(new String[] {"testTag"}), null, null, null, 0, -1);
       assertEquals(0,results.size());  
       
       // terminate