This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
The following commit(s) were added to refs/heads/master by this push:
new f57475c ISIS-2464: semantic renaming audit/dispatch -> publishing (3)
f57475c is described below
commit f57475c9358a27b7c802654756ba5a037da1d599
Author: Andi Huber <[email protected]>
AuthorDate: Fri Nov 20 09:08:14 2020 +0100
ISIS-2464: semantic renaming audit/dispatch -> publishing (3)
---
.../changetracking/EntityChangeTrackerDefault.java | 20 +++++++-------
...Dispatcher.java => EntityChangesPublisher.java} | 4 +--
.../EntityPropertyChangePublisher.java | 19 +++++++------
...Entities.java => HasEnlistedEntityChanges.java} | 4 +--
...=> HasEnlistedEntityPropertyChangeRecords.java} | 4 +--
.../{AuditEntry.java => PropertyChangeRecord.java} | 2 +-
.../IsisModuleCoreRuntimeServices.java | 4 +--
...ult.java => EntityChangesPublisherDefault.java} | 32 ++++++++++++----------
.../testdomain/applayer/command/CommandTest.java | 4 +--
.../EntityChangesPublishingTest.java} | 20 +++++++-------
.../EntityPropertyChangePublishingTest.java} | 17 ++++++------
...java => EntityChangesSubscriberForTesting.java} | 8 +++---
.../EntityPropertyChangeSubscriberForTesting.java | 29 ++++++++++----------
...onfiguration_usingEntityChangesPublishing.java} | 7 +++--
...ation_usingEntityPropertyChangePublishing.java} | 6 ++--
.../commons/InteractionTestAbstract.java | 32 +++++++++++-----------
...tsTest.java => EntityChangePublishingTest.java} | 26 +++++++++---------
17 files changed, 123 insertions(+), 115 deletions(-)
diff --git
a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/changetracking/EntityChangeTrackerDefault.java
b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/changetracking/EntityChangeTrackerDefault.java
index b199121..336688f 100644
---
a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/changetracking/EntityChangeTrackerDefault.java
+++
b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/changetracking/EntityChangeTrackerDefault.java
@@ -89,13 +89,13 @@ implements
TransactionScopeListener,
MetricsService,
EntityChangeTracker,
- HasEnlistedEntityAudits,
- HasEnlistedChangingEntities {
+ HasEnlistedEntityPropertyChangeRecords,
+ HasEnlistedEntityChanges {
// end::refguide[]
@Inject private EntityPropertyChangePublisher entityAuditDispatcher;
- @Inject private ChangingEntitiesDispatcher changingEntitiesDispatcher;
+ @Inject private EntityChangesPublisher changingEntitiesDispatcher;
@Inject private EventBusService eventBusService;
@Inject private Provider<InteractionContext> interactionContextProvider;
@@ -113,7 +113,7 @@ implements
* <p>
* Will be null until {@link #getEntityAuditEntries()} is called,
thereafter contains the actual changes.
*/
- private final _Lazy<Set<AuditEntry>> changedObjectPropertiesRef =
_Lazy.threadSafe(this::capturePostValuesAndDrain);
+ private final _Lazy<Set<PropertyChangeRecord>> changedObjectPropertiesRef
= _Lazy.threadSafe(this::capturePostValuesAndDrain);
@Getter(AccessLevel.PACKAGE)
private final Map<ManagedObject, EntityChangeKind>
changeKindByEnlistedAdapter = _Maps.newLinkedHashMap();
@@ -151,7 +151,7 @@ implements
@Override
- public Set<AuditEntry> getEntityAuditEntries() {
+ public Set<PropertyChangeRecord> getPropertyChangeRecords() {
// this code path has side-effects, it locks the result for this
transaction,
// such that cannot enlist on top of it
return changedObjectPropertiesRef.get();
@@ -187,7 +187,7 @@ implements
log.debug("about to dispatch audit entries and entity changes");
prepareAuditDispatching();
entityAuditDispatcher.dispatchEntityAudits(this);
- changingEntitiesDispatcher.dispatchChangingEntities(this);
+ changingEntitiesDispatcher.publishChangingEntities(this);
break;
case POST_AUDITING:
log.debug("purging auditing data");
@@ -208,7 +208,7 @@ implements
}
@Override
- public EntityChanges getChangingEntities(ClockService clockService,
UserService userService) {
+ public EntityChanges getEntityChanges(ClockService clockService,
UserService userService) {
return ChangingEntitiesFactory.of(clockService,
userService).createChangingEntities(this);
}
@@ -281,12 +281,12 @@ implements
* For any enlisted Object Properties collects those, that are meant for
auditing,
* then clears enlisted objects.
*/
- private Set<AuditEntry> capturePostValuesAndDrain() {
+ private Set<PropertyChangeRecord> capturePostValuesAndDrain() {
val postValues =
enlistedEntityPropertiesForAuditing.entrySet().stream()
.peek(this::updatePostOn) // set post values of audits, which
have been left empty up to now
.filter(PreAndPostValues::shouldAudit)
- .map(entry->AuditEntry.of(entry.getKey(), entry.getValue()))
+ .map(entry->PropertyChangeRecord.of(entry.getKey(),
entry.getValue()))
.collect(_Sets.toUnmodifiable());
enlistedEntityPropertiesForAuditing.clear();
@@ -321,7 +321,7 @@ implements
}
int numberAuditedEntityPropertiesModified() {
- return getEntityAuditEntries().size();
+ return getPropertyChangeRecords().size();
}
// -- ENTITY CHANGE TRACKING
diff --git
a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/changetracking/ChangingEntitiesDispatcher.java
b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/changetracking/EntityChangesPublisher.java
similarity index 86%
rename from
core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/changetracking/ChangingEntitiesDispatcher.java
rename to
core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/changetracking/EntityChangesPublisher.java
index 772859d..b624cb6 100644
---
a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/changetracking/ChangingEntitiesDispatcher.java
+++
b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/changetracking/EntityChangesPublisher.java
@@ -18,8 +18,8 @@
*/
package org.apache.isis.core.runtime.persistence.changetracking;
-public interface ChangingEntitiesDispatcher {
+public interface EntityChangesPublisher {
- void dispatchChangingEntities(HasEnlistedChangingEntities
hasEnlistedChangingEntities);
+ void publishChangingEntities(HasEnlistedEntityChanges
hasEnlistedEntityChanges);
}
diff --git
a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/changetracking/EntityPropertyChangePublisher.java
b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/changetracking/EntityPropertyChangePublisher.java
index 967f51c..1cf463c 100644
---
a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/changetracking/EntityPropertyChangePublisher.java
+++
b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/changetracking/EntityPropertyChangePublisher.java
@@ -38,6 +38,7 @@ import
org.apache.isis.applib.services.publishing.spi.EntityPropertyChangeSubscr
import org.apache.isis.applib.services.user.UserService;
import org.apache.isis.applib.services.xactn.TransactionService;
import org.apache.isis.commons.collections.Can;
+import org.apache.isis.commons.having.HasEnabling;
import
org.apache.isis.core.metamodel.facets.actions.action.invocation.CommandUtil;
import lombok.RequiredArgsConstructor;
@@ -66,22 +67,22 @@ public class EntityPropertyChangePublisher {
@PostConstruct
public void init() {
enabledSubscribers = Can.ofCollection(subscribers)
- .filter(EntityPropertyChangeSubscriber::isEnabled);
+ .filter(HasEnabling::isEnabled);
}
- public void dispatchEntityAudits(final HasEnlistedEntityAudits
hasEnlistedForAuditing) {
+ public void dispatchEntityAudits(final
HasEnlistedEntityPropertyChangeRecords hasEnlistedForAuditing) {
if(!canDispatch()) {
return;
}
val currentUser = userService.getUser().getName();
val currentTime = clockService.nowAsJavaSqlTimestamp();
- val auditEntries = hasEnlistedForAuditing.getEntityAuditEntries();
+ val propertyChangeRecords =
hasEnlistedForAuditing.getPropertyChangeRecords();
- log.debug("about to process {} audits", ()->auditEntries.size());
+ log.debug("about to process {} property changes",
()->propertyChangeRecords.size());
- for (val auditEntry : auditEntries) {
- publishChangedProperty(currentTime, currentUser, auditEntry);
+ for (val propertyChangeRecord : propertyChangeRecords) {
+ publishChangedProperty(currentTime, currentUser,
propertyChangeRecord);
}
}
@@ -94,16 +95,16 @@ public class EntityPropertyChangePublisher {
private void publishChangedProperty(
final java.sql.Timestamp timestamp,
final String user,
- final AuditEntry auditEntry) {
+ final PropertyChangeRecord propertyChangeRecord) {
- val adapterAndProperty = auditEntry.getAdapterAndProperty();
+ val adapterAndProperty = propertyChangeRecord.getAdapterAndProperty();
val spec = adapterAndProperty.getAdapter().getSpecification();
final Bookmark target = adapterAndProperty.getBookmark();
final String propertyId = adapterAndProperty.getPropertyId();
final String memberId = adapterAndProperty.getMemberId();
- final PreAndPostValues papv = auditEntry.getPreAndPostValues();
+ final PreAndPostValues papv =
propertyChangeRecord.getPreAndPostValues();
final String preValue = papv.getPreString();
final String postValue = papv.getPostString();
diff --git
a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/changetracking/HasEnlistedChangingEntities.java
b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/changetracking/HasEnlistedEntityChanges.java
similarity index 88%
rename from
core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/changetracking/HasEnlistedChangingEntities.java
rename to
core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/changetracking/HasEnlistedEntityChanges.java
index c3d1ae0..d5b93be 100644
---
a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/changetracking/HasEnlistedChangingEntities.java
+++
b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/changetracking/HasEnlistedEntityChanges.java
@@ -22,8 +22,8 @@ import org.apache.isis.applib.services.clock.ClockService;
import org.apache.isis.applib.services.publishing.spi.EntityChanges;
import org.apache.isis.applib.services.user.UserService;
-public interface HasEnlistedChangingEntities {
+public interface HasEnlistedEntityChanges {
- EntityChanges getChangingEntities(ClockService clockService, UserService
userService);
+ EntityChanges getEntityChanges(ClockService clockService, UserService
userService);
}
diff --git
a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/changetracking/HasEnlistedEntityAudits.java
b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/changetracking/HasEnlistedEntityPropertyChangeRecords.java
similarity index 89%
rename from
core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/changetracking/HasEnlistedEntityAudits.java
rename to
core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/changetracking/HasEnlistedEntityPropertyChangeRecords.java
index 317ea051..7066d1a 100644
---
a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/changetracking/HasEnlistedEntityAudits.java
+++
b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/changetracking/HasEnlistedEntityPropertyChangeRecords.java
@@ -20,8 +20,8 @@ package
org.apache.isis.core.runtime.persistence.changetracking;
import java.util.Set;
-public interface HasEnlistedEntityAudits {
+interface HasEnlistedEntityPropertyChangeRecords {
- Set<AuditEntry> getEntityAuditEntries();
+ Set<PropertyChangeRecord> getPropertyChangeRecords();
}
diff --git
a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/changetracking/AuditEntry.java
b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/changetracking/PropertyChangeRecord.java
similarity index 97%
rename from
core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/changetracking/AuditEntry.java
rename to
core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/changetracking/PropertyChangeRecord.java
index 6fdbd31..9c8f02a 100644
---
a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/changetracking/AuditEntry.java
+++
b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/changetracking/PropertyChangeRecord.java
@@ -24,7 +24,7 @@ import lombok.experimental.PackagePrivate;
@Value(staticConstructor = "of")
@PackagePrivate
-final class AuditEntry {
+final class PropertyChangeRecord {
private final @NonNull AdapterAndProperty adapterAndProperty;
private final @NonNull PreAndPostValues preAndPostValues;
diff --git
a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/IsisModuleCoreRuntimeServices.java
b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/IsisModuleCoreRuntimeServices.java
index 62c2a10..afc4742 100644
---
a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/IsisModuleCoreRuntimeServices.java
+++
b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/IsisModuleCoreRuntimeServices.java
@@ -45,7 +45,7 @@ import
org.apache.isis.core.runtimeservices.jaxb.JaxbServiceDefault;
import
org.apache.isis.core.runtimeservices.menubars.MenuBarsLoaderServiceDefault;
import
org.apache.isis.core.runtimeservices.menubars.bootstrap3.MenuBarsServiceBS3;
import org.apache.isis.core.runtimeservices.message.MessageServiceDefault;
-import
org.apache.isis.core.runtimeservices.publish.ChangingEntitiesDispatcherDefault;
+import
org.apache.isis.core.runtimeservices.publish.EntityChangesPublisherDefault;
import org.apache.isis.core.runtimeservices.publish.ExecutionDispatcherDefault;
import
org.apache.isis.core.runtimeservices.queryresultscache.QueryResultsCacheDefault;
import
org.apache.isis.core.runtimeservices.repository.RepositoryServiceDefault;
@@ -70,7 +70,7 @@ import
org.apache.isis.core.runtimeservices.xmlsnapshot.XmlSnapshotServiceDefaul
// @Service's
BookmarkServiceDefault.class,
- ChangingEntitiesDispatcherDefault.class,
+ EntityChangesPublisherDefault.class,
CommandDtoServiceInternalDefault.class,
CommandExecutorServiceDefault.class,
CommandDispatcher.class,
diff --git
a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/ChangingEntitiesDispatcherDefault.java
b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/EntityChangesPublisherDefault.java
similarity index 68%
rename from
core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/ChangingEntitiesDispatcherDefault.java
rename to
core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/EntityChangesPublisherDefault.java
index 46842a2..db18063 100644
---
a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/ChangingEntitiesDispatcherDefault.java
+++
b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/EntityChangesPublisherDefault.java
@@ -34,8 +34,9 @@ import org.apache.isis.applib.services.clock.ClockService;
import org.apache.isis.applib.services.publishing.spi.EntityChangesSubscriber;
import org.apache.isis.applib.services.user.UserService;
import org.apache.isis.commons.collections.Can;
-import
org.apache.isis.core.runtime.persistence.changetracking.ChangingEntitiesDispatcher;
-import
org.apache.isis.core.runtime.persistence.changetracking.HasEnlistedChangingEntities;
+import org.apache.isis.commons.having.HasEnabling;
+import
org.apache.isis.core.runtime.persistence.changetracking.EntityChangesPublisher;
+import
org.apache.isis.core.runtime.persistence.changetracking.HasEnlistedEntityChanges;
import lombok.RequiredArgsConstructor;
import lombok.val;
@@ -44,46 +45,47 @@ import lombok.val;
* Wrapper around {@link
org.apache.isis.applib.services.publishing.spi.EntityChangesSubscriber}.
*/
@Service
-@Named("isisRuntime.ChangingEntitiesDispatcher")
+@Named("isisRuntime.EntityChangesPublisherDefault")
@Order(OrderPrecedence.EARLY)
@Primary
@Qualifier("Default")
@RequiredArgsConstructor(onConstructor_ = {@Inject})
//@Log4j2
-public class ChangingEntitiesDispatcherDefault implements
ChangingEntitiesDispatcher {
+public class EntityChangesPublisherDefault implements EntityChangesPublisher {
- private final List<EntityChangesSubscriber>
changingEntitiesListenersNullable;
+ private final List<EntityChangesSubscriber> subscribers;
private final ClockService clockService;
private final UserService userService;
- private Can<EntityChangesSubscriber> changingEntitiesListeners;
+ private Can<EntityChangesSubscriber> enabledSubscribers;
@PostConstruct
public void init() {
- changingEntitiesListeners =
Can.ofCollection(changingEntitiesListenersNullable);
+ enabledSubscribers = Can.ofCollection(subscribers)
+ .filter(HasEnabling::isEnabled);
}
- public void dispatchChangingEntities(HasEnlistedChangingEntities
hasEnlistedChangingEntities) {
+ public void publishChangingEntities(HasEnlistedEntityChanges
hasEnlistedEntityChanges) {
- if(!canDispatch()) {
+ if(!canPublish()) {
return;
}
- val changingEntities =
hasEnlistedChangingEntities.getChangingEntities(clockService, userService);
+ val entityChanges =
hasEnlistedEntityChanges.getEntityChanges(clockService, userService);
- if(changingEntities == null) {
+ if(entityChanges == null) {
return;
}
- for (val changingEntitiesListener : changingEntitiesListeners) {
- changingEntitiesListener.onChanging(changingEntities);
+ for (val subscriber : enabledSubscribers) {
+ subscriber.onChanging(entityChanges);
}
}
// -- HELPER
- private boolean canDispatch() {
- return changingEntitiesListeners.isNotEmpty();
+ private boolean canPublish() {
+ return enabledSubscribers.isNotEmpty();
}
diff --git
a/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/applayer/command/CommandTest.java
b/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/applayer/command/CommandTest.java
index 8dbec4f..898c528 100644
---
a/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/applayer/command/CommandTest.java
+++
b/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/applayer/command/CommandTest.java
@@ -32,7 +32,7 @@ import org.apache.isis.applib.services.factory.FactoryService;
import org.apache.isis.applib.services.repository.RepositoryService;
import org.apache.isis.applib.services.wrapper.WrapperFactory;
import org.apache.isis.core.config.presets.IsisPresets;
-import
org.apache.isis.testdomain.applayer.auditing.Configuration_usingEntityPrePostValueAuditing;
+import
org.apache.isis.testdomain.conf.Configuration_usingEntityPropertyChangePublishing;
import org.apache.isis.testdomain.conf.Configuration_usingJdo;
import org.apache.isis.testdomain.jdo.JdoInventoryManager;
import org.apache.isis.testdomain.jdo.JdoTestDomainPersona;
@@ -45,7 +45,7 @@ import lombok.val;
@SpringBootTest(
classes = {
Configuration_usingJdo.class,
- Configuration_usingEntityPrePostValueAuditing.class
+ Configuration_usingEntityPropertyChangePublishing.class
},
properties = {
"logging.level.org.apache.isis.testdomain.util.rest.KVStoreForTesting=DEBUG"
diff --git
a/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/applayer/auditing/EntityChangeKindAuditingTest.java
b/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/applayer/publishing/EntityChangesPublishingTest.java
similarity index 77%
rename from
regressiontests/incubating/src/test/java/org/apache/isis/testdomain/applayer/auditing/EntityChangeKindAuditingTest.java
rename to
regressiontests/incubating/src/test/java/org/apache/isis/testdomain/applayer/publishing/EntityChangesPublishingTest.java
index 1997359..750d9b9 100644
---
a/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/applayer/auditing/EntityChangeKindAuditingTest.java
+++
b/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/applayer/publishing/EntityChangesPublishingTest.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.testdomain.applayer.auditing;
+package org.apache.isis.testdomain.applayer.publishing;
import java.util.List;
@@ -33,22 +33,22 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
import org.apache.isis.core.config.presets.IsisPresets;
import org.apache.isis.testdomain.applayer.ApplicationLayerTestFactory;
import
org.apache.isis.testdomain.applayer.ApplicationLayerTestFactory.VerificationStage;
-import
org.apache.isis.testdomain.applayer.publishing.Configuration_usingEntityChangeKindAuditing;
+import
org.apache.isis.testdomain.conf.Configuration_usingEntityChangesPublishing;
import org.apache.isis.testdomain.conf.Configuration_usingJdo;
import org.apache.isis.testdomain.util.kv.KVStoreForTesting;
import
org.apache.isis.testing.integtestsupport.applib.IsisIntegrationTestAbstract;
-import static
org.apache.isis.testdomain.applayer.publishing.ChangingEntitiesListenerForTesting.clearPublishedEntries;
-import static
org.apache.isis.testdomain.applayer.publishing.ChangingEntitiesListenerForTesting.getCreated;
-import static
org.apache.isis.testdomain.applayer.publishing.ChangingEntitiesListenerForTesting.getDeleted;
-import static
org.apache.isis.testdomain.applayer.publishing.ChangingEntitiesListenerForTesting.getLoaded;
-import static
org.apache.isis.testdomain.applayer.publishing.ChangingEntitiesListenerForTesting.getModified;
-import static
org.apache.isis.testdomain.applayer.publishing.ChangingEntitiesListenerForTesting.getUpdated;
+import static
org.apache.isis.testdomain.applayer.publishing.EntityChangesSubscriberForTesting.clearPublishedEntries;
+import static
org.apache.isis.testdomain.applayer.publishing.EntityChangesSubscriberForTesting.getCreated;
+import static
org.apache.isis.testdomain.applayer.publishing.EntityChangesSubscriberForTesting.getDeleted;
+import static
org.apache.isis.testdomain.applayer.publishing.EntityChangesSubscriberForTesting.getLoaded;
+import static
org.apache.isis.testdomain.applayer.publishing.EntityChangesSubscriberForTesting.getModified;
+import static
org.apache.isis.testdomain.applayer.publishing.EntityChangesSubscriberForTesting.getUpdated;
@SpringBootTest(
classes = {
Configuration_usingJdo.class,
- Configuration_usingEntityChangeKindAuditing.class,
+ Configuration_usingEntityChangesPublishing.class,
ApplicationLayerTestFactory.class
},
properties = {
@@ -59,7 +59,7 @@ import static
org.apache.isis.testdomain.applayer.publishing.ChangingEntitiesLis
@TestPropertySource({
IsisPresets.UseLog4j2Test
})
-class EntityChangeKindAuditingTest extends IsisIntegrationTestAbstract {
+class EntityChangesPublishingTest extends IsisIntegrationTestAbstract {
@Inject private ApplicationLayerTestFactory testFactory;
@Inject private KVStoreForTesting kvStore;
diff --git
a/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/applayer/auditing/EntityPrePostValueAuditingTest.java
b/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/applayer/publishing/EntityPropertyChangePublishingTest.java
similarity index 82%
rename from
regressiontests/incubating/src/test/java/org/apache/isis/testdomain/applayer/auditing/EntityPrePostValueAuditingTest.java
rename to
regressiontests/incubating/src/test/java/org/apache/isis/testdomain/applayer/publishing/EntityPropertyChangePublishingTest.java
index c424a8e..f130058 100644
---
a/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/applayer/auditing/EntityPrePostValueAuditingTest.java
+++
b/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/applayer/publishing/EntityPropertyChangePublishingTest.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.testdomain.applayer.auditing;
+package org.apache.isis.testdomain.applayer.publishing;
import java.util.List;
@@ -34,6 +34,7 @@ import org.apache.isis.commons.collections.Can;
import org.apache.isis.core.config.presets.IsisPresets;
import org.apache.isis.testdomain.applayer.ApplicationLayerTestFactory;
import
org.apache.isis.testdomain.applayer.ApplicationLayerTestFactory.VerificationStage;
+import
org.apache.isis.testdomain.conf.Configuration_usingEntityPropertyChangePublishing;
import org.apache.isis.testdomain.conf.Configuration_usingJdo;
import org.apache.isis.testdomain.util.CollectionAssertions;
import org.apache.isis.testdomain.util.kv.KVStoreForTesting;
@@ -44,7 +45,7 @@ import lombok.val;
@SpringBootTest(
classes = {
Configuration_usingJdo.class,
- Configuration_usingEntityPrePostValueAuditing.class,
+ Configuration_usingEntityPropertyChangePublishing.class,
ApplicationLayerTestFactory.class
},
properties = {
@@ -54,7 +55,7 @@ import lombok.val;
IsisPresets.UseLog4j2Test
})
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
-class EntityPrePostValueAuditingTest extends IsisIntegrationTestAbstract {
+class EntityPropertyChangePublishingTest extends IsisIntegrationTestAbstract {
@Inject private ApplicationLayerTestFactory testFactory;
@Inject private KVStoreForTesting kvStore;
@@ -65,17 +66,17 @@ class EntityPrePostValueAuditingTest extends
IsisIntegrationTestAbstract {
}
private void given() {
- EntityPropertyChangeSubscriberForTesting.clearAuditEntries(kvStore);
+
EntityPropertyChangeSubscriberForTesting.clearPropertyChangeEntries(kvStore);
}
private void verify(VerificationStage verificationStage) {
switch(verificationStage) {
case PRE_COMMIT:
case FAILURE_CASE:
- assertHasAuditEntries(Can.empty());
+ assertHasPropertyChangeEntries(Can.empty());
break;
case POST_COMMIT:
- assertHasAuditEntries(Can.of(
+ assertHasPropertyChangeEntries(Can.of(
"Jdo Book/name: 'Sample Book' -> 'Book #2'"));
break;
default:
@@ -85,8 +86,8 @@ class EntityPrePostValueAuditingTest extends
IsisIntegrationTestAbstract {
// -- HELPER
- private void assertHasAuditEntries(Can<String> expectedAuditEntries) {
- val actualAuditEntries =
EntityPropertyChangeSubscriberForTesting.getAuditEntries(kvStore);
+ private void assertHasPropertyChangeEntries(Can<String>
expectedAuditEntries) {
+ val actualAuditEntries =
EntityPropertyChangeSubscriberForTesting.getPropertyChangeEntries(kvStore);
CollectionAssertions.assertComponentWiseEquals(expectedAuditEntries,
actualAuditEntries);
}
diff --git
a/regressiontests/stable/src/main/java/org/apache/isis/testdomain/applayer/publishing/ChangingEntitiesListenerForTesting.java
b/regressiontests/stable/src/main/java/org/apache/isis/testdomain/applayer/publishing/EntityChangesSubscriberForTesting.java
similarity index 92%
rename from
regressiontests/stable/src/main/java/org/apache/isis/testdomain/applayer/publishing/ChangingEntitiesListenerForTesting.java
rename to
regressiontests/stable/src/main/java/org/apache/isis/testdomain/applayer/publishing/EntityChangesSubscriberForTesting.java
index 9aa61db..84a1b7d 100644
---
a/regressiontests/stable/src/main/java/org/apache/isis/testdomain/applayer/publishing/ChangingEntitiesListenerForTesting.java
+++
b/regressiontests/stable/src/main/java/org/apache/isis/testdomain/applayer/publishing/EntityChangesSubscriberForTesting.java
@@ -40,7 +40,7 @@ import lombok.extern.log4j.Log4j2;
@Service
@Log4j2
-public class ChangingEntitiesListenerForTesting
+public class EntityChangesSubscriberForTesting
implements
ExecutionListener,
EntityChangesSubscriber {
@@ -84,19 +84,19 @@ implements
@SuppressWarnings("unchecked")
public static Can<EntityChanges> getPublishedObjects(KVStoreForTesting
kvStore) {
return Can.ofCollection(
- (List<EntityChanges>)
kvStore.get(ChangingEntitiesListenerForTesting.class, "publishedObjects")
+ (List<EntityChanges>)
kvStore.get(EntityChangesSubscriberForTesting.class, "publishedObjects")
.orElse(null));
}
@SuppressWarnings("unchecked")
public static Can<Execution<?, ?>>
getPublishedExecutions(KVStoreForTesting kvStore) {
return Can.ofCollection(
- (List<Execution<?, ?>>)
kvStore.get(ChangingEntitiesListenerForTesting.class, "publishedExecutions")
+ (List<Execution<?, ?>>)
kvStore.get(EntityChangesSubscriberForTesting.class, "publishedExecutions")
.orElse(null));
}
public static void clearPublishedEntries(KVStoreForTesting kvStore) {
- kvStore.clear(ChangingEntitiesListenerForTesting.class);
+ kvStore.clear(EntityChangesSubscriberForTesting.class);
}
public static int getCreated(KVStoreForTesting kvStore) {
diff --git
a/regressiontests/stable/src/main/java/org/apache/isis/testdomain/applayer/auditing/EntityPropertyChangeSubscriberForTesting.java
b/regressiontests/stable/src/main/java/org/apache/isis/testdomain/applayer/publishing/EntityPropertyChangeSubscriberForTesting.java
similarity index 66%
rename from
regressiontests/stable/src/main/java/org/apache/isis/testdomain/applayer/auditing/EntityPropertyChangeSubscriberForTesting.java
rename to
regressiontests/stable/src/main/java/org/apache/isis/testdomain/applayer/publishing/EntityPropertyChangeSubscriberForTesting.java
index a6e1468..af1279a 100644
---
a/regressiontests/stable/src/main/java/org/apache/isis/testdomain/applayer/auditing/EntityPropertyChangeSubscriberForTesting.java
+++
b/regressiontests/stable/src/main/java/org/apache/isis/testdomain/applayer/publishing/EntityPropertyChangeSubscriberForTesting.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.testdomain.applayer.auditing;
+package org.apache.isis.testdomain.applayer.publishing;
import java.util.ArrayList;
import java.util.List;
@@ -43,36 +43,37 @@ public class EntityPropertyChangeSubscriberForTesting
implements EntityPropertyC
public void init() {
log.info("about to initialize");
}
-
- @Override
- public boolean isEnabled() {
- return true;
- }
@Override
public void onChanging(final EntityPropertyChange entityPropertyChange) {
- val auditEntry = entityPropertyChange.toString();
+ val propertyChangeEntry = String.format("%s/%s: '%s' -> '%s'",
+ entityPropertyChange.getTargetClassName(),
+ entityPropertyChange.getPropertyName(),
+ entityPropertyChange.getPreValue(),
+ entityPropertyChange.getPostValue());
@SuppressWarnings("unchecked")
- val auditEntries = (List<String>) kvStore.get(this,
"audit").orElseGet(ArrayList::new);
+ val propertyChangeEntries = (List<String>) kvStore.get(this,
"propertyChangeEntries")
+ .orElseGet(ArrayList::new);
+ kvStore.put(this, "propertyChangeEntries", propertyChangeEntries);
- auditEntries.add(auditEntry);
+ propertyChangeEntries.add(propertyChangeEntry);
- kvStore.put(this, "audit", auditEntries);
- log.debug("audit {}", auditEntry);
+ log.debug("property changes {}", propertyChangeEntry);
}
// -- UTILITIES
@SuppressWarnings("unchecked")
- public static Can<String> getAuditEntries(KVStoreForTesting kvStore) {
+ public static Can<String> getPropertyChangeEntries(KVStoreForTesting
kvStore) {
return Can.ofCollection(
- (List<String>)
kvStore.get(EntityPropertyChangeSubscriberForTesting.class, "audit")
+ (List<String>) kvStore
+ .get(EntityPropertyChangeSubscriberForTesting.class,
"propertyChangeEntries")
.orElse(null));
}
- public static void clearAuditEntries(KVStoreForTesting kvStore) {
+ public static void clearPropertyChangeEntries(KVStoreForTesting kvStore) {
kvStore.clear(EntityPropertyChangeSubscriberForTesting.class);
}
diff --git
a/regressiontests/stable/src/main/java/org/apache/isis/testdomain/applayer/publishing/Configuration_usingEntityChangeKindAuditing.java
b/regressiontests/stable/src/main/java/org/apache/isis/testdomain/conf/Configuration_usingEntityChangesPublishing.java
similarity index 82%
rename from
regressiontests/stable/src/main/java/org/apache/isis/testdomain/applayer/publishing/Configuration_usingEntityChangeKindAuditing.java
rename to
regressiontests/stable/src/main/java/org/apache/isis/testdomain/conf/Configuration_usingEntityChangesPublishing.java
index 888caed..386a893 100644
---
a/regressiontests/stable/src/main/java/org/apache/isis/testdomain/applayer/publishing/Configuration_usingEntityChangeKindAuditing.java
+++
b/regressiontests/stable/src/main/java/org/apache/isis/testdomain/conf/Configuration_usingEntityChangesPublishing.java
@@ -16,18 +16,19 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.testdomain.applayer.publishing;
+package org.apache.isis.testdomain.conf;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
+import
org.apache.isis.testdomain.applayer.publishing.EntityChangesSubscriberForTesting;
import org.apache.isis.testdomain.util.kv.KVStoreForTesting;
@Configuration
@Import({
KVStoreForTesting.class,
- ChangingEntitiesListenerForTesting.class
+ EntityChangesSubscriberForTesting.class
})
-public class Configuration_usingEntityChangeKindAuditing {
+public class Configuration_usingEntityChangesPublishing {
}
diff --git
a/regressiontests/stable/src/main/java/org/apache/isis/testdomain/applayer/auditing/Configuration_usingEntityPrePostValueAuditing.java
b/regressiontests/stable/src/main/java/org/apache/isis/testdomain/conf/Configuration_usingEntityPropertyChangePublishing.java
similarity index 83%
rename from
regressiontests/stable/src/main/java/org/apache/isis/testdomain/applayer/auditing/Configuration_usingEntityPrePostValueAuditing.java
rename to
regressiontests/stable/src/main/java/org/apache/isis/testdomain/conf/Configuration_usingEntityPropertyChangePublishing.java
index 981322a..3570786 100644
---
a/regressiontests/stable/src/main/java/org/apache/isis/testdomain/applayer/auditing/Configuration_usingEntityPrePostValueAuditing.java
+++
b/regressiontests/stable/src/main/java/org/apache/isis/testdomain/conf/Configuration_usingEntityPropertyChangePublishing.java
@@ -16,15 +16,17 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.testdomain.applayer.auditing;
+package org.apache.isis.testdomain.conf;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
+import
org.apache.isis.testdomain.applayer.publishing.EntityPropertyChangeSubscriberForTesting;
+
@Configuration
@Import({
EntityPropertyChangeSubscriberForTesting.class
})
-public class Configuration_usingEntityPrePostValueAuditing {
+public class Configuration_usingEntityPropertyChangePublishing {
}
diff --git
a/regressiontests/stable/src/test/java/org/apache/isis/testdomain/commons/InteractionTestAbstract.java
b/regressiontests/stable/src/test/java/org/apache/isis/testdomain/commons/InteractionTestAbstract.java
index 2fb0590..9618516 100644
---
a/regressiontests/stable/src/test/java/org/apache/isis/testdomain/commons/InteractionTestAbstract.java
+++
b/regressiontests/stable/src/test/java/org/apache/isis/testdomain/commons/InteractionTestAbstract.java
@@ -43,7 +43,7 @@ import
org.apache.isis.core.metamodel.interactions.managed.PropertyInteraction;
import org.apache.isis.core.metamodel.objectmanager.ObjectManager;
import org.apache.isis.core.runtime.iactn.IsisInteractionFactory;
import
org.apache.isis.core.runtime.persistence.changetracking.EntityChangeTrackerDefault;
-import
org.apache.isis.testdomain.applayer.auditing.EntityPropertyChangeSubscriberForTesting;
+import
org.apache.isis.testdomain.applayer.publishing.EntityPropertyChangeSubscriberForTesting;
import org.apache.isis.testdomain.util.CollectionAssertions;
import org.apache.isis.testdomain.util.kv.KVStoreForTesting;
import
org.apache.isis.testing.integtestsupport.applib.IsisIntegrationTestAbstract;
@@ -163,9 +163,9 @@ public abstract class InteractionTestAbstract extends
IsisIntegrationTestAbstrac
// -- ASSERTIONS (AUDITING)
- protected void assertEmptyAudits() {
- val audits =
EntityPropertyChangeSubscriberForTesting.getAuditEntries(kvStoreForTesting);
- assertTrue(audits.isEmpty());
+ protected void assertNoPropertyChanges() {
+ val changes =
EntityPropertyChangeSubscriberForTesting.getPropertyChangeEntries(kvStoreForTesting);
+ assertTrue(changes.isEmpty());
}
protected void assertNoChangedObjectsPending() {
@@ -175,7 +175,7 @@ public abstract class InteractionTestAbstract extends
IsisIntegrationTestAbstrac
//
assertTrue(getChangedObjectsService().getChangedObjectProperties().isEmpty());
}
- protected void assertJdoBookCreateAudits() {
+ protected void assertJdoBookCreatePropertyChanges() {
val expectedAudits = _Sets.ofSorted(
"Jdo Book/author: '[NEW]' -> 'Sample Author'",
@@ -186,17 +186,17 @@ public abstract class InteractionTestAbstract extends
IsisIntegrationTestAbstrac
"Jdo Book/name: '[NEW]' -> 'Sample Book'",
"Jdo Inventory/name: '[NEW]' -> 'Sample Inventory'");
- val actualAudits =
EntityPropertyChangeSubscriberForTesting.getAuditEntries(kvStoreForTesting)
+ val actualAudits =
EntityPropertyChangeSubscriberForTesting.getPropertyChangeEntries(kvStoreForTesting)
.stream()
.collect(Collectors.toCollection(TreeSet::new));
assertEquals(expectedAudits, actualAudits);
-
EntityPropertyChangeSubscriberForTesting.clearAuditEntries(kvStoreForTesting);
+
EntityPropertyChangeSubscriberForTesting.clearPropertyChangeEntries(kvStoreForTesting);
}
- protected void assertJdoBookDeleteAudits() {
+ protected void assertJdoBookDeletePropertyChanges() {
val expectedAudits = _Sets.ofSorted(
"Jdo Book/author: 'Sample Author' -> '[DELETED]'",
@@ -207,35 +207,35 @@ public abstract class InteractionTestAbstract extends
IsisIntegrationTestAbstrac
"Jdo Book/publisher: 'Sample Publisher' -> '[DELETED]'",
"Jdo Inventory/name: 'Sample Inventory' -> '[DELETED]'");
- val actualAudits =
EntityPropertyChangeSubscriberForTesting.getAuditEntries(kvStoreForTesting)
+ val actualAudits =
EntityPropertyChangeSubscriberForTesting.getPropertyChangeEntries(kvStoreForTesting)
.stream()
.collect(Collectors.toCollection(TreeSet::new));
assertEquals(expectedAudits, actualAudits);
-
EntityPropertyChangeSubscriberForTesting.clearAuditEntries(kvStoreForTesting);
+
EntityPropertyChangeSubscriberForTesting.clearPropertyChangeEntries(kvStoreForTesting);
}
- protected void assertJdoBookPriceChangeAudit() {
+ protected void assertJdoBookPriceChangePropertyChanges() {
val expectedAudits = _Sets.ofSorted(
"Jdo Book/price: '99.0' -> '12.0'");
- val actualAudits =
EntityPropertyChangeSubscriberForTesting.getAuditEntries(kvStoreForTesting)
+ val actualAudits =
EntityPropertyChangeSubscriberForTesting.getPropertyChangeEntries(kvStoreForTesting)
.stream()
.collect(Collectors.toCollection(TreeSet::new));
assertEquals(expectedAudits, actualAudits);
-
EntityPropertyChangeSubscriberForTesting.clearAuditEntries(kvStoreForTesting);
+
EntityPropertyChangeSubscriberForTesting.clearPropertyChangeEntries(kvStoreForTesting);
}
// -- UTILTITIES
- protected void dumpAudits() {
- val audits =
EntityPropertyChangeSubscriberForTesting.getAuditEntries(kvStoreForTesting);
- System.err.println("==AUDITS==");
+ protected void dumpPropertyChanges() {
+ val audits =
EntityPropertyChangeSubscriberForTesting.getPropertyChangeEntries(kvStoreForTesting);
+ System.err.println("==PROPERTY CHANGES==");
audits.forEach(System.err::println);
System.err.println("==========");
}
diff --git
a/regressiontests/stable/src/test/java/org/apache/isis/testdomain/entitychangetracking/ChangedObjectsTest.java
b/regressiontests/stable/src/test/java/org/apache/isis/testdomain/entitychangetracking/EntityChangePublishingTest.java
similarity index 84%
rename from
regressiontests/stable/src/test/java/org/apache/isis/testdomain/entitychangetracking/ChangedObjectsTest.java
rename to
regressiontests/stable/src/test/java/org/apache/isis/testdomain/entitychangetracking/EntityChangePublishingTest.java
index 88c4053..da11ad8 100644
---
a/regressiontests/stable/src/test/java/org/apache/isis/testdomain/entitychangetracking/ChangedObjectsTest.java
+++
b/regressiontests/stable/src/test/java/org/apache/isis/testdomain/entitychangetracking/EntityChangePublishingTest.java
@@ -30,11 +30,11 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
import org.apache.isis.commons.internal.collections._Lists;
import org.apache.isis.core.config.presets.IsisPresets;
-import
org.apache.isis.testdomain.applayer.auditing.EntityPropertyChangeSubscriberForTesting;
-import
org.apache.isis.testdomain.applayer.auditing.Configuration_usingEntityPrePostValueAuditing;
-import
org.apache.isis.testdomain.applayer.publishing.Configuration_usingEntityChangeKindAuditing;
+import
org.apache.isis.testdomain.applayer.publishing.EntityPropertyChangeSubscriberForTesting;
import org.apache.isis.testdomain.commons.InteractionBoundaryProbe;
import org.apache.isis.testdomain.commons.InteractionTestAbstract;
+import
org.apache.isis.testdomain.conf.Configuration_usingEntityChangesPublishing;
+import
org.apache.isis.testdomain.conf.Configuration_usingEntityPropertyChangePublishing;
import org.apache.isis.testdomain.conf.Configuration_usingJdo;
import org.apache.isis.testdomain.jdo.JdoInventoryManager;
import org.apache.isis.testdomain.jdo.JdoTestDomainPersona;
@@ -47,8 +47,8 @@ import lombok.val;
@SpringBootTest(
classes = {
Configuration_usingJdo.class,
- Configuration_usingEntityPrePostValueAuditing.class,
- Configuration_usingEntityChangeKindAuditing.class,
+ Configuration_usingEntityPropertyChangePublishing.class,
+ Configuration_usingEntityChangesPublishing.class,
InteractionBoundaryProbe.class,
},
properties = {
@@ -59,7 +59,7 @@ import lombok.val;
IsisPresets.SilenceWicket
,IsisPresets.UseLog4j2Test
})
-class ChangedObjectsTest extends InteractionTestAbstract {
+class EntityChangePublishingTest extends InteractionTestAbstract {
@Inject protected FixtureScripts fixtureScripts;
@@ -68,16 +68,16 @@ class ChangedObjectsTest extends InteractionTestAbstract {
System.err.println("===BEFORE SETUP");
// cleanup
-
EntityPropertyChangeSubscriberForTesting.clearAuditEntries(kvStoreForTesting);
+
EntityPropertyChangeSubscriberForTesting.clearPropertyChangeEntries(kvStoreForTesting);
// given
fixtureScripts.runPersona(JdoTestDomainPersona.InventoryWith1Book);
// each test runs in its own interaction context (check)
- val testRunNr =
(long)kvStoreForTesting.incrementCounter(ChangedObjectsTest.class, "test-run");
+ val testRunNr =
(long)kvStoreForTesting.incrementCounter(EntityChangePublishingTest.class,
"test-run");
assertEquals(testRunNr,
InteractionBoundaryProbe.totalInteractionsStarted(kvStoreForTesting));
- assertJdoBookCreateAudits();
+ assertJdoBookCreatePropertyChanges();
System.err.println("===AFTER SETUP");
}
@@ -89,7 +89,7 @@ class ChangedObjectsTest extends InteractionTestAbstract {
// cleanup
fixtureScripts.runPersona(JdoTestDomainPersona.PurgeAll);
- assertJdoBookDeleteAudits();
+ assertJdoBookDeletePropertyChanges();
System.err.println("===AFTER TEARDOWN");
}
@@ -114,7 +114,7 @@ class ChangedObjectsTest extends InteractionTestAbstract {
assertEquals(12., product.getPrice(), 1E-3);
assertNoChangedObjectsPending();
- assertJdoBookPriceChangeAudit();
+ assertJdoBookPriceChangePropertyChanges();
}
@@ -137,7 +137,7 @@ class ChangedObjectsTest extends InteractionTestAbstract {
assertEquals(12., product.getPrice(), 1E-3);
assertNoChangedObjectsPending();
- assertJdoBookPriceChangeAudit();
+ assertJdoBookPriceChangePropertyChanges();
}
@@ -152,7 +152,7 @@ class ChangedObjectsTest extends InteractionTestAbstract {
assertEquals(1, books.size());
val book = books.listIterator().next();
- assertEmptyAudits(); // query only, no entity changes expected
+ assertNoPropertyChanges(); // query only, no entity changes expected
System.err.println("===AFTER BOOK");
return book;