You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by sn...@apache.org on 2005/12/17 00:09:21 UTC

svn commit: r357249 - in /incubator/roller/trunk/sandbox/jdobackend: ./ lib/ src/ src/org/ src/org/roller/ src/org/roller/business/ src/org/roller/business/jdo/

Author: snoopdave
Date: Fri Dec 16 15:08:30 2005
New Revision: 357249

URL: http://svn.apache.org/viewcvs?rev=357249&view=rev
Log:
Beginnings of JDO sandbox

Added:
    incubator/roller/trunk/sandbox/jdobackend/
    incubator/roller/trunk/sandbox/jdobackend/lib/
    incubator/roller/trunk/sandbox/jdobackend/lib/jpox-1.1.0-beta-5.jar   (with props)
    incubator/roller/trunk/sandbox/jdobackend/lib/jpox-enhancer-1.1.0-beta-5.jar   (with props)
    incubator/roller/trunk/sandbox/jdobackend/src/
    incubator/roller/trunk/sandbox/jdobackend/src/org/
    incubator/roller/trunk/sandbox/jdobackend/src/org/roller/
    incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/
    incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/
    incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOAutoPingManagerImpl.java
    incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOBookmarkManagerImpl.java
    incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOConfigManagerImpl.java
    incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOPersistenceSession.java
    incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOPingQueueManagerImpl.java
    incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOPingTargetManagerImpl.java
    incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOPlanetManagerImpl.java
    incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOPropertiesManagerImpl.java
    incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDORefererManagerImpl.java
    incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDORollerImpl.java
    incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOStrategy.java
    incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOUserManagerImpl.java
    incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOWeblogManagerImpl.java

Added: incubator/roller/trunk/sandbox/jdobackend/lib/jpox-1.1.0-beta-5.jar
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/sandbox/jdobackend/lib/jpox-1.1.0-beta-5.jar?rev=357249&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/roller/trunk/sandbox/jdobackend/lib/jpox-1.1.0-beta-5.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/roller/trunk/sandbox/jdobackend/lib/jpox-enhancer-1.1.0-beta-5.jar
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/sandbox/jdobackend/lib/jpox-enhancer-1.1.0-beta-5.jar?rev=357249&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/roller/trunk/sandbox/jdobackend/lib/jpox-enhancer-1.1.0-beta-5.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOAutoPingManagerImpl.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOAutoPingManagerImpl.java?rev=357249&view=auto
==============================================================================
--- incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOAutoPingManagerImpl.java (added)
+++ incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOAutoPingManagerImpl.java Fri Dec 16 15:08:30 2005
@@ -0,0 +1,65 @@
+package org.roller.business.jdo;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.roller.RollerException;
+import org.roller.business.AutoPingManagerImpl;
+import org.roller.business.PersistenceStrategy;
+import org.roller.pojos.AutoPingData;
+import org.roller.pojos.PingTargetData;
+import org.roller.pojos.WeblogEntryData;
+import org.roller.pojos.WebsiteData;
+
+/**
+ * @author Dave Johnson
+ */
+public class JDOAutoPingManagerImpl extends AutoPingManagerImpl {
+
+    public JDOAutoPingManagerImpl(PersistenceStrategy persistenceStrategy) {
+        super(persistenceStrategy);
+        // TODO Auto-generated constructor stub
+    }
+
+    public void removeAutoPing(PingTargetData pingTarget, WebsiteData website)
+            throws RollerException {
+        // TODO Auto-generated method stub
+
+    }
+
+    public void removeAllAutoPings() throws RollerException {
+        // TODO Auto-generated method stub
+
+    }
+
+    public List getAutoPingsByWebsite(WebsiteData website)
+            throws RollerException {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public List getAutoPingsByTarget(PingTargetData pingTarget)
+            throws RollerException {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public List getCategoryRestrictions(AutoPingData autoPing)
+            throws RollerException {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public void setCategoryRestrictions(AutoPingData autoPing,
+            Collection newCategories) {
+        // TODO Auto-generated method stub
+
+    }
+
+    public List getApplicableAutoPings(WeblogEntryData changedWeblogEntry)
+            throws RollerException {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+}
\ No newline at end of file

Added: incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOBookmarkManagerImpl.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOBookmarkManagerImpl.java?rev=357249&view=auto
==============================================================================
--- incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOBookmarkManagerImpl.java (added)
+++ incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOBookmarkManagerImpl.java Fri Dec 16 15:08:30 2005
@@ -0,0 +1,76 @@
+package org.roller.business.jdo;
+
+import java.util.List;
+
+import org.roller.RollerException;
+import org.roller.business.BookmarkManagerImpl;
+import org.roller.business.PersistenceStrategy;
+import org.roller.pojos.Assoc;
+import org.roller.pojos.FolderData;
+import org.roller.pojos.WebsiteData;
+
+/**
+ * @author Dave Johnson
+ */
+public class JDOBookmarkManagerImpl extends BookmarkManagerImpl {
+
+    public JDOBookmarkManagerImpl(PersistenceStrategy pstrategy) {
+        super(pstrategy);
+        // TODO Auto-generated constructor stub
+    }
+
+    public boolean isFolderInUse(FolderData folder) throws RollerException {
+        // TODO Auto-generated method stub
+        return false;
+    }
+
+    public List getAllFolders(WebsiteData wd) throws RollerException {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public FolderData getRootFolder(WebsiteData website) throws RollerException {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public List retrieveBookmarks(FolderData data, boolean subfolders)
+            throws RollerException {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public boolean isDuplicateFolderName(FolderData data)
+            throws RollerException {
+        // TODO Auto-generated method stub
+        return false;
+    }
+
+    public Assoc getFolderParentAssoc(FolderData data) throws RollerException {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public List getFolderChildAssocs(FolderData data) throws RollerException {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public List getAllFolderDecscendentAssocs(FolderData data)
+            throws RollerException {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public List getFolderAncestorAssocs(FolderData data) throws RollerException {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public boolean isDescendentOf(FolderData data, FolderData ancestor)
+            throws RollerException {
+        // TODO Auto-generated method stub
+        return false;
+    }
+
+}
\ No newline at end of file

Added: incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOConfigManagerImpl.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOConfigManagerImpl.java?rev=357249&view=auto
==============================================================================
--- incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOConfigManagerImpl.java (added)
+++ incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOConfigManagerImpl.java Fri Dec 16 15:08:30 2005
@@ -0,0 +1,23 @@
+/*
+ * Created on Dec 13, 2005
+ */
+package org.roller.business.jdo;
+
+import org.roller.RollerException;
+import org.roller.business.ConfigManagerImpl;
+import org.roller.business.PersistenceStrategy;
+import org.roller.pojos.RollerConfigData;
+
+/**
+ * @author Dave Johnson
+ */
+public class JDOConfigManagerImpl extends ConfigManagerImpl {
+    public JDOConfigManagerImpl(PersistenceStrategy strategy) {
+        super(strategy);
+    }
+
+    public RollerConfigData getRollerConfig() throws RollerException {
+        return null;
+    }
+
+}
\ No newline at end of file

Added: incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOPersistenceSession.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOPersistenceSession.java?rev=357249&view=auto
==============================================================================
--- incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOPersistenceSession.java (added)
+++ incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOPersistenceSession.java Fri Dec 16 15:08:30 2005
@@ -0,0 +1,34 @@
+package org.roller.business.jdo;
+
+import org.roller.model.PersistenceSession;
+import org.roller.pojos.UserData;
+
+/**
+ * @author David M Johnson
+ */
+public class JDOPersistenceSession implements PersistenceSession {
+    private Object   session = null;
+    private UserData user    = null;
+
+    public JDOPersistenceSession(UserData user, Object session) {
+        this.user = user;
+        this.session = session;
+    }
+
+    public Object getSessionObject() {
+        return session;
+    }
+
+    public void setSessionObject(Object newSession) {
+        this.session = session;
+    }
+
+    public UserData getUser() {
+        return user;
+    }
+
+    public void setUser(UserData user) {
+        this.user = user;
+    }
+}
+

Added: incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOPingQueueManagerImpl.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOPingQueueManagerImpl.java?rev=357249&view=auto
==============================================================================
--- incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOPingQueueManagerImpl.java (added)
+++ incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOPingQueueManagerImpl.java Fri Dec 16 15:08:30 2005
@@ -0,0 +1,38 @@
+package org.roller.business.jdo;
+
+import java.util.List;
+
+import org.roller.RollerException;
+import org.roller.business.PersistenceStrategy;
+import org.roller.business.PingQueueManagerImpl;
+import org.roller.pojos.AutoPingData;
+import org.roller.pojos.PingTargetData;
+import org.roller.pojos.WebsiteData;
+
+/**
+ * @author Dave Johnson
+ */
+public class JDOPingQueueManagerImpl extends PingQueueManagerImpl {
+    public JDOPingQueueManagerImpl(PersistenceStrategy persistenceStrategy) {
+        super(persistenceStrategy);
+    }
+
+    public void addQueueEntry(AutoPingData autoPing) throws RollerException {
+    }
+
+    public void dropQueue() throws RollerException {
+    }
+
+    public List getAllQueueEntries() throws RollerException {
+        return null;
+    }
+
+    public void removeQueueEntriesByPingTarget(PingTargetData pingTarget)
+            throws RollerException {
+    }
+
+    public void removeQueueEntriesByWebsite(WebsiteData website)
+            throws RollerException {
+    }
+
+}
\ No newline at end of file

Added: incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOPingTargetManagerImpl.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOPingTargetManagerImpl.java?rev=357249&view=auto
==============================================================================
--- incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOPingTargetManagerImpl.java (added)
+++ incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOPingTargetManagerImpl.java Fri Dec 16 15:08:30 2005
@@ -0,0 +1,30 @@
+package org.roller.business.jdo;
+
+import java.util.List;
+
+import org.roller.RollerException;
+import org.roller.business.PersistenceStrategy;
+import org.roller.business.PingTargetManagerImpl;
+import org.roller.pojos.WebsiteData;
+
+public class JDOPingTargetManagerImpl extends PingTargetManagerImpl {
+    public JDOPingTargetManagerImpl(PersistenceStrategy persistenceStrategy) {
+        super(persistenceStrategy);
+    }
+
+    public List getCommonPingTargets() throws RollerException {
+        return null;
+    }
+
+    public List getCustomPingTargets(WebsiteData website)
+            throws RollerException {
+        return null;
+    }
+
+    public void removeCustomPingTargets(WebsiteData website)
+            throws RollerException {
+    }
+
+    public void removeAllCustomPingTargets() throws RollerException {
+    }
+}
\ No newline at end of file

Added: incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOPlanetManagerImpl.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOPlanetManagerImpl.java?rev=357249&view=auto
==============================================================================
--- incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOPlanetManagerImpl.java (added)
+++ incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOPlanetManagerImpl.java Fri Dec 16 15:08:30 2005
@@ -0,0 +1,254 @@
+package org.roller.business.jdo;
+
+import java.text.MessageFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeSet;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.velocity.VelocityContext;
+import org.roller.RollerException;
+import org.roller.business.PersistenceStrategy;
+import org.roller.business.PlanetManagerImpl;
+import org.roller.config.RollerRuntimeConfig;
+import org.roller.model.PagePluginManager;
+import org.roller.model.Roller;
+import org.roller.model.UserManager;
+import org.roller.model.WeblogManager;
+import org.roller.pojos.PlanetConfigData;
+import org.roller.pojos.PlanetEntryData;
+import org.roller.pojos.PlanetGroupData;
+import org.roller.pojos.PlanetGroupSubscriptionAssoc;
+import org.roller.pojos.PlanetSubscriptionData;
+import org.roller.pojos.WeblogEntryData;
+import org.roller.pojos.WebsiteData;
+
+import com.sun.syndication.fetcher.FeedFetcher;
+import com.sun.syndication.fetcher.impl.FeedFetcherCache;
+
+/**
+ * Manages Planet Roller objects and entry aggregations in a database.
+ * 
+ * @author Dave Johnson
+ */
+public class JDOPlanetManagerImpl extends PlanetManagerImpl {
+    protected Map                 lastUpdatedByGroup = new HashMap();
+    protected static final String NO_GROUP           = "zzz_nogroup_zzz";
+
+    private static Log            logger             = LogFactory
+                                                             .getFactory()
+                                                             .getInstance(
+                                                                     JDOPlanetManagerImpl.class);
+
+    public JDOPlanetManagerImpl(PersistenceStrategy strategy, Roller roller) {
+        super(strategy, roller);
+    }
+
+    public void saveConfiguration(PlanetConfigData config)
+            throws RollerException {
+        config.save();
+    }
+
+    public void saveGroup(PlanetGroupData group) throws RollerException {
+        Iterator assocs = group.getGroupSubscriptionAssocs().iterator();
+        while (assocs.hasNext()) {
+            PlanetGroupSubscriptionAssoc assoc = (PlanetGroupSubscriptionAssoc) assocs
+                    .next();
+            assoc.save();
+        }
+        group.save();
+    }
+
+    public void saveEntry(PlanetEntryData entry) throws RollerException {
+        entry.save();
+    }
+
+    public void saveSubscription(PlanetSubscriptionData sub)
+            throws RollerException {
+        PlanetSubscriptionData existing = getSubscription(sub.getFeedUrl());
+        if (existing == null || (existing.getId().equals(sub.getId()))) {
+            sub.save();
+        }
+        else {
+            throw new RollerException("ERROR: duplicate feed URLs not allowed");
+        }
+    }
+
+    public PlanetConfigData getConfiguration() throws RollerException {
+        return null;
+    }
+
+    public List getGroups() throws RollerException {
+        return null;
+    }
+
+    public List getGroupHandles() throws RollerException {
+        List handles = new ArrayList();
+        Iterator list = getGroups().iterator();
+        while (list.hasNext()) {
+            PlanetGroupData group = (PlanetGroupData) list.next();
+            handles.add(group.getHandle());
+        }
+        return handles;
+    }
+
+    public PlanetSubscriptionData getSubscription(String feedUrl)
+            throws RollerException {
+        return null;
+    }
+
+    public PlanetSubscriptionData getSubscriptionById(String id)
+            throws RollerException {
+        return (PlanetSubscriptionData) strategy.load(id,
+                PlanetSubscriptionData.class);
+    }
+
+    public PlanetGroupData getGroup(String handle) throws RollerException {
+        return null;
+    }
+
+    public PlanetGroupData getGroupById(String id) throws RollerException {
+        return (PlanetGroupData) strategy.load(id, PlanetGroupData.class);
+    }
+
+    public synchronized List getAggregation(int maxEntries)
+            throws RollerException {
+        return getAggregation(null, maxEntries);
+    }
+
+    public synchronized List getAggregation(PlanetGroupData group,
+            int maxEntries) throws RollerException {
+        return null;
+    }
+
+    public void deleteEntry(PlanetEntryData entry) throws RollerException {
+        entry.remove();
+    }
+
+    public void deleteGroup(PlanetGroupData group) throws RollerException {
+        group.remove();
+    }
+
+    public void deleteSubscription(PlanetSubscriptionData sub)
+            throws RollerException {
+        sub.remove();
+    }
+
+    public Iterator getAllSubscriptions() {
+        return null;
+    }
+
+    public int getSubscriptionCount() throws RollerException {
+        return -1;
+    }
+
+    public synchronized List getTopSubscriptions(int max)
+            throws RollerException {
+        return null;
+    }
+
+    public synchronized List getTopSubscriptions(PlanetGroupData group, int max)
+            throws RollerException {
+        return null;
+    }
+
+    public synchronized void clearCachedAggregations() {
+        lastUpdatedByGroup.clear();
+    }
+
+    public Date getLastUpdated() {
+        return (Date) lastUpdatedByGroup.get(NO_GROUP);
+    }
+
+    public Date getLastUpdated(PlanetGroupData group) {
+        return (Date) lastUpdatedByGroup.get(group);
+    }
+
+    protected Set getNewEntriesLocal(PlanetSubscriptionData sub,
+            FeedFetcher feedFetcher, FeedFetcherCache feedInfoCache)
+            throws RollerException {
+
+        Set newEntries = new TreeSet();
+        try {
+            // for local feeds, sub.author = website.handle
+            if (sub.getAuthor() != null
+                    && sub.getFeedUrl().endsWith(sub.getAuthor())) {
+
+                logger.debug("Getting LOCAL feed " + sub.getFeedUrl());
+
+                // get corresponding website object
+                UserManager usermgr = roller.getUserManager();
+                WebsiteData website = usermgr.getWebsiteByHandle(sub
+                        .getAuthor());
+                if (website == null)
+                    return newEntries;
+
+                // figure website last update time
+                WeblogManager blogmgr = roller.getWeblogManager();
+
+                Date siteUpdated = blogmgr.getWeblogLastPublishTime(website);
+                if (siteUpdated == null) { // Site never updated, skip it
+                    logger.warn("Last-publish time null, skipping local feed ["
+                            + website.getHandle() + "]");
+                    return newEntries;
+                }
+
+                // if website last update time > subsciption last update time
+                List entries = new ArrayList();
+                if (sub.getLastUpdated() == null
+                        || siteUpdated.after(sub.getLastUpdated())) {
+                    int entryCount = RollerRuntimeConfig
+                            .getIntProperty("site.newsfeeds.defaultEntries");
+                    entries = blogmgr.getWeblogEntries(website, null, // startDate
+                            new Date(), // endDate
+                            null, // catName
+                            WeblogEntryData.PUBLISHED, // status
+                            new Integer(entryCount)); // maxEntries
+
+                    sub.setLastUpdated(siteUpdated);
+                    saveSubscription(sub);
+
+                }
+                else {
+                    if (logger.isDebugEnabled()) {
+                        String msg = MessageFormat.format(
+                                "   Skipping ({0} / {1})", new Object[] {
+                                        siteUpdated, sub.getLastUpdated() });
+                        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;
+            }
+        }
+        catch (Exception e) {
+            logger.warn("Problem reading local feed", e);
+        }
+        return getNewEntriesRemote(sub, feedFetcher, feedInfoCache);
+    }
+}
+

Added: incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOPropertiesManagerImpl.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOPropertiesManagerImpl.java?rev=357249&view=auto
==============================================================================
--- incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOPropertiesManagerImpl.java (added)
+++ incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOPropertiesManagerImpl.java Fri Dec 16 15:08:30 2005
@@ -0,0 +1,27 @@
+package org.roller.business.jdo;
+
+import java.util.Map;
+
+import org.roller.RollerException;
+import org.roller.business.PersistenceStrategy;
+import org.roller.business.PropertiesManagerImpl;
+import org.roller.pojos.RollerPropertyData;
+
+/**
+ * @author Dave Johnson
+ */
+public class JDOPropertiesManagerImpl extends PropertiesManagerImpl {
+
+    public JDOPropertiesManagerImpl(PersistenceStrategy strategy) {
+        super(strategy);
+    }
+
+    public RollerPropertyData getProperty(String name) throws RollerException {
+        return null;
+    }
+
+    public Map getProperties() throws RollerException {
+        return null;
+    }
+
+}
\ No newline at end of file

Added: incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDORefererManagerImpl.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDORefererManagerImpl.java?rev=357249&view=auto
==============================================================================
--- incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDORefererManagerImpl.java (added)
+++ incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDORefererManagerImpl.java Fri Dec 16 15:08:30 2005
@@ -0,0 +1,96 @@
+package org.roller.business.jdo;
+
+import java.util.List;
+
+import org.roller.RollerException;
+import org.roller.business.RefererManagerImpl;
+import org.roller.pojos.WebsiteData;
+
+/**
+ * @author Dave Johnson
+ */
+public class JDORefererManagerImpl extends RefererManagerImpl {
+
+    protected List getReferersWithSameTitle(WebsiteData website,
+            String requestUrl, String title, String excerpt)
+            throws RollerException {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    protected List getExistingReferers(WebsiteData website, String dateString,
+            String permalink) throws RollerException {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    protected List getReferersToWebsite(WebsiteData website, String refererUrl)
+            throws RollerException {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    protected List getMatchingReferers(WebsiteData website, String requestUrl,
+            String refererUrl) throws RollerException {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    protected int getHits(WebsiteData website, String type)
+            throws RollerException {
+        // TODO Auto-generated method stub
+        return 0;
+    }
+
+    public List getReferers(WebsiteData website) throws RollerException {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public List getTodaysReferers(WebsiteData website) throws RollerException {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public List getReferersToDate(WebsiteData website, String date)
+            throws RollerException {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public List getDaysPopularWebsites(int max) throws RollerException {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public List getReferersToEntry(String entryid) throws RollerException {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public void removeReferersForEntry(String entryid) throws RollerException {
+        // TODO Auto-generated method stub
+
+    }
+
+    public void applyRefererFilters() throws RollerException {
+        // TODO Auto-generated method stub
+
+    }
+
+    public void applyRefererFilters(WebsiteData website) throws RollerException {
+        // TODO Auto-generated method stub
+
+    }
+
+    public void clearReferrers() throws RollerException {
+        // TODO Auto-generated method stub
+
+    }
+
+    public void clearReferrers(WebsiteData website) throws RollerException {
+        // TODO Auto-generated method stub
+
+    }
+
+}
\ No newline at end of file

Added: incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDORollerImpl.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDORollerImpl.java?rev=357249&view=auto
==============================================================================
--- incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDORollerImpl.java (added)
+++ incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDORollerImpl.java Fri Dec 16 15:08:30 2005
@@ -0,0 +1,247 @@
+/*
+ * Created on Dec 13, 2005
+ */
+package org.roller.business.jdo;
+
+import java.sql.Connection;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.hibernate.SessionFactory;
+import org.roller.RollerException;
+import org.roller.business.PersistenceStrategy;
+import org.roller.business.utils.UpgradeDatabase;
+import org.roller.model.AutoPingManager;
+import org.roller.model.BookmarkManager;
+import org.roller.model.ConfigManager;
+import org.roller.model.PingQueueManager;
+import org.roller.model.PingTargetManager;
+import org.roller.model.PlanetManager;
+import org.roller.model.PropertiesManager;
+import org.roller.model.RefererManager;
+import org.roller.model.Roller;
+import org.roller.model.UserManager;
+import org.roller.model.WeblogManager;
+import org.roller.pojos.UserData;
+
+/**
+ * Implements Roller, the entry point interface for the Roller business tier
+ * APIs. JDO specific implementation.
+ * 
+ * @author Dave Johnson
+ */
+public class JDORollerImpl extends org.roller.business.RollerImpl {
+    private static Log              mLogger        = LogFactory
+                                                           .getFactory()
+                                                           .getInstance(
+                                                                   JDORollerImpl.class);
+
+    protected BookmarkManager       mBookmarkManager;
+    protected ConfigManager         mConfigManager = null;
+    protected PropertiesManager     mPropsManager  = null;
+    protected PlanetManager         planetManager  = null;
+    protected RefererManager        mRefererManager;
+    protected UserManager           mUserManager;
+    protected WeblogManager         mWeblogManager;
+    protected PingQueueManager      mPingQueueManager;
+    protected AutoPingManager       mAutoPingManager;
+    protected PingTargetManager     mPingTargetManager;
+    protected static JDORollerImpl  me;
+    protected PersistenceStrategy   mStrategy      = null;
+    protected static SessionFactory mSessionFactory;
+
+    protected JDORollerImpl() throws RollerException {
+        mStrategy = new JDOStrategy();
+    }
+
+    public static Roller instantiate() throws RollerException {
+        if (me == null) {
+            me = new JDORollerImpl();
+        }
+
+        return me;
+    }
+
+    public void begin() throws RollerException {
+        mStrategy.begin(UserData.ANONYMOUS_USER);
+    }
+
+    public void begin(UserData user) throws RollerException {
+        mStrategy.begin(user);
+    }
+
+    public UserData getUser() throws RollerException {
+        return mStrategy.getUser();
+    }
+
+    public void setUser(UserData user) throws RollerException {
+        mStrategy.setUser(user);
+    }
+
+    public void commit() throws RollerException {
+        mStrategy.commit();
+    }
+
+    public void rollback() {
+        try {
+            mStrategy.rollback();
+        }
+        catch (Throwable e) {
+            mLogger.error(e);
+        }
+    }
+
+    /**
+     * @see org.roller.model.Roller#getUserManager()
+     */
+    public UserManager getUserManager() throws RollerException {
+        if (mUserManager == null) {
+            mUserManager = new JDOUserManagerImpl(mStrategy);
+        }
+        return mUserManager;
+    }
+
+    /**
+     * @see org.roller.model.Roller#getBookmarkManager()
+     */
+    public BookmarkManager getBookmarkManager() throws RollerException {
+        if (mBookmarkManager == null) {
+            mBookmarkManager = new JDOBookmarkManagerImpl(mStrategy);
+        }
+        return mBookmarkManager;
+    }
+
+    /**
+     * @see org.roller.model.Roller#getWeblogManager()
+     */
+    public WeblogManager getWeblogManager() throws RollerException {
+        if (mWeblogManager == null) {
+            mWeblogManager = new JDOWeblogManagerImpl(mStrategy);
+        }
+        return mWeblogManager;
+    }
+
+    /**
+     * @see org.roller.model.Roller#getRefererManager()
+     */
+    public RefererManager getRefererManager() throws RollerException {
+        if (mRefererManager == null) {
+            mRefererManager = new JDORefererManagerImpl();
+        }
+        return mRefererManager;
+    }
+
+    /**
+     * @see org.roller.model.Roller#getConfigManager()
+     */
+    public ConfigManager getConfigManager() throws RollerException {
+        if (mConfigManager == null) {
+            mConfigManager = new JDOConfigManagerImpl(mStrategy);
+        }
+        return mConfigManager;
+    }
+
+    /**
+     * @see org.roller.model.Roller#getPropertiesManager()
+     */
+    public PropertiesManager getPropertiesManager() throws RollerException {
+        if (mPropsManager == null) {
+            mPropsManager = new JDOPropertiesManagerImpl(mStrategy);
+        }
+        return mPropsManager;
+    }
+
+    /**
+     * @see org.roller.model.Roller#getPingTargetManager()
+     */
+    public PingQueueManager getPingQueueManager() throws RollerException {
+        if (mPingQueueManager == null) {
+            mPingQueueManager = new JDOPingQueueManagerImpl(mStrategy);
+        }
+        return mPingQueueManager;
+    }
+
+    /**
+     * @see org.roller.model.Roller#getPlanetManager()
+     */
+    public PlanetManager getPlanetManager() throws RollerException {
+        if (planetManager == null) {
+            planetManager = new JDOPlanetManagerImpl(mStrategy, this);
+        }
+        return planetManager;
+    }
+
+    /**
+     * @see org.roller.model.Roller#getPingTargetManager()
+     */
+    public AutoPingManager getAutopingManager() throws RollerException {
+        if (mAutoPingManager == null) {
+            mAutoPingManager = new JDOAutoPingManagerImpl(mStrategy);
+        }
+        return mAutoPingManager;
+    }
+
+    /**
+     * @see org.roller.model.Roller#getPingTargetManager()
+     */
+    public PingTargetManager getPingTargetManager() throws RollerException {
+        if (mPingTargetManager == null) {
+            mPingTargetManager = new JDOPingTargetManagerImpl(mStrategy);
+        }
+        return mPingTargetManager;
+    }
+
+    /**
+     * @see org.roller.model.Roller#getPersistenceStrategy()
+     */
+    public PersistenceStrategy getPersistenceStrategy() {
+        return mStrategy;
+    }
+
+    /**
+     * @see org.roller.model.Roller#upgradeDatabase(java.sql.Connection)
+     */
+    public void upgradeDatabase(Connection con) throws RollerException {
+        UpgradeDatabase.upgradeDatabase(con);
+    }
+
+    public void release() {
+        super.release();
+
+        if (mBookmarkManager != null)
+            mBookmarkManager.release();
+        if (mConfigManager != null)
+            mConfigManager.release();
+        if (mRefererManager != null)
+            mRefererManager.release();
+        if (mUserManager != null)
+            mUserManager.release();
+        if (mWeblogManager != null)
+            mWeblogManager.release();
+        if (mPingTargetManager != null)
+            mPingTargetManager.release();
+        if (mPingQueueManager != null)
+            mPingQueueManager.release();
+        if (mAutoPingManager != null)
+            mAutoPingManager.release();
+
+        try {
+            if (mStrategy != null)
+                mStrategy.release();
+        }
+        catch (Throwable e) {
+            mLogger.error("Exception with mSupport.release() [" + e + "]", e);
+        }
+    }
+
+    public void shutdown() {
+        super.shutdown();
+
+        try {
+            release();
+        }
+        catch (Exception e) {
+            mLogger.error("Unable to close SessionFactory", e);
+        }
+    }
+}
\ No newline at end of file

Added: incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOStrategy.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOStrategy.java?rev=357249&view=auto
==============================================================================
--- incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOStrategy.java (added)
+++ incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOStrategy.java Fri Dec 16 15:08:30 2005
@@ -0,0 +1,178 @@
+/*
+ * Created on Dec 13, 2005
+ */
+package org.roller.business.jdo;
+
+import java.util.List;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.roller.RollerException;
+import org.roller.business.PersistenceStrategy;
+import org.roller.model.PersistenceSession;
+import org.roller.pojos.PersistentObject;
+import org.roller.pojos.UserData;
+
+///////////////////////////////////////////////////////////////////////////////
+/**
+ * @author Dave Johnson
+ */
+public class JDOStrategy implements PersistenceStrategy {
+    private static final ThreadLocal mSessionTLS = new ThreadLocal();
+
+    private static Log               mLogger     = LogFactory
+                                                         .getFactory()
+                                                         .getInstance(
+                                                                 JDOStrategy.class);
+
+    //-------------------------------------------------------------------------
+    /**
+     * Construct using Hibernate Session Factory.
+     */
+    public JDOStrategy() throws RollerException {
+    }
+
+    //-------------------------------------------------------------------------
+    /**
+     * Start new Roller persistence session on current thread.
+     */
+    public void begin(UserData user) throws RollerException {
+        getPersistenceSession(user, true); // force create of new session
+    }
+
+    //-------------------------------------------------------------------------
+    /**
+     * Start new Roller persistence session on current thread.
+     */
+    public void setUser(UserData user) throws RollerException {
+        PersistenceSession pses = getPersistenceSession(user, false);
+        pses.setUser(user);
+    }
+
+    //-------------------------------------------------------------------------
+    /**
+     * Start new Roller persistence session on current thread.
+     */
+    public UserData getUser() throws RollerException {
+        PersistenceSession pses = getPersistenceSession(null, false);
+        return pses.getUser();
+    }
+
+    //-------------------------------------------------------------------------
+    /**
+     * Get existing persistence session on current thread.
+     */
+    public Object getSession() throws RollerException {
+        return (getPersistenceSession(UserData.ANONYMOUS_USER, false)
+                .getSessionObject());
+    }
+
+    //-------------------------------------------------------------------------
+    /**
+     * Get existing or open new persistence session for current thread
+     * 
+     * @param createNew
+     *            True if existing session on thread is an warn condition.
+     */
+    public PersistenceSession getPersistenceSession(UserData user,
+            boolean createNew) throws RollerException {
+        return null;
+    }
+
+    //-------------------------------------------------------------------------
+    /**
+     * This is called on error to start a new Hibernate session. Gavin: "make
+     * sure you never catch + handle an exception and then keep using the
+     * session (ObjectNotFoundException included!)
+     */
+    private void newSession() throws RollerException {
+        PersistenceSession pses = getPersistenceSession(null, false);
+        UserData user = pses.getUser();
+        release();
+        getPersistenceSession(user, true);
+    }
+
+    //-------------------------------------------------------------------------
+    /**
+     * Release database session, rolls back any uncommitted changes.
+     */
+    public void release() throws RollerException {
+    }
+
+    //-------------------------------------------------------------------------
+    /**
+     * Remove object from persistence storage.
+     * 
+     * @param clazz
+     *            Class of object to remove.
+     * @param id
+     *            Id of object to remove.
+     * @throws RollerException
+     *             Error deleting object.
+     */
+    public void remove(String id, Class clazz) throws RollerException {
+    }
+
+    //-------------------------------------------------------------------------
+    /**
+     * Remove object from persistence storage.
+     */
+    public void remove(PersistentObject po) throws RollerException {
+    }
+
+    //-------------------------------------------------------------------------
+    /**
+     * Retrieve object, begins and ends its own transaction.
+     * 
+     * @param clazz
+     *            Class of object to retrieve.
+     * @param id
+     *            Id of object to retrieve.
+     * @return Object Object retrieved.
+     * @throws RollerException
+     *             Error retrieving object.
+     */
+    public PersistentObject load(String id, Class clazz) throws RollerException {
+        return null;
+    }
+
+    //-------------------------------------------------------------------------
+    /**
+     * Store object using an existing transaction.
+     */
+    public PersistentObject store(PersistentObject obj) throws RollerException {
+        return null;
+    }
+
+    //-------------------------------------------------------------------------
+    /**
+     * Execute query
+     */
+    public List query(String query, Object[] args, Object[] types)
+            throws RollerException {
+        return query(query, args, types);
+    }
+
+    //-------------------------------------------------------------------------
+    /**
+     * Execute Hibernate HSQL query
+     */
+    public List query(String query) throws RollerException {
+        return null;
+    }
+
+    //-------------------------------------------------------------------------
+    /**
+     * Commits current transaction, if there is one, does not release session.
+     */
+    public void commit() throws RollerException {
+    }
+
+    //-------------------------------------------------------------------------
+    /**
+     * Rollback uncommitted changes, does not release session.
+     */
+    public void rollback() throws RollerException {
+    }
+}
+

Added: incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOUserManagerImpl.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOUserManagerImpl.java?rev=357249&view=auto
==============================================================================
--- incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOUserManagerImpl.java (added)
+++ incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOUserManagerImpl.java Fri Dec 16 15:08:30 2005
@@ -0,0 +1,156 @@
+/*
+ * Created on Dec 13, 2005
+ */
+package org.roller.business.jdo;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.roller.RollerException;
+import org.roller.business.PersistenceStrategy;
+import org.roller.business.UserManagerImpl;
+import org.roller.model.AutoPingManager;
+import org.roller.model.BookmarkManager;
+import org.roller.model.PingQueueManager;
+import org.roller.model.PingTargetManager;
+import org.roller.model.RollerFactory;
+import org.roller.model.WeblogManager;
+import org.roller.pojos.FolderData;
+import org.roller.pojos.WeblogTemplate;
+import org.roller.pojos.PermissionsData;
+import org.roller.pojos.RefererData;
+import org.roller.pojos.RoleData;
+import org.roller.pojos.UserData;
+import org.roller.pojos.WeblogCategoryData;
+import org.roller.pojos.WeblogEntryData;
+import org.roller.pojos.WebsiteData;
+
+/**
+ * @author Dave Johnson
+ */
+public class JDOUserManagerImpl extends UserManagerImpl {
+    public JDOUserManagerImpl(PersistenceStrategy strategy) {
+        super(strategy);
+    }
+
+    /**
+     * Get websites of a user
+     */
+    public List getWebsites(UserData user, Boolean enabled)
+            throws RollerException {
+        return null;
+    }
+
+    /**
+     * Get users of a website
+     */
+    public List getUsers(WebsiteData website, Boolean enabled)
+            throws RollerException {
+        return null;
+    }
+
+    /**
+     * Use Hibernate directly because Roller's Query API does too much
+     * allocation.
+     */
+    public WeblogTemplate getPageByLink(WebsiteData website, String pagelink)
+            throws RollerException {
+        return null;
+    }
+
+    /**
+     * Return website specified by handle.
+     */
+    public WebsiteData getWebsiteByHandle(String handle, Boolean enabled)
+            throws RollerException {
+        return null;
+    }
+
+    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+    public UserData getUser(String userName, Boolean enabled)
+            throws RollerException {
+        return null;
+    }
+
+    //------------------------------------------------------------------------
+    /**
+     * @see org.roller.model.UserManager#getPages(WebsiteData)
+     */
+    public List getPages(WebsiteData website) throws RollerException {
+        return null;
+    }
+
+    /**
+     * @see org.roller.model.UserManager#getPageByName(WebsiteData,
+     *      java.lang.String)
+     */
+    public WeblogTemplate getPageByName(WebsiteData website, String pagename)
+            throws RollerException {
+        return null;
+    }
+
+    /*
+     * @see org.roller.business.UserManagerBase#getRoles(org.roller.pojos.UserData)
+     */
+    public List getUserRoles(UserData user) throws RollerException {
+        return null;
+    }
+
+    public List getUsers(Boolean enabled) throws RollerException {
+        return null;
+    }
+
+    /**
+     * @see org.roller.model.UserManager#removeWebsiteContents(org.roller.pojos.WebsiteData)
+     */
+    public void removeWebsiteContents(WebsiteData website)
+            throws RollerException {
+    }
+
+    /**
+     * Return permissions for specified user in website
+     */
+    public PermissionsData getPermissions(WebsiteData website, UserData user)
+            throws RollerException {
+        return null;
+    }
+
+    /**
+     * Get pending permissions for user
+     */
+    public List getPendingPermissions(UserData user) throws RollerException {
+        return null;
+    }
+
+    /**
+     * Get pending permissions for website
+     */
+    public List getPendingPermissions(WebsiteData website)
+            throws RollerException {
+        return null;
+    }
+
+    /**
+     * Get all permissions of a website (pendings not including)
+     */
+    public List getAllPermissions(WebsiteData website) throws RollerException {
+        return null;
+    }
+
+    /**
+     * Get all permissions of a user.
+     */
+    public List getAllPermissions(UserData user) throws RollerException {
+        return null;
+    }
+
+    public List getUsersStartingWith(String startsWith, int offset, int length,
+            Boolean enabled) throws RollerException {
+        return null;
+    }
+}
+

Added: incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOWeblogManagerImpl.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOWeblogManagerImpl.java?rev=357249&view=auto
==============================================================================
--- incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOWeblogManagerImpl.java (added)
+++ incubator/roller/trunk/sandbox/jdobackend/src/org/roller/business/jdo/JDOWeblogManagerImpl.java Fri Dec 16 15:08:30 2005
@@ -0,0 +1,137 @@
+package org.roller.business.jdo;
+
+import java.util.Date;
+import java.util.List;
+
+import org.roller.RollerException;
+import org.roller.business.PersistenceStrategy;
+import org.roller.business.WeblogManagerImpl;
+import org.roller.pojos.Assoc;
+import org.roller.pojos.WeblogCategoryData;
+import org.roller.pojos.WeblogEntryData;
+import org.roller.pojos.WebsiteData;
+
+/**
+ * @author Dave Johnson
+ */
+public class JDOWeblogManagerImpl extends WeblogManagerImpl {
+
+    public JDOWeblogManagerImpl(PersistenceStrategy strategy) {
+        super(strategy);
+        // TODO Auto-generated constructor stub
+    }
+
+    public List getWeblogEntries(WebsiteData website, Date startDate,
+            Date endDate, String catName, String status, Integer maxEntries,
+            Boolean pinned) throws RollerException {
+
+        return null;
+    }
+
+    public List getNextPrevEntries(WeblogEntryData current, String catName,
+            int maxEntries, boolean next) throws RollerException {
+
+        return null;
+    }
+
+    public void moveWeblogCategoryContents(String srcId, String destId)
+            throws RollerException {
+
+    }
+
+    public List getWeblogCategories(WebsiteData website) throws RollerException {
+
+        return null;
+    }
+
+    public List getWeblogCategories(WebsiteData website, boolean includeRoot)
+            throws RollerException {
+
+        return null;
+    }
+
+    public WeblogCategoryData getRootWeblogCategory(WebsiteData website)
+            throws RollerException {
+
+        return null;
+    }
+
+    public List getComments(WebsiteData website, WeblogEntryData entry,
+            String searchString, Date startDate, Date endDate, Boolean pending,
+            Boolean approved, Boolean spam, boolean reverseChrono, int offset,
+            int length) throws RollerException {
+
+        return null;
+    }
+
+    public List retrieveWeblogEntries(WeblogCategoryData cat, boolean subcats)
+            throws RollerException {
+
+        return null;
+    }
+
+    public WeblogEntryData getWeblogEntryByAnchor(WebsiteData website,
+            String anchor) throws RollerException {
+
+        return null;
+    }
+
+    public Date getWeblogLastPublishTime(WebsiteData website, String catName)
+            throws RollerException {
+
+        return null;
+    }
+
+    public void removeWeblogEntryContents(WeblogEntryData data)
+            throws RollerException {
+
+    }
+
+    public String createAnchor(WeblogEntryData data) throws RollerException {
+
+        return null;
+    }
+
+    public boolean isDuplicateWeblogCategoryName(WeblogCategoryData data)
+            throws RollerException {
+
+        return false;
+    }
+
+    public boolean isWeblogCategoryInUse(WeblogCategoryData data)
+            throws RollerException {
+
+        return false;
+    }
+
+    public boolean isDescendentOf(WeblogCategoryData child,
+            WeblogCategoryData ancestor) throws RollerException {
+
+        return false;
+    }
+
+    public Assoc getWeblogCategoryParentAssoc(WeblogCategoryData data)
+            throws RollerException {
+
+        return null;
+    }
+
+    public List getWeblogCategoryChildAssocs(WeblogCategoryData data)
+            throws RollerException {
+
+        return null;
+    }
+
+    public List getAllWeblogCategoryDecscendentAssocs(WeblogCategoryData data)
+            throws RollerException {
+
+        return null;
+    }
+
+    public List getWeblogCategoryAncestorAssocs(WeblogCategoryData data)
+            throws RollerException {
+
+        return null;
+    }
+
+}
\ No newline at end of file