You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by cl...@apache.org on 2006/09/07 07:41:35 UTC

svn commit: r440982 - in /incubator/roller/branches/roller_3.0/sandbox/jdobackend/src/org/apache/roller/business: datamapper/ jdo/

Author: clr
Date: Wed Sep  6 22:41:34 2006
New Revision: 440982

URL: http://svn.apache.org/viewvc?view=rev&rev=440982
Log:
Datamapper updates

Added:
    incubator/roller/branches/roller_3.0/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperRemoveQuery.java
    incubator/roller/branches/roller_3.0/sandbox/jdobackend/src/org/apache/roller/business/jdo/JDORemoveQueryImpl.java
Modified:
    incubator/roller/branches/roller_3.0/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperAutoPingManagerImpl.java
    incubator/roller/branches/roller_3.0/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperPersistenceStrategy.java
    incubator/roller/branches/roller_3.0/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperPingTargetManagerImpl.java
    incubator/roller/branches/roller_3.0/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperPlanetManagerImpl.java
    incubator/roller/branches/roller_3.0/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperQuery.java
    incubator/roller/branches/roller_3.0/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperUserManagerImpl.java
    incubator/roller/branches/roller_3.0/sandbox/jdobackend/src/org/apache/roller/business/jdo/JDOPersistenceStrategy.java
    incubator/roller/branches/roller_3.0/sandbox/jdobackend/src/org/apache/roller/business/jdo/JDOQueryImpl.java

Modified: incubator/roller/branches/roller_3.0/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperAutoPingManagerImpl.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_3.0/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperAutoPingManagerImpl.java?view=diff&rev=440982&r1=440981&r2=440982
==============================================================================
--- incubator/roller/branches/roller_3.0/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperAutoPingManagerImpl.java (original)
+++ incubator/roller/branches/roller_3.0/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperAutoPingManagerImpl.java Wed Sep  6 22:41:34 2006
@@ -63,7 +63,7 @@
 
     public void removeAutoPing(PingTargetData pingTarget, WebsiteData website) 
             throws RollerException {
-        strategy.newQuery(AutoPingData.class, "getByPingTarget&Website")
+        strategy.newRemoveQuery(AutoPingData.class, "getByPingTarget&Website")
                 .removeAll(new Object[]{pingTarget, website});
     }
 

Modified: incubator/roller/branches/roller_3.0/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperPersistenceStrategy.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_3.0/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperPersistenceStrategy.java?view=diff&rev=440982&r1=440981&r2=440982
==============================================================================
--- incubator/roller/branches/roller_3.0/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperPersistenceStrategy.java (original)
+++ incubator/roller/branches/roller_3.0/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperPersistenceStrategy.java Wed Sep  6 22:41:34 2006
@@ -103,4 +103,13 @@
     public DatamapperQuery newQuery(Class clazz, String queryName)
             throws RollerException;
 
+    /**
+     * Create query used for bulk remove operations.
+     * @param clazz the class of instances to remove
+     * @param queryName the name of the query
+     * @throws org.apache.roller.RollerException on any error
+     */
+    public DatamapperRemoveQuery newRemoveQuery(Class clazz, String queryName)
+            throws RollerException;
+
 }

Modified: incubator/roller/branches/roller_3.0/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperPingTargetManagerImpl.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_3.0/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperPingTargetManagerImpl.java?view=diff&rev=440982&r1=440981&r2=440982
==============================================================================
--- incubator/roller/branches/roller_3.0/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperPingTargetManagerImpl.java (original)
+++ incubator/roller/branches/roller_3.0/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperPingTargetManagerImpl.java Wed Sep  6 22:41:34 2006
@@ -58,16 +58,16 @@
     public void removePingTarget(PingTargetData pingTarget)
             throws RollerException {
         // remove queued ping entries that refer to this ping target
-        strategy.newQuery(PingQueueEntryData.class, "getByPingTarget")
+        strategy.newRemoveQuery(PingQueueEntryData.class, "getByPingTarget")
             .removeAll(pingTarget);
         // remove autopings that refer to this ping target
-        strategy.newQuery(AutoPingData.class, "getByPingTarget")
+        strategy.newRemoveQuery(AutoPingData.class, "getByPingTarget")
             .removeAll(pingTarget);
     }
 
     public void removeAllCustomPingTargets()
             throws RollerException {
-        strategy.newQuery(PingTargetData.class, "getByWebsiteNotNull")
+        strategy.newRemoveQuery(PingTargetData.class, "getByWebsiteNotNull")
             .removeAll();
     }
 

Modified: incubator/roller/branches/roller_3.0/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperPlanetManagerImpl.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_3.0/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperPlanetManagerImpl.java?view=diff&rev=440982&r1=440981&r2=440982
==============================================================================
--- incubator/roller/branches/roller_3.0/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperPlanetManagerImpl.java (original)
+++ incubator/roller/branches/roller_3.0/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperPlanetManagerImpl.java Wed Sep  6 22:41:34 2006
@@ -32,9 +32,8 @@
 import org.apache.velocity.VelocityContext;
 import org.apache.roller.RollerException;
 import org.apache.roller.config.RollerRuntimeConfig;
-import org.apache.roller.model.PagePluginManager;
 import org.apache.roller.model.PlanetManager;
-import org.apache.roller.model.Roller;
+import org.apache.roller.model.RollerFactory;
 import org.apache.roller.model.UserManager;
 import org.apache.roller.model.WeblogManager;
 import org.apache.roller.pojos.PlanetConfigData;
@@ -92,7 +91,7 @@
 
     public void saveSubscription(PlanetSubscriptionData sub)
             throws RollerException {
-        PlanetSubscriptionData existing = getSubscription(sub.getFeedUrl());
+        PlanetSubscriptionData existing = getSubscription(sub.getFeedURL());
         if (existing == null || (existing.getId().equals(sub.getId()))) {
             strategy.store(sub);
         }
@@ -137,17 +136,40 @@
     public PlanetGroupData getGroupById(String id) throws RollerException {
         return (PlanetGroupData) strategy.load(PlanetGroupData.class, id);
     }
-
-    public synchronized List getAggregation(int maxEntries)
-            throws RollerException {
-        return getAggregation(null, maxEntries);
+    /**
+     * Get agggration for group from cache, enries in reverse chonological order.
+     * Respects category constraints of group.
+     * @param group Restrict to entries from one subscription group.
+     * @param offset    Offset into results (for paging)
+     * @param len       Maximum number of results to return (for paging)
+     */
+    public List getAggregation(
+            PlanetGroupData group, Date startDate, Date endDate,
+            int offset, int len) throws RollerException {
+        return null;
     }
-
-    public synchronized List getAggregation(PlanetGroupData group,
-            int maxEntries) throws RollerException {
+    
+    public List getAggregation(
+            int offset, int len) throws RollerException {
         return null;
     }
-
+    
+    public List getAggregation(
+            PlanetGroupData group, int offset, int len) throws RollerException {
+        return null;
+    }
+    
+    /**
+     * Get agggration from cache, enries in reverse chonological order.
+     * @param offset    Offset into results (for paging)
+     * @param len       Maximum number of results to return (for paging)
+     */
+    public List getAggregation(Date startDate, Date endDate,
+            int offset, int len) throws RollerException {
+        return null;
+    }
+    
+    
     public void deleteEntry(PlanetEntryData entry) throws RollerException {
         strategy.remove(entry);
     }
@@ -174,11 +196,34 @@
         return null;
     }
 
+    /**
+     * Get top X subscriptions.
+     */
+    public List getTopSubscriptions(int offset, int len) throws RollerException {
+        return null;
+    }
+    
     public synchronized List getTopSubscriptions(PlanetGroupData group, int max)
             throws RollerException {
         return null;
     }
 
+    /**
+     * Get top X subscriptions, restricted by group.
+     */
+    public List getTopSubscriptions(
+            String groupHandle, int offset, int len) throws RollerException {
+        return null;
+    }
+    
+    /**
+     * Get entries in a single feed as list of PlanetEntryData objects.
+     */
+    public List getFeedEntries(
+            String feedUrl, int offset, int len) throws RollerException {
+        return null;
+    }
+
     public synchronized void clearCachedAggregations() {
         lastUpdatedByGroup.clear();
     }
@@ -199,9 +244,9 @@
         try {
             // for local feeds, sub.author = website.handle
             if (sub.getAuthor() != null
-                    && sub.getFeedUrl().endsWith(sub.getAuthor())) {
+                    && sub.getFeedURL().endsWith(sub.getAuthor())) {
 
-                logger.debug("Getting LOCAL feed " + sub.getFeedUrl());
+                logger.debug("Getting LOCAL feed " + sub.getFeedURL());
 
                 // get corresponding website object
                 WebsiteData website = (WebsiteData)strategy.newQuery(
@@ -211,7 +256,7 @@
                     return newEntries;
 
                 // figure website last update time
-                WeblogManager blogmgr = roller.getWeblogManager();
+                WeblogManager blogmgr = RollerFactory.getRoller().getWeblogManager();
 
                 Date siteUpdated = blogmgr.getWeblogLastPublishTime(website);
                 if (siteUpdated == null) { // Site never updated, skip it
@@ -244,26 +289,7 @@
                         logger.debug(msg);
                     }
                 }
-                // Populate subscription object with new entries
-                PagePluginManager ppmgr = roller.getPagePluginManager();
-                Map pagePlugins = ppmgr.createAndInitPagePlugins(website, null,
-                        RollerRuntimeConfig.getProperty("site.absoluteurl"),
-                        new VelocityContext());
-                Iterator entryIter = entries.iterator();
-                while (entryIter.hasNext()) {
-                    try {
-                        WeblogEntryData rollerEntry = (WeblogEntryData) entryIter
-                                .next();
-                        PlanetEntryData entry = new PlanetEntryData(
-                                rollerEntry, sub, pagePlugins);
-                        saveEntry(entry);
-                        newEntries.add(entry);
-                    }
-                    catch (Exception e) {
-                        logger.error("ERROR processing subscription entry", e);
-                    }
-                }
-                return newEntries;
+                return null;
             }
         }
         catch (Exception e) {

Modified: incubator/roller/branches/roller_3.0/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperQuery.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_3.0/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperQuery.java?view=diff&rev=440982&r1=440981&r2=440982
==============================================================================
--- incubator/roller/branches/roller_3.0/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperQuery.java (original)
+++ incubator/roller/branches/roller_3.0/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperQuery.java Wed Sep  6 22:41:34 2006
@@ -40,23 +40,6 @@
      */
     Object execute(Object[] params);
 
-    /** Remove instances selected by the query with no parameters.
-     * @return the results of the query
-     */
-    void removeAll();
-
-    /** Remove instances selected by the query with one parameter.
-     * @param param the parameter
-     * @return the results of the query
-     */
-    void removeAll(Object param);
-
-    /** Remove instances selected by the query with parameters.
-     * @param params the parameters
-     * @return the results of the query
-     */
-    void removeAll(Object[] params);
-
     /** Set the result to be a single instance (not a List).
      * @result the instance on which this method is called
      */

Added: incubator/roller/branches/roller_3.0/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperRemoveQuery.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_3.0/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperRemoveQuery.java?view=auto&rev=440982
==============================================================================
--- incubator/roller/branches/roller_3.0/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperRemoveQuery.java (added)
+++ incubator/roller/branches/roller_3.0/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperRemoveQuery.java Wed Sep  6 22:41:34 2006
@@ -0,0 +1,55 @@
+/*
+ * Copyright 2006 The Apache Software Foundation.
+ * 
+ * Licensed 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.
+ */
+
+package org.apache.roller.business.datamapper;
+
+import java.util.List;
+
+/**
+ *
+ */
+public interface DatamapperRemoveQuery {
+
+    /** Remove instances selected by the query with no parameters.
+     * @return the results of the query
+     */
+    void removeAll();
+
+    /** Remove instances selected by the query with one parameter.
+     * @param param the parameter
+     * @return the results of the query
+     */
+    void removeAll(Object param);
+
+    /** Remove instances selected by the query with parameters.
+     * @param params the parameters
+     * @return the results of the query
+     */
+    void removeAll(Object[] params);
+
+    /** Set the result to be a single instance (not a List).
+     * @result the instance on which this method is called
+     */
+    DatamapperRemoveQuery setUnique();
+
+    /** Set the types of the parameters. This is only needed if the 
+     * parameter types are temporal types, e.g. Date, Time, Calendar.
+     * @param the types of the parameters in corresponding positions.
+     * @result the instance on which this method is called
+     */
+    DatamapperRemoveQuery setTypes(Object[] types);
+
+}

Modified: incubator/roller/branches/roller_3.0/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperUserManagerImpl.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_3.0/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperUserManagerImpl.java?view=diff&rev=440982&r1=440981&r2=440982
==============================================================================
--- incubator/roller/branches/roller_3.0/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperUserManagerImpl.java (original)
+++ incubator/roller/branches/roller_3.0/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperUserManagerImpl.java Wed Sep  6 22:41:34 2006
@@ -17,6 +17,7 @@
 package org.apache.roller.business.datamapper;
 
 import java.util.Collection;
+import java.util.Date;
 import java.util.Iterator;
 import java.util.List;
 import org.apache.commons.logging.Log;
@@ -296,6 +297,46 @@
             .execute(new Object[]{user, enabled, active});
     }
 
+    /**
+     * Get websites optionally restricted by user, enabled and active status.
+     * @param user    Get all websites for this user (or null for all)
+     * @param offset  Offset into results (for paging)
+     * @param len     Maximum number of results to return (for paging)
+     * @param enabled Get all with this enabled state (or null or all)
+     * @param active  Get all with this active state (or null or all)
+     * @param startDate Restrict to those created after (or null for all)
+     * @param endDate Restrict to those created before (or null for all)
+     * @returns List of WebsiteData objects.
+     */
+    public List getWebsites(
+            UserData user, 
+            Boolean  enabled, 
+            Boolean  active, 
+            Date     startDate, 
+            Date     endDate, 
+            int      offset, 
+            int      length) 
+            throws RollerException {
+        return null;
+    }
+    
+    /**
+     * Get websites ordered by descending number of comments.
+     * @param startDate Restrict to those created after (or null for all)
+     * @param endDate Restrict to those created before (or null for all)
+     * @param offset    Offset into results (for paging)
+     * @param len       Maximum number of results to return (for paging)
+     * @returns List of WebsiteData objects.
+     */
+    public List getMostCommentedWebsites(
+            Date startDate, 
+            Date endDate, 
+            int  offset, 
+            int  length) 
+            throws RollerException {
+        return null;
+    }
+    
     public void savePermissions(PermissionsData perms) 
             throws RollerException {
         strategy.store(perms);

Modified: incubator/roller/branches/roller_3.0/sandbox/jdobackend/src/org/apache/roller/business/jdo/JDOPersistenceStrategy.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_3.0/sandbox/jdobackend/src/org/apache/roller/business/jdo/JDOPersistenceStrategy.java?view=diff&rev=440982&r1=440981&r2=440982
==============================================================================
--- incubator/roller/branches/roller_3.0/sandbox/jdobackend/src/org/apache/roller/business/jdo/JDOPersistenceStrategy.java (original)
+++ incubator/roller/branches/roller_3.0/sandbox/jdobackend/src/org/apache/roller/business/jdo/JDOPersistenceStrategy.java Wed Sep  6 22:41:34 2006
@@ -27,6 +27,7 @@
 import org.apache.roller.RollerException;
 import org.apache.roller.business.datamapper.DatamapperPersistenceStrategy;
 import org.apache.roller.business.datamapper.DatamapperQuery;
+import org.apache.roller.business.datamapper.DatamapperRemoveQuery;
 import org.apache.roller.pojos.PersistentObject;
 import org.apache.roller.pojos.UserData;
 
@@ -302,5 +303,18 @@
         PersistenceManager pm = getPersistenceManager(false, false);
         return new JDOQueryImpl(pm, clazz, queryName);
     }
+
+    /**
+     * Create query used for bulk remove operations.
+     * @param clazz the class of instances to remove
+     * @param queryName the name of the query
+     * @throws org.apache.roller.RollerException on any error
+     */
+    public DatamapperRemoveQuery newRemoveQuery(Class clazz, String queryName)
+            throws RollerException {
+        PersistenceManager pm = getPersistenceManager(false, false);
+        return new JDORemoveQueryImpl(pm, clazz, queryName);
+    }
+
 }
 

Modified: incubator/roller/branches/roller_3.0/sandbox/jdobackend/src/org/apache/roller/business/jdo/JDOQueryImpl.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_3.0/sandbox/jdobackend/src/org/apache/roller/business/jdo/JDOQueryImpl.java?view=diff&rev=440982&r1=440981&r2=440982
==============================================================================
--- incubator/roller/branches/roller_3.0/sandbox/jdobackend/src/org/apache/roller/business/jdo/JDOQueryImpl.java (original)
+++ incubator/roller/branches/roller_3.0/sandbox/jdobackend/src/org/apache/roller/business/jdo/JDOQueryImpl.java Wed Sep  6 22:41:34 2006
@@ -20,6 +20,7 @@
 import javax.jdo.Query;
 
 import org.apache.roller.business.datamapper.DatamapperQuery;
+import org.apache.roller.business.datamapper.DatamapperRemoveQuery;
 
 /**
  *
@@ -49,18 +50,6 @@
 
     public Object execute(Object[] params) {
         return q.execute(params);
-    }
-
-    public void removeAll() {
-        q.deletePersistentAll();
-    }
-
-    public void removeAll(Object param) {
-        q.deletePersistentAll(new Object[]{param});
-    }
-
-    public void removeAll(Object[] params) {
-        q.deletePersistentAll(params);
     }
 
     public DatamapperQuery setUnique() {

Added: incubator/roller/branches/roller_3.0/sandbox/jdobackend/src/org/apache/roller/business/jdo/JDORemoveQueryImpl.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_3.0/sandbox/jdobackend/src/org/apache/roller/business/jdo/JDORemoveQueryImpl.java?view=auto&rev=440982
==============================================================================
--- incubator/roller/branches/roller_3.0/sandbox/jdobackend/src/org/apache/roller/business/jdo/JDORemoveQueryImpl.java (added)
+++ incubator/roller/branches/roller_3.0/sandbox/jdobackend/src/org/apache/roller/business/jdo/JDORemoveQueryImpl.java Wed Sep  6 22:41:34 2006
@@ -0,0 +1,63 @@
+/*
+ * Copyright 2006 The Apache Software Foundation.
+ * 
+ * Licensed 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.
+ */
+
+package org.apache.roller.business.jdo;
+
+import javax.jdo.PersistenceManager;
+import javax.jdo.Query;
+
+import org.apache.roller.business.datamapper.DatamapperRemoveQuery;
+
+/**
+ *
+ */
+public class JDORemoveQueryImpl implements DatamapperRemoveQuery {
+
+    /** */
+    protected PersistenceManager pm;
+
+    /** */
+    protected Query q;
+    
+    /** Creates a new instance of JDOQueryImpl */
+    public JDORemoveQueryImpl(PersistenceManager pm,
+            Class clazz, String queryName) {
+        this.pm = pm;
+        q = pm.newQuery(clazz, queryName);
+    }
+
+    public void removeAll() {
+        q.deletePersistentAll();
+    }
+
+    public void removeAll(Object param) {
+        q.deletePersistentAll(new Object[]{param});
+    }
+
+    public void removeAll(Object[] params) {
+        q.deletePersistentAll(params);
+    }
+
+    public DatamapperRemoveQuery setUnique() {
+        q.setUnique(true);
+        return this;
+    }
+
+    public DatamapperRemoveQuery setTypes(Object[] types) {
+        return this;
+    }
+
+}
\ No newline at end of file