This is an automated email from the ASF dual-hosted git repository. danhaywood pushed a commit to branch ISIS-3271 in repository https://gitbox.apache.org/repos/asf/isis.git
commit 232b3b948f8ee5cc8018b5d35abc1a94a1bd04f0 Author: Dan Haywood <[email protected]> AuthorDate: Thu Nov 3 15:32:38 2022 +0000 ISIS-3255: updating docs and javadocs is all --- .../adoc/modules/commandlog/pages/about.adoc | 120 +++++++++++----- .../commandsubscriber-vs-executionsubscriber.adoc | 18 +++ .../commandlog/applib/app/CommandLogMenu.java | 3 + .../commandlog/applib/dom/CommandLogEntry.java | 2 + .../applib/dom/CommandLogEntryRepository.java | 5 + .../commandlog/applib/dom/ReplayState.java | 9 ++ .../dom/mixins/CommandLogEntry_childCommands.java | 3 + .../mixins/CommandLogEntry_openResultObject.java | 3 + .../mixins/CommandLogEntry_siblingCommands.java | 3 + .../excel/applib/CausewayModuleExtExcelApplib.java | 2 +- .../excel/applib/service/ExcelServiceDefault.java | 9 +- .../DemoFixture_extending_ExcelFixture2.java | 5 +- .../adoc/modules/executionlog/pages/about.adoc | 155 ++++++++++++++++++++- .../CausewayModuleExtExecutionLogApplib.java | 3 + .../executionlog/applib/app/ExecutionLogMenu.java | 3 + .../executionlog/applib/dom/ExecutionLogEntry.java | 2 + .../applib/dom/ExecutionLogEntryRepository.java | 2 + .../applib/dom/ExecutionLogEntryType.java | 3 + .../ExecutionLogEntry_siblingExecutions.java | 3 + .../ExecutionSubscriberForExecutionLog.java | 3 + .../adoc/modules/executionoutbox/pages/about.adoc | 25 ++++ .../CausewayModuleExtExecutionOutboxApplib.java | 3 + .../applib/app/ExecutionOutboxMenu.java | 3 + .../applib/dom/ExecutionOutboxEntry.java | 2 + .../applib/dom/ExecutionOutboxEntryRepository.java | 2 + .../applib/dom/ExecutionOutboxEntryType.java | 3 + .../applib/restapi/OutboxEvents.java | 3 + .../applib/restapi/OutboxRestApi.java | 3 + .../ContentMappingServiceForOutboxEvents.java | 3 + .../ExecutionSubscriberForExecutionOutbox.java | 3 + .../ExecutionLogEntry_copyToOutbox.java | 12 ++ .../adoc/modules/audittrail/pages/about.adoc | 74 +++++----- .../audittrail/applib/app/AuditTrailMenu.java | 3 + .../feature/api/ApplicationFeatureChoices.java | 2 + .../ApplicationFeatureViewModel_permissions.java | 4 + .../app/ApplicationOrphanedPermissionManager.java | 4 + ...OrphanedPermissionManager_relocateSelected.java | 4 + .../ApplicationPermissionRepositoryAbstract.java | 4 + .../dom/mixins/ApplicationPermission_allow.java | 4 + .../dom/mixins/ApplicationPermission_changing.java | 4 + .../dom/mixins/ApplicationPermission_delete.java | 4 + .../dom/mixins/ApplicationPermission_feature.java | 4 + .../mixins/ApplicationPermission_updateRole.java | 4 + .../dom/mixins/ApplicationPermission_veto.java | 4 + .../dom/mixins/ApplicationPermission_viewing.java | 4 + .../permission/menu/ApplicationPermissionMenu.java | 4 + .../dom/ApplicationRoleRepositoryAbstract.java | 4 + .../dom/mixins/ApplicationRole_addPermission.java | 4 + .../role/dom/mixins/ApplicationRole_addUser.java | 4 + .../role/dom/mixins/ApplicationRole_delete.java | 4 + .../mixins/ApplicationRole_removePermissions.java | 4 + .../dom/mixins/ApplicationRole_removeUsers.java | 4 + .../mixins/ApplicationRole_updateDescription.java | 4 + .../dom/mixins/ApplicationRole_updateName.java | 4 + .../applib/role/man/ApplicationRoleManager.java | 4 + .../mixins/ApplicationRoleManager_allRoles.java | 4 + .../ApplicationRoleManager_exportAsYaml.java | 4 + .../man/mixins/ApplicationRoleManager_newRole.java | 4 + .../applib/role/menu/ApplicationRoleMenu.java | 4 + .../seed/CausewayAppFeatureRoleAndPermissions.java | 2 + .../CausewayConfigurationRoleAndPermissions.java | 2 + .../CausewayExtAuditTrailRoleAndPermissions.java | 2 +- .../CausewayExtCommandLogRoleAndPermissions.java | 2 +- .../CausewayExtExecutionLogRoleAndPermissions.java | 2 +- ...usewayExtExecutionOutboxRoleAndPermissions.java | 2 +- .../CausewayExtH2ConsoleRoleAndPermissions.java | 2 +- .../CausewayExtSecmanAdminRoleAndPermissions.java | 7 +- ...ewayExtSecmanRegularUserRoleAndPermissions.java | 2 +- .../CausewayExtSessionLogRoleAndPermissions.java | 2 +- ...yPersistenceJdoMetaModelRoleAndPermissions.java | 2 +- .../CausewaySudoImpersonateRoleAndPermissions.java | 4 + ...werRestfulObjectsSwaggerRoleAndPermissions.java | 2 +- .../dom/ApplicationTenancyRepositoryAbstract.java | 4 + .../dom/mixins/ApplicationTenancy_addChild.java | 4 + .../dom/mixins/ApplicationTenancy_addUser.java | 4 + .../dom/mixins/ApplicationTenancy_delete.java | 4 + .../dom/mixins/ApplicationTenancy_removeChild.java | 4 + .../dom/mixins/ApplicationTenancy_removeUser.java | 4 + .../dom/mixins/ApplicationTenancy_updateName.java | 4 + .../dom/mixins/ApplicationTenancy_users.java | 4 + .../fixtures/AbstractTenancyFixtureScript.java | 4 + .../tenancy/man/ApplicationTenancyManager.java | 4 + .../ApplicationTenancyManager_allTenancies.java | 4 + .../ApplicationTenancyManager_newTenancy.java | 4 + .../tenancy/menu/ApplicationTenancyMenu.java | 4 + .../user/contributions/HasUsername_open.java | 4 + .../dom/ApplicationUserRepositoryAbstract.java | 4 + .../user/dom/mixins/ApplicationUser_addRole.java | 4 + .../user/dom/mixins/ApplicationUser_delete.java | 4 + .../user/dom/mixins/ApplicationUser_duplicate.java | 4 + .../user/dom/mixins/ApplicationUser_lock.java | 4 + .../dom/mixins/ApplicationUser_removeRoles.java | 4 + .../dom/mixins/ApplicationUser_resetPassword.java | 4 + .../user/dom/mixins/ApplicationUser_timeZone.java | 4 + .../user/dom/mixins/ApplicationUser_unlock.java | 4 + .../mixins/ApplicationUser_updateAccountType.java | 4 + .../dom/mixins/ApplicationUser_updateAtPath.java | 4 + .../mixins/ApplicationUser_updateEmailAddress.java | 4 + .../mixins/ApplicationUser_updateFaxNumber.java | 4 + .../dom/mixins/ApplicationUser_updateLocale.java | 4 + .../dom/mixins/ApplicationUser_updateName.java | 4 + .../dom/mixins/ApplicationUser_updatePassword.java | 4 + .../mixins/ApplicationUser_updatePhoneNumber.java | 4 + .../dom/mixins/ApplicationUser_updateUsername.java | 4 + ...ApplicationUser_effectiveMemberPermissions.java | 4 + ...ationUser_filterEffectiveMemberPermissions.java | 4 + .../dom/mixins/perms/UserPermissionViewModel.java | 2 + .../applib/user/man/ApplicationUserManager.java | 4 + .../mixins/ApplicationUserManager_allUsers.java | 4 + .../ApplicationUserManager_newDelegateUser.java | 4 + .../ApplicationUserManager_newLocalUser.java | 4 + .../applib/user/menu/ApplicationUserMenu.java | 4 + .../secman/applib/util/RegexReplacer.java | 4 + .../adoc/modules/sessionlog/pages/about.adoc | 26 ++++ .../sessionlog/applib/app/SessionLogMenu.java | 5 +- .../HasUsername_recentSessionsForUser.java | 5 + .../sessionlog/applib/dom/SessionLogEntry.java | 6 + .../applib/dom/SessionLogEntryRepository.java | 2 + .../spiimpl/SessionLogServiceInitializer.java | 10 ++ .../spiimpl/SessionSubscriberForSessionLog.java | 7 +- .../CausewayModuleRestfulObjectsRendering.java | 2 +- 121 files changed, 755 insertions(+), 100 deletions(-) diff --git a/extensions/core/commandlog/adoc/modules/commandlog/pages/about.adoc b/extensions/core/commandlog/adoc/modules/commandlog/pages/about.adoc index f9ad99ca03..a151e2ecf0 100644 --- a/extensions/core/commandlog/adoc/modules/commandlog/pages/about.adoc +++ b/extensions/core/commandlog/adoc/modules/commandlog/pages/about.adoc @@ -4,14 +4,23 @@ :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...] -The _commandlog_ module provides an implementation of xref:refguide:applib:index/services/publishing/spi/CommandSubscriber.adoc[] SPI that persists xref:refguide:applib:index/services/command/Command.adoc[Command]s using either the xref:pjpa:ROOT:about.adoc[JPA/EclipseLink] or xref:pjdo:ROOT:about.adoc[JDO/DataNucleus] object store. -This can be useful for auditing. +The _Command Log_ module provides an implementation of xref:refguide:applib:index/services/publishing/spi/CommandSubscriber.adoc[] SPI that persists xref:refguide:applib:index/services/command/Command.adoc[Command]s using either the xref:pjpa:ROOT:about.adoc[JPA/EclipseLink] or xref:pjdo:ROOT:about.adoc[JDO/DataNucleus] object store. +One use case is to combine with the xref:security:audittrail:about.adoc[] extension. +The _commandlog_ module logs the action invocations or property edits that the end-user makes, while the _audit trail_ logs the resultant changes in state to domain objects. +The two logs are correlated using the xref:refguide:applib:index/services/iactn/Interaction.adoc#getInteractionId_[interactionId] of the owning xref:refguide:applib:index/services/iactn/Interaction.adoc[interaction]. +Another use case is to support (persisted) background commands, whereby actions are not invoked immediately but instead persisted and invoked by a background thread; this is described in the xref:#background-commands[background commands] section below. -include::docs:mavendeps:partial$setup-and-configure-dependencyManagement.adoc[leveloffset=+1] +Sometimes the xref:executionlog:about.adoc[] extension is also configured with or instead of this extension; see the xref:#notes[notes] below to compare and contrast. -In addition, add a section for secman's own BOM: + + +== Setup + +include::docs:mavendeps:partial$setup-and-configure-dependencyManagement.adoc[leveloffset=+2] + +In addition, add a section for _Command Log_'s own BOM: [source,xml,subs="attributes+"] .pom.xml @@ -30,7 +39,7 @@ In addition, add a section for secman's own BOM: ---- [#dependencies] -== Dependencies +=== Dependencies In the webapp module of your application, add the following dependency: @@ -48,7 +57,7 @@ In the webapp module of your application, add the following dependency: [[_update-appmanifest]] -== Update AppManifest +=== Update AppManifest In your application's `AppManifest` (top-level Spring `@Configuration` used to bootstrap the app), import the CommandLog modules. @@ -71,9 +80,9 @@ public class AppManifest { [#configure-properties] -== Configuration Properties +=== Configuration Properties -Add the database schema used by the CommandLog entities to the configuration file: +Add the database schema used by the _Command Log_ entities to the configuration file: [source,yaml] .application.yml @@ -101,6 +110,70 @@ causeway: See xref:refguide:config:sections/causeway.extensions.adoc#causeway.extensions.command-log.publish-policy[causeway.extensions.command-log.publish-policy] configuration property for more details. +[#menubar-layout-xml] +=== menubar.layout.xml + +Once configured, the extension provides a number of menu actions. +You can use `menubars.layout.xml` to arrange these as you see fit. +To get you started, the following fragment adds all of the actions to an "Activity" secondary menu: + +[source,xml] +.menubars.layout.xml +---- +<mb3:secondary> + ... + <mb3:menu> + <mb3:named>Activity</mb3:named> + ... + <mb3:section> + <mb3:named>Commands</mb3:named> + <mb3:serviceAction id="activeCommands" objectType="isis.ext.commandLog.CommandLogMenu"/> + <mb3:serviceAction id="findMostRecent" objectType="isis.ext.commandLog.CommandLogMenu"/> + <mb3:serviceAction id="findCommands" objectType="isis.ext.commandLog.CommandLogMenu"/> + <mb3:serviceAction id="findAll" objectType="isis.ext.commandLog.CommandLogMenu"/> + </mb3:section> + ... + </mb3:menu> +</mb3:secondary> +---- + +[#security-roles] +=== Security Roles + +TODO - v2 + + + + +[#background-commands] +== User Interface + +The extension provides a number of menu actions and contributions. + +The menu actions are as listed in xref:menubar-layout-xml[], above. +They allow the administrator to query the persisted commands. +Typically access to these actions would be restricted, see xref:security-roles[security roles] above. + +The extension also provides these mixins: + +* xref:refguide:extensions:index/commandlog/applib/contributions/Object_recentCommands.adoc[] ++ +This contributes a `recentCommands` collection to each and every domain object. ++ +This can be explicit positioned through the domain class' own xref:userguide:fun:ui.adoc#object-layout[layout file], but this is generally not necessary: it will slot into the tab group in the layout file indicated for unreferenced collections using `<tabGroup unreferencedCollections="true">`. + +* xref:refguide:extensions:index/commandlog/applib/contributions/HasUsername_recentCommandsByUser.adoc[] ++ +This contributes the `recentCommandsByUser` collection to any domain object that implements the xref:refguide:applib:index/mixins/security/HasUsername.adoc[] interface. ++ +Most notably, this is xref:security:secman:about.adoc[] extension's xref:refguide:extensions:index/secman/applib/user/dom/ApplicationUser.adoc[] entity that represents a logged-on user. +It is also supported by xref:security:sessionlog:about.adoc + +* xref:refguide:extensions:index/commandlog/applib/contributions/HasInteractionId_commandLogEntry.adoc[] + + + +[#background-commands] == Background Commands Sometimes we might want to execute an action not immediately in the current users's thread of control, but instead to perform it in the background; for example any long-running process. @@ -217,43 +290,20 @@ If you don't want to use this functionality and want to exclude quartz, then add +[#notes] == Notes -Conceptually a *command* represents the _intention_ to execute an action or to edit a property ("before" the change), while an *interaction execution* represents the actual execution itself ("after" the change). - -The xref:refguide:applib:index/services/publishing/spi/CommandSubscriber.adoc[] SPI and xref:refguide:applib:index/services/publishing/spi/ExecutionSubscriber.adoc[] SPI allow either to be subscribed to. -From an auditing perspective, their behaviour is quite similar: - -* even though a command represents the _intention_ to invoke an action, its xref:refguide:applib:index/services/publishing/spi/CommandSubscriber.adoc[CommandSubscriber] SPI is only called once the action/property edit has been completed. - -* the xref:refguide:applib:index/services/publishing/spi/ExecutionSubscriber.adoc[] is called as soon as the action has completed. -In most interactions there will only be a single action called within the interaction, hence these two subscribers will be called at almost the same time with very similar payloads. - -However, there can be some subtle differences: - -* the xref:refguide:applib:index/services/wrapper/WrapperFactory.adoc[] service allows actions to be invoked "as if" through the user interface. -Therefore one action can execute another can execute another, creating a nested call graph of executions. -+ -The xref:refguide:applib:index/services/publishing/spi/ExecutionSubscriber.adoc[] is called after each and every execution as it completes, so will be called several times. - -* In contrast, the xref:refguide:applib:index/services/publishing/spi/CommandSubscriber.adoc[CommandSubscriber] is called only once, for the top-level (outermost) action. - +include::partial$commandsubscriber-vs-executionsubscriber.adoc[] == See also +* xref:refguide:applib:index/services/iactn/Interaction.adoc[interaction] +* xref:refguide:applib:index/services/iactnlayer/InteractionService.adoc[]. * xref:refguide:applib:index/services/wrapper/WrapperFactory.adoc[] service * xref:refguide:extensions:index/commandlog/applib/dom/BackgroundService.adoc[BackgroundService] service * xref:refguide:applib:index/services/publishing/spi/CommandSubscriber.adoc[] SPI * xref:refguide:applib:index/services/publishing/spi/ExecutionSubscriber.adoc[] SPI * xref:executionlog:about.adoc[] extension - - - - - - - - diff --git a/extensions/core/commandlog/adoc/modules/commandlog/partials/commandsubscriber-vs-executionsubscriber.adoc b/extensions/core/commandlog/adoc/modules/commandlog/partials/commandsubscriber-vs-executionsubscriber.adoc new file mode 100644 index 0000000000..3c976b2079 --- /dev/null +++ b/extensions/core/commandlog/adoc/modules/commandlog/partials/commandsubscriber-vs-executionsubscriber.adoc @@ -0,0 +1,18 @@ +Conceptually a *command* represents the _intention_ to execute an action or to edit a property ("before" the change), while an *interaction execution* represents the actual execution itself ("after" the change). + +The xref:refguide:applib:index/services/publishing/spi/CommandSubscriber.adoc[] SPI and xref:refguide:applib:index/services/publishing/spi/ExecutionSubscriber.adoc[] SPI allow either to be subscribed to. +From an auditing perspective, their behaviour is quite similar: + +* even though a command represents the _intention_ to invoke an action, its xref:refguide:applib:index/services/publishing/spi/CommandSubscriber.adoc[CommandSubscriber] SPI is only called once the action/property edit has been completed. + +* the xref:refguide:applib:index/services/publishing/spi/ExecutionSubscriber.adoc[] is called as soon as the action has completed. +In most interactions there will only be a single action called within the interaction, hence these two subscribers will be called at almost the same time with very similar payloads. + +However, there can be some subtle differences: + +* the xref:refguide:applib:index/services/wrapper/WrapperFactory.adoc[] service allows actions to be invoked "as if" through the user interface. +Therefore one action can execute another can execute another, creating a nested call graph of executions. ++ +The xref:refguide:applib:index/services/publishing/spi/ExecutionSubscriber.adoc[] is called after each and every execution as it completes, so will be called several times. + +* In contrast, the xref:refguide:applib:index/services/publishing/spi/CommandSubscriber.adoc[CommandSubscriber] is called only once, for the top-level (outermost) action. diff --git a/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/app/CommandLogMenu.java b/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/app/CommandLogMenu.java index 28a42bcc64..25df5abafb 100644 --- a/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/app/CommandLogMenu.java +++ b/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/app/CommandLogMenu.java @@ -45,6 +45,9 @@ import org.apache.causeway.extensions.commandlog.applib.dom.CommandLogEntryRepos import lombok.RequiredArgsConstructor; /** + * This service exposes a set of menu actions to search and list {@link CommandLogEntry command}s, by default under + * the "Activity" secondary menu. + * * @since 2.0 {@index} */ @Named(CommandLogMenu.LOGICAL_TYPE_NAME) diff --git a/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/CommandLogEntry.java b/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/CommandLogEntry.java index 297653ee9f..ebe5361a66 100644 --- a/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/CommandLogEntry.java +++ b/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/CommandLogEntry.java @@ -70,6 +70,8 @@ import lombok.val; * Note that this class doesn't subclass from {@link Command} ({@link Command} * is not an interface), but it does implement {@link HasCommandDto}, providing access to * {@link CommandDto}, a serialized representation of the {@link Command}. + * + * @since 2.x {@index} */ @Named(CommandLogEntry.LOGICAL_TYPE_NAME) @DomainObject( diff --git a/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/CommandLogEntryRepository.java b/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/CommandLogEntryRepository.java index 8cb4f9f9e0..d8a8267221 100644 --- a/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/CommandLogEntryRepository.java +++ b/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/CommandLogEntryRepository.java @@ -51,6 +51,11 @@ import org.apache.causeway.schema.common.v2.InteractionType; import lombok.Getter; import lombok.val; +/** + * Provides supporting functionality for querying {@link CommandLogEntry command log entry} entities. + * + * @since 2.0 {@index} + */ public abstract class CommandLogEntryRepository<C extends CommandLogEntry> { public static class NotFoundException extends RecoverableException { diff --git a/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/ReplayState.java b/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/ReplayState.java index b29d7887e5..30a137e1aa 100644 --- a/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/ReplayState.java +++ b/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/ReplayState.java @@ -18,6 +18,15 @@ */ package org.apache.causeway.extensions.commandlog.applib.dom; +/** + * Curently unused. + * + * <p> + * This enum to support the (incubating) <i>Command Replay</i> extension. + * </p> + * + * @since 2.x {@index} + */ public enum ReplayState { /** * As used on primary system. diff --git a/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/mixins/CommandLogEntry_childCommands.java b/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/mixins/CommandLogEntry_childCommands.java index c6bc1b29fa..424cd30ea1 100644 --- a/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/mixins/CommandLogEntry_childCommands.java +++ b/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/mixins/CommandLogEntry_childCommands.java @@ -30,6 +30,9 @@ import org.apache.causeway.extensions.commandlog.applib.dom.CommandLogEntryRepos import lombok.RequiredArgsConstructor; +/** + * @since 2.x {@index} + */ @Collection( domainEvent = CommandLogEntry_childCommands.CollectionDomainEvent.class ) diff --git a/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/mixins/CommandLogEntry_openResultObject.java b/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/mixins/CommandLogEntry_openResultObject.java index 05b1afe209..8df411acc1 100644 --- a/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/mixins/CommandLogEntry_openResultObject.java +++ b/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/mixins/CommandLogEntry_openResultObject.java @@ -32,6 +32,9 @@ import org.apache.causeway.extensions.commandlog.applib.dom.CommandLogEntry; import lombok.RequiredArgsConstructor; import lombok.val; +/** + * @since 2.x {@index} + */ @Action( semantics = SemanticsOf.SAFE, domainEvent = CommandLogEntry_openResultObject.ActionDomainEvent.class diff --git a/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/mixins/CommandLogEntry_siblingCommands.java b/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/mixins/CommandLogEntry_siblingCommands.java index a6ff73836c..0c1bf8f521 100644 --- a/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/mixins/CommandLogEntry_siblingCommands.java +++ b/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/mixins/CommandLogEntry_siblingCommands.java @@ -30,6 +30,9 @@ import org.apache.causeway.extensions.commandlog.applib.dom.CommandLogEntryRepos import lombok.RequiredArgsConstructor; +/** + * @since 2.x {@index} + */ @Collection( domainEvent = CommandLogEntry_siblingCommands.CollectionDomainEvent.class ) diff --git a/extensions/core/excel/applib/src/main/java/org/apache/causeway/extensions/excel/applib/CausewayModuleExtExcelApplib.java b/extensions/core/excel/applib/src/main/java/org/apache/causeway/extensions/excel/applib/CausewayModuleExtExcelApplib.java index 9c3329875a..3e95c37552 100644 --- a/extensions/core/excel/applib/src/main/java/org/apache/causeway/extensions/excel/applib/CausewayModuleExtExcelApplib.java +++ b/extensions/core/excel/applib/src/main/java/org/apache/causeway/extensions/excel/applib/CausewayModuleExtExcelApplib.java @@ -32,6 +32,6 @@ import org.apache.causeway.extensions.excel.applib.service.ExcelServiceDefault; }) public class CausewayModuleExtExcelApplib { - public static final String NAMESPACE = "causeway.sub.excel"; + public static final String NAMESPACE = "causeway.ext.excel"; } diff --git a/extensions/core/excel/applib/src/main/java/org/apache/causeway/extensions/excel/applib/service/ExcelServiceDefault.java b/extensions/core/excel/applib/src/main/java/org/apache/causeway/extensions/excel/applib/service/ExcelServiceDefault.java index 225e1eda7d..e5c5bef3b5 100644 --- a/extensions/core/excel/applib/src/main/java/org/apache/causeway/extensions/excel/applib/service/ExcelServiceDefault.java +++ b/extensions/core/excel/applib/src/main/java/org/apache/causeway/extensions/excel/applib/service/ExcelServiceDefault.java @@ -28,6 +28,7 @@ import javax.annotation.Priority; import javax.inject.Inject; import javax.inject.Named; +import org.apache.causeway.extensions.excel.applib.*; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.springframework.beans.factory.annotation.Qualifier; @@ -37,18 +38,16 @@ import org.apache.causeway.applib.annotation.PriorityPrecedence; import org.apache.causeway.applib.services.inject.ServiceInjector; import org.apache.causeway.applib.value.Blob; import org.apache.causeway.commons.internal.collections._Lists; -import org.apache.causeway.extensions.excel.applib.ExcelService; -import org.apache.causeway.extensions.excel.applib.Mode; -import org.apache.causeway.extensions.excel.applib.WorksheetContent; -import org.apache.causeway.extensions.excel.applib.WorksheetSpec; @Service -@Named("causeway.sub.excel.ExcelServiceDefault") +@Named(ExcelServiceDefault.LOGICAL_TYPE_NAME) @Priority(PriorityPrecedence.MIDPOINT) @Qualifier("Default") public class ExcelServiceDefault implements ExcelService { + static final String LOGICAL_TYPE_NAME = CausewayModuleExtExcelApplib.NAMESPACE + ".ExcelServiceDefault"; + private _ExcelServiceHelper helper; @PostConstruct diff --git a/extensions/core/excel/fixture/src/main/java/org/apache/causeway/extensions/excel/fixtures/demoapp/demomodule/fixturescripts/DemoFixture_extending_ExcelFixture2.java b/extensions/core/excel/fixture/src/main/java/org/apache/causeway/extensions/excel/fixtures/demoapp/demomodule/fixturescripts/DemoFixture_extending_ExcelFixture2.java index 4c0fe67532..aaa1891f68 100644 --- a/extensions/core/excel/fixture/src/main/java/org/apache/causeway/extensions/excel/fixtures/demoapp/demomodule/fixturescripts/DemoFixture_extending_ExcelFixture2.java +++ b/extensions/core/excel/fixture/src/main/java/org/apache/causeway/extensions/excel/fixtures/demoapp/demomodule/fixturescripts/DemoFixture_extending_ExcelFixture2.java @@ -22,6 +22,7 @@ import javax.inject.Named; import org.apache.causeway.applib.annotation.DomainObject; import org.apache.causeway.commons.internal.resources._Resources; +import org.apache.causeway.extensions.excel.applib.CausewayModuleExtExcelApplib; import org.apache.causeway.extensions.excel.applib.Mode; import org.apache.causeway.extensions.excel.applib.WorksheetSpec; import org.apache.causeway.extensions.excel.fixtures.demoapp.demomodule.fixturehandlers.demotodoitem.DemoToDoItemRowHandler2; @@ -30,10 +31,12 @@ import org.apache.causeway.extensions.excel.testing.ExcelFixture2; import lombok.Getter; import lombok.Setter; -@Named("causeway.sub.excel.DemoFixture_extending_ExcelFixture2") +@Named(DemoFixture_extending_ExcelFixture2.LOGICAL_TYPE_NAME) @DomainObject public class DemoFixture_extending_ExcelFixture2 extends ExcelFixture2 { + static final String LOGICAL_TYPE_NAME = CausewayModuleExtExcelApplib.NAMESPACE + ".DemoFixture_extending_ExcelFixture2"; + public DemoFixture_extending_ExcelFixture2(){ this.resourceName = "ToDoItems.xlsx"; } diff --git a/extensions/core/executionlog/adoc/modules/executionlog/pages/about.adoc b/extensions/core/executionlog/adoc/modules/executionlog/pages/about.adoc index 0f81434e63..4b9eb5cc94 100644 --- a/extensions/core/executionlog/adoc/modules/executionlog/pages/about.adoc +++ b/extensions/core/executionlog/adoc/modules/executionlog/pages/about.adoc @@ -4,9 +4,160 @@ :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...] -The _executionlog_ module provides an implementation of xref:refguide:applib:index/services/publishing/spi/ExecutionSubscriber.adoc[ExecutionSubscriber] that persists xref:refguide:applib:index/services/iactn/Execution.adoc[Execution]s using either the xref:pjpa:ROOT:about.adoc[JPA/EclipseLink] or xref:pjdo:ROOT:about.adoc[JDO/DataNucleus] object store. +The _Execution Log_ module provides an implementation of xref:refguide:applib:index/services/publishing/spi/ExecutionSubscriber.adoc[ExecutionSubscriber] that persists xref:refguide:applib:index/services/iactn/Execution.adoc[Execution]s using either the xref:pjpa:ROOT:about.adoc[JPA/EclipseLink] or xref:pjdo:ROOT:about.adoc[JDO/DataNucleus] object store. -WARNING: TODO: v2 - to write up... +One use case is to combine with the xref:security:audittrail:about.adoc[] extension. +The _commandlog_ module logs the action invocations or property edits that the end-user makes, while the _audit trail_ logs the resultant changes in state to domain objects. +The two logs are correlated using the xref:refguide:applib:index/services/iactn/Interaction.adoc#getInteractionId_[interactionId] of the owning xref:refguide:applib:index/services/iactn/Interaction.adoc[interaction]. +Sometimes the xref:commandlog:about.adoc[] extension is also configured with or instead of this extension; see the xref:#notes[notes] below to compare and contrast. + + +== Setup + +include::docs:mavendeps:partial$setup-and-configure-dependencyManagement.adoc[leveloffset=+2] + +In addition, add a section for secman's own BOM: + +[source,xml,subs="attributes+"] +.pom.xml +---- +<dependencyManagement> + <dependencies> + <dependency> + <groupId>org.apache.causeway.extensions</groupId> + <artifactId>causeway-extensions-executionlog</artifactId> + <scope>import</scope> + <type>pom</type> + <version>{page-causewayrel}</version> + </dependency> + </dependencies> +</dependencyManagement> +---- + +[#dependencies] +=== Dependencies + +In the webapp module of your application, add the following dependency: + +[source,xml] +.pom.xml +---- +<dependencies> + <dependency> + <groupId>org.apache.causeway.extensions</groupId> + <artifactId>causeway-extensions-executionlog-persistence-XXX</artifactId> <!--.--> + </dependency> +</dependencies> +---- +<.> specify either `causeway-extensions-executionlog-persistence-jpa` or `causeway-extensions-executionlog-persistence-jdo`, as required + +[[_update-appmanifest]] +=== Update AppManifest + + +In your application's `AppManifest` (top-level Spring `@Configuration` used to bootstrap the app), import the CommandLog modules. +You will also need to import the fixture module; SecMan uses fixture scripts to seed its entities: + +[source,java] +.AppManifest.java +---- +@Configuration +@Import({ + ... + CausewayModuleExtCommandLogPersistenceXxx.class, // <.> + ... +}) +public class AppManifest { +} +---- + +<.> specify either `CausewayModuleExtCommandLogPersistenceJdo` or `CausewayModuleExtCommandLogPersistenceJpa`, as required + + +[#configure-properties] +=== Configuration Properties + +Add the database schema used by the _Execution Log_ entities to the configuration file: + +[source,yaml] +.application.yml +---- +causeway: + persistence: + schema: + auto-create-schemas: causewayExtExecutionLog +---- + +This extension currently does not though define any configuration properties of its own. + + +== menubar.layout.xml + +Once configured, the extension provides a number of menu actions. +You can use `menubars.layout.xml` to arrange these as you see fit. +To get you started, the following fragment adds all of the actions to an "Activity" secondary menu: + +[source,xml] +.menubars.layout.xml +---- +<mb3:secondary> + ... + <mb3:menu> + <mb3:named>Activity</mb3:named> + <mb3:section> + <mb3:named>Sessions</mb3:named> + <mb3:serviceAction id="activeSessions" objectType="isis.ext.sessionLog.SessionLogMenu"/> + <mb3:serviceAction id="findSessions" objectType="isis.ext.sessionLog.SessionLogMenu"/> + </mb3:section> + <mb3:section> + <mb3:named>Commands</mb3:named> + <mb3:serviceAction id="activeCommands" objectType="isis.ext.commandLog.CommandLogMenu"/> + <mb3:serviceAction id="findMostRecent" objectType="isis.ext.commandLog.CommandLogMenu"/> + <mb3:serviceAction id="findCommands" objectType="isis.ext.commandLog.CommandLogMenu"/> + <mb3:serviceAction id="findAll" objectType="isis.ext.commandLog.CommandLogMenu"/> + </mb3:section> + <mb3:section> + <mb3:named>Execution Log</mb3:named> + <mb3:serviceAction id="findMostRecent" objectType="isis.ext.executionLog.ExecutionLogMenu"/> + <mb3:serviceAction id="findExecutions" objectType="isis.ext.executionLog.ExecutionLogMenu"/> + <mb3:serviceAction id="findAll" objectType="isis.ext.executionLog.ExecutionLogMenu"/> + </mb3:section> + <mb3:section> + <mb3:named>Audit Trail</mb3:named> + <mb3:serviceAction id="findMostRecent" objectType="isis.ext.auditTrail.AuditTrailMenu"/> + <mb3:serviceAction id="findAuditEntries" objectType="isis.ext.auditTrail.AuditTrailMenu"/> + <mb3:serviceAction id="findAll" objectType="isis.ext.auditTrail.AuditTrailMenu"/> + </mb3:section> + <mb3:section> + <mb3:named>Execution Outbox</mb3:named> + <mb3:serviceAction id="findOldest" objectType="isis.ext.executionOutbox.ExecutionOutboxMenu"/> + <mb3:serviceAction id="findAll" objectType="isis.ext.executionOutbox.ExecutionOutboxMenu"/> + </mb3:section> + </mb3:menu> +</mb3:secondary> +---- + + +== Security Roles + +TODO - v2 + +== Contributions + + + +[#notes] +== Notes + +include::commandlog:partial$commandsubscriber-vs-executionsubscriber.adoc[] + +== See also + +* xref:refguide:applib:index/services/iactn/Interaction.adoc[interaction] +* xref:refguide:applib:index/services/iactnlayer/InteractionService.adoc[]. +* xref:refguide:applib:index/services/publishing/spi/CommandSubscriber.adoc[] SPI +* xref:refguide:applib:index/services/publishing/spi/ExecutionSubscriber.adoc[] SPI +* xref:commandlog:about.adoc[] extension diff --git a/extensions/core/executionlog/applib/src/main/java/org/apache/causeway/extensions/executionlog/applib/CausewayModuleExtExecutionLogApplib.java b/extensions/core/executionlog/applib/src/main/java/org/apache/causeway/extensions/executionlog/applib/CausewayModuleExtExecutionLogApplib.java index 196b1cb845..416bd00011 100644 --- a/extensions/core/executionlog/applib/src/main/java/org/apache/causeway/extensions/executionlog/applib/CausewayModuleExtExecutionLogApplib.java +++ b/extensions/core/executionlog/applib/src/main/java/org/apache/causeway/extensions/executionlog/applib/CausewayModuleExtExecutionLogApplib.java @@ -30,6 +30,9 @@ import org.apache.causeway.extensions.executionlog.applib.dom.mixins.ExecutionLo import org.apache.causeway.extensions.executionlog.applib.spiimpl.ExecutionSubscriberForExecutionLog; import org.apache.causeway.testing.fixtures.applib.modules.ModuleWithFixtures; +/** + * @since 2.0 {@index} + */ @Configuration @Import({ // @DomainService's diff --git a/extensions/core/executionlog/applib/src/main/java/org/apache/causeway/extensions/executionlog/applib/app/ExecutionLogMenu.java b/extensions/core/executionlog/applib/src/main/java/org/apache/causeway/extensions/executionlog/applib/app/ExecutionLogMenu.java index d8d3fc04c6..746ac4855e 100644 --- a/extensions/core/executionlog/applib/src/main/java/org/apache/causeway/extensions/executionlog/applib/app/ExecutionLogMenu.java +++ b/extensions/core/executionlog/applib/src/main/java/org/apache/causeway/extensions/executionlog/applib/app/ExecutionLogMenu.java @@ -44,6 +44,9 @@ import org.apache.causeway.extensions.executionlog.applib.dom.ExecutionLogEntryR import lombok.RequiredArgsConstructor; /** + * This service exposes a set of menu actions to search and list {@link ExecutionLogEntry execution}s, by default under + * the "Activity" secondary menu. + * * @since 2.0 {@index} */ @Named(ExecutionLogMenu.LOGICAL_TYPE_NAME) diff --git a/extensions/core/executionlog/applib/src/main/java/org/apache/causeway/extensions/executionlog/applib/dom/ExecutionLogEntry.java b/extensions/core/executionlog/applib/src/main/java/org/apache/causeway/extensions/executionlog/applib/dom/ExecutionLogEntry.java index 077c8e7bdd..f6adad4c50 100644 --- a/extensions/core/executionlog/applib/src/main/java/org/apache/causeway/extensions/executionlog/applib/dom/ExecutionLogEntry.java +++ b/extensions/core/executionlog/applib/src/main/java/org/apache/causeway/extensions/executionlog/applib/dom/ExecutionLogEntry.java @@ -74,6 +74,8 @@ import lombok.experimental.UtilityClass; * * Note that this class implements {@link HasInteractionDto}, providing access to * {@link org.apache.causeway.applib.services.iactn.Interaction}, a serialized representation containing the {@link org.apache.causeway.applib.services.iactn.Execution}. + * + * @since 2.0 {@index} */ @Named(ExecutionLogEntry.LOGICAL_TYPE_NAME) @DomainObject( diff --git a/extensions/core/executionlog/applib/src/main/java/org/apache/causeway/extensions/executionlog/applib/dom/ExecutionLogEntryRepository.java b/extensions/core/executionlog/applib/src/main/java/org/apache/causeway/extensions/executionlog/applib/dom/ExecutionLogEntryRepository.java index 35d73a4f1f..fbe3bf647a 100644 --- a/extensions/core/executionlog/applib/src/main/java/org/apache/causeway/extensions/executionlog/applib/dom/ExecutionLogEntryRepository.java +++ b/extensions/core/executionlog/applib/src/main/java/org/apache/causeway/extensions/executionlog/applib/dom/ExecutionLogEntryRepository.java @@ -45,6 +45,8 @@ import lombok.val; /** * Provides supporting functionality for querying and persisting * {@link ExecutionLogEntry command} entities. + * + * @since 2.0 {@index} */ public abstract class ExecutionLogEntryRepository<E extends ExecutionLogEntry> { diff --git a/extensions/core/executionlog/applib/src/main/java/org/apache/causeway/extensions/executionlog/applib/dom/ExecutionLogEntryType.java b/extensions/core/executionlog/applib/src/main/java/org/apache/causeway/extensions/executionlog/applib/dom/ExecutionLogEntryType.java index 1e8db89c83..dfc8630dd3 100644 --- a/extensions/core/executionlog/applib/src/main/java/org/apache/causeway/extensions/executionlog/applib/dom/ExecutionLogEntryType.java +++ b/extensions/core/executionlog/applib/src/main/java/org/apache/causeway/extensions/executionlog/applib/dom/ExecutionLogEntryType.java @@ -18,6 +18,9 @@ */ package org.apache.causeway.extensions.executionlog.applib.dom; +/** + * @since 2.0 {@index} + */ public enum ExecutionLogEntryType { ACTION_INVOCATION, PROPERTY_EDIT; diff --git a/extensions/core/executionlog/applib/src/main/java/org/apache/causeway/extensions/executionlog/applib/dom/mixins/ExecutionLogEntry_siblingExecutions.java b/extensions/core/executionlog/applib/src/main/java/org/apache/causeway/extensions/executionlog/applib/dom/mixins/ExecutionLogEntry_siblingExecutions.java index a5bb0774ac..29c29ffebf 100644 --- a/extensions/core/executionlog/applib/src/main/java/org/apache/causeway/extensions/executionlog/applib/dom/mixins/ExecutionLogEntry_siblingExecutions.java +++ b/extensions/core/executionlog/applib/src/main/java/org/apache/causeway/extensions/executionlog/applib/dom/mixins/ExecutionLogEntry_siblingExecutions.java @@ -32,6 +32,9 @@ import org.apache.causeway.extensions.executionlog.applib.dom.ExecutionLogEntryR import lombok.RequiredArgsConstructor; import lombok.val; +/** + * @since 2.0 {@index} + */ @Collection( domainEvent = ExecutionLogEntry_siblingExecutions.CollectionDomainEvent.class ) diff --git a/extensions/core/executionlog/applib/src/main/java/org/apache/causeway/extensions/executionlog/applib/spiimpl/ExecutionSubscriberForExecutionLog.java b/extensions/core/executionlog/applib/src/main/java/org/apache/causeway/extensions/executionlog/applib/spiimpl/ExecutionSubscriberForExecutionLog.java index df90ee0c43..eaf919dbca 100644 --- a/extensions/core/executionlog/applib/src/main/java/org/apache/causeway/extensions/executionlog/applib/spiimpl/ExecutionSubscriberForExecutionLog.java +++ b/extensions/core/executionlog/applib/src/main/java/org/apache/causeway/extensions/executionlog/applib/spiimpl/ExecutionSubscriberForExecutionLog.java @@ -28,6 +28,9 @@ import org.apache.causeway.extensions.executionlog.applib.dom.ExecutionLogEntryR import lombok.RequiredArgsConstructor; +/** + * @since 2.0 {@index} + */ @Service @RequiredArgsConstructor public class ExecutionSubscriberForExecutionLog implements ExecutionSubscriber { diff --git a/extensions/core/executionoutbox/adoc/modules/executionoutbox/pages/about.adoc b/extensions/core/executionoutbox/adoc/modules/executionoutbox/pages/about.adoc index 18fca21305..17bdd9f080 100644 --- a/extensions/core/executionoutbox/adoc/modules/executionoutbox/pages/about.adoc +++ b/extensions/core/executionoutbox/adoc/modules/executionoutbox/pages/about.adoc @@ -15,3 +15,28 @@ Once processed (eg published to a message bus), the client then uses the same RE WARNING: TODO: v2 - to write up... + + +== menubar.layout.xml + +Once configured, the extension provides a number of menu actions. +You can use `menubars.layout.xml` to arrange these as you see fit. +To get you started, the following fragment adds all of the actions to an "Activity" secondary menu: + +[source,xml] +.menubars.layout.xml +---- +<mb3:secondary> + ... + <mb3:menu> + <mb3:named>Activity</mb3:named> + ... + <mb3:section> + <mb3:named>Execution Outbox</mb3:named> + <mb3:serviceAction id="findOldest" objectType="isis.ext.executionOutbox.ExecutionOutboxMenu"/> + <mb3:serviceAction id="findAll" objectType="isis.ext.executionOutbox.ExecutionOutboxMenu"/> + </mb3:section> + ... + </mb3:menu> +</mb3:secondary> +---- diff --git a/extensions/core/executionoutbox/applib/src/main/java/org/apache/causeway/extensions/executionoutbox/applib/CausewayModuleExtExecutionOutboxApplib.java b/extensions/core/executionoutbox/applib/src/main/java/org/apache/causeway/extensions/executionoutbox/applib/CausewayModuleExtExecutionOutboxApplib.java index 300cfa3db3..14ef177c9e 100644 --- a/extensions/core/executionoutbox/applib/src/main/java/org/apache/causeway/extensions/executionoutbox/applib/CausewayModuleExtExecutionOutboxApplib.java +++ b/extensions/core/executionoutbox/applib/src/main/java/org/apache/causeway/extensions/executionoutbox/applib/CausewayModuleExtExecutionOutboxApplib.java @@ -27,6 +27,9 @@ import org.apache.causeway.extensions.executionoutbox.applib.restapi.OutboxRestA import org.apache.causeway.extensions.executionoutbox.applib.spiimpl.ContentMappingServiceForOutboxEvents; import org.apache.causeway.extensions.executionoutbox.applib.spiimpl.ExecutionSubscriberForExecutionOutbox; +/** + * @since 2.0 {@index} + */ @Configuration @Import({ // @DomainService's diff --git a/extensions/core/executionoutbox/applib/src/main/java/org/apache/causeway/extensions/executionoutbox/applib/app/ExecutionOutboxMenu.java b/extensions/core/executionoutbox/applib/src/main/java/org/apache/causeway/extensions/executionoutbox/applib/app/ExecutionOutboxMenu.java index 1b155bb2d8..d319991081 100644 --- a/extensions/core/executionoutbox/applib/src/main/java/org/apache/causeway/extensions/executionoutbox/applib/app/ExecutionOutboxMenu.java +++ b/extensions/core/executionoutbox/applib/src/main/java/org/apache/causeway/extensions/executionoutbox/applib/app/ExecutionOutboxMenu.java @@ -41,6 +41,9 @@ import org.apache.causeway.extensions.executionoutbox.applib.dom.ExecutionOutbox import lombok.RequiredArgsConstructor; /** + * This service exposes a set of menu actions to search and list {@link ExecutionOutboxEntry execution}s in the outbox, + * by default under the "Activity" secondary menu. + * * @since 2.0 {@index} */ @Named(ExecutionOutboxMenu.LOGICAL_TYPE_NAME) diff --git a/extensions/core/executionoutbox/applib/src/main/java/org/apache/causeway/extensions/executionoutbox/applib/dom/ExecutionOutboxEntry.java b/extensions/core/executionoutbox/applib/src/main/java/org/apache/causeway/extensions/executionoutbox/applib/dom/ExecutionOutboxEntry.java index c924ebcfd4..cbe93c5747 100644 --- a/extensions/core/executionoutbox/applib/src/main/java/org/apache/causeway/extensions/executionoutbox/applib/dom/ExecutionOutboxEntry.java +++ b/extensions/core/executionoutbox/applib/src/main/java/org/apache/causeway/extensions/executionoutbox/applib/dom/ExecutionOutboxEntry.java @@ -76,6 +76,8 @@ import lombok.experimental.UtilityClass; * * Note that this class implements {@link HasInteractionDto}, providing access to * {@link org.apache.causeway.applib.services.iactn.Interaction}, a serialized representation containing the {@link Execution}. + * + * @since 2.0 {@index} */ @Named(ExecutionOutboxEntry.LOGICAL_TYPE_NAME) @DomainObject( diff --git a/extensions/core/executionoutbox/applib/src/main/java/org/apache/causeway/extensions/executionoutbox/applib/dom/ExecutionOutboxEntryRepository.java b/extensions/core/executionoutbox/applib/src/main/java/org/apache/causeway/extensions/executionoutbox/applib/dom/ExecutionOutboxEntryRepository.java index 27504a7ac3..845665039f 100644 --- a/extensions/core/executionoutbox/applib/src/main/java/org/apache/causeway/extensions/executionoutbox/applib/dom/ExecutionOutboxEntryRepository.java +++ b/extensions/core/executionoutbox/applib/src/main/java/org/apache/causeway/extensions/executionoutbox/applib/dom/ExecutionOutboxEntryRepository.java @@ -43,6 +43,8 @@ import lombok.Getter; /** * Provides supporting functionality for querying and persisting * {@link ExecutionOutboxEntry command} entities. + * + * @since 2.0 {@index} */ public abstract class ExecutionOutboxEntryRepository<E extends ExecutionOutboxEntry> { diff --git a/extensions/core/executionoutbox/applib/src/main/java/org/apache/causeway/extensions/executionoutbox/applib/dom/ExecutionOutboxEntryType.java b/extensions/core/executionoutbox/applib/src/main/java/org/apache/causeway/extensions/executionoutbox/applib/dom/ExecutionOutboxEntryType.java index 91608a608f..8959c05e6c 100644 --- a/extensions/core/executionoutbox/applib/src/main/java/org/apache/causeway/extensions/executionoutbox/applib/dom/ExecutionOutboxEntryType.java +++ b/extensions/core/executionoutbox/applib/src/main/java/org/apache/causeway/extensions/executionoutbox/applib/dom/ExecutionOutboxEntryType.java @@ -18,6 +18,9 @@ */ package org.apache.causeway.extensions.executionoutbox.applib.dom; +/** + * @since 2.0 {@index} + */ public enum ExecutionOutboxEntryType { ACTION_INVOCATION, PROPERTY_EDIT; diff --git a/extensions/core/executionoutbox/applib/src/main/java/org/apache/causeway/extensions/executionoutbox/applib/restapi/OutboxEvents.java b/extensions/core/executionoutbox/applib/src/main/java/org/apache/causeway/extensions/executionoutbox/applib/restapi/OutboxEvents.java index c67da893c8..3c483e573f 100644 --- a/extensions/core/executionoutbox/applib/src/main/java/org/apache/causeway/extensions/executionoutbox/applib/restapi/OutboxEvents.java +++ b/extensions/core/executionoutbox/applib/src/main/java/org/apache/causeway/extensions/executionoutbox/applib/restapi/OutboxEvents.java @@ -43,6 +43,9 @@ import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; +/** + * @since 2.0 {@index} + */ @XmlRootElement @XmlType( propOrder = { diff --git a/extensions/core/executionoutbox/applib/src/main/java/org/apache/causeway/extensions/executionoutbox/applib/restapi/OutboxRestApi.java b/extensions/core/executionoutbox/applib/src/main/java/org/apache/causeway/extensions/executionoutbox/applib/restapi/OutboxRestApi.java index f9fb9a134b..61645f7314 100644 --- a/extensions/core/executionoutbox/applib/src/main/java/org/apache/causeway/extensions/executionoutbox/applib/restapi/OutboxRestApi.java +++ b/extensions/core/executionoutbox/applib/src/main/java/org/apache/causeway/extensions/executionoutbox/applib/restapi/OutboxRestApi.java @@ -39,6 +39,9 @@ import org.apache.causeway.extensions.executionoutbox.applib.spiimpl.ContentMapp import lombok.RequiredArgsConstructor; import lombok.val; +/** + * @since 2.0 {@index} + */ @Named(OutboxRestApi.LOGICAL_TYPE_NAME) @DomainService(nature = NatureOfService.REST) @RequiredArgsConstructor diff --git a/extensions/core/executionoutbox/applib/src/main/java/org/apache/causeway/extensions/executionoutbox/applib/spiimpl/ContentMappingServiceForOutboxEvents.java b/extensions/core/executionoutbox/applib/src/main/java/org/apache/causeway/extensions/executionoutbox/applib/spiimpl/ContentMappingServiceForOutboxEvents.java index b1307d993a..474df19520 100644 --- a/extensions/core/executionoutbox/applib/src/main/java/org/apache/causeway/extensions/executionoutbox/applib/spiimpl/ContentMappingServiceForOutboxEvents.java +++ b/extensions/core/executionoutbox/applib/src/main/java/org/apache/causeway/extensions/executionoutbox/applib/spiimpl/ContentMappingServiceForOutboxEvents.java @@ -34,6 +34,9 @@ import org.apache.causeway.schema.ixn.v2.InteractionsDto; import lombok.val; +/** + * @since 2.0 {@index} + */ @Service public class ContentMappingServiceForOutboxEvents implements ContentMappingService { diff --git a/extensions/core/executionoutbox/applib/src/main/java/org/apache/causeway/extensions/executionoutbox/applib/spiimpl/ExecutionSubscriberForExecutionOutbox.java b/extensions/core/executionoutbox/applib/src/main/java/org/apache/causeway/extensions/executionoutbox/applib/spiimpl/ExecutionSubscriberForExecutionOutbox.java index 63e3d48a93..c692bbd9e9 100644 --- a/extensions/core/executionoutbox/applib/src/main/java/org/apache/causeway/extensions/executionoutbox/applib/spiimpl/ExecutionSubscriberForExecutionOutbox.java +++ b/extensions/core/executionoutbox/applib/src/main/java/org/apache/causeway/extensions/executionoutbox/applib/spiimpl/ExecutionSubscriberForExecutionOutbox.java @@ -28,6 +28,9 @@ import org.apache.causeway.extensions.executionoutbox.applib.dom.ExecutionOutbox import lombok.RequiredArgsConstructor; +/** + * @since 2.0 {@index} + */ @Service @RequiredArgsConstructor public class ExecutionSubscriberForExecutionOutbox implements ExecutionSubscriber { diff --git a/extensions/core/executionrepublisher/applib/src/main/java/org/apache/causeway/extensions/executionrepublisher/applib/contributions/ExecutionLogEntry_copyToOutbox.java b/extensions/core/executionrepublisher/applib/src/main/java/org/apache/causeway/extensions/executionrepublisher/applib/contributions/ExecutionLogEntry_copyToOutbox.java index d988352ac9..870b1731a6 100644 --- a/extensions/core/executionrepublisher/applib/src/main/java/org/apache/causeway/extensions/executionrepublisher/applib/contributions/ExecutionLogEntry_copyToOutbox.java +++ b/extensions/core/executionrepublisher/applib/src/main/java/org/apache/causeway/extensions/executionrepublisher/applib/contributions/ExecutionLogEntry_copyToOutbox.java @@ -35,6 +35,18 @@ import org.apache.causeway.extensions.executionrepublisher.applib.CausewayModule import lombok.RequiredArgsConstructor; +/** + * This contributes a copyToOutbox action to each {@link ExecutionLogEntry} (from the <i>Execution Log</i> extension) + * so that it can be republished in the outbox. + * + * <p> + * This is useful when both the <i>Execution Log</i> and <i>Execution Outbox</i> extensions are in use, and there + * was a downstream problem with the processing of an execution <i>from the outbox</i>; the mixin takes a copy of + * that execution from the log and copies it to the outbox in order that it can be reprocessed again. + * </p> + * + * @since 2.0 {@index} + */ @Action( domainEvent = ExecutionLogEntry_copyToOutbox.ActionDomainEvent.class, semantics = SemanticsOf.NON_IDEMPOTENT_ARE_YOU_SURE diff --git a/extensions/security/audittrail/adoc/modules/audittrail/pages/about.adoc b/extensions/security/audittrail/adoc/modules/audittrail/pages/about.adoc index b546412de0..76d20fbdff 100644 --- a/extensions/security/audittrail/adoc/modules/audittrail/pages/about.adoc +++ b/extensions/security/audittrail/adoc/modules/audittrail/pages/about.adoc @@ -4,41 +4,39 @@ The xref:security:audittrail:about.adoc[] module provides an implementation of the xref:refguide:applib:index/services/publishing/spi/EntityPropertyChangeSubscriber.adoc[EntityPropertyChangeSubscriber], which provides a fine-grained persistent audit trail: each and every change to a entity property is persisted as an individual `AuditTrailEntry` instance. -The xref:refguide:extensions:index/audittrail/applib/ - -xref:refguide:applib:index/services/iactn/Interaction.adoc#getInteractionId_[interaction id] identifies all the changes made within a single xref:refguide:applib:index/services/iactn/Interaction.adoc[interaction]. - -It also provides as well as a number of related domain services, -It creates an audit record for each changed property of each domain entity. - -WARNING: TODO: v2 - to write up... - -// following material out of date: -// -//The module also provides: -// -//* `AuditingServiceMenu` service which provides actions to search for ``AuditEntry``s, underneath an 'Activity' menu on the secondary menu bar. -// -//* `AuditingServiceRepository` service to to search for persisted `AuditEntry``s. -//None of its actions are visible in the user interface (they are all `@Programmatic`). -// -//* `AuditingServiceContributions` which contributes collections to the xref:refguide:applib-classes:mixees-and-mixins.adoc[HasInteractionId] interface. -//This will therefore display all audit entries that occurred in a given request/transaction, in other words whenever a command, a published event or another audit entry is displayed. -// -//These services can be activated by updating the `pom.xml` and updating the `AppManifest#getModules()` method. -// -//If menu items or contributions are not required in the UI, these can be suppressed either using security or by implementing a xref:userguide:btb:hints-and-tips/vetoing-visibility.adoc[vetoing subscriber]. -// -//== Usage -// -//The typical way to indicate that an object should be audited is to annotate it with the xref:refguide:applib:index/annotation/DomainObject.adoc#auditing[@DomainObject#auditing()] annotation. -// -// -//== Related Services -// -//The auditing service works very well with implementations of xref:refguide:applib:index/services/publishing/spi/ExecutionSubscriber.adoc[ExecutionSubscriber] that persist the ``Execution`` objects obtained from the xref:refguide:applib:index/services/iactnlayer/InteractionContext.adoc[InteractionContext] service. -//The interaction execution captures the _cause_ of an interaction (an action was invoked, a property was edited), while the `EntityPropertyChangeSubscriber` audit entries capture the _effect_ of that interaction in terms of changed state. -// -//The xref:refguide:applib:index/services/publishing/spi/CommandSubscriber.adoc[CommandSubscriber] SPI can also be combined with the audit trail service, where the xref:refguide:applib:index/services/command/Command.adoc[Command] capturesthe _intent_ of an action, not the actual action invocation itself. -// -// + + +The xref:refguide:applib:index/services/iactn/Interaction.adoc#getInteractionId_[interaction id] identifies all the changes made within a single xref:refguide:applib:index/services/iactn/Interaction.adoc[interaction]. + +The xref:refguide:extensions:index/audittrail/applib/app/AuditTrailMenu.adoc[] + +== Setup + + + + +== menubar.layout.xml + +Once configured, the extension provides a number of menu actions. +You can use `menubars.layout.xml` to arrange these as you see fit. +To get you started, the following fragment adds all of the actions to an "Activity" secondary menu: + +[source,xml] +.menubars.layout.xml +---- +<mb3:secondary> + ... + <mb3:menu> + <mb3:named>Activity</mb3:named> + ... + <mb3:section> + <mb3:named>Audit Trail</mb3:named> + <mb3:serviceAction id="findMostRecent" objectType="isis.ext.auditTrail.AuditTrailMenu"/> + <mb3:serviceAction id="findAuditEntries" objectType="isis.ext.auditTrail.AuditTrailMenu"/> + <mb3:serviceAction id="findAll" objectType="isis.ext.auditTrail.AuditTrailMenu"/> + </mb3:section> + ... + </mb3:menu> +</mb3:secondary> +---- + 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 784a29d080..609acda1e6 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 @@ -46,6 +46,9 @@ import lombok.RequiredArgsConstructor; /** + * This service exposes a set of menu actions to search and list {@link AuditTrailEntry audit record}s, + * by default under the "Activity" secondary menu. + * * @since 2.0 {@index} */ @Named(AuditTrailMenu.LOGICAL_TYPE_NAME) diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/feature/api/ApplicationFeatureChoices.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/feature/api/ApplicationFeatureChoices.java index 4bffa52485..576d4c80c1 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/feature/api/ApplicationFeatureChoices.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/feature/api/ApplicationFeatureChoices.java @@ -52,6 +52,8 @@ import lombok.val; * Supports mixins to add and filter permissions of * {@link org.apache.causeway.extensions.secman.applib.role.dom.ApplicationRole} * and {@link org.apache.causeway.extensions.secman.applib.user.dom.ApplicationUser}. + * + * @since 2.0 {@index} */ @Service @RequiredArgsConstructor(onConstructor_ = {@Inject}) diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/feature/contributions/ApplicationFeatureViewModel_permissions.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/feature/contributions/ApplicationFeatureViewModel_permissions.java index a849d91ee8..fc03875715 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/feature/contributions/ApplicationFeatureViewModel_permissions.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/feature/contributions/ApplicationFeatureViewModel_permissions.java @@ -31,6 +31,10 @@ import org.apache.causeway.extensions.secman.applib.permission.dom.ApplicationPe import lombok.RequiredArgsConstructor; +/** + * + * @since 2.0 {@index} + */ @Collection( ) @CollectionLayout( defaultView = "table", diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/permission/app/ApplicationOrphanedPermissionManager.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/permission/app/ApplicationOrphanedPermissionManager.java index c7c30ba414..fe3bb56399 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/permission/app/ApplicationOrphanedPermissionManager.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/permission/app/ApplicationOrphanedPermissionManager.java @@ -30,6 +30,10 @@ import org.apache.causeway.extensions.secman.applib.CausewayModuleExtSecmanAppli import org.apache.causeway.extensions.secman.applib.permission.dom.ApplicationPermission; import org.apache.causeway.extensions.secman.applib.permission.dom.ApplicationPermissionRepository; +/** + * + * @since 2.0 {@index} + */ @Named(ApplicationOrphanedPermissionManager.LOGICAL_TYPE_NAME) @DomainObject( nature = Nature.VIEW_MODEL) diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/permission/app/mixins/ApplicationOrphanedPermissionManager_relocateSelected.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/permission/app/mixins/ApplicationOrphanedPermissionManager_relocateSelected.java index 8dea1cc6e3..d2130c3517 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/permission/app/mixins/ApplicationOrphanedPermissionManager_relocateSelected.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/permission/app/mixins/ApplicationOrphanedPermissionManager_relocateSelected.java @@ -41,6 +41,10 @@ import org.apache.causeway.extensions.secman.applib.permission.dom.ApplicationPe import lombok.RequiredArgsConstructor; import lombok.val; +/** + * + * @since 2.0 {@index} + */ @Action( choicesFrom = "orphanedPermissions", domainEvent = DomainEvent.class, diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/permission/dom/ApplicationPermissionRepositoryAbstract.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/permission/dom/ApplicationPermissionRepositoryAbstract.java index bda36265bc..662d4ff38d 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/permission/dom/ApplicationPermissionRepositoryAbstract.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/permission/dom/ApplicationPermissionRepositoryAbstract.java @@ -49,6 +49,10 @@ import org.apache.causeway.extensions.secman.applib.user.dom.ApplicationUser; import lombok.NonNull; import lombok.val; +/** + * + * @since 2.0 {@index} + */ public abstract class ApplicationPermissionRepositoryAbstract<P extends ApplicationPermission> implements ApplicationPermissionRepository { diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/permission/dom/mixins/ApplicationPermission_allow.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/permission/dom/mixins/ApplicationPermission_allow.java index 666c641620..76ba66e982 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/permission/dom/mixins/ApplicationPermission_allow.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/permission/dom/mixins/ApplicationPermission_allow.java @@ -29,6 +29,10 @@ import org.apache.causeway.extensions.secman.applib.permission.dom.mixins.Applic import lombok.RequiredArgsConstructor; +/** + * + * @since 2.0 {@index} + */ @Action( domainEvent = DomainEvent.class, semantics = SemanticsOf.IDEMPOTENT diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/permission/dom/mixins/ApplicationPermission_changing.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/permission/dom/mixins/ApplicationPermission_changing.java index ea049bc570..f15a49aab3 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/permission/dom/mixins/ApplicationPermission_changing.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/permission/dom/mixins/ApplicationPermission_changing.java @@ -29,6 +29,10 @@ import org.apache.causeway.extensions.secman.applib.permission.dom.mixins.Applic import lombok.RequiredArgsConstructor; +/** + * + * @since 2.0 {@index} + */ @Action( domainEvent = DomainEvent.class, semantics = SemanticsOf.IDEMPOTENT diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/permission/dom/mixins/ApplicationPermission_delete.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/permission/dom/mixins/ApplicationPermission_delete.java index 9056e20c82..18c12e73c6 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/permission/dom/mixins/ApplicationPermission_delete.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/permission/dom/mixins/ApplicationPermission_delete.java @@ -33,6 +33,10 @@ import org.apache.causeway.extensions.secman.applib.role.dom.ApplicationRole; import lombok.RequiredArgsConstructor; import lombok.val; +/** + * + * @since 2.0 {@index} + */ @Action( domainEvent = DomainEvent.class, semantics = SemanticsOf.IDEMPOTENT_ARE_YOU_SURE diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/permission/dom/mixins/ApplicationPermission_feature.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/permission/dom/mixins/ApplicationPermission_feature.java index 935f3600e4..cdb06b584d 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/permission/dom/mixins/ApplicationPermission_feature.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/permission/dom/mixins/ApplicationPermission_feature.java @@ -33,6 +33,10 @@ import org.apache.causeway.extensions.secman.applib.permission.dom.ApplicationPe import lombok.RequiredArgsConstructor; +/** + * + * @since 2.0 {@index} + */ @Property( domainEvent = ApplicationPermission_feature.PropertyDomainEvent.class ) diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/permission/dom/mixins/ApplicationPermission_updateRole.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/permission/dom/mixins/ApplicationPermission_updateRole.java index 55cb1d5cb3..2f5186ff2b 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/permission/dom/mixins/ApplicationPermission_updateRole.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/permission/dom/mixins/ApplicationPermission_updateRole.java @@ -35,6 +35,10 @@ import org.apache.causeway.extensions.secman.applib.role.dom.ApplicationRoleRepo import lombok.RequiredArgsConstructor; +/** + * + * @since 2.0 {@index} + */ @Action( domainEvent = DomainEvent.class, semantics = SemanticsOf.IDEMPOTENT diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/permission/dom/mixins/ApplicationPermission_veto.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/permission/dom/mixins/ApplicationPermission_veto.java index d69b7f7ce2..9488e4e880 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/permission/dom/mixins/ApplicationPermission_veto.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/permission/dom/mixins/ApplicationPermission_veto.java @@ -29,6 +29,10 @@ import org.apache.causeway.extensions.secman.applib.permission.dom.mixins.Applic import lombok.RequiredArgsConstructor; +/** + * + * @since 2.0 {@index} + */ @Action( domainEvent = DomainEvent.class, semantics = SemanticsOf.IDEMPOTENT diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/permission/dom/mixins/ApplicationPermission_viewing.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/permission/dom/mixins/ApplicationPermission_viewing.java index f8ac26a375..b752f96b0e 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/permission/dom/mixins/ApplicationPermission_viewing.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/permission/dom/mixins/ApplicationPermission_viewing.java @@ -29,6 +29,10 @@ import org.apache.causeway.extensions.secman.applib.permission.dom.mixins.Applic import lombok.RequiredArgsConstructor; +/** + * + * @since 2.0 {@index} + */ @Action( domainEvent = DomainEvent.class, semantics = SemanticsOf.IDEMPOTENT diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/permission/menu/ApplicationPermissionMenu.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/permission/menu/ApplicationPermissionMenu.java index c6b1c4aa97..3f9bac8df8 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/permission/menu/ApplicationPermissionMenu.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/permission/menu/ApplicationPermissionMenu.java @@ -39,6 +39,10 @@ import org.apache.causeway.extensions.secman.applib.permission.app.ApplicationOr import org.apache.causeway.extensions.secman.applib.permission.dom.ApplicationPermission; import org.apache.causeway.extensions.secman.applib.permission.dom.ApplicationPermissionRepository; +/** + * + * @since 2.0 {@index} + */ @Named(ApplicationPermissionMenu.LOGICAL_TYPE_NAME) @DomainService( nature = NatureOfService.VIEW diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/dom/ApplicationRoleRepositoryAbstract.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/dom/ApplicationRoleRepositoryAbstract.java index 36e6737499..7deee21832 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/dom/ApplicationRoleRepositoryAbstract.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/dom/ApplicationRoleRepositoryAbstract.java @@ -43,6 +43,10 @@ import org.apache.causeway.extensions.secman.applib.util.RegexReplacer; import lombok.val; +/** + * + * @since 2.0 {@index} + */ @Repository @Named(CausewayModuleExtSecmanApplib.NAMESPACE + ".ApplicationRoleRepository") public abstract class ApplicationRoleRepositoryAbstract<R extends ApplicationRole> diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/dom/mixins/ApplicationRole_addPermission.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/dom/mixins/ApplicationRole_addPermission.java index 8ebe8f3bb4..83d14a7cde 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/dom/mixins/ApplicationRole_addPermission.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/dom/mixins/ApplicationRole_addPermission.java @@ -41,6 +41,10 @@ import lombok.RequiredArgsConstructor; import lombok.Value; import lombok.experimental.Accessors; +/** + * + * @since 2.0 {@index} + */ @Action( domainEvent = DomainEvent.class, semantics = SemanticsOf.NON_IDEMPOTENT diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/dom/mixins/ApplicationRole_addUser.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/dom/mixins/ApplicationRole_addUser.java index 5121b14777..9dc23cdbba 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/dom/mixins/ApplicationRole_addUser.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/dom/mixins/ApplicationRole_addUser.java @@ -37,6 +37,10 @@ import org.apache.causeway.extensions.secman.applib.user.dom.ApplicationUserRepo import lombok.RequiredArgsConstructor; +/** + * + * @since 2.0 {@index} + */ @Action( domainEvent = DomainEvent.class, semantics = SemanticsOf.IDEMPOTENT diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/dom/mixins/ApplicationRole_delete.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/dom/mixins/ApplicationRole_delete.java index d3ce2939cc..35c0c097a7 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/dom/mixins/ApplicationRole_delete.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/dom/mixins/ApplicationRole_delete.java @@ -33,6 +33,10 @@ import org.apache.causeway.extensions.secman.applib.role.dom.mixins.ApplicationR import lombok.RequiredArgsConstructor; +/** + * + * @since 2.0 {@index} + */ @Action( domainEvent = DomainEvent.class, semantics = SemanticsOf.IDEMPOTENT_ARE_YOU_SURE diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/dom/mixins/ApplicationRole_removePermissions.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/dom/mixins/ApplicationRole_removePermissions.java index f83e6eb3f9..9bb2b44d5e 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/dom/mixins/ApplicationRole_removePermissions.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/dom/mixins/ApplicationRole_removePermissions.java @@ -42,6 +42,10 @@ import org.apache.causeway.extensions.secman.applib.role.dom.mixins.ApplicationR import lombok.RequiredArgsConstructor; import lombok.val; +/** + * + * @since 2.0 {@index} + */ @Action( choicesFrom = "permissions", domainEvent = DomainEvent.class, diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/dom/mixins/ApplicationRole_removeUsers.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/dom/mixins/ApplicationRole_removeUsers.java index e7ee81c20b..a3846a488e 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/dom/mixins/ApplicationRole_removeUsers.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/dom/mixins/ApplicationRole_removeUsers.java @@ -38,6 +38,10 @@ import org.apache.causeway.extensions.secman.applib.user.dom.ApplicationUserRepo import lombok.RequiredArgsConstructor; +/** + * + * @since 2.0 {@index} + */ @Action( choicesFrom = "users", domainEvent = DomainEvent.class, diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/dom/mixins/ApplicationRole_updateDescription.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/dom/mixins/ApplicationRole_updateDescription.java index 21cda4326a..7690580ea9 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/dom/mixins/ApplicationRole_updateDescription.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/dom/mixins/ApplicationRole_updateDescription.java @@ -29,6 +29,10 @@ import org.apache.causeway.extensions.secman.applib.role.dom.mixins.ApplicationR import lombok.RequiredArgsConstructor; +/** + * + * @since 2.0 {@index} + */ @Action( domainEvent = DomainEvent.class, semantics = SemanticsOf.IDEMPOTENT diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/dom/mixins/ApplicationRole_updateName.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/dom/mixins/ApplicationRole_updateName.java index 63fd81eb42..b2b9a6d42d 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/dom/mixins/ApplicationRole_updateName.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/dom/mixins/ApplicationRole_updateName.java @@ -29,6 +29,10 @@ import org.apache.causeway.extensions.secman.applib.role.dom.mixins.ApplicationR import lombok.RequiredArgsConstructor; +/** + * + * @since 2.0 {@index} + */ @Action( domainEvent = DomainEvent.class, semantics = SemanticsOf.IDEMPOTENT diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/man/ApplicationRoleManager.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/man/ApplicationRoleManager.java index 2bbf63a505..8083b484d7 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/man/ApplicationRoleManager.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/man/ApplicationRoleManager.java @@ -31,6 +31,10 @@ import org.apache.causeway.core.metamodel.specloader.SpecificationLoader; import org.apache.causeway.extensions.secman.applib.CausewayModuleExtSecmanApplib; import org.apache.causeway.extensions.secman.applib.role.dom.ApplicationRole; +/** + * + * @since 2.0 {@index} + */ @Named(ApplicationRoleManager.LOGICAL_TYPE_NAME) @DomainObject( nature = Nature.VIEW_MODEL) diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/man/mixins/ApplicationRoleManager_allRoles.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/man/mixins/ApplicationRoleManager_allRoles.java index 6a27443199..f1776e5a63 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/man/mixins/ApplicationRoleManager_allRoles.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/man/mixins/ApplicationRoleManager_allRoles.java @@ -29,6 +29,10 @@ import org.apache.causeway.extensions.secman.applib.role.man.ApplicationRoleMana import lombok.RequiredArgsConstructor; +/** + * + * @since 2.0 {@index} + */ @org.apache.causeway.applib.annotation.Collection @RequiredArgsConstructor public class ApplicationRoleManager_allRoles { diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/man/mixins/ApplicationRoleManager_exportAsYaml.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/man/mixins/ApplicationRoleManager_exportAsYaml.java index 9433fd1924..7794175d1c 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/man/mixins/ApplicationRoleManager_exportAsYaml.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/man/mixins/ApplicationRoleManager_exportAsYaml.java @@ -37,6 +37,10 @@ import org.apache.causeway.extensions.secman.applib.util.ApplicationSecurityDto; import lombok.RequiredArgsConstructor; import lombok.val; +/** + * + * @since 2.0 {@index} + */ @Action( domainEvent = DomainEvent.class, semantics = SemanticsOf.IDEMPOTENT diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/man/mixins/ApplicationRoleManager_newRole.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/man/mixins/ApplicationRoleManager_newRole.java index 72ca13a735..e61139e430 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/man/mixins/ApplicationRoleManager_newRole.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/man/mixins/ApplicationRoleManager_newRole.java @@ -35,6 +35,10 @@ import org.apache.causeway.extensions.secman.applib.user.man.mixins.ApplicationU import lombok.RequiredArgsConstructor; +/** + * + * @since 2.0 {@index} + */ @Action( domainEvent = DomainEvent.class, semantics = SemanticsOf.IDEMPOTENT diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/menu/ApplicationRoleMenu.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/menu/ApplicationRoleMenu.java index a0d2247df7..770cc63fdb 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/menu/ApplicationRoleMenu.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/menu/ApplicationRoleMenu.java @@ -42,6 +42,10 @@ import org.apache.causeway.extensions.secman.applib.role.man.ApplicationRoleMana import lombok.RequiredArgsConstructor; +/** + * + * @since 2.0 {@index} + */ @Named(ApplicationRoleMenu.LOGICAL_TYPE_NAME) @DomainService( nature = NatureOfService.VIEW diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/seed/CausewayAppFeatureRoleAndPermissions.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/seed/CausewayAppFeatureRoleAndPermissions.java index 27e9842c13..57b321edb1 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/seed/CausewayAppFeatureRoleAndPermissions.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/seed/CausewayAppFeatureRoleAndPermissions.java @@ -27,6 +27,8 @@ import org.apache.causeway.extensions.secman.applib.permission.dom.ApplicationPe import org.apache.causeway.extensions.secman.applib.role.fixtures.AbstractRoleAndPermissionsFixtureScript; /** + * Sets up a role with access to the menu actions exposing the application metamodel (as a navigable set of view models). + * * @since 2.0 {@index} */ public class CausewayAppFeatureRoleAndPermissions diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/seed/CausewayConfigurationRoleAndPermissions.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/seed/CausewayConfigurationRoleAndPermissions.java index 12927bbe3d..6096eab0e4 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/seed/CausewayConfigurationRoleAndPermissions.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/seed/CausewayConfigurationRoleAndPermissions.java @@ -27,6 +27,8 @@ import org.apache.causeway.extensions.secman.applib.permission.dom.ApplicationPe import org.apache.causeway.extensions.secman.applib.role.fixtures.AbstractRoleAndPermissionsFixtureScript; /** + * Sets up a role with access to the menu actions exposing the configuration properties of the running app. + * * @since 2.0 {@index} */ public class CausewayConfigurationRoleAndPermissions diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/seed/CausewayExtAuditTrailRoleAndPermissions.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/seed/CausewayExtAuditTrailRoleAndPermissions.java index e7900e2336..39bf25d1bc 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/seed/CausewayExtAuditTrailRoleAndPermissions.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/seed/CausewayExtAuditTrailRoleAndPermissions.java @@ -25,7 +25,7 @@ import org.apache.causeway.extensions.secman.applib.permission.dom.ApplicationPe import org.apache.causeway.extensions.secman.applib.role.fixtures.AbstractRoleAndPermissionsFixtureScript; /** - * Access to the command replay primary menu. + * Sets up a role with access to the menu actions contributed by the <i>Audit Trail</i> extension. * * @since 2.0 {@index} */ diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/seed/CausewayExtCommandLogRoleAndPermissions.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/seed/CausewayExtCommandLogRoleAndPermissions.java index a8f297f5f8..77102c8b01 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/seed/CausewayExtCommandLogRoleAndPermissions.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/seed/CausewayExtCommandLogRoleAndPermissions.java @@ -25,7 +25,7 @@ import org.apache.causeway.extensions.secman.applib.permission.dom.ApplicationPe import org.apache.causeway.extensions.secman.applib.role.fixtures.AbstractRoleAndPermissionsFixtureScript; /** - * Access to the command replay primary menu. + * Sets up a role with access to the menu actions contributed by the <i>Command Log</i> extension. * * @since 2.0 {@index} */ diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/seed/CausewayExtExecutionLogRoleAndPermissions.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/seed/CausewayExtExecutionLogRoleAndPermissions.java index 0797fa2c4a..8cb90e65b3 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/seed/CausewayExtExecutionLogRoleAndPermissions.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/seed/CausewayExtExecutionLogRoleAndPermissions.java @@ -25,7 +25,7 @@ import org.apache.causeway.extensions.secman.applib.permission.dom.ApplicationPe import org.apache.causeway.extensions.secman.applib.role.fixtures.AbstractRoleAndPermissionsFixtureScript; /** - * Access to the command replay primary menu. + * Sets up a role with access to the menu actions contributed by the <i>Extension Log</i> extension. * * @since 2.0 {@index} */ diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/seed/CausewayExtExecutionOutboxRoleAndPermissions.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/seed/CausewayExtExecutionOutboxRoleAndPermissions.java index d439b0336f..b1bdb80c49 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/seed/CausewayExtExecutionOutboxRoleAndPermissions.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/seed/CausewayExtExecutionOutboxRoleAndPermissions.java @@ -25,7 +25,7 @@ import org.apache.causeway.extensions.secman.applib.permission.dom.ApplicationPe import org.apache.causeway.extensions.secman.applib.role.fixtures.AbstractRoleAndPermissionsFixtureScript; /** - * Access to the command replay primary menu. + * Sets up a role with access to the menu actions contributed by the <i>Extension Outbox</i> extension. * * @since 2.0 {@index} */ diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/seed/CausewayExtH2ConsoleRoleAndPermissions.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/seed/CausewayExtH2ConsoleRoleAndPermissions.java index 9921435235..55768d3bbb 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/seed/CausewayExtH2ConsoleRoleAndPermissions.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/seed/CausewayExtH2ConsoleRoleAndPermissions.java @@ -25,7 +25,7 @@ import org.apache.causeway.extensions.secman.applib.permission.dom.ApplicationPe import org.apache.causeway.extensions.secman.applib.role.fixtures.AbstractRoleAndPermissionsFixtureScript; /** - * Access to the h2 console UI. + * Sets up a role with access to the menu actions providing access to the h2 web console.. * * @since 2.0 {@index} */ diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/seed/CausewayExtSecmanAdminRoleAndPermissions.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/seed/CausewayExtSecmanAdminRoleAndPermissions.java index 4c3d4b8682..2e68bf1287 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/seed/CausewayExtSecmanAdminRoleAndPermissions.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/seed/CausewayExtSecmanAdminRoleAndPermissions.java @@ -37,10 +37,9 @@ import org.apache.causeway.extensions.secman.applib.role.fixtures.AbstractRoleAn import lombok.val; /** - * Sets up the {@link Admin#getRoleName() secman admin role} - * with its initial set of permissions (the union of - * {@link NamespacePermissions#getSticky()} - * and {@link NamespacePermissions#getAdditional()}). + * Sets up a role for administrators (whose name is {@link Admin#getRoleName() configurable} + * with an initial set of permissions being the union of {@link NamespacePermissions#getSticky()} + * and {@link NamespacePermissions#getAdditional()}. * * @see Secman * diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/seed/CausewayExtSecmanRegularUserRoleAndPermissions.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/seed/CausewayExtSecmanRegularUserRoleAndPermissions.java index e679562889..807dc13a43 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/seed/CausewayExtSecmanRegularUserRoleAndPermissions.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/seed/CausewayExtSecmanRegularUserRoleAndPermissions.java @@ -35,7 +35,7 @@ import org.apache.causeway.testing.fixtures.applib.CausewayModuleTestingFixtures import lombok.val; /** - * Role for regular users of the security module. + * Sets up a role for regular users of the security module. * * <p> * These permissions are intended to be sufficient for most regular users diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/seed/CausewayExtSessionLogRoleAndPermissions.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/seed/CausewayExtSessionLogRoleAndPermissions.java index bd17ae0f67..32b860eca2 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/seed/CausewayExtSessionLogRoleAndPermissions.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/seed/CausewayExtSessionLogRoleAndPermissions.java @@ -25,7 +25,7 @@ import org.apache.causeway.extensions.secman.applib.permission.dom.ApplicationPe import org.apache.causeway.extensions.secman.applib.role.fixtures.AbstractRoleAndPermissionsFixtureScript; /** - * Access to the command replay primary menu. + * Sets up a role with access to the menu actions contributed by the <i>Session Log</i> extension. * * @since 2.0 {@index} */ diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/seed/CausewayPersistenceJdoMetaModelRoleAndPermissions.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/seed/CausewayPersistenceJdoMetaModelRoleAndPermissions.java index 78c4c187b9..ed16402b9d 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/seed/CausewayPersistenceJdoMetaModelRoleAndPermissions.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/seed/CausewayPersistenceJdoMetaModelRoleAndPermissions.java @@ -25,7 +25,7 @@ import org.apache.causeway.extensions.secman.applib.permission.dom.ApplicationPe import org.apache.causeway.extensions.secman.applib.role.fixtures.AbstractRoleAndPermissionsFixtureScript; /** - * Provides access to download the JDO metamodel. + * Sets up a role with access to the menu actions to download the JDO metamodel. * * @since 2.0 {@index} */ diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/seed/CausewaySudoImpersonateRoleAndPermissions.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/seed/CausewaySudoImpersonateRoleAndPermissions.java index 5f08c07629..5f572a5a4a 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/seed/CausewaySudoImpersonateRoleAndPermissions.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/seed/CausewaySudoImpersonateRoleAndPermissions.java @@ -26,6 +26,10 @@ import org.apache.causeway.extensions.secman.applib.permission.dom.ApplicationPe import org.apache.causeway.extensions.secman.applib.role.fixtures.AbstractRoleAndPermissionsFixtureScript; /** + * Sets up a role with access to the menu action to impersonate others (using + * {@link org.apache.causeway.applib.services.sudo.SudoService}). + * + * @see org.apache.causeway.applib.services.sudo.SudoService * @since 2.0 {@index} */ public class CausewaySudoImpersonateRoleAndPermissions diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/seed/CausewayViewerRestfulObjectsSwaggerRoleAndPermissions.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/seed/CausewayViewerRestfulObjectsSwaggerRoleAndPermissions.java index 5449771dfd..63bd1505e6 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/seed/CausewayViewerRestfulObjectsSwaggerRoleAndPermissions.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/role/seed/CausewayViewerRestfulObjectsSwaggerRoleAndPermissions.java @@ -25,7 +25,7 @@ import org.apache.causeway.extensions.secman.applib.permission.dom.ApplicationPe import org.apache.causeway.extensions.secman.applib.role.fixtures.AbstractRoleAndPermissionsFixtureScript; /** - * Provides access to open up the Swagger UI. + * Sets up a role with access to the menu action that opens up the Swagger UI. * * @since 2.0 {@index} */ diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/tenancy/dom/ApplicationTenancyRepositoryAbstract.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/tenancy/dom/ApplicationTenancyRepositoryAbstract.java index 85eecd64f2..8a63a4f91a 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/tenancy/dom/ApplicationTenancyRepositoryAbstract.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/tenancy/dom/ApplicationTenancyRepositoryAbstract.java @@ -35,6 +35,10 @@ import org.apache.causeway.extensions.secman.applib.util.RegexReplacer; import lombok.NonNull; import lombok.val; +/** + * + * @since 2.0 {@index} + */ public abstract class ApplicationTenancyRepositoryAbstract<T extends ApplicationTenancy> implements ApplicationTenancyRepository { diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/tenancy/dom/mixins/ApplicationTenancy_addChild.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/tenancy/dom/mixins/ApplicationTenancy_addChild.java index e68f0f2ea7..ca0250875b 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/tenancy/dom/mixins/ApplicationTenancy_addChild.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/tenancy/dom/mixins/ApplicationTenancy_addChild.java @@ -36,6 +36,10 @@ import org.apache.causeway.extensions.secman.applib.tenancy.dom.mixins.Applicati import lombok.RequiredArgsConstructor; import lombok.val; +/** + * + * @since 2.0 {@index} + */ @Action( domainEvent = DomainEvent.class, semantics = SemanticsOf.IDEMPOTENT diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/tenancy/dom/mixins/ApplicationTenancy_addUser.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/tenancy/dom/mixins/ApplicationTenancy_addUser.java index 4939d7ec83..e7ebb33e9a 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/tenancy/dom/mixins/ApplicationTenancy_addUser.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/tenancy/dom/mixins/ApplicationTenancy_addUser.java @@ -38,6 +38,10 @@ import org.apache.causeway.extensions.secman.applib.user.dom.ApplicationUserRepo import lombok.RequiredArgsConstructor; +/** + * + * @since 2.0 {@index} + */ @Action( domainEvent = DomainEvent.class, semantics = SemanticsOf.IDEMPOTENT diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/tenancy/dom/mixins/ApplicationTenancy_delete.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/tenancy/dom/mixins/ApplicationTenancy_delete.java index 0787c967d7..d0ceaf3664 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/tenancy/dom/mixins/ApplicationTenancy_delete.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/tenancy/dom/mixins/ApplicationTenancy_delete.java @@ -38,6 +38,10 @@ import org.apache.causeway.extensions.secman.applib.user.dom.mixins.ApplicationU import lombok.RequiredArgsConstructor; import lombok.val; +/** + * + * @since 2.0 {@index} + */ @Action( domainEvent = DomainEvent.class, semantics = SemanticsOf.IDEMPOTENT_ARE_YOU_SURE diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/tenancy/dom/mixins/ApplicationTenancy_removeChild.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/tenancy/dom/mixins/ApplicationTenancy_removeChild.java index 8f05ba97d5..3383f821b6 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/tenancy/dom/mixins/ApplicationTenancy_removeChild.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/tenancy/dom/mixins/ApplicationTenancy_removeChild.java @@ -33,6 +33,10 @@ import org.apache.causeway.extensions.secman.applib.tenancy.dom.mixins.Applicati import lombok.RequiredArgsConstructor; +/** + * + * @since 2.0 {@index} + */ @Action( domainEvent = DomainEvent.class, semantics = SemanticsOf.IDEMPOTENT diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/tenancy/dom/mixins/ApplicationTenancy_removeUser.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/tenancy/dom/mixins/ApplicationTenancy_removeUser.java index 3dc68d6b11..99fae3b6d8 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/tenancy/dom/mixins/ApplicationTenancy_removeUser.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/tenancy/dom/mixins/ApplicationTenancy_removeUser.java @@ -35,6 +35,10 @@ import org.apache.causeway.extensions.secman.applib.user.dom.ApplicationUserRepo import lombok.RequiredArgsConstructor; +/** + * + * @since 2.0 {@index} + */ @Action( domainEvent = DomainEvent.class, semantics = SemanticsOf.IDEMPOTENT diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/tenancy/dom/mixins/ApplicationTenancy_updateName.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/tenancy/dom/mixins/ApplicationTenancy_updateName.java index c0aaa0a342..40b3bfb1b2 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/tenancy/dom/mixins/ApplicationTenancy_updateName.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/tenancy/dom/mixins/ApplicationTenancy_updateName.java @@ -29,6 +29,10 @@ import org.apache.causeway.extensions.secman.applib.tenancy.dom.mixins.Applicati import lombok.RequiredArgsConstructor; +/** + * + * @since 2.0 {@index} + */ @Action( domainEvent = DomainEvent.class, semantics = SemanticsOf.IDEMPOTENT diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/tenancy/dom/mixins/ApplicationTenancy_users.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/tenancy/dom/mixins/ApplicationTenancy_users.java index 5007020dcd..a91e2bd150 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/tenancy/dom/mixins/ApplicationTenancy_users.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/tenancy/dom/mixins/ApplicationTenancy_users.java @@ -30,6 +30,10 @@ import org.apache.causeway.extensions.secman.applib.user.dom.ApplicationUserRepo import lombok.RequiredArgsConstructor; +/** + * + * @since 2.0 {@index} + */ @Collection( domainEvent = ApplicationTenancy_users.DomainEvent.class) @CollectionLayout( diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/tenancy/fixtures/AbstractTenancyFixtureScript.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/tenancy/fixtures/AbstractTenancyFixtureScript.java index 0d40491517..bb9cb444c7 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/tenancy/fixtures/AbstractTenancyFixtureScript.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/tenancy/fixtures/AbstractTenancyFixtureScript.java @@ -24,6 +24,10 @@ import org.apache.causeway.extensions.secman.applib.tenancy.dom.ApplicationTenan import org.apache.causeway.extensions.secman.applib.tenancy.dom.ApplicationTenancyRepository; import org.apache.causeway.testing.fixtures.applib.fixturescripts.FixtureScript; +/** + * + * @since 2.0 {@index} + */ public abstract class AbstractTenancyFixtureScript extends FixtureScript { diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/tenancy/man/ApplicationTenancyManager.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/tenancy/man/ApplicationTenancyManager.java index 49b5a1c938..e47b8f448c 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/tenancy/man/ApplicationTenancyManager.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/tenancy/man/ApplicationTenancyManager.java @@ -31,6 +31,10 @@ import org.apache.causeway.core.metamodel.specloader.SpecificationLoader; import org.apache.causeway.extensions.secman.applib.CausewayModuleExtSecmanApplib; import org.apache.causeway.extensions.secman.applib.tenancy.dom.ApplicationTenancy; +/** + * + * @since 2.0 {@index} + */ @Named(ApplicationTenancyManager.LOGICAL_TYPE_NAME) @DomainObject( nature = Nature.VIEW_MODEL) diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/tenancy/man/mixins/ApplicationTenancyManager_allTenancies.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/tenancy/man/mixins/ApplicationTenancyManager_allTenancies.java index f5901b6a3b..6f87d1f27d 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/tenancy/man/mixins/ApplicationTenancyManager_allTenancies.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/tenancy/man/mixins/ApplicationTenancyManager_allTenancies.java @@ -29,6 +29,10 @@ import org.apache.causeway.extensions.secman.applib.tenancy.man.ApplicationTenan import lombok.RequiredArgsConstructor; +/** + * + * @since 2.0 {@index} + */ @org.apache.causeway.applib.annotation.Collection @RequiredArgsConstructor public class ApplicationTenancyManager_allTenancies { diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/tenancy/man/mixins/ApplicationTenancyManager_newTenancy.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/tenancy/man/mixins/ApplicationTenancyManager_newTenancy.java index b296523816..6043b9593b 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/tenancy/man/mixins/ApplicationTenancyManager_newTenancy.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/tenancy/man/mixins/ApplicationTenancyManager_newTenancy.java @@ -37,6 +37,10 @@ import org.apache.causeway.extensions.secman.applib.user.man.mixins.ApplicationU import lombok.RequiredArgsConstructor; +/** + * + * @since 2.0 {@index} + */ @Action( domainEvent = DomainEvent.class, semantics = SemanticsOf.IDEMPOTENT diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/tenancy/menu/ApplicationTenancyMenu.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/tenancy/menu/ApplicationTenancyMenu.java index 464a9a3bbf..1d393c4695 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/tenancy/menu/ApplicationTenancyMenu.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/tenancy/menu/ApplicationTenancyMenu.java @@ -42,6 +42,10 @@ import org.apache.causeway.extensions.secman.applib.tenancy.dom.ApplicationTenan import org.apache.causeway.extensions.secman.applib.tenancy.dom.ApplicationTenancyRepository; import org.apache.causeway.extensions.secman.applib.tenancy.man.ApplicationTenancyManager; +/** + * + * @since 2.0 {@index} + */ @Named(ApplicationTenancyMenu.LOGICAL_TYPE_NAME) @DomainService( nature = NatureOfService.VIEW diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/contributions/HasUsername_open.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/contributions/HasUsername_open.java index 286ba017b5..2bfa4380e1 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/contributions/HasUsername_open.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/contributions/HasUsername_open.java @@ -32,6 +32,10 @@ import org.apache.causeway.extensions.secman.applib.user.dom.ApplicationUserRepo import lombok.RequiredArgsConstructor; +/** + * + * @since 2.0 {@index} + */ @Action( semantics = SemanticsOf.SAFE, domainEvent = HasUsername_open.ActionDomainEvent.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 497fb2d1c9..7357c760ee 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 @@ -51,6 +51,10 @@ import org.apache.causeway.extensions.secman.applib.util.RegexReplacer; import lombok.NonNull; import lombok.val; +/** + * + * @since 2.0 {@index} + */ public class ApplicationUserRepositoryAbstract<U extends ApplicationUser> implements ApplicationUserRepository { diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_addRole.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_addRole.java index 2e3702a707..27e1fda177 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_addRole.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_addRole.java @@ -36,6 +36,10 @@ import org.apache.causeway.extensions.secman.applib.user.dom.mixins.ApplicationU import lombok.RequiredArgsConstructor; import lombok.val; +/** + * + * @since 2.0 {@index} + */ @Action( domainEvent = DomainEvent.class, semantics = SemanticsOf.IDEMPOTENT diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_delete.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_delete.java index e081f78b76..5c60c7de8f 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_delete.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_delete.java @@ -34,6 +34,10 @@ import org.apache.causeway.extensions.secman.applib.user.dom.mixins.ApplicationU import lombok.RequiredArgsConstructor; +/** + * + * @since 2.0 {@index} + */ @Action( domainEvent = DomainEvent.class, semantics = SemanticsOf.IDEMPOTENT_ARE_YOU_SURE diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_duplicate.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_duplicate.java index a51624761f..da484b5647 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_duplicate.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_duplicate.java @@ -36,6 +36,10 @@ import org.apache.causeway.extensions.secman.applib.user.dom.mixins.ApplicationU import lombok.RequiredArgsConstructor; +/** + * + * @since 2.0 {@index} + */ @Action( domainEvent = DomainEvent.class, semantics = SemanticsOf.NON_IDEMPOTENT diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_lock.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_lock.java index 20c0905884..a643e729d1 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_lock.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_lock.java @@ -33,6 +33,10 @@ import org.apache.causeway.extensions.secman.applib.user.dom.mixins.ApplicationU import lombok.RequiredArgsConstructor; +/** + * + * @since 2.0 {@index} + */ @Action( domainEvent = DomainEvent.class, semantics = SemanticsOf.IDEMPOTENT diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_removeRoles.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_removeRoles.java index e652cc2147..bc552923d9 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_removeRoles.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_removeRoles.java @@ -38,6 +38,10 @@ import org.apache.causeway.extensions.secman.applib.user.dom.mixins.ApplicationU import lombok.RequiredArgsConstructor; +/** + * + * @since 2.0 {@index} + */ @Action( choicesFrom = "roles", domainEvent = DomainEvent.class, diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_resetPassword.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_resetPassword.java index 73987c1f6c..ef2fa423ad 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_resetPassword.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_resetPassword.java @@ -34,6 +34,10 @@ import org.apache.causeway.extensions.secman.applib.user.dom.mixins.ApplicationU import lombok.RequiredArgsConstructor; +/** + * + * @since 2.0 {@index} + */ @Action( domainEvent = DomainEvent.class, semantics = SemanticsOf.IDEMPOTENT diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_timeZone.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_timeZone.java index 1fd508f0fb..059dd4c6d6 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_timeZone.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_timeZone.java @@ -33,6 +33,10 @@ import org.apache.causeway.extensions.secman.applib.user.dom.ApplicationUser; import lombok.RequiredArgsConstructor; +/** + * + * @since 2.0 {@index} + */ @Property( editing = Editing.DISABLED, hidden = Where.ALL_TABLES) diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_unlock.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_unlock.java index df8ace82b7..aeeabe7908 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_unlock.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_unlock.java @@ -29,6 +29,10 @@ import org.apache.causeway.extensions.secman.applib.user.dom.mixins.ApplicationU import lombok.RequiredArgsConstructor; +/** + * + * @since 2.0 {@index} + */ @Action( domainEvent = DomainEvent.class, semantics = SemanticsOf.IDEMPOTENT diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_updateAccountType.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_updateAccountType.java index df9d060bd3..4c373d4951 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_updateAccountType.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_updateAccountType.java @@ -33,6 +33,10 @@ import org.apache.causeway.extensions.secman.applib.user.dom.mixins.ApplicationU import lombok.RequiredArgsConstructor; +/** + * + * @since 2.0 {@index} + */ @Action( domainEvent = DomainEvent.class, semantics = SemanticsOf.IDEMPOTENT diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_updateAtPath.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_updateAtPath.java index 2e8a215948..9a1edd170f 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_updateAtPath.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_updateAtPath.java @@ -29,6 +29,10 @@ import org.apache.causeway.extensions.secman.applib.user.dom.mixins.ApplicationU import lombok.RequiredArgsConstructor; +/** + * + * @since 2.0 {@index} + */ @Action( domainEvent = DomainEvent.class, semantics = SemanticsOf.IDEMPOTENT diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_updateEmailAddress.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_updateEmailAddress.java index 6c022ca69e..1e390a34d9 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_updateEmailAddress.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_updateEmailAddress.java @@ -29,6 +29,10 @@ import org.apache.causeway.extensions.secman.applib.user.dom.mixins.ApplicationU import lombok.RequiredArgsConstructor; +/** + * + * @since 2.0 {@index} + */ @Action( domainEvent = DomainEvent.class, semantics = SemanticsOf.IDEMPOTENT diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_updateFaxNumber.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_updateFaxNumber.java index b01e882cb5..19beaebc22 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_updateFaxNumber.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_updateFaxNumber.java @@ -29,6 +29,10 @@ import org.apache.causeway.extensions.secman.applib.user.dom.mixins.ApplicationU import lombok.RequiredArgsConstructor; +/** + * + * @since 2.0 {@index} + */ @Action( domainEvent = DomainEvent.class, semantics = SemanticsOf.IDEMPOTENT diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_updateLocale.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_updateLocale.java index e0a4deb339..acf66d38eb 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_updateLocale.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_updateLocale.java @@ -36,6 +36,10 @@ import org.apache.causeway.extensions.secman.applib.user.dom.mixins.ApplicationU import lombok.RequiredArgsConstructor; import lombok.experimental.Accessors; +/** + * + * @since 2.0 {@index} + */ @Action( domainEvent = DomainEvent.class, semantics = SemanticsOf.IDEMPOTENT diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_updateName.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_updateName.java index 56acc90557..2d35d73bcc 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_updateName.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_updateName.java @@ -29,6 +29,10 @@ import org.apache.causeway.extensions.secman.applib.user.dom.mixins.ApplicationU import lombok.RequiredArgsConstructor; +/** + * + * @since 2.0 {@index} + */ @Action( domainEvent = DomainEvent.class, semantics = SemanticsOf.IDEMPOTENT diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_updatePassword.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_updatePassword.java index dfd78f1b91..45d1b853ee 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_updatePassword.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_updatePassword.java @@ -39,6 +39,10 @@ import org.apache.causeway.extensions.secman.applib.user.dom.mixins.ApplicationU import lombok.RequiredArgsConstructor; import lombok.val; +/** + * + * @since 2.0 {@index} + */ @Action( domainEvent = DomainEvent.class, semantics = SemanticsOf.IDEMPOTENT diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_updatePhoneNumber.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_updatePhoneNumber.java index 8aa9954cdf..53a117b54e 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_updatePhoneNumber.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_updatePhoneNumber.java @@ -29,6 +29,10 @@ import org.apache.causeway.extensions.secman.applib.user.dom.mixins.ApplicationU import lombok.RequiredArgsConstructor; +/** + * + * @since 2.0 {@index} + */ @Action( domainEvent = DomainEvent.class, semantics = SemanticsOf.IDEMPOTENT diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_updateUsername.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_updateUsername.java index 988ba2a8f3..232b71cd2a 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_updateUsername.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/ApplicationUser_updateUsername.java @@ -29,6 +29,10 @@ import org.apache.causeway.extensions.secman.applib.user.dom.mixins.ApplicationU import lombok.RequiredArgsConstructor; +/** + * + * @since 2.0 {@index} + */ @Action( domainEvent = DomainEvent.class, semantics = SemanticsOf.IDEMPOTENT diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/perms/ApplicationUser_effectiveMemberPermissions.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/perms/ApplicationUser_effectiveMemberPermissions.java index 366f378305..acf2f675f0 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/perms/ApplicationUser_effectiveMemberPermissions.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/perms/ApplicationUser_effectiveMemberPermissions.java @@ -35,6 +35,10 @@ import org.apache.causeway.extensions.secman.applib.user.dom.ApplicationUser; import lombok.RequiredArgsConstructor; +/** + * + * @since 2.0 {@index} + */ @Collection( domainEvent = ApplicationUser_effectiveMemberPermissions.DomainEvent.class) @CollectionLayout( diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/perms/ApplicationUser_filterEffectiveMemberPermissions.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/perms/ApplicationUser_filterEffectiveMemberPermissions.java index 0d69693712..260ccd1b8d 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/perms/ApplicationUser_filterEffectiveMemberPermissions.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/perms/ApplicationUser_filterEffectiveMemberPermissions.java @@ -39,6 +39,10 @@ import org.apache.causeway.extensions.secman.applib.user.dom.ApplicationUser; import lombok.RequiredArgsConstructor; +/** + * + * @since 2.0 {@index} + */ @Action( domainEvent = ApplicationUser_filterEffectiveMemberPermissions.DomainEvent.class, semantics = SemanticsOf.SAFE diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/perms/UserPermissionViewModel.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/perms/UserPermissionViewModel.java index c2b470a3c4..04f15d749b 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/perms/UserPermissionViewModel.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/dom/mixins/perms/UserPermissionViewModel.java @@ -68,6 +68,8 @@ import lombok.val; /** * View model identified by {@link ApplicationFeatureId} and backed by an * {@link ApplicationFeature}. + * + * @since 2.0 {@index} */ @Named(UserPermissionViewModel.LOGICAL_TYPE_NAME) @DomainObject( diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/man/ApplicationUserManager.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/man/ApplicationUserManager.java index e72b539778..d22a43facf 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/man/ApplicationUserManager.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/man/ApplicationUserManager.java @@ -31,6 +31,10 @@ import org.apache.causeway.core.metamodel.specloader.SpecificationLoader; import org.apache.causeway.extensions.secman.applib.CausewayModuleExtSecmanApplib; import org.apache.causeway.extensions.secman.applib.user.dom.ApplicationUser; +/** + * + * @since 2.0 {@index} + */ @Named(ApplicationUserManager.LOGICAL_TYPE_NAME) @DomainObject( nature = Nature.VIEW_MODEL) diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/man/mixins/ApplicationUserManager_allUsers.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/man/mixins/ApplicationUserManager_allUsers.java index 98fac900ef..d4efcda048 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/man/mixins/ApplicationUserManager_allUsers.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/man/mixins/ApplicationUserManager_allUsers.java @@ -29,6 +29,10 @@ import org.apache.causeway.extensions.secman.applib.user.man.ApplicationUserMana import lombok.RequiredArgsConstructor; +/** + * + * @since 2.0 {@index} + */ @org.apache.causeway.applib.annotation.Collection @RequiredArgsConstructor public class ApplicationUserManager_allUsers { diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/man/mixins/ApplicationUserManager_newDelegateUser.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/man/mixins/ApplicationUserManager_newDelegateUser.java index b000ae217b..c4839a6303 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/man/mixins/ApplicationUserManager_newDelegateUser.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/man/mixins/ApplicationUserManager_newDelegateUser.java @@ -40,6 +40,10 @@ import org.apache.causeway.extensions.secman.applib.user.man.mixins.ApplicationU import lombok.RequiredArgsConstructor; import lombok.val; +/** + * + * @since 2.0 {@index} + */ @Action( domainEvent = DomainEvent.class ) diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/man/mixins/ApplicationUserManager_newLocalUser.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/man/mixins/ApplicationUserManager_newLocalUser.java index fc3d9ac562..7fbe683ff2 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/man/mixins/ApplicationUserManager_newLocalUser.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/man/mixins/ApplicationUserManager_newLocalUser.java @@ -45,6 +45,10 @@ import org.apache.causeway.extensions.secman.applib.user.man.mixins.ApplicationU import lombok.RequiredArgsConstructor; import lombok.val; +/** + * + * @since 2.0 {@index} + */ @Action( domainEvent = DomainEvent.class ) diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/menu/ApplicationUserMenu.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/menu/ApplicationUserMenu.java index 69c85c4f39..4cc24a85c2 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/menu/ApplicationUserMenu.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/menu/ApplicationUserMenu.java @@ -41,6 +41,10 @@ import org.apache.causeway.extensions.secman.applib.user.man.ApplicationUserMana import lombok.RequiredArgsConstructor; +/** + * + * @since 2.0 {@index} + */ @Named(ApplicationUserMenu.LOGICAL_TYPE_NAME) @DomainService( nature = NatureOfService.VIEW diff --git a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/util/RegexReplacer.java b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/util/RegexReplacer.java index 6441580dd6..7a1fba974a 100644 --- a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/util/RegexReplacer.java +++ b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/util/RegexReplacer.java @@ -18,6 +18,10 @@ */ package org.apache.causeway.extensions.secman.applib.util; +/** + * + * @since 2.0 {@index} + */ public interface RegexReplacer { public String asRegex(String str); diff --git a/extensions/security/sessionlog/adoc/modules/sessionlog/pages/about.adoc b/extensions/security/sessionlog/adoc/modules/sessionlog/pages/about.adoc index 1ccb4c0f49..e3e11b4206 100644 --- a/extensions/security/sessionlog/adoc/modules/sessionlog/pages/about.adoc +++ b/extensions/security/sessionlog/adoc/modules/sessionlog/pages/about.adoc @@ -7,3 +7,29 @@ The Session Log extension provides an implementation of the xref:refguide:applib When a user logs on, a `SessionLogEntry` instance is persisted; when they log off, the same instance is updated. WARNING: TODO: v2 - to write up... + + + +== menubar.layout.xml + +Once configured, the extension provides a number of menu actions. +You can use `menubars.layout.xml` to arrange these as you see fit. +To get you started, the following fragment adds all of the actions to an "Activity" secondary menu: + +[source,xml] +.menubars.layout.xml +---- +<mb3:secondary> + ... + <mb3:menu> + <mb3:named>Activity</mb3:named> + ... + <mb3:section> + <mb3:named>Sessions</mb3:named> + <mb3:serviceAction id="activeSessions" objectType="isis.ext.sessionLog.SessionLogMenu"/> + <mb3:serviceAction id="findSessions" objectType="isis.ext.sessionLog.SessionLogMenu"/> + </mb3:section> + ... + </mb3:menu> +</mb3:secondary> +---- diff --git a/extensions/security/sessionlog/applib/src/main/java/org/apache/causeway/extensions/sessionlog/applib/app/SessionLogMenu.java b/extensions/security/sessionlog/applib/src/main/java/org/apache/causeway/extensions/sessionlog/applib/app/SessionLogMenu.java index 3b2ce5e202..b8927d3d2d 100644 --- a/extensions/security/sessionlog/applib/src/main/java/org/apache/causeway/extensions/sessionlog/applib/app/SessionLogMenu.java +++ b/extensions/security/sessionlog/applib/src/main/java/org/apache/causeway/extensions/sessionlog/applib/app/SessionLogMenu.java @@ -44,7 +44,10 @@ import lombok.RequiredArgsConstructor; /** - * This service exposes a <Sessions> menu to the secondary menu bar for searching for sessions. + * This service exposes a set of menu actions to search and list {@link SessionLogEntry session}s, by default under + * the "Activity" secondary menu. + * + * @since 2.0 {@index} */ @Named(SessionLogMenu.LOGICAL_TYPE_NAME) @DomainService(nature = NatureOfService.VIEW) diff --git a/extensions/security/sessionlog/applib/src/main/java/org/apache/causeway/extensions/sessionlog/applib/contributions/HasUsername_recentSessionsForUser.java b/extensions/security/sessionlog/applib/src/main/java/org/apache/causeway/extensions/sessionlog/applib/contributions/HasUsername_recentSessionsForUser.java index f41afb6aac..8ee7e43a04 100644 --- a/extensions/security/sessionlog/applib/src/main/java/org/apache/causeway/extensions/sessionlog/applib/contributions/HasUsername_recentSessionsForUser.java +++ b/extensions/security/sessionlog/applib/src/main/java/org/apache/causeway/extensions/sessionlog/applib/contributions/HasUsername_recentSessionsForUser.java @@ -37,6 +37,11 @@ import org.apache.causeway.extensions.sessionlog.applib.dom.SessionLogEntryRepos import lombok.RequiredArgsConstructor; +/** + * Contributes the `recentSessionsForUser` collection to any domain object implementing {@link HasUsername}. + * + * @since 2.0 {@index} + */ @Action( semantics = SemanticsOf.SAFE, domainEvent = HasUsername_recentSessionsForUser.ActionDomainEvent.class diff --git a/extensions/security/sessionlog/applib/src/main/java/org/apache/causeway/extensions/sessionlog/applib/dom/SessionLogEntry.java b/extensions/security/sessionlog/applib/src/main/java/org/apache/causeway/extensions/sessionlog/applib/dom/SessionLogEntry.java index 974db0a1cf..ecab8ad8a7 100644 --- a/extensions/security/sessionlog/applib/src/main/java/org/apache/causeway/extensions/sessionlog/applib/dom/SessionLogEntry.java +++ b/extensions/security/sessionlog/applib/src/main/java/org/apache/causeway/extensions/sessionlog/applib/dom/SessionLogEntry.java @@ -55,6 +55,12 @@ import org.apache.causeway.extensions.sessionlog.applib.CausewayModuleExtSession import lombok.experimental.UtilityClass; +/** + * Represents the session of an end-user, in other words the span of time from them logging into the application until + * they are log out either explicitly or through some timeout. + * + * @since 2.0 {@index} + */ @Named(SessionLogEntry.LOGICAL_TYPE_NAME) @DomainObject( editing = Editing.DISABLED, diff --git a/extensions/security/sessionlog/applib/src/main/java/org/apache/causeway/extensions/sessionlog/applib/dom/SessionLogEntryRepository.java b/extensions/security/sessionlog/applib/src/main/java/org/apache/causeway/extensions/sessionlog/applib/dom/SessionLogEntryRepository.java index 0d0bb44484..a5eee1899c 100644 --- a/extensions/security/sessionlog/applib/src/main/java/org/apache/causeway/extensions/sessionlog/applib/dom/SessionLogEntryRepository.java +++ b/extensions/security/sessionlog/applib/src/main/java/org/apache/causeway/extensions/sessionlog/applib/dom/SessionLogEntryRepository.java @@ -40,6 +40,8 @@ import lombok.val; /** * Provides supporting functionality for querying {@link SessionLogEntry session log entry} entities. + * + * @since 2.0 {@index} */ public abstract class SessionLogEntryRepository<E extends SessionLogEntry> { diff --git a/extensions/security/sessionlog/applib/src/main/java/org/apache/causeway/extensions/sessionlog/applib/spiimpl/SessionLogServiceInitializer.java b/extensions/security/sessionlog/applib/src/main/java/org/apache/causeway/extensions/sessionlog/applib/spiimpl/SessionLogServiceInitializer.java index ebe5d14bd0..3c8bb46249 100644 --- a/extensions/security/sessionlog/applib/src/main/java/org/apache/causeway/extensions/sessionlog/applib/spiimpl/SessionLogServiceInitializer.java +++ b/extensions/security/sessionlog/applib/src/main/java/org/apache/causeway/extensions/sessionlog/applib/spiimpl/SessionLogServiceInitializer.java @@ -34,6 +34,16 @@ import org.apache.causeway.extensions.sessionlog.applib.dom.SessionLogEntryRepos import lombok.RequiredArgsConstructor; import lombok.val; +/** + * Initializes the <i>Session Log</i> extension when the application is first bootstrapped. + * + * <p> + * In particular, will automatically logout all sessions from a previous run of the application, if configured to + * do so. + * </p> + * + * @since 2.0 {@index} + */ @Component @RequiredArgsConstructor(onConstructor_ = {@Inject}) public class SessionLogServiceInitializer implements MetamodelListener { diff --git a/extensions/security/sessionlog/applib/src/main/java/org/apache/causeway/extensions/sessionlog/applib/spiimpl/SessionSubscriberForSessionLog.java b/extensions/security/sessionlog/applib/src/main/java/org/apache/causeway/extensions/sessionlog/applib/spiimpl/SessionSubscriberForSessionLog.java index 662ab7a035..a2aace75a7 100644 --- a/extensions/security/sessionlog/applib/src/main/java/org/apache/causeway/extensions/sessionlog/applib/spiimpl/SessionSubscriberForSessionLog.java +++ b/extensions/security/sessionlog/applib/src/main/java/org/apache/causeway/extensions/sessionlog/applib/spiimpl/SessionSubscriberForSessionLog.java @@ -45,9 +45,10 @@ import lombok.RequiredArgsConstructor; import lombok.val; /** - * Implementation of the Causeway {@link SessionSubscriber} creates a log - * entry to the database (the {@link SessionLogEntry} entity) each time a - * user either logs on or logs out, or if their session expires. + * Implementation of the {@link SessionSubscriber} SPI, which persists a log entry to the database (the + * {@link SessionLogEntry} entity) each time a user either logs on or logs out, or if their session expires. + * + * @since 2.0 {@index} */ @Service @RequiredArgsConstructor(onConstructor_ = {@Inject}) diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/causeway/viewer/restfulobjects/rendering/CausewayModuleRestfulObjectsRendering.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/causeway/viewer/restfulobjects/rendering/CausewayModuleRestfulObjectsRendering.java index 89363e8193..1626293a6f 100644 --- a/viewers/restfulobjects/rendering/src/main/java/org/apache/causeway/viewer/restfulobjects/rendering/CausewayModuleRestfulObjectsRendering.java +++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/causeway/viewer/restfulobjects/rendering/CausewayModuleRestfulObjectsRendering.java @@ -67,5 +67,5 @@ import org.apache.causeway.viewer.restfulobjects.rendering.service.valuerender.J }) public class CausewayModuleRestfulObjectsRendering { - public static final String NAMESPACE = "causeway.viewer.restfulobjects"; + public static final String NAMESPACE = "causeway.viewer.roRendering"; }
