Author: gmazza Date: Tue Dec 10 20:59:42 2013 New Revision: 1549969 URL: http://svn.apache.org/r1549969 Log: ROL-1980, pull out root category from list of options when moving category blog entries to a new category, fix error that non-published blog articles aren't moved to the new category. Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/TestUtils.java roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/WeblogEntryManager.java roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAWeblogEntryManagerImpl.java roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/WeblogCategory.java roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/wrapper/WeblogCategoryWrapper.java roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryRemove.java roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/CategoryRemove.jsp roller/trunk/app/src/test/java/org/apache/roller/weblogger/business/WeblogCategoryFunctionalityTest.java roller/trunk/app/src/test/java/org/apache/roller/weblogger/business/WeblogEntryTest.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=1549969&r1=1549968&r2=1549969&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 Tue Dec 10 20:59:42 2013 @@ -264,11 +264,20 @@ public final class TestUtils { } /** - * Convenience method for creating a weblog entry. + * Convenience method for creating a published weblog entry. */ public static WeblogEntry setupWeblogEntry(String anchor, WeblogCategory cat, Weblog weblog, User user) throws Exception { + return TestUtils.setupWeblogEntry(anchor, cat, WeblogEntry.PUBLISHED, weblog, user); + } + + /** + * Convenience method for creating a weblog entry + */ + public static WeblogEntry setupWeblogEntry(String anchor, + WeblogCategory cat, String status, Weblog weblog, User user) throws Exception { + WeblogEntry testEntry = new WeblogEntry(); testEntry.setTitle(anchor); testEntry.setLink("testEntryLink"); @@ -278,7 +287,7 @@ public final class TestUtils { .getTime())); testEntry.setUpdateTime(new java.sql.Timestamp(new java.util.Date() .getTime())); - testEntry.setStatus(WeblogEntry.PUBLISHED); + testEntry.setStatus(status); testEntry.setWebsite(getManagedWebsite(weblog)); testEntry.setCreatorUserName(getManagedUser(user).getUserName()); testEntry.setCategory(cat); Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/WeblogEntryManager.java URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/WeblogEntryManager.java?rev=1549969&r1=1549968&r2=1549969&view=diff ============================================================================== --- roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/WeblogEntryManager.java (original) +++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/WeblogEntryManager.java Tue Dec 10 20:59:42 2013 @@ -148,10 +148,10 @@ public interface WeblogEntryManager { * Get weblog entries with given category or, optionally, any sub-category * of that category. * @param cat Category - * @param subcats True if sub-categories are to be fetched + * @param publishedOnly True to retrieve published articles only * @return List of weblog entries in category */ - List getWeblogEntries(WeblogCategory cat, boolean subcats) + List getWeblogEntries(WeblogCategory cat, boolean publishedOnly) throws WebloggerException; /** Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAWeblogEntryManagerImpl.java URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAWeblogEntryManagerImpl.java?rev=1549969&r1=1549968&r2=1549969&view=diff ============================================================================== --- roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAWeblogEntryManagerImpl.java (original) +++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAWeblogEntryManagerImpl.java Tue Dec 10 20:59:42 2013 @@ -123,7 +123,7 @@ public class JPAWeblogEntryManagerImpl i */ public void removeWeblogCategory(WeblogCategory cat) throws WebloggerException { - if(cat.retrieveWeblogEntries(true).size() > 0) { + if(cat.retrieveWeblogEntries(false).size() > 0) { throw new WebloggerException("Cannot remove category with entries"); } @@ -231,7 +231,7 @@ public class JPAWeblogEntryManagerImpl i } // get all entries in category and subcats - List results = srcCat.retrieveWeblogEntries(true); + List results = srcCat.retrieveWeblogEntries(false); // Loop through entries in src cat, assign them to dest cat Iterator iter = results.iterator(); @@ -774,12 +774,12 @@ public class JPAWeblogEntryManagerImpl i /** * @inheritDoc */ - // TODO: this method should be removed and it's functionality moved to getWeblogEntries() - public List getWeblogEntries(WeblogCategory cat, boolean subcats) + // TODO: this method should be removed and its functionality moved to getWeblogEntries() + public List getWeblogEntries(WeblogCategory cat, boolean publishedOnly) throws WebloggerException { List results = null; - if (!subcats) { + if (publishedOnly) { Query q = strategy.getNamedQuery( "WeblogEntry.getByStatus&Category"); q.setParameter(1, WeblogEntry.PUBLISHED); @@ -787,10 +787,8 @@ public class JPAWeblogEntryManagerImpl i results = q.getResultList(); } else { Query q = strategy.getNamedQuery( - "WeblogEntry.getByStatus&Category.pathLike&Website"); - q.setParameter(1, WeblogEntry.PUBLISHED); - q.setParameter(2, cat.getPath() + '%'); - q.setParameter(3, cat.getWebsite()); + "WeblogEntry.getByCategory"); + q.setParameter(1, cat); results = q.getResultList(); } Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/WeblogCategory.java URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/WeblogCategory.java?rev=1549969&r1=1549968&r2=1549969&view=diff ============================================================================== --- roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/WeblogCategory.java (original) +++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/WeblogCategory.java Tue Dec 10 20:59:42 2013 @@ -226,13 +226,13 @@ public class WeblogCategory implements S * Retrieve all weblog entries in this category and, optionally, include * weblog entries all sub-categories. * - * @param subcats True if entries from sub-categories are to be returned. + * @param publishedOnly True if desired to return only published entries * @return List of WeblogEntryData objects. * @throws WebloggerException */ - public List retrieveWeblogEntries(boolean subcats) throws WebloggerException { + public List retrieveWeblogEntries(boolean publishedOnly) throws WebloggerException { WeblogEntryManager wmgr = WebloggerFactory.getWeblogger().getWeblogEntryManager(); - return wmgr.getWeblogEntries(this, subcats); + return wmgr.getWeblogEntries(this, publishedOnly); } @@ -295,7 +295,7 @@ public class WeblogCategory implements S /** * Determine if category is in use. Returns true if any weblog entries - * use this category or any of it's subcategories. + * use this category or any of its subcategories. */ public boolean isInUse() { try { Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/wrapper/WeblogCategoryWrapper.java URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/wrapper/WeblogCategoryWrapper.java?rev=1549969&r1=1549968&r2=1549969&view=diff ============================================================================== --- roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/wrapper/WeblogCategoryWrapper.java (original) +++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/wrapper/WeblogCategoryWrapper.java Tue Dec 10 20:59:42 2013 @@ -110,10 +110,10 @@ public final class WeblogCategoryWrapper } - public List retrieveWeblogEntries(boolean subcats) + public List retrieveWeblogEntries(boolean publishedOnly) throws WebloggerException { - List initialCollection = this.pojo.retrieveWeblogEntries(subcats); + List initialCollection = this.pojo.retrieveWeblogEntries(publishedOnly); // iterate through and wrap // we force the use of an ArrayList because it should be good enough to cover Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryRemove.java URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryRemove.java?rev=1549969&r1=1549968&r2=1549969&view=diff ============================================================================== --- roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryRemove.java (original) +++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryRemove.java Tue Dec 10 20:59:42 2013 @@ -90,7 +90,7 @@ public class CategoryRemove extends UIAc try { // Build list of all categories, except for current one, sorted by path. WeblogEntryManager wmgr = WebloggerFactory.getWeblogger().getWeblogEntryManager(); - List cats = wmgr.getWeblogCategories(getActionWeblog(), true); + List cats = wmgr.getWeblogCategories(getActionWeblog(), false); for(WeblogCategory cat : cats) { if (!cat.getId().equals(getRemoveId())) { allCategoriesSet.add(cat); Modified: roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/CategoryRemove.jsp URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/CategoryRemove.jsp?rev=1549969&r1=1549968&r2=1549969&view=diff ============================================================================== --- roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/CategoryRemove.jsp (original) +++ roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/CategoryRemove.jsp Tue Dec 10 20:59:42 2013 @@ -37,7 +37,7 @@

- +

Modified: roller/trunk/app/src/test/java/org/apache/roller/weblogger/business/WeblogCategoryFunctionalityTest.java URL: http://svn.apache.org/viewvc/roller/trunk/app/src/test/java/org/apache/roller/weblogger/business/WeblogCategoryFunctionalityTest.java?rev=1549969&r1=1549968&r2=1549969&view=diff ============================================================================== --- roller/trunk/app/src/test/java/org/apache/roller/weblogger/business/WeblogCategoryFunctionalityTest.java (original) +++ roller/trunk/app/src/test/java/org/apache/roller/weblogger/business/WeblogCategoryFunctionalityTest.java Tue Dec 10 20:59:42 2013 @@ -246,8 +246,9 @@ public class WeblogCategoryFunctionality WeblogCategory root = mgr.getRootWeblogCategory(testWeblog); WeblogEntry e1 = null; WeblogEntry e2 = null; - WeblogEntry e3 = null; - + WeblogEntry e3 = null; + WeblogEntry e4 = null; + try { // add some categories and entries to test with WeblogCategory dest = new WeblogCategory(testWeblog, root, "c0", null, null); @@ -270,8 +271,9 @@ public class WeblogCategoryFunctionality dest = mgr.getWeblogCategory(dest.getId()); e1 = TestUtils.setupWeblogEntry("e1", c1, testWeblog, testUser); - e2 = TestUtils.setupWeblogEntry("e2", c2, testWeblog, testUser); - e3 = TestUtils.setupWeblogEntry("e3", c3, testWeblog, testUser); + e2 = TestUtils.setupWeblogEntry("e2", c1, WeblogEntry.DRAFT, testWeblog, testUser); + e3 = TestUtils.setupWeblogEntry("e3", c2, testWeblog, testUser); + e4 = TestUtils.setupWeblogEntry("e4", c3, testWeblog, testUser); TestUtils.endSession(true); @@ -284,10 +286,10 @@ public class WeblogCategoryFunctionality // verify number of entries in each category assertEquals(0, dest.retrieveWeblogEntries(true).size()); assertEquals(0, dest.retrieveWeblogEntries(false).size()); - assertEquals(1, c1.retrieveWeblogEntries(false).size()); - assertEquals(3, c1.retrieveWeblogEntries(true).size()); + assertEquals(2, c1.retrieveWeblogEntries(false).size()); + assertEquals(1, c1.retrieveWeblogEntries(true).size()); - // move contents of source category c1 to destination catetory dest + // move contents of source category c1 to destination category dest mgr.moveWeblogCategory(c1, dest); TestUtils.endSession(true); @@ -297,24 +299,21 @@ public class WeblogCategoryFunctionality c2 = mgr.getWeblogCategory(c2.getId()); c3 = mgr.getWeblogCategory(c3.getId()); - assertEquals(3, dest.retrieveWeblogEntries(true).size()); - assertEquals(0, dest.retrieveWeblogEntries(false).size()); - assertEquals(dest, c1.getParent()); assertEquals(c1, c2.getParent()); assertEquals(c2, c3.getParent()); - assertEquals(1, c1.retrieveWeblogEntries(false).size()); + assertEquals(2, c1.retrieveWeblogEntries(false).size()); + assertEquals(1, c1.retrieveWeblogEntries(true).size()); assertEquals(1, c2.retrieveWeblogEntries(false).size()); assertEquals(1, c3.retrieveWeblogEntries(false).size()); - - List entries = c1.retrieveWeblogEntries(true); - assertEquals(3, entries.size()); + assertEquals(0, dest.retrieveWeblogEntries(false).size()); } finally { mgr.removeWeblogEntry(TestUtils.getManagedWeblogEntry(e1)); mgr.removeWeblogEntry(TestUtils.getManagedWeblogEntry(e2)); mgr.removeWeblogEntry(TestUtils.getManagedWeblogEntry(e3)); + mgr.removeWeblogEntry(TestUtils.getManagedWeblogEntry(e4)); } log.info("END"); } @@ -328,7 +327,8 @@ public class WeblogCategoryFunctionality WeblogEntryManager mgr = WebloggerFactory.getWeblogger().getWeblogEntryManager(); WeblogEntry e1 = null; WeblogEntry e2 = null; - WeblogEntry e3 = null; + WeblogEntry e3 = null; + WeblogEntry e4 = null; try { testWeblog = TestUtils.getManagedWebsite(testWeblog); @@ -358,8 +358,9 @@ public class WeblogCategoryFunctionality testWeblog = TestUtils.getManagedWebsite(testWeblog); testUser = TestUtils.getManagedUser(testUser); e1 = TestUtils.setupWeblogEntry("e1", c1, testWeblog, testUser); - e2 = TestUtils.setupWeblogEntry("e2", c2, testWeblog, testUser); - e3 = TestUtils.setupWeblogEntry("e3", c3, testWeblog, testUser); + e2 = TestUtils.setupWeblogEntry("e2", c1, WeblogEntry.DRAFT, testWeblog, testUser); + e3 = TestUtils.setupWeblogEntry("e3", c2, testWeblog, testUser); + e4 = TestUtils.setupWeblogEntry("e4", c3, testWeblog, testUser); TestUtils.endSession(true); @@ -372,8 +373,8 @@ public class WeblogCategoryFunctionality // verify number of entries in each category assertEquals(0, dest.retrieveWeblogEntries(true).size()); assertEquals(0, dest.retrieveWeblogEntries(false).size()); - assertEquals(1, c1.retrieveWeblogEntries(false).size()); - assertEquals(3, c1.retrieveWeblogEntries(true).size()); + assertEquals(2, c1.retrieveWeblogEntries(false).size()); + assertEquals(1, c1.retrieveWeblogEntries(true).size()); // move contents of source category c1 to destination category dest mgr.moveWeblogCategoryContents(c1, dest); @@ -385,16 +386,17 @@ public class WeblogCategoryFunctionality c1 = mgr.getWeblogCategory(c1.getId()); // Hierarchy is flattened under dest - assertEquals(3, dest.retrieveWeblogEntries(true).size()); - assertEquals(3, dest.retrieveWeblogEntries(false).size()); + assertEquals(2, dest.retrieveWeblogEntries(false).size()); + assertEquals(1, dest.retrieveWeblogEntries(true).size()); // c1 category should be empty now assertEquals(0, c1.retrieveWeblogEntries(false).size()); - + } finally { mgr.removeWeblogEntry(TestUtils.getManagedWeblogEntry(e1)); mgr.removeWeblogEntry(TestUtils.getManagedWeblogEntry(e2)); mgr.removeWeblogEntry(TestUtils.getManagedWeblogEntry(e3)); + mgr.removeWeblogEntry(TestUtils.getManagedWeblogEntry(e4)); } log.info("END"); Modified: roller/trunk/app/src/test/java/org/apache/roller/weblogger/business/WeblogEntryTest.java URL: http://svn.apache.org/viewvc/roller/trunk/app/src/test/java/org/apache/roller/weblogger/business/WeblogEntryTest.java?rev=1549969&r1=1549968&r2=1549969&view=diff ============================================================================== --- roller/trunk/app/src/test/java/org/apache/roller/weblogger/business/WeblogEntryTest.java (original) +++ roller/trunk/app/src/test/java/org/apache/roller/weblogger/business/WeblogEntryTest.java Tue Dec 10 20:59:42 2013 @@ -230,7 +230,7 @@ public class WeblogEntryTest extends Tes // get all (non-future) PUBLISHED entries in category entries = null; - entries = mgr.getWeblogEntries(testWeblog.getDefaultCategory(), false); + entries = mgr.getWeblogEntries(testWeblog.getDefaultCategory(), true); assertNotNull(entries); assertEquals(3, entries.size());