[exo-jcr-commits] exo-jcr SVN: r4608 - in jcr/trunk/exo.jcr.component.core: src/main/java/org/exoplatform/services/jcr/dataflow/serialization and 2 other directories.
do-not-reply at jboss.org
do-not-reply at jboss.org
Thu Jul 7 04:29:27 EDT 2011
Author: nzamosenchuk
Date: 2011-07-07 04:29:27 -0400 (Thu, 07 Jul 2011)
New Revision: 4608
Modified:
jcr/trunk/exo.jcr.component.core/pom.xml
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/dataflow/serialization/SerializationConstants.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/serialization/PersistedValueDataReader.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/serialization/PersistedValueDataWriter.java
jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/serialization/JcrImplSerializationBaseTest.java
jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/serialization/TestJCRSerializationStream.java
jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/serialization/TestJCRSerializationVersionRestore.java
jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/serialization/TesterItemsPersistenceListener.java
Log:
EXOJCR-1407 : Checks in serialization tests should be performed synchronously with Session.Save()
Modified: jcr/trunk/exo.jcr.component.core/pom.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/pom.xml 2011-07-06 14:14:54 UTC (rev 4607)
+++ jcr/trunk/exo.jcr.component.core/pom.xml 2011-07-07 08:29:27 UTC (rev 4608)
@@ -412,8 +412,6 @@
<exclude>org/exoplatform/services/jcr/**/api/TestAll.java</exclude>
<exclude>org/exoplatform/services/jcr/**/impl/**/Base*.java</exclude>
<exclude>org/exoplatform/services/jcr/**/usecases/BaseUsecasesTest.java</exclude>
- <exclude>org/exoplatform/services/jcr/**/impl/**/TestJCRSerializationStream.java</exclude>
- <exclude>org/exoplatform/services/jcr/**/impl/**/TestJCRSerializationVersionRestore.java</exclude>
<exclude>org/exoplatform/services/jcr/usecases/common/RemoveSameNameSiblingUnfixedTest.java</exclude>
<exclude>org/exoplatform/services/jcr/**/impl/**/SQLBenchmarkTest.java</exclude>
<!-- Implementation Specific Excludes -->
@@ -753,8 +751,6 @@
<exclude>org/exoplatform/services/jcr/**/api/TestAll.java</exclude>
<exclude>org/exoplatform/services/jcr/**/impl/**/Base*.java</exclude>
<exclude>org/exoplatform/services/jcr/**/usecases/BaseUsecasesTest.java</exclude>
- <exclude>org/exoplatform/services/jcr/**/impl/**/TestJCRSerializationStream.java</exclude>
- <exclude>org/exoplatform/services/jcr/**/impl/**/TestJCRSerializationVersionRestore.java</exclude>
<exclude>org/exoplatform/services/jcr/usecases/common/RemoveSameNameSiblingUnfixedTest.java</exclude>
<exclude>org/exoplatform/services/jcr/**/impl/**/SQLBenchmarkTest.java</exclude>
<!-- From TCK -->
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/dataflow/serialization/SerializationConstants.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/dataflow/serialization/SerializationConstants.java 2011-07-06 14:14:54 UTC (rev 4607)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/dataflow/serialization/SerializationConstants.java 2011-07-07 08:29:27 UTC (rev 4608)
@@ -89,6 +89,11 @@
public static final int PERSISTED_VALUE_DATA = 11;
/**
+ * Null file
+ */
+ public static final int NULL_FILE = -1;
+
+ /**
* Null data.
*/
public static final byte NULL_DATA = 0;
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/serialization/PersistedValueDataReader.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/serialization/PersistedValueDataReader.java 2011-07-06 14:14:54 UTC (rev 4607)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/serialization/PersistedValueDataReader.java 2011-07-07 08:29:27 UTC (rev 4608)
@@ -93,7 +93,9 @@
// read id
int key;
if ((key = in.readInt()) != SerializationConstants.PERSISTED_VALUE_DATA)
+ {
throw new UnknownClassIdException("There is unexpected class [" + key + "]");
+ }
int orderNumber = in.readInt();
@@ -115,8 +117,12 @@
SerializationSpoolFile sf = holder.get(id);
if (sf == null)
{
+ // Deleted ItemState usecase
+ if (length == SerializationConstants.NULL_FILE)
+ {
+ return new StreamPersistedValueData(orderNumber, (SerializationSpoolFile)null);
+ }
sf = new SerializationSpoolFile(tempDirectory, id, holder);
- // TODO optimize writeToFile - use channels or streams
writeToFile(in, sf, length);
holder.put(id, sf);
return new StreamPersistedValueData(orderNumber, sf);
@@ -130,7 +136,9 @@
// skip data in input stream
if (in.skip(length) != length)
+ {
throw new IOException("Content isn't skipped correctly.");
+ }
return vd;
}
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/serialization/PersistedValueDataWriter.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/serialization/PersistedValueDataWriter.java 2011-07-06 14:14:54 UTC (rev 4607)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/serialization/PersistedValueDataWriter.java 2011-07-07 08:29:27 UTC (rev 4608)
@@ -26,7 +26,6 @@
import org.exoplatform.services.jcr.impl.dataflow.persistent.StreamPersistedValueData;
import org.exoplatform.services.jcr.util.IdGenerator;
-import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
@@ -74,14 +73,16 @@
if (streamed.getFile() == null && vd instanceof StreamPersistedValueData)
{
- in = PrivilegedFileHelper.fileInputStream(((StreamPersistedValueData)vd).getTempFile());
+ if (((StreamPersistedValueData)vd).getTempFile() != null)
+ {
+ in = PrivilegedFileHelper.fileInputStream(((StreamPersistedValueData)vd).getTempFile());
+ }
}
else
{
in = streamed.getAsStream();
}
- // TODO optimize it, use channels
if (streamed.getFile() instanceof SerializationSpoolFile)
{
SerializationSpoolFile ssf = (SerializationSpoolFile)streamed.getFile();
@@ -94,17 +95,27 @@
String id = IdGenerator.generate();
out.writeString(id);
- out.writeLong(vd.getLength());
- try
+ if (in == null)
{
- byte[] buf = new byte[SerializationConstants.INTERNAL_BUFFER_SIZE];
- int l = 0;
- while ((l = in.read(buf)) >= 0)
- out.write(buf, 0, l);
+ // Deleted state usecase
+ out.writeLong(SerializationConstants.NULL_FILE);
}
- finally
+ else
{
- in.close();
+ out.writeLong(vd.getLength());
+ try
+ {
+ byte[] buf = new byte[SerializationConstants.INTERNAL_BUFFER_SIZE];
+ int l = 0;
+ while ((l = in.read(buf)) >= 0)
+ {
+ out.write(buf, 0, l);
+ }
+ }
+ finally
+ {
+ in.close();
+ }
}
}
}
Modified: jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/serialization/JcrImplSerializationBaseTest.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/serialization/JcrImplSerializationBaseTest.java 2011-07-06 14:14:54 UTC (rev 4607)
+++ jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/serialization/JcrImplSerializationBaseTest.java 2011-07-07 08:29:27 UTC (rev 4608)
@@ -18,10 +18,21 @@
*/
package org.exoplatform.services.jcr.impl.dataflow.serialization;
+import org.exoplatform.services.jcr.JcrImplBaseTest;
+import org.exoplatform.services.jcr.dataflow.ChangesLogIterator;
+import org.exoplatform.services.jcr.dataflow.ItemState;
+import org.exoplatform.services.jcr.dataflow.PlainChangesLog;
+import org.exoplatform.services.jcr.dataflow.TransactionChangesLog;
+import org.exoplatform.services.jcr.dataflow.serialization.UnknownClassIdException;
+import org.exoplatform.services.jcr.datamodel.ItemData;
+import org.exoplatform.services.jcr.datamodel.PropertyData;
+import org.exoplatform.services.jcr.datamodel.ValueData;
+import org.exoplatform.services.jcr.impl.dataflow.persistent.FilePersistedValueData;
+import org.exoplatform.services.jcr.impl.dataflow.persistent.StreamPersistedValueData;
+
import java.io.EOFException;
import java.io.File;
import java.io.FileInputStream;
-import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
@@ -35,19 +46,6 @@
import java.util.Iterator;
import java.util.List;
-import org.exoplatform.services.jcr.JcrImplBaseTest;
-import org.exoplatform.services.jcr.dataflow.ChangesLogIterator;
-import org.exoplatform.services.jcr.dataflow.ItemState;
-import org.exoplatform.services.jcr.dataflow.PlainChangesLog;
-import org.exoplatform.services.jcr.dataflow.TransactionChangesLog;
-import org.exoplatform.services.jcr.dataflow.serialization.UnknownClassIdException;
-import org.exoplatform.services.jcr.datamodel.ItemData;
-import org.exoplatform.services.jcr.datamodel.PropertyData;
-import org.exoplatform.services.jcr.datamodel.ValueData;
-import org.exoplatform.services.jcr.impl.dataflow.persistent.StreamPersistedValueData;
-import org.exoplatform.services.jcr.impl.storage.value.fs.operations.ValueFileIOHelper;
-import org.exoplatform.services.jcr.storage.value.ValueIOChannel;
-
/**
* Created by The eXo Platform SAS. <br/>Date: 16.02.2009
*
@@ -86,14 +84,43 @@
List<ValueData> expValDat = expProp.getValues();
List<ValueData> elemValDat = elemProp.getValues();
- assertEquals(expValDat.size(), elemValDat.size());
- for (int j = 0; j < expValDat.size(); j++)
+ // Both value data are null
+ if (expValDat != null && elemValDat != null)
{
- assertTrue(java.util.Arrays
- .equals(expValDat.get(j).getAsByteArray(), elemValDat.get(j).getAsByteArray()));
+ assertEquals(expValDat.size(), elemValDat.size());
+ for (int j = 0; j < expValDat.size(); j++)
+ {
- // check is received property values ReplicableValueData
- // assertTrue(elemValDat.get(j) instanceof ReplicableValueData);
+ // are of the same class
+ assertEquals(expValDat.get(j).getClass(), elemValDat.get(j).getClass());
+ //
+ if (expValDat.get(j) instanceof FilePersistedValueData)
+ {
+ // if files in both instances are null
+ Boolean nullFiles =
+ ((FilePersistedValueData)expValDat.get(j)).getFile() == null
+ && ((FilePersistedValueData)elemValDat.get(j)).getFile() == null;
+ // if there are instances of StreamPersistedValueData
+ if (expValDat.get(j) instanceof StreamPersistedValueData)
+ {
+ // and they both have null spool files
+ nullFiles &=
+ ((StreamPersistedValueData)expValDat.get(j)).getTempFile() == null
+ && ((StreamPersistedValueData)elemValDat.get(j)).getTempFile() == null;
+ }
+ if (nullFiles)
+ {
+ // Both value data are equals
+ continue;
+ }
+ }
+
+ assertTrue(java.util.Arrays.equals(expValDat.get(j).getAsByteArray(), elemValDat.get(j)
+ .getAsByteArray()));
+
+ // check is received property values ReplicableValueData
+ // assertTrue(elemValDat.get(j) instanceof ReplicableValueData);
+ }
}
}
}
@@ -101,6 +128,20 @@
}
+ protected void checkResults(List<TransactionChangesLog> srcLog) throws Exception
+ {
+ File jcrfile = serializeLogs(srcLog);
+
+ List<TransactionChangesLog> destLog = deSerializeLogs(jcrfile);
+
+ assertEquals(srcLog.size(), destLog.size());
+
+ for (int i = 0; i < srcLog.size(); i++)
+ {
+ checkIterator(srcLog.get(i).getAllStates().iterator(), destLog.get(i).getAllStates().iterator());
+ }
+ }
+
protected File serializeLogs(List<TransactionChangesLog> logs) throws IOException, UnknownClassIdException
{
File jcrfile = File.createTempFile("jcr", "test");
@@ -129,7 +170,7 @@
while (true)
{
TransactionChangesLog obj =
- (TransactionChangesLog)(new TransactionChangesLogReader(fileCleaner, maxBufferSize, holder)).read(jcrin);
+ (new TransactionChangesLogReader(fileCleaner, maxBufferSize, holder)).read(jcrin);
// TransactionChangesLog obj = new TransactionChangesLog();
// obj.readObject(jcrin);
readed.add(obj);
@@ -139,8 +180,7 @@
{
// ok
}
-
-
+
//Imitation of save.
imitationSave(readed);
@@ -159,35 +199,41 @@
for (TransactionChangesLog tLog : readed)
{
ChangesLogIterator it = tLog.getLogIterator();
-
- while (it.hasNextLog())
+
+ while (it.hasNextLog())
{
PlainChangesLog pLog = it.nextLog();
-
+
for (ItemState state : pLog.getAllStates())
{
ItemData itemData = state.getData();
-
+
if (!itemData.isNode())
{
PropertyData propData = (PropertyData)itemData;
-
- for(ValueData valueData : propData.getValues())
+ if (propData.getValues() != null)
{
- if (valueData instanceof StreamPersistedValueData) {
- // imitation of JCR save
- if (((StreamPersistedValueData) valueData).getTempFile() != null)
+ for (ValueData valueData : propData.getValues())
+ {
+ if (valueData instanceof StreamPersistedValueData)
{
- ((StreamPersistedValueData) valueData).setPersistedFile(((StreamPersistedValueData) valueData).getTempFile());
+ // imitation of JCR save
+ if (((StreamPersistedValueData)valueData).getTempFile() != null)
+ {
+ ((StreamPersistedValueData)valueData)
+ .setPersistedFile(((StreamPersistedValueData)valueData).getTempFile());
+ }
+ else
+ {
+ File file = File.createTempFile("tempFile", "tmp");
+ file.deleteOnExit();
+ if (((StreamPersistedValueData)valueData).getStream() != null)
+ {
+ copy(((StreamPersistedValueData)valueData).getStream(), new FileOutputStream(file));
+ ((StreamPersistedValueData)valueData).setPersistedFile(file);
+ }
+ }
}
- else
- {
- File file = File.createTempFile("tempFile", "tmp");
- file.deleteOnExit();
-
- copy(((StreamPersistedValueData) valueData).getStream(), new FileOutputStream(file));
- ((StreamPersistedValueData) valueData).setPersistedFile(file);
- }
}
}
}
@@ -195,7 +241,7 @@
}
}
}
-
+
protected long copy(InputStream in, OutputStream out) throws IOException
{
// compare classes as in Java6 Channels.newChannel(), Java5 has a bug in newChannel().
@@ -243,7 +289,9 @@
}
if (outFile)
+ {
((FileChannel)outch).force(true); // force all data to FS
+ }
return size;
}
Modified: jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/serialization/TestJCRSerializationStream.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/serialization/TestJCRSerializationStream.java 2011-07-06 14:14:54 UTC (rev 4607)
+++ jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/serialization/TestJCRSerializationStream.java 2011-07-07 08:29:27 UTC (rev 4608)
@@ -18,12 +18,9 @@
*/
package org.exoplatform.services.jcr.impl.dataflow.serialization;
-import org.exoplatform.services.jcr.dataflow.TransactionChangesLog;
-
import java.io.File;
import java.io.FileInputStream;
import java.util.Calendar;
-import java.util.List;
import javax.jcr.Node;
import javax.jcr.Value;
@@ -54,6 +51,7 @@
contentNode.setProperty("jcr:mimeType", "application/octet-stream");
contentNode.setProperty("jcr:lastModified", session.getValueFactory().createValue(Calendar.getInstance()));
session.save();
+ checkResults(pl.getAndReset());
test.setProperty("creator", new String[]{"Creator 1", "Creator 2", "Creator 3"});
@@ -67,21 +65,15 @@
test.setProperty("language", new String[]{"language 1", "language 2", "language3", "language 4", "language5"});
session.save();
+ checkResults(pl.getAndReset());
// delete
Node srcParent = test.getParent();
srcParent.remove();
session.save();
- List<TransactionChangesLog> srcLog = pl.pushChanges();
-
- File jcrfile = super.serializeLogs(srcLog);
-
- List<TransactionChangesLog> destLog = super.deSerializeLogs(jcrfile);
-
- assertEquals(srcLog.size(), destLog.size());
-
- for (int i = 0; i < srcLog.size(); i++)
- checkIterator(srcLog.get(i).getAllStates().iterator(), destLog.get(i).getAllStates().iterator());
+ checkResults(pl.getAndReset());
+ // unregister listener
+ pl.pushChanges();
}
}
Modified: jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/serialization/TestJCRSerializationVersionRestore.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/serialization/TestJCRSerializationVersionRestore.java 2011-07-06 14:14:54 UTC (rev 4607)
+++ jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/serialization/TestJCRSerializationVersionRestore.java 2011-07-07 08:29:27 UTC (rev 4608)
@@ -18,13 +18,10 @@
*/
package org.exoplatform.services.jcr.impl.dataflow.serialization;
-import org.exoplatform.services.jcr.dataflow.TransactionChangesLog;
-
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.Calendar;
-import java.util.List;
import javax.jcr.Node;
import javax.jcr.version.Version;
@@ -49,24 +46,36 @@
srcVersionNode.addMixin("mix:versionable");
session.save();
+ checkResults(pl.getAndReset());
+
srcVersionNode.checkin();
session.save();
+ checkResults(pl.getAndReset());
+
srcVersionNode.checkout();
srcVersionNode.setProperty("jcr:data", "version 1");
session.save();
+ checkResults(pl.getAndReset());
+
srcVersionNode.checkin();
session.save();
+ checkResults(pl.getAndReset());
+
srcVersionNode.checkout();
srcVersionNode.setProperty("jcr:data", "version 2");
session.save();
+ checkResults(pl.getAndReset());
+
Version baseVersion = srcVersionNode.getBaseVersion();
srcVersionNode.restore(baseVersion, true);
session.save();
+ checkResults(pl.getAndReset());
+
Version baseVersion1 = srcVersionNode.getBaseVersion();
Version[] predesessors = baseVersion1.getPredecessors();
Version restoreToBaseVersion = predesessors[0];
@@ -74,21 +83,15 @@
srcVersionNode.restore(restoreToBaseVersion, true);
session.save();
- List<TransactionChangesLog> srcLog = pl.pushChanges();
-
- File jcrfile = super.serializeLogs(srcLog);
-
- List<TransactionChangesLog> destLog = super.deSerializeLogs(jcrfile);
-
- assertEquals(srcLog.size(), destLog.size());
-
- for (int i = 0; i < srcLog.size(); i++)
- checkIterator(srcLog.get(i).getAllStates().iterator(), destLog.get(i).getAllStates().iterator());
+ checkResults(pl.getAndReset());
+ // unregister listener
+ pl.pushChanges();
}
public void testBigFileRestore() throws Exception
{
TesterItemsPersistenceListener pl = new TesterItemsPersistenceListener(this.session);
+ //List<TransactionChangesLog> srcLog = new ArrayList<TransactionChangesLog>();
File tempFile = File.createTempFile("tempFile", "doc");
File tempFile2 = File.createTempFile("tempFile", "doc");
@@ -129,25 +132,37 @@
session.save();
+ checkResults(pl.getAndReset());
+
Node srcVersion = root.getNode("nt_file_node");
srcVersion.checkin();
session.save();
+ checkResults(pl.getAndReset());
+
srcVersion.checkout();
srcVersionNode.getNode("jcr:content").setProperty("jcr:data", new FileInputStream(tempFile2));
session.save();
+ checkResults(pl.getAndReset());
+
srcVersion.checkin();
session.save();
+ checkResults(pl.getAndReset());
+
srcVersion.checkout();
srcVersionNode.getNode("jcr:content").setProperty("jcr:data", new FileInputStream(tempFile3));
session.save();
+ checkResults(pl.getAndReset());
+
Version baseVersion = srcVersion.getBaseVersion();
srcVersion.restore(baseVersion, true);
session.save();
+ checkResults(pl.getAndReset());
+
Version baseVersion1 = srcVersion.getBaseVersion();
Version[] predesessors = baseVersion1.getPredecessors();
Version restoreToBaseVersion = predesessors[0];
@@ -155,6 +170,8 @@
srcVersion.restore(restoreToBaseVersion, true);
session.save();
+ checkResults(pl.getAndReset());
+
Version baseVersion2 = srcVersion.getBaseVersion();
Version[] predesessors2 = baseVersion2.getSuccessors();
Version restoreToBaseVersion_2 = predesessors2[0];
@@ -162,16 +179,9 @@
srcVersion.restore(restoreToBaseVersion_2, true);
session.save();
- List<TransactionChangesLog> srcLog = pl.pushChanges();
-
- File jcrfile = super.serializeLogs(srcLog);
-
- List<TransactionChangesLog> destLog = super.deSerializeLogs(jcrfile);
-
- assertEquals(srcLog.size(), destLog.size());
-
- for (int i = 0; i < srcLog.size(); i++)
- checkIterator(srcLog.get(i).getAllStates().iterator(), destLog.get(i).getAllStates().iterator());
+ checkResults(pl.getAndReset());
+ // unregister listener
+ pl.pushChanges();
}
}
Modified: jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/serialization/TesterItemsPersistenceListener.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/serialization/TesterItemsPersistenceListener.java 2011-07-06 14:14:54 UTC (rev 4607)
+++ jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/serialization/TesterItemsPersistenceListener.java 2011-07-07 08:29:27 UTC (rev 4608)
@@ -70,6 +70,18 @@
return logsList;
}
+ /**
+ * Returns collected changes and resets listener without unregistering
+ *
+ * @return List of TransactionChangesLog
+ */
+ public List<TransactionChangesLog> getAndReset()
+ {
+ List<TransactionChangesLog> logs = new ArrayList<TransactionChangesLog>(logsList);
+ logsList.clear();
+ return logs;
+ }
+
public List<TransactionChangesLog> getCurrentLogList()
{
return logsList;
More information about the exo-jcr-commits
mailing list