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 5be34aa ISIS-2464: semantic renaming audit/dispatch -> publishing (6)
5be34aa is described below
commit 5be34aa0274bd4e29b16baeec1b505367532383a
Author: Andi Huber <[email protected]>
AuthorDate: Fri Nov 20 11:14:09 2020 +0100
ISIS-2464: semantic renaming audit/dispatch -> publishing (6)
---
.../changetracking/ChangingEntitiesFactory.java | 33 +++++++++++-----------
.../changetracking/EntityChangeTrackerDefault.java | 12 ++++----
.../EntityPropertyChangeFactory.java | 22 +++++++++++++--
.../changetracking/HasEnlistedEntityChanges.java | 7 +++--
.../publish/EntityChangesPublisherDefault.java | 5 +++-
5 files changed, 50 insertions(+), 29 deletions(-)
diff --git
a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/changetracking/ChangingEntitiesFactory.java
b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/changetracking/ChangingEntitiesFactory.java
index 3178a6c..33fee98 100644
---
a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/changetracking/ChangingEntitiesFactory.java
+++
b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/changetracking/ChangingEntitiesFactory.java
@@ -27,10 +27,8 @@ import javax.annotation.Nullable;
import org.apache.isis.applib.annotation.EntityChangeKind;
import org.apache.isis.applib.jaxb.JavaSqlXMLGregorianCalendarMarshalling;
-import org.apache.isis.applib.services.clock.ClockService;
import org.apache.isis.applib.services.iactn.Interaction;
import org.apache.isis.applib.services.publishing.spi.EntityChanges;
-import org.apache.isis.applib.services.user.UserService;
import org.apache.isis.commons.internal.base._NullSafe;
import org.apache.isis.commons.internal.collections._Maps;
import org.apache.isis.commons.internal.collections._Multimaps.ListMultimap;
@@ -41,17 +39,16 @@ import org.apache.isis.schema.chg.v2.ChangesDto;
import org.apache.isis.schema.chg.v2.ObjectsDto;
import org.apache.isis.schema.common.v2.OidsDto;
-import lombok.RequiredArgsConstructor;
import lombok.val;
+import lombok.experimental.UtilityClass;
-@RequiredArgsConstructor(staticName = "of")
+@UtilityClass
class ChangingEntitiesFactory {
- private final ClockService clockService;
- private final UserService userService;
-
@Nullable
- public EntityChanges createChangingEntities(
+ public static EntityChanges createChangingEntities(
+ final java.sql.Timestamp completedAt,
+ final String userName,
final EntityChangeTrackerDefault entityChangeTracker) {
// take a copy of enlisted adapters ... the JDO implementation of the
PublishingService
@@ -66,25 +63,27 @@ class ChangingEntitiesFactory {
}
val changingEntities = newChangingEntities(
- entityChangeTracker.currentInteraction(),
- entityChangeTracker.numberEntitiesLoaded(),
-
entityChangeTracker.numberAuditedEntityPropertiesModified(),
- changeKindByEnlistedAdapter);
+ completedAt,
+ userName,
+ entityChangeTracker.currentInteraction(),
+ entityChangeTracker.numberEntitiesLoaded(),
+ entityChangeTracker.numberAuditedEntityPropertiesModified(),
+ changeKindByEnlistedAdapter);
return changingEntities;
}
// -- HELPER
- private EntityChanges newChangingEntities(
+ private static EntityChanges newChangingEntities(
+ final java.sql.Timestamp completedAt,
+ final String userName,
final Interaction interaction,
final int numberEntitiesLoaded,
final int numberEntityPropertiesModified,
final Map<ManagedObject, EntityChangeKind>
changeKindByEnlistedAdapter) {
val uniqueId = interaction.getUniqueId();
- val userName = userService.getUser().getName();
- val completedAt = clockService.nowAsJavaSqlTimestamp();
final int nextEventSequence =
interaction.next(Interaction.Sequence.INTERACTION.id());
return new SimpleChangingEntities(
@@ -100,7 +99,7 @@ class ChangingEntitiesFactory {
changeKindByEnlistedAdapter));
}
- private ChangesDto newDto(
+ private static ChangesDto newDto(
final UUID uniqueId, final int nextEventSequence,
final String userName, final java.sql.Timestamp completedAt,
final int numberEntitiesLoaded,
@@ -135,7 +134,7 @@ class ChangingEntitiesFactory {
return changesDto;
}
- private OidsDto oidsDtoFor(
+ private static OidsDto oidsDtoFor(
final ListMultimap<EntityChangeKind, ManagedObject>
adaptersByChange,
final EntityChangeKind kind) {
val oidsDto = new OidsDto();
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 6b56262..d8c5b63 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
@@ -38,14 +38,12 @@ import
org.apache.isis.applib.annotation.IsisInteractionScope;
import org.apache.isis.applib.annotation.OrderPrecedence;
import org.apache.isis.applib.events.lifecycle.AbstractLifecycleEvent;
import org.apache.isis.applib.services.TransactionScopeListener;
-import org.apache.isis.applib.services.clock.ClockService;
import org.apache.isis.applib.services.eventbus.EventBusService;
import org.apache.isis.applib.services.iactn.Interaction;
import org.apache.isis.applib.services.iactn.InteractionContext;
import org.apache.isis.applib.services.metrics.MetricsService;
import org.apache.isis.applib.services.publishing.spi.EntityChanges;
import org.apache.isis.applib.services.publishing.spi.EntityPropertyChange;
-import org.apache.isis.applib.services.user.UserService;
import org.apache.isis.applib.services.xactn.TransactionId;
import org.apache.isis.commons.internal.base._Lazy;
import org.apache.isis.commons.internal.collections._Maps;
@@ -209,8 +207,10 @@ implements
}
@Override
- public EntityChanges getEntityChanges(ClockService clockService,
UserService userService) {
- return ChangingEntitiesFactory.of(clockService,
userService).createChangingEntities(this);
+ public EntityChanges getEntityChanges(
+ final java.sql.Timestamp timestamp,
+ final String userName) {
+ return ChangingEntitiesFactory.createChangingEntities(timestamp,
userName, this);
}
Interaction currentInteraction() {
@@ -412,12 +412,12 @@ implements
@Override
public Stream<EntityPropertyChange> streamPropertyChanges(
final java.sql.Timestamp timestamp,
- final String user,
+ final String userName,
final TransactionId txId) {
return getPropertyChangeRecords().stream()
.map(propertyChangeRecord->EntityPropertyChangeFactory
- .createEntityPropertyChange(timestamp, user, txId,
propertyChangeRecord));
+ .createEntityPropertyChange(timestamp, userName, txId,
propertyChangeRecord));
}
diff --git
a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/changetracking/EntityPropertyChangeFactory.java
b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/changetracking/EntityPropertyChangeFactory.java
index 0810337..112c4c1 100644
---
a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/changetracking/EntityPropertyChangeFactory.java
+++
b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/changetracking/EntityPropertyChangeFactory.java
@@ -1,3 +1,21 @@
+/*
+ * 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.isis.core.runtime.persistence.changetracking;
import java.util.UUID;
@@ -7,10 +25,10 @@ import
org.apache.isis.applib.services.publishing.spi.EntityPropertyChange;
import org.apache.isis.applib.services.xactn.TransactionId;
import
org.apache.isis.core.metamodel.facets.actions.action.invocation.CommandUtil;
-import lombok.RequiredArgsConstructor;
import lombok.val;
+import lombok.experimental.UtilityClass;
-@RequiredArgsConstructor(staticName = "of")
+@UtilityClass
class EntityPropertyChangeFactory {
public static EntityPropertyChange createEntityPropertyChange(
diff --git
a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/changetracking/HasEnlistedEntityChanges.java
b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/changetracking/HasEnlistedEntityChanges.java
index d5b93be..6c99898 100644
---
a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/changetracking/HasEnlistedEntityChanges.java
+++
b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/changetracking/HasEnlistedEntityChanges.java
@@ -18,12 +18,13 @@
*/
package org.apache.isis.core.runtime.persistence.changetracking;
-import org.apache.isis.applib.services.clock.ClockService;
+import javax.annotation.Nullable;
+
import org.apache.isis.applib.services.publishing.spi.EntityChanges;
-import org.apache.isis.applib.services.user.UserService;
public interface HasEnlistedEntityChanges {
- EntityChanges getEntityChanges(ClockService clockService, UserService
userService);
+ @Nullable
+ EntityChanges getEntityChanges(java.sql.Timestamp timestamp, String
userName);
}
diff --git
a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/EntityChangesPublisherDefault.java
b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/EntityChangesPublisherDefault.java
index 20fea8a..29a7748 100644
---
a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/EntityChangesPublisherDefault.java
+++
b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/EntityChangesPublisherDefault.java
@@ -68,7 +68,10 @@ public class EntityChangesPublisherDefault implements
EntityChangesPublisher {
return;
}
- val entityChanges =
hasEnlistedEntityChanges.getEntityChanges(clockService, userService);
+ val currentTime = clockService.nowAsJavaSqlTimestamp();
+ val currentUser = userService.getUser().getName();
+
+ val entityChanges =
hasEnlistedEntityChanges.getEntityChanges(currentTime, currentUser);
if(entityChanges == null) {
return;