You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lenya.apache.org by an...@apache.org on 2006/07/28 11:22:44 UTC
svn commit: r426449 - in /lenya/trunk/src:
java/org/apache/lenya/transaction/Transactionable.java
java/org/apache/lenya/transaction/UnitOfWorkImpl.java
modules/sourcerepository/java/src/org/apache/lenya/cms/repository/SourceNode.java
Author: andreas
Date: Fri Jul 28 02:22:44 2006
New Revision: 426449
URL: http://svn.apache.org/viewvc?rev=426449&view=rev
Log:
Notify node listeners after transaction is successfully committed, not during the commit.
Modified:
lenya/trunk/src/java/org/apache/lenya/transaction/Transactionable.java
lenya/trunk/src/java/org/apache/lenya/transaction/UnitOfWorkImpl.java
lenya/trunk/src/modules/sourcerepository/java/src/org/apache/lenya/cms/repository/SourceNode.java
Modified: lenya/trunk/src/java/org/apache/lenya/transaction/Transactionable.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/transaction/Transactionable.java?rev=426449&r1=426448&r2=426449&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/transaction/Transactionable.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/transaction/Transactionable.java Fri Jul 28 02:22:44 2006
@@ -41,4 +41,14 @@
*/
void createTransactionable() throws TransactionException;
+ /**
+ * Notify the transactionable that it has been changed.
+ */
+ void changed();
+
+ /**
+ * Notify the transactionable that it has been removed.
+ */
+ void removed();
+
}
Modified: lenya/trunk/src/java/org/apache/lenya/transaction/UnitOfWorkImpl.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/transaction/UnitOfWorkImpl.java?rev=426449&r1=426448&r2=426449&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/transaction/UnitOfWorkImpl.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/transaction/UnitOfWorkImpl.java Fri Jul 28 02:22:44 2006
@@ -46,6 +46,7 @@
private IdentityMap identityMap;
/**
+ * @return The identity map.
* @see org.apache.lenya.transaction.UnitOfWork#getFactory()
*/
public IdentityMap getIdentityMap() {
@@ -162,6 +163,24 @@
}
}
}
+ }
+
+ notifyTransactionables();
+
+ }
+
+ protected void notifyTransactionables() {
+ for (Iterator i = this.newObjects.iterator(); i.hasNext();) {
+ Transactionable t = (Transactionable) i.next();
+ t.changed();
+ }
+ for (Iterator i = this.modifiedObjects.iterator(); i.hasNext();) {
+ Transactionable t = (Transactionable) i.next();
+ t.changed();
+ }
+ for (Iterator i = this.removedObjects.iterator(); i.hasNext();) {
+ Transactionable t = (Transactionable) i.next();
+ t.removed();
}
}
Modified: lenya/trunk/src/modules/sourcerepository/java/src/org/apache/lenya/cms/repository/SourceNode.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/sourcerepository/java/src/org/apache/lenya/cms/repository/SourceNode.java?rev=426449&r1=426448&r2=426449&view=diff
==============================================================================
--- lenya/trunk/src/modules/sourcerepository/java/src/org/apache/lenya/cms/repository/SourceNode.java (original)
+++ lenya/trunk/src/modules/sourcerepository/java/src/org/apache/lenya/cms/repository/SourceNode.java Fri Jul 28 02:22:44 2006
@@ -231,17 +231,26 @@
} else {
SourceUtil.delete(getRealSourceURI(), this.manager);
}
- Node node = getDocumentNode();
- for (Iterator i = this.listeners.iterator(); i.hasNext(); ) {
- NodeListener listener = (NodeListener) i.next();
- listener.nodeRemoved(node, getSession().getIdentity());
- }
+ removed();
} catch (Exception e) {
throw new RepositoryException(e);
}
}
+ public void removed() {
+ Node node;
+ try {
+ node = getDocumentNode();
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ for (Iterator i = this.listeners.iterator(); i.hasNext(); ) {
+ NodeListener listener = (NodeListener) i.next();
+ listener.nodeRemoved(node, getSession().getIdentity());
+ }
+ }
+
private RevisionController revisionController;
protected RevisionController getRevisionController() throws RepositoryException {
@@ -319,11 +328,7 @@
read = in.read(buf);
}
- Node node = getDocumentNode();
- for (Iterator i = this.listeners.iterator(); i.hasNext(); ) {
- NodeListener listener = (NodeListener) i.next();
- listener.nodeChanged(node, getSession().getIdentity());
- }
+ changed();
} catch (Exception e) {
throw new RepositoryException(e);
@@ -348,6 +353,19 @@
manager.release(resolver);
}
}
+ }
+ }
+
+ public void changed() {
+ Node node;
+ try {
+ node = getDocumentNode();
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ for (Iterator i = this.listeners.iterator(); i.hasNext(); ) {
+ NodeListener listener = (NodeListener) i.next();
+ listener.nodeChanged(node, getSession().getIdentity());
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@lenya.apache.org
For additional commands, e-mail: commits-help@lenya.apache.org