You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by gm...@apache.org on 2014/03/09 16:39:34 UTC

svn commit: r1575713 - in /roller/trunk/app/src: main/java/org/apache/roller/weblogger/ main/java/org/apache/roller/weblogger/business/ main/java/org/apache/roller/weblogger/business/jpa/ main/java/org/apache/roller/weblogger/business/pings/ main/java/...

Author: gmazza
Date: Sun Mar  9 15:39:33 2014
New Revision: 1575713

URL: http://svn.apache.org/r1575713
Log:
Removed usage of bookmark folder's parent column, all folders now top-level; root folder now called default one; still need to implement folder delete/rename.

Removed:
    roller/trunk/app/src/test/java/org/apache/roller/weblogger/business/FolderParentDeletesTest.java
Modified:
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/TestUtils.java
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/BookmarkManager.java
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPABookmarkManagerImpl.java
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAPingTargetManagerImpl.java
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAWeblogManagerImpl.java
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/pings/PingTargetManager.java
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/BookmarkPlugin.java
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/TopicTagPlugin.java
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/WeblogBookmark.java
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/WeblogBookmarkFolder.java
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/wrapper/WeblogBookmarkFolderWrapper.java
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/SiteWideCache.java
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Bookmarks.java
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/FolderAdd.java
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/FolderEdit.java
    roller/trunk/app/src/main/resources/ApplicationResources.properties
    roller/trunk/app/src/main/resources/org/apache/roller/weblogger/pojos/Weblog.orm.xml
    roller/trunk/app/src/main/resources/org/apache/roller/weblogger/pojos/WeblogBookmarkFolder.orm.xml
    roller/trunk/app/src/main/resources/sql/500-to-510-migration.vm
    roller/trunk/app/src/main/resources/sql/createdb.vm
    roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/Bookmarks.jsp
    roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/FolderAdd.jsp
    roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/FolderEdit.jsp
    roller/trunk/app/src/main/webapp/WEB-INF/velocity/weblog.vm
    roller/trunk/app/src/main/webapp/themes/basic/sidebar.vm
    roller/trunk/app/src/main/webapp/themes/brushedmetal/sidebar.vm
    roller/trunk/app/src/main/webapp/themes/sotto/sidebar.vm
    roller/trunk/app/src/test/java/org/apache/roller/weblogger/business/BookmarkTest.java
    roller/trunk/app/src/test/java/org/apache/roller/weblogger/business/FolderCRUDTest.java
    roller/trunk/app/src/test/java/org/apache/roller/weblogger/business/FolderFunctionalityTest.java

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/TestUtils.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/TestUtils.java?rev=1575713&r1=1575712&r2=1575713&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/TestUtils.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/TestUtils.java Sun Mar  9 15:39:33 2014
@@ -610,20 +610,13 @@ public final class TestUtils {
     /**
      * Convenience method for creating a weblog folder.
      */
-    public static WeblogBookmarkFolder setupFolder(Weblog weblog, String name,
-            WeblogBookmarkFolder parent) throws Exception {
+    public static WeblogBookmarkFolder setupFolder(Weblog weblog, String name) throws Exception {
 
         BookmarkManager mgr = WebloggerFactory.getWeblogger()
                 .getBookmarkManager();
 
-        WeblogBookmarkFolder folderParent;
-        if (parent != null) {
-            folderParent = parent;
-        } else {
-            folderParent = mgr.getRootFolder(weblog);
-        }
         WeblogBookmarkFolder testFolder = new WeblogBookmarkFolder(
-                folderParent, name, null, weblog);
+                name, null, weblog);
         mgr.saveFolder(testFolder);
 
         // flush to db

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/BookmarkManager.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/BookmarkManager.java?rev=1575713&r1=1575712&r2=1575713&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/BookmarkManager.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/BookmarkManager.java Sun Mar  9 15:39:33 2014
@@ -76,18 +76,17 @@ public interface BookmarkManager {
     
     
     /** 
-     * Get root folder for a weblog.  
-     * All weblogs should have only 1 root folder.
+     * Get the weblog's default folder
      *
-     * @param weblog The weblog we want the root folder from.
-     * @return FolderData The root folder, or null if not found.
-     * @throws WebloggerException If there is a problem.
+     * @param weblog The weblog we want the default folder from.
+     * @return FolderData The default folder
+     * @throws WebloggerException If the default folder was not found
      */
-    WeblogBookmarkFolder getRootFolder(Weblog weblog) throws WebloggerException;
+    WeblogBookmarkFolder getDefaultFolder(Weblog weblog) throws WebloggerException;
     
     
     /** 
-     * Get a folder from a weblog based on its path.
+     * Get a folder from a weblog based on its name.
      *
      * @param weblog The weblog we want the folder from.
      * @param name The folder name.

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPABookmarkManagerImpl.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPABookmarkManagerImpl.java?rev=1575713&r1=1575712&r2=1575713&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPABookmarkManagerImpl.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPABookmarkManagerImpl.java Sun Mar  9 15:39:33 2014
@@ -102,35 +102,25 @@ public class JPABookmarkManagerImpl impl
             if (isDuplicateFolderName(folder)) {
                 throw new WebloggerException("Duplicate folder name");
             }
-
-            // And If it has a parent, maintain relationship from both sides
-            WeblogBookmarkFolder parent = folder.getParent();
-            if(parent != null) {
-                parent.getFolders().add(folder);
-            }
         }
 
         this.strategy.store(folder);
 
-        // update weblog last modified date.  date updated by saveWebsite()
-        roller.getWeblogManager().saveWeblog(folder.getWebsite());
+        // update weblog last modified date.  date updated by saveWeblog()
+        roller.getWeblogManager().saveWeblog(folder.getWeblog());
     }
 
     public void removeFolder(WeblogBookmarkFolder folder) throws WebloggerException {
-        WeblogBookmarkFolder parent = folder.getParent();
-        if (parent != null) {
-            parent.getFolders().remove(folder);
-        }
-        String websiteid = folder.getWebsite().getId();
+        Weblog weblog = folder.getWeblog();
+        weblog.getBookmarkFolders().remove(folder);
         this.strategy.remove(folder);
 
-        // update weblog last modified date.  date updated by saveWebsite()
-        Weblog weblog = roller.getWeblogManager().getWeblog(websiteid);
+        // update weblog last modified date.  date updated by saveWeblog()
         roller.getWeblogManager().saveWeblog(weblog);
     }
 
     /**
-     * Retrieve folder and lazy-load it's sub-folders and bookmarks.
+     * Retrieve folder and lazy-load its bookmarks.
      */
     public WeblogBookmarkFolder getFolder(String id) throws WebloggerException {
         return (WeblogBookmarkFolder) strategy.load(WeblogBookmarkFolder.class, id);
@@ -150,8 +140,7 @@ public class JPABookmarkManagerImpl impl
             WeblogBookmarkFolder newFolder = getFolder(website, folderName);
             if (newFolder == null) {
                 newFolder = new WeblogBookmarkFolder(
-                        getRootFolder(website), 
-                        folderName, folderName, website);
+                        folderName, null, website);
                 this.strategy.store(newFolder);
             }
 
@@ -224,10 +213,9 @@ public class JPABookmarkManagerImpl impl
         } else {
             // Store a folder
             WeblogBookmarkFolder fd = new WeblogBookmarkFolder(
-                    parent,
                     title,
                     desc,
-                    parent.getWebsite());
+                    parent.getWeblog());
             this.strategy.store(fd);
 
             // Import folder's children
@@ -237,26 +225,6 @@ public class JPABookmarkManagerImpl impl
         }
     }
 
-
-    public WeblogBookmarkFolder getFolder(Weblog website, String name)
-            throws WebloggerException {
-
-        if (name == null) {
-            return getRootFolder(website);
-        } else {
-
-            // now just do simple lookup by name
-            Query query = strategy.getNamedQuery("WeblogBookmarkFolder.getByWebsite&Name");
-            query.setParameter(1, website);
-            query.setParameter(2, name);
-            try {
-                return (WeblogBookmarkFolder)query.getSingleResult();
-            } catch (NoResultException e) {
-                return null;
-            }
-        }
-    }
-
     /**
      * @see org.apache.roller.weblogger.business.BookmarkManager#getBookmarks(
      *      org.apache.roller.weblogger.pojos.WeblogBookmarkFolder)
@@ -273,14 +241,30 @@ public class JPABookmarkManagerImpl impl
         return results;
     }
 
-    public WeblogBookmarkFolder getRootFolder(Weblog website)
+    public WeblogBookmarkFolder getFolder(Weblog website, String name)
             throws WebloggerException {
-        if (website == null) {
-            throw new WebloggerException("website is null");
+
+        // Do simple lookup by name
+        Query query = strategy.getNamedQuery("WeblogBookmarkFolder.getByWebsite&Name");
+        query.setParameter(1, website);
+        query.setParameter(2, name);
+        try {
+            return (WeblogBookmarkFolder) query.getSingleResult();
+        } catch (NoResultException e) {
+            return null;
+        }
+    }
+
+    public WeblogBookmarkFolder getDefaultFolder(Weblog weblog)
+            throws WebloggerException {
+
+        if (weblog == null) {
+            throw new WebloggerException("weblog is null");
         }
         
-        Query q = strategy.getNamedQuery("WeblogBookmarkFolder.getByWebsite&ParentNull");
-        q.setParameter(1, website);
+        Query q = strategy.getNamedQuery("WeblogBookmarkFolder.getByWebsite&Name");
+        q.setParameter(1, weblog);
+        q.setParameter(2, "default");
         try {
             return (WeblogBookmarkFolder)q.getSingleResult();
         } catch (NoResultException e) {
@@ -306,12 +290,8 @@ public class JPABookmarkManagerImpl impl
     private boolean isDuplicateFolderName(WeblogBookmarkFolder folder) 
         throws WebloggerException {
 
-        // ensure that no sibling categories share the same name
-        WeblogBookmarkFolder parent = folder.getParent();
-        if (null != parent) {
-            return (getFolder(folder.getWebsite(), folder.getName()) != null);
-        }
-        return false;
+        // ensure that no sibling folders share the same name
+        return getFolder(folder.getWeblog(), folder.getName()) != null;
     }
 
 

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAPingTargetManagerImpl.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAPingTargetManagerImpl.java?rev=1575713&r1=1575712&r2=1575713&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAPingTargetManagerImpl.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAPingTargetManagerImpl.java Sun Mar  9 15:39:33 2014
@@ -28,7 +28,6 @@ import javax.persistence.Query;
 import org.apache.roller.weblogger.WebloggerException;
 import org.apache.roller.weblogger.business.pings.PingTargetManager;
 import org.apache.roller.weblogger.pojos.PingTarget;
-import org.apache.roller.weblogger.pojos.Weblog;
 
 /*
  * JPAPingTargetManagerImpl.java

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAWeblogManagerImpl.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAWeblogManagerImpl.java?rev=1575713&r1=1575712&r2=1575713&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAWeblogManagerImpl.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAWeblogManagerImpl.java Sun Mar  9 15:39:33 2014
@@ -193,11 +193,12 @@ public class JPAWeblogManagerImpl implem
         }
         
         // remove folders (including bookmarks)
-        WeblogBookmarkFolder rootFolder = bmgr.getRootFolder(website);
-        if (null != rootFolder) {
-            this.strategy.remove(rootFolder);
+        Query folderQuery = strategy.getNamedQuery("WeblogBookmarkFolder.getByWebsite");
+        folderQuery.setParameter(1, website);
+        List<WeblogBookmarkFolder> folders = pageQuery.getResultList();
+        for (WeblogBookmarkFolder wbf : folders) {
+            this.strategy.remove(wbf);
         }
-        this.strategy.flush();
 
         // remove mediafile metadata
         // remove uploaded files
@@ -313,7 +314,7 @@ public class JPAWeblogManagerImpl implem
 
         // add default bookmarks
         WeblogBookmarkFolder root = new WeblogBookmarkFolder(
-                null, "root", "root", newWeblog);
+                "default", null, newWeblog);
         this.strategy.store(root);
         
         Integer zero = 0;

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/pings/PingTargetManager.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/pings/PingTargetManager.java?rev=1575713&r1=1575712&r2=1575713&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/pings/PingTargetManager.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/pings/PingTargetManager.java Sun Mar  9 15:39:33 2014
@@ -21,7 +21,6 @@ package org.apache.roller.weblogger.busi
 import java.util.List;
 import org.apache.roller.weblogger.WebloggerException;
 import org.apache.roller.weblogger.pojos.PingTarget;
-import org.apache.roller.weblogger.pojos.Weblog;
 
 
 /**

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/BookmarkPlugin.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/BookmarkPlugin.java?rev=1575713&r1=1575712&r2=1575713&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/BookmarkPlugin.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/BookmarkPlugin.java Sun Mar  9 15:39:33 2014
@@ -69,9 +69,8 @@ public class BookmarkPlugin implements W
         String text = str;
         try {
             BookmarkManager bMgr = WebloggerFactory.getWeblogger().getBookmarkManager();
-            WeblogBookmarkFolder rootFolder = bMgr.getRootFolder(entry.getWebsite());
-            text = matchBookmarks(text, rootFolder);
-            text = lookInFolders(text, rootFolder.getFolders());
+            WeblogBookmarkFolder defaultFolder = bMgr.getDefaultFolder(entry.getWebsite());
+            text = lookInFolders(text, entry.getWebsite().getBookmarkFolders());
         } catch (WebloggerException e) {
             // nothing much I can do, go with default "Weblog" value
             // could be WebloggerException or NullPointerException
@@ -82,23 +81,16 @@ public class BookmarkPlugin implements W
     
     
     /**
-     * Recursively travel down Folder tree, attempting
-     * to match up Bookmarks in each Folder.
+     * Travel given collection of folders, attempting to match up Bookmarks in each one.
      *
      * @param text
      * @param folders
      * @return
      */
     private String lookInFolders(String text, Collection<WeblogBookmarkFolder> folders) {
-        
         for (WeblogBookmarkFolder folder: folders) {
             text = matchBookmarks(text, folder);
-
-            if (!folder.getFolders().isEmpty()) {
-                lookInFolders(text, folder.getFolders());
-            }
         }
-
         return text;
     }
     

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/TopicTagPlugin.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/TopicTagPlugin.java?rev=1575713&r1=1575712&r2=1575713&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/TopicTagPlugin.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/TopicTagPlugin.java Sun Mar  9 15:39:33 2014
@@ -311,7 +311,7 @@ public class TopicTagPlugin implements W
         }
         else {
             BookmarkManager bMgr = WebloggerFactory.getWeblogger().getBookmarkManager();
-            List<WeblogBookmark> bookmarks = bMgr.getBookmarks(bMgr.getRootFolder(website));
+            List<WeblogBookmark> bookmarks = bMgr.getBookmarks(bMgr.getDefaultFolder(website));
 
             for (WeblogBookmark b : bookmarks) {
                 bookmarkMap.put(b.getName(), b);

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java?rev=1575713&r1=1575712&r2=1575713&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java Sun Mar  9 15:39:33 2014
@@ -94,25 +94,9 @@ public class Weblog implements Serializa
 
     private List<WeblogCategory> weblogCategories = new ArrayList<WeblogCategory>();
 
+    private List<WeblogBookmarkFolder> bookmarkFolders = new ArrayList<WeblogBookmarkFolder>();
 
-    public List<WeblogCategory> getWeblogCategories() {
-        return weblogCategories;
-    }
-
-    public void setWeblogCategories(List<WeblogCategory> cats) {
-        this.weblogCategories = cats;
-    }
-
-    public boolean hasCategory(String name) {
-        for (WeblogCategory cat : getWeblogCategories()) {
-            if(name.equals(cat.getName())) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    public Weblog() {    
+    public Weblog() {
     }
     
     public Weblog(
@@ -890,7 +874,7 @@ public class Weblog implements Serializa
             Weblogger roller = WebloggerFactory.getWeblogger();
             BookmarkManager bmgr = roller.getBookmarkManager();
             if (folderName == null || folderName.equals("nil") || folderName.trim().equals("/")) {
-                return bmgr.getRootFolder(this);
+                return bmgr.getDefaultFolder(this);
             } else {
                 return bmgr.getFolder(this, folderName);
             }
@@ -1020,4 +1004,62 @@ public class Weblog implements Serializa
         getWeblogCategories().add(category);
     }
 
+    public List<WeblogCategory> getWeblogCategories() {
+        return weblogCategories;
+    }
+
+    public void setWeblogCategories(List<WeblogCategory> cats) {
+        this.weblogCategories = cats;
+    }
+
+    public boolean hasCategory(String name) {
+        for (WeblogCategory cat : getWeblogCategories()) {
+            if(name.equals(cat.getName())) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    public List<WeblogBookmarkFolder> getBookmarkFolders() {
+        return bookmarkFolders;
+    }
+
+    public void setBookmarkFolders(List<WeblogBookmarkFolder> bookmarkFolders) {
+        this.bookmarkFolders = bookmarkFolders;
+    }
+
+    /**
+     * Add a bookmark folder to this weblog.
+     */
+    public void addBookmarkFolder(WeblogBookmarkFolder folder) {
+
+        // make sure folder is not null
+        if(folder == null || folder.getName() == null) {
+            throw new IllegalArgumentException("Folder cannot be null and must have a valid name");
+        }
+
+        // make sure we don't already have a folder with that name
+        if(this.hasBookmarkFolder(folder.getName())) {
+            throw new IllegalArgumentException("Duplicate folder name '" + folder.getName() + "'");
+        }
+
+        // add it to our list of child folder
+        getBookmarkFolders().add(folder);
+    }
+
+    /**
+     * Does this Weblog have a bookmark folder with the specified name?
+     *
+     * @param name The name of the folder to check for.
+     * @return boolean true if exists, false otherwise.
+     */
+    public boolean hasBookmarkFolder(String name) {
+        for (WeblogBookmarkFolder folder : this.getBookmarkFolders()) {
+            if(name.equals(folder.getName())) {
+                return true;
+            }
+        }
+        return false;
+    }
 }

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/WeblogBookmark.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/WeblogBookmark.java?rev=1575713&r1=1575712&r2=1575713&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/WeblogBookmark.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/WeblogBookmark.java Sun Mar  9 15:39:33 2014
@@ -203,7 +203,7 @@ public class WeblogBookmark implements S
     private BookmarkComparator bookmarkComparator = new BookmarkComparator();
     
     public Weblog getWebsite() {
-        return getFolder().getWebsite();
+        return getFolder().getWeblog();
     }
     
 }

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/WeblogBookmarkFolder.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/WeblogBookmarkFolder.java?rev=1575713&r1=1575712&r2=1575713&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/WeblogBookmarkFolder.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/WeblogBookmarkFolder.java Sun Mar  9 15:39:33 2014
@@ -34,27 +34,22 @@ import org.apache.roller.util.UUIDGenera
 
 
 /**
- * <p>Folder that holds Bookmarks and other Folders. A Roller Website has a
- * set of Folders (there is no one root folder) and each Folder may contain
- * Folders or Bookmarks. Don't construct one of these yourself, instead use
- * the create method in your BookmarkManager implementation.</p>
+ * <p>Folder that holds Bookmarks. A Roller Weblog has one or more Folders
+ * with one folder permanently labeled default.</p>
  */
 public class WeblogBookmarkFolder implements Serializable, Comparable<WeblogBookmarkFolder> {
     
     public static final long serialVersionUID = -6272468884763861944L;
     
     private static Log log = LogFactory.getLog(WeblogBookmarkFolder.class);
-    
-    
+
     // attributes
     private String id = UUIDGenerator.generateUUID();
     private String name = null;
     private String description = null;
 
     // associations
-    private Weblog website = null;
-    private WeblogBookmarkFolder parentFolder = null;
-    private Set<WeblogBookmarkFolder> childFolders = new TreeSet<WeblogBookmarkFolder>();
+    private Weblog weblog = null;
     private Set<WeblogBookmark> bookmarks = new TreeSet<WeblogBookmark>();
     
     
@@ -62,16 +57,14 @@ public class WeblogBookmarkFolder implem
     }
     
     public WeblogBookmarkFolder(
-            WeblogBookmarkFolder parent,
             String name,
             String desc,
-            Weblog website) {
+            Weblog weblog) {
         
         this.name = name;
         this.description = desc;
-        
-        this.website = website;
-        this.parentFolder = parent;
+        this.weblog = weblog;
+        weblog.addBookmarkFolder(this);
     }
     
         
@@ -96,7 +89,7 @@ public class WeblogBookmarkFolder implem
             WeblogBookmarkFolder o = (WeblogBookmarkFolder) other;
             return new EqualsBuilder()
                 .append(getName(), o.getName())
-                .append(getWebsite(), o.getWebsite())
+                .append(getWeblog(), o.getWeblog())
                 .isEquals();
         }
         
@@ -107,7 +100,7 @@ public class WeblogBookmarkFolder implem
     public int hashCode() {
         return new HashCodeBuilder()
             .append(getName())
-            .append(getWebsite())
+            .append(getWeblog())
             .toHashCode();
     }
     
@@ -161,39 +154,15 @@ public class WeblogBookmarkFolder implem
     /**
      * Get the weblog which owns this folder.
      */
-    public Weblog getWebsite() {
-        return website;
+    public Weblog getWeblog() {
+        return weblog;
     }
     
-    public void setWebsite( Weblog website ) {
-        this.website = website;
+    public void setWeblog( Weblog website ) {
+        this.weblog = website;
     }
 
     /**
-     * Return parent folder, or null if folder is root of hierarchy.
-     */
-    public WeblogBookmarkFolder getParent() {
-        return this.parentFolder;
-    }
-    
-    public void setParent(WeblogBookmarkFolder parent) {
-        this.parentFolder = parent;
-    }
-    
-    
-    /**
-     * Get child folders of this folder.
-     */
-    public Set<WeblogBookmarkFolder> getFolders() {
-        return this.childFolders;
-    }
-    
-    private void setFolders(Set<WeblogBookmarkFolder> folders) {
-        this.childFolders = folders;
-    }
-    
-    
-    /**
      * Get bookmarks contained in this folder.
      */
     public Set<WeblogBookmark> getBookmarks() {
@@ -204,31 +173,7 @@ public class WeblogBookmarkFolder implem
     private void setBookmarks(Set<WeblogBookmark> bookmarks) {
         this.bookmarks = bookmarks;
     }
-    
-    
-    /**
-     * Add a folder as a child of this folder.
-     */
-    public void addFolder(WeblogBookmarkFolder folder) {
-        
-        // make sure folder is not null
-        if(folder == null || folder.getName() == null) {
-            throw new IllegalArgumentException("Folder cannot be null and must have a valid name");
-        }
-        
-        // make sure we don't already have a folder with that name
-        if(this.hasFolder(folder.getName())) {
-            throw new IllegalArgumentException("Duplicate folder name '"+folder.getName()+"'");
-        }
-        
-        // set ourselves as the parent of the folder
-        folder.setParent(this);
-        
-        // add it to our list of child folder
-        getFolders().add(folder);
-    }
-    
-    
+
     /** 
      * Add a bookmark to this folder.
      */
@@ -244,25 +189,8 @@ public class WeblogBookmarkFolder implem
         BookmarkManager bmgr = WebloggerFactory.getWeblogger().getBookmarkManager();
         return bmgr.getBookmarks(this);
     }
-    
-    
-    /**
-     * Does this folder have a child folder with the specified name?
-     *
-     * @param name The name of the folder to check for.
-     * @return boolean true if child folder exists, false otherwise.
-     */
-    public boolean hasFolder(String name) {
-        for (WeblogBookmarkFolder folder : this.getFolders()) {
-            if(name.equals(folder.getName())) {
-                return true;
-            }
-        }
-        return false;
-    }
-    
-    
-    // convenience method for updating the folder name, which triggers a path tree rebuild
+
+    // convenience method for updating the folder name
     public void updateName(String newName) throws WebloggerException {
         setName(newName);
         WebloggerFactory.getWeblogger().getBookmarkManager().saveFolder(this);

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/wrapper/WeblogBookmarkFolderWrapper.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/wrapper/WeblogBookmarkFolderWrapper.java?rev=1575713&r1=1575712&r2=1575713&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/wrapper/WeblogBookmarkFolderWrapper.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/wrapper/WeblogBookmarkFolderWrapper.java Sun Mar  9 15:39:33 2014
@@ -64,29 +64,8 @@ public final class WeblogBookmarkFolderW
     public String getDescription() {
         return this.pojo.getDescription();
     }
-    
-    
-    public WeblogBookmarkFolderWrapper getParent() {
-        return WeblogBookmarkFolderWrapper.wrap(this.pojo.getParent());
-    }
-    
-    public List<WeblogBookmarkFolderWrapper> getFolders() {
-        Set<WeblogBookmarkFolder> initialCollection = this.pojo.getFolders();
-        
-        // iterate through and wrap
-        // we force the use of an ArrayList because it should be good enough to cover
-        // for any Collection type we encounter.
-        List<WeblogBookmarkFolderWrapper> wrappedCollection = new ArrayList<WeblogBookmarkFolderWrapper>(initialCollection.size());
-        int i = 0;
-        for (WeblogBookmarkFolder folder : initialCollection) {
-            wrappedCollection.add(i, WeblogBookmarkFolderWrapper.wrap(folder));
-            i++;
-        }
-        
-        return wrappedCollection;
-    }
-    
-        
+
+
     public List<WeblogBookmarkWrapper> getBookmarks() {
         Set<WeblogBookmark> initialCollection = new TreeSet<WeblogBookmark>(new BookmarkComparator());
         initialCollection.addAll(this.pojo.getBookmarks());

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/SiteWideCache.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/SiteWideCache.java?rev=1575713&r1=1575712&r2=1575713&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/SiteWideCache.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/SiteWideCache.java Sun Mar  9 15:39:33 2014
@@ -368,8 +368,8 @@ public class SiteWideCache implements Ca
      * A folder has changed.
      */
     public void invalidate(WeblogBookmarkFolder folder) {
-        if(WebloggerRuntimeConfig.isSiteWideWeblog(folder.getWebsite().getHandle())) {
-            invalidate(folder.getWebsite());
+        if(WebloggerRuntimeConfig.isSiteWideWeblog(folder.getWeblog().getHandle())) {
+            invalidate(folder.getWeblog());
         }
     }
     

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Bookmarks.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Bookmarks.java?rev=1575713&r1=1575712&r2=1575713&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Bookmarks.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Bookmarks.java Sun Mar  9 15:39:33 2014
@@ -18,12 +18,9 @@
 
 package org.apache.roller.weblogger.ui.struts2.editor;
 
+import java.util.ArrayList;
 import java.util.Collections;
-import java.util.Comparator;
-import java.util.LinkedList;
 import java.util.List;
-import java.util.Set;
-import java.util.TreeSet;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -50,9 +47,6 @@ public class Bookmarks extends UIAction 
 	// the folder being viewed
 	private WeblogBookmarkFolder folder = null;
 
-	// the list of folders to delete
-	private String[] selectedFolders = null;
-
 	// the list of bookmarks to move or delete
 	private String[] selectedBookmarks = null;
 
@@ -63,7 +57,7 @@ public class Bookmarks extends UIAction 
     private String viewFolderId = null;
 
 	// all folders from the action weblog
-	private Set allFolders = Collections.EMPTY_SET;
+	private List<WeblogBookmarkFolder> allFolders = Collections.emptyList();
 
 	public Bookmarks() {
 		this.actionName = "bookmarks";
@@ -80,11 +74,11 @@ public class Bookmarks extends UIAction 
 		try {
 			BookmarkManager bmgr = WebloggerFactory.getWeblogger()
 					.getBookmarkManager();
-			if (!StringUtils.isEmpty(getFolderId())
-					&& !"/".equals(getFolderId())) {
+			if (!StringUtils.isEmpty(getFolderId())) {
 				setFolder(bmgr.getFolder(getFolderId()));
 			} else {
-				setFolder(bmgr.getRootFolder(getActionWeblog()));
+				setFolder(bmgr.getDefaultFolder(getActionWeblog()));
+                setFolderId(getFolder().getId());
 			}
 		} catch (WebloggerException ex) {
 			log.error("Error looking up folder", ex);
@@ -92,31 +86,26 @@ public class Bookmarks extends UIAction 
 	}
 
 	/**
-	 * Present the bookmarks and subfolders available in the folder specified by
-	 * the request.
+	 * Present the bookmarks available in the folder specified by the request.
 	 */
 	public String execute() {
 
-		// build list of folders for display
-		TreeSet newFolders = new TreeSet(new FolderNameComparator());
+		// build list of folders that the user can navigate to
+        List<WeblogBookmarkFolder> newFolders = new ArrayList<WeblogBookmarkFolder>();
 
 		try {
-			// Build list of all folders, except for current one, sorted by name
-			BookmarkManager bmgr = WebloggerFactory.getWeblogger()
-					.getBookmarkManager();
-			List<WeblogBookmarkFolder> folders = bmgr
-					.getAllFolders(getActionWeblog());
-			for (WeblogBookmarkFolder fd : folders) {
-				if (getFolderId() == null && fd.getParent() == null) {
-					// Root folder so do not show the root /
-				} else if (!fd.getId().equals(getFolderId())) {
+			// Build list of all folders, except for current one
+			BookmarkManager bmgr = WebloggerFactory.getWeblogger().getBookmarkManager();
+			List<WeblogBookmarkFolder> folders = bmgr.getAllFolders(getActionWeblog());
+			log.info("*** Folder ID is: " + getFolderId());
+            for (WeblogBookmarkFolder fd : folders) {
+				if (!fd.getId().equals(getFolderId())) {
 					newFolders.add(fd);
 				}
 			}
 
 		} catch (WebloggerException ex) {
 			log.error("Error building folders list", ex);
-			// TODO: i18n
 			addError("Error building folders list");
 		}
 
@@ -135,28 +124,10 @@ public class Bookmarks extends UIAction 
 		BookmarkManager bmgr = WebloggerFactory.getWeblogger()
 				.getBookmarkManager();
 
-		log.debug("Deleting selected folders and bookmarks.");
+		log.debug("Deleting selected bookmarks.");
 
 		try {
-			String folders[] = getSelectedFolders();
-			if (null != folders && folders.length > 0) {
-				if (log.isDebugEnabled()) {
-                    log.debug("Processing delete of " + folders.length
-                            + " folders.");
-                }
-				for (int i = 0; i < folders.length; i++) {
-					if (log.isDebugEnabled()) {
-                        log.debug("Deleting folder - " + folders[i]);
-                    }
-					WeblogBookmarkFolder fd = bmgr.getFolder(folders[i]);
-					if (fd != null) {
-						bmgr.removeFolder(fd); // removes child folders and
-						// bookmarks too
-					}
-				}
-			}
-
-			WeblogBookmark bookmark = null;
+			WeblogBookmark bookmark;
 			String bookmarks[] = getSelectedBookmarks();
 			if (null != bookmarks && bookmarks.length > 0) {
 				if (log.isDebugEnabled()) {
@@ -182,9 +153,8 @@ public class Bookmarks extends UIAction 
 			CacheManager.invalidate(getActionWeblog());
 
 		} catch (WebloggerException ex) {
-			log.error("Error doing folder/bookmark deletes", ex);
-			// TODO: i18n
-			addError("Error doing folder/bookmark deletes");
+			log.error("Error doing bookmark deletes", ex);
+			addError("Error doing bookmark deletes");
 		}
 
 		return execute();
@@ -198,6 +168,7 @@ public class Bookmarks extends UIAction 
             BookmarkManager bmgr = WebloggerFactory.getWeblogger().getBookmarkManager();
             if (!StringUtils.isEmpty(viewFolderId)) {
                 setFolder(bmgr.getFolder(viewFolderId));
+                setFolderId(viewFolderId);
             }
         } catch (WebloggerException ex) {
             log.error("Error looking up folder", ex);
@@ -245,14 +216,6 @@ public class Bookmarks extends UIAction 
 		return execute();
 	}
 
-	private static final class FolderNameComparator implements Comparator {
-		public int compare(Object o1, Object o2) {
-			WeblogBookmarkFolder f1 = (WeblogBookmarkFolder) o1;
-			WeblogBookmarkFolder f2 = (WeblogBookmarkFolder) o2;
-			return f1.getName().compareTo(f2.getName());
-		}
-	}
-
 	public String getFolderId() {
 		return folderId;
 	}
@@ -261,14 +224,6 @@ public class Bookmarks extends UIAction 
 		this.folderId = folderId;
 	}
 
-	public String[] getSelectedFolders() {
-		return selectedFolders;
-	}
-
-	public void setSelectedFolders(String[] folders) {
-		this.selectedFolders = folders;
-	}
-
 	public String[] getSelectedBookmarks() {
 		return selectedBookmarks;
 	}
@@ -285,11 +240,11 @@ public class Bookmarks extends UIAction 
 		this.targetFolderId = targetFolderId;
 	}
 
-	public Set getAllFolders() {
+	public List<WeblogBookmarkFolder> getAllFolders() {
 		return allFolders;
 	}
 
-	public void setAllFolders(Set allFolders) {
+	public void setAllFolders(List<WeblogBookmarkFolder> allFolders) {
 		this.allFolders = allFolders;
 	}
 

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/FolderAdd.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/FolderAdd.java?rev=1575713&r1=1575712&r2=1575713&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/FolderAdd.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/FolderAdd.java Sun Mar  9 15:39:33 2014
@@ -20,10 +20,8 @@ package org.apache.roller.weblogger.ui.s
 
 import java.util.Collections;
 import java.util.List;
-import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.roller.weblogger.WebloggerException;
 import org.apache.roller.weblogger.business.BookmarkManager;
 import org.apache.roller.weblogger.business.WebloggerFactory;
 import org.apache.roller.weblogger.pojos.WeblogBookmarkFolder;
@@ -69,14 +67,10 @@ public class FolderAdd extends UIAction 
         if(!hasActionErrors())  {
             try {
                 WeblogBookmarkFolder newFolder = new WeblogBookmarkFolder(
-                        getActionWeblog().getBookmarkFolder(null),
                         getBean().getName(),
                         getBean().getDescription(),
                         getActionWeblog());
 
-                // add new folder to weblog
-                getActionWeblog().getBookmarkFolder(null).addFolder(newFolder);
-
                 // save changes
                 BookmarkManager bmgr = WebloggerFactory.getWeblogger().getBookmarkManager();
                 bmgr.saveFolder(newFolder);
@@ -95,7 +89,6 @@ public class FolderAdd extends UIAction 
 
             } catch(Exception ex) {
                 log.error("Error saving new folder", ex);
-                // TODO: i18n
                 addError("Error saving new folder");
             }
         }
@@ -111,7 +104,7 @@ public class FolderAdd extends UIAction 
         // name is required, has max length, no html
         
         // make sure new name is not a duplicate of an existing folder
-        if(getActionWeblog().getBookmarkFolder(null).hasFolder(getBean().getName())) {
+        if(getActionWeblog().hasBookmarkFolder(getBean().getName())) {
             addError("folderForm.error.duplicateName", getBean().getName());
         }
     }

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/FolderEdit.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/FolderEdit.java?rev=1575713&r1=1575712&r2=1575713&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/FolderEdit.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/FolderEdit.java Sun Mar  9 15:39:33 2014
@@ -26,6 +26,7 @@ import org.apache.commons.logging.LogFac
 import org.apache.roller.weblogger.WebloggerException;
 import org.apache.roller.weblogger.business.BookmarkManager;
 import org.apache.roller.weblogger.business.WebloggerFactory;
+import org.apache.roller.weblogger.pojos.Weblog;
 import org.apache.roller.weblogger.pojos.WeblogBookmarkFolder;
 import org.apache.roller.weblogger.pojos.WeblogPermission;
 import org.apache.roller.weblogger.ui.struts2.util.UIAction;
@@ -80,7 +81,6 @@ public class FolderEdit extends UIAction
     public String execute() {
         
         if(getFolder() == null) {
-            // TODO: i18n
             addError("Cannot edit null folder");
             return ERROR;
         }
@@ -98,7 +98,6 @@ public class FolderEdit extends UIAction
     public String save() {
         
         if(getFolder() == null) {
-            // TODO: i18n
             addError("Cannot edit null folder");
             return ERROR;
         }
@@ -125,7 +124,6 @@ public class FolderEdit extends UIAction
 
             } catch(Exception ex) {
                 log.error("Error saving folder", ex);
-                // TODO: i18n
                 addError("Error saving folder");
             }
         }
@@ -141,8 +139,8 @@ public class FolderEdit extends UIAction
         
         // make sure new name is not a duplicate of an existing folder
         if(!getFolder().getName().equals(getBean().getName())) {
-            WeblogBookmarkFolder parent = getFolder().getParent();
-            if(parent != null && parent.hasFolder(getBean().getName())) {
+            Weblog weblog = getFolder().getWeblog();
+            if(weblog.hasBookmarkFolder(getBean().getName())) {
                 addError("folderForm.error.duplicateName", getBean().getName());
             }
         }

Modified: roller/trunk/app/src/main/resources/ApplicationResources.properties
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/resources/ApplicationResources.properties?rev=1575713&r1=1575712&r2=1575713&view=diff
==============================================================================
--- roller/trunk/app/src/main/resources/ApplicationResources.properties (original)
+++ roller/trunk/app/src/main/resources/ApplicationResources.properties Sun Mar  9 15:39:33 2014
@@ -69,7 +69,7 @@ bookmarksForm.rootTitle=Blogroll
 bookmarksForm.folderTitle=Bookmark Folder [{0}]
 
 bookmarksForm.rootPrompt=\
-This is your top-level bookmarks folder. \
+This is your blog''s main bookmarks folder. \
 The bookmarks you keep here will appear in the blogroll section of your blog \
 (assuming that you are using one of the default themes). You can create \
 additional bookmark folders, but you will have to add corresponding bookmark display \

Modified: roller/trunk/app/src/main/resources/org/apache/roller/weblogger/pojos/Weblog.orm.xml
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/resources/org/apache/roller/weblogger/pojos/Weblog.orm.xml?rev=1575713&r1=1575712&r2=1575713&view=diff
==============================================================================
--- roller/trunk/app/src/main/resources/org/apache/roller/weblogger/pojos/Weblog.orm.xml (original)
+++ roller/trunk/app/src/main/resources/org/apache/roller/weblogger/pojos/Weblog.orm.xml Sun Mar  9 15:39:33 2014
@@ -166,7 +166,13 @@
             <one-to-many name="weblogCategories" target-entity="org.apache.roller.weblogger.pojos.WeblogCategory" mapped-by="weblog" fetch="EAGER">
                 <order-by>position</order-by>
                 <cascade>
-                    <cascade-remove/>                                                                                                  1
+                    <cascade-remove/>
+                </cascade>
+            </one-to-many>
+            <one-to-many name="bookmarkFolders" target-entity="org.apache.roller.weblogger.pojos.WeblogBookmarkFolder" mapped-by="weblog">
+                <cascade>
+                    <cascade-persist/>
+                    <cascade-remove/>
                 </cascade>
             </one-to-many>
 			<transient name="theme"/>

Modified: roller/trunk/app/src/main/resources/org/apache/roller/weblogger/pojos/WeblogBookmarkFolder.orm.xml
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/resources/org/apache/roller/weblogger/pojos/WeblogBookmarkFolder.orm.xml?rev=1575713&r1=1575712&r2=1575713&view=diff
==============================================================================
--- roller/trunk/app/src/main/resources/org/apache/roller/weblogger/pojos/WeblogBookmarkFolder.orm.xml (original)
+++ roller/trunk/app/src/main/resources/org/apache/roller/weblogger/pojos/WeblogBookmarkFolder.orm.xml Sun Mar  9 15:39:33 2014
@@ -7,13 +7,10 @@
             access="PROPERTY">
         <table name="folder"/>
         <named-query name="WeblogBookmarkFolder.getByWebsite">
-            <query>SELECT f FROM WeblogBookmarkFolder f WHERE f.website = ?1</query>
+            <query>SELECT f FROM WeblogBookmarkFolder f WHERE f.weblog = ?1</query>
         </named-query>
         <named-query name="WeblogBookmarkFolder.getByWebsite&amp;Name">
-            <query>SELECT f FROM WeblogBookmarkFolder f WHERE f.website = ?1 AND f.name = ?2</query>
-        </named-query>
-        <named-query name="WeblogBookmarkFolder.getByWebsite&amp;ParentNull">
-            <query>SELECT f FROM WeblogBookmarkFolder f WHERE f.website = ?1 AND f.parent IS NULL</query>
+            <query>SELECT f FROM WeblogBookmarkFolder f WHERE f.weblog = ?1 AND f.name = ?2</query>
         </named-query>
         <attributes>
             <id name="id">
@@ -25,23 +22,9 @@
             <basic name="description">
                 <column name="description" insertable="true" updatable="true" unique="false"/>
             </basic>
-            <many-to-one name="website" target-entity="org.apache.roller.weblogger.pojos.Weblog">
+            <many-to-one name="weblog" target-entity="org.apache.roller.weblogger.pojos.Weblog">
                 <join-column name="websiteid" insertable="true" updatable="true" nullable="false"/>
             </many-to-one>
-            <many-to-one name="parent" target-entity="org.apache.roller.weblogger.pojos.WeblogBookmarkFolder">
-                <join-column name="parentid" insertable="true" updatable="true" nullable="true"/>
-                <cascade>
-                    <cascade-persist />
-                    <cascade-merge />
-                    <cascade-refresh />
-                </cascade>
-            </many-to-one>
-            <one-to-many name="folders" mapped-by="parent" target-entity="org.apache.roller.weblogger.pojos.WeblogBookmarkFolder"  fetch="LAZY">
-                <cascade>
-                    <cascade-persist />
-                    <cascade-remove/>
-                </cascade>
-            </one-to-many>
             <one-to-many name="bookmarks" mapped-by="folder" target-entity="org.apache.roller.weblogger.pojos.WeblogBookmark" fetch="LAZY">
                 <order-by>name</order-by>
                 <cascade>

Modified: roller/trunk/app/src/main/resources/sql/500-to-510-migration.vm
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/resources/sql/500-to-510-migration.vm?rev=1575713&r1=1575712&r2=1575713&view=diff
==============================================================================
--- roller/trunk/app/src/main/resources/sql/500-to-510-migration.vm (original)
+++ roller/trunk/app/src/main/resources/sql/500-to-510-migration.vm Sun Mar  9 15:39:33 2014
@@ -36,3 +36,8 @@ delete from weblogcategory where name = 
 delete from pingtarget where websiteid is not null;
 #dropIndex("pt_websiteid_fk" "pingtarget")
 #dropColumn("pingtarget", "websiteid")
+
+-- Removal of bookmark subfolders and renaming of default folder to 'default'
+update folder set name = 'default' where name = 'root' and parentid is null;
+#dropColumn("folder" 'parentid')
+#dropColumn("folder" 'path')

Modified: roller/trunk/app/src/main/resources/sql/createdb.vm
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/resources/sql/createdb.vm?rev=1575713&r1=1575712&r2=1575713&view=diff
==============================================================================
--- roller/trunk/app/src/main/resources/sql/createdb.vm (original)
+++ roller/trunk/app/src/main/resources/sql/createdb.vm Sun Mar  9 15:39:33 2014
@@ -163,13 +163,9 @@ create table folder (
     id               varchar(48) not null primary key,
     name             varchar(255) not null,
     description      varchar(255),
-    websiteid        varchar(48) not null,
-    parentid         varchar(48),
-    path             varchar(255) 
+    websiteid        varchar(48) not null
 );
 create index fo_websiteid_idx on folder( websiteid );
-create index fo_parentid_idx on folder( parentid );
-create index fo_path_idx on folder( path );
 
 create table bookmark (
     id               varchar(48) not null primary key,
@@ -554,9 +550,6 @@ alter table referer add constraint ref_w
 alter table folder add constraint fo_websiteid_fk
     foreign key ( websiteid ) references website( id ) $!db.ADDL_FK_PARAMS ;
 
--- alter table folder add constraint fo_parentid_fk
---     foreign key ( parentid ) references folder( id );
-
 alter table bookmark add constraint bm_folderid_fk
     foreign key ( folderid ) references folder( id ) $!db.ADDL_FK_PARAMS ;
 
@@ -598,4 +591,3 @@ alter table autoping add constraint ap_p
 
 create index oc_username_idx  on roller_oauthconsumer( username$!db.INDEXSIZE );
 create index oc_consumerkey_idx  on roller_oauthconsumer( consumerkey$!db.INDEXSIZE );
-

Modified: roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/Bookmarks.jsp
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/Bookmarks.jsp?rev=1575713&r1=1575712&r2=1575713&view=diff
==============================================================================
--- roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/Bookmarks.jsp (original)
+++ roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/Bookmarks.jsp Sun Mar  9 15:39:33 2014
@@ -39,7 +39,7 @@ function onMove() 
 // -->
 </script>
 
-<s:if test="folder.parent == null">
+<s:if test="folder.name == 'default'">
     <p class="subtitle">
         <s:text name="bookmarksForm.subtitle" >
             <s:param value="weblog" />
@@ -83,49 +83,7 @@ function onMove() 
             <th class="rollertable" width="5%"><s:text name="bookmarksForm.visitLink" /></th>
         </tr>
         
-        <s:if test="folder.folders.size > 0 || folder.bookmarks.size > 0">
-        
-        <%-- Folders --%>
-        <s:iterator id="folder" value="folder.folders" status="rowstatus">
-            <s:if test="#rowstatus.odd == true">
-                <tr class="rollertable_odd">
-            </s:if>
-            <s:else>
-                <tr class="rollertable_even">
-            </s:else>
-                
-                <td class="rollertable center" style="vertical-align:middle">
-                    <input type="checkbox" name="selectedFolders" value="<s:property value="#folder.id"/>" />
-                </td>
-                
-                <td class="rollertable" align="center"><img src='<s:url value="/images/folder.png"/>' alt="icon" /></td>
-                
-                <td class="rollertable">
-                    <s:url id="folderUrl" action="bookmarks">
-                        <s:param name="weblog" value="%{actionWeblog.handle}" />
-                        <s:param name="folderId" value="#folder.id" />
-                    </s:url>
-                    <s:a href="%{folderUrl}"><str:truncateNicely lower="15" upper="20" ><s:property value="#folder.name" /></str:truncateNicely></s:a>
-                </td>
-                
-                <td class="rollertable">
-                    <str:truncateNicely lower="30" upper="35" > </str:truncateNicely>
-                </td>
-                
-                <td class="rollertable"></td>
-                
-                <td class="rollertable" align="center">
-                    <s:url id="editUrl" action="folderEdit">
-                        <s:param name="weblog" value="%{actionWeblog.handle}" />
-                        <s:param name="bean.id" value="#folder.id" />
-                    </s:url>
-                    <s:a href="%{editUrl}"><img src='<s:url value="/images/page_white_edit.png"/>' border="0" alt="icon" /></s:a>
-                </td>
-                
-                <td class="rollertable">&nbsp;</td>
-                
-            </tr>
-        </s:iterator>
+        <s:if test="folder.bookmarks.size > 0">
         
         <%-- Bookmarks --%>
         <s:iterator id="bookmark" value="folder.bookmarks" status="rowstatus">
@@ -143,11 +101,11 @@ function onMove() 
                 <td class="rollertable" align="center"><img src='<s:url value="/images/link.png"/>' alt="icon" /></td>
                 
                 <td class="rollertable">
-                    <str:truncateNicely lower="15" upper="20" ><s:property value="#bookmark.name" /></str:truncateNicely>
+                    <str:truncateNicely lower="25" upper="30" ><s:property value="#bookmark.name" /></str:truncateNicely>
                 </td>
                 
                 <td class="rollertable">
-                    <str:truncateNicely lower="30" upper="35" ><s:property value="#bookmark.url" /></str:truncateNicely>
+                    <str:truncateNicely lower="45" upper="55" ><s:property value="#bookmark.url" /></str:truncateNicely>
                 </td>
                 
                 <td class="rollertable">
@@ -184,12 +142,12 @@ function onMove() 
     </table>
     
     <div class="control">
-        <s:if test="folder.folders.size > 0 || folder.bookmarks.size > 0">
+        <s:if test="folder.bookmarks.size > 0">
                 <%-- Delete-selected button --%>
                 <input type="button" value="<s:text name="bookmarksForm.delete"/>" onclick="onDelete()" />
         </s:if>
 
-        <s:if test="!allFolders.isEmpty && ( folder.folders.size > 0 || folder.bookmarks.size > 0)">
+        <s:if test="!allFolders.isEmpty && folder.bookmarks.size > 0">
             <%-- Move-selected button --%>
             <s:submit type="button" action="bookmarks!move" key="bookmarksForm.move" onclick="onMove();return false;" />
 

Modified: roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/FolderAdd.jsp
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/FolderAdd.jsp?rev=1575713&r1=1575712&r2=1575713&view=diff
==============================================================================
--- roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/FolderAdd.jsp (original)
+++ roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/FolderAdd.jsp Sun Mar  9 15:39:33 2014
@@ -19,7 +19,7 @@
 
 <p class="subtitle">
     <s:text name="folderForm.add.subtitle" >
-        <s:param value="folder.path" />
+        <s:param value="folder.name" />
     </s:text>
 </p>
 

Modified: roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/FolderEdit.jsp
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/FolderEdit.jsp?rev=1575713&r1=1575712&r2=1575713&view=diff
==============================================================================
--- roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/FolderEdit.jsp (original)
+++ roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/FolderEdit.jsp Sun Mar  9 15:39:33 2014
@@ -19,7 +19,7 @@
 
 <p class="subtitle">
     <s:text name="folderForm.edit.subtitle" >
-        <s:param value="folder.path" />
+        <s:param value="folder.name" />
     </s:text>
 </p>
 
@@ -28,8 +28,9 @@
     <s:hidden name="weblog" />
     <s:hidden name="bean.id" />
     
-    <%-- if we cancel then we need this attribute --%>
-    <s:hidden name="folderId" value="%{folder.parent.id}" />
+    <%-- if we cancel then we may need this attribute --%>
+    <%-- (Need to test after folder edit re-implemented) --%>
+    <%-- s:hidden name="folderId" value="%{folder.parent.id}" /--%>
     
     <table>
         <tr>

Modified: roller/trunk/app/src/main/webapp/WEB-INF/velocity/weblog.vm
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/webapp/WEB-INF/velocity/weblog.vm?rev=1575713&r1=1575712&r2=1575713&view=diff
==============================================================================
--- roller/trunk/app/src/main/webapp/WEB-INF/velocity/weblog.vm (original)
+++ roller/trunk/app/src/main/webapp/WEB-INF/velocity/weblog.vm Sun Mar  9 15:39:33 2014
@@ -487,7 +487,6 @@ Show bookmarks as a HTML ul list.
 #macro(showBookmarkLinksList $folderObject)
 <ul class="rFolder">
     #set($bookmarks = $folderObject.getBookmarks())
-    #set($folders = $folderObject.getFolders())
     #set($divId = $utils.replace($folderObject.name, " ", "_" ))
     #foreach($bookmark in $bookmarks)
         <li class="rFolderItem">

Modified: roller/trunk/app/src/main/webapp/themes/basic/sidebar.vm
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/webapp/themes/basic/sidebar.vm?rev=1575713&r1=1575712&r2=1575713&view=diff
==============================================================================
--- roller/trunk/app/src/main/webapp/themes/basic/sidebar.vm (original)
+++ roller/trunk/app/src/main/webapp/themes/basic/sidebar.vm Sun Mar  9 15:39:33 2014
@@ -21,8 +21,8 @@
 
     <h2>Links</h2>
     <div class="sidebar">
-    #set($rootFolder = $model.weblog.getBookmarkFolder("/"))
-    #showBookmarkLinksList($rootFolder)
+    #set($defaultFolder = $model.weblog.getBookmarkFolder("/"))
+    #showBookmarkLinksList($defaultFolder)
     </div>
 
     <h2>Navigation</h2>

Modified: roller/trunk/app/src/main/webapp/themes/brushedmetal/sidebar.vm
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/webapp/themes/brushedmetal/sidebar.vm?rev=1575713&r1=1575712&r2=1575713&view=diff
==============================================================================
--- roller/trunk/app/src/main/webapp/themes/brushedmetal/sidebar.vm (original)
+++ roller/trunk/app/src/main/webapp/themes/brushedmetal/sidebar.vm Sun Mar  9 15:39:33 2014
@@ -10,8 +10,8 @@
 	     <hr />
 
          <h3>Blogroll</h3>
-         #set($rootFolder = $model.weblog.getBookmarkFolder("/"))
-         #showBookmarkLinksList($rootFolder)
+         #set($defaultFolder = $model.weblog.getBookmarkFolder("/"))
+         #showBookmarkLinksList($defaultFolder)
 
          <h3>Newsfeeds</h3>
          #showAtomFeedsList($model.weblog)

Modified: roller/trunk/app/src/main/webapp/themes/sotto/sidebar.vm
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/webapp/themes/sotto/sidebar.vm?rev=1575713&r1=1575712&r2=1575713&view=diff
==============================================================================
--- roller/trunk/app/src/main/webapp/themes/sotto/sidebar.vm (original)
+++ roller/trunk/app/src/main/webapp/themes/sotto/sidebar.vm Sun Mar  9 15:39:33 2014
@@ -20,8 +20,8 @@
 
         <div class="sidebarBox">
             <div class="links">
-                #set($rootFolder = $model.weblog.getBookmarkFolder("/"))
-                #showBookmarkLinksList($rootFolder)
+                #set($defaultFolder = $model.weblog.getBookmarkFolder("/"))
+                #showBookmarkLinksList($defaultFolder)
             </div>
         </div>
 

Modified: roller/trunk/app/src/test/java/org/apache/roller/weblogger/business/BookmarkTest.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/test/java/org/apache/roller/weblogger/business/BookmarkTest.java?rev=1575713&r1=1575712&r2=1575713&view=diff
==============================================================================
--- roller/trunk/app/src/test/java/org/apache/roller/weblogger/business/BookmarkTest.java (original)
+++ roller/trunk/app/src/test/java/org/apache/roller/weblogger/business/BookmarkTest.java Sun Mar  9 15:39:33 2014
@@ -85,9 +85,9 @@ public class BookmarkTest extends TestCa
         BookmarkManager bmgr = getRoller().getBookmarkManager();
         
         testWeblog = TestUtils.getManagedWebsite(testWeblog);
-        WeblogBookmarkFolder root = bmgr.getRootFolder(testWeblog);
+        WeblogBookmarkFolder root = bmgr.getDefaultFolder(testWeblog);
         
-        WeblogBookmarkFolder folder = new WeblogBookmarkFolder(root, "TestFolder2", null, TestUtils.getManagedWebsite(testWeblog));
+        WeblogBookmarkFolder folder = new WeblogBookmarkFolder("TestFolder2", null, TestUtils.getManagedWebsite(testWeblog));
         bmgr.saveFolder(folder);
         TestUtils.endSession(true);
         
@@ -162,14 +162,14 @@ public class BookmarkTest extends TestCa
         BookmarkManager bmgr = getRoller().getBookmarkManager();
         
         testWeblog = TestUtils.getManagedWebsite(testWeblog);
-        WeblogBookmarkFolder root = bmgr.getRootFolder(testWeblog);
+        WeblogBookmarkFolder root = bmgr.getDefaultFolder(testWeblog);
         
         // add some folders
-        WeblogBookmarkFolder f1 = new WeblogBookmarkFolder(root, "f1", null, TestUtils.getManagedWebsite(testWeblog));
+        WeblogBookmarkFolder f1 = new WeblogBookmarkFolder("f1", null, TestUtils.getManagedWebsite(testWeblog));
         bmgr.saveFolder(f1);
-        WeblogBookmarkFolder f2 = new WeblogBookmarkFolder(f1, "f2", null, TestUtils.getManagedWebsite(testWeblog));
+        WeblogBookmarkFolder f2 = new WeblogBookmarkFolder("f2", null, TestUtils.getManagedWebsite(testWeblog));
         bmgr.saveFolder(f2);
-        WeblogBookmarkFolder f3 = new WeblogBookmarkFolder(root, "f3", null, TestUtils.getManagedWebsite(testWeblog));
+        WeblogBookmarkFolder f3 = new WeblogBookmarkFolder("f3", null, TestUtils.getManagedWebsite(testWeblog));
         bmgr.saveFolder(f3);
         
         TestUtils.endSession(true);
@@ -233,13 +233,13 @@ public class BookmarkTest extends TestCa
         try {        
 
             testWeblog = TestUtils.getManagedWebsite(testWeblog);
-            WeblogBookmarkFolder root = bmgr.getRootFolder(testWeblog);
+            WeblogBookmarkFolder root = bmgr.getDefaultFolder(testWeblog);
 
-            WeblogBookmarkFolder dest = new WeblogBookmarkFolder(root, "dest", null, testWeblog);
+            WeblogBookmarkFolder dest = new WeblogBookmarkFolder("dest", null, testWeblog);
             bmgr.saveFolder(dest);
 
             // create source folder f1
-            WeblogBookmarkFolder f1 = new WeblogBookmarkFolder(root, "f1", null, testWeblog);
+            WeblogBookmarkFolder f1 = new WeblogBookmarkFolder("f1", null, testWeblog);
             bmgr.saveFolder(f1);
 
             // create bookmark b1 inside source folder f1
@@ -250,7 +250,7 @@ public class BookmarkTest extends TestCa
             f1.addBookmark(b1);
 
             // create folder f2 inside f1
-            WeblogBookmarkFolder f2 = new WeblogBookmarkFolder(f1, "f2", null, testWeblog);
+            WeblogBookmarkFolder f2 = new WeblogBookmarkFolder("f2", null, testWeblog);
             bmgr.saveFolder(f2);
 
             // create bookmark b2 inside folder f2
@@ -261,7 +261,7 @@ public class BookmarkTest extends TestCa
             f2.addBookmark(b2);
 
             // create folder f3 inside folder f2
-            WeblogBookmarkFolder f3 = new WeblogBookmarkFolder(f2, "f3", null, testWeblog);
+            WeblogBookmarkFolder f3 = new WeblogBookmarkFolder("f3", null, testWeblog);
             bmgr.saveFolder(f3);
 
             // crete bookmark b3 inside folder f3
@@ -287,7 +287,7 @@ public class BookmarkTest extends TestCa
 
             // check that paths and child folders are correct
             assertEquals("f1", f1.getName());
-            assertEquals(1, dest.getFolders().size());
+            assertEquals(1, dest.getWeblog().getBookmarkFolders().size());
         
             bmgr.removeFolder(f1);
             bmgr.removeFolder(dest);

Modified: roller/trunk/app/src/test/java/org/apache/roller/weblogger/business/FolderCRUDTest.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/test/java/org/apache/roller/weblogger/business/FolderCRUDTest.java?rev=1575713&r1=1575712&r2=1575713&view=diff
==============================================================================
--- roller/trunk/app/src/test/java/org/apache/roller/weblogger/business/FolderCRUDTest.java (original)
+++ roller/trunk/app/src/test/java/org/apache/roller/weblogger/business/FolderCRUDTest.java Sun Mar  9 15:39:33 2014
@@ -26,7 +26,6 @@ import org.apache.roller.weblogger.pojos
 import org.apache.roller.weblogger.pojos.User;
 import org.apache.roller.weblogger.pojos.Weblog;
 
-
 /**
  * Test basic folder operations.
  */
@@ -78,25 +77,6 @@ public class FolderCRUDTest extends Test
     
     
     /**
-     * Test WeblogBookmarkFolder.equals() method.
-     */
-    public void testFolderEquality() throws Exception {
-        
-        log.info("BEGIN");
-        
-        BookmarkManager bmgr = WebloggerFactory.getWeblogger().getBookmarkManager();
-        
-        testWeblog = TestUtils.getManagedWebsite(testWeblog);
-        WeblogBookmarkFolder root = bmgr.getRootFolder(testWeblog);
-        
-        WeblogBookmarkFolder testFolder = new WeblogBookmarkFolder(null, "root", "root", TestUtils.getManagedWebsite(testWeblog));
-        assertTrue(root.equals(testFolder));
-        
-        log.info("END");
-    }
-    
-    
-    /**
      * Test add/modify/remove of folders.
      */
     public void testBasicCRUD() throws Exception {
@@ -106,22 +86,21 @@ public class FolderCRUDTest extends Test
         BookmarkManager bmgr = WebloggerFactory.getWeblogger().getBookmarkManager();
         
         testWeblog = TestUtils.getManagedWebsite(testWeblog);
-        WeblogBookmarkFolder root = bmgr.getRootFolder(testWeblog);
+        WeblogBookmarkFolder root = bmgr.getDefaultFolder(testWeblog);
         
-        // start out with no folders and no bookmarks
-        assertEquals(0, root.getFolders().size());
+        // start out with just default folder and no bookmarks
+        assertEquals(1, testWeblog.getBookmarkFolders().size());
         assertEquals(0, root.getBookmarks().size());
         
         // add a folder
-        WeblogBookmarkFolder newFolder = new WeblogBookmarkFolder(root, "folderBasicCRUD", null, TestUtils.getManagedWebsite(testWeblog));
+        WeblogBookmarkFolder newFolder = new WeblogBookmarkFolder("folderBasicCRUD", null, TestUtils.getManagedWebsite(testWeblog));
         bmgr.saveFolder(newFolder);
         TestUtils.endSession(true);
         
         // check that folder was saved
         testWeblog = TestUtils.getManagedWebsite(testWeblog);
-        root = bmgr.getRootFolder(testWeblog);
-        assertEquals(1, root.getFolders().size());
-        WeblogBookmarkFolder folder = (WeblogBookmarkFolder) root.getFolders().iterator().next();
+        assertEquals(2, testWeblog.getBookmarkFolders().size());
+        WeblogBookmarkFolder folder = testWeblog.getBookmarkFolders().get(1);
         assertEquals(newFolder, folder);
         
         // modify folder
@@ -131,8 +110,7 @@ public class FolderCRUDTest extends Test
         
         // check that folder was saved
         testWeblog = TestUtils.getManagedWebsite(testWeblog);
-        root = bmgr.getRootFolder(testWeblog);
-        folder = (WeblogBookmarkFolder) root.getFolders().iterator().next();
+        folder = testWeblog.getBookmarkFolders().get(1);
         assertEquals("folderTest1", folder.getName());
         
         // test remove folder
@@ -141,57 +119,11 @@ public class FolderCRUDTest extends Test
         
         // make sure folder was removed
         testWeblog = TestUtils.getManagedWebsite(testWeblog);
-        root = bmgr.getRootFolder(testWeblog);
-        assertEquals(0, root.getFolders().size());
+        assertEquals(1, testWeblog.getBookmarkFolders().size());
         folder = bmgr.getFolder(newFolder.getId());
         assertNull(folder);
         
         log.info("END");
     }
-    
-    
-    /**
-     * Make sure that deleting a folder deletes all child folders.
-     */
-    public void testFolderCascadingDelete() throws Exception {
-        
-        log.info("BEGIN");
-        
-        BookmarkManager bmgr = WebloggerFactory.getWeblogger().getBookmarkManager();
-        
-        testWeblog = TestUtils.getManagedWebsite(testWeblog);
-        WeblogBookmarkFolder root = bmgr.getRootFolder(testWeblog);
-        
-        // add a small tree /fold1/fold2
-        WeblogBookmarkFolder fold1 = new WeblogBookmarkFolder(root, "fold1", null, testWeblog);
-        root.addFolder(fold1);
-        bmgr.saveFolder(fold1);
-        WeblogBookmarkFolder fold2 = new WeblogBookmarkFolder(fold1, "fold2", null, testWeblog);
-        fold1.addFolder(fold2);
-        bmgr.saveFolder(fold2);
-        TestUtils.endSession(true);
-        
-        // check that tree can be navigated
-        testWeblog = TestUtils.getManagedWebsite(testWeblog);
-        root = bmgr.getRootFolder(testWeblog);
-        assertEquals(1, root.getFolders().size());
-        fold1 = (WeblogBookmarkFolder) root.getFolders().iterator().next();
-        assertEquals("fold1", fold1.getName());
-        assertEquals(1, fold1.getFolders().size());
-        fold2 = (WeblogBookmarkFolder) fold1.getFolders().iterator().next();
-        assertEquals("fold2", fold2.getName());
-        
-        // now delete folder and subfolders should be deleted by cascade
-        bmgr.removeFolder(fold1);
-        TestUtils.endSession(true);
-        
-        // verify cascading delete succeeded
-        testWeblog = TestUtils.getManagedWebsite(testWeblog);
-        root = bmgr.getRootFolder(testWeblog);
-        assertEquals(0, root.getFolders().size());
-        assertNull(bmgr.getFolder(testWeblog, "/fold1/fold2"));
-        
-        log.info("END");
-    }
-    
+
 }

Modified: roller/trunk/app/src/test/java/org/apache/roller/weblogger/business/FolderFunctionalityTest.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/test/java/org/apache/roller/weblogger/business/FolderFunctionalityTest.java?rev=1575713&r1=1575712&r2=1575713&view=diff
==============================================================================
--- roller/trunk/app/src/test/java/org/apache/roller/weblogger/business/FolderFunctionalityTest.java (original)
+++ roller/trunk/app/src/test/java/org/apache/roller/weblogger/business/FolderFunctionalityTest.java Sun Mar  9 15:39:33 2014
@@ -20,9 +20,7 @@ package org.apache.roller.weblogger.busi
 
 import java.io.PrintWriter;
 import java.io.StringWriter;
-import java.util.Iterator;
 import java.util.List;
-import java.util.Set;
 import junit.framework.TestCase;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -60,12 +58,12 @@ public class FolderFunctionalityTest ext
             testWeblog = TestUtils.setupWeblog("folderFuncTestWeblog", testUser);
             
             // setup a category tree to use for testing
-            f1 = TestUtils.setupFolder(testWeblog, "folderFuncTest-f1", null);
-            f2 = TestUtils.setupFolder(testWeblog, "folderFuncTest-f2", f1);
-            f3 = TestUtils.setupFolder(testWeblog, "folderFuncTest-f3", f2);
+            f1 = TestUtils.setupFolder(testWeblog, "folderFuncTest-f1");
+            f2 = TestUtils.setupFolder(testWeblog, "folderFuncTest-f2");
+            f3 = TestUtils.setupFolder(testWeblog, "folderFuncTest-f3");
             
             // a simple test folder at the root level
-            testFolder = TestUtils.setupFolder(testWeblog, "folderFuncTest-testFolder", null);
+            testFolder = TestUtils.setupFolder(testWeblog, "folderFuncTest-testFolder");
             
             TestUtils.endSession(true);
         } catch (Exception ex) {
@@ -94,69 +92,16 @@ public class FolderFunctionalityTest ext
     
     
     /**
-     * Test that we can walk a folder tree.
-     */
-    public void testWalkFolderTree() throws Exception {
-        
-        log.info("BEGIN");
-        
-        BookmarkManager bmgr = WebloggerFactory.getWeblogger().getBookmarkManager();
-        
-        // start at root
-        WeblogBookmarkFolder root = bmgr.getRootFolder(TestUtils.getManagedWebsite(testWeblog));
-        
-        // walk first level
-        Set<WeblogBookmarkFolder> folders = root.getFolders();
-        assertEquals(2, folders.size());
-        assertTrue(folders.contains(testFolder));
-        
-        // find cat1
-        WeblogBookmarkFolder folder = null;
-        for(Iterator it = folders.iterator(); it.hasNext(); ) {
-            folder = (WeblogBookmarkFolder) it.next();
-            if(folder.getName().equals(f1.getName())) {
-                break;
-            }
-        }
-
-        // walk second level
-        folders = folder.getFolders();
-        assertEquals(1, folders.size());
-        assertTrue(folders.contains(f2));
-        
-        // find cat2
-        folder = folders.iterator().next();
-        
-        // walk third level
-        folders = folder.getFolders();
-        assertEquals(1, folders.size());
-        assertTrue(folders.contains(f3));
-        
-        // find cat3
-        folder = folders.iterator().next();
-        
-        // make sure this is the end of the tree
-        folders = folder.getFolders();
-        assertEquals(0, folders.size());
-        
-        log.info("END");
-    }
-    
-    
-    /**
-     * Test the hasFolder() method on WeblogBookmarkFolder.
+     * Test the hasBookmarkFolder() method on Weblog.
      */
     public void testHasFolder() throws Exception {
         
         log.info("BEGIN");
         
-        BookmarkManager bmgr = WebloggerFactory.getWeblogger().getBookmarkManager();
-        
         testWeblog = TestUtils.getManagedWebsite(testWeblog);
-        WeblogBookmarkFolder root = bmgr.getRootFolder(testWeblog);
-        
-        // check that root has folder
-        assertTrue(root.hasFolder(testFolder.getName()));
+
+        // check that weblog has folder
+        assertTrue(testWeblog.hasBookmarkFolder(testFolder.getName()));
         
         log.info("END");
     }
@@ -170,14 +115,12 @@ public class FolderFunctionalityTest ext
         log.info("BEGIN");
         try {
             BookmarkManager bmgr = WebloggerFactory.getWeblogger().getBookmarkManager();
-
             testWeblog = TestUtils.getManagedWebsite(testWeblog);
-            WeblogBookmarkFolder root = bmgr.getRootFolder(testWeblog);
 
             boolean exception = false;
             try {
                 // child folder with same name as first
-                WeblogBookmarkFolder dupeFolder = new WeblogBookmarkFolder(root, testFolder.getName(), null, testWeblog);
+                WeblogBookmarkFolder dupeFolder = new WeblogBookmarkFolder(testFolder.getName(), null, testWeblog);
                 bmgr.saveFolder(dupeFolder);
                 TestUtils.endSession(true);
             } catch (Throwable e) {
@@ -234,10 +177,10 @@ public class FolderFunctionalityTest ext
         assertNotNull(folder);
         assertEquals(f3, folder);
         
-        // if no name is specified then we should get root folder
-        folder = bmgr.getFolder(testWeblog, null);
+        // test to check that default folder is accessible
+        folder = bmgr.getDefaultFolder(testWeblog);
         assertNotNull(folder);
-        assertEquals("root", folder.getName());
+        assertEquals("default", folder.getName());
         
         log.info("END");
     }