You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2020/08/06 08:55:21 UTC

[cayenne] branch STABLE-4.1 updated: "modernizing" code / cleanup

This is an automated email from the ASF dual-hosted git repository.

aadamchik pushed a commit to branch STABLE-4.1
in repository https://gitbox.apache.org/repos/asf/cayenne.git


The following commit(s) were added to refs/heads/STABLE-4.1 by this push:
     new 06c3939  "modernizing" code / cleanup
06c3939 is described below

commit 06c3939ac37ace72eb685d246185a6e383552590
Author: Andrus Adamchik <an...@objectstyle.com>
AuthorDate: Thu Aug 6 11:46:10 2020 +0300

    "modernizing" code / cleanup
---
 .../cayenne/commitlog/CommitLogFilter_AllIT.java   | 221 ++++++++++-----------
 .../commitlog/CommitLogFilter_All_FlattenedIT.java |  82 ++++----
 .../commitlog/CommitLogFilter_FilteredIT.java      | 180 +++++++----------
 .../CommitLogFilter_ListenerInducedChangesIT.java  | 102 ++++------
 .../commitlog/CommitLogFilter_OutsideTxIT.java     |  19 +-
 .../cayenne/commitlog/CommitLogFilter_TxIT.java    |  19 +-
 6 files changed, 272 insertions(+), 351 deletions(-)

diff --git a/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/CommitLogFilter_AllIT.java b/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/CommitLogFilter_AllIT.java
index 62d8631..542be85 100644
--- a/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/CommitLogFilter_AllIT.java
+++ b/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/CommitLogFilter_AllIT.java
@@ -22,18 +22,12 @@ import org.apache.cayenne.ObjectContext;
 import org.apache.cayenne.ObjectId;
 import org.apache.cayenne.commitlog.db.Auditable1;
 import org.apache.cayenne.commitlog.db.AuditableChild1;
-import org.apache.cayenne.commitlog.model.AttributeChange;
-import org.apache.cayenne.commitlog.model.ChangeMap;
-import org.apache.cayenne.commitlog.model.ObjectChange;
-import org.apache.cayenne.commitlog.model.ObjectChangeType;
-import org.apache.cayenne.commitlog.model.ToManyRelationshipChange;
-import org.apache.cayenne.commitlog.model.ToOneRelationshipChange;
+import org.apache.cayenne.commitlog.model.*;
 import org.apache.cayenne.commitlog.unit.AuditableServerCase;
 import org.apache.cayenne.configuration.server.ServerRuntimeBuilder;
 import org.apache.cayenne.query.SelectById;
 import org.junit.Before;
 import org.junit.Test;
-import org.mockito.invocation.InvocationOnMock;
 import org.mockito.stubbing.Answer;
 
 import java.sql.SQLException;
@@ -59,35 +53,32 @@ public class CommitLogFilter_AllIT extends AuditableServerCase {
 	}
 
 	@Test
-	public void testPostCommit_Insert() throws SQLException {
+	public void testPostCommit_Insert() {
 
 		final Auditable1 a1 = context.newObject(Auditable1.class);
 		a1.setCharProperty1("yy");
 		final ObjectId preCommitId = a1.getObjectId();
 
-		doAnswer(new Answer<Object>() {
-			@Override
-			public Object answer(InvocationOnMock invocation) throws Throwable {
+		doAnswer((Answer<Object>) invocation -> {
 
-				assertSame(context, invocation.getArguments()[0]);
+			assertSame(context, invocation.getArguments()[0]);
 
-				ChangeMap changes = (ChangeMap) invocation.getArguments()[1];
-				assertNotNull(changes);
-				assertEquals(2, changes.getChanges().size());
-				assertEquals(1, changes.getUniqueChanges().size());
+			ChangeMap changes = (ChangeMap) invocation.getArguments()[1];
+			assertNotNull(changes);
+			assertEquals(2, changes.getChanges().size());
+			assertEquals(1, changes.getUniqueChanges().size());
 
-				ObjectChange c = changes.getUniqueChanges().iterator().next();
-				assertNotNull(c);
-				assertEquals(ObjectChangeType.INSERT, c.getType());
-				assertEquals(1, c.getAttributeChanges().size());
-				assertEquals("yy", c.getAttributeChanges().get(Auditable1.CHAR_PROPERTY1.getName()).getNewValue());
+			ObjectChange c = changes.getUniqueChanges().iterator().next();
+			assertNotNull(c);
+			assertEquals(ObjectChangeType.INSERT, c.getType());
+			assertEquals(1, c.getAttributeChanges().size());
+			assertEquals("yy", c.getAttributeChanges().get(Auditable1.CHAR_PROPERTY1.getName()).getNewValue());
 
-				assertNotEquals(preCommitId, a1.getObjectId());
-				assertEquals(preCommitId, c.getPreCommitId());
-				assertEquals(a1.getObjectId(), c.getPostCommitId());
+			assertNotEquals(preCommitId, a1.getObjectId());
+			assertEquals(preCommitId, c.getPreCommitId());
+			assertEquals(a1.getObjectId(), c.getPostCommitId());
 
-				return null;
-			}
+			return null;
 		}).when(mockListener).onPostCommit(any(ObjectContext.class), any(ChangeMap.class));
 
 		context.commitChanges();
@@ -105,31 +96,28 @@ public class CommitLogFilter_AllIT extends AuditableServerCase {
 
 		final ObjectId preCommitId = a1.getObjectId();
 
-		doAnswer(new Answer<Object>() {
-			@Override
-			public Object answer(InvocationOnMock invocation) throws Throwable {
+		doAnswer((Answer<Object>) invocation -> {
 
-				assertSame(context, invocation.getArguments()[0]);
+			assertSame(context, invocation.getArguments()[0]);
 
-				ChangeMap changes = (ChangeMap) invocation.getArguments()[1];
-				assertNotNull(changes);
-				assertEquals(1, changes.getUniqueChanges().size());
+			ChangeMap changes = (ChangeMap) invocation.getArguments()[1];
+			assertNotNull(changes);
+			assertEquals(1, changes.getUniqueChanges().size());
 
-				ObjectChange c = changes.getChanges().get(new ObjectId("Auditable1", Auditable1.ID_PK_COLUMN, 1));
-				assertNotNull(c);
-				assertEquals(ObjectChangeType.UPDATE, c.getType());
-				assertEquals(1, c.getAttributeChanges().size());
-				AttributeChange pc = c.getAttributeChanges().get(Auditable1.CHAR_PROPERTY1.getName());
-				assertNotNull(pc);
-				assertEquals("xx", pc.getOldValue());
-				assertEquals("yy", pc.getNewValue());
+			ObjectChange c = changes.getChanges().get(new ObjectId("Auditable1", Auditable1.ID_PK_COLUMN, 1));
+			assertNotNull(c);
+			assertEquals(ObjectChangeType.UPDATE, c.getType());
+			assertEquals(1, c.getAttributeChanges().size());
+			AttributeChange pc = c.getAttributeChanges().get(Auditable1.CHAR_PROPERTY1.getName());
+			assertNotNull(pc);
+			assertEquals("xx", pc.getOldValue());
+			assertEquals("yy", pc.getNewValue());
 
-				assertEquals(preCommitId, a1.getObjectId());
-				assertEquals(preCommitId, c.getPreCommitId());
-				assertEquals(preCommitId, c.getPostCommitId());
+			assertEquals(preCommitId, a1.getObjectId());
+			assertEquals(preCommitId, c.getPreCommitId());
+			assertEquals(preCommitId, c.getPostCommitId());
 
-				return null;
-			}
+			return null;
 		}).when(mockListener).onPostCommit(any(ObjectContext.class), any(ChangeMap.class));
 
 		context.commitChanges();
@@ -141,25 +129,22 @@ public class CommitLogFilter_AllIT extends AuditableServerCase {
 	public void testPostCommit_Delete() throws SQLException {
 		auditable1.insert(1, "xx");
 
-		doAnswer(new Answer<Object>() {
-			@Override
-			public Object answer(InvocationOnMock invocation) throws Throwable {
+		doAnswer((Answer<Object>) invocation -> {
 
-				assertSame(context, invocation.getArguments()[0]);
+			assertSame(context, invocation.getArguments()[0]);
 
-				ChangeMap changes = (ChangeMap) invocation.getArguments()[1];
-				assertNotNull(changes);
-				assertEquals(1, changes.getUniqueChanges().size());
+			ChangeMap changes = (ChangeMap) invocation.getArguments()[1];
+			assertNotNull(changes);
+			assertEquals(1, changes.getUniqueChanges().size());
 
-				ObjectChange c = changes.getChanges().get(new ObjectId("Auditable1", Auditable1.ID_PK_COLUMN, 1));
-				assertNotNull(c);
-				assertEquals(ObjectChangeType.DELETE, c.getType());
-				assertEquals(1, c.getAttributeChanges().size());
-				assertEquals("xx", c.getAttributeChanges().get(Auditable1.CHAR_PROPERTY1.getName()).getOldValue());
-				assertNull(c.getAttributeChanges().get(Auditable1.CHAR_PROPERTY1.getName()).getNewValue());
+			ObjectChange c = changes.getChanges().get(new ObjectId("Auditable1", Auditable1.ID_PK_COLUMN, 1));
+			assertNotNull(c);
+			assertEquals(ObjectChangeType.DELETE, c.getType());
+			assertEquals(1, c.getAttributeChanges().size());
+			assertEquals("xx", c.getAttributeChanges().get(Auditable1.CHAR_PROPERTY1.getName()).getOldValue());
+			assertNull(c.getAttributeChanges().get(Auditable1.CHAR_PROPERTY1.getName()).getNewValue());
 
-				return null;
-			}
+			return null;
 		}).when(mockListener).onPostCommit(any(ObjectContext.class), any(ChangeMap.class));
 
 		Auditable1 a1 = SelectById.query(Auditable1.class, 1).selectOne(context);
@@ -185,45 +170,42 @@ public class CommitLogFilter_AllIT extends AuditableServerCase {
 		final Auditable1 a1 = SelectById.query(Auditable1.class, 1).selectOne(context);
 		final Auditable1 a2 = SelectById.query(Auditable1.class, 2).selectOne(context);
 
-		doAnswer(new Answer<Object>() {
-			@Override
-			public Object answer(InvocationOnMock invocation) throws Throwable {
-
-				assertSame(context, invocation.getArguments()[0]);
-
-				ChangeMap changes = (ChangeMap) invocation.getArguments()[1];
-				assertNotNull(changes);
-				assertEquals(4, changes.getUniqueChanges().size());
-
-				ObjectChange ac1c = changes.getChanges().get(
-						new ObjectId("AuditableChild1", AuditableChild1.ID_PK_COLUMN, 1));
-				assertNotNull(ac1c);
-				assertEquals(ObjectChangeType.UPDATE, ac1c.getType());
-				ToOneRelationshipChange ac1c1 = ac1c.getToOneRelationshipChanges()
-						.get(AuditableChild1.PARENT.getName());
-				assertEquals(a1.getObjectId(), ac1c1.getOldValue());
-				assertEquals(null, ac1c1.getNewValue());
-
-				ObjectChange ac2c = changes.getChanges().get(
-						new ObjectId("AuditableChild1", AuditableChild1.ID_PK_COLUMN, 2));
-				assertNotNull(ac2c);
-				assertEquals(ObjectChangeType.UPDATE, ac2c.getType());
-				ToOneRelationshipChange ac2c1 = ac2c.getToOneRelationshipChanges()
-						.get(AuditableChild1.PARENT.getName());
-				assertEquals(a2.getObjectId(), ac2c1.getOldValue());
-				assertEquals(a1.getObjectId(), ac2c1.getNewValue());
-
-				ObjectChange ac3c = changes.getChanges().get(
-						new ObjectId("AuditableChild1", AuditableChild1.ID_PK_COLUMN, 3));
-				assertNotNull(ac3c);
-				assertEquals(ObjectChangeType.UPDATE, ac3c.getType());
-				ToOneRelationshipChange ac3c1 = ac3c.getToOneRelationshipChanges()
-						.get(AuditableChild1.PARENT.getName());
-				assertEquals(null, ac3c1.getOldValue());
-				assertEquals(a1.getObjectId(), ac3c1.getNewValue());
-
-				return null;
-			}
+		doAnswer((Answer<Object>) invocation -> {
+
+			assertSame(context, invocation.getArguments()[0]);
+
+			ChangeMap changes = (ChangeMap) invocation.getArguments()[1];
+			assertNotNull(changes);
+			assertEquals(4, changes.getUniqueChanges().size());
+
+			ObjectChange ac1c = changes.getChanges().get(
+					new ObjectId("AuditableChild1", AuditableChild1.ID_PK_COLUMN, 1));
+			assertNotNull(ac1c);
+			assertEquals(ObjectChangeType.UPDATE, ac1c.getType());
+			ToOneRelationshipChange ac1c1 = ac1c.getToOneRelationshipChanges()
+					.get(AuditableChild1.PARENT.getName());
+			assertEquals(a1.getObjectId(), ac1c1.getOldValue());
+			assertNull(ac1c1.getNewValue());
+
+			ObjectChange ac2c = changes.getChanges().get(
+					new ObjectId("AuditableChild1", AuditableChild1.ID_PK_COLUMN, 2));
+			assertNotNull(ac2c);
+			assertEquals(ObjectChangeType.UPDATE, ac2c.getType());
+			ToOneRelationshipChange ac2c1 = ac2c.getToOneRelationshipChanges()
+					.get(AuditableChild1.PARENT.getName());
+			assertEquals(a2.getObjectId(), ac2c1.getOldValue());
+			assertEquals(a1.getObjectId(), ac2c1.getNewValue());
+
+			ObjectChange ac3c = changes.getChanges().get(
+					new ObjectId("AuditableChild1", AuditableChild1.ID_PK_COLUMN, 3));
+			assertNotNull(ac3c);
+			assertEquals(ObjectChangeType.UPDATE, ac3c.getType());
+			ToOneRelationshipChange ac3c1 = ac3c.getToOneRelationshipChanges()
+					.get(AuditableChild1.PARENT.getName());
+			assertNull(ac3c1.getOldValue());
+			assertEquals(a1.getObjectId(), ac3c1.getNewValue());
+
+			return null;
 		}).when(mockListener).onPostCommit(any(ObjectContext.class), any(ChangeMap.class));
 
 		a1.removeFromChildren1(ac1);
@@ -248,35 +230,32 @@ public class CommitLogFilter_AllIT extends AuditableServerCase {
 
 		final Auditable1 a1 = SelectById.query(Auditable1.class, 1).selectOne(context);
 
-		doAnswer(new Answer<Object>() {
-			@Override
-			public Object answer(InvocationOnMock invocation) throws Throwable {
+		doAnswer((Answer<Object>) invocation -> {
 
-				assertSame(context, invocation.getArguments()[0]);
+			assertSame(context, invocation.getArguments()[0]);
 
-				ChangeMap changes = (ChangeMap) invocation.getArguments()[1];
-				assertNotNull(changes);
-				assertEquals(4, changes.getUniqueChanges().size());
+			ChangeMap changes = (ChangeMap) invocation.getArguments()[1];
+			assertNotNull(changes);
+			assertEquals(4, changes.getUniqueChanges().size());
 
-				ObjectChange a1c = changes.getChanges().get(new ObjectId("Auditable1", Auditable1.ID_PK_COLUMN, 1));
-				assertNotNull(a1c);
-				assertEquals(ObjectChangeType.UPDATE, a1c.getType());
-				assertEquals(0, a1c.getAttributeChanges().size());
+			ObjectChange a1c = changes.getChanges().get(new ObjectId("Auditable1", Auditable1.ID_PK_COLUMN, 1));
+			assertNotNull(a1c);
+			assertEquals(ObjectChangeType.UPDATE, a1c.getType());
+			assertEquals(0, a1c.getAttributeChanges().size());
 
-				assertEquals(1, a1c.getToManyRelationshipChanges().size());
+			assertEquals(1, a1c.getToManyRelationshipChanges().size());
 
-				ToManyRelationshipChange a1c1 = a1c.getToManyRelationshipChanges().get(Auditable1.CHILDREN1.getName());
-				assertNotNull(a1c1);
+			ToManyRelationshipChange a1c1 = a1c.getToManyRelationshipChanges().get(Auditable1.CHILDREN1.getName());
+			assertNotNull(a1c1);
 
-				assertEquals(2, a1c1.getAdded().size());
-				assertTrue(a1c1.getAdded().contains(ac2.getObjectId()));
-				assertTrue(a1c1.getAdded().contains(ac3.getObjectId()));
+			assertEquals(2, a1c1.getAdded().size());
+			assertTrue(a1c1.getAdded().contains(ac2.getObjectId()));
+			assertTrue(a1c1.getAdded().contains(ac3.getObjectId()));
 
-				assertEquals(1, a1c1.getRemoved().size());
-				assertTrue(a1c1.getRemoved().contains(ac1.getObjectId()));
+			assertEquals(1, a1c1.getRemoved().size());
+			assertTrue(a1c1.getRemoved().contains(ac1.getObjectId()));
 
-				return null;
-			}
+			return null;
 		}).when(mockListener).onPostCommit(any(ObjectContext.class), any(ChangeMap.class));
 
 		a1.removeFromChildren1(ac1);
diff --git a/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/CommitLogFilter_All_FlattenedIT.java b/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/CommitLogFilter_All_FlattenedIT.java
index caf4c0b..f8a0d85 100644
--- a/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/CommitLogFilter_All_FlattenedIT.java
+++ b/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/CommitLogFilter_All_FlattenedIT.java
@@ -31,7 +31,6 @@ import org.apache.cayenne.configuration.server.ServerRuntimeBuilder;
 import org.apache.cayenne.query.SelectById;
 import org.junit.Before;
 import org.junit.Test;
-import org.mockito.invocation.InvocationOnMock;
 import org.mockito.stubbing.Answer;
 
 import java.sql.SQLException;
@@ -67,61 +66,58 @@ public class CommitLogFilter_All_FlattenedIT extends FlattenedServerCase {
 		final E4 e4_1 = SelectById.query(E4.class, 11).selectOne(context);
 		final E4 e4_2 = SelectById.query(E4.class, 12).selectOne(context);
 
-		doAnswer(new Answer<Object>() {
-			@Override
-			public Object answer(InvocationOnMock invocation) throws Throwable {
+		doAnswer((Answer<Object>) invocation -> {
 
-				assertSame(context, invocation.getArguments()[0]);
+			assertSame(context, invocation.getArguments()[0]);
 
-				ChangeMap changes = (ChangeMap) invocation.getArguments()[1];
-				assertNotNull(changes);
-				assertEquals(3, changes.getUniqueChanges().size());
+			ChangeMap changes = (ChangeMap) invocation.getArguments()[1];
+			assertNotNull(changes);
+			assertEquals(3, changes.getUniqueChanges().size());
 
-				ObjectChange e3c = changes.getChanges().get(new ObjectId("E3", E3.ID_PK_COLUMN, 1));
-				assertNotNull(e3c);
-				assertEquals(ObjectChangeType.UPDATE, e3c.getType());
-				assertEquals(0, e3c.getAttributeChanges().size());
-				assertEquals(1, e3c.getToManyRelationshipChanges().size());
+			ObjectChange e3c = changes.getChanges().get(new ObjectId("E3", E3.ID_PK_COLUMN, 1));
+			assertNotNull(e3c);
+			assertEquals(ObjectChangeType.UPDATE, e3c.getType());
+			assertEquals(0, e3c.getAttributeChanges().size());
+			assertEquals(1, e3c.getToManyRelationshipChanges().size());
 
-				ToManyRelationshipChange e3c1 = e3c.getToManyRelationshipChanges().get(E3.E4S.getName());
-				assertNotNull(e3c1);
+			ToManyRelationshipChange e3c1 = e3c.getToManyRelationshipChanges().get(E3.E4S.getName());
+			assertNotNull(e3c1);
 
-				assertEquals(1, e3c1.getAdded().size());
-				assertTrue(e3c1.getAdded().contains(e4_2.getObjectId()));
+			assertEquals(1, e3c1.getAdded().size());
+			assertTrue(e3c1.getAdded().contains(e4_2.getObjectId()));
 
-				assertEquals(1, e3c1.getRemoved().size());
-				assertTrue(e3c1.getRemoved().contains(e4_1.getObjectId()));
-				
-				ObjectChange e41c = changes.getChanges().get(new ObjectId("E4", E4.ID_PK_COLUMN, 11));
-				assertNotNull(e41c);
-				assertEquals(ObjectChangeType.UPDATE, e41c.getType());
-				assertEquals(0, e41c.getAttributeChanges().size());
-				assertEquals(1, e41c.getToManyRelationshipChanges().size());
+			assertEquals(1, e3c1.getRemoved().size());
+			assertTrue(e3c1.getRemoved().contains(e4_1.getObjectId()));
 
-				ToManyRelationshipChange e41c1 = e41c.getToManyRelationshipChanges().get(E4.E3S.getName());
-				assertNotNull(e41c);
+			ObjectChange e41c = changes.getChanges().get(new ObjectId("E4", E4.ID_PK_COLUMN, 11));
+			assertNotNull(e41c);
+			assertEquals(ObjectChangeType.UPDATE, e41c.getType());
+			assertEquals(0, e41c.getAttributeChanges().size());
+			assertEquals(1, e41c.getToManyRelationshipChanges().size());
 
-				assertEquals(0, e41c1.getAdded().size());
+			ToManyRelationshipChange e41c1 = e41c.getToManyRelationshipChanges().get(E4.E3S.getName());
+			assertNotNull(e41c);
 
-				assertEquals(1, e41c1.getRemoved().size());
-				assertTrue(e41c1.getRemoved().contains(e3.getObjectId()));
-				
-				ObjectChange e42c = changes.getChanges().get(new ObjectId("E4", E4.ID_PK_COLUMN, 12));
-				assertNotNull(e42c);
-				assertEquals(ObjectChangeType.UPDATE, e42c.getType());
-				assertEquals(0, e42c.getAttributeChanges().size());
-				assertEquals(1, e42c.getToManyRelationshipChanges().size());
+			assertEquals(0, e41c1.getAdded().size());
 
-				ToManyRelationshipChange e42c1 = e42c.getToManyRelationshipChanges().get(E4.E3S.getName());
-				assertNotNull(e42c);
+			assertEquals(1, e41c1.getRemoved().size());
+			assertTrue(e41c1.getRemoved().contains(e3.getObjectId()));
 
-				assertEquals(0, e42c1.getRemoved().size());
+			ObjectChange e42c = changes.getChanges().get(new ObjectId("E4", E4.ID_PK_COLUMN, 12));
+			assertNotNull(e42c);
+			assertEquals(ObjectChangeType.UPDATE, e42c.getType());
+			assertEquals(0, e42c.getAttributeChanges().size());
+			assertEquals(1, e42c.getToManyRelationshipChanges().size());
 
-				assertEquals(1, e42c1.getAdded().size());
-				assertTrue(e42c1.getAdded().contains(e3.getObjectId()));
+			ToManyRelationshipChange e42c1 = e42c.getToManyRelationshipChanges().get(E4.E3S.getName());
+			assertNotNull(e42c);
 
-				return null;
-			}
+			assertEquals(0, e42c1.getRemoved().size());
+
+			assertEquals(1, e42c1.getAdded().size());
+			assertTrue(e42c1.getAdded().contains(e3.getObjectId()));
+
+			return null;
 		}).when(mockListener).onPostCommit(any(ObjectContext.class), any(ChangeMap.class));
 
 		e3.removeFromE4s(e4_1);
diff --git a/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/CommitLogFilter_FilteredIT.java b/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/CommitLogFilter_FilteredIT.java
index eab650f..b354230 100644
--- a/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/CommitLogFilter_FilteredIT.java
+++ b/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/CommitLogFilter_FilteredIT.java
@@ -20,22 +20,13 @@ package org.apache.cayenne.commitlog;
 
 import org.apache.cayenne.ObjectContext;
 import org.apache.cayenne.ObjectId;
-import org.apache.cayenne.commitlog.db.Auditable1;
-import org.apache.cayenne.commitlog.db.Auditable2;
-import org.apache.cayenne.commitlog.db.Auditable3;
-import org.apache.cayenne.commitlog.db.Auditable4;
-import org.apache.cayenne.commitlog.db.AuditableChild1;
-import org.apache.cayenne.commitlog.model.AttributeChange;
-import org.apache.cayenne.commitlog.model.ChangeMap;
-import org.apache.cayenne.commitlog.model.ObjectChange;
-import org.apache.cayenne.commitlog.model.ObjectChangeType;
-import org.apache.cayenne.commitlog.model.ToManyRelationshipChange;
+import org.apache.cayenne.commitlog.db.*;
+import org.apache.cayenne.commitlog.model.*;
 import org.apache.cayenne.commitlog.unit.AuditableServerCase;
 import org.apache.cayenne.configuration.server.ServerRuntimeBuilder;
 import org.apache.cayenne.query.SelectById;
 import org.junit.Before;
 import org.junit.Test;
-import org.mockito.invocation.InvocationOnMock;
 import org.mockito.stubbing.Answer;
 
 import java.sql.SQLException;
@@ -62,29 +53,26 @@ public class CommitLogFilter_FilteredIT extends AuditableServerCase {
 	}
 
 	@Test
-	public void testPostCommit_Insert() throws SQLException {
+	public void testPostCommit_Insert() {
 
-		doAnswer(new Answer<Object>() {
-			@Override
-			public Object answer(InvocationOnMock invocation) throws Throwable {
+		doAnswer((Answer<Object>) invocation -> {
 
-				assertSame(context, invocation.getArguments()[0]);
+			assertSame(context, invocation.getArguments()[0]);
 
-				ChangeMap changes = (ChangeMap) invocation.getArguments()[1];
-				assertNotNull(changes);
-				assertEquals(2, changes.getChanges().size());
-				assertEquals(1, changes.getUniqueChanges().size());
+			ChangeMap changes = (ChangeMap) invocation.getArguments()[1];
+			assertNotNull(changes);
+			assertEquals(2, changes.getChanges().size());
+			assertEquals(1, changes.getUniqueChanges().size());
 
-				ObjectChange c = changes.getUniqueChanges().iterator().next();
-				assertNotNull(c);
-				assertEquals(ObjectChangeType.INSERT, c.getType());
-				assertEquals(1, c.getAttributeChanges().size());
+			ObjectChange c = changes.getUniqueChanges().iterator().next();
+			assertNotNull(c);
+			assertEquals(ObjectChangeType.INSERT, c.getType());
+			assertEquals(1, c.getAttributeChanges().size());
 
-				assertEquals(Confidential.getInstance(),
-						c.getAttributeChanges().get(Auditable2.CHAR_PROPERTY2.getName()).getNewValue());
+			assertEquals(Confidential.getInstance(),
+					c.getAttributeChanges().get(Auditable2.CHAR_PROPERTY2.getName()).getNewValue());
 
-				return null;
-			}
+			return null;
 		}).when(mockListener).onPostCommit(any(ObjectContext.class), any(ChangeMap.class));
 
 		Auditable2 a1 = context.newObject(Auditable2.class);
@@ -99,27 +87,24 @@ public class CommitLogFilter_FilteredIT extends AuditableServerCase {
 	public void testPostCommit_Update() throws SQLException {
 		auditable2.insert(1, "P1_1", "P2_1");
 
-		doAnswer(new Answer<Object>() {
-			@Override
-			public Object answer(InvocationOnMock invocation) throws Throwable {
+		doAnswer((Answer<Object>) invocation -> {
 
-				assertSame(context, invocation.getArguments()[0]);
+			assertSame(context, invocation.getArguments()[0]);
 
-				ChangeMap changes = (ChangeMap) invocation.getArguments()[1];
-				assertNotNull(changes);
-				assertEquals(1, changes.getUniqueChanges().size());
+			ChangeMap changes = (ChangeMap) invocation.getArguments()[1];
+			assertNotNull(changes);
+			assertEquals(1, changes.getUniqueChanges().size());
 
-				ObjectChange c = changes.getChanges().get(new ObjectId("Auditable2", Auditable2.ID_PK_COLUMN, 1));
-				assertNotNull(c);
-				assertEquals(ObjectChangeType.UPDATE, c.getType());
-				assertEquals(1, c.getAttributeChanges().size());
-				AttributeChange pc = c.getAttributeChanges().get(Auditable2.CHAR_PROPERTY2.getName());
-				assertNotNull(pc);
-				assertEquals(Confidential.getInstance(), pc.getOldValue());
-				assertEquals(Confidential.getInstance(), pc.getNewValue());
+			ObjectChange c = changes.getChanges().get(new ObjectId("Auditable2", Auditable2.ID_PK_COLUMN, 1));
+			assertNotNull(c);
+			assertEquals(ObjectChangeType.UPDATE, c.getType());
+			assertEquals(1, c.getAttributeChanges().size());
+			AttributeChange pc = c.getAttributeChanges().get(Auditable2.CHAR_PROPERTY2.getName());
+			assertNotNull(pc);
+			assertEquals(Confidential.getInstance(), pc.getOldValue());
+			assertEquals(Confidential.getInstance(), pc.getNewValue());
 
-				return null;
-			}
+			return null;
 		}).when(mockListener).onPostCommit(any(ObjectContext.class), any(ChangeMap.class));
 
 		Auditable2 a1 = SelectById.query(Auditable2.class, 1).selectOne(context);
@@ -134,25 +119,22 @@ public class CommitLogFilter_FilteredIT extends AuditableServerCase {
 	public void testPostCommit_Delete() throws SQLException {
 		auditable2.insert(1, "P1_1", "P2_1");
 
-		doAnswer(new Answer<Object>() {
-			@Override
-			public Object answer(InvocationOnMock invocation) throws Throwable {
+		doAnswer((Answer<Object>) invocation -> {
 
-				assertSame(context, invocation.getArguments()[0]);
+			assertSame(context, invocation.getArguments()[0]);
 
-				ChangeMap changes = (ChangeMap) invocation.getArguments()[1];
-				assertNotNull(changes);
-				assertEquals(1, changes.getUniqueChanges().size());
+			ChangeMap changes = (ChangeMap) invocation.getArguments()[1];
+			assertNotNull(changes);
+			assertEquals(1, changes.getUniqueChanges().size());
 
-				ObjectChange c = changes.getChanges().get(new ObjectId("Auditable2", Auditable2.ID_PK_COLUMN, 1));
-				assertNotNull(c);
-				assertEquals(ObjectChangeType.DELETE, c.getType());
-				assertEquals(1, c.getAttributeChanges().size());
-				assertEquals(Confidential.getInstance(),
-						c.getAttributeChanges().get(Auditable2.CHAR_PROPERTY2.getName()).getOldValue());
+			ObjectChange c = changes.getChanges().get(new ObjectId("Auditable2", Auditable2.ID_PK_COLUMN, 1));
+			assertNotNull(c);
+			assertEquals(ObjectChangeType.DELETE, c.getType());
+			assertEquals(1, c.getAttributeChanges().size());
+			assertEquals(Confidential.getInstance(),
+					c.getAttributeChanges().get(Auditable2.CHAR_PROPERTY2.getName()).getOldValue());
 
-				return null;
-			}
+			return null;
 		}).when(mockListener).onPostCommit(any(ObjectContext.class), any(ChangeMap.class));
 
 		Auditable2 a1 = SelectById.query(Auditable2.class, 1).selectOne(context);
@@ -175,35 +157,32 @@ public class CommitLogFilter_FilteredIT extends AuditableServerCase {
 
 		final Auditable1 a1 = SelectById.query(Auditable1.class, 1).selectOne(context);
 
-		doAnswer(new Answer<Object>() {
-			@Override
-			public Object answer(InvocationOnMock invocation) throws Throwable {
+		doAnswer((Answer<Object>) invocation -> {
 
-				assertSame(context, invocation.getArguments()[0]);
+			assertSame(context, invocation.getArguments()[0]);
 
-				ChangeMap changes = (ChangeMap) invocation.getArguments()[1];
-				assertNotNull(changes);
-				assertEquals(1, changes.getUniqueChanges().size());
+			ChangeMap changes = (ChangeMap) invocation.getArguments()[1];
+			assertNotNull(changes);
+			assertEquals(1, changes.getUniqueChanges().size());
 
-				ObjectChange a1c = changes.getChanges().get(new ObjectId("Auditable1", Auditable1.ID_PK_COLUMN, 1));
-				assertNotNull(a1c);
-				assertEquals(ObjectChangeType.UPDATE, a1c.getType());
-				assertEquals(0, a1c.getAttributeChanges().size());
+			ObjectChange a1c = changes.getChanges().get(new ObjectId("Auditable1", Auditable1.ID_PK_COLUMN, 1));
+			assertNotNull(a1c);
+			assertEquals(ObjectChangeType.UPDATE, a1c.getType());
+			assertEquals(0, a1c.getAttributeChanges().size());
 
-				assertEquals(1, a1c.getToManyRelationshipChanges().size());
+			assertEquals(1, a1c.getToManyRelationshipChanges().size());
 
-				ToManyRelationshipChange a1c1 = a1c.getToManyRelationshipChanges().get(Auditable1.CHILDREN1.getName());
-				assertNotNull(a1c1);
+			ToManyRelationshipChange a1c1 = a1c.getToManyRelationshipChanges().get(Auditable1.CHILDREN1.getName());
+			assertNotNull(a1c1);
 
-				assertEquals(2, a1c1.getAdded().size());
-				assertTrue(a1c1.getAdded().contains(ac2.getObjectId()));
-				assertTrue(a1c1.getAdded().contains(ac3.getObjectId()));
+			assertEquals(2, a1c1.getAdded().size());
+			assertTrue(a1c1.getAdded().contains(ac2.getObjectId()));
+			assertTrue(a1c1.getAdded().contains(ac3.getObjectId()));
 
-				assertEquals(1, a1c1.getRemoved().size());
-				assertTrue(a1c1.getRemoved().contains(ac1.getObjectId()));
+			assertEquals(1, a1c1.getRemoved().size());
+			assertTrue(a1c1.getRemoved().contains(ac1.getObjectId()));
 
-				return null;
-			}
+			return null;
 		}).when(mockListener).onPostCommit(any(ObjectContext.class), any(ChangeMap.class));
 
 		a1.removeFromChildren1(ac1);
@@ -222,17 +201,14 @@ public class CommitLogFilter_FilteredIT extends AuditableServerCase {
 
 		final Auditable3 a3 = SelectById.query(Auditable3.class, 1).selectOne(context);
 
-		doAnswer(new Answer<Object>() {
-			@Override
-			public Object answer(InvocationOnMock invocation) throws Throwable {
+		doAnswer((Answer<Object>) invocation -> {
 
-				assertSame(context, invocation.getArguments()[0]);
+			assertSame(context, invocation.getArguments()[0]);
 
-				ChangeMap changes = (ChangeMap) invocation.getArguments()[1];
-				assertNull(changes.getChanges().get(new ObjectId("Auditable3", Auditable3.ID_PK_COLUMN, 1)));
+			ChangeMap changes = (ChangeMap) invocation.getArguments()[1];
+			assertNull(changes.getChanges().get(new ObjectId("Auditable3", Auditable3.ID_PK_COLUMN, 1)));
 
-				return null;
-			}
+			return null;
 		}).when(mockListener).onPostCommit(any(ObjectContext.class), any(ChangeMap.class));
 
 		a3.setCharProperty1("33");
@@ -254,17 +230,14 @@ public class CommitLogFilter_FilteredIT extends AuditableServerCase {
 		final Auditable4 a41 = SelectById.query(Auditable4.class, 11).selectOne(context);
 		final Auditable4 a42 = SelectById.query(Auditable4.class, 12).selectOne(context);
 
-		doAnswer(new Answer<Object>() {
-			@Override
-			public Object answer(InvocationOnMock invocation) throws Throwable {
+		doAnswer((Answer<Object>) invocation -> {
 
-				assertSame(context, invocation.getArguments()[0]);
+			assertSame(context, invocation.getArguments()[0]);
 
-				ChangeMap changes = (ChangeMap) invocation.getArguments()[1];
-				assertNull(changes.getChanges().get(new ObjectId("Auditable3", Auditable3.ID_PK_COLUMN, 1)));
+			ChangeMap changes = (ChangeMap) invocation.getArguments()[1];
+			assertNull(changes.getChanges().get(new ObjectId("Auditable3", Auditable3.ID_PK_COLUMN, 1)));
 
-				return null;
-			}
+			return null;
 		}).when(mockListener).onPostCommit(any(ObjectContext.class), any(ChangeMap.class));
 
 		a3.removeFromAuditable4s(a41);
@@ -286,17 +259,14 @@ public class CommitLogFilter_FilteredIT extends AuditableServerCase {
 
 		final Auditable4 a4 = SelectById.query(Auditable4.class, 11).selectOne(context);
 
-		doAnswer(new Answer<Object>() {
-			@Override
-			public Object answer(InvocationOnMock invocation) throws Throwable {
+		doAnswer((Answer<Object>) invocation -> {
 
-				assertSame(context, invocation.getArguments()[0]);
+			assertSame(context, invocation.getArguments()[0]);
 
-				ChangeMap changes = (ChangeMap) invocation.getArguments()[1];
-				assertNull(changes.getChanges().get(new ObjectId("Auditable4", Auditable4.ID_PK_COLUMN, 11)));
+			ChangeMap changes = (ChangeMap) invocation.getArguments()[1];
+			assertNull(changes.getChanges().get(new ObjectId("Auditable4", Auditable4.ID_PK_COLUMN, 11)));
 
-				return null;
-			}
+			return null;
 		}).when(mockListener).onPostCommit(any(ObjectContext.class), any(ChangeMap.class));
 
 		a4.setAuditable3(a32);
diff --git a/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/CommitLogFilter_ListenerInducedChangesIT.java b/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/CommitLogFilter_ListenerInducedChangesIT.java
index b45f7d7..3960d22 100644
--- a/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/CommitLogFilter_ListenerInducedChangesIT.java
+++ b/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/CommitLogFilter_ListenerInducedChangesIT.java
@@ -38,7 +38,6 @@ import org.mockito.stubbing.Answer;
 
 import java.sql.SQLException;
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.Comparator;
 import java.util.List;
 
@@ -66,7 +65,7 @@ public class CommitLogFilter_ListenerInducedChangesIT extends AuditableServerCas
 	}
 
 	@Test
-	public void testPostCommit_Insert() throws SQLException {
+	public void testPostCommit_Insert() {
 
 		final InsertListener listener = new InsertListener();
 		runtime.getDataDomain().addListener(listener);
@@ -74,29 +73,26 @@ public class CommitLogFilter_ListenerInducedChangesIT extends AuditableServerCas
 		final Auditable1 a1 = context.newObject(Auditable1.class);
 		a1.setCharProperty1("yy");
 
-		doAnswer(new Answer<Object>() {
-			@Override
-			public Object answer(InvocationOnMock invocation) throws Throwable {
+		doAnswer((Answer<Object>) invocation -> {
 
-				assertNotNull(listener.c);
+			assertNotNull(listener.c);
 
-				List<ObjectChange> sortedChanges = sortedChanges(invocation);
+			List<ObjectChange> sortedChanges = sortedChanges(invocation);
 
-				assertEquals(2, sortedChanges.size());
+			assertEquals(2, sortedChanges.size());
 
-				assertEquals(a1.getObjectId(), sortedChanges.get(0).getPostCommitId());
-				assertEquals(ObjectChangeType.INSERT, sortedChanges.get(0).getType());
+			assertEquals(a1.getObjectId(), sortedChanges.get(0).getPostCommitId());
+			assertEquals(ObjectChangeType.INSERT, sortedChanges.get(0).getType());
 
-				assertEquals(listener.c.getObjectId(), sortedChanges.get(1).getPostCommitId());
-				assertEquals(ObjectChangeType.INSERT, sortedChanges.get(1).getType());
+			assertEquals(listener.c.getObjectId(), sortedChanges.get(1).getPostCommitId());
+			assertEquals(ObjectChangeType.INSERT, sortedChanges.get(1).getType());
 
-				AttributeChange listenerInducedChange = sortedChanges.get(1).getAttributeChanges()
-						.get(AuditableChild1.CHAR_PROPERTY1.getName());
-				assertNotNull(listenerInducedChange);
-				assertEquals("c1", listenerInducedChange.getNewValue());
+			AttributeChange listenerInducedChange = sortedChanges.get(1).getAttributeChanges()
+					.get(AuditableChild1.CHAR_PROPERTY1.getName());
+			assertNotNull(listenerInducedChange);
+			assertEquals("c1", listenerInducedChange.getNewValue());
 
-				return null;
-			}
+			return null;
 		}).when(mockListener).onPostCommit(any(ObjectContext.class), any(ChangeMap.class));
 
 		context.commitChanges();
@@ -117,30 +113,27 @@ public class CommitLogFilter_ListenerInducedChangesIT extends AuditableServerCas
 				.selectFirst(context);
 		a1.setCharProperty1("zz");
 
-		doAnswer(new Answer<Object>() {
-			@Override
-			public Object answer(InvocationOnMock invocation) throws Throwable {
+		doAnswer((Answer<Object>) invocation -> {
 
-				assertNotNull(listener.toDelete);
-				assertEquals(1, listener.toDelete.size());
+			assertNotNull(listener.toDelete);
+			assertEquals(1, listener.toDelete.size());
 
-				List<ObjectChange> sortedChanges = sortedChanges(invocation);
+			List<ObjectChange> sortedChanges = sortedChanges(invocation);
 
-				assertEquals(2, sortedChanges.size());
+			assertEquals(2, sortedChanges.size());
 
-				assertEquals(ObjectChangeType.UPDATE, sortedChanges.get(0).getType());
-				assertEquals(a1.getObjectId(), sortedChanges.get(0).getPostCommitId());
+			assertEquals(ObjectChangeType.UPDATE, sortedChanges.get(0).getType());
+			assertEquals(a1.getObjectId(), sortedChanges.get(0).getPostCommitId());
 
-				assertEquals(ObjectChangeType.DELETE, sortedChanges.get(1).getType());
-				assertEquals(listener.toDelete.get(0).getObjectId(), sortedChanges.get(1).getPostCommitId());
+			assertEquals(ObjectChangeType.DELETE, sortedChanges.get(1).getType());
+			assertEquals(listener.toDelete.get(0).getObjectId(), sortedChanges.get(1).getPostCommitId());
 
-				AttributeChange listenerInducedChange = sortedChanges.get(1).getAttributeChanges()
-						.get(AuditableChild1.CHAR_PROPERTY1.getName());
-				assertNotNull(listenerInducedChange);
-				assertEquals("yyc", listenerInducedChange.getOldValue());
+			AttributeChange listenerInducedChange = sortedChanges.get(1).getAttributeChanges()
+					.get(AuditableChild1.CHAR_PROPERTY1.getName());
+			assertNotNull(listenerInducedChange);
+			assertEquals("yyc", listenerInducedChange.getOldValue());
 
-				return null;
-			}
+			return null;
 		}).when(mockListener).onPostCommit(any(ObjectContext.class), any(ChangeMap.class));
 
 		context.commitChanges();
@@ -161,31 +154,28 @@ public class CommitLogFilter_ListenerInducedChangesIT extends AuditableServerCas
 				.selectFirst(context);
 		a1.setCharProperty1("zz");
 
-		doAnswer(new Answer<Object>() {
-			@Override
-			public Object answer(InvocationOnMock invocation) throws Throwable {
+		doAnswer((Answer<Object>) invocation -> {
 
-				assertNotNull(listener.toUpdate);
-				assertEquals(1, listener.toUpdate.size());
+			assertNotNull(listener.toUpdate);
+			assertEquals(1, listener.toUpdate.size());
 
-				List<ObjectChange> sortedChanges = sortedChanges(invocation);
+			List<ObjectChange> sortedChanges = sortedChanges(invocation);
 
-				assertEquals(2, sortedChanges.size());
+			assertEquals(2, sortedChanges.size());
 
-				assertEquals(ObjectChangeType.UPDATE, sortedChanges.get(0).getType());
-				assertEquals(a1.getObjectId(), sortedChanges.get(0).getPostCommitId());
+			assertEquals(ObjectChangeType.UPDATE, sortedChanges.get(0).getType());
+			assertEquals(a1.getObjectId(), sortedChanges.get(0).getPostCommitId());
 
-				assertEquals(ObjectChangeType.UPDATE, sortedChanges.get(1).getType());
-				assertEquals(listener.toUpdate.get(0).getObjectId(), sortedChanges.get(1).getPostCommitId());
+			assertEquals(ObjectChangeType.UPDATE, sortedChanges.get(1).getType());
+			assertEquals(listener.toUpdate.get(0).getObjectId(), sortedChanges.get(1).getPostCommitId());
 
-				AttributeChange listenerInducedChange = sortedChanges.get(1).getAttributeChanges()
-						.get(AuditableChild1.CHAR_PROPERTY1.getName());
-				assertNotNull(listenerInducedChange);
-				assertEquals("yyc", listenerInducedChange.getOldValue());
-				assertEquals("yyc_", listenerInducedChange.getNewValue());
+			AttributeChange listenerInducedChange = sortedChanges.get(1).getAttributeChanges()
+					.get(AuditableChild1.CHAR_PROPERTY1.getName());
+			assertNotNull(listenerInducedChange);
+			assertEquals("yyc", listenerInducedChange.getOldValue());
+			assertEquals("yyc_", listenerInducedChange.getNewValue());
 
-				return null;
-			}
+			return null;
 		}).when(mockListener).onPostCommit(any(ObjectContext.class), any(ChangeMap.class));
 
 		context.commitChanges();
@@ -199,11 +189,7 @@ public class CommitLogFilter_ListenerInducedChangesIT extends AuditableServerCas
 		ChangeMap changes = (ChangeMap) invocation.getArguments()[1];
 
 		List<ObjectChange> sortedChanges = new ArrayList<>(changes.getUniqueChanges());
-		Collections.sort(sortedChanges, new Comparator<ObjectChange>() {
-			public int compare(ObjectChange o1, ObjectChange o2) {
-				return o1.getPostCommitId().getEntityName().compareTo(o2.getPostCommitId().getEntityName());
-			}
-		});
+		sortedChanges.sort(Comparator.comparing(o -> o.getPostCommitId().getEntityName()));
 
 		return sortedChanges;
 	}
diff --git a/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/CommitLogFilter_OutsideTxIT.java b/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/CommitLogFilter_OutsideTxIT.java
index 4c95050..bd33f19 100644
--- a/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/CommitLogFilter_OutsideTxIT.java
+++ b/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/CommitLogFilter_OutsideTxIT.java
@@ -21,7 +21,6 @@ package org.apache.cayenne.commitlog;
 import org.apache.cayenne.ObjectContext;
 import org.apache.cayenne.commitlog.db.AuditLog;
 import org.apache.cayenne.commitlog.db.Auditable2;
-import org.apache.cayenne.commitlog.model.ChangeMap;
 import org.apache.cayenne.commitlog.model.ObjectChange;
 import org.apache.cayenne.commitlog.unit.AuditableServerCase;
 import org.apache.cayenne.configuration.server.ServerRuntimeBuilder;
@@ -42,19 +41,15 @@ public class CommitLogFilter_OutsideTxIT extends AuditableServerCase {
 
 	@Override
 	protected ServerRuntimeBuilder configureCayenne() {
-		this.listener = new CommitLogListener() {
+		this.listener = (originatingContext, changes) -> {
 
-			@Override
-			public void onPostCommit(ObjectContext originatingContext, ChangeMap changes) {
+			// assert we are inside transaction
+			assertNull(BaseTransaction.getThreadTransaction());
 
-				// assert we are inside transaction
-				assertNull(BaseTransaction.getThreadTransaction());
-
-				for (ObjectChange c : changes.getUniqueChanges()) {
-					AuditLog log = runtime.newContext().newObject(AuditLog.class);
-					log.setLog("DONE: " + c.getPostCommitId());
-					log.getObjectContext().commitChanges();
-				}
+			for (ObjectChange c : changes.getUniqueChanges()) {
+				AuditLog log = runtime.newContext().newObject(AuditLog.class);
+				log.setLog("DONE: " + c.getPostCommitId());
+				log.getObjectContext().commitChanges();
 			}
 		};
 		return super.configureCayenne().addModule(
diff --git a/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/CommitLogFilter_TxIT.java b/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/CommitLogFilter_TxIT.java
index 4877121..61e251a 100644
--- a/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/CommitLogFilter_TxIT.java
+++ b/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/CommitLogFilter_TxIT.java
@@ -21,7 +21,6 @@ package org.apache.cayenne.commitlog;
 import org.apache.cayenne.ObjectContext;
 import org.apache.cayenne.commitlog.db.AuditLog;
 import org.apache.cayenne.commitlog.db.Auditable2;
-import org.apache.cayenne.commitlog.model.ChangeMap;
 import org.apache.cayenne.commitlog.model.ObjectChange;
 import org.apache.cayenne.commitlog.unit.AuditableServerCase;
 import org.apache.cayenne.configuration.server.ServerRuntimeBuilder;
@@ -42,19 +41,15 @@ public class CommitLogFilter_TxIT extends AuditableServerCase {
 
 	@Override
 	protected ServerRuntimeBuilder configureCayenne() {
-		this.listener = new CommitLogListener() {
+		this.listener = (originatingContext, changes) -> {
 
-			@Override
-			public void onPostCommit(ObjectContext originatingContext, ChangeMap changes) {
+			// assert we are inside transaction
+			assertNotNull(BaseTransaction.getThreadTransaction());
 
-				// assert we are inside transaction
-				assertNotNull(BaseTransaction.getThreadTransaction());
-
-				for (ObjectChange c : changes.getUniqueChanges()) {
-					AuditLog log = runtime.newContext().newObject(AuditLog.class);
-					log.setLog("DONE: " + c.getPostCommitId());
-					log.getObjectContext().commitChanges();
-				}
+			for (ObjectChange c : changes.getUniqueChanges()) {
+				AuditLog log = runtime.newContext().newObject(AuditLog.class);
+				log.setLog("DONE: " + c.getPostCommitId());
+				log.getObjectContext().commitChanges();
 			}
 		};
 		return super.configureCayenne().addModule(