Repository: cayenne Updated Branches: refs/heads/master 45ca61a0e -> 175ec07f6
CAY-2302 Rename PostCommit module and its content to CommitLog * javadocs * moving builder method from builder to the root module, renaming it to "extend" Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/175ec07f Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/175ec07f Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/175ec07f Branch: refs/heads/master Commit: 175ec07f69446ea89c8ed8ec338b29d45f95821e Parents: 45ca61a Author: Andrus Adamchik <and...@objectstyle.com> Authored: Mon May 29 17:36:53 2017 +0300 Committer: Andrus Adamchik <and...@objectstyle.com> Committed: Mon May 29 17:51:21 2017 +0300 ---------------------------------------------------------------------- .../cayenne/commitlog/CommitLogModule.java | 16 ++- .../commitlog/CommitLogModuleBuilder.java | 136 ------------------- .../commitlog/CommitLogModuleExtender.java | 132 ++++++++++++++++++ .../commitlog/CommitLogFilter_AllIT.java | 27 ++-- .../CommitLogFilter_All_FlattenedIT.java | 25 ++-- .../commitlog/CommitLogFilter_FilteredIT.java | 32 ++--- ...ommitLogFilter_ListenerInducedChangesIT.java | 32 ++--- .../commitlog/CommitLogFilter_OutsideTxIT.java | 20 +-- .../cayenne/commitlog/CommitLogFilter_TxIT.java | 20 +-- .../commitlog/CommitLogModuleBuilderTest.java | 16 +-- 10 files changed, 222 insertions(+), 234 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cayenne/blob/175ec07f/cayenne-commitlog/src/main/java/org/apache/cayenne/commitlog/CommitLogModule.java ---------------------------------------------------------------------- diff --git a/cayenne-commitlog/src/main/java/org/apache/cayenne/commitlog/CommitLogModule.java b/cayenne-commitlog/src/main/java/org/apache/cayenne/commitlog/CommitLogModule.java index 1a387c3..a1b4e9d 100644 --- a/cayenne-commitlog/src/main/java/org/apache/cayenne/commitlog/CommitLogModule.java +++ b/cayenne-commitlog/src/main/java/org/apache/cayenne/commitlog/CommitLogModule.java @@ -26,14 +26,28 @@ import org.apache.cayenne.commitlog.meta.IncludeAllCommitLogEntityFactory; import org.apache.cayenne.commitlog.meta.CommitLogEntityFactory; /** + * Auto-loadable module that enables gathering of commit log information for Cayenne stack. To add custom listeners to + * receive commit log events, implement {@link CommitLogListener} and register it using {@link CommitLogModule#extend()}. + * * @since 4.0 */ -public class CommitLogModule implements Module{ +public class CommitLogModule implements Module { public static ListBuilder<CommitLogListener> contributeListeners(Binder binder) { return binder.bindList(CommitLogListener.class); } + /** + * Starts an extensions module builder to add listeners to {@link CommitLogModule} and/or otherwise customize this + * module. + * + * @return a new builder of {@link CommitLogModule} extensions. + * @see CommitLogListener + */ + public static CommitLogModuleExtender extend() { + return new CommitLogModuleExtender(); + } + @Override public void configure(Binder binder) { contributeListeners(binder); http://git-wip-us.apache.org/repos/asf/cayenne/blob/175ec07f/cayenne-commitlog/src/main/java/org/apache/cayenne/commitlog/CommitLogModuleBuilder.java ---------------------------------------------------------------------- diff --git a/cayenne-commitlog/src/main/java/org/apache/cayenne/commitlog/CommitLogModuleBuilder.java b/cayenne-commitlog/src/main/java/org/apache/cayenne/commitlog/CommitLogModuleBuilder.java deleted file mode 100644 index 9bd0f7f..0000000 --- a/cayenne-commitlog/src/main/java/org/apache/cayenne/commitlog/CommitLogModuleBuilder.java +++ /dev/null @@ -1,136 +0,0 @@ -/***************************************************************** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - ****************************************************************/ -package org.apache.cayenne.commitlog; - -import org.apache.cayenne.configuration.server.ServerModule; -import org.apache.cayenne.di.Binder; -import org.apache.cayenne.di.ListBuilder; -import org.apache.cayenne.di.Module; -import org.apache.cayenne.commitlog.meta.AnnotationCommitLogEntityFactory; -import org.apache.cayenne.commitlog.meta.IncludeAllCommitLogEntityFactory; -import org.apache.cayenne.commitlog.meta.CommitLogEntity; -import org.apache.cayenne.commitlog.meta.CommitLogEntityFactory; -import org.apache.cayenne.tx.TransactionFilter; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.Collection; -import java.util.HashSet; - -/** - * A builder of a module that integrates {@link CommitLogFilter} and - * {@link CommitLogListener} in Cayenne. - * - * @since 4.0 - */ -public class CommitLogModuleBuilder { - - private static final Logger LOGGER = LoggerFactory.getLogger(CommitLogModuleBuilder.class); - - public static CommitLogModuleBuilder builder() { - return new CommitLogModuleBuilder(); - } - - private Class<? extends CommitLogEntityFactory> entityFactoryType; - private Collection<Class<? extends CommitLogListener>> listenerTypes; - private Collection<CommitLogListener> listenerInstances; - private boolean excludeFromTransaction; - - CommitLogModuleBuilder() { - entityFactory(IncludeAllCommitLogEntityFactory.class); - this.listenerTypes = new HashSet<>(); - this.listenerInstances = new HashSet<>(); - } - - public CommitLogModuleBuilder listener(Class<? extends CommitLogListener> type) { - this.listenerTypes.add(type); - return this; - } - - public CommitLogModuleBuilder listener(CommitLogListener instance) { - this.listenerInstances.add(instance); - return this; - } - - /** - * If called, events will be dispatched outside of the main commit - * transaction. By default events are dispatched within the transaction, so - * listeners can commit their code together with the main commit. - */ - public CommitLogModuleBuilder excludeFromTransaction() { - this.excludeFromTransaction = true; - return this; - } - - /** - * Installs entity filter that would only include entities annotated with - * {@link CommitLog} on the callbacks. Also {@link CommitLog#confidential()} - * properties will be obfuscated and {@link CommitLog#ignoredProperties()} - - * excluded from the change collection. - */ - public CommitLogModuleBuilder commitLogAnnotationEntitiesOnly() { - return entityFactory(AnnotationCommitLogEntityFactory.class); - } - - /** - * Installs a custom factory for {@link CommitLogEntity} objects that - * allows implementors to use their own annotations, etc. - */ - public CommitLogModuleBuilder entityFactory(Class<? extends CommitLogEntityFactory> entityFactoryType) { - this.entityFactoryType = entityFactoryType; - return this; - } - - /** - * Creates a DI module that would install {@link CommitLogFilter} and its - * listeners in Cayenne. - */ - public Module build() { - return new Module() { - - @SuppressWarnings({ "unchecked" }) - @Override - public void configure(Binder binder) { - - if (listenerTypes.isEmpty() && listenerInstances.isEmpty()) { - LOGGER.info("No listeners configured. Skipping CommitLogFilter registration"); - return; - } - - binder.bind(CommitLogEntityFactory.class).to(entityFactoryType); - - ListBuilder<CommitLogListener> listeners = CommitLogModule.contributeListeners(binder) - .addAll(listenerInstances); - - // types have to be added one-by-one - for (Class<? extends CommitLogListener> type : listenerTypes) { - // TODO: temp hack - need to bind each type before adding to collection... - binder.bind(type).to((Class)type); - listeners.add(type); - } - - if (excludeFromTransaction) { - ServerModule.contributeDomainFilters(binder).addAfter(CommitLogFilter.class, TransactionFilter.class); - } else { - ServerModule.contributeDomainFilters(binder).insertBefore(CommitLogFilter.class, TransactionFilter.class); - } - } - }; - } -} http://git-wip-us.apache.org/repos/asf/cayenne/blob/175ec07f/cayenne-commitlog/src/main/java/org/apache/cayenne/commitlog/CommitLogModuleExtender.java ---------------------------------------------------------------------- diff --git a/cayenne-commitlog/src/main/java/org/apache/cayenne/commitlog/CommitLogModuleExtender.java b/cayenne-commitlog/src/main/java/org/apache/cayenne/commitlog/CommitLogModuleExtender.java new file mode 100644 index 0000000..e0ae1da --- /dev/null +++ b/cayenne-commitlog/src/main/java/org/apache/cayenne/commitlog/CommitLogModuleExtender.java @@ -0,0 +1,132 @@ +/***************************************************************** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + ****************************************************************/ +package org.apache.cayenne.commitlog; + +import org.apache.cayenne.configuration.server.ServerModule; +import org.apache.cayenne.di.Binder; +import org.apache.cayenne.di.ListBuilder; +import org.apache.cayenne.di.Module; +import org.apache.cayenne.commitlog.meta.AnnotationCommitLogEntityFactory; +import org.apache.cayenne.commitlog.meta.IncludeAllCommitLogEntityFactory; +import org.apache.cayenne.commitlog.meta.CommitLogEntity; +import org.apache.cayenne.commitlog.meta.CommitLogEntityFactory; +import org.apache.cayenne.tx.TransactionFilter; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.Collection; +import java.util.HashSet; + +/** + * A builder of a custom extensions module for {@link CommitLogModule} that customizes its services and installs + * application-specific commit log listeners. + * + * @since 4.0 + */ +public class CommitLogModuleExtender { + + private static final Logger LOGGER = LoggerFactory.getLogger(CommitLogModuleExtender.class); + + private Class<? extends CommitLogEntityFactory> entityFactoryType; + private Collection<Class<? extends CommitLogListener>> listenerTypes; + private Collection<CommitLogListener> listenerInstances; + private boolean excludeFromTransaction; + + CommitLogModuleExtender() { + entityFactory(IncludeAllCommitLogEntityFactory.class); + this.listenerTypes = new HashSet<>(); + this.listenerInstances = new HashSet<>(); + } + + public CommitLogModuleExtender addListener(Class<? extends CommitLogListener> type) { + this.listenerTypes.add(type); + return this; + } + + public CommitLogModuleExtender addListener(CommitLogListener instance) { + this.listenerInstances.add(instance); + return this; + } + + /** + * If called, events will be dispatched outside of the main commit + * transaction. By default events are dispatched within the transaction, so + * listeners can commit their code together with the main commit. + */ + public CommitLogModuleExtender excludeFromTransaction() { + this.excludeFromTransaction = true; + return this; + } + + /** + * Installs entity filter that would only include entities annotated with + * {@link CommitLog} on the callbacks. Also {@link CommitLog#confidential()} + * properties will be obfuscated and {@link CommitLog#ignoredProperties()} - + * excluded from the change collection. + */ + public CommitLogModuleExtender commitLogAnnotationEntitiesOnly() { + return entityFactory(AnnotationCommitLogEntityFactory.class); + } + + /** + * Installs a custom factory for {@link CommitLogEntity} objects that + * allows implementors to use their own annotations, etc. + */ + public CommitLogModuleExtender entityFactory(Class<? extends CommitLogEntityFactory> entityFactoryType) { + this.entityFactoryType = entityFactoryType; + return this; + } + + /** + * Creates a DI module that would install {@link CommitLogFilter} and its + * listeners in Cayenne. + */ + public Module build() { + return new Module() { + + @SuppressWarnings({"unchecked"}) + @Override + public void configure(Binder binder) { + + if (listenerTypes.isEmpty() && listenerInstances.isEmpty()) { + LOGGER.info("No listeners configured. Skipping CommitLogFilter registration"); + return; + } + + binder.bind(CommitLogEntityFactory.class).to(entityFactoryType); + + ListBuilder<CommitLogListener> listeners = CommitLogModule.contributeListeners(binder) + .addAll(listenerInstances); + + // types have to be added one-by-one + for (Class<? extends CommitLogListener> type : listenerTypes) { + // TODO: temp hack - need to bind each type before adding to collection... + binder.bind(type).to((Class) type); + listeners.add(type); + } + + if (excludeFromTransaction) { + ServerModule.contributeDomainFilters(binder).addAfter(CommitLogFilter.class, TransactionFilter.class); + } else { + ServerModule.contributeDomainFilters(binder).insertBefore(CommitLogFilter.class, TransactionFilter.class); + } + } + }; + } +} http://git-wip-us.apache.org/repos/asf/cayenne/blob/175ec07f/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/CommitLogFilter_AllIT.java ---------------------------------------------------------------------- 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 06f4646..de33318 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 @@ -18,37 +18,30 @@ ****************************************************************/ package org.apache.cayenne.commitlog; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertSame; -import static org.junit.Assert.assertTrue; -import static org.mockito.Matchers.any; -import static org.mockito.Mockito.doAnswer; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; - -import java.sql.SQLException; - import org.apache.cayenne.ObjectContext; import org.apache.cayenne.ObjectId; -import org.apache.cayenne.configuration.server.ServerRuntimeBuilder; +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.db.Auditable1; -import org.apache.cayenne.commitlog.db.AuditableChild1; 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; + +import static org.junit.Assert.*; +import static org.mockito.Matchers.any; +import static org.mockito.Mockito.*; + public class CommitLogFilter_AllIT extends AuditableServerCase { protected ObjectContext context; @@ -57,7 +50,7 @@ public class CommitLogFilter_AllIT extends AuditableServerCase { @Override protected ServerRuntimeBuilder configureCayenne() { this.mockListener = mock(CommitLogListener.class); - return super.configureCayenne().addModule(CommitLogModuleBuilder.builder().listener(mockListener).build()); + return super.configureCayenne().addModule(CommitLogModule.extend().addListener(mockListener).build()); } @Before http://git-wip-us.apache.org/repos/asf/cayenne/blob/175ec07f/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/CommitLogFilter_All_FlattenedIT.java ---------------------------------------------------------------------- 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 ffdcc20..e176360 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 @@ -18,33 +18,28 @@ ****************************************************************/ package org.apache.cayenne.commitlog; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertSame; -import static org.junit.Assert.assertTrue; -import static org.mockito.Matchers.any; -import static org.mockito.Mockito.doAnswer; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; - -import java.sql.SQLException; - import org.apache.cayenne.ObjectContext; import org.apache.cayenne.ObjectId; -import org.apache.cayenne.configuration.server.ServerRuntimeBuilder; +import org.apache.cayenne.commitlog.db.E3; +import org.apache.cayenne.commitlog.db.E4; 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.E3; -import org.apache.cayenne.commitlog.db.E4; import org.apache.cayenne.commitlog.unit.FlattenedServerCase; +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; + +import static org.junit.Assert.*; +import static org.mockito.Matchers.any; +import static org.mockito.Mockito.*; + public class CommitLogFilter_All_FlattenedIT extends FlattenedServerCase { protected ObjectContext context; @@ -53,7 +48,7 @@ public class CommitLogFilter_All_FlattenedIT extends FlattenedServerCase { @Override protected ServerRuntimeBuilder configureCayenne() { this.mockListener = mock(CommitLogListener.class); - return super.configureCayenne().addModule(CommitLogModuleBuilder.builder().listener(mockListener).build()); + return super.configureCayenne().addModule(CommitLogModule.extend().addListener(mockListener).build()); } @Before http://git-wip-us.apache.org/repos/asf/cayenne/blob/175ec07f/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/CommitLogFilter_FilteredIT.java ---------------------------------------------------------------------- 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 7ab42e4..2750122 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 @@ -18,38 +18,32 @@ ****************************************************************/ package org.apache.cayenne.commitlog; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertSame; -import static org.junit.Assert.assertTrue; -import static org.mockito.Matchers.any; -import static org.mockito.Mockito.doAnswer; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; - -import java.sql.SQLException; - import org.apache.cayenne.ObjectContext; import org.apache.cayenne.ObjectId; -import org.apache.cayenne.configuration.server.ServerRuntimeBuilder; -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.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.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; + +import static org.junit.Assert.*; +import static org.mockito.Matchers.any; +import static org.mockito.Mockito.*; + public class CommitLogFilter_FilteredIT extends AuditableServerCase { protected ObjectContext context; @@ -59,7 +53,7 @@ public class CommitLogFilter_FilteredIT extends AuditableServerCase { protected ServerRuntimeBuilder configureCayenne() { this.mockListener = mock(CommitLogListener.class); return super.configureCayenne().addModule( - CommitLogModuleBuilder.builder().commitLogAnnotationEntitiesOnly().listener(mockListener).build()); + CommitLogModule.extend().commitLogAnnotationEntitiesOnly().addListener(mockListener).build()); } @Before http://git-wip-us.apache.org/repos/asf/cayenne/blob/175ec07f/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/CommitLogFilter_ListenerInducedChangesIT.java ---------------------------------------------------------------------- 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 7bff75d..d84105e 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 @@ -19,37 +19,33 @@ package org.apache.cayenne.commitlog; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertSame; -import static org.mockito.Matchers.any; -import static org.mockito.Mockito.doAnswer; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; - -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; - import org.apache.cayenne.ObjectContext; import org.apache.cayenne.annotation.PrePersist; import org.apache.cayenne.annotation.PreUpdate; -import org.apache.cayenne.configuration.server.ServerRuntimeBuilder; +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.db.Auditable1; -import org.apache.cayenne.commitlog.db.AuditableChild1; 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; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; + +import static org.junit.Assert.*; +import static org.mockito.Matchers.any; +import static org.mockito.Mockito.*; + /** * Testing capturing changes introduced by the pre-commit listeners. */ @@ -61,7 +57,7 @@ public class CommitLogFilter_ListenerInducedChangesIT extends AuditableServerCas @Override protected ServerRuntimeBuilder configureCayenne() { this.mockListener = mock(CommitLogListener.class); - return super.configureCayenne().addModule(CommitLogModuleBuilder.builder().listener(mockListener).build()); + return super.configureCayenne().addModule(CommitLogModule.extend().addListener(mockListener).build()); } @Before http://git-wip-us.apache.org/repos/asf/cayenne/blob/175ec07f/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/CommitLogFilter_OutsideTxIT.java ---------------------------------------------------------------------- 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 95c5c29..e45a493 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 @@ -18,23 +18,23 @@ ****************************************************************/ package org.apache.cayenne.commitlog; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; - -import java.sql.SQLException; -import java.util.List; - import org.apache.cayenne.ObjectContext; -import org.apache.cayenne.configuration.server.ServerRuntimeBuilder; -import org.apache.cayenne.commitlog.model.ChangeMap; -import org.apache.cayenne.commitlog.model.ObjectChange; 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; import org.apache.cayenne.tx.BaseTransaction; import org.junit.Before; import org.junit.Test; +import java.sql.SQLException; +import java.util.List; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; + public class CommitLogFilter_OutsideTxIT extends AuditableServerCase { protected ObjectContext context; @@ -58,7 +58,7 @@ public class CommitLogFilter_OutsideTxIT extends AuditableServerCase { } }; return super.configureCayenne().addModule( - CommitLogModuleBuilder.builder().commitLogAnnotationEntitiesOnly().excludeFromTransaction().listener(listener) + CommitLogModule.extend().commitLogAnnotationEntitiesOnly().excludeFromTransaction().addListener(listener) .build()); } http://git-wip-us.apache.org/repos/asf/cayenne/blob/175ec07f/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/CommitLogFilter_TxIT.java ---------------------------------------------------------------------- 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 9662cc4..6e5782e 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 @@ -18,23 +18,23 @@ ****************************************************************/ package org.apache.cayenne.commitlog; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; - -import java.sql.SQLException; -import java.util.List; - import org.apache.cayenne.ObjectContext; -import org.apache.cayenne.configuration.server.ServerRuntimeBuilder; -import org.apache.cayenne.commitlog.model.ChangeMap; -import org.apache.cayenne.commitlog.model.ObjectChange; 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; import org.apache.cayenne.tx.BaseTransaction; import org.junit.Before; import org.junit.Test; +import java.sql.SQLException; +import java.util.List; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + public class CommitLogFilter_TxIT extends AuditableServerCase { protected ObjectContext context; @@ -58,7 +58,7 @@ public class CommitLogFilter_TxIT extends AuditableServerCase { } }; return super.configureCayenne().addModule( - CommitLogModuleBuilder.builder().commitLogAnnotationEntitiesOnly().listener(listener).build()); + CommitLogModule.extend().commitLogAnnotationEntitiesOnly().addListener(listener).build()); } @Before http://git-wip-us.apache.org/repos/asf/cayenne/blob/175ec07f/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/CommitLogModuleBuilderTest.java ---------------------------------------------------------------------- diff --git a/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/CommitLogModuleBuilderTest.java b/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/CommitLogModuleBuilderTest.java index 9513c92..d6b0355 100644 --- a/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/CommitLogModuleBuilderTest.java +++ b/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/CommitLogModuleBuilderTest.java @@ -18,26 +18,26 @@ ****************************************************************/ package org.apache.cayenne.commitlog; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -import java.util.List; - import org.apache.cayenne.ObjectContext; +import org.apache.cayenne.commitlog.model.ChangeMap; import org.apache.cayenne.di.DIBootstrap; import org.apache.cayenne.di.Injector; import org.apache.cayenne.di.Key; import org.apache.cayenne.di.Module; -import org.apache.cayenne.commitlog.model.ChangeMap; import org.junit.Test; +import java.util.List; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + public class CommitLogModuleBuilderTest { @Test public void testListener_Object() { L listener = new L(); - Module m = CommitLogModuleBuilder.builder().listener(listener).build(); + Module m = CommitLogModule.extend().addListener(listener).build(); Injector i = DIBootstrap.createInjector(m); List<CommitLogListener> listeners = i.getInstance(Key.getListOf(CommitLogListener.class)); @@ -48,7 +48,7 @@ public class CommitLogModuleBuilderTest { @Test public void testListener_Class() { - Module m = CommitLogModuleBuilder.builder().listener(L.class).build(); + Module m = CommitLogModule.extend().addListener(L.class).build(); Injector i = DIBootstrap.createInjector(m); List<CommitLogListener> listeners = i.getInstance(Key.getListOf(CommitLogListener.class));