You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by ag...@apache.org on 2006/04/17 17:23:16 UTC
svn commit: r394696 [1/2] - in /incubator/roller/branches/roller-newbackend:
./ src/org/roller/business/hibernate/ src/org/roller/model/
src/org/roller/presentation/ src/org/roller/presentation/pings/
src/org/roller/presentation/planet/ src/org/roller/...
Author: agilliland
Date: Mon Apr 17 08:23:11 2006
New Revision: 394696
URL: http://svn.apache.org/viewcvs?rev=394696&view=rev
Log:
adding support for Roller.flush() method.
removing explicit transaction demarcation from XXXManager impls.
fixing up unit tests to make sure they call Roller.flush() when appropriate.
Modified:
incubator/roller/branches/roller-newbackend/build.xml
incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernateAutoPingManagerImpl.java
incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernatePersistenceStrategy.java
incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernatePingQueueManagerImpl.java
incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernatePingTargetManagerImpl.java
incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernatePlanetManagerImpl.java
incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernatePropertiesManagerImpl.java
incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernateRollerImpl.java
incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernateUserManagerImpl.java
incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernateWeblogManagerImpl.java
incubator/roller/branches/roller-newbackend/src/org/roller/model/Roller.java
incubator/roller/branches/roller-newbackend/src/org/roller/presentation/RollerContext.java
incubator/roller/branches/roller-newbackend/src/org/roller/presentation/TurnoverReferersTask.java
incubator/roller/branches/roller-newbackend/src/org/roller/presentation/pings/PingQueueTask.java
incubator/roller/branches/roller-newbackend/src/org/roller/presentation/planet/PlanetConfigAction.java
incubator/roller/branches/roller-newbackend/src/org/roller/presentation/planet/PlanetGroupsAction.java
incubator/roller/branches/roller-newbackend/src/org/roller/presentation/planet/PlanetSubscriptionsAction.java
incubator/roller/branches/roller-newbackend/src/org/roller/presentation/planet/RefreshEntriesTask.java
incubator/roller/branches/roller-newbackend/src/org/roller/presentation/planet/SyncWebsitesTask.java
incubator/roller/branches/roller-newbackend/src/org/roller/presentation/servlets/CommentServlet.java
incubator/roller/branches/roller-newbackend/src/org/roller/presentation/servlets/TrackbackServlet.java
incubator/roller/branches/roller-newbackend/src/org/roller/presentation/weblog/actions/BasePingTargetsAction.java
incubator/roller/branches/roller-newbackend/src/org/roller/presentation/weblog/actions/CategoriesAction.java
incubator/roller/branches/roller-newbackend/src/org/roller/presentation/weblog/actions/CategoryDeleteAction.java
incubator/roller/branches/roller-newbackend/src/org/roller/presentation/weblog/actions/CategorySaveAction.java
incubator/roller/branches/roller-newbackend/src/org/roller/presentation/weblog/actions/CommentManagementAction.java
incubator/roller/branches/roller-newbackend/src/org/roller/presentation/weblog/actions/PingSetupAction.java
incubator/roller/branches/roller-newbackend/src/org/roller/presentation/weblog/actions/ReferersAction.java
incubator/roller/branches/roller-newbackend/src/org/roller/presentation/weblog/actions/ToggleLinkbackDisplayAction.java
incubator/roller/branches/roller-newbackend/src/org/roller/presentation/weblog/actions/WeblogEntryFormAction.java
incubator/roller/branches/roller-newbackend/src/org/roller/presentation/website/actions/CreateWebsiteAction.java
incubator/roller/branches/roller-newbackend/src/org/roller/presentation/website/actions/MemberPermissionsAction.java
incubator/roller/branches/roller-newbackend/src/org/roller/presentation/website/actions/RollerPropertiesAction.java
incubator/roller/branches/roller-newbackend/src/org/roller/presentation/website/actions/ThemeEditorAction.java
incubator/roller/branches/roller-newbackend/src/org/roller/presentation/website/actions/UserAdminAction.java
incubator/roller/branches/roller-newbackend/src/org/roller/presentation/website/actions/UserNewAction.java
incubator/roller/branches/roller-newbackend/src/org/roller/presentation/website/actions/WeblogTemplateFormAction.java
incubator/roller/branches/roller-newbackend/src/org/roller/presentation/website/actions/WebsiteFormAction.java
incubator/roller/branches/roller-newbackend/src/org/roller/presentation/website/actions/YourProfileAction.java
incubator/roller/branches/roller-newbackend/src/org/roller/presentation/website/actions/YourWebsitesAction.java
incubator/roller/branches/roller-newbackend/src/org/roller/presentation/xmlrpc/BloggerAPIHandler.java
incubator/roller/branches/roller-newbackend/src/org/roller/presentation/xmlrpc/MetaWeblogAPIHandler.java
incubator/roller/branches/roller-newbackend/tests/org/roller/TestUtils.java
incubator/roller/branches/roller-newbackend/tests/org/roller/business/CommentTest.java
incubator/roller/branches/roller-newbackend/tests/org/roller/business/FileManagerTest.java
incubator/roller/branches/roller-newbackend/tests/org/roller/business/PermissionTest.java
incubator/roller/branches/roller-newbackend/tests/org/roller/business/PingsTest.java
incubator/roller/branches/roller-newbackend/tests/org/roller/business/PlanetManagerTest.java
incubator/roller/branches/roller-newbackend/tests/org/roller/business/PropertiesTest.java
incubator/roller/branches/roller-newbackend/tests/org/roller/business/UserTest.java
incubator/roller/branches/roller-newbackend/tests/org/roller/business/WeblogCategoryTest.java
incubator/roller/branches/roller-newbackend/tests/org/roller/business/WeblogEntryTest.java
incubator/roller/branches/roller-newbackend/tests/org/roller/business/WeblogPageTest.java
incubator/roller/branches/roller-newbackend/tests/org/roller/business/WeblogTest.java
Modified: incubator/roller/branches/roller-newbackend/build.xml
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller-newbackend/build.xml?rev=394696&r1=394695&r2=394696&view=diff
==============================================================================
--- incubator/roller/branches/roller-newbackend/build.xml (original)
+++ incubator/roller/branches/roller-newbackend/build.xml Mon Apr 17 08:23:11 2006
@@ -816,17 +816,18 @@
<formatter type="xml"/>
<batchtest toDir="${build.reports}/business/xml">
<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/PermissionTest.class"/>
- <include name="org/roller/business/WeblogPageTest.class"/>
- <include name="org/roller/business/PingsTest.class"/>
- <include name="org/roller/business/PropertiesTest.class"/>
- <include name="org/roller/business/WeblogEntryTest.class"/>
- <include name="org/roller/business/WeblogCategoryTest.class"/>
- <include name="org/roller/business/FileManagerTest.class"/>
- <include name="org/roller/business/CommentTest.class"/>
- <include name="org/roller/business/PlanetManagerTest.class"/>
+ <!-- UserManager Tests -->
+ <include name="org/roller/business/UserTest.class"/>
+ <include name="org/roller/business/WeblogTest.class"/>
+ <include name="org/roller/business/PermissionTest.class"/>
+ <include name="org/roller/business/WeblogPageTest.class"/>
+ <include name="org/roller/business/PingsTest.class"/>
+ <include name="org/roller/business/PropertiesTest.class"/>
+ <include name="org/roller/business/WeblogEntryTest.class"/>
+ <include name="org/roller/business/WeblogCategoryTest.class"/>
+ <include name="org/roller/business/CommentTest.class"/>
+ <include name="org/roller/business/FileManagerTest.class"/>
+ <include name="org/roller/business/PlanetManagerTest.class"/>
</fileset>
</batchtest>
</junit>
Modified: incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernateAutoPingManagerImpl.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernateAutoPingManagerImpl.java?rev=394696&r1=394695&r2=394696&view=diff
==============================================================================
--- incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernateAutoPingManagerImpl.java (original)
+++ incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernateAutoPingManagerImpl.java Mon Apr 17 08:23:11 2006
@@ -58,21 +58,18 @@
public void storeAutoPing(AutoPingData autoPing) throws RollerException {
- strategy.storeAndCommit(autoPing);
+ strategy.store(autoPing);
}
public void removeAutoPing(AutoPingData autoPing) throws RollerException {
//TODO: first remove all related category restrictions (category restrictions are not yet implemented)
- strategy.removeAndCommit(autoPing);
+ strategy.remove(autoPing);
}
public void removeAutoPing(PingTargetData pingTarget, WebsiteData website) throws RollerException {
try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
Session session = strategy.getSession();
Criteria criteria = session.createCriteria(AutoPingData.class);
@@ -92,29 +89,10 @@
public void removeAutoPings(Collection autopings) throws RollerException {
- try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
- // just go through the list and remove each auto ping
- Iterator pings = autopings.iterator();
- while (pings.hasNext()) {
- this.strategy.remove((AutoPingData) pings.next());
- }
-
- // commit changes
- this.strategy.getSession().getTransaction().commit();
- } catch (HibernateException ex) {
-
- try {
- this.strategy.getSession().getTransaction().rollback();
- } catch(HibernateException he) {
- log.error("Error doing rollback", he);
- }
-
- strategy.release();
-
- throw new RollerException(ex);
+ // just go through the list and remove each auto ping
+ Iterator pings = autopings.iterator();
+ while (pings.hasNext()) {
+ this.strategy.remove((AutoPingData) pings.next());
}
}
@@ -149,9 +127,6 @@
public List getAutoPingsByWebsite(WebsiteData website) throws RollerException {
try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
Session session = ((HibernatePersistenceStrategy) strategy).getSession();
Criteria criteria = session.createCriteria(AutoPingData.class);
// Currently category restrictions are not yet implemented, so we return all auto ping configs for the
@@ -166,9 +141,6 @@
public List getAutoPingsByTarget(PingTargetData pingTarget) throws RollerException {
try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
Session session = ((HibernatePersistenceStrategy) strategy).getSession();
Criteria criteria = session.createCriteria(AutoPingData.class);
// Currently category restrictions are not yet implemented, so we return all auto ping configs for the
@@ -183,9 +155,6 @@
public List getApplicableAutoPings(WeblogEntryData changedWeblogEntry) throws RollerException {
try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
Session session = ((HibernatePersistenceStrategy) strategy).getSession();
Criteria criteria = session.createCriteria(AutoPingData.class);
// Currently category restrictions are not yet implemented, so we return all auto ping configs for the
Modified: incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernatePersistenceStrategy.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernatePersistenceStrategy.java?rev=394696&r1=394695&r2=394696&view=diff
==============================================================================
--- incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernatePersistenceStrategy.java (original)
+++ incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernatePersistenceStrategy.java Mon Apr 17 08:23:11 2006
@@ -68,27 +68,50 @@
* it will return the already open Session.
*/
protected Session getSession() {
- return sessionFactory.getCurrentSession();
+
+ // get Hibernate Session and make sure we are in a transaction
+ // this will join existing Session/Transaction if they exist
+ Session session = sessionFactory.getCurrentSession();
+ session.beginTransaction();
+
+ return session;
+ }
+
+
+ protected void flush() throws RollerException {
+
+ Session session = getSession();
+ try {
+ session.getTransaction().commit();
+ } catch(Throwable t) {
+ // uh oh ... failed persisting, gotta release
+ release();
+ }
}
/**
- * Release database session, rolls back any uncommitted changes.
+ * Release database session, rollback any uncommitted changes.
*/
- protected void release() throws HibernateException {
-
- Session session = this.getSession();
+ protected void release() {
- if(session != null) {
- if(session.isOpen()) {
-
- log.debug("Closing open hibernate session");
+ try {
+ Session session = getSession();
+
+ if(session != null && session.isOpen()) {
- // TODO BACKEND: should we do a rollback()?
- //session.getTransaction().rollback();
+ log.debug("Closing Hibernate Session");
- session.close();
+ try {
+ session.getTransaction().rollback();
+ } catch(Throwable t) {
+ log.error("ERROR doing Hibernate rollback", t);
+ } finally {
+ session.close();
+ }
}
+ } catch(Throwable t) {
+ log.error("ERROR closing Hibernate Session", t);
}
}
@@ -102,9 +125,6 @@
throw new RollerException("Cannot load objects when value is null");
}
- // begin transaction
- getSession().beginTransaction();
-
return (PersistentObject) getSession().get(clazz, id);
}
@@ -165,27 +185,7 @@
* If the commit fails then we rollback and release the session.
*/
protected void storeAndCommit(PersistentObject obj) throws RollerException {
-
- try {
- // begin transaction
- getSession().beginTransaction();
-
- this.store(obj);
-
- // commit changes
- getSession().getTransaction().commit();
- } catch (Throwable ex) {
-
- try {
- getSession().getTransaction().rollback();
- } catch(Throwable he) {
- log.error("Error doing rollback", he);
- }
-
- release();
-
- throw new RollerException(ex);
- }
+ this.store(obj);
}
@@ -210,27 +210,7 @@
* If the commit fails then we rollback and release the session.
*/
protected void storeAndCommit(Collection objects) throws RollerException {
-
- try {
- // begin transaction
- getSession().beginTransaction();
-
- this.store(objects);
-
- // commit changes
- getSession().getTransaction().commit();
- } catch (Throwable ex) {
-
- try {
- getSession().getTransaction().rollback();
- } catch(Throwable he) {
- log.error("Error doing rollback", he);
- }
-
- release();
-
- throw new RollerException(ex);
- }
+ this.store(objects);
}
@@ -245,9 +225,7 @@
Session session = getSession();
- // TODO BACKEND: it seems really inefficient to load and then delete.
PersistentObject obj = (PersistentObject) session.load(clazz,id);
-
session.delete(obj);
}
@@ -263,26 +241,7 @@
throw new RollerException("Cannot remove object when values are null");
}
- try {
- // begin transaction
- getSession().beginTransaction();
-
- this.remove(id, clazz);
-
- // commit changes
- getSession().getTransaction().commit();
- } catch (Throwable ex) {
-
- try {
- getSession().getTransaction().rollback();
- } catch(Throwable he) {
- log.error("Error doing rollback", he);
- }
-
- release();
-
- throw new RollerException(ex);
- }
+ this.remove(id, clazz);
}
@@ -307,27 +266,7 @@
* If the commit fails then we rollback and release the session.
*/
protected void removeAndCommit(Collection ids, Class clazz) throws RollerException {
-
- try {
- // begin transaction
- getSession().beginTransaction();
-
- this.remove(ids, clazz);
-
- // commit changes
- getSession().getTransaction().commit();
- } catch (Throwable ex) {
-
- try {
- getSession().getTransaction().rollback();
- } catch(Throwable he) {
- log.error("Error doing rollback", he);
- }
-
- release();
-
- throw new RollerException(ex);
- }
+ this.remove(ids, clazz);
}
@@ -361,26 +300,7 @@
throw new RollerException("Cannot remove null object");
}
- try {
- // begin transaction
- getSession().beginTransaction();
-
- this.remove(obj);
-
- // commit changes
- getSession().getTransaction().commit();
- } catch (Throwable ex) {
-
- try {
- getSession().getTransaction().rollback();
- } catch(Throwable he) {
- log.error("Error doing rollback", he);
- }
-
- release();
-
- throw new RollerException(ex);
- }
+ this.remove(obj);
}
@@ -405,27 +325,7 @@
* If the commit fails then we rollback and release the session.
*/
protected void removeAndCommit(Collection objects) throws RollerException {
-
- try {
- // begin transaction
- getSession().beginTransaction();
-
- this.remove(objects);
-
- // commit changes
- getSession().getTransaction().commit();
- } catch (Throwable ex) {
-
- try {
- getSession().getTransaction().rollback();
- } catch(Throwable he) {
- log.error("Error doing rollback", he);
- }
-
- release();
-
- throw new RollerException(ex);
- }
+ this.remove(objects);
}
@@ -435,27 +335,7 @@
* If the commit fails then we rollback and release the session.
*/
protected void storeAndCommit(HierarchicalPersistentObject obj) throws RollerException {
-
- try {
- // begin transaction
- getSession().beginTransaction();
-
- this.store(obj);
-
- // commit changes
- getSession().getTransaction().commit();
- } catch (Throwable ex) {
-
- try {
- getSession().getTransaction().rollback();
- } catch(Throwable he) {
- log.error("Error doing rollback", he);
- }
-
- release();
-
- throw new RollerException(ex);
- }
+ this.store(obj);
}
@@ -575,26 +455,7 @@
throw new RollerException("Cannot remove null object");
}
- try {
- // begin transaction
- getSession().beginTransaction();
-
- this.remove(obj);
-
- // commit changes
- getSession().getTransaction().commit();
- } catch (Throwable ex) {
-
- try {
- getSession().getTransaction().rollback();
- } catch(Throwable he) {
- log.error("Error doing rollback", he);
- }
-
- release();
-
- throw new RollerException(ex);
- }
+ this.remove(obj);
}
Modified: incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernatePingQueueManagerImpl.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernatePingQueueManagerImpl.java?rev=394696&r1=394695&r2=394696&view=diff
==============================================================================
--- incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernatePingQueueManagerImpl.java (original)
+++ incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernatePingQueueManagerImpl.java Mon Apr 17 08:23:11 2006
@@ -51,13 +51,13 @@
public void storeQueueEntry(PingQueueEntryData pingQueueEntry) throws RollerException {
log.debug("Storing ping queue entry: " + pingQueueEntry);
- strategy.storeAndCommit(pingQueueEntry);
+ strategy.store(pingQueueEntry);
}
public void removeQueueEntry(PingQueueEntryData pingQueueEntry) throws RollerException {
log.debug("Removing ping queue entry: " + pingQueueEntry);
- strategy.removeAndCommit(pingQueueEntry);
+ strategy.remove(pingQueueEntry);
}
@@ -66,9 +66,6 @@
try {
log.debug("Removing all ping queue entries for ping target " + pingTarget);
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
Session session = strategy.getSession();
Criteria criteria = session.createCriteria(PingQueueEntryData.class);
criteria.add(Expression.eq("pingTarget", pingTarget));
@@ -85,9 +82,6 @@
try {
log.debug("Removing all ping queue entries for website " + website);
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
Session session = ((HibernatePersistenceStrategy) strategy).getSession();
Criteria criteria = session.createCriteria(PingQueueEntryData.class);
criteria.add(Expression.eq("website", website));
@@ -124,9 +118,6 @@
public List getAllQueueEntries() throws RollerException {
try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
Session session = ((HibernatePersistenceStrategy) strategy).getSession();
Criteria criteria = session.createCriteria(PingQueueEntryData.class);
criteria.addOrder(Order.asc("entryTime"));
@@ -141,9 +132,6 @@
// private helper to determine if an has already been queued for the same website and ping target.
private boolean isAlreadyQueued(AutoPingData autoPing) throws RollerException {
try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
Session session = ((HibernatePersistenceStrategy) strategy).getSession();
Criteria criteria = session.createCriteria(PingQueueEntryData.class);
criteria.add(Expression.eq("pingTarget", autoPing.getPingTarget()));
@@ -158,29 +146,10 @@
// Private helper to remove a collection of queue entries
private void removeEntries(Collection queueEntries) throws RollerException {
- try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
- // just go through the list and remove each auto ping
- Iterator entries = queueEntries.iterator();
- while (entries.hasNext()) {
- this.strategy.remove((PingQueueEntryData) entries.next());
- }
-
- // commit changes
- this.strategy.getSession().getTransaction().commit();
- } catch (HibernateException ex) {
-
- try {
- this.strategy.getSession().getTransaction().rollback();
- } catch(HibernateException he) {
- log.error("Error doing rollback", he);
- }
-
- strategy.release();
-
- throw new RollerException(ex);
+ // just go through the list and remove each auto ping
+ Iterator entries = queueEntries.iterator();
+ while (entries.hasNext()) {
+ this.strategy.remove((PingQueueEntryData) entries.next());
}
}
Modified: incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernatePingTargetManagerImpl.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernatePingTargetManagerImpl.java?rev=394696&r1=394695&r2=394696&view=diff
==============================================================================
--- incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernatePingTargetManagerImpl.java (original)
+++ incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernatePingTargetManagerImpl.java Mon Apr 17 08:23:11 2006
@@ -61,7 +61,7 @@
public void storePingTarget(PingTargetData pingTarget) throws RollerException {
- strategy.storeAndCommit(pingTarget);
+ strategy.store(pingTarget);
}
@@ -72,30 +72,11 @@
public void removePingTarget(String id) throws RollerException {
- try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
- PingTargetData pingTarget = retrievePingTarget(id);
-
- // remove contents and then target
- this.removePingTargetContents(pingTarget);
- strategy.remove(pingTarget);
-
- // commit changes
- this.strategy.getSession().getTransaction().commit();
- } catch (Throwable ex) {
-
- try {
- this.strategy.getSession().getTransaction().rollback();
- } catch(Throwable he) {
- log.error("Error doing rollback", he);
- }
-
- strategy.release();
-
- throw new RollerException(ex);
- }
+ PingTargetData pingTarget = retrievePingTarget(id);
+
+ // remove contents and then target
+ this.removePingTargetContents(pingTarget);
+ strategy.remove(pingTarget);
}
@@ -138,9 +119,6 @@
public void removeAllCustomPingTargets() throws RollerException {
try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
Session session = strategy.getSession();
Criteria criteria = session.createCriteria(PingTargetData.class);
criteria.add(Expression.isNotNull("website"));
@@ -155,32 +133,13 @@
// Private helper to remove a collection of targets.
private void removeTargets(Collection customTargets) throws RollerException {
- try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
- // just go through the list and remove each auto ping
- Iterator targets = customTargets.iterator();
- while (targets.hasNext()) {
- this.strategy.remove((PingTargetData) targets.next());
- }
-
- // commit changes
- this.strategy.getSession().getTransaction().commit();
- } catch (Throwable ex) {
-
- try {
- this.strategy.getSession().getTransaction().rollback();
- } catch(Throwable he) {
- log.error("Error doing rollback", he);
- }
-
- strategy.release();
-
- throw new RollerException(ex);
+ // just go through the list and remove each auto ping
+ Iterator targets = customTargets.iterator();
+ while (targets.hasNext()) {
+ this.strategy.remove((PingTargetData) targets.next());
}
}
-
+
public boolean isNameUnique(PingTargetData pingTarget) throws RollerException {
String name = pingTarget.getName();
@@ -248,9 +207,6 @@
*/
public List getCommonPingTargets() throws RollerException {
try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
Session session = ((HibernatePersistenceStrategy) strategy).getSession();
Criteria criteria = session.createCriteria(PingTargetData.class);
criteria.add(Expression.isNull("website"));
@@ -268,9 +224,6 @@
*/
public List getCustomPingTargets(WebsiteData website) throws RollerException {
try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
Session session = ((HibernatePersistenceStrategy) strategy).getSession();
Criteria criteria = session.createCriteria(PingTargetData.class);
criteria.add(Expression.eq("website", website));
Modified: incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernatePlanetManagerImpl.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernatePlanetManagerImpl.java?rev=394696&r1=394695&r2=394696&view=diff
==============================================================================
--- incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernatePlanetManagerImpl.java (original)
+++ incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernatePlanetManagerImpl.java Mon Apr 17 08:23:11 2006
@@ -93,46 +93,27 @@
public void saveGroup(PlanetGroupData group) throws RollerException {
// TODO: decide how to handle saving members of objects
// NOTE: with hibernate, cascade="all" should handle this for us
- try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
- // save each sub assoc first, then the group
- Iterator assocs = group.getGroupSubscriptionAssocs().iterator();
- while (assocs.hasNext()) {
- PlanetGroupSubscriptionAssoc assoc =
- (PlanetGroupSubscriptionAssoc)assocs.next();
- strategy.store(assoc);
- }
- strategy.store(group);
-
- // commit changes
- this.strategy.getSession().getTransaction().commit();
- } catch (HibernateException ex) {
-
- try {
- this.strategy.getSession().getTransaction().rollback();
- } catch(HibernateException he) {
- log.error("Error doing rollback", he);
- }
-
- strategy.release();
-
- throw new RollerException(ex);
- }
+ // save each sub assoc first, then the group
+ Iterator assocs = group.getGroupSubscriptionAssocs().iterator();
+ while (assocs.hasNext()) {
+ PlanetGroupSubscriptionAssoc assoc =
+ (PlanetGroupSubscriptionAssoc)assocs.next();
+ strategy.store(assoc);
+ }
+ strategy.store(group);
}
public void saveEntry(PlanetEntryData entry) throws RollerException {
- strategy.storeAndCommit(entry);
+ strategy.store(entry);
}
public void saveSubscription(PlanetSubscriptionData sub) throws RollerException {
PlanetSubscriptionData existing = getSubscription(sub.getFeedUrl());
if (existing == null || (existing.getId().equals(sub.getId()))) {
- this.strategy.storeAndCommit(sub);
+ this.strategy.store(sub);
} else {
throw new RollerException("ERROR: duplicate feed URLs not allowed");
}
@@ -140,27 +121,24 @@
public void deleteEntry(PlanetEntryData entry) throws RollerException {
- strategy.removeAndCommit(entry);
+ strategy.remove(entry);
}
public void deleteGroup(PlanetGroupData group) throws RollerException {
// TODO: how to remove hierarchical objects
- strategy.removeAndCommit(group);
+ strategy.remove(group);
}
public void deleteSubscription(PlanetSubscriptionData sub) throws RollerException {
- strategy.removeAndCommit(sub);
+ strategy.remove(sub);
}
public PlanetConfigData getConfiguration() throws RollerException {
PlanetConfigData config = null;
try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
Session session = ((HibernatePersistenceStrategy)strategy).getSession();
Criteria criteria = session.createCriteria(PlanetConfigData.class);
criteria.setMaxResults(1);
@@ -182,9 +160,6 @@
public PlanetSubscriptionData getSubscription(String feedUrl) throws RollerException {
try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
Session session = ((HibernatePersistenceStrategy)strategy).getSession();
Criteria criteria =
session.createCriteria(PlanetSubscriptionData.class);
@@ -205,9 +180,6 @@
public Iterator getAllSubscriptions() {
try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
Session session = ((HibernatePersistenceStrategy)strategy).getSession();
Criteria criteria =
session.createCriteria(PlanetSubscriptionData.class);
@@ -222,9 +194,6 @@
public int getSubscriptionCount() throws RollerException {
try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
Session session = ((HibernatePersistenceStrategy)strategy).getSession();
Integer count = (Integer)session.createQuery(
"select count(*) from org.roller.pojos.PlanetSubscriptionData").uniqueResult();
@@ -239,9 +208,6 @@
String groupHandle = NO_GROUP;
List ret = null;
try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
Session session = ((HibernatePersistenceStrategy)strategy).getSession();
Criteria criteria =
session.createCriteria(PlanetSubscriptionData.class);
@@ -259,9 +225,6 @@
String groupHandle = (group == null) ? NO_GROUP : group.getHandle();
List ret = null;
try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
Session session = ((HibernatePersistenceStrategy)strategy).getSession();
Query query = session.createQuery(
"select sub from org.roller.pojos.PlanetSubscriptionData sub "
@@ -281,9 +244,6 @@
public PlanetGroupData getGroup(String handle) throws RollerException {
try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
Session session = strategy.getSession();
Criteria criteria = session.createCriteria(PlanetGroupData.class);
criteria.setMaxResults(1);
@@ -301,9 +261,6 @@
public List getGroups() throws RollerException {
try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
Session session = ((HibernatePersistenceStrategy)strategy).getSession();
Criteria criteria = session.createCriteria(PlanetGroupData.class);
return criteria.list();
@@ -339,9 +296,6 @@
Session session =
((HibernatePersistenceStrategy)strategy).getSession();
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
if (group != null) {
Query query = session.createQuery(
"select entry from org.roller.pojos.PlanetEntryData entry "
@@ -474,6 +428,7 @@
sub.purgeEntries();
sub.addEntries(newEntries);
this.saveSubscription(sub);
+ if(roller != null) roller.flush();
}
long subEndTime = System.currentTimeMillis();
log.info(" " + count + " - "
Modified: incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernatePropertiesManagerImpl.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernatePropertiesManagerImpl.java?rev=394696&r1=394695&r2=394696&view=diff
==============================================================================
--- incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernatePropertiesManagerImpl.java (original)
+++ incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernatePropertiesManagerImpl.java Mon Apr 17 08:23:11 2006
@@ -78,9 +78,6 @@
HashMap props = new HashMap();
try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
Session session = strategy.getSession();
Criteria criteria = session.createCriteria(RollerPropertyData.class);
List list = criteria.list();
@@ -110,7 +107,7 @@
*/
public void store(RollerPropertyData property) throws RollerException {
- this.strategy.storeAndCommit(property);
+ this.strategy.store(property);
}
@@ -119,32 +116,13 @@
*/
public void store(Map properties) throws RollerException {
- try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
- // just go through the list and store each property
- Iterator props = properties.values().iterator();
- while (props.hasNext()) {
- this.strategy.store((RollerPropertyData) props.next());
- }
-
- // commit changes
- this.strategy.getSession().getTransaction().commit();
- } catch (HibernateException ex) {
-
- try {
- this.strategy.getSession().getTransaction().rollback();
- } catch(HibernateException he) {
- log.error("Error doing rollback", he);
- }
-
- strategy.release();
-
- throw new RollerException(ex);
+ // just go through the list and store each property
+ Iterator props = properties.values().iterator();
+ while (props.hasNext()) {
+ this.strategy.store((RollerPropertyData) props.next());
}
}
-
+
private void init() {
Map props = null;
Modified: incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernateRollerImpl.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernateRollerImpl.java?rev=394696&r1=394695&r2=394696&view=diff
==============================================================================
--- incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernateRollerImpl.java (original)
+++ incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernateRollerImpl.java Mon Apr 17 08:23:11 2006
@@ -71,6 +71,41 @@
}
+ public void flush() throws RollerException {
+ this.strategy.flush();
+ }
+
+
+ public void release() {
+
+ // release our own stuff first
+ if (bookmarkManager != null) bookmarkManager.release();
+ if (configManager != null) configManager.release();
+ if (refererManager != null) refererManager.release();
+ if (userManager != null) userManager.release();
+ if (weblogManager != null) weblogManager.release();
+ if (pingTargetManager != null) pingTargetManager.release();
+ if (pingQueueManager != null) pingQueueManager.release();
+ if (autoPingManager != null) autoPingManager.release();
+
+ // tell Hibernate to close down
+ this.strategy.release();
+
+ // then let parent do its thing
+ super.release();
+ }
+
+
+ public void shutdown() {
+
+ // do our own shutdown first
+ this.release();
+
+ // then let parent do its thing
+ super.shutdown();
+ }
+
+
public void commit() throws RollerException {
//strategy.commit();
}
@@ -176,39 +211,6 @@
pingTargetManager = new HibernatePingTargetManagerImpl(strategy);
}
return pingTargetManager;
- }
-
-
- public void release() {
-
- // release our own stuff first
- if (bookmarkManager != null) bookmarkManager.release();
- if (configManager != null) configManager.release();
- if (refererManager != null) refererManager.release();
- if (userManager != null) userManager.release();
- if (weblogManager != null) weblogManager.release();
- if (pingTargetManager != null) pingTargetManager.release();
- if (pingQueueManager != null) pingQueueManager.release();
- if (autoPingManager != null) autoPingManager.release();
-
- try {
- if (strategy != null) strategy.release();
- } catch (Throwable e) {
- mLogger.error("Error calling Roller.release()", e);
- }
-
- // then let parent do its thing
- super.release();
- }
-
-
- public void shutdown() {
-
- // do our own shutdown first
- this.release();
-
- // then let parent do its thing
- super.shutdown();
}
}
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=394696&r1=394695&r2=394696&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 Mon Apr 17 08:23:11 2006
@@ -65,76 +65,37 @@
* @see org.roller.model.UserManager#storeWebsite(org.roller.pojos.WebsiteData)
*/
public void storeWebsite(WebsiteData data) throws RollerException {
- this.strategy.storeAndCommit(data);
+ this.strategy.store(data);
}
public void storeWebsites(Collection weblogs) throws RollerException {
- this.strategy.storeAndCommit(weblogs);
+ this.strategy.store(weblogs);
}
public void removeWebsite(String id) throws RollerException {
- try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
- // load the weblog first
- WebsiteData weblog = (WebsiteData) this.strategy.load(id, WebsiteData.class);
-
- // remove contents first, then remove website
- this.removeWebsiteContents(weblog);
- this.strategy.remove(weblog);
-
- // commit changes
- this.strategy.getSession().getTransaction().commit();
- } catch (Throwable ex) {
-
- try {
- this.strategy.getSession().getTransaction().rollback();
- } catch(Throwable he) {
- log.error("Error doing rollback", he);
- }
-
- strategy.release();
-
- throw new RollerException(ex);
- }
+ // load the weblog first
+ WebsiteData weblog = (WebsiteData) this.strategy.load(id, WebsiteData.class);
+
+ // remove it
+ this.removeWebsite(weblog);
}
public void removeWebsite(WebsiteData weblog) throws RollerException {
- try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
- // remove contents first, then remove website
- this.removeWebsiteContents(weblog);
- this.strategy.remove(weblog);
-
- // commit changes
- this.strategy.getSession().getTransaction().commit();
- } catch (Throwable ex) {
-
- try {
- this.strategy.getSession().getTransaction().rollback();
- } catch(Throwable he) {
- log.error("Error doing rollback", he);
- }
-
- strategy.release();
-
- throw new RollerException(ex);
- }
+ // remove contents first, then remove website
+ this.removeWebsiteContents(weblog);
+ this.strategy.remove(weblog);
}
-
+
/**
* convenience method for removing contents of a weblog.
*
- * TODO BACKEND: we may be able to do this faster using Hibernate delete statements.
+ * TODO BACKEND: use manager methods instead of queries here
*/
private void removeWebsiteContents(WebsiteData website)
throws HibernateException, RollerException {
@@ -218,7 +179,7 @@
public void storeUser(UserData data) throws RollerException {
- this.strategy.storeAndCommit(data);
+ this.strategy.store(data);
}
@@ -226,32 +187,32 @@
* Store a collection of users in a single transaction.
*/
public void storeUsers(Collection users) throws RollerException {
- this.strategy.storeAndCommit(users);
+ this.strategy.store(users);
}
public void removeUser(UserData user) throws RollerException {
- this.strategy.removeAndCommit(user);
+ this.strategy.remove(user);
}
public void removeUser(String id) throws RollerException {
- this.strategy.removeAndCommit(id,UserData.class);
+ this.strategy.remove(id,UserData.class);
}
public void storePermissions(PermissionsData perms) throws RollerException {
- this.strategy.storeAndCommit(perms);
+ this.strategy.store(perms);
}
public void storePermissions(Collection permissions) throws RollerException {
- this.strategy.storeAndCommit(permissions);
+ this.strategy.store(permissions);
}
public void removePermissions(PermissionsData perms) throws RollerException {
- this.strategy.removeAndCommit(perms);
+ this.strategy.remove(perms);
}
@@ -259,12 +220,12 @@
* @see org.roller.model.UserManager#storePage(org.roller.pojos.WeblogTemplate)
*/
public void storePage(WeblogTemplate data) throws RollerException {
- this.strategy.storeAndCommit(data);
+ this.strategy.store(data);
}
public void removePage(WeblogTemplate page) throws RollerException {
- this.strategy.removeAndCommit(page);
+ this.strategy.remove(page);
}
@@ -294,75 +255,36 @@
adminUser = true;
}
- try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
+ UserData newUser = null;
+ Iterator items = users.iterator();
+ while(items.hasNext()) {
+ newUser = (UserData) items.next();
- UserData newUser = null;
- Iterator items = users.iterator();
- while(items.hasNext()) {
- newUser = (UserData) items.next();
-
- if(getUser(newUser.getUserName()) != null ||
- getUser(newUser.getUserName().toLowerCase()) != null) {
- throw new RollerException("error.add.user.userNameInUse");
- }
-
- newUser.grantRole("editor");
- if(adminUser) {
- newUser.grantRole("admin");
- }
-
- this.strategy.store(newUser);
+ if(getUser(newUser.getUserName()) != null ||
+ getUser(newUser.getUserName().toLowerCase()) != null) {
+ throw new RollerException("error.add.user.userNameInUse");
}
-
- // commit changes
- this.strategy.getSession().getTransaction().commit();
- } catch (Throwable ex) {
- try {
- this.strategy.getSession().getTransaction().rollback();
- } catch(Throwable he) {
- log.error("Error doing rollback", he);
+ newUser.grantRole("editor");
+ if(adminUser) {
+ newUser.grantRole("admin");
}
- strategy.release();
-
- throw new RollerException(ex);
+ this.strategy.store(newUser);
}
}
public void addWebsites(Collection weblogs) throws RollerException {
- try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
- // store the new weblogs
- WebsiteData newWeblog = null;
- Iterator items = weblogs.iterator();
- while(items.hasNext()) {
- newWeblog = (WebsiteData) items.next();
-
- this.strategy.store(newWeblog);
- this.addWeblogContents(newWeblog);
- }
-
- // commit changes
- this.strategy.getSession().getTransaction().commit();
+ // store the new weblogs
+ WebsiteData newWeblog = null;
+ Iterator items = weblogs.iterator();
+ while(items.hasNext()) {
+ newWeblog = (WebsiteData) items.next();
- } catch (Throwable ex) {
-
- try {
- this.strategy.getSession().getTransaction().rollback();
- } catch(Throwable he) {
- log.error("Error doing rollback", he);
- }
-
- strategy.release();
-
- throw new RollerException(ex);
+ this.strategy.store(newWeblog);
+ this.addWeblogContents(newWeblog);
}
}
@@ -377,7 +299,7 @@
}
- private void addWeblogContents(WebsiteData newWeblog) throws Exception {
+ private void addWeblogContents(WebsiteData newWeblog) throws RollerException {
UserManager umgr = RollerFactory.getRoller().getUserManager();
WeblogManager wmgr = RollerFactory.getRoller().getWeblogManager();
@@ -448,6 +370,8 @@
/**
* The old createWebsite() method.
+ *
+ * TODO BACKEND: EOL this method.
*/
public WebsiteData createWebsite(UserData user, Map pages, String handle,
String name, String description,
@@ -500,7 +424,7 @@
perms.setWebsite(website);
perms.setUser(user);
perms.setPermissionMask(mask);
- this.strategy.storeAndCommit(perms);
+ this.strategy.store(perms);
return perms;
}
@@ -509,7 +433,7 @@
/**
* Remove user permissions from a website.
*
- * TODO BACKEND: EOL this method? we can just use storePermission()
+ * TODO: replace this with a domain model method like weblog.retireUser(user)
*/
public void retireUser(WebsiteData website, UserData user) throws RollerException {
@@ -528,12 +452,12 @@
if (target == null) throw new RollerException("User not member of website");
website.removePermission(target);
- this.strategy.removeAndCommit(target);
+ this.strategy.remove(target);
}
public WebsiteData retrieveWebsite(String id) throws RollerException {
- return (WebsiteData)this.strategy.load(id,WebsiteData.class);
+ return (WebsiteData) this.strategy.load(id,WebsiteData.class);
}
@@ -552,9 +476,6 @@
throw new RollerException("Handle cannot be null");
try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
Session session = ((HibernatePersistenceStrategy)this.strategy).getSession();
Criteria criteria = session.createCriteria(WebsiteData.class);
if (enabled != null) {
@@ -581,9 +502,6 @@
public List getWebsites(UserData user, Boolean enabled, Boolean active) throws RollerException {
try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
Session session = ((HibernatePersistenceStrategy)this.strategy).getSession();
Criteria criteria = session.createCriteria(WebsiteData.class);
if (user != null) {
@@ -621,9 +539,6 @@
throw new RollerException("userName cannot be null");
try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
Session session = ((HibernatePersistenceStrategy)this.strategy).getSession();
Criteria criteria = session.createCriteria(UserData.class);
if (enabled != null) {
@@ -651,9 +566,6 @@
public List getUsers(Boolean enabled) throws RollerException {
try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
Session session = ((HibernatePersistenceStrategy)this.strategy).getSession();
Criteria criteria = session.createCriteria(UserData.class);
if (enabled != null) {
@@ -673,9 +585,6 @@
public List getUsers(WebsiteData website, Boolean enabled) throws RollerException {
try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
Session session = ((HibernatePersistenceStrategy)this.strategy).getSession();
Criteria criteria = session.createCriteria(UserData.class);
if (website != null) {
@@ -698,9 +607,6 @@
List rawresults = new ArrayList();
List results = new ArrayList();
try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
Session session = ((HibernatePersistenceStrategy)this.strategy).getSession();
Criteria criteria = session.createCriteria(UserData.class);
@@ -752,9 +658,6 @@
throw new RollerException("Pagelink is null");
try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
Session session = ((HibernatePersistenceStrategy)this.strategy).getSession();
Criteria criteria = session.createCriteria(WeblogTemplate.class);
criteria.add(Expression.eq("website",website));
@@ -782,9 +685,6 @@
throw new RollerException("Page name is null");
try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
Session session = ((HibernatePersistenceStrategy)this.strategy).getSession();
Criteria criteria = session.createCriteria(WeblogTemplate.class);
criteria.add(Expression.eq("website", website));
@@ -808,9 +708,6 @@
throw new RollerException("website is null");
try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
Session session = ((HibernatePersistenceStrategy)this.strategy).getSession();
Criteria criteria = session.createCriteria(WeblogTemplate.class);
criteria.add(Expression.eq("website",website));
@@ -835,9 +732,6 @@
WebsiteData website, UserData user) throws RollerException {
try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
Session session = ((HibernatePersistenceStrategy)this.strategy).getSession();
Criteria criteria = session.createCriteria(PermissionsData.class);
criteria.add(Expression.eq("website", website));
@@ -857,9 +751,6 @@
public List getPendingPermissions(UserData user) throws RollerException {
try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
Session session = ((HibernatePersistenceStrategy)this.strategy).getSession();
Criteria criteria = session.createCriteria(PermissionsData.class);
criteria.add(Expression.eq("user", user));
@@ -878,9 +769,6 @@
public List getPendingPermissions(WebsiteData website) throws RollerException {
try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
Session session = ((HibernatePersistenceStrategy)this.strategy).getSession();
Criteria criteria = session.createCriteria(PermissionsData.class);
criteria.add(Expression.eq("website", website));
@@ -899,9 +787,6 @@
public List getAllPermissions(WebsiteData website) throws RollerException {
try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
Session session = ((HibernatePersistenceStrategy)this.strategy).getSession();
Criteria criteria = session.createCriteria(PermissionsData.class);
criteria.add(Expression.eq("website", website));
@@ -920,9 +805,6 @@
public List getAllPermissions(UserData user) throws RollerException {
try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
Session session = ((HibernatePersistenceStrategy)this.strategy).getSession();
Criteria criteria = session.createCriteria(PermissionsData.class);
criteria.add(Expression.eq("user", user));
Modified: incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernateWeblogManagerImpl.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernateWeblogManagerImpl.java?rev=394696&r1=394695&r2=394696&view=diff
==============================================================================
--- incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernateWeblogManagerImpl.java (original)
+++ incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernateWeblogManagerImpl.java Mon Apr 17 08:23:11 2006
@@ -85,7 +85,7 @@
throw new RollerException("Duplicate category name");
}
- this.strategy.storeAndCommit(cat);
+ this.strategy.store(cat);
}
@@ -95,43 +95,21 @@
throw new RollerException("Cannot remove category with entries");
}
- try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
- // remove cat
- this.strategy.remove(cat);
-
- // update website default cats if needed
- if(cat.getWebsite().getBloggerCategory().equals(cat)) {
- WeblogCategoryData rootCat = this.getRootWeblogCategory(cat.getWebsite());
- cat.getWebsite().setBloggerCategory(rootCat);
- this.strategy.store(cat.getWebsite());
- }
-
- if(cat.getWebsite().getDefaultCategory().equals(cat)) {
- WeblogCategoryData rootCat = this.getRootWeblogCategory(cat.getWebsite());
- cat.getWebsite().setDefaultCategory(rootCat);
- this.strategy.store(cat.getWebsite());
- }
-
- // commit changes
- this.strategy.getSession().getTransaction().commit();
- } catch (Throwable ex) {
-
- try {
- this.strategy.getSession().getTransaction().rollback();
- } catch(Throwable he) {
- log.error("Error doing rollback", he);
- }
-
- strategy.release();
-
- throw new RollerException(ex);
- }
-
+ // remove cat
+ this.strategy.remove(cat);
+ // update website default cats if needed
+ if(cat.getWebsite().getBloggerCategory().equals(cat)) {
+ WeblogCategoryData rootCat = this.getRootWeblogCategory(cat.getWebsite());
+ cat.getWebsite().setBloggerCategory(rootCat);
+ this.strategy.store(cat.getWebsite());
+ }
+ if(cat.getWebsite().getDefaultCategory().equals(cat)) {
+ WeblogCategoryData rootCat = this.getRootWeblogCategory(cat.getWebsite());
+ cat.getWebsite().setDefaultCategory(rootCat);
+ this.strategy.store(cat.getWebsite());
+ }
}
@@ -151,77 +129,58 @@
public void moveWeblogCategoryContents(String srcId, String destId)
throws RollerException {
- try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
- WeblogCategoryData srcCd =
- (WeblogCategoryData) this.strategy.load(
- srcId, WeblogCategoryData.class);
-
- WeblogCategoryData destCd =
- (WeblogCategoryData) this.strategy.load(
- destId, WeblogCategoryData.class);
-
- // TODO: this check should be made before calling this method?
- if (destCd.descendentOf(srcCd)) {
- throw new RollerException(
- "ERROR cannot move parent category into it's own child");
- }
-
- // get all entries in category and subcats
- List results = retrieveWeblogEntries(srcCd, true);
-
- // Loop through entries in src cat, assign them to dest cat
- Iterator iter = results.iterator();
- WebsiteData website = destCd.getWebsite();
- while (iter.hasNext()) {
- WeblogEntryData entry = (WeblogEntryData) iter.next();
- entry.setCategory(destCd);
- entry.setWebsite(website);
- this.strategy.store(entry);
- }
-
- // Make sure website's default and bloggerapi categories
- // are valid after the move
-
- if (srcCd.getWebsite().getDefaultCategory().getId().equals(srcId)
- || srcCd.getWebsite().getDefaultCategory().descendentOf(srcCd)) {
- srcCd.getWebsite().setDefaultCategory(destCd);
- this.strategy.store(srcCd.getWebsite());
- }
-
- if (srcCd.getWebsite().getBloggerCategory().getId().equals(srcId)
- || srcCd.getWebsite().getBloggerCategory().descendentOf(srcCd)) {
- srcCd.getWebsite().setBloggerCategory(destCd);
- this.strategy.store(srcCd.getWebsite());
- }
-
- // commit changes
- this.strategy.getSession().getTransaction().commit();
- } catch (Throwable ex) {
-
- try {
- this.strategy.getSession().getTransaction().rollback();
- } catch(Throwable he) {
- log.error("Error doing rollback", he);
- }
-
- strategy.release();
-
- throw new RollerException(ex);
+ WeblogCategoryData srcCd =
+ (WeblogCategoryData) this.strategy.load(
+ srcId, WeblogCategoryData.class);
+
+ WeblogCategoryData destCd =
+ (WeblogCategoryData) this.strategy.load(
+ destId, WeblogCategoryData.class);
+
+ // TODO: this check should be made before calling this method?
+ if (destCd.descendentOf(srcCd)) {
+ throw new RollerException(
+ "ERROR cannot move parent category into it's own child");
+ }
+
+ // get all entries in category and subcats
+ List results = retrieveWeblogEntries(srcCd, true);
+
+ // Loop through entries in src cat, assign them to dest cat
+ Iterator iter = results.iterator();
+ WebsiteData website = destCd.getWebsite();
+ while (iter.hasNext()) {
+ WeblogEntryData entry = (WeblogEntryData) iter.next();
+ entry.setCategory(destCd);
+ entry.setWebsite(website);
+ this.strategy.store(entry);
+ }
+
+ // Make sure website's default and bloggerapi categories
+ // are valid after the move
+
+ if (srcCd.getWebsite().getDefaultCategory().getId().equals(srcId)
+ || srcCd.getWebsite().getDefaultCategory().descendentOf(srcCd)) {
+ srcCd.getWebsite().setDefaultCategory(destCd);
+ this.strategy.store(srcCd.getWebsite());
+ }
+
+ if (srcCd.getWebsite().getBloggerCategory().getId().equals(srcId)
+ || srcCd.getWebsite().getBloggerCategory().descendentOf(srcCd)) {
+ srcCd.getWebsite().setBloggerCategory(destCd);
+ this.strategy.store(srcCd.getWebsite());
}
}
// TODO BACKEND: rename to storeComment() for consistency
public void saveComment(CommentData comment) throws RollerException {
- this.strategy.storeAndCommit(comment);
+ this.strategy.store(comment);
}
public void removeComment(String id) throws RollerException {
- this.strategy.removeAndCommit(id, CommentData.class);
+ this.strategy.remove(id, CommentData.class);
}
@@ -233,28 +192,9 @@
return;
}
- try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
- // just go through the list and remove each id
- for(int i=0; i < ids.length; i++) {
- this.strategy.remove(ids[i], CommentData.class);
- }
-
- // commit changes
- this.strategy.getSession().getTransaction().commit();
- } catch (Throwable ex) {
-
- try {
- this.strategy.getSession().getTransaction().rollback();
- } catch(Throwable he) {
- log.error("Error doing rollback", he);
- }
-
- strategy.release();
-
- throw new RollerException(ex);
+ // just go through the list and remove each id
+ for(int i=0; i < ids.length; i++) {
+ this.strategy.remove(ids[i], CommentData.class);
}
}
@@ -291,29 +231,10 @@
return;
}
- try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
- // just go through the list and remove each commentsIT
- Iterator commentsIT = comments.iterator();
- while (commentsIT.hasNext()) {
- this.strategy.remove((CommentData) commentsIT.next());
- }
-
- // commit changes
- this.strategy.getSession().getTransaction().commit();
- } catch (Throwable ex) {
-
- try {
- this.strategy.getSession().getTransaction().rollback();
- } catch(Throwable he) {
- log.error("Error doing rollback", he);
- }
-
- strategy.release();
-
- throw new RollerException(ex);
+ // just go through the list and remove each commentsIT
+ Iterator commentsIT = comments.iterator();
+ while (commentsIT.hasNext()) {
+ this.strategy.remove((CommentData) commentsIT.next());
}
}
@@ -324,7 +245,7 @@
entry.setAnchor(this.createAnchor(entry));
}
- this.strategy.storeAndCommit(entry);
+ this.strategy.store(entry);
if(entry.isPublished()) {
// Queue applicable pings for this update.
@@ -335,112 +256,73 @@
public void removeWeblogEntry(WeblogEntryData entry) throws RollerException {
- try {
- Session session = ((HibernatePersistenceStrategy)this.strategy).getSession();
-
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
- // remove referers
- Criteria refererQuery = session.createCriteria(RefererData.class);
- refererQuery.add(Expression.eq("weblogEntry", entry));
- List referers = refererQuery.list();
- for (Iterator iter = referers.iterator(); iter.hasNext();) {
- RefererData referer = (RefererData) iter.next();
- this.strategy.remove(referer);
- }
-
- // remove comments
- List comments = getComments(
- null, // website
- entry,
- null, // search String
- null, // startDate
- null, // endDate
- null, // pending
- null, // approved
- null, // spam
- true, // reverse chrono order (not that it matters)
- 0, // offset
- -1); // no limit
- Iterator commentsIT = comments.iterator();
- while (commentsIT.hasNext()) {
- this.strategy.remove((CommentData) commentsIT.next());
- }
-
- // remove entry
- this.strategy.remove(entry);
-
- // commit changes
- this.strategy.getSession().getTransaction().commit();
- } catch (Throwable ex) {
-
- try {
- this.strategy.getSession().getTransaction().rollback();
- } catch(Throwable he) {
- log.error("Error doing rollback", he);
- }
-
- strategy.release();
-
- throw new RollerException(ex);
+ Session session = ((HibernatePersistenceStrategy)this.strategy).getSession();
+
+ // remove referers
+ Criteria refererQuery = session.createCriteria(RefererData.class);
+ refererQuery.add(Expression.eq("weblogEntry", entry));
+ List referers = refererQuery.list();
+ for (Iterator iter = referers.iterator(); iter.hasNext();) {
+ RefererData referer = (RefererData) iter.next();
+ this.strategy.remove(referer);
+ }
+
+ // remove comments
+ List comments = getComments(
+ null, // website
+ entry,
+ null, // search String
+ null, // startDate
+ null, // endDate
+ null, // pending
+ null, // approved
+ null, // spam
+ true, // reverse chrono order (not that it matters)
+ 0, // offset
+ -1); // no limit
+ Iterator commentsIT = comments.iterator();
+ while (commentsIT.hasNext()) {
+ this.strategy.remove((CommentData) commentsIT.next());
}
+
+ // remove entry
+ this.strategy.remove(entry);
}
- private void removeWeblogEntryContents(WeblogEntryData entry)
- throws RollerException {
+ private void removeWeblogEntryContents(WeblogEntryData entry) throws RollerException {
if(entry == null) {
throw new RollerException("cannot remove null entry");
}
- try {
- Session session = ((HibernatePersistenceStrategy)this.strategy).getSession();
-
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
- // remove referers
- Criteria refererQuery = session.createCriteria(RefererData.class);
- refererQuery.add(Expression.eq("weblogEntry", entry));
- List referers = refererQuery.list();
- for (Iterator iter = referers.iterator(); iter.hasNext();) {
- RefererData referer = (RefererData) iter.next();
- this.strategy.remove(referer);
- }
-
- // remove comments
- List comments = getComments(
- null, // website
- entry,
- null, // search String
- null, // startDate
- null, // endDate
- null, // pending
- null, // approved
- null, // spam
- true, // reverse chrono order (not that it matters)
- 0, // offset
- -1); // no limit
- Iterator commentsIT = comments.iterator();
- while (commentsIT.hasNext()) {
- this.strategy.remove((CommentData) commentsIT.next());
- }
-
- // commit changes
- this.strategy.getSession().getTransaction().commit();
- } catch (Throwable ex) {
-
- try {
- this.strategy.getSession().getTransaction().rollback();
- } catch(Throwable he) {
- log.error("Error doing rollback", he);
- }
-
- strategy.release();
-
- throw new RollerException(ex);
+ Session session = ((HibernatePersistenceStrategy)this.strategy).getSession();
+
+ // remove referers
+ Criteria refererQuery = session.createCriteria(RefererData.class);
+ refererQuery.add(Expression.eq("weblogEntry", entry));
+ List referers = refererQuery.list();
+ for (Iterator iter = referers.iterator(); iter.hasNext();) {
+ RefererData referer = (RefererData) iter.next();
+ this.strategy.remove(referer);
+ }
+
+ // remove comments
+ List comments = getComments(
+ null, // website
+ entry,
+ null, // search String
+ null, // startDate
+ null, // endDate
+ null, // pending
+ null, // approved
+ null, // spam
+ true, // reverse chrono order (not that it matters)
+ 0, // offset
+ -1); // no limit
+ Iterator commentsIT = comments.iterator();
+ while (commentsIT.hasNext()) {
+ this.strategy.remove((CommentData) commentsIT.next());
}
}
@@ -472,9 +354,6 @@
}
try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
Session session = ((HibernatePersistenceStrategy)this.strategy).getSession();
Criteria criteria = session.createCriteria(WeblogEntryData.class);
criteria.addOrder(next ? Order.asc("pubTime") : Order.desc("pubTime"));
@@ -493,9 +372,6 @@
throw new RollerException("website is null");
try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
Session session = ((HibernatePersistenceStrategy)this.strategy).getSession();
Criteria criteria = session.createCriteria(WeblogCategoryAssoc.class);
criteria.createAlias("category","c");
@@ -521,9 +397,6 @@
if (includeRoot) return getWeblogCategories(website);
try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
Session session = ((HibernatePersistenceStrategy)this.strategy).getSession();
Criteria criteria = session.createCriteria(WeblogCategoryAssoc.class);
criteria.createAlias("category", "c");
@@ -547,9 +420,6 @@
throw new RollerException("website is null");
try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
Session session = ((HibernatePersistenceStrategy)this.strategy).getSession();
Criteria criteria = session.createCriteria(WeblogCategoryData.class);
criteria.add(Expression.eq("website", website));
@@ -577,9 +447,6 @@
}
try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
Session session = ((HibernatePersistenceStrategy)this.strategy).getSession();
Criteria criteria = session.createCriteria(WeblogEntryData.class);
@@ -626,9 +493,6 @@
public List getWeblogEntriesPinnedToMain(Integer max) throws RollerException {
try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
Session session = ((HibernatePersistenceStrategy)this.strategy).getSession();
Criteria criteria = session.createCriteria(WeblogEntryData.class);
criteria.add(Expression.eq("pinnedToMain", Boolean.TRUE));
@@ -653,9 +517,6 @@
try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
Session session = ((HibernatePersistenceStrategy)this.strategy).getSession();
Criteria criteria = session.createCriteria(WeblogEntryData.class);
criteria.add(Expression.conjunction()
@@ -684,9 +545,6 @@
}
try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
Session session = ((HibernatePersistenceStrategy)this.strategy).getSession();
Criteria criteria = session.createCriteria(WeblogEntryData.class);
criteria.add(Expression.eq("status", WeblogEntryData.PUBLISHED));
@@ -718,9 +576,6 @@
public List retrieveWeblogEntries(WeblogCategoryData cat, boolean subcats)
throws RollerException {
try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
Session session = ((HibernatePersistenceStrategy)this.strategy).getSession();
List entries = new LinkedList();
@@ -773,9 +628,6 @@
name = base + count;
}
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
Session session = ((HibernatePersistenceStrategy)this.strategy).getSession();
Criteria criteria = session.createCriteria(WeblogEntryData.class);
criteria.add(Expression.eq("website", entry.getWebsite()));
@@ -805,9 +657,6 @@
{
List sameNames;
try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
Session session = ((HibernatePersistenceStrategy)this.strategy).getSession();
Criteria criteria = session.createCriteria(WeblogCategoryAssoc.class);
criteria.createAlias("category", "c");
@@ -828,9 +677,6 @@
public boolean isWeblogCategoryInUse(WeblogCategoryData cat)
throws RollerException {
try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
Session session = ((HibernatePersistenceStrategy)this.strategy).getSession();
Criteria criteria = session.createCriteria(WeblogEntryData.class);
criteria.add(Expression.eq("category", cat));
@@ -868,9 +714,6 @@
throws RollerException {
boolean ret = false;
try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
Session session = ((HibernatePersistenceStrategy)this.strategy).getSession();
Criteria criteria = session.createCriteria(WeblogCategoryAssoc.class);
criteria.add(Expression.eq("category", child));
@@ -885,9 +728,6 @@
public Assoc getWeblogCategoryParentAssoc(WeblogCategoryData cat)
throws RollerException {
try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
Session session = ((HibernatePersistenceStrategy)this.strategy).getSession();
Criteria criteria = session.createCriteria(WeblogCategoryAssoc.class);
criteria.add(Expression.eq("category", cat));
@@ -908,9 +748,6 @@
public List getWeblogCategoryChildAssocs(WeblogCategoryData cat)
throws RollerException {
try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
Session session = ((HibernatePersistenceStrategy)this.strategy).getSession();
Criteria criteria = session.createCriteria(WeblogCategoryAssoc.class);
criteria.add(Expression.eq("ancestorCategory", cat));
@@ -924,9 +761,6 @@
public List getAllWeblogCategoryDecscendentAssocs(WeblogCategoryData cat)
throws RollerException {
try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
Session session = ((HibernatePersistenceStrategy)this.strategy).getSession();
Criteria criteria = session.createCriteria(WeblogCategoryAssoc.class);
criteria.add(Expression.eq("ancestorCategory", cat));
@@ -939,9 +773,6 @@
public List getWeblogCategoryAncestorAssocs(WeblogCategoryData cat)
throws RollerException {
try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
Session session = ((HibernatePersistenceStrategy)this.strategy).getSession();
Criteria criteria = session.createCriteria(WeblogCategoryAssoc.class);
criteria.add(Expression.eq("category", cat));
@@ -966,9 +797,6 @@
) throws RollerException {
try {
- // begin transaction
- this.strategy.getSession().beginTransaction();
-
Session session = ((HibernatePersistenceStrategy)this.strategy).getSession();
Criteria criteria = session.createCriteria(CommentData.class);
@@ -1272,11 +1100,3 @@
public void release() {}
}
-
-
-
-
-
-
-
-
Modified: incubator/roller/branches/roller-newbackend/src/org/roller/model/Roller.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller-newbackend/src/org/roller/model/Roller.java?rev=394696&r1=394695&r2=394696&view=diff
==============================================================================
--- incubator/roller/branches/roller-newbackend/src/org/roller/model/Roller.java (original)
+++ incubator/roller/branches/roller-newbackend/src/org/roller/model/Roller.java Mon Apr 17 08:23:11 2006
@@ -9,10 +9,8 @@
/**
* The main entry point interface of the Roller business tier.
- *
- * @author David M Johnson
*/
-public interface Roller extends Serializable {
+public interface Roller {
/**
@@ -121,6 +119,12 @@
* Upgrade database if needed.
*/
public void upgradeDatabase(Connection con) throws RollerException;
+
+
+ /**
+ * Flush object states.
+ */
+ public void flush() throws RollerException;
/**
Modified: incubator/roller/branches/roller-newbackend/src/org/roller/presentation/RollerContext.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller-newbackend/src/org/roller/presentation/RollerContext.java?rev=394696&r1=394695&r2=394696&view=diff
==============================================================================
--- incubator/roller/branches/roller-newbackend/src/org/roller/presentation/RollerContext.java (original)
+++ incubator/roller/branches/roller-newbackend/src/org/roller/presentation/RollerContext.java Mon Apr 17 08:23:11 2006
@@ -172,6 +172,7 @@
setupPingQueueTask(roller);
setupScheduledTasks(mContext, roller);
+ roller.flush();
roller.commit();
roller.release();
Modified: incubator/roller/branches/roller-newbackend/src/org/roller/presentation/TurnoverReferersTask.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller-newbackend/src/org/roller/presentation/TurnoverReferersTask.java?rev=394696&r1=394695&r2=394696&view=diff
==============================================================================
--- incubator/roller/branches/roller-newbackend/src/org/roller/presentation/TurnoverReferersTask.java (original)
+++ incubator/roller/branches/roller-newbackend/src/org/roller/presentation/TurnoverReferersTask.java Mon Apr 17 08:23:11 2006
@@ -41,6 +41,7 @@
try {
Roller roller = RollerFactory.getRoller();
roller.getRefererManager().clearReferrers();
+ roller.flush();
roller.commit();
roller.release();
mLogger.info("task completed");
Modified: incubator/roller/branches/roller-newbackend/src/org/roller/presentation/pings/PingQueueTask.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller-newbackend/src/org/roller/presentation/pings/PingQueueTask.java?rev=394696&r1=394695&r2=394696&view=diff
==============================================================================
--- incubator/roller/branches/roller-newbackend/src/org/roller/presentation/pings/PingQueueTask.java (original)
+++ incubator/roller/branches/roller-newbackend/src/org/roller/presentation/pings/PingQueueTask.java Mon Apr 17 08:23:11 2006
@@ -63,6 +63,7 @@
roller = RollerFactory.getRoller();
//roller.begin();
PingQueueProcessor.getInstance().processQueue();
+ roller.flush();
roller.commit();
}
catch (RollerException e)