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 <[email protected]> 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;
