You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@causeway.apache.org by da...@apache.org on 2024/01/03 23:33:17 UTC
(causeway) 01/01: CAUSEWAY-3390: makes design of AuditTrailEntryRepository consistent with ...
This is an automated email from the ASF dual-hosted git repository.
danhaywood pushed a commit to branch CAUSEWAY-3390
in repository https://gitbox.apache.org/repos/asf/causeway.git
commit 83cf9062026ac1319f3dc7973a7e7be9f304985e
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Wed Jan 3 23:32:27 2024 +0000
CAUSEWAY-3390: makes design of AuditTrailEntryRepository consistent with ...
... secman's ApplicationUserRepository
---
.../audittrail/applib/app/AuditTrailMenu.java | 4 +-
.../HasInteractionId_auditTrailEntries.java | 5 +-
.../Object_recentAuditTrailEntries.java | 5 +-
.../applib/dom/AuditTrailEntryRepository.java | 224 ++-------------------
...java => AuditTrailEntryRepositoryAbstract.java} | 80 +++++---
...ntityPropertyChangeSubscriberForAuditTrail.java | 4 +-
.../integtests/AuditTrail_IntegTestAbstract.java | 5 +-
.../jdo/dom/AuditTrailEntryRepository.java | 4 +-
.../jpa/dom/AuditTrailEntryRepository.java | 3 +-
.../dom/ApplicationUserRepositoryAbstract.java | 2 +
10 files changed, 89 insertions(+), 247 deletions(-)
diff --git a/extensions/security/audittrail/applib/src/main/java/org/apache/causeway/extensions/audittrail/applib/app/AuditTrailMenu.java b/extensions/security/audittrail/applib/src/main/java/org/apache/causeway/extensions/audittrail/applib/app/AuditTrailMenu.java
index 3c655e0aa6..f1f7727f1c 100644
--- a/extensions/security/audittrail/applib/src/main/java/org/apache/causeway/extensions/audittrail/applib/app/AuditTrailMenu.java
+++ b/extensions/security/audittrail/applib/src/main/java/org/apache/causeway/extensions/audittrail/applib/app/AuditTrailMenu.java
@@ -41,7 +41,7 @@ import org.apache.causeway.applib.annotation.SemanticsOf;
import org.apache.causeway.applib.services.clock.ClockService;
import org.apache.causeway.extensions.audittrail.applib.CausewayModuleExtAuditTrailApplib;
import org.apache.causeway.extensions.audittrail.applib.dom.AuditTrailEntry;
-import org.apache.causeway.extensions.audittrail.applib.dom.AuditTrailEntryRepository;
+import org.apache.causeway.extensions.audittrail.applib.dom.AuditTrailEntryRepositoryAbstract;
import lombok.RequiredArgsConstructor;
@@ -68,7 +68,7 @@ public class AuditTrailMenu {
extends CausewayModuleExtAuditTrailApplib.ActionDomainEvent<T> { }
- final AuditTrailEntryRepository<? extends AuditTrailEntry> auditTrailEntryRepository;
+ final AuditTrailEntryRepositoryAbstract<? extends AuditTrailEntry> auditTrailEntryRepository;
final ClockService clockService;
diff --git a/extensions/security/audittrail/applib/src/main/java/org/apache/causeway/extensions/audittrail/applib/contributions/HasInteractionId_auditTrailEntries.java b/extensions/security/audittrail/applib/src/main/java/org/apache/causeway/extensions/audittrail/applib/contributions/HasInteractionId_auditTrailEntries.java
index 0b7a141fcc..8f967e748b 100644
--- a/extensions/security/audittrail/applib/src/main/java/org/apache/causeway/extensions/audittrail/applib/contributions/HasInteractionId_auditTrailEntries.java
+++ b/extensions/security/audittrail/applib/src/main/java/org/apache/causeway/extensions/audittrail/applib/contributions/HasInteractionId_auditTrailEntries.java
@@ -28,7 +28,7 @@ import org.apache.causeway.applib.annotation.MemberSupport;
import org.apache.causeway.applib.mixins.system.HasInteractionId;
import org.apache.causeway.extensions.audittrail.applib.CausewayModuleExtAuditTrailApplib;
import org.apache.causeway.extensions.audittrail.applib.dom.AuditTrailEntry;
-import org.apache.causeway.extensions.audittrail.applib.dom.AuditTrailEntryRepository;
+import org.apache.causeway.extensions.audittrail.applib.dom.AuditTrailEntryRepositoryAbstract;
import lombok.RequiredArgsConstructor;
@@ -51,6 +51,7 @@ public class HasInteractionId_auditTrailEntries {
return auditTrailEntryRepository.findByInteractionId(hasInteractionId.getInteractionId());
}
- @Inject AuditTrailEntryRepository<? extends AuditTrailEntry> auditTrailEntryRepository;
+ @Inject
+ AuditTrailEntryRepositoryAbstract<? extends AuditTrailEntry> auditTrailEntryRepository;
}
diff --git a/extensions/security/audittrail/applib/src/main/java/org/apache/causeway/extensions/audittrail/applib/contributions/Object_recentAuditTrailEntries.java b/extensions/security/audittrail/applib/src/main/java/org/apache/causeway/extensions/audittrail/applib/contributions/Object_recentAuditTrailEntries.java
index ff5e899297..57bf241a2a 100644
--- a/extensions/security/audittrail/applib/src/main/java/org/apache/causeway/extensions/audittrail/applib/contributions/Object_recentAuditTrailEntries.java
+++ b/extensions/security/audittrail/applib/src/main/java/org/apache/causeway/extensions/audittrail/applib/contributions/Object_recentAuditTrailEntries.java
@@ -38,7 +38,7 @@ import org.apache.causeway.applib.services.metamodel.BeanSort;
import org.apache.causeway.applib.services.metamodel.MetaModelService;
import org.apache.causeway.extensions.audittrail.applib.CausewayModuleExtAuditTrailApplib;
import org.apache.causeway.extensions.audittrail.applib.dom.AuditTrailEntry;
-import org.apache.causeway.extensions.audittrail.applib.dom.AuditTrailEntryRepository;
+import org.apache.causeway.extensions.audittrail.applib.dom.AuditTrailEntryRepositoryAbstract;
import lombok.RequiredArgsConstructor;
import lombok.val;
@@ -93,6 +93,7 @@ public class Object_recentAuditTrailEntries {
@Inject MetaModelService metaModelService;
@Inject ApplicationFeatureRepository applicationFeatureRepository;
- @Inject AuditTrailEntryRepository<? extends AuditTrailEntry> auditTrailEntryRepository;
+ @Inject
+ AuditTrailEntryRepositoryAbstract<? extends AuditTrailEntry> auditTrailEntryRepository;
@Inject BookmarkService bookmarkService;
}
diff --git a/extensions/security/audittrail/applib/src/main/java/org/apache/causeway/extensions/audittrail/applib/dom/AuditTrailEntryRepository.java b/extensions/security/audittrail/applib/src/main/java/org/apache/causeway/extensions/audittrail/applib/dom/AuditTrailEntryRepository.java
index a1bd645a5a..b1cb1e62af 100644
--- a/extensions/security/audittrail/applib/src/main/java/org/apache/causeway/extensions/audittrail/applib/dom/AuditTrailEntryRepository.java
+++ b/extensions/security/audittrail/applib/src/main/java/org/apache/causeway/extensions/audittrail/applib/dom/AuditTrailEntryRepository.java
@@ -44,240 +44,56 @@ import lombok.val;
*
* @since 2.0 {@index}
*/
-@RequiredArgsConstructor(access = AccessLevel.PROTECTED)
-public abstract class AuditTrailEntryRepository<E extends AuditTrailEntry> {
+public interface AuditTrailEntryRepository {
- private final Class<E> auditTrailEntryClass;
+ AuditTrailEntry createFor(final EntityPropertyChange change);
- @Inject RepositoryService repositoryService;
- @Inject FactoryService factoryService;
- @Inject CausewaySystemEnvironment causewaySystemEnvironment;
+ Optional<AuditTrailEntry> findFirstByTarget(final Bookmark target);
- public Class<E> getEntityClass() {
- return auditTrailEntryClass;
- }
+ List<AuditTrailEntry> findRecentByTarget(final Bookmark target);
- public AuditTrailEntry createFor(final EntityPropertyChange change) {
- E entry = factoryService.detachedEntity(auditTrailEntryClass);
- entry.init(change);
- return repositoryService.persistAndFlush(entry);
- }
-
- public Optional<E> findFirstByTarget(final Bookmark target) {
- return repositoryService.firstMatch(
- Query.named(auditTrailEntryClass, AuditTrailEntry.Nq.FIND_FIRST_BY_TARGET)
- .withParameter("target", target)
- .withLimit(2)
- );
- }
-
- public List<E> findRecentByTarget(final Bookmark target) {
- return repositoryService.allMatches(
- Query.named(auditTrailEntryClass, AuditTrailEntry.Nq.FIND_RECENT_BY_TARGET)
- .withParameter("target", target)
- .withLimit(100)
- );
- }
-
- public List<E> findRecentByTargetAndPropertyId(
+ List<AuditTrailEntry> findRecentByTargetAndPropertyId(
final Bookmark target,
- final String propertyId) {
- final String targetStr = target.toString();
- return repositoryService.allMatches(
- Query.named(auditTrailEntryClass, AuditTrailEntry.Nq.FIND_RECENT_BY_TARGET_AND_PROPERTY_ID)
- .withParameter("target", target)
- .withParameter("propertyId", propertyId)
- .withLimit(30)
- );
- }
+ final String propertyId);
- public List<E> findByInteractionId(final UUID interactionId) {
- return repositoryService.allMatches(
- Query.named(auditTrailEntryClass, AuditTrailEntry.Nq.FIND_BY_INTERACTION_ID)
- .withParameter("interactionId", interactionId)
- );
- }
+ List<AuditTrailEntry> findByInteractionId(final UUID interactionId);
- public List<E> findByTargetAndFromAndTo(
+ List<AuditTrailEntry> findByTargetAndFromAndTo(
final Bookmark target,
final LocalDate from,
- final LocalDate to) {
- val fromTs = toTimestampStartOfDayWithOffset(from, 0);
- val toTs = toTimestampStartOfDayWithOffset(to, 1);
+ final LocalDate to);
- final Query<E> query;
- if(from != null) {
- if(to != null) {
- query = Query.named(auditTrailEntryClass, AuditTrailEntry.Nq.FIND_BY_TARGET_AND_TIMESTAMP_BETWEEN)
- .withParameter("target", target)
- .withParameter("from", fromTs)
- .withParameter("to", toTs);
- } else {
- query = Query.named(auditTrailEntryClass, AuditTrailEntry.Nq.FIND_BY_TARGET_AND_TIMESTAMP_AFTER)
- .withParameter("target", target)
- .withParameter("from", fromTs);
- }
- } else {
- if(to != null) {
- query = Query.named(auditTrailEntryClass, AuditTrailEntry.Nq.FIND_BY_TARGET_AND_TIMESTAMP_BEFORE)
- .withParameter("target", target)
- .withParameter("to", toTs);
- } else {
- query = Query.named(auditTrailEntryClass, AuditTrailEntry.Nq.FIND_BY_TARGET)
- .withParameter("target", target)
- ;
- }
- }
- return repositoryService.allMatches(query);
- }
-
- public List<E> findByFromAndTo(
+ List<AuditTrailEntry> findByFromAndTo(
final LocalDate from,
- final LocalDate to) {
- val fromTs = toTimestampStartOfDayWithOffset(from, 0);
- val toTs = toTimestampStartOfDayWithOffset(to, 1);
-
- final Query<E> query;
- if(from != null) {
- if(to != null) {
- query = Query.named(auditTrailEntryClass, AuditTrailEntry.Nq.FIND_BY_TIMESTAMP_BETWEEN)
- .withParameter("from", fromTs)
- .withParameter("to", toTs);
- } else {
- query = Query.named(auditTrailEntryClass, AuditTrailEntry.Nq.FIND_BY_TIMESTAMP_AFTER)
- .withParameter("from", fromTs);
- }
- } else {
- if(to != null) {
- query = Query.named(auditTrailEntryClass, AuditTrailEntry.Nq.FIND_BY_TIMESTAMP_BEFORE)
- .withParameter("to", toTs);
- } else {
- query = Query.named(auditTrailEntryClass, AuditTrailEntry.Nq.FIND);
- }
- }
- return repositoryService.allMatches(query);
- }
-
- private static Timestamp toTimestampStartOfDayWithOffset(final LocalDate dt, final int daysOffset) {
- return dt!=null
- ? Timestamp.valueOf(dt.atStartOfDay().plusDays(daysOffset))
- :null;
- }
+ final LocalDate to);
+ List<AuditTrailEntry> findMostRecent();
- public List<E> findMostRecent() {
- return findMostRecent(100);
- }
+ List<AuditTrailEntry> findMostRecent(final int limit);
- public List<E> findMostRecent(final int limit) {
- return repositoryService.allMatches(
- Query.named(auditTrailEntryClass, AuditTrailEntry.Nq.FIND_MOST_RECENT).withLimit(limit));
- }
-
- public List<E> findByUsernameAndFromAndTo(
+ List<AuditTrailEntry> findByUsernameAndFromAndTo(
final String username,
final LocalDate from,
- final LocalDate to) {
- val fromTs = toTimestampStartOfDayWithOffset(from, 0);
- val toTs = toTimestampStartOfDayWithOffset(to, 1);
-
- final Query<E> query;
- if(from != null) {
- if(to != null) {
- query = Query.named(auditTrailEntryClass, AuditTrailEntry.Nq.FIND_BY_USERNAME_AND_TIMESTAMP_BETWEEN)
- .withParameter("username", username)
- .withParameter("from", fromTs)
- .withParameter("to", toTs);
- } else {
- query = Query.named(auditTrailEntryClass, AuditTrailEntry.Nq.FIND_BY_USERNAME_AND_TIMESTAMP_AFTER)
- .withParameter("username", username)
- .withParameter("from", fromTs);
- }
- } else {
- if(to != null) {
- query = Query.named(auditTrailEntryClass, AuditTrailEntry.Nq.FIND_BY_USERNAME_AND_TIMESTAMP_BEFORE)
- .withParameter("username", username)
- .withParameter("to", toTs);
- } else {
- query = Query.named(auditTrailEntryClass, AuditTrailEntry.Nq.FIND_BY_USERNAME)
- .withParameter("username", username)
- ;
- }
- }
- return repositoryService.allMatches(query);
- }
+ final LocalDate to);
- public List<E> findByUsernameAndTargetAndFromAndTo(
+ List<AuditTrailEntry> findByUsernameAndTargetAndFromAndTo(
final String username,
final Bookmark target,
final LocalDate from,
- final LocalDate to) {
- val fromTs = toTimestampStartOfDayWithOffset(from, 0);
- val toTs = toTimestampStartOfDayWithOffset(to, 1);
-
- final Query<E> query;
- if(from != null) {
- if(to != null) {
- query = Query.named(auditTrailEntryClass, AuditTrailEntry.Nq.FIND_BY_USERNAME_AND_TARGET_AND_TIMESTAMP_BETWEEN)
- .withParameter("username", username)
- .withParameter("target", target)
- .withParameter("from", fromTs)
- .withParameter("to", toTs);
- } else {
- query = Query.named(auditTrailEntryClass, AuditTrailEntry.Nq.FIND_BY_USERNAME_AND_TARGET_AND_TIMESTAMP_AFTER)
- .withParameter("username", username)
- .withParameter("target", target)
- .withParameter("from", fromTs);
- }
- } else {
- if(to != null) {
- query = Query.named(auditTrailEntryClass, AuditTrailEntry.Nq.FIND_BY_USERNAME_AND_TARGET_AND_TIMESTAMP_BEFORE)
- .withParameter("username", username)
- .withParameter("target", target)
- .withParameter("to", toTs);
- } else {
- query = Query.named(auditTrailEntryClass, AuditTrailEntry.Nq.FIND_BY_USERNAME_AND_TARGET)
- .withParameter("username", username)
- .withParameter("target", target)
- ;
- }
- }
- return repositoryService.allMatches(query);
- }
-
-
- public List<E> findRecentByUsername(final String username) {
- return repositoryService.allMatches(
- Query.named(auditTrailEntryClass, AuditTrailEntry.Nq.FIND_RECENT_BY_USERNAME)
- .withParameter("username", username)
- .withLimit(100)
- );
- }
+ final LocalDate to);
+ List<AuditTrailEntry> findRecentByUsername(final String username);
/**
* intended for testing only
*/
- public List<? extends AuditTrailEntry> findAll() {
- if (causewaySystemEnvironment.getDeploymentType().isProduction()) {
- throw new IllegalStateException("Cannot call 'findAll' in production systems");
- }
- return repositoryService.allMatches(
- Query.named(auditTrailEntryClass, AuditTrailEntry.Nq.FIND)
- );
- }
+ List<AuditTrailEntry> findAll();
/**
* intended for testing only
*/
- public void removeAll() {
- if (causewaySystemEnvironment.getDeploymentType().isProduction()) {
- throw new IllegalStateException("Cannot call 'removeAll' in production systems");
- }
- repositoryService.removeAll(auditTrailEntryClass);
- }
-
+ void removeAll();
}
diff --git a/extensions/security/audittrail/applib/src/main/java/org/apache/causeway/extensions/audittrail/applib/dom/AuditTrailEntryRepository.java b/extensions/security/audittrail/applib/src/main/java/org/apache/causeway/extensions/audittrail/applib/dom/AuditTrailEntryRepositoryAbstract.java
similarity index 80%
copy from extensions/security/audittrail/applib/src/main/java/org/apache/causeway/extensions/audittrail/applib/dom/AuditTrailEntryRepository.java
copy to extensions/security/audittrail/applib/src/main/java/org/apache/causeway/extensions/audittrail/applib/dom/AuditTrailEntryRepositoryAbstract.java
index a1bd645a5a..f95edbf615 100644
--- a/extensions/security/audittrail/applib/src/main/java/org/apache/causeway/extensions/audittrail/applib/dom/AuditTrailEntryRepository.java
+++ b/extensions/security/audittrail/applib/src/main/java/org/apache/causeway/extensions/audittrail/applib/dom/AuditTrailEntryRepositoryAbstract.java
@@ -33,6 +33,7 @@ import org.apache.causeway.applib.services.bookmark.Bookmark;
import org.apache.causeway.applib.services.factory.FactoryService;
import org.apache.causeway.applib.services.publishing.spi.EntityPropertyChange;
import org.apache.causeway.applib.services.repository.RepositoryService;
+import org.apache.causeway.commons.internal.base._Casts;
import org.apache.causeway.core.config.environment.CausewaySystemEnvironment;
import lombok.AccessLevel;
@@ -44,16 +45,19 @@ import lombok.val;
*
* @since 2.0 {@index}
*/
-@RequiredArgsConstructor(access = AccessLevel.PROTECTED)
-public abstract class AuditTrailEntryRepository<E extends AuditTrailEntry> {
-
-
- private final Class<E> auditTrailEntryClass;
+public abstract class AuditTrailEntryRepositoryAbstract<E extends AuditTrailEntry>
+ implements AuditTrailEntryRepository {
@Inject RepositoryService repositoryService;
@Inject FactoryService factoryService;
@Inject CausewaySystemEnvironment causewaySystemEnvironment;
+ private final Class<E> auditTrailEntryClass;
+
+ protected AuditTrailEntryRepositoryAbstract(Class<E> auditTrailEntryClass) {
+ this.auditTrailEntryClass = auditTrailEntryClass;
+ }
+
public Class<E> getEntityClass() {
return auditTrailEntryClass;
}
@@ -64,42 +68,49 @@ public abstract class AuditTrailEntryRepository<E extends AuditTrailEntry> {
return repositoryService.persistAndFlush(entry);
}
- public Optional<E> findFirstByTarget(final Bookmark target) {
- return repositoryService.firstMatch(
+ public Optional<AuditTrailEntry> findFirstByTarget(final Bookmark target) {
+ return _Casts.uncheckedCast(
+ repositoryService.firstMatch(
Query.named(auditTrailEntryClass, AuditTrailEntry.Nq.FIND_FIRST_BY_TARGET)
.withParameter("target", target)
.withLimit(2)
+ )
);
}
- public List<E> findRecentByTarget(final Bookmark target) {
- return repositoryService.allMatches(
+ public List<AuditTrailEntry> findRecentByTarget(final Bookmark target) {
+ return _Casts.uncheckedCast(
+ repositoryService.allMatches(
Query.named(auditTrailEntryClass, AuditTrailEntry.Nq.FIND_RECENT_BY_TARGET)
.withParameter("target", target)
.withLimit(100)
+ )
);
}
- public List<E> findRecentByTargetAndPropertyId(
+ public List<AuditTrailEntry> findRecentByTargetAndPropertyId(
final Bookmark target,
final String propertyId) {
- final String targetStr = target.toString();
- return repositoryService.allMatches(
+ return _Casts.uncheckedCast(
+ repositoryService.allMatches(
Query.named(auditTrailEntryClass, AuditTrailEntry.Nq.FIND_RECENT_BY_TARGET_AND_PROPERTY_ID)
.withParameter("target", target)
.withParameter("propertyId", propertyId)
.withLimit(30)
+ )
);
}
- public List<E> findByInteractionId(final UUID interactionId) {
- return repositoryService.allMatches(
+ public List<AuditTrailEntry> findByInteractionId(final UUID interactionId) {
+ return _Casts.uncheckedCast(
+ repositoryService.allMatches(
Query.named(auditTrailEntryClass, AuditTrailEntry.Nq.FIND_BY_INTERACTION_ID)
.withParameter("interactionId", interactionId)
+ )
);
}
- public List<E> findByTargetAndFromAndTo(
+ public List<AuditTrailEntry> findByTargetAndFromAndTo(
final Bookmark target,
final LocalDate from,
final LocalDate to) {
@@ -129,10 +140,10 @@ public abstract class AuditTrailEntryRepository<E extends AuditTrailEntry> {
;
}
}
- return repositoryService.allMatches(query);
+ return _Casts.uncheckedCast(repositoryService.allMatches(query));
}
- public List<E> findByFromAndTo(
+ public List<AuditTrailEntry> findByFromAndTo(
final LocalDate from,
final LocalDate to) {
val fromTs = toTimestampStartOfDayWithOffset(from, 0);
@@ -156,7 +167,7 @@ public abstract class AuditTrailEntryRepository<E extends AuditTrailEntry> {
query = Query.named(auditTrailEntryClass, AuditTrailEntry.Nq.FIND);
}
}
- return repositoryService.allMatches(query);
+ return _Casts.uncheckedCast(repositoryService.allMatches(query));
}
private static Timestamp toTimestampStartOfDayWithOffset(final LocalDate dt, final int daysOffset) {
@@ -166,16 +177,19 @@ public abstract class AuditTrailEntryRepository<E extends AuditTrailEntry> {
}
- public List<E> findMostRecent() {
+ public List<AuditTrailEntry> findMostRecent() {
return findMostRecent(100);
}
- public List<E> findMostRecent(final int limit) {
- return repositoryService.allMatches(
- Query.named(auditTrailEntryClass, AuditTrailEntry.Nq.FIND_MOST_RECENT).withLimit(limit));
+ public List<AuditTrailEntry> findMostRecent(final int limit) {
+ return _Casts.uncheckedCast(
+ repositoryService.allMatches(
+ Query.named(auditTrailEntryClass, AuditTrailEntry.Nq.FIND_MOST_RECENT).withLimit(limit)
+ )
+ );
}
- public List<E> findByUsernameAndFromAndTo(
+ public List<AuditTrailEntry> findByUsernameAndFromAndTo(
final String username,
final LocalDate from,
final LocalDate to) {
@@ -205,10 +219,10 @@ public abstract class AuditTrailEntryRepository<E extends AuditTrailEntry> {
;
}
}
- return repositoryService.allMatches(query);
+ return _Casts.uncheckedCast(repositoryService.allMatches(query));
}
- public List<E> findByUsernameAndTargetAndFromAndTo(
+ public List<AuditTrailEntry> findByUsernameAndTargetAndFromAndTo(
final String username,
final Bookmark target,
final LocalDate from,
@@ -243,15 +257,17 @@ public abstract class AuditTrailEntryRepository<E extends AuditTrailEntry> {
;
}
}
- return repositoryService.allMatches(query);
+ return _Casts.uncheckedCast(repositoryService.allMatches(query));
}
- public List<E> findRecentByUsername(final String username) {
- return repositoryService.allMatches(
+ public List<AuditTrailEntry> findRecentByUsername(final String username) {
+ return _Casts.uncheckedCast(
+ repositoryService.allMatches(
Query.named(auditTrailEntryClass, AuditTrailEntry.Nq.FIND_RECENT_BY_USERNAME)
.withParameter("username", username)
.withLimit(100)
+ )
);
}
@@ -260,12 +276,14 @@ public abstract class AuditTrailEntryRepository<E extends AuditTrailEntry> {
/**
* intended for testing only
*/
- public List<? extends AuditTrailEntry> findAll() {
+ public List<AuditTrailEntry> findAll() {
if (causewaySystemEnvironment.getDeploymentType().isProduction()) {
throw new IllegalStateException("Cannot call 'findAll' in production systems");
}
- return repositoryService.allMatches(
- Query.named(auditTrailEntryClass, AuditTrailEntry.Nq.FIND)
+ return _Casts.uncheckedCast(
+ repositoryService.allMatches(
+ Query.named(auditTrailEntryClass, AuditTrailEntry.Nq.FIND)
+ )
);
}
diff --git a/extensions/security/audittrail/applib/src/main/java/org/apache/causeway/extensions/audittrail/applib/spiimpl/EntityPropertyChangeSubscriberForAuditTrail.java b/extensions/security/audittrail/applib/src/main/java/org/apache/causeway/extensions/audittrail/applib/spiimpl/EntityPropertyChangeSubscriberForAuditTrail.java
index 58a22da9e5..5840283afa 100644
--- a/extensions/security/audittrail/applib/src/main/java/org/apache/causeway/extensions/audittrail/applib/spiimpl/EntityPropertyChangeSubscriberForAuditTrail.java
+++ b/extensions/security/audittrail/applib/src/main/java/org/apache/causeway/extensions/audittrail/applib/spiimpl/EntityPropertyChangeSubscriberForAuditTrail.java
@@ -34,7 +34,7 @@ import org.apache.causeway.applib.services.publishing.spi.EntityPropertyChangeSu
import org.apache.causeway.applib.services.xactn.TransactionService;
import org.apache.causeway.extensions.audittrail.applib.CausewayModuleExtAuditTrailApplib;
import org.apache.causeway.extensions.audittrail.applib.dom.AuditTrailEntry;
-import org.apache.causeway.extensions.audittrail.applib.dom.AuditTrailEntryRepository;
+import org.apache.causeway.extensions.audittrail.applib.dom.AuditTrailEntryRepositoryAbstract;
import lombok.RequiredArgsConstructor;
import lombok.extern.log4j.Log4j2;
@@ -57,7 +57,7 @@ public class EntityPropertyChangeSubscriberForAuditTrail implements EntityProper
static final String LOGICAL_TYPE_NAME = CausewayModuleExtAuditTrailApplib.NAMESPACE + ".EntityPropertyChangeSubscriberForAuditTrail";
final TransactionService transactionService;
- final AuditTrailEntryRepository<? extends AuditTrailEntry> auditTrailEntryRepository;
+ final AuditTrailEntryRepositoryAbstract<? extends AuditTrailEntry> auditTrailEntryRepository;
final CausewayConfiguration causewayConfiguration;
@Override
diff --git a/extensions/security/audittrail/applib/src/test/java/org/apache/causeway/extensions/audittrail/applib/integtests/AuditTrail_IntegTestAbstract.java b/extensions/security/audittrail/applib/src/test/java/org/apache/causeway/extensions/audittrail/applib/integtests/AuditTrail_IntegTestAbstract.java
index 3db1d3830d..f537b88698 100644
--- a/extensions/security/audittrail/applib/src/test/java/org/apache/causeway/extensions/audittrail/applib/integtests/AuditTrail_IntegTestAbstract.java
+++ b/extensions/security/audittrail/applib/src/test/java/org/apache/causeway/extensions/audittrail/applib/integtests/AuditTrail_IntegTestAbstract.java
@@ -34,7 +34,7 @@ import org.apache.causeway.applib.services.iactnlayer.InteractionService;
import org.apache.causeway.applib.services.wrapper.WrapperFactory;
import org.apache.causeway.core.config.presets.CausewayPresets;
import org.apache.causeway.extensions.audittrail.applib.dom.AuditTrailEntry;
-import org.apache.causeway.extensions.audittrail.applib.dom.AuditTrailEntryRepository;
+import org.apache.causeway.extensions.audittrail.applib.dom.AuditTrailEntryRepositoryAbstract;
import org.apache.causeway.extensions.audittrail.applib.integtests.model.Counter;
import org.apache.causeway.extensions.audittrail.applib.integtests.model.CounterRepository;
import org.apache.causeway.extensions.audittrail.applib.integtests.model.Counter_bumpUsingMixin;
@@ -203,7 +203,8 @@ public abstract class AuditTrail_IntegTestAbstract extends CausewayIntegrationTe
@Inject CounterRepository<? extends Counter> counterRepository;
@Inject WrapperFactory wrapperFactory;
@Inject BookmarkService bookmarkService;
- @Inject AuditTrailEntryRepository<? extends AuditTrailEntry> auditTrailEntryRepository;
+ @Inject
+ AuditTrailEntryRepositoryAbstract<? extends AuditTrailEntry> auditTrailEntryRepository;
}
diff --git a/extensions/security/audittrail/persistence-jdo/src/main/java/org/apache/causeway/extensions/audittrail/jdo/dom/AuditTrailEntryRepository.java b/extensions/security/audittrail/persistence-jdo/src/main/java/org/apache/causeway/extensions/audittrail/jdo/dom/AuditTrailEntryRepository.java
index 3832c95e6c..dfe3a15c11 100644
--- a/extensions/security/audittrail/persistence-jdo/src/main/java/org/apache/causeway/extensions/audittrail/jdo/dom/AuditTrailEntryRepository.java
+++ b/extensions/security/audittrail/persistence-jdo/src/main/java/org/apache/causeway/extensions/audittrail/jdo/dom/AuditTrailEntryRepository.java
@@ -19,10 +19,12 @@
*/
package org.apache.causeway.extensions.audittrail.jdo.dom;
+import org.apache.causeway.extensions.audittrail.applib.dom.AuditTrailEntryRepositoryAbstract;
+
import org.springframework.stereotype.Service;
@Service
-public class AuditTrailEntryRepository extends org.apache.causeway.extensions.audittrail.applib.dom.AuditTrailEntryRepository<AuditTrailEntry> {
+public class AuditTrailEntryRepository extends AuditTrailEntryRepositoryAbstract<AuditTrailEntry> {
public AuditTrailEntryRepository() {
super(AuditTrailEntry.class);
diff --git a/extensions/security/audittrail/persistence-jpa/src/main/java/org/apache/causeway/extensions/audittrail/jpa/dom/AuditTrailEntryRepository.java b/extensions/security/audittrail/persistence-jpa/src/main/java/org/apache/causeway/extensions/audittrail/jpa/dom/AuditTrailEntryRepository.java
index 644d630ba6..c24310990a 100644
--- a/extensions/security/audittrail/persistence-jpa/src/main/java/org/apache/causeway/extensions/audittrail/jpa/dom/AuditTrailEntryRepository.java
+++ b/extensions/security/audittrail/persistence-jpa/src/main/java/org/apache/causeway/extensions/audittrail/jpa/dom/AuditTrailEntryRepository.java
@@ -19,10 +19,11 @@
*/
package org.apache.causeway.extensions.audittrail.jpa.dom;
+import org.apache.causeway.extensions.audittrail.applib.dom.AuditTrailEntryRepositoryAbstract;
import org.springframework.stereotype.Service;
@Service
-public class AuditTrailEntryRepository extends org.apache.causeway.extensions.audittrail.applib.dom.AuditTrailEntryRepository<AuditTrailEntry> {
+public class AuditTrailEntryRepository extends AuditTrailEntryRepositoryAbstract<AuditTrailEntry> {
public AuditTrailEntryRepository() {
super(AuditTrailEntry.class);
diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/ApplicationUserRepositoryAbstract.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/ApplicationUserRepositoryAbstract.java
index d653a7c38a..ed988696dc 100644
--- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/ApplicationUserRepositoryAbstract.java
+++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/ApplicationUserRepositoryAbstract.java
@@ -55,6 +55,7 @@ import lombok.val;
*
* @since 2.0 {@index}
*/
+@SuppressWarnings("CdiManagedBeanInconsistencyInspection")
public class ApplicationUserRepositoryAbstract<U extends ApplicationUser>
implements ApplicationUserRepository {
@@ -66,6 +67,7 @@ implements ApplicationUserRepository {
@Inject private Provider<QueryResultsCache> queryResultsCacheProvider;
// empty if no candidate is available
+ @SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection")
@Autowired(required = false) @Qualifier("Secman") PasswordEncoder passwordEncoder;