Author: agilliland
Date: Sat Apr 8 17:16:02 2006
New Revision: 392638
URL: http://svn.apache.org/viewcvs?rev=392638&view=rev
Log:
more backend refactorings. cleaning up weblog page usages.
- removed methods removePageSafely and retrievePageReadOnly from UserManager
- replaced method removePage(id) with removePage(page)
- added unit test WeblogPageTest
Added:
incubator/roller/branches/roller-newbackend/tests/org/roller/business/WeblogPageTest.java
Removed:
incubator/roller/branches/roller-newbackend/tests/org/roller/business/WeblogTemplateTest.java
Modified:
incubator/roller/branches/roller-newbackend/build.xml
incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernateUserManagerImpl.java
incubator/roller/branches/roller-newbackend/src/org/roller/model/UserManager.java
incubator/roller/branches/roller-newbackend/src/org/roller/presentation/website/actions/WeblogTemplateFormAction.java
incubator/roller/branches/roller-newbackend/testdata/WEB-INF/classes/log4j.properties
incubator/roller/branches/roller-newbackend/tests/org/roller/business/PermissionTest.java
Modified: incubator/roller/branches/roller-newbackend/build.xml
URL:
http://svn.apache.org/viewcvs/incubator/roller/branches/roller-newbackend/build.xml?rev=392638&r1=392637&r2=392638&view=diff
==============================================================================
--- incubator/roller/branches/roller-newbackend/build.xml (original)
+++ incubator/roller/branches/roller-newbackend/build.xml Sat Apr 8 17:16:02
2006
@@ -818,7 +818,8 @@
<fileset dir="${build.tests}/WEB-INF/classes">
<include name="org/roller/business/UserTest.class"/>
<include name="org/roller/business/WeblogTest.class"/>
- <include name="org/roller/business/PermissionsTest.class"/>
+ <include name="org/roller/business/PermissionTest.class"/>
+ <include name="org/roller/business/WeblogPageTest.class"/>
</fileset>
</batchtest>
</junit>
Modified:
incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernateUserManagerImpl.java
URL:
http://svn.apache.org/viewcvs/incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernateUserManagerImpl.java?rev=392638&r1=392637&r2=392638&view=diff
==============================================================================
---
incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernateUserManagerImpl.java
(original)
+++
incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernateUserManagerImpl.java
Sat Apr 8 17:16:02 2006
@@ -163,16 +163,7 @@
//
// this.strategy.remove(entry);
// }
-//
-// // remove associated pages
-// Criteria pageQuery = session.createCriteria(WeblogTemplate.class);
-// pageQuery.add(Expression.eq("website", website));
-// List pages = pageQuery.list();
-// for (Iterator iter = pages.iterator(); iter.hasNext();) {
-// WeblogTemplate page = (WeblogTemplate) iter.next();
-// this.strategy.remove(page);
-// }
-//
+
// // remove associated referers
// Criteria refererQuery = session.createCriteria(RefererData.class);
// refererQuery.add(Expression.eq("website", website));
@@ -182,6 +173,16 @@
// this.strategy.remove(referer);
// }
+
+ // remove associated pages
+ Criteria pageQuery = session.createCriteria(WeblogTemplate.class);
+ pageQuery.add(Expression.eq("website", website));
+ List pages = pageQuery.list();
+ for (Iterator iter = pages.iterator(); iter.hasNext();) {
+ WeblogTemplate page = (WeblogTemplate) iter.next();
+ this.strategy.remove(page);
+ }
+
// remove folders (including bookmarks)
FolderData rootFolder = bmgr.getRootFolder(website);
if (null != rootFolder) {
@@ -239,27 +240,8 @@
}
- public void removePage(String id) throws RollerException {
- this.strategy.removeAndCommit(id,WeblogTemplate.class);
- }
-
-
- // TODO: EOL this method, logic about safe pages goes outside the
persistence layer
- public void removePageSafely(String id) throws RollerException {
-
- // TODO: rewrite using page.isRequired()
- WeblogTemplate pd = retrievePageReadOnly(id);
- if (pd == null) return;
-
- WebsiteData wd = pd.getWebsite();
- if (pd.getId() == wd.getDefaultPageId()) {
- log.error(
- "Refusing to remove default page from website with handle:
"
- + wd.getHandle());
- throw new RollerException(
- new IllegalArgumentException("Page is default page of
website."));
- }
- removePage(id);
+ public void removePage(WeblogTemplate page) throws RollerException {
+ this.strategy.removeAndCommit(page);
}
@@ -710,20 +692,6 @@
// Don't hit database for templates stored on disk
if (id != null && id.endsWith(".vm")) return null;
- return (WeblogTemplate)this.strategy.load(id,WeblogTemplate.class);
- }
-
-
- /**
- * @see org.roller.model.UserManager#retrievePage(java.lang.String)
- *
- * TODO: EOL this method, it is useless
- */
- public WeblogTemplate retrievePageReadOnly(String id) throws
RollerException {
- // Don't hit database for templates stored on disk
- if (id != null && id.endsWith(".vm")) return null;
-
- // Hibernate has a read-only flag: LockMode.READ
return (WeblogTemplate)this.strategy.load(id,WeblogTemplate.class);
}
Modified:
incubator/roller/branches/roller-newbackend/src/org/roller/model/UserManager.java
URL:
http://svn.apache.org/viewcvs/incubator/roller/branches/roller-newbackend/src/org/roller/model/UserManager.java?rev=392638&r1=392637&r2=392638&view=diff
==============================================================================
---
incubator/roller/branches/roller-newbackend/src/org/roller/model/UserManager.java
(original)
+++
incubator/roller/branches/roller-newbackend/src/org/roller/model/UserManager.java
Sat Apr 8 17:16:02 2006
@@ -217,35 +217,23 @@
/** Get users pages */
public List getPages(WebsiteData w) throws RollerException;
+
/**
* Get page by ID
*/
public WeblogTemplate retrievePage(String id) throws RollerException;
+
+
/**
* Store page
*/
public void storePage(WeblogTemplate data) throws RollerException;
- /**
- * Remove page by ID
- */
- public void removePage(String id) throws RollerException;
-
- /**
- * Remove page safely. This will throw an exception on attempts to remove
- * mandatory website pages such as the
- * website's default page.
- * @param id id of the page to be removed
- * @throws RollerException with root cause
<code>IllegalArgumentException</code>
- * if the page id is that of
- * a page that will not be removed by this method.
- */
- public void removePageSafely(String id) throws RollerException;
/**
- * Retrieve the Page in read-only mode (does hibernate support this?).
+ * Remove page
*/
- public WeblogTemplate retrievePageReadOnly(String id) throws
RollerException;
+ public void removePage(WeblogTemplate page) throws RollerException;
public void removeWebsite(WebsiteData website) throws RollerException;
Modified:
incubator/roller/branches/roller-newbackend/src/org/roller/presentation/website/actions/WeblogTemplateFormAction.java
URL:
http://svn.apache.org/viewcvs/incubator/roller/branches/roller-newbackend/src/org/roller/presentation/website/actions/WeblogTemplateFormAction.java?rev=392638&r1=392637&r2=392638&view=diff
==============================================================================
---
incubator/roller/branches/roller-newbackend/src/org/roller/presentation/website/actions/WeblogTemplateFormAction.java
(original)
+++
incubator/roller/branches/roller-newbackend/src/org/roller/presentation/website/actions/WeblogTemplateFormAction.java
Sat Apr 8 17:16:02 2006
@@ -78,17 +78,12 @@
UserManager mgr = RollerFactory.getRoller().getUserManager();
mgr.storePage( data );
- RollerFactory.getRoller().commit();
ActionMessages uiMessages = new ActionMessages();
uiMessages.add(ActionMessages.GLOBAL_MESSAGE,
new ActionMessage("pagesForm.addNewPage.success",
data.getName()));
saveMessages(request, uiMessages);
-
- UserData user = rses.getAuthenticatedUser();
- //PageCacheFilter.removeFromCache( request, website );
- //CacheManager.invalidate(data);
actionForm.reset(mapping,request);
@@ -129,12 +124,8 @@
pageModel.setWebsite(pd.getWebsite());
request.setAttribute("model", pageModel);
- UserData ud = rses.getAuthenticatedUser();
WeblogTemplateForm pf = (WeblogTemplateForm)actionForm;
pf.copyFrom(pd, request.getLocale());
-
- //PageCacheFilter.removeFromCache( request, pd.getWebsite() );
- //CacheManager.invalidate(pd);
addModelObjects(request, response, mapping, pd.getWebsite());
}
@@ -214,13 +205,18 @@
RollerSession rses = RollerSession.getRollerSession(request);
if ( rses.isUserAuthorizedToAdmin(website) )
{
- mgr.removePageSafely(template.getId());
- RollerFactory.getRoller().commit();
+ if(!template.isRequired()) {
+
+ mgr.removePage(template);
- UserData user = rses.getAuthenticatedUser();
- //PageCacheFilter.removeFromCache(request,
template.getWebsite());
- CacheManager.invalidate(template);
+ // notify cache
+ CacheManager.invalidate(template);
+ } else {
+ // someone trying to remove a required template
+ throw new RollerException("Cannot remove required page");
+ }
+
addModelObjects(
request, response, mapping, template.getWebsite());
actionForm.reset(mapping, request);
@@ -315,7 +311,6 @@
validateLink( data );
mgr.storePage( data );
- RollerFactory.getRoller().commit();
// set the (possibly) new link back into the Form bean
((WeblogTemplateForm)actionForm).setLink( data.getLink() );
@@ -326,8 +321,6 @@
data.getName()));
saveMessages(request, uiMessages);
- UserData user = rses.getAuthenticatedUser();
- //PageCacheFilter.removeFromCache(request, data.getWebsite());
CacheManager.invalidate(data);
BasePageModel pageModel = new BasePageModel(
Modified:
incubator/roller/branches/roller-newbackend/testdata/WEB-INF/classes/log4j.properties
URL:
http://svn.apache.org/viewcvs/incubator/roller/branches/roller-newbackend/testdata/WEB-INF/classes/log4j.properties?rev=392638&r1=392637&r2=392638&view=diff
==============================================================================
---
incubator/roller/branches/roller-newbackend/testdata/WEB-INF/classes/log4j.properties
(original)
+++
incubator/roller/branches/roller-newbackend/testdata/WEB-INF/classes/log4j.properties
Sat Apr 8 17:16:02 2006
@@ -16,8 +16,10 @@
# logging levels
log4j.category.org.roller=INFO
-log4j.category.org.roller.business.hibernate=DEBUG
+log4j.category.org.roller.business.UserTest=DEBUG
log4j.category.org.roller.business.WeblogTest=DEBUG
-log4j.category.org.hibernate=INFO
-log4j.category.org.apache.struts=INFO
-log4j.category.org.apache.velocity=INFO
+log4j.category.org.roller.business.PermissionTest=DEBUG
+log4j.category.org.roller.business.WeblogPageTest=DEBUG
+log4j.category.org.hibernate=WARN
+log4j.category.org.apache.struts=WARN
+log4j.category.org.apache.velocity=WARN
Modified:
incubator/roller/branches/roller-newbackend/tests/org/roller/business/PermissionTest.java
URL:
http://svn.apache.org/viewcvs/incubator/roller/branches/roller-newbackend/tests/org/roller/business/PermissionTest.java?rev=392638&r1=392637&r2=392638&view=diff
==============================================================================
---
incubator/roller/branches/roller-newbackend/tests/org/roller/business/PermissionTest.java
(original)
+++
incubator/roller/branches/roller-newbackend/tests/org/roller/business/PermissionTest.java
Sat Apr 8 17:16:02 2006
@@ -4,6 +4,8 @@
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.roller.TestUtils;
import org.roller.model.RollerFactory;
import org.roller.model.UserManager;
@@ -30,6 +32,8 @@
*
*/
public class PermissionTest extends TestCase {
+
+ public static Log log = LogFactory.getLog(PermissionTest.class);
UserData testUser = null;
WebsiteData testWeblog = null;
Added:
incubator/roller/branches/roller-newbackend/tests/org/roller/business/WeblogPageTest.java
URL:
http://svn.apache.org/viewcvs/incubator/roller/branches/roller-newbackend/tests/org/roller/business/WeblogPageTest.java?rev=392638&view=auto
==============================================================================
---
incubator/roller/branches/roller-newbackend/tests/org/roller/business/WeblogPageTest.java
(added)
+++
incubator/roller/branches/roller-newbackend/tests/org/roller/business/WeblogPageTest.java
Sat Apr 8 17:16:02 2006
@@ -0,0 +1,126 @@
+/*
+ * WeblogPageTest.java
+ *
+ * Created on April 7, 2006, 2:57 PM
+ */
+
+package org.roller.business;
+
+import java.util.List;
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.roller.TestUtils;
+import org.roller.model.RollerFactory;
+import org.roller.model.UserManager;
+import org.roller.pojos.UserData;
+import org.roller.pojos.WeblogTemplate;
+import org.roller.pojos.WebsiteData;
+
+
+/**
+ * Test WeblogPage related business operations.
+ *
+ * That includes:
+ * - create a template
+ * - update a template
+ * - delete a template
+ * - get a template by id
+ * - get a template by name
+ * - get a template by link
+ *
+ */
+public class WeblogPageTest extends TestCase {
+
+ public static Log log = LogFactory.getLog(WeblogPageTest.class);
+
+ UserData testUser = null;
+ WebsiteData testWeblog = null;
+ WeblogTemplate testPage = null;
+
+
+ public WeblogPageTest(String name) {
+ super(name);
+ }
+
+
+ public static Test suite() {
+ return new TestSuite(WeblogPageTest.class);
+ }
+
+
+ /**
+ * All tests in this suite require a user and a weblog.
+ */
+ public void setUp() throws Exception {
+
+ testUser = TestUtils.setupUser("wtTestUser");
+ testWeblog = TestUtils.setupWeblog("wtTestWeblog", testUser);
+
+ testPage = new WeblogTemplate();
+ testPage.setName("testTemplate");
+ testPage.setDescription("Test Weblog Template");
+ testPage.setLink("testTemp");
+ testPage.setContents("a test weblog template.");
+ testPage.setLastModified(new java.util.Date());
+ testPage.setWebsite(testWeblog);
+ }
+
+ public void tearDown() throws Exception {
+
+ try {
+ TestUtils.teardownWeblog(testWeblog.getHandle());
+ TestUtils.teardownUser(testUser.getUserName());
+ } catch (Exception ex) {
+ log.error(ex);
+ }
+ }
+
+
+ /**
+ * Test basic persistence operations ... Create, Update, Delete
+ */
+ public void testTemplateCRUD() throws Exception {
+
+ UserManager mgr = RollerFactory.getRoller().getUserManager();
+ WeblogTemplate template = null;
+
+ // create template
+ mgr.storePage(testPage);
+
+ // check that create was successful
+ template = null;
+ template = mgr.getPageByName(testWeblog, testPage.getName());
+ assertNotNull(template);
+ assertEquals(testPage.getContents(), template.getContents());
+
+ // update template
+ template.setName("testtesttest");
+ mgr.storePage(template);
+
+ // check that update was successful
+ template = null;
+ template = mgr.getPageByName(testWeblog, "testtesttest");
+ assertNotNull(template);
+ assertEquals(testPage.getContents(), template.getContents());
+
+ // delete template
+ mgr.removePage(template);
+
+ // check that delete was successful
+ template = null;
+ template = mgr.getPageByName(testWeblog, testPage.getName());
+ assertNull(template);
+ }
+
+
+ /**
+ * Test lookup mechanisms ... id, name, link
+ */
+ public void testPermissionsLookups() throws Exception {
+
+ }
+
+}