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

danhaywood pushed a commit to branch ISIS-3091
in repository https://gitbox.apache.org/repos/asf/isis.git


The following commit(s) were added to refs/heads/ISIS-3091 by this push:
     new 8cd12ffe5b ISIS-3091: adds subscriber impl; more compile fixes
8cd12ffe5b is described below

commit 8cd12ffe5b54826743f04059565b860a71d1736b
Author: Dan Haywood <[email protected]>
AuthorDate: Fri Jul 22 15:40:47 2022 +0100

    ISIS-3091: adds subscriber impl; more compile fixes
---
 .../publishing/spi/EntityPropertyChange.java       | 37 ++++++++--------
 .../objectlifecycle/PropertyChangeRecord.java      | 15 ++++---
 .../audittrail/applib/dom/AuditTrailEntry.java     | 30 ++++++-------
 .../applib/dom/AuditTrailEntryRepository.java      |  5 ++-
 ...ntityPropertyChangeSubscriberForAuditTrail.java |  9 +++-
 .../applib/AuditTrailIntegTestAbstract.java        | 29 +++----------
 .../jdo/IsisModuleExtAuditTrailPersistenceJdo.java |  6 +--
 ...uditTrailEntryJdo.java => AuditTrailEntry.java} | 49 +++++++++-------------
 .../isis/audittrail/jpa/dom/AuditTrailEntry.java   | 16 -------
 .../isis/audittrail/jpa/AuditTrail_IntegTest.java  |  2 +-
 .../jdo/permission/dom/ApplicationPermission.java  | 10 ++---
 .../secman/jdo/role/dom/ApplicationRole.java       |  6 ++-
 .../secman/jdo/tenancy/dom/ApplicationTenancy.java | 10 ++---
 .../secman/jdo/user/dom/ApplicationUser.java       | 10 ++---
 .../_EntityPropertyChangeFactory.java              |  6 +--
 .../applib/entity/jdo/dom/JdoEntity.java           |  3 +-
 16 files changed, 96 insertions(+), 147 deletions(-)

diff --git 
a/api/applib/src/main/java/org/apache/isis/applib/services/publishing/spi/EntityPropertyChange.java
 
b/api/applib/src/main/java/org/apache/isis/applib/services/publishing/spi/EntityPropertyChange.java
index 2ad033cab4..9bb9769dc6 100644
--- 
a/api/applib/src/main/java/org/apache/isis/applib/services/publishing/spi/EntityPropertyChange.java
+++ 
b/api/applib/src/main/java/org/apache/isis/applib/services/publishing/spi/EntityPropertyChange.java
@@ -26,34 +26,33 @@ import org.apache.isis.applib.services.bookmark.Bookmark;
 import lombok.Value;
 
 /**
- * Immutable data record for {@link EntityPropertyChangeSubscriber}s. 
- * 
+ * Immutable data record for {@link EntityPropertyChangeSubscriber}s.
+ *
  * @since 2.0 {@index}
  */
 @Value(staticConstructor = "of")
 public class EntityPropertyChange {
 
-    private final UUID interactionId; 
+    private final UUID interactionId;
     private final int sequence;
-    private final String targetClassName;
-    private final Bookmark target;                           
-    private final String memberIdentifier;
-    private final String propertyName;                             
-    private final String preValue; 
-    private final String postValue;          
-    private final String user; 
-    private final Timestamp timestamp;    
-    
+    private final Bookmark target;
+    private final String logicalMemberIdentifier;
+    private final String propertyId;
+    private final String preValue;
+    private final String postValue;
+    private final String username;
+    private final Timestamp timestamp;
+
     @Override
     public String toString() {
         return String.format("%s,%d: %s by %s, %s: %s -> %s",
-        getInteractionId(), 
-        getSequence(), 
-        getTarget().toString(), 
-        getUser(), 
-        getPropertyName(), 
-        getPreValue(), 
+        getInteractionId(),
+        getSequence(),
+        getTarget().toString(),
+        getUsername(),
+        getPropertyId(),
+        getPreValue(),
         getPostValue());
     }
-    
+
 }
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/objectlifecycle/PropertyChangeRecord.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/objectlifecycle/PropertyChangeRecord.java
index 1eee04c333..ea7c5b2fb8 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/objectlifecycle/PropertyChangeRecord.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/objectlifecycle/PropertyChangeRecord.java
@@ -99,26 +99,25 @@ public final class PropertyChangeRecord {
 
     public EntityPropertyChange toEntityPropertyChange(
             final Timestamp timestamp,
-            final String user,
+            final String username,
             final TransactionId txId) {
 
-        val spec = getEntity().getSpecification();
         val property = this.getProperty();
 
         final Bookmark target = ManagedObjects.bookmarkElseFail(getEntity());
         final String propertyId = property.getId();
-        final String memberId = 
property.getFeatureIdentifier().getFullIdentityString();
+        final String logicalMemberId = 
property.getFeatureIdentifier().getFullIdentityString();
         final String preValueStr = getPreAndPostValue().getPreString();
         final String postValueStr = getPreAndPostValue().getPostString();
-        final String targetClass = IdentifierUtil.targetClassNameFor(spec);
 
-        final UUID transactionId = txId.getInteractionId();
+        final UUID interactionId = txId.getInteractionId();
         final int sequence = txId.getSequence();
 
-
         return EntityPropertyChange.of(
-                transactionId, sequence, targetClass, target,
-                memberId, propertyId, preValueStr, postValueStr, user, 
timestamp);
+                interactionId, sequence,
+                target, logicalMemberId, propertyId,
+                preValueStr, postValueStr,
+                username, timestamp);
     }
 
     // -- HELPER
diff --git 
a/extensions/security/audittrail/applib/src/main/java/org/apache/isis/audittrail/applib/dom/AuditTrailEntry.java
 
b/extensions/security/audittrail/applib/src/main/java/org/apache/isis/audittrail/applib/dom/AuditTrailEntry.java
index 35a6357da4..5c2db0da51 100644
--- 
a/extensions/security/audittrail/applib/src/main/java/org/apache/isis/audittrail/applib/dom/AuditTrailEntry.java
+++ 
b/extensions/security/audittrail/applib/src/main/java/org/apache/isis/audittrail/applib/dom/AuditTrailEntry.java
@@ -31,6 +31,7 @@ import javax.inject.Named;
 import org.apache.isis.applib.annotation.DomainObject;
 import org.apache.isis.applib.annotation.DomainObjectLayout;
 import org.apache.isis.applib.annotation.Editing;
+import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.applib.annotation.Property;
 import org.apache.isis.applib.annotation.PropertyLayout;
 import org.apache.isis.applib.annotation.Where;
@@ -38,6 +39,7 @@ import 
org.apache.isis.applib.mixins.system.DomainChangeRecord;
 import org.apache.isis.applib.mixins.system.HasInteractionId;
 import org.apache.isis.applib.mixins.system.HasInteractionIdAndSequence;
 import org.apache.isis.applib.services.bookmark.Bookmark;
+import org.apache.isis.applib.services.publishing.spi.EntityPropertyChange;
 import org.apache.isis.applib.util.ObjectContracts;
 import org.apache.isis.applib.util.TitleBuffer;
 import org.apache.isis.audittrail.applib.IsisModuleExtAuditTrailApplib;
@@ -90,23 +92,17 @@ public abstract class AuditTrailEntry implements 
DomainChangeRecord, Comparable<
     public static abstract class ActionDomainEvent extends 
IsisModuleExtAuditTrailApplib.ActionDomainEvent<AuditTrailEntry> { }
 
 
-    protected AuditTrailEntry(
-            final java.sql.Timestamp timestamp,
-            final String username,
-            final Bookmark target,
-            final String logicalMemberIdentifier,
-            final String propertyId,
-            final String preValue,
-            final String postValue,
-            final UUID interactionId) {
-        setTimestamp(timestamp);
-        setUsername(username);
-        setTarget(target);
-        setLogicalMemberIdentifier(logicalMemberIdentifier);
-        setPropertyId(propertyId);
-        setPreValue(_Strings.trimmed(preValue, PreValue.MAX_LENGTH));
-        setPostValue(_Strings.trimmed(postValue, PostValue.MAX_LENGTH));
-        setInteractionId(interactionId);
+    @Programmatic
+    public void init(EntityPropertyChange change) {
+        setTimestamp(change.getTimestamp());
+        setUsername(change.getUsername());
+        setTarget(change.getTarget());
+        setLogicalMemberIdentifier(change.getLogicalMemberIdentifier());
+        setSequence(change.getSequence());
+        setPropertyId(change.getPropertyId());
+        setPreValue(_Strings.trimmed(change.getPreValue(), 
PreValue.MAX_LENGTH));
+        setPostValue(_Strings.trimmed(change.getPostValue(), 
PostValue.MAX_LENGTH));
+        setInteractionId(change.getInteractionId());
     }
 
 
diff --git 
a/extensions/security/audittrail/applib/src/main/java/org/apache/isis/audittrail/applib/dom/AuditTrailEntryRepository.java
 
b/extensions/security/audittrail/applib/src/main/java/org/apache/isis/audittrail/applib/dom/AuditTrailEntryRepository.java
index 45c25a05d6..20cd9d5f9a 100644
--- 
a/extensions/security/audittrail/applib/src/main/java/org/apache/isis/audittrail/applib/dom/AuditTrailEntryRepository.java
+++ 
b/extensions/security/audittrail/applib/src/main/java/org/apache/isis/audittrail/applib/dom/AuditTrailEntryRepository.java
@@ -31,6 +31,7 @@ import javax.inject.Inject;
 import org.apache.isis.applib.query.Query;
 import org.apache.isis.applib.services.bookmark.Bookmark;
 import org.apache.isis.applib.services.factory.FactoryService;
+import org.apache.isis.applib.services.publishing.spi.EntityPropertyChange;
 import org.apache.isis.applib.services.repository.RepositoryService;
 
 import lombok.NonNull;
@@ -51,9 +52,9 @@ public abstract class AuditTrailEntryRepository<E extends 
AuditTrailEntry> {
     }
 
 
-    public AuditTrailEntry create() {
+    public AuditTrailEntry createFor(final EntityPropertyChange change) {
         E entry = factoryService.detachedEntity(auditTrailEntryClass);
-        // TODO: set the state
+        entry.init(change);
         return repositoryService.persistAndFlush(entry);
     }
 
diff --git 
a/extensions/security/audittrail/applib/src/main/java/org/apache/isis/audittrail/applib/spiimpl/EntityPropertyChangeSubscriberForAuditTrail.java
 
b/extensions/security/audittrail/applib/src/main/java/org/apache/isis/audittrail/applib/spiimpl/EntityPropertyChangeSubscriberForAuditTrail.java
index 48790e44db..2e53bcee78 100644
--- 
a/extensions/security/audittrail/applib/src/main/java/org/apache/isis/audittrail/applib/spiimpl/EntityPropertyChangeSubscriberForAuditTrail.java
+++ 
b/extensions/security/audittrail/applib/src/main/java/org/apache/isis/audittrail/applib/spiimpl/EntityPropertyChangeSubscriberForAuditTrail.java
@@ -30,8 +30,9 @@ import org.springframework.stereotype.Service;
 import org.apache.isis.applib.annotation.PriorityPrecedence;
 import org.apache.isis.applib.services.publishing.spi.EntityPropertyChange;
 import 
org.apache.isis.applib.services.publishing.spi.EntityPropertyChangeSubscriber;
-import org.apache.isis.applib.services.session.SessionSubscriber;
 import org.apache.isis.audittrail.applib.IsisModuleExtAuditTrailApplib;
+import org.apache.isis.audittrail.applib.dom.AuditTrailEntry;
+import org.apache.isis.audittrail.applib.dom.AuditTrailEntryRepository;
 
 import lombok.RequiredArgsConstructor;
 import lombok.extern.log4j.Log4j2;
@@ -51,8 +52,14 @@ public class EntityPropertyChangeSubscriberForAuditTrail 
implements EntityProper
 
     static final String LOGICAL_TYPE_NAME = 
IsisModuleExtAuditTrailApplib.NAMESPACE + 
".EntityPropertyChangeSubscriberForAuditTrail";
 
+    final AuditTrailEntryRepository<? extends AuditTrailEntry> 
auditTrailEntryRepository;
+
     @Override
     public void onChanging(EntityPropertyChange entityPropertyChange) {
 
+        auditTrailEntryRepository.createFor(entityPropertyChange);
+
     }
+
+
 }
diff --git 
a/extensions/security/audittrail/applib/src/test/java/org/apache/isis/audittrail/applib/AuditTrailIntegTestAbstract.java
 
b/extensions/security/audittrail/applib/src/test/java/org/apache/isis/audittrail/applib/AuditTrailIntegTestAbstract.java
index 98c7a42c07..b0f9ebddaf 100644
--- 
a/extensions/security/audittrail/applib/src/test/java/org/apache/isis/audittrail/applib/AuditTrailIntegTestAbstract.java
+++ 
b/extensions/security/audittrail/applib/src/test/java/org/apache/isis/audittrail/applib/AuditTrailIntegTestAbstract.java
@@ -16,28 +16,22 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.sessionlog.applib;
+package org.apache.isis.audittrail.applib;
 
-import java.sql.Timestamp;
-import java.time.Duration;
 import java.time.Instant;
 import java.util.Date;
-import java.util.List;
-import java.util.Optional;
 import java.util.UUID;
 import java.util.concurrent.atomic.AtomicInteger;
 
 import javax.inject.Inject;
 
-import org.assertj.core.api.Assertions;
 import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Qualifier;
 
 import org.apache.isis.applib.annotation.Value;
-import org.apache.isis.applib.services.session.SessionSubscriber;
-import org.apache.isis.sessionlog.applib.dom.SessionLogEntry;
-import org.apache.isis.sessionlog.applib.dom.SessionLogEntryRepository;
+import 
org.apache.isis.applib.services.publishing.spi.EntityPropertyChangeSubscriber;
+import org.apache.isis.audittrail.applib.dom.AuditTrailEntry;
+import org.apache.isis.audittrail.applib.dom.AuditTrailEntryRepository;
 import 
org.apache.isis.testing.integtestsupport.applib.IsisIntegrationTestAbstract;
 
 import lombok.Getter;
@@ -45,23 +39,12 @@ import lombok.RequiredArgsConstructor;
 
 public abstract class AuditTrailIntegTestAbstract extends 
IsisIntegrationTestAbstract {
 
-
-    @Value
-    @RequiredArgsConstructor
-    static class Session {
-        private static AtomicInteger counter = new AtomicInteger();
-        @Getter final String username;
-        final Instant instant;
-        public Date getDate() { return Date.from(instant); }
-        UUID sessionGuid = UUID.randomUUID();
-        final String httpSessionId = "http-" + counter.incrementAndGet();
-    }
     @BeforeEach
     void setUp() {
     }
 
 
-    @Inject @Qualifier("default") SessionSubscriber sessionSubscriber;
-    @Inject SessionLogEntryRepository<? extends SessionLogEntry> 
sessionLogEntryRepository;
+    @Inject @Qualifier("audittrail") EntityPropertyChangeSubscriber 
entityPropertyChangeSubscriber;
+    @Inject AuditTrailEntryRepository<? extends AuditTrailEntry> 
auditTrailEntryRepository;
 
 }
diff --git 
a/extensions/security/audittrail/persistence-jdo/src/main/java/org/apache/isis/audittrail/jdo/IsisModuleExtAuditTrailPersistenceJdo.java
 
b/extensions/security/audittrail/persistence-jdo/src/main/java/org/apache/isis/audittrail/jdo/IsisModuleExtAuditTrailPersistenceJdo.java
index e1d05f9e5c..ee75372760 100644
--- 
a/extensions/security/audittrail/persistence-jdo/src/main/java/org/apache/isis/audittrail/jdo/IsisModuleExtAuditTrailPersistenceJdo.java
+++ 
b/extensions/security/audittrail/persistence-jdo/src/main/java/org/apache/isis/audittrail/jdo/IsisModuleExtAuditTrailPersistenceJdo.java
@@ -24,7 +24,7 @@ import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
 
 import org.apache.isis.audittrail.applib.IsisModuleExtAuditTrailApplib;
-import org.apache.isis.audittrail.jdo.dom.AuditTrailEntryJdo;
+import org.apache.isis.audittrail.jdo.dom.AuditTrailEntry;
 import org.apache.isis.audittrail.jdo.dom.AuditTrailEntryRepository;
 import 
org.apache.isis.persistence.jdo.datanucleus.IsisModulePersistenceJdoDatanucleus;
 import org.apache.isis.testing.fixtures.applib.IsisModuleTestingFixturesApplib;
@@ -44,7 +44,7 @@ import 
org.apache.isis.testing.fixtures.applib.teardown.jdo.TeardownFixtureJdoAb
         AuditTrailEntryRepository.class,
 
         // entities, eager meta-model introspection
-        AuditTrailEntryJdo.class,
+        AuditTrailEntry.class,
 })
 public class IsisModuleExtAuditTrailPersistenceJdo implements 
ModuleWithFixtures {
 
@@ -53,7 +53,7 @@ public class IsisModuleExtAuditTrailPersistenceJdo implements 
ModuleWithFixtures
         return new TeardownFixtureJdoAbstract() {
             @Override
             protected void execute(final ExecutionContext executionContext) {
-                deleteFrom(AuditTrailEntryJdo.class);
+                deleteFrom(AuditTrailEntry.class);
             }
         };
     }
diff --git 
a/extensions/security/audittrail/persistence-jdo/src/main/java/org/apache/isis/audittrail/jdo/dom/AuditTrailEntryJdo.java
 
b/extensions/security/audittrail/persistence-jdo/src/main/java/org/apache/isis/audittrail/jdo/dom/AuditTrailEntry.java
similarity index 82%
rename from 
extensions/security/audittrail/persistence-jdo/src/main/java/org/apache/isis/audittrail/jdo/dom/AuditTrailEntryJdo.java
rename to 
extensions/security/audittrail/persistence-jdo/src/main/java/org/apache/isis/audittrail/jdo/dom/AuditTrailEntry.java
index b7152b0304..b3a95053f2 100644
--- 
a/extensions/security/audittrail/persistence-jdo/src/main/java/org/apache/isis/audittrail/jdo/dom/AuditTrailEntryJdo.java
+++ 
b/extensions/security/audittrail/persistence-jdo/src/main/java/org/apache/isis/audittrail/jdo/dom/AuditTrailEntry.java
@@ -34,6 +34,7 @@ import javax.jdo.annotations.Persistent;
 import javax.jdo.annotations.Queries;
 import javax.jdo.annotations.Query;
 import javax.jdo.annotations.Version;
+import javax.jdo.annotations.VersionStrategy;
 import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
 
@@ -47,8 +48,8 @@ import lombok.Getter;
 import lombok.Setter;
 @PersistenceCapable(
         identityType = IdentityType.DATASTORE,
-        schema = AuditTrailEntryJdo.SCHEMA,
-        table = AuditTrailEntryJdo.TABLE)
+        schema = AuditTrailEntry.SCHEMA,
+        table = AuditTrailEntry.TABLE)
 @Indices({
         @Index(name = "target_propertyId_timestamp_IDX", members = { "target", 
"propertyId", "timestamp" }, unique = "false"),
         @Index(name = "target_timestamp_IDX", members = { "target", 
"timestamp" }, unique = "false"),
@@ -59,26 +60,26 @@ import lombok.Setter;
     @Query(
             name = Nq.FIND_BY_INTERACTION_ID,
             value = "SELECT "
-                  + "  FROM " + AuditTrailEntryJdo.FQCN + " "
+                  + "  FROM " + AuditTrailEntry.FQCN + " "
                   + " WHERE interactionId == :interactionId"),
     @Query(
             name = Nq.FIND_FIRST_BY_TARGET,
             value = "SELECT "
-                  + "  FROM " + AuditTrailEntryJdo.FQCN + " "
+                  + "  FROM " + AuditTrailEntry.FQCN + " "
                   + " WHERE target == :target "
                   + " ORDER BY timestamp ASC "
                   + " RANGE 0,2"),
     @Query(
             name = Nq.FIND_RECENT_BY_TARGET,
             value = "SELECT "
-                  + "  FROM " + AuditTrailEntryJdo.FQCN + " "
+                  + "  FROM " + AuditTrailEntry.FQCN + " "
                   + " WHERE targetStr == :targetStr "
                   + " ORDER BY timestamp DESC "
                   + " RANGE 0,100"),
     @Query(
             name = Nq.FIND_BY_TARGET_AND_TIMESTAMP_BETWEEN,
             value = "SELECT "
-                  + "  FROM " + AuditTrailEntryJdo.FQCN + " "
+                  + "  FROM " + AuditTrailEntry.FQCN + " "
                   + " WHERE targetStr == :targetStr "
                   + "    && timestamp >= :from "
                   + "    && timestamp <= :to "
@@ -86,51 +87,51 @@ import lombok.Setter;
     @Query(
             name = Nq.FIND_BY_TARGET_AND_TIMESTAMP_AFTER,
             value = "SELECT "
-                  + "  FROM " + AuditTrailEntryJdo.FQCN + " "
+                  + "  FROM " + AuditTrailEntry.FQCN + " "
                   + " WHERE target == :target "
                   + "    && timestamp >= :from "
                   + " ORDER BY this.timestamp DESC"),
     @Query(
             name  = Nq.FIND_BY_TARGET_AND_TIMESTAMP_BEFORE,
             value = "SELECT "
-                  + "  FROM " + AuditTrailEntryJdo.FQCN + " "
+                  + "  FROM " + AuditTrailEntry.FQCN + " "
                   + " WHERE target == :target "
                   + "    && timestamp <= :to "
                   + " ORDER BY this.timestamp DESC"),
     @Query(
             name  = Nq.FIND_BY_TARGET,
             value = "SELECT "
-                  + "  FROM " + AuditTrailEntryJdo.FQCN + " "
+                  + "  FROM " + AuditTrailEntry.FQCN + " "
                   + " WHERE target == :target "
                   + " ORDER BY timestamp DESC"),
     @Query(
             name  = Nq.FIND_BY_TIMESTAMP_BETWEEN,
             value = "SELECT "
-                  + "  FROM " + AuditTrailEntryJdo.FQCN + " "
+                  + "  FROM " + AuditTrailEntry.FQCN + " "
                   + " WHERE timestamp >= :from "
                   + "    && timestamp <= :to "
                   + " ORDER BY this.timestamp DESC"),
     @Query(
             name  = Nq.FIND_BY_TIMESTAMP_AFTER,
             value = "SELECT "
-                  + "  FROM " + AuditTrailEntryJdo.FQCN + " "
+                  + "  FROM " + AuditTrailEntry.FQCN + " "
                   + " WHERE timestamp >= :from "
                   + " ORDER BY this.timestamp DESC"),
     @Query(
             name  = Nq.FIND_BY_TIMESTAMP_BEFORE,
             value = "SELECT "
-                  + "  FROM " + AuditTrailEntryJdo.FQCN + " "
+                  + "  FROM " + AuditTrailEntry.FQCN + " "
                   + " WHERE timestamp <= :to "
                   + " ORDER BY this.timestamp DESC"),
     @Query(
             name  = Nq.FIND,
             value = "SELECT "
-                  + "  FROM " + AuditTrailEntryJdo.FQCN + " "
+                  + "  FROM " + AuditTrailEntry.FQCN + " "
                   + " ORDER BY this.timestamp DESC"),
     @Query(
             name = Nq.FIND_RECENT_BY_TARGET_AND_PROPERTY_ID,
             value = "SELECT "
-                  + "  FROM " + AuditTrailEntryJdo.FQCN + " "
+                  + "  FROM " + AuditTrailEntry.FQCN + " "
                   + " WHERE target == :target "
                   + "    && propertyId == :propertyId "
                   + " ORDER BY timestamp DESC "
@@ -138,27 +139,15 @@ import lombok.Setter;
 })
 @XmlJavaTypeAdapter(PersistentEntityAdapter.class)
 @DatastoreIdentity(strategy = IdGeneratorStrategy.IDENTITY, column = "id")
-@Version(column = "version")
-@Named(AuditTrailEntryJdo.LOGICAL_TYPE_NAME)
+@Version(strategy = VersionStrategy.VERSION_NUMBER, column = "version")
+@Named(AuditTrailEntry.LOGICAL_TYPE_NAME)
 @DomainObject(
         editing = Editing.DISABLED
 )
-public class AuditTrailEntryJdo
+public class AuditTrailEntry
 extends org.apache.isis.audittrail.applib.dom.AuditTrailEntry {
 
-    static final String FQCN = 
"org.apache.isis.audittrail.jdo.dom.AuditTrailEntryJdo";
-
-    public AuditTrailEntryJdo(
-            final java.sql.Timestamp timestamp,
-            final String username,
-            final Bookmark target,
-            final String logicalMemberIdentifier,
-            final String propertyId,
-            final String preValue,
-            final String postValue,
-            final UUID interactionId) {
-        super(timestamp, username, target, logicalMemberIdentifier, 
propertyId, preValue, postValue, interactionId);
-    }
+    static final String FQCN = 
"org.apache.isis.audittrail.jdo.dom.AuditTrailEntry";
 
 
     @Column(allowsNull = Username.ALLOWS_NULL, length = Username.MAX_LENGTH)
diff --git 
a/extensions/security/audittrail/persistence-jpa/src/main/java/org/apache/isis/audittrail/jpa/dom/AuditTrailEntry.java
 
b/extensions/security/audittrail/persistence-jpa/src/main/java/org/apache/isis/audittrail/jpa/dom/AuditTrailEntry.java
index 0a42919754..bdc2ec9efb 100644
--- 
a/extensions/security/audittrail/persistence-jpa/src/main/java/org/apache/isis/audittrail/jpa/dom/AuditTrailEntry.java
+++ 
b/extensions/security/audittrail/persistence-jpa/src/main/java/org/apache/isis/audittrail/jpa/dom/AuditTrailEntry.java
@@ -149,22 +149,6 @@ extends 
org.apache.isis.audittrail.applib.dom.AuditTrailEntry {
 
     static final String FQCN = 
"org.apache.isis.audittrail.jdo.dom.AuditTrailEntry";
 
-    public AuditTrailEntry() {
-        this(null, null, null, null, null, null, null, null);
-    }
-
-    public AuditTrailEntry(
-            final java.sql.Timestamp timestamp,
-            final String username,
-            final Bookmark target,
-            final String logicalMemberIdentifier,
-            final String propertyId,
-            final String preValue,
-            final String postValue,
-            final UUID interactionId) {
-        super(timestamp, username, target, logicalMemberIdentifier, 
propertyId, preValue, postValue, interactionId);
-    }
-
     @Id
     @GeneratedValue
     private Long id;
diff --git 
a/extensions/security/audittrail/persistence-jpa/src/test/java/org/apache/isis/audittrail/jpa/AuditTrail_IntegTest.java
 
b/extensions/security/audittrail/persistence-jpa/src/test/java/org/apache/isis/audittrail/jpa/AuditTrail_IntegTest.java
index 368b4bb0e0..089e6b04f8 100644
--- 
a/extensions/security/audittrail/persistence-jpa/src/test/java/org/apache/isis/audittrail/jpa/AuditTrail_IntegTest.java
+++ 
b/extensions/security/audittrail/persistence-jpa/src/test/java/org/apache/isis/audittrail/jpa/AuditTrail_IntegTest.java
@@ -26,10 +26,10 @@ import 
org.springframework.context.annotation.PropertySource;
 import org.springframework.context.annotation.PropertySources;
 import org.springframework.test.context.ActiveProfiles;
 
+import org.apache.isis.audittrail.applib.AuditTrailIntegTestAbstract;
 import org.apache.isis.core.config.presets.IsisPresets;
 import org.apache.isis.core.runtimeservices.IsisModuleCoreRuntimeServices;
 import org.apache.isis.security.bypass.IsisModuleSecurityBypass;
-import org.apache.isis.sessionlog.applib.AuditTrailIntegTestAbstract;
 
 @SpringBootTest(
         classes = AuditTrail_IntegTest.AppManifest.class
diff --git 
a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/permission/dom/ApplicationPermission.java
 
b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/permission/dom/ApplicationPermission.java
index 923ae9df05..559d46f544 100644
--- 
a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/permission/dom/ApplicationPermission.java
+++ 
b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/permission/dom/ApplicationPermission.java
@@ -95,13 +95,9 @@ import lombok.Setter;
                   + "    && rule == :rule "
                   + "    && featureSort == :featureSort "),
 })
-@Inheritance(
-        strategy = InheritanceStrategy.NEW_TABLE)
-@DatastoreIdentity(
-        strategy = IdGeneratorStrategy.NATIVE, column = "id")
-@Version(
-        strategy = VersionStrategy.VERSION_NUMBER,
-        column = "version")
+@Inheritance(strategy = InheritanceStrategy.NEW_TABLE)
+@DatastoreIdentity(strategy = IdGeneratorStrategy.NATIVE, column = "id")
+@Version(strategy = VersionStrategy.VERSION_NUMBER, column = "version")
 @XmlJavaTypeAdapter(PersistentEntityAdapter.class)
 @Named(ApplicationPermission.LOGICAL_TYPE_NAME)
 @DomainObject()
diff --git 
a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/role/dom/ApplicationRole.java
 
b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/role/dom/ApplicationRole.java
index c492ec8dcd..fee80e16fc 100644
--- 
a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/role/dom/ApplicationRole.java
+++ 
b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/role/dom/ApplicationRole.java
@@ -34,6 +34,8 @@ import javax.jdo.annotations.Queries;
 import javax.jdo.annotations.Query;
 import javax.jdo.annotations.Unique;
 import javax.jdo.annotations.Uniques;
+import javax.jdo.annotations.Version;
+import javax.jdo.annotations.VersionStrategy;
 import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
 import org.apache.isis.applib.annotation.BookmarkPolicy;
@@ -70,8 +72,8 @@ import lombok.Setter;
 })
 @Inheritance(
         strategy = InheritanceStrategy.NEW_TABLE)
-@DatastoreIdentity(
-        strategy = IdGeneratorStrategy.NATIVE, column = "id")
+@DatastoreIdentity(strategy = IdGeneratorStrategy.NATIVE, column = "id")
+@Version(strategy = VersionStrategy.VERSION_NUMBER, column = "version")
 @XmlJavaTypeAdapter(PersistentEntityAdapter.class)
 @Named(ApplicationRole.LOGICAL_TYPE_NAME)
 @DomainObject(
diff --git 
a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/tenancy/dom/ApplicationTenancy.java
 
b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/tenancy/dom/ApplicationTenancy.java
index f07a8c77b7..d28d33eb81 100644
--- 
a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/tenancy/dom/ApplicationTenancy.java
+++ 
b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/tenancy/dom/ApplicationTenancy.java
@@ -76,13 +76,9 @@ import lombok.Setter;
                   + " WHERE name.matches(:regex) "
                   + "    || path.matches(:regex) ")
 })
-@Inheritance(
-        strategy = InheritanceStrategy.NEW_TABLE)
-@DatastoreIdentity(
-        strategy = IdGeneratorStrategy.NATIVE, column = "id")
-@Version(
-        strategy = VersionStrategy.VERSION_NUMBER,
-        column = "version")
+@Inheritance(strategy = InheritanceStrategy.NEW_TABLE)
+@DatastoreIdentity(strategy = IdGeneratorStrategy.NATIVE, column = "id")
+@Version(strategy = VersionStrategy.VERSION_NUMBER, column = "version")
 @XmlJavaTypeAdapter(PersistentEntityAdapter.class)
 @Named(ApplicationTenancy.LOGICAL_TYPE_NAME)
 @DomainObject(
diff --git 
a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/user/dom/ApplicationUser.java
 
b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/user/dom/ApplicationUser.java
index 68a1d42b7a..539bbe05fe 100644
--- 
a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/user/dom/ApplicationUser.java
+++ 
b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/user/dom/ApplicationUser.java
@@ -84,13 +84,9 @@ import lombok.Setter;
                   + "    || knownAs.matches(:regex)"
                   + "    || emailAddress.matches(:regex)")
 })
-@Inheritance(
-        strategy = InheritanceStrategy.NEW_TABLE)
-@DatastoreIdentity(
-        strategy = IdGeneratorStrategy.NATIVE, column = "id")
-@Version(
-        strategy = VersionStrategy.VERSION_NUMBER,
-        column = "version")
+@Inheritance(strategy = InheritanceStrategy.NEW_TABLE)
+@DatastoreIdentity(strategy = IdGeneratorStrategy.NATIVE, column = "id")
+@Version(strategy = VersionStrategy.VERSION_NUMBER, column = "version")
 @XmlJavaTypeAdapter(PersistentEntityAdapter.class)
 @Named(ApplicationUser.LOGICAL_TYPE_NAME)
 @DomainObject(
diff --git 
a/persistence/jdo/integration/src/main/java/org/apache/isis/persistence/jdo/integration/changetracking/_EntityPropertyChangeFactory.java
 
b/persistence/jdo/integration/src/main/java/org/apache/isis/persistence/jdo/integration/changetracking/_EntityPropertyChangeFactory.java
index 4d472768f3..57c42c69a4 100644
--- 
a/persistence/jdo/integration/src/main/java/org/apache/isis/persistence/jdo/integration/changetracking/_EntityPropertyChangeFactory.java
+++ 
b/persistence/jdo/integration/src/main/java/org/apache/isis/persistence/jdo/integration/changetracking/_EntityPropertyChangeFactory.java
@@ -32,7 +32,7 @@ final class _EntityPropertyChangeFactory {
 
     public static EntityPropertyChange createEntityPropertyChange(
             final java.sql.Timestamp timestamp,
-            final String user,
+            final String username,
             final TransactionId txId,
             final PropertyChangeRecord propertyChangeRecord) {
 
@@ -49,7 +49,7 @@ final class _EntityPropertyChangeFactory {
         final int sequence = txId.getSequence();
 
         return EntityPropertyChange.of(
-                transactionId, sequence, targetClass, target,
-                memberId, propertyId, preValue, postValue, user, timestamp);
+                transactionId, sequence, target,
+                memberId, propertyId, preValue, postValue, username, 
timestamp);
     }
 }
diff --git 
a/testing/archtestsupport/applib/src/test/java/org/apache/isis/testing/archtestsupport/applib/entity/jdo/dom/JdoEntity.java
 
b/testing/archtestsupport/applib/src/test/java/org/apache/isis/testing/archtestsupport/applib/entity/jdo/dom/JdoEntity.java
index 8268881898..c5dc791780 100644
--- 
a/testing/archtestsupport/applib/src/test/java/org/apache/isis/testing/archtestsupport/applib/entity/jdo/dom/JdoEntity.java
+++ 
b/testing/archtestsupport/applib/src/test/java/org/apache/isis/testing/archtestsupport/applib/entity/jdo/dom/JdoEntity.java
@@ -29,6 +29,7 @@ import javax.jdo.annotations.PersistenceCapable;
 import javax.jdo.annotations.Unique;
 import javax.jdo.annotations.Uniques;
 import javax.jdo.annotations.Version;
+import javax.jdo.annotations.VersionStrategy;
 import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
 import org.apache.isis.applib.annotation.DomainObject;
@@ -37,7 +38,7 @@ import org.apache.isis.applib.jaxb.PersistentEntityAdapter;
 
 @PersistenceCapable(schema = "jdo", identityType = IdentityType.DATASTORE)
 @DatastoreIdentity(strategy = IdGeneratorStrategy.NATIVE)
-@Version
+@Version(strategy = VersionStrategy.VERSION_NUMBER, column = "version")
 @Uniques(@Unique(name = "name", members = {"name"}))
 @DomainObject(nature = Nature.ENTITY)
 @XmlJavaTypeAdapter(PersistentEntityAdapter.class)

Reply via email to