You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2021/06/10 06:08:46 UTC

[isis] branch master updated (49947a2 -> 96d097a)

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

danhaywood pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git.


    from 49947a2  ISIS-2483: improves docs for secman
     new 8c7f6d6  ISIS-2483: regenerated refguide index
     new d5aac9a  ISIS-2483: regenerated refguide index (ctd)
     new 96d097a  ISIS-2483: further improvements to secman docs.

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../applib/pages/index/annotation/Nature.adoc      |  1 +
 .../applib/pages/index/annotation/Value.adoc       | 13 +++
 .../pages/index/mixins/dto/Dto_downloadXml.adoc    |  8 +-
 ...actionContext.adoc => InteractionProvider.adoc} | 28 +++++--
 .../InteractionContext.adoc}                       | 38 +++++++--
 .../iactnlayer/InteractionLayer.adoc}              | 27 ++----
 .../services/iactnlayer/InteractionService.adoc    | 90 ++++++++++++++++++++
 .../index/services/metrics/MetricsService.adoc     |  4 +-
 .../pages/index/services/sudo/SudoService.adoc     | 14 ++--
 .../pages/index/services/user/UserService.adoc     |  8 +-
 .../commons/pages/index/functional/Result.adoc     |  1 -
 .../interaction/session/InteractionFactory.adoc    | 78 ++++--------------
 .../security/authentication/Authentication.adoc    | 40 ++++++---
 .../manager/AnonymousInteractionFactory.adoc       | 24 +++++-
 .../jdo/mixins/Object_recentCommands.adoc          |  5 +-
 .../secondary/clock/TickingClockService.adoc       |  2 +-
 .../AbstractRoleAndPermissionsFixtureScript.adoc}  | 10 +--
 .../applib/seed/SeedSecurityModuleService.adoc     |  4 +
 .../scripts/SeedUsersAndRolesFixtureScript.adoc    |  4 +-
 .../AbstractUserAndRolesFixtureScript.adoc}        | 25 ++----
 .../clock/{fixture => }/TickingClockFixture.adoc   |  0
 ...xecutionParametersServiceAutoConfiguration.adoc | 27 ------
 .../applib/fixturescripts/FixtureScripts.adoc      | 13 +--
 .../FixtureScriptsSpecification.adoc               |  0
 ...iptsSpecificationProviderAutoConfiguration.adoc | 27 ++++++
 .../restfulobjects/rendering/IResourceContext.adoc |  2 +-
 core/adoc/modules/_overview/pages/about.adoc       | 50 +++++++++--
 .../adoc/modules/secman/pages/setting-up.adoc      | 96 ++++++++++++++++------
 28 files changed, 405 insertions(+), 234 deletions(-)
 rename antora/components/refguide-index/modules/applib/pages/index/services/iactn/{InteractionContext.adoc => InteractionProvider.adoc} (76%)
 rename antora/components/refguide-index/modules/applib/pages/index/services/{iactn/ExecutionContext.adoc => iactnlayer/InteractionContext.adoc} (50%)
 copy antora/components/refguide-index/modules/applib/pages/index/{annotation/hooks/DomainObjectLayout_010-examples-and-usage.adoc => services/iactnlayer/InteractionLayer.adoc} (51%)
 create mode 100644 antora/components/refguide-index/modules/applib/pages/index/services/iactnlayer/InteractionService.adoc
 copy antora/components/refguide-index/modules/{applib/pages/index/AbstractViewModel.adoc => extensions/pages/index/secman/applib/role/fixtures/AbstractRoleAndPermissionsFixtureScript.adoc} (71%)
 copy antora/components/refguide-index/modules/{viewer/pages/index/restfulobjects/applib/util/Parser.adoc => extensions/pages/index/secman/applib/user/fixtures/AbstractUserAndRolesFixtureScript.adoc} (57%)
 rename antora/components/refguide-index/modules/testing/pages/index/fixtures/applib/clock/{fixture => }/TickingClockFixture.adoc (100%)
 delete mode 100644 antora/components/refguide-index/modules/testing/pages/index/fixtures/applib/fixturescripts/ExecutionParametersServiceAutoConfiguration.adoc
 rename antora/components/refguide-index/modules/testing/pages/index/fixtures/applib/{fixturespec => fixturescripts}/FixtureScriptsSpecification.adoc (100%)
 create mode 100644 antora/components/refguide-index/modules/testing/pages/index/fixtures/applib/fixturescripts/FixtureScriptsSpecificationProviderAutoConfiguration.adoc

[isis] 01/03: ISIS-2483: regenerated refguide index

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 8c7f6d686c71a247d8013c9d05dccd3461ca96e1
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Thu Jun 10 07:05:08 2021 +0100

    ISIS-2483: regenerated refguide index
---
 .../applib/pages/index/annotation/Nature.adoc      |  1 +
 .../applib/pages/index/annotation/Value.adoc       | 13 ++++
 .../pages/index/mixins/dto/Dto_downloadXml.adoc    |  8 +--
 .../index/services/metrics/MetricsService.adoc     |  4 +-
 .../pages/index/services/sudo/SudoService.adoc     | 14 ++--
 .../pages/index/services/user/UserService.adoc     |  8 +--
 .../commons/pages/index/functional/Result.adoc     |  1 -
 .../interaction/session/InteractionFactory.adoc    | 78 ++++------------------
 .../security/authentication/Authentication.adoc    | 40 +++++++----
 .../manager/AnonymousInteractionFactory.adoc       | 24 ++++++-
 .../jdo/mixins/Object_recentCommands.adoc          |  5 +-
 .../secondary/clock/TickingClockService.adoc       |  2 +-
 .../applib/seed/SeedSecurityModuleService.adoc     |  4 ++
 .../scripts/SeedUsersAndRolesFixtureScript.adoc    |  4 +-
 .../applib/fixturescripts/FixtureScripts.adoc      | 13 +---
 .../restfulobjects/rendering/IResourceContext.adoc |  2 +-
 core/adoc/modules/_overview/pages/about.adoc       | 50 +++++++++++---
 17 files changed, 146 insertions(+), 125 deletions(-)

diff --git a/antora/components/refguide-index/modules/applib/pages/index/annotation/Nature.adoc b/antora/components/refguide-index/modules/applib/pages/index/annotation/Nature.adoc
index 05dfee4..fc34c23 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/annotation/Nature.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/annotation/Nature.adoc
@@ -15,6 +15,7 @@ enum Nature {
   MIXIN     // <.>
   BEAN     // <.>
   boolean isEntity()
+  boolean isMixin()
 }
 ----
 
diff --git a/antora/components/refguide-index/modules/applib/pages/index/annotation/Value.adoc b/antora/components/refguide-index/modules/applib/pages/index/annotation/Value.adoc
index 780d5f8..6c121e5 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/annotation/Value.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/annotation/Value.adoc
@@ -20,11 +20,17 @@ Note also that though a value is conceptually not shared, if it is also immutabl
 .Value.java
 ----
 @interface Value {
+  String logicalTypeName() default "";     // <.>
   String semanticsProviderName() default "";     // <.>
   Class<?> semanticsProviderClass() default Value.class;     // <.>
 }
 ----
 
+<.> xref:#logicalTypeName[logicalTypeName]
++
+--
+The logical name of this value's type, that uniquely and fully qualifies it. The logical name is analogous to - but independent of - the actual fully qualified class name. eg. _sales.Customer_ for a class 'org.mycompany.dom.Customer'
+--
 <.> xref:#semanticsProviderName[semanticsProviderName]
 +
 --
@@ -38,6 +44,13 @@ As per _#semanticsProviderName()_ , but specifying a class literal rather than a
 
 == Members
 
+[#logicalTypeName]
+=== logicalTypeName
+
+The logical name of this value's type, that uniquely and fully qualifies it. The logical name is analogous to - but independent of - the actual fully qualified class name. eg. _sales.Customer_ for a class 'org.mycompany.dom.Customer'
+
+If not specified, the fully qualified class name is used instead.
+
 [#semanticsProviderName]
 === semanticsProviderName
 
diff --git a/antora/components/refguide-index/modules/applib/pages/index/mixins/dto/Dto_downloadXml.adoc b/antora/components/refguide-index/modules/applib/pages/index/mixins/dto/Dto_downloadXml.adoc
index c6cb340..b4b2592 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/mixins/dto/Dto_downloadXml.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/mixins/dto/Dto_downloadXml.adoc
@@ -12,13 +12,7 @@ Requires that the view model is a JAXB view model, and implements the xref:refgu
 ----
 class Dto_downloadXml {
   Object act(final String fileName)
-  String default0Act()     // <.>
+  String default0Act()
 }
 ----
 
-<.> xref:#default0Act__[default0Act()]
-
-== Members
-
-[#default0Act__]
-=== default0Act()
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/metrics/MetricsService.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/metrics/MetricsService.adoc
index 4330446..9c4f739 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/metrics/MetricsService.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/metrics/MetricsService.adoc
@@ -36,7 +36,7 @@ The number of entities that have, so far in this request, been loaded from the d
 
 Corresponds to the number of times that `javax.jdo.listener.LoadLifecycleListener#postLoad(InstanceLifecycleEvent)` (or equivalent) is fired.
 
-Is captured within _MemberExecutionDto#getMetrics()_ (accessible from _InteractionContext#currentInteraction()_ ).
+Is captured within _MemberExecutionDto#getMetrics()_ (accessible from _InteractionProvider#currentInteraction()_ ).
 
 [#numberEntitiesDirtied__]
 === numberEntitiesDirtied()
@@ -45,7 +45,7 @@ The number of objects that have, so far in this request, been dirtied/will need
 
 Corresponds to the number of times that `javax.jdo.listener.DirtyLifecycleListener#preDirty(InstanceLifecycleEvent)` (or equivalent) callback is fired.
 
-Is captured within _MemberExecutionDto#getMetrics()_ (accessible from _InteractionContext#currentInteraction()_ .
+Is captured within _MemberExecutionDto#getMetrics()_ (accessible from _InteractionProvider#currentInteraction()_ .
 
 include::hooks/MetricsService_010-implementation.adoc[]
 
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/sudo/SudoService.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/sudo/SudoService.adoc
index 5e4f0b4..126d27e 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/sudo/SudoService.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/sudo/SudoService.adoc
@@ -1,7 +1,7 @@
 = SudoService _(interface)_
 :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 [...]
 
-Allows a block of code to be executed within an arbitrary xref:refguide:applib:index/services/iactn/ExecutionContext.adoc[ExecutionContext] , allowing the who, when and where to be temporarily switched.
+Allows a block of code to be executed within an arbitrary xref:refguide:applib:index/services/iactnlayer/InteractionContext.adoc[InteractionContext] , allowing the who, when and where to be temporarily switched.
 
 Most typically this service is used to temporarily change the &qout;who", that is the user reported by the xref:refguide:applib:index/services/user/UserService.adoc[UserService] 's _UserService#currentUser() getUser()_ - hence the name SudoService. But the user's locale and timezome can also be changed, as well as the time reported by _org.apache.isis.applib.services.clock.ClockService_ .
 
@@ -14,8 +14,8 @@ The primary use case for this service is for fixture scripts and integration tes
 ----
 interface SudoService {
   RoleMemento ACCESS_ALL_ROLE;     // <.>
-  T call(final UnaryOperator<ExecutionContext> sudoMapper, final Callable<T> supplier)     // <.>
-  void run(final UnaryOperator<ExecutionContext> sudoMapper, final ThrowingRunnable runnable)     // <.>
+  T call(final UnaryOperator<InteractionContext> sudoMapper, final Callable<T> supplier)     // <.>
+  void run(final UnaryOperator<InteractionContext> sudoMapper, final ThrowingRunnable runnable)     // <.>
 }
 ----
 
@@ -27,12 +27,12 @@ If included in the list of roles, then will disable security checks (can view an
 <.> xref:#call__UnaryOperator_Callable[call(UnaryOperator, Callable)]
 +
 --
-Executes the supplied _Callable_ block, within the provided xref:refguide:applib:index/services/iactn/ExecutionContext.adoc[ExecutionContext] .
+Executes the supplied _Callable_ block, within the provided xref:refguide:applib:index/services/iactnlayer/InteractionContext.adoc[InteractionContext] .
 --
 <.> xref:#run__UnaryOperator_ThrowingRunnable[run(UnaryOperator, ThrowingRunnable)]
 +
 --
-Executes the supplied _Callable_ block, within the provided xref:refguide:applib:index/services/iactn/ExecutionContext.adoc[ExecutionContext] .
+Executes the supplied _Callable_ block, within the provided xref:refguide:applib:index/services/iactnlayer/InteractionContext.adoc[InteractionContext] .
 --
 
 == Members
@@ -45,12 +45,12 @@ If included in the list of roles, then will disable security checks (can view an
 [#call__UnaryOperator_Callable]
 === call(UnaryOperator, Callable)
 
-Executes the supplied _Callable_ block, within the provided xref:refguide:applib:index/services/iactn/ExecutionContext.adoc[ExecutionContext] .
+Executes the supplied _Callable_ block, within the provided xref:refguide:applib:index/services/iactnlayer/InteractionContext.adoc[InteractionContext] .
 
 [#run__UnaryOperator_ThrowingRunnable]
 === run(UnaryOperator, ThrowingRunnable)
 
-Executes the supplied _Callable_ block, within the provided xref:refguide:applib:index/services/iactn/ExecutionContext.adoc[ExecutionContext] .
+Executes the supplied _Callable_ block, within the provided xref:refguide:applib:index/services/iactnlayer/InteractionContext.adoc[InteractionContext] .
 
 include::hooks/SudoService_010-implementation.adoc[]
 
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/user/UserService.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/user/UserService.adoc
index d8744fd..a1646b8 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/user/UserService.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/user/UserService.adoc
@@ -27,7 +27,7 @@ interface UserService {
 <.> xref:#currentUser__[currentUser()]
 +
 --
-Optionally gets the details about the current user, based on whether an xref:refguide:applib:index/services/iactn/ExecutionContext.adoc[ExecutionContext] can be found with the current thread's context.
+Optionally gets the details about the current user, based on whether an xref:refguide:applib:index/services/iactnlayer/InteractionContext.adoc[InteractionContext] can be found with the current thread's context.
 --
 <.> xref:#getUser__[getUser()]
 +
@@ -42,7 +42,7 @@ Gets the details about the current user.
 <.> xref:#currentUserName__[currentUserName()]
 +
 --
-Optionally gets the the current user's name, based on whether an xref:refguide:applib:index/services/iactn/ExecutionContext.adoc[ExecutionContext] can be found with the current thread's context.
+Optionally gets the the current user's name, based on whether an xref:refguide:applib:index/services/iactnlayer/InteractionContext.adoc[InteractionContext] can be found with the current thread's context.
 --
 <.> xref:#currentUserNameElseNobody__[currentUserNameElseNobody()]
 +
@@ -80,7 +80,7 @@ Whether or not the user currently reported (in _#currentUser()_ and similar) is
 [#currentUser__]
 === currentUser()
 
-Optionally gets the details about the current user, based on whether an xref:refguide:applib:index/services/iactn/ExecutionContext.adoc[ExecutionContext] can be found with the current thread's context.
+Optionally gets the details about the current user, based on whether an xref:refguide:applib:index/services/iactnlayer/InteractionContext.adoc[InteractionContext] can be found with the current thread's context.
 
 [#getUser__]
 === getUser()
@@ -95,7 +95,7 @@ Gets the details about the current user.
 [#currentUserName__]
 === currentUserName()
 
-Optionally gets the the current user's name, based on whether an xref:refguide:applib:index/services/iactn/ExecutionContext.adoc[ExecutionContext] can be found with the current thread's context.
+Optionally gets the the current user's name, based on whether an xref:refguide:applib:index/services/iactnlayer/InteractionContext.adoc[InteractionContext] can be found with the current thread's context.
 
 [#currentUserNameElseNobody__]
 === currentUserNameElseNobody()
diff --git a/antora/components/refguide-index/modules/commons/pages/index/functional/Result.adoc b/antora/components/refguide-index/modules/commons/pages/index/functional/Result.adoc
index 0e057d1..fbe45a7 100644
--- a/antora/components/refguide-index/modules/commons/pages/index/functional/Result.adoc
+++ b/antora/components/refguide-index/modules/commons/pages/index/functional/Result.adoc
@@ -10,7 +10,6 @@ The xref:refguide:commons:index/functional/Result.adoc[Result] type represents a
 ----
 class Result<L> {
   Result<L> of(final Callable<L> callable)
-  Result<Void> ofVoid(final ThrowingRunnable runnable)
   Result<L> success(final L value)
   Result<L> failure(final Throwable throwable)
   Result<L> failure(final String message)
diff --git a/antora/components/refguide-index/modules/core/pages/index/interaction/session/InteractionFactory.adoc b/antora/components/refguide-index/modules/core/pages/index/interaction/session/InteractionFactory.adoc
index df8885f..2204047 100644
--- a/antora/components/refguide-index/modules/core/pages/index/interaction/session/InteractionFactory.adoc
+++ b/antora/components/refguide-index/modules/core/pages/index/interaction/session/InteractionFactory.adoc
@@ -1,9 +1,7 @@
 = InteractionFactory _(interface)_
 :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 factory of _InteractionSession_ (s) and _AuthenticationLayer_ (s), also holding a reference to the current authentication layer stack using a thread-local.
-
-The implementation is a singleton service.
+The factory of xref:refguide:core:index/security/authentication/Authentication.adoc[Authentication] (s) and xref:refguide:applib:index/services/iactnlayer/InteractionLayer.adoc[InteractionLayer] (s), holding a reference to the current xref:refguide:applib:index/services/iactnlayer/InteractionLayer.adoc[InteractionLayer] stack using a thread-local.
 
 == API
 
@@ -11,100 +9,52 @@ The implementation is a singleton service.
 .InteractionFactory.java
 ----
 interface InteractionFactory {
-  AuthenticationLayer openInteraction()     // <.>
-  AuthenticationLayer openInteraction(Authentication authentication)     // <.>
-  boolean isInInteraction()     // <.>
   R callAuthenticated(Authentication authentication, Callable<R> callable)     // <.>
-  void runAuthenticated(Authentication authentication, ThrowingRunnable runnable)     // <.>
   R callAnonymous(Callable<R> callable)     // <.>
+  void runAuthenticated(Authentication authentication, ThrowingRunnable runnable)     // <.>
   void runAnonymous(ThrowingRunnable runnable)     // <.>
-  void closeSessionStack()     // <.>
 }
 ----
 
-<.> xref:#openInteraction__[openInteraction()]
-+
---
-If present, reuses the current top level _AuthenticationLayer_ , otherwise creates a new anonymous one.
---
-<.> xref:#openInteraction__Authentication[openInteraction(Authentication)]
-+
---
-Returns a new or reused _AuthenticationLayer_ that is a holder of xref:refguide:core:index/security/authentication/Authentication.adoc[Authentication] on top of the current thread's authentication layer stack.
---
-<.> xref:#isInInteraction__[isInInteraction()]
 <.> xref:#callAuthenticated__Authentication_Callable[callAuthenticated(Authentication, Callable)]
 +
 --
-Executes a block of code with a new or reused _InteractionSession_ using a new or reused _AuthenticationLayer_ .
---
-<.> xref:#runAuthenticated__Authentication_ThrowingRunnable[runAuthenticated(Authentication, ThrowingRunnable)]
-+
---
-Variant of _#callAuthenticated(Authentication, Callable)_ that takes a runnable.
+As per _#call(InteractionContext, Callable)_ , using the xref:refguide:applib:index/services/iactnlayer/InteractionContext.adoc[InteractionContext] _Authentication#getInteractionContext() obtained_ from the provided xref:refguide:core:index/security/authentication/Authentication.adoc[Authentication] .
 --
 <.> xref:#callAnonymous__Callable[callAnonymous(Callable)]
 +
 --
-Executes a block of code with a new or reused _InteractionSession_ using a new or reused _AuthenticationLayer_ .
+As per _#call(InteractionContext, Callable)_ , but using an xref:refguide:applib:index/services/iactnlayer/InteractionContext.adoc[InteractionContext] _Authentication#getInteractionContext() obtained_ from an anonymous xref:refguide:core:index/security/authentication/Authentication.adoc[Authentication] .
 --
-<.> xref:#runAnonymous__ThrowingRunnable[runAnonymous(ThrowingRunnable)]
+<.> xref:#runAuthenticated__Authentication_ThrowingRunnable[runAuthenticated(Authentication, ThrowingRunnable)]
 +
 --
-Variant of _#callAnonymous(Callable)_ that takes a runnable.
+As per _#callAuthenticated(Authentication, Callable)_ , but for a runnable.
 --
-<.> xref:#closeSessionStack__[closeSessionStack()]
+<.> xref:#runAnonymous__ThrowingRunnable[runAnonymous(ThrowingRunnable)]
 +
 --
-closes all open _AuthenticationLayer_ (s) as stacked on the current thread
+As per _#callAnonymous(Callable)_ , but for a runnable.
 --
 
 == Members
 
-[#openInteraction__]
-=== openInteraction()
-
-If present, reuses the current top level _AuthenticationLayer_ , otherwise creates a new anonymous one.
-
-[#openInteraction__Authentication]
-=== openInteraction(Authentication)
-
-Returns a new or reused _AuthenticationLayer_ that is a holder of xref:refguide:core:index/security/authentication/Authentication.adoc[Authentication] on top of the current thread's authentication layer stack.
-
-If available reuses an existing _InteractionSession_ , otherwise creates a new one.
-
-The _InteractionSession_ represents a user's span of activities interacting with the application. The session's stack is later closed using _#closeSessionStack()_ .
-
-[#isInInteraction__]
-=== isInInteraction()
-
 [#callAuthenticated__Authentication_Callable]
 === callAuthenticated(Authentication, Callable)
 
-Executes a block of code with a new or reused _InteractionSession_ using a new or reused _AuthenticationLayer_ .
+As per _#call(InteractionContext, Callable)_ , using the xref:refguide:applib:index/services/iactnlayer/InteractionContext.adoc[InteractionContext] _Authentication#getInteractionContext() obtained_ from the provided xref:refguide:core:index/security/authentication/Authentication.adoc[Authentication] .
 
-If there is currently no _InteractionSession_ a new one is created.
+[#callAnonymous__Callable]
+=== callAnonymous(Callable)
 
-If there is currently an _AuthenticationLayer_ that has an equal xref:refguide:core:index/security/authentication/Authentication.adoc[Authentication] to the given one, it is reused, otherwise a new one is created.
+As per _#call(InteractionContext, Callable)_ , but using an xref:refguide:applib:index/services/iactnlayer/InteractionContext.adoc[InteractionContext] _Authentication#getInteractionContext() obtained_ from an anonymous xref:refguide:core:index/security/authentication/Authentication.adoc[Authentication] .
 
 [#runAuthenticated__Authentication_ThrowingRunnable]
 === runAuthenticated(Authentication, ThrowingRunnable)
 
-Variant of _#callAuthenticated(Authentication, Callable)_ that takes a runnable.
-
-[#callAnonymous__Callable]
-=== callAnonymous(Callable)
-
-Executes a block of code with a new or reused _InteractionSession_ using a new or reused _AuthenticationLayer_ .
-
-If there is currently no _InteractionSession_ a new one is created and a new anonymous _AuthenticationLayer_ is returned. Otherwise both, session and layer are reused.
+As per _#callAuthenticated(Authentication, Callable)_ , but for a runnable.
 
 [#runAnonymous__ThrowingRunnable]
 === runAnonymous(ThrowingRunnable)
 
-Variant of _#callAnonymous(Callable)_ that takes a runnable.
-
-[#closeSessionStack__]
-=== closeSessionStack()
-
-closes all open _AuthenticationLayer_ (s) as stacked on the current thread
+As per _#callAnonymous(Callable)_ , but for a runnable.
diff --git a/antora/components/refguide-index/modules/core/pages/index/security/authentication/Authentication.adoc b/antora/components/refguide-index/modules/core/pages/index/security/authentication/Authentication.adoc
index 0ab2559..bdddcfc 100644
--- a/antora/components/refguide-index/modules/core/pages/index/security/authentication/Authentication.adoc
+++ b/antora/components/refguide-index/modules/core/pages/index/security/authentication/Authentication.adoc
@@ -3,18 +3,22 @@
 
 An immutable, serializable value type, that holds details about a user's authentication.
 
+This is really little more than a thin wrapper around xref:refguide:applib:index/services/iactnlayer/InteractionContext.adoc[InteractionContext] , surfaces a number of the security-specific attributes of that field.
+
 == API
 
 [source,java]
 .Authentication.java
 ----
 interface Authentication {
+  String INTERACTION_CONTEXT_KEY;
   String getUserName()     // <.>
   String getValidationCode()     // <.>
   UserMemento getUser()     // <.>
-  ExecutionContext getExecutionContext()     // <.>
+  InteractionContext getInteractionContext()     // <.>
   Type getType()     // <.>
-  Authentication withExecutionContext(ExecutionContext interactionContext)     // <.>
+  Authentication withInteractionContext(InteractionContext interactionContext)     // <.>
+  Optional<Authentication> authenticationFrom(final InteractionContext interactionContext)     // <.>
 }
 ----
 
@@ -33,20 +37,25 @@ A unique code given to this session during authentication.
 --
 The (programmatically) simulated (or actual) user, belonging to this session.
 --
-<.> xref:#getExecutionContext__[getExecutionContext()]
+<.> xref:#getInteractionContext__[getInteractionContext()]
 +
 --
-The xref:refguide:applib:index/services/iactn/ExecutionContext.adoc[ExecutionContext] (programmatically) simulated (or actual), belonging to this session.
+The xref:refguide:applib:index/services/iactnlayer/InteractionContext.adoc[InteractionContext] (programmatically) simulated (or actual), belonging to this session.
 --
 <.> xref:#getType__[getType()]
 +
 --
 To support external security mechanisms such as keycloak, where the validity of the session is defined by headers in the request.
 --
-<.> xref:#withExecutionContext__ExecutionContext[withExecutionContext(ExecutionContext)]
+<.> xref:#withInteractionContext__InteractionContext[withInteractionContext(InteractionContext)]
++
+--
+Returns a copy with given _interactionContext_ .
+--
+<.> xref:#authenticationFrom__InteractionContext[authenticationFrom(InteractionContext)]
 +
 --
-Returns a copy with given _executionContext_ .
+Looks up an xref:refguide:core:index/security/authentication/Authentication.adoc[Authentication] from the provided xref:refguide:applib:index/services/iactnlayer/InteractionContext.adoc[InteractionContext] .
 --
 
 == Members
@@ -68,17 +77,24 @@ This can be used to confirm that this session has been properly created and the
 
 The (programmatically) simulated (or actual) user, belonging to this session.
 
-[#getExecutionContext__]
-=== getExecutionContext()
+[#getInteractionContext__]
+=== getInteractionContext()
 
-The xref:refguide:applib:index/services/iactn/ExecutionContext.adoc[ExecutionContext] (programmatically) simulated (or actual), belonging to this session.
+The xref:refguide:applib:index/services/iactnlayer/InteractionContext.adoc[InteractionContext] (programmatically) simulated (or actual), belonging to this session.
 
 [#getType__]
 === getType()
 
 To support external security mechanisms such as keycloak, where the validity of the session is defined by headers in the request.
 
-[#withExecutionContext__ExecutionContext]
-=== withExecutionContext(ExecutionContext)
+[#withInteractionContext__InteractionContext]
+=== withInteractionContext(InteractionContext)
+
+Returns a copy with given _interactionContext_ .
+
+[#authenticationFrom__InteractionContext]
+=== authenticationFrom(InteractionContext)
+
+Looks up an xref:refguide:core:index/security/authentication/Authentication.adoc[Authentication] from the provided xref:refguide:applib:index/services/iactnlayer/InteractionContext.adoc[InteractionContext] .
 
-Returns a copy with given _executionContext_ .
+If the xref:refguide:applib:index/services/iactnlayer/InteractionContext.adoc[InteractionContext] was created as the result of an authentication process (as opposed to programmatically) then there will be an attached xref:refguide:core:index/security/authentication/Authentication.adoc[Authentication] object.
diff --git a/antora/components/refguide-index/modules/core/pages/index/security/authentication/manager/AnonymousInteractionFactory.adoc b/antora/components/refguide-index/modules/core/pages/index/security/authentication/manager/AnonymousInteractionFactory.adoc
index c5cbc29..917cf63 100644
--- a/antora/components/refguide-index/modules/core/pages/index/security/authentication/manager/AnonymousInteractionFactory.adoc
+++ b/antora/components/refguide-index/modules/core/pages/index/security/authentication/manager/AnonymousInteractionFactory.adoc
@@ -11,12 +11,22 @@ Introduced to allow the AuthenticationManager (module: security) access to the I
 .AnonymousInteractionFactory.java
 ----
 interface AnonymousInteractionFactory {
-  void runAnonymous(ThrowingRunnable runnable)
-  R callAnonymous(Callable<R> callable)
+  void runAnonymous(ThrowingRunnable runnable)     // <.>
+  R callAnonymous(Callable<R> callable)     // <.>
   AnonymousInteractionFactory forTesting()     // <.>
 }
 ----
 
+<.> xref:#runAnonymous__ThrowingRunnable[runAnonymous(ThrowingRunnable)]
++
+--
+Executes a block of code with anonymous credentials.
+--
+<.> xref:#callAnonymous__Callable[callAnonymous(Callable)]
++
+--
+Executes a block of code with anonymous credentials.
+--
 <.> xref:#forTesting__[forTesting()]
 +
 --
@@ -25,6 +35,16 @@ Returns a pass-through implementation, free of side-effects, in support of simpl
 
 == Members
 
+[#runAnonymous__ThrowingRunnable]
+=== runAnonymous(ThrowingRunnable)
+
+Executes a block of code with anonymous credentials.
+
+[#callAnonymous__Callable]
+=== callAnonymous(Callable)
+
+Executes a block of code with anonymous credentials.
+
 [#forTesting__]
 === forTesting()
 
diff --git a/antora/components/refguide-index/modules/extensions/pages/index/commandlog/jdo/mixins/Object_recentCommands.adoc b/antora/components/refguide-index/modules/extensions/pages/index/commandlog/jdo/mixins/Object_recentCommands.adoc
index 2a09989..b0a1444 100644
--- a/antora/components/refguide-index/modules/extensions/pages/index/commandlog/jdo/mixins/Object_recentCommands.adoc
+++ b/antora/components/refguide-index/modules/extensions/pages/index/commandlog/jdo/mixins/Object_recentCommands.adoc
@@ -9,7 +9,6 @@ This mixin contributes a `recentCommands` action to any domain object (unless al
 .Object_recentCommands.java
 ----
 class Object_recentCommands {
-  Object_recentCommands(final Object domainObject)
   List<CommandJdo> act()
   boolean hideAct()     // <.>
 }
@@ -18,7 +17,7 @@ class Object_recentCommands {
 <.> xref:#hideAct__[hideAct()]
 +
 --
-Hide if the contributee is itself xref:refguide:applib:index/mixins/system/HasInteractionId.adoc[HasInteractionId] (commands don't have commands).
+Hide if the mixee is itself xref:refguide:applib:index/mixins/system/HasInteractionId.adoc[HasInteractionId] (commands don't have commands).
 --
 
 == Members
@@ -26,4 +25,4 @@ Hide if the contributee is itself xref:refguide:applib:index/mixins/system/HasIn
 [#hideAct__]
 === hideAct()
 
-Hide if the contributee is itself xref:refguide:applib:index/mixins/system/HasInteractionId.adoc[HasInteractionId] (commands don't have commands).
+Hide if the mixee is itself xref:refguide:applib:index/mixins/system/HasInteractionId.adoc[HasInteractionId] (commands don't have commands).
diff --git a/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/clock/TickingClockService.adoc b/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/clock/TickingClockService.adoc
index d448f58..ff62de7 100644
--- a/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/clock/TickingClockService.adoc
+++ b/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/clock/TickingClockService.adoc
@@ -1,7 +1,7 @@
 = TickingClockService
 :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 [...]
 
-Only enabled for the `secondary` profile, where it sets up the framework to use _TickingFixtureClock_ so that time can be changed dynamically when running.
+Only enabled for the `secondary` profile, where it sets up the framework to use xref:refguide:testing:index/fixtures/applib/clock/clock/TickingFixtureClock.adoc[TickingFixtureClock] so that time can be changed dynamically when running.
 
 As an additional safeguard, if the configuration keys to access the primary are not provided, then the service will not initialize.
 
diff --git a/antora/components/refguide-index/modules/extensions/pages/index/secman/applib/seed/SeedSecurityModuleService.adoc b/antora/components/refguide-index/modules/extensions/pages/index/secman/applib/seed/SeedSecurityModuleService.adoc
index 0d75c57..f04f9df 100644
--- a/antora/components/refguide-index/modules/extensions/pages/index/secman/applib/seed/SeedSecurityModuleService.adoc
+++ b/antora/components/refguide-index/modules/extensions/pages/index/secman/applib/seed/SeedSecurityModuleService.adoc
@@ -1,6 +1,10 @@
 = SeedSecurityModuleService
 :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 [...]
 
+Automatically seeds the built-in roles (and permissions) for both Secman and any other UI features made available by the other modules.
+
+The service just runs the xref:refguide:extensions:index/secman/applib/seed/scripts/SeedUsersAndRolesFixtureScript.adoc[SeedUsersAndRolesFixtureScript] on a callback of _MetamodelEvent_ .
+
 == API
 
 [source,java]
diff --git a/antora/components/refguide-index/modules/extensions/pages/index/secman/applib/seed/scripts/SeedUsersAndRolesFixtureScript.adoc b/antora/components/refguide-index/modules/extensions/pages/index/secman/applib/seed/scripts/SeedUsersAndRolesFixtureScript.adoc
index 69a464d..0e64f33 100644
--- a/antora/components/refguide-index/modules/extensions/pages/index/secman/applib/seed/scripts/SeedUsersAndRolesFixtureScript.adoc
+++ b/antora/components/refguide-index/modules/extensions/pages/index/secman/applib/seed/scripts/SeedUsersAndRolesFixtureScript.adoc
@@ -1,7 +1,9 @@
 = SeedUsersAndRolesFixtureScript
 :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 [...]
 
-This fixture script will be run automatically on start-up by virtue of the fact that the xref:refguide:extensions:index/secman/applib/seed/SeedSecurityModuleService.adoc[SeedSecurityModuleService] is a _org.apache.isis.applib.annotation.DomainService_ and calls the setup during its _SeedSecurityModuleService#onMetamodelEvent(org.apache.isis.core.metamodel.events.MetamodelEvent) init_ ( _javax.annotation.PostConstruct_ ) method.
+Sets up roles and permissions for both Secman itself and also for all other modules that expose UI features for use by end-users.
+
+This fixture script is run automatically on start-up by the xref:refguide:extensions:index/secman/applib/seed/SeedSecurityModuleService.adoc[SeedSecurityModuleService] .
 
 == API
 
diff --git a/antora/components/refguide-index/modules/testing/pages/index/fixtures/applib/fixturescripts/FixtureScripts.adoc b/antora/components/refguide-index/modules/testing/pages/index/fixtures/applib/fixturescripts/FixtureScripts.adoc
index 32baafe..e63f892 100644
--- a/antora/components/refguide-index/modules/testing/pages/index/fixtures/applib/fixturescripts/FixtureScripts.adoc
+++ b/antora/components/refguide-index/modules/testing/pages/index/fixtures/applib/fixturescripts/FixtureScripts.adoc
@@ -13,10 +13,9 @@ class FixtureScripts {
 public static final String LOGICAL_TYPE_NAME;
   public static final String PACKAGE_PREFIX;     // <.>
   FixtureScripts(final FixtureScriptsSpecificationProvider fixtureScriptsSpecificationProvider, final ServiceRegistry serviceRegistry)
-  NonPersistedObjectsStrategy getNonPersistedObjectsStrategy()
-  MultipleExecutionStrategy getMultipleExecutionStrategy()     // <.>
   List<FixtureResult> runFixtureScript(final String fixtureScriptName, final String parameters)     // <.>
   List<FixtureResult> runFixtureScript(final FixtureScript fixtureScript, final String parameters)
+  boolean hideRunFixtureScript()
   String disableRunFixtureScript()
   String default0RunFixtureScript()
   Set<String> choices0RunFixtureScript()
@@ -45,11 +44,6 @@ public static final String LOGICAL_TYPE_NAME;
 --
 The package prefix to search for fixture scripts. This default value will result in no fixture scripts being found. However, normally it will be overridden.
 --
-<.> xref:#getMultipleExecutionStrategy__[getMultipleExecutionStrategy()]
-+
---
-Global setting as to how to handle fixture scripts that are executed more than once. See _MultipleExecutionStrategy_ for more details.
---
 <.> xref:#runFixtureScript__String_String[runFixtureScript(String, String)]
 +
 --
@@ -108,11 +102,6 @@ renamed to _#runBuilder(BuilderScriptAbstract)_
 
 The package prefix to search for fixture scripts. This default value will result in no fixture scripts being found. However, normally it will be overridden.
 
-[#getMultipleExecutionStrategy__]
-=== getMultipleExecutionStrategy()
-
-Global setting as to how to handle fixture scripts that are executed more than once. See _MultipleExecutionStrategy_ for more details.
-
 [#runFixtureScript__String_String]
 === runFixtureScript(String, String)
 
diff --git a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/IResourceContext.adoc b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/IResourceContext.adoc
index ff2a61e..46b4f7c 100644
--- a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/IResourceContext.adoc
+++ b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/IResourceContext.adoc
@@ -26,7 +26,7 @@ interface IResourceContext {
   boolean suppressMemberDisabledReason()
   boolean canEagerlyRender(ManagedObject objectAdapter)     // <.>
   RepresentationService.Intent getIntent()     // <.>
-  AuthenticationContext getAuthenticationContext()
+  AuthenticationProvider getAuthenticationContext()
   SpecificationLoader getSpecificationLoader()
   MetaModelContext getMetaModelContext()
   ServiceRegistry getServiceRegistry()
diff --git a/core/adoc/modules/_overview/pages/about.adoc b/core/adoc/modules/_overview/pages/about.adoc
index 5d2f00d..f18088f 100644
--- a/core/adoc/modules/_overview/pages/about.adoc
+++ b/core/adoc/modules/_overview/pages/about.adoc
@@ -527,7 +527,7 @@ org.apache.isis.testing:isis-testing-integtestsupport-applib:jar:<managed> +
 
 .Document Index Entries
 ****
-xref:refguide:testing:index/fixtures/applib/IsisIntegrationTestAbstractWithFixtures.adoc[IsisIntegrationTestAbstractWithFixtures], xref:refguide:testing:index/fixtures/applib/clock/clock/Clock.adoc[Clock], xref:refguide:testing:index/fixtures/applib/clock/clock/FixtureClock.adoc[FixtureClock], xref:refguide:testing:index/fixtures/applib/clock/clock/TickingFixtureClock.adoc[TickingFixtureClock], xref:refguide:testing:index/fixtures/applib/clock/fixture/TickingClockFixture.adoc[TickingCloc [...]
+xref:refguide:testing:index/fixtures/applib/IsisIntegrationTestAbstractWithFixtures.adoc[IsisIntegrationTestAbstractWithFixtures], xref:refguide:testing:index/fixtures/applib/clock/TickingClockFixture.adoc[TickingClockFixture], xref:refguide:testing:index/fixtures/applib/clock/clock/Clock.adoc[Clock], xref:refguide:testing:index/fixtures/applib/clock/clock/FixtureClock.adoc[FixtureClock], xref:refguide:testing:index/fixtures/applib/clock/clock/TickingFixtureClock.adoc[TickingFixtureClock [...]
 ****
 
 |Apache Isis Tst - H2 Console (parent)
@@ -1503,6 +1503,7 @@ default (Java) programming model.
 ****
 o.a.i.applib.annotation.DomainObject +
 o.a.i.applib.annotation.DomainService +
+o.a.i.applib.annotation.Value +
 o.a.i.applib.services.commanddto.conmap.ContentMappingServiceForCommandDto +
 o.a.i.applib.services.commanddto.conmap.ContentMappingServiceForCommandsDto +
 o.a.i.applib.services.commanddto.processor.spi.CommandDtoProcessorServiceIdentity +
@@ -1525,7 +1526,7 @@ org.jmock:jmock:jar:<managed> +
 
 .Document Index Entries
 ****
-xref:refguide:applib:index/AbstractViewModel.adoc[AbstractViewModel], xref:refguide:applib:index/Identifier.adoc[Identifier], xref:refguide:applib:index/IsisModuleApplib.adoc[IsisModuleApplib], xref:refguide:applib:index/RecreatableDomainObject.adoc[RecreatableDomainObject], xref:refguide:applib:index/ViewModel.adoc[ViewModel], xref:refguide:applib:index/adapters/AbstractValueSemanticsProvider.adoc[AbstractValueSemanticsProvider], xref:refguide:applib:index/adapters/DefaultsProvider.adoc [...]
+xref:refguide:applib:index/AbstractViewModel.adoc[AbstractViewModel], xref:refguide:applib:index/Identifier.adoc[Identifier], xref:refguide:applib:index/IsisModuleApplib.adoc[IsisModuleApplib], xref:refguide:applib:index/RecreatableDomainObject.adoc[RecreatableDomainObject], xref:refguide:applib:index/ViewModel.adoc[ViewModel], xref:refguide:applib:index/adapters/AbstractValueSemanticsProvider.adoc[AbstractValueSemanticsProvider], xref:refguide:applib:index/adapters/DefaultsProvider.adoc [...]
 ****
 
 |Apache Isis Core - Code Gen (ByteBuddy)
@@ -3293,9 +3294,9 @@ Directory: /valuetypes/asciidoc/ui
 ----
 |.Dependencies
 ****
-com.github.jnr:jnr-constants:jar:0.10.1 +
-com.github.jnr:jnr-enxio:jar:0.32.5 +
-com.github.jnr:jnr-posix:jar:3.1.6 +
+com.github.jnr:jnr-constants:jar:0.10.2 +
+com.github.jnr:jnr-enxio:jar:0.32.6 +
+com.github.jnr:jnr-posix:jar:3.1.7 +
 org.apache.isis.core:isis-core-metamodel:jar:<managed> +
 org.apache.isis.valuetypes:isis-valuetypes-asciidoc-applib:jar:<managed> +
 org.asciidoctor:asciidoctorj:jar:${asciidoctorj.version} +
@@ -4392,7 +4393,7 @@ org.apache.isis.testing:isis-testing-fixtures-applib:jar:<managed> +
 
 .Document Index Entries
 ****
-xref:refguide:extensions:index/secman/applib/IsisModuleExtSecmanApplib.adoc[IsisModuleExtSecmanApplib], xref:refguide:extensions:index/secman/applib/SecmanConfiguration.adoc[SecmanConfiguration], xref:refguide:extensions:index/secman/applib/permission/dom/ApplicationPermission.adoc[ApplicationPermission], xref:refguide:extensions:index/secman/applib/permission/dom/ApplicationPermissionMode.adoc[ApplicationPermissionMode], xref:refguide:extensions:index/secman/applib/permission/dom/Applic [...]
+xref:refguide:extensions:index/secman/applib/IsisModuleExtSecmanApplib.adoc[IsisModuleExtSecmanApplib], xref:refguide:extensions:index/secman/applib/SecmanConfiguration.adoc[SecmanConfiguration], xref:refguide:extensions:index/secman/applib/permission/dom/ApplicationPermission.adoc[ApplicationPermission], xref:refguide:extensions:index/secman/applib/permission/dom/ApplicationPermissionMode.adoc[ApplicationPermissionMode], xref:refguide:extensions:index/secman/applib/permission/dom/Applic [...]
 ****
 
 |Apache Isis Ext - Sec Man Encryption (Using jbcrypt)
@@ -5952,7 +5953,24 @@ Artifact: isis-regressiontests-stable
 Type: jar
 Directory: /regressiontests/stable
 ----
-|.Dependencies
+|.Components
+****
+o.a.i.testdomain.applayer.ApplicationLayerTestFactory +
+o.a.i.testdomain.applayer.ApplicationLayerTestFactory$PreCommitListener +
+o.a.i.testdomain.applayer.publishing.CommandSubscriberForTesting +
+o.a.i.testdomain.applayer.publishing.EntityChangesSubscriberForTesting +
+o.a.i.testdomain.applayer.publishing.EntityPropertyChangeSubscriberForTesting +
+o.a.i.testdomain.applayer.publishing.ExecutionSubscriberForTesting +
+o.a.i.testdomain.conf.Configuration_headless$HeadlessCommandSupport +
+o.a.i.testdomain.jdo.JdoInventoryDao +
+o.a.i.testdomain.jpa.JpaInventoryDao +
+o.a.i.testdomain.jpa.springdata.EmployeeRepository +
+o.a.i.testdomain.util.interaction.InteractionBoundaryProbe +
+o.a.i.testdomain.util.kv.KVStoreForTesting +
+o.a.i.testdomain.util.rest.RestEndpointService +
+****
+
+.Dependencies
 ****
 org.apache.isis.extensions:isis-extensions-cors-impl:jar:<managed> +
 org.glassfish.jersey.ext:jersey-spring5:jar:<managed> +
@@ -6412,7 +6430,23 @@ Artifact: isis-viewer-vaadin-ui
 Type: jar
 Directory: /incubator/viewers/vaadin/ui
 ----
-|.Dependencies
+|.Components
+****
+o.a.i.incubator.viewer.vaadin.ui.auth.LogoutHandlerVaa +
+o.a.i.incubator.viewer.vaadin.ui.auth.VaadinAuthenticationHandler +
+o.a.i.incubator.viewer.vaadin.ui.components.UiComponentFactoryVaa +
+o.a.i.incubator.viewer.vaadin.ui.components.blob.BlobFieldFactory +
+o.a.i.incubator.viewer.vaadin.ui.components.clob.ClobFieldFactory +
+o.a.i.incubator.viewer.vaadin.ui.components.markup.MarkupFieldFactory +
+o.a.i.incubator.viewer.vaadin.ui.components.other.FallbackFieldFactory +
+o.a.i.incubator.viewer.vaadin.ui.components.temporal.TemporalFieldFactory +
+o.a.i.incubator.viewer.vaadin.ui.components.text.TextFieldFactory +
+o.a.i.incubator.viewer.vaadin.ui.components.text.uuid.UuidFieldFactory +
+o.a.i.incubator.viewer.vaadin.ui.pages.main.UiActionHandlerVaa +
+o.a.i.incubator.viewer.vaadin.ui.pages.main.UiContextVaaDefault +
+****
+
+.Dependencies
 ****
 com.vaadin:vaadin-spring:jar:<managed> +
 commons-fileupload:commons-fileupload:jar:1.4 +

[isis] 02/03: ISIS-2483: regenerated refguide index (ctd)

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit d5aac9ac3ce38ac4cf4b838a5a7d4a22cb63650a
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Thu Jun 10 07:06:21 2021 +0100

    ISIS-2483: regenerated refguide index (ctd)
---
 ...actionContext.adoc => InteractionProvider.adoc} | 28 +++++--
 .../InteractionContext.adoc}                       | 38 +++++++--
 .../services/iactnlayer/InteractionLayer.adoc      | 18 +++++
 .../services/iactnlayer/InteractionService.adoc    | 90 ++++++++++++++++++++++
 .../AbstractRoleAndPermissionsFixtureScript.adoc}  | 11 ++-
 .../AbstractUserAndRolesFixtureScript.adoc}        | 13 ++--
 .../clock/{fixture => }/TickingClockFixture.adoc   |  0
 ...xecutionParametersServiceAutoConfiguration.adoc | 27 -------
 .../FixtureScriptsSpecification.adoc               |  0
 ...iptsSpecificationProviderAutoConfiguration.adoc | 27 +++++++
 10 files changed, 201 insertions(+), 51 deletions(-)

diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/iactn/InteractionContext.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/iactn/InteractionProvider.adoc
similarity index 76%
rename from antora/components/refguide-index/modules/applib/pages/index/services/iactn/InteractionContext.adoc
rename to antora/components/refguide-index/modules/applib/pages/index/services/iactn/InteractionProvider.adoc
index be398d3..1c6b2ce 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/iactn/InteractionContext.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/iactn/InteractionProvider.adoc
@@ -1,4 +1,4 @@
-= InteractionContext _(interface)_
+= InteractionProvider _(interface)_
 :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 [...]
 
 Provides the current thread's xref:refguide:applib:index/services/iactn/Interaction.adoc[Interaction] .
@@ -8,13 +8,15 @@ An xref:refguide:applib:index/services/iactn/Interaction.adoc[Interaction] conta
 == API
 
 [source,java]
-.InteractionContext.java
+.InteractionProvider.java
 ----
-interface InteractionContext {
+interface InteractionProvider {
   boolean isInInteraction()     // <.>
   Optional<Interaction> currentInteraction()     // <.>
+  Optional<InteractionContext> currentInteractionContext()     // <.>
   Optional<UUID> getInteractionId()     // <.>
   Interaction currentInteractionElseFail()
+  int getInteractionLayerCount()     // <.>
 }
 ----
 
@@ -28,11 +30,21 @@ Whether there is a currently active xref:refguide:applib:index/services/iactn/In
 --
 Optionally, the currently active xref:refguide:applib:index/services/iactn/Interaction.adoc[Interaction] for the calling thread.
 --
+<.> xref:#currentInteractionContext__[currentInteractionContext()]
++
+--
+Optionally, the currently active xref:refguide:applib:index/services/iactnlayer/InteractionContext.adoc[InteractionContext] for the calling thread.
+--
 <.> xref:#getInteractionId__[getInteractionId()]
 +
 --
 Unique id of the current request- or test-scoped xref:refguide:applib:index/services/iactn/Interaction.adoc[Interaction] .
 --
+<.> xref:#getInteractionLayerCount__[getInteractionLayerCount()]
++
+--
+interaction-layer-stack size
+--
 
 == Members
 
@@ -46,11 +58,17 @@ Whether there is a currently active xref:refguide:applib:index/services/iactn/In
 
 Optionally, the currently active xref:refguide:applib:index/services/iactn/Interaction.adoc[Interaction] for the calling thread.
 
+[#currentInteractionContext__]
+=== currentInteractionContext()
+
+Optionally, the currently active xref:refguide:applib:index/services/iactnlayer/InteractionContext.adoc[InteractionContext] for the calling thread.
+
 [#getInteractionId__]
 === getInteractionId()
 
 Unique id of the current request- or test-scoped xref:refguide:applib:index/services/iactn/Interaction.adoc[Interaction] .
 
-include::hooks/InteractionContext_010-implementation.adoc[]
+[#getInteractionLayerCount__]
+=== getInteractionLayerCount()
 
-include::hooks/InteractionContext_020-examples-and-usage.adoc[]
+interaction-layer-stack size
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/iactn/ExecutionContext.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/iactnlayer/InteractionContext.adoc
similarity index 50%
rename from antora/components/refguide-index/modules/applib/pages/index/services/iactn/ExecutionContext.adoc
rename to antora/components/refguide-index/modules/applib/pages/index/services/iactnlayer/InteractionContext.adoc
index fa0fd78..c2a711d 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/iactn/ExecutionContext.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/iactnlayer/InteractionContext.adoc
@@ -1,27 +1,51 @@
-= ExecutionContext
+= InteractionContext
 :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 [...]
 
-Provides the user and scenario specific environment for an xref:refguide:applib:index/services/iactn/Execution.adoc[Execution]
+Provides the user and scenario specific environment for an xref:refguide:applib:index/services/iactn/Interaction.adoc[Interaction] .
 
 == API
 
 [source,java]
-.ExecutionContext.java
+.InteractionContext.java
 ----
-class ExecutionContext {
-  ExecutionContext ofUserWithSystemDefaults(final UserMemento user)     // <.>
+class InteractionContext {
+  void putAttribute(String key, Serializable value)
+  Optional<T> getAttribute(String key, Class<T> castTo)
+  boolean equals(Object o)     // <.>
+  int hashCode()     // <.>
+  InteractionContext ofUserWithSystemDefaults(final UserMemento user)     // <.>
 }
 ----
 
+<.> xref:#equals__Object[equals(Object)]
++
+--
+We exclude _#attributes_ .
+--
+<.> xref:#hashCode__[hashCode()]
++
+--
+We exclude _#attributes_ .
+--
 <.> xref:#ofUserWithSystemDefaults__UserMemento[ofUserWithSystemDefaults(UserMemento)]
 +
 --
-Creates a new xref:refguide:applib:index/services/iactn/ExecutionContext.adoc[ExecutionContext] with the specified user and system defaults for clock, locale and time-zone.
+Creates a new xref:refguide:applib:index/services/iactnlayer/InteractionContext.adoc[InteractionContext] with the specified user and system defaults for clock, locale and time-zone.
 --
 
 == Members
 
+[#equals__Object]
+=== equals(Object)
+
+We exclude _#attributes_ .
+
+[#hashCode__]
+=== hashCode()
+
+We exclude _#attributes_ .
+
 [#ofUserWithSystemDefaults__UserMemento]
 === ofUserWithSystemDefaults(UserMemento)
 
-Creates a new xref:refguide:applib:index/services/iactn/ExecutionContext.adoc[ExecutionContext] with the specified user and system defaults for clock, locale and time-zone.
+Creates a new xref:refguide:applib:index/services/iactnlayer/InteractionContext.adoc[InteractionContext] with the specified user and system defaults for clock, locale and time-zone.
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/iactnlayer/InteractionLayer.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/iactnlayer/InteractionLayer.adoc
new file mode 100644
index 0000000..9179f68
--- /dev/null
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/iactnlayer/InteractionLayer.adoc
@@ -0,0 +1,18 @@
+= InteractionLayer
+: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 [...]
+
+Binds an xref:refguide:applib:index/services/iactn/Interaction.adoc[Interaction] ("what" is being executed) with an xref:refguide:applib:index/services/iactnlayer/InteractionContext.adoc[InteractionContext] ("who" is executing, "when" and "where").
+
+xref:refguide:applib:index/services/iactnlayer/InteractionLayer.adoc[InteractionLayer] s are so called because they may be nested (held in a stack). For example the _org.apache.isis.applib.services.sudo.SudoService_ creates a new temporary layer with a different _InteractionContext#getUser() user_ , while fixtures that mock the clock switch out the _InteractionContext#getClock() clock_ .
+
+The stack of layers is per-thread, managed by xref:refguide:applib:index/services/iactnlayer/InteractionService.adoc[InteractionService] as a thread-local).
+
+== API
+
+[source,java]
+.InteractionLayer.java
+----
+class InteractionLayer {
+}
+----
+
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/iactnlayer/InteractionService.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/iactnlayer/InteractionService.adoc
new file mode 100644
index 0000000..fe56da3
--- /dev/null
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/iactnlayer/InteractionService.adoc
@@ -0,0 +1,90 @@
+= InteractionService _(interface)_
+: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 [...]
+
+A low-level service to programmatically "connect" (or create a session, or interact with; choose your term) the the framework's runtime.
+
+This service is used internally by the framework itself, for example when a viewer receives a request a new xref:refguide:applib:index/services/iactnlayer/InteractionLayer.adoc[InteractionLayer] is created for the duration of the users's interaction. It is also used by integration tests, to be able to connect to the database.
+
+You could think of this as analogous to an `HttpRequest` , or a JPA `EntityManager` or JDO `PersistenceManager` .
+
+There are two main APIs exposed. One is to _#openInteraction(InteractionContext) open_ a new xref:refguide:applib:index/services/iactnlayer/InteractionLayer.adoc[InteractionLayer] , to be _#closeInteractionLayers() closed later_ . The other is to execute a _Callable_ or _ThrowingRunnable runnable_ within the duration of an xref:refguide:applib:index/services/iactnlayer/InteractionLayer.adoc[InteractionLayer] , wrapping up automatically. This is what is used by _org.apache.isis.applib.ser [...]
+
+== API
+
+[source,java]
+.InteractionService.java
+----
+interface InteractionService {
+  InteractionLayer openInteraction()     // <.>
+  InteractionLayer openInteraction(InteractionContext interactionContext)     // <.>
+  boolean isInInteraction()     // <.>
+  R call(InteractionContext interactionContext, Callable<R> callable)     // <.>
+  void run(InteractionContext interactionContext, ThrowingRunnable runnable)     // <.>
+  void closeInteractionLayers()     // <.>
+}
+----
+
+<.> xref:#openInteraction__[openInteraction()]
++
+--
+If present, reuses the current top level xref:refguide:applib:index/services/iactnlayer/InteractionLayer.adoc[InteractionLayer] , otherwise creates a new anonymous one.
+--
+<.> xref:#openInteraction__InteractionContext[openInteraction(InteractionContext)]
++
+--
+Returns a new or reused xref:refguide:applib:index/services/iactnlayer/InteractionLayer.adoc[InteractionLayer] that is a holder of the xref:refguide:applib:index/services/iactnlayer/InteractionContext.adoc[InteractionContext] on top of the current thread's interaction layer stack.
+--
+<.> xref:#isInInteraction__[isInInteraction()]
+<.> xref:#call__InteractionContext_Callable[call(InteractionContext, Callable)]
++
+--
+Executes a block of code with a new or reused xref:refguide:applib:index/services/iactnlayer/InteractionContext.adoc[InteractionContext] using a new or reused xref:refguide:applib:index/services/iactnlayer/InteractionLayer.adoc[InteractionLayer] .
+--
+<.> xref:#run__InteractionContext_ThrowingRunnable[run(InteractionContext, ThrowingRunnable)]
++
+--
+Variant of _#call(InteractionContext, Callable)_ that takes a runnable.
+--
+<.> xref:#closeInteractionLayers__[closeInteractionLayers()]
++
+--
+closes all open xref:refguide:applib:index/services/iactnlayer/InteractionLayer.adoc[InteractionLayer] (s) as stacked on the current thread
+--
+
+== Members
+
+[#openInteraction__]
+=== openInteraction()
+
+If present, reuses the current top level xref:refguide:applib:index/services/iactnlayer/InteractionLayer.adoc[InteractionLayer] , otherwise creates a new anonymous one.
+
+[#openInteraction__InteractionContext]
+=== openInteraction(InteractionContext)
+
+Returns a new or reused xref:refguide:applib:index/services/iactnlayer/InteractionLayer.adoc[InteractionLayer] that is a holder of the xref:refguide:applib:index/services/iactnlayer/InteractionContext.adoc[InteractionContext] on top of the current thread's interaction layer stack.
+
+If available reuses an existing xref:refguide:applib:index/services/iactnlayer/InteractionContext.adoc[InteractionContext] , otherwise creates a new one.
+
+The xref:refguide:applib:index/services/iactnlayer/InteractionLayer.adoc[InteractionLayer] represents a user's span of activities interacting with the application. These can be stacked (usually temporarily), for example for a sudo session or to mock the clock. The stack is later closed using _#closeInteractionLayers()_ .
+
+[#isInInteraction__]
+=== isInInteraction()
+
+[#call__InteractionContext_Callable]
+=== call(InteractionContext, Callable)
+
+Executes a block of code with a new or reused xref:refguide:applib:index/services/iactnlayer/InteractionContext.adoc[InteractionContext] using a new or reused xref:refguide:applib:index/services/iactnlayer/InteractionLayer.adoc[InteractionLayer] .
+
+If there is currently no xref:refguide:applib:index/services/iactnlayer/InteractionLayer.adoc[InteractionLayer] a new one is created.
+
+If there is currently an xref:refguide:applib:index/services/iactnlayer/InteractionLayer.adoc[InteractionLayer] that has an equal xref:refguide:applib:index/services/iactnlayer/InteractionContext.adoc[InteractionContext] to the given one, it is reused, otherwise a new one is created.
+
+[#run__InteractionContext_ThrowingRunnable]
+=== run(InteractionContext, ThrowingRunnable)
+
+Variant of _#call(InteractionContext, Callable)_ that takes a runnable.
+
+[#closeInteractionLayers__]
+=== closeInteractionLayers()
+
+closes all open xref:refguide:applib:index/services/iactnlayer/InteractionLayer.adoc[InteractionLayer] (s) as stacked on the current thread
diff --git a/antora/components/refguide-index/modules/testing/pages/index/fixtures/applib/clock/fixture/TickingClockFixture.adoc b/antora/components/refguide-index/modules/extensions/pages/index/secman/applib/role/fixtures/AbstractRoleAndPermissionsFixtureScript.adoc
similarity index 71%
copy from antora/components/refguide-index/modules/testing/pages/index/fixtures/applib/clock/fixture/TickingClockFixture.adoc
copy to antora/components/refguide-index/modules/extensions/pages/index/secman/applib/role/fixtures/AbstractRoleAndPermissionsFixtureScript.adoc
index 4bf657c..b7b76f9 100644
--- a/antora/components/refguide-index/modules/testing/pages/index/fixtures/applib/clock/fixture/TickingClockFixture.adoc
+++ b/antora/components/refguide-index/modules/extensions/pages/index/secman/applib/role/fixtures/AbstractRoleAndPermissionsFixtureScript.adoc
@@ -1,15 +1,14 @@
-= TickingClockFixture
+= AbstractRoleAndPermissionsFixtureScript
 :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 [...]
 
+Convenience fixture script intended to be easily subclassed in order to set up an _org.apache.isis.extensions.secman.applib.role.dom.ApplicationRole_ with associated permissions.
+
 == API
 
 [source,java]
-.TickingClockFixture.java
+.AbstractRoleAndPermissionsFixtureScript.java
 ----
-class TickingClockFixture {
-  String getDate()
-  TickingClockFixture setDate(final String date)
-  FixtureScripts.MultipleExecutionStrategy getMultipleExecutionStrategy()
+class AbstractRoleAndPermissionsFixtureScript {
 }
 ----
 
diff --git a/antora/components/refguide-index/modules/testing/pages/index/fixtures/applib/clock/fixture/TickingClockFixture.adoc b/antora/components/refguide-index/modules/extensions/pages/index/secman/applib/user/fixtures/AbstractUserAndRolesFixtureScript.adoc
similarity index 54%
copy from antora/components/refguide-index/modules/testing/pages/index/fixtures/applib/clock/fixture/TickingClockFixture.adoc
copy to antora/components/refguide-index/modules/extensions/pages/index/secman/applib/user/fixtures/AbstractUserAndRolesFixtureScript.adoc
index 4bf657c..ea84753 100644
--- a/antora/components/refguide-index/modules/testing/pages/index/fixtures/applib/clock/fixture/TickingClockFixture.adoc
+++ b/antora/components/refguide-index/modules/extensions/pages/index/secman/applib/user/fixtures/AbstractUserAndRolesFixtureScript.adoc
@@ -1,15 +1,16 @@
-= TickingClockFixture
+= AbstractUserAndRolesFixtureScript
 :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 [...]
 
+Convenience fixture script intended to be easily subclassed in order to set up an xref:refguide:extensions:index/secman/applib/user/dom/ApplicationUser.adoc[ApplicationUser] with associated roles.
+
 == API
 
 [source,java]
-.TickingClockFixture.java
+.AbstractUserAndRolesFixtureScript.java
 ----
-class TickingClockFixture {
-  String getDate()
-  TickingClockFixture setDate(final String date)
-  FixtureScripts.MultipleExecutionStrategy getMultipleExecutionStrategy()
+class AbstractUserAndRolesFixtureScript {
+  AbstractUserAndRolesFixtureScript(final String username, final String password, final AccountType accountType, final Can<String> roleNames)
+  AbstractUserAndRolesFixtureScript(final String username, final String password, final String emailAddress, final String tenancyPath, final AccountType accountType, final Can<String> roleNames)
 }
 ----
 
diff --git a/antora/components/refguide-index/modules/testing/pages/index/fixtures/applib/clock/fixture/TickingClockFixture.adoc b/antora/components/refguide-index/modules/testing/pages/index/fixtures/applib/clock/TickingClockFixture.adoc
similarity index 100%
rename from antora/components/refguide-index/modules/testing/pages/index/fixtures/applib/clock/fixture/TickingClockFixture.adoc
rename to antora/components/refguide-index/modules/testing/pages/index/fixtures/applib/clock/TickingClockFixture.adoc
diff --git a/antora/components/refguide-index/modules/testing/pages/index/fixtures/applib/fixturescripts/ExecutionParametersServiceAutoConfiguration.adoc b/antora/components/refguide-index/modules/testing/pages/index/fixtures/applib/fixturescripts/ExecutionParametersServiceAutoConfiguration.adoc
deleted file mode 100644
index 70dcc72..0000000
--- a/antora/components/refguide-index/modules/testing/pages/index/fixtures/applib/fixturescripts/ExecutionParametersServiceAutoConfiguration.adoc
+++ /dev/null
@@ -1,27 +0,0 @@
-= ExecutionParametersServiceAutoConfiguration
-: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 [...]
-
-Provides a fallback implementation of xref:refguide:testing:index/fixtures/applib/fixturescripts/ExecutionParametersService.adoc[ExecutionParametersService] if none has been provided explicitly by the application itself.
-
-== API
-
-[source,java]
-.ExecutionParametersServiceAutoConfiguration.java
-----
-class ExecutionParametersServiceAutoConfiguration {
-  ExecutionParametersService executionParametersService()     // <.>
-}
-----
-
-<.> xref:#executionParametersService__[executionParametersService()]
-+
---
-Returns an implementation of xref:refguide:testing:index/fixtures/applib/fixturescripts/ExecutionParametersService.adoc[ExecutionParametersService] that simply instantiates xref:refguide:testing:index/fixtures/applib/fixturescripts/ExecutionParameters.adoc[ExecutionParameters] with the provided parameters (so that the latter parses the parameters and presents them to xref:refguide:testing:index/fixtures/applib/fixturescripts/FixtureScripts.adoc[FixtureScripts] for inclusion within _org.a [...]
---
-
-== Members
-
-[#executionParametersService__]
-=== executionParametersService()
-
-Returns an implementation of xref:refguide:testing:index/fixtures/applib/fixturescripts/ExecutionParametersService.adoc[ExecutionParametersService] that simply instantiates xref:refguide:testing:index/fixtures/applib/fixturescripts/ExecutionParameters.adoc[ExecutionParameters] with the provided parameters (so that the latter parses the parameters and presents them to xref:refguide:testing:index/fixtures/applib/fixturescripts/FixtureScripts.adoc[FixtureScripts] for inclusion within _org.a [...]
diff --git a/antora/components/refguide-index/modules/testing/pages/index/fixtures/applib/fixturespec/FixtureScriptsSpecification.adoc b/antora/components/refguide-index/modules/testing/pages/index/fixtures/applib/fixturescripts/FixtureScriptsSpecification.adoc
similarity index 100%
rename from antora/components/refguide-index/modules/testing/pages/index/fixtures/applib/fixturespec/FixtureScriptsSpecification.adoc
rename to antora/components/refguide-index/modules/testing/pages/index/fixtures/applib/fixturescripts/FixtureScriptsSpecification.adoc
diff --git a/antora/components/refguide-index/modules/testing/pages/index/fixtures/applib/fixturescripts/FixtureScriptsSpecificationProviderAutoConfiguration.adoc b/antora/components/refguide-index/modules/testing/pages/index/fixtures/applib/fixturescripts/FixtureScriptsSpecificationProviderAutoConfiguration.adoc
new file mode 100644
index 0000000..90b3176
--- /dev/null
+++ b/antora/components/refguide-index/modules/testing/pages/index/fixtures/applib/fixturescripts/FixtureScriptsSpecificationProviderAutoConfiguration.adoc
@@ -0,0 +1,27 @@
+= FixtureScriptsSpecificationProviderAutoConfiguration
+: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 [...]
+
+Provides a fallback implementation of _FixtureScriptsSpecificationProvider_ if none has been provided explicitly by the application itself.
+
+== API
+
+[source,java]
+.FixtureScriptsSpecificationProviderAutoConfiguration.java
+----
+class FixtureScriptsSpecificationProviderAutoConfiguration {
+  FixtureScriptsSpecificationProvider fixtureScriptsSpecificationProvider(final IsisConfiguration isisConfiguration)     // <.>
+}
+----
+
+<.> xref:#fixtureScriptsSpecificationProvider__IsisConfiguration[fixtureScriptsSpecificationProvider(IsisConfiguration)]
++
+--
+Returns an implementation of _FixtureScriptsSpecificationProvider_ that uses configuration properties under `isis.testing.fixtures.fixture-scripts-specification` .
+--
+
+== Members
+
+[#fixtureScriptsSpecificationProvider__IsisConfiguration]
+=== fixtureScriptsSpecificationProvider(IsisConfiguration)
+
+Returns an implementation of _FixtureScriptsSpecificationProvider_ that uses configuration properties under `isis.testing.fixtures.fixture-scripts-specification` .

[isis] 03/03: ISIS-2483: further improvements to secman docs.

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 96d097a83b602ea031b6d776760574d0097daa82
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Thu Jun 10 07:08:21 2021 +0100

    ISIS-2483: further improvements to secman docs.
---
 .../adoc/modules/secman/pages/setting-up.adoc      | 96 ++++++++++++++++------
 1 file changed, 69 insertions(+), 27 deletions(-)

diff --git a/extensions/security/secman/adoc/modules/secman/pages/setting-up.adoc b/extensions/security/secman/adoc/modules/secman/pages/setting-up.adoc
index 5cc54dd..70da767 100644
--- a/extensions/security/secman/adoc/modules/secman/pages/setting-up.adoc
+++ b/extensions/security/secman/adoc/modules/secman/pages/setting-up.adoc
@@ -182,11 +182,11 @@ Impersonate other users (from the "Prototyping" menu, and mixins)
 
 The full list can be found by searching for subclasses of xref:refguide:extensions:index/secman/applib/role/fixtures/ AbstractRoleAndPermissionsFixtureScript.adoc[AbstractRoleAndPermissionsFixtureScript].
 
+[NOTE]
+====
+There is no fixture script to setup a role to access the UI features of the applib, or to run fixture scripts; these are included automatically as part of the SecMan's own "regular user".
+====
 
-== Creating Users
-
-Creating regular applications users in production use can be done manually by the security super-user, or can be done programmatically through xref:refguide:extensions:index/secman/applib/user/dom/ApplicationUserRepository.adoc[ApplicationUserRepository].
-This will return an xref:refguide:extensions:index/secman/applib/user/dom/ApplicationUser.adoc[ApplicationUser] which can then be granted roles, for example using `addRoleToUser()` API of xref:refguide:extensions:index/secman/applib/role/dom/ApplicationRoleRepository.adoc[ApplicationRoleRepository].
 
 
 == Fixture scripts and seed service, to setup users and roles
@@ -274,6 +274,46 @@ public class RoleAndPerms__UserRw extends AbstractRoleAndPermissionsFixtureScrip
 }
 ----
 
+* to set up a user bob with access to this role plus all available <<default-roles, built-in roles>>:
++
+[source,java]
+.UserToRole__bob_allRoles.java
+----
+public class UserToRole__bob_allRoles extends AbstractUserAndRolesFixtureScript {
+
+  public UserToRole__bob_allRoles() {
+    super(
+      "bob", "pass",          // <.>
+      "bob@cratchet.com",     // <.>
+      "/",                    // <.>
+      AccountType.LOCAL,      // <.>
+      Can.of(
+        RoleAndPerms__UserRw.ROLE_NAME                                            // <.>
+        , IsisConfiguration.Extensions.Secman.Seed.REGULAR_USER_ROLE_NAME_DEFAULT // <.>
+        , IsisAppFeatureRoleAndPermissions.ROLE_NAME                   // <.>
+        , IsisPersistenceJdoMetaModelRoleAndPermissions.ROLE_NAME      // <7>
+        , IsisExtH2ConsoleRoleAndPermissions.ROLE_NAME                 // <7>
+        , IsisViewerRestfulObjectsSwaggerRoleAndPermissions.ROLE_NAME  // <7>
+        , IsisSudoImpersonateRoleAndPermissions.ROLE_NAME              // <7>
+        , IsisConfigurationRoleAndPermissions.ROLE_NAME                // <7>
+      ));
+  }
+}
+----
+
+<.> username and password.
+The password is encrypted, not stored in plain text.
+<.> email address
+<.> application tenancy
+<.> local account (rather than delegated, see xref:setting-up-with-shiro.adoc[])
+<.> application-specific roles
+<.> regular user access (always required).
+*Note* that this expects that the default regular user role has been left as its default value.
+<.> specific access to framework features, see <<default-roles,above>>
+
+
+We can also veto individual members:
+
 * to set up a "no-delete" role that vetoes the ability to delete objects:
 +
 [source,java]
@@ -304,33 +344,26 @@ public class RoleAndPerms__NoDelete extends AbstractRoleAndPermissionsFixtureScr
 .UserToRole__joe_UserRw_but_NoDelete.java
 ----
 public class UserToRole__joe_UserRw_but_NoDelete
-        extends AbstractUserAndRolesFixtureScript {
-
-    public UserToRole__joe_UserRw_but_NoDelete_or_isis2619Prop() {
-        super(
-          "joe", "pass",                                               // <.>
-          "joe@italy.com",                                             // <.>
-          "/ITA",                                                      // <.>
-          AccountType.LOCAL,                                           // <.>
-          Can.of(
-            RoleAndPerms__UserRw.ROLE_NAME                             // <.>
-            , RoleAndPerms__NoDelete.ROLE_NAME                         // <5>
-            , SecmanConfiguration.DEFAULT_REGULAR_USER_ROLE_NAME       // <.>
-            , IsisExtH2ConsoleRoleAndPermissions.ROLE_NAME             // <.>
-            , IsisPersistenceJdoMetaModelRoleAndPermissions.ROLE_NAME  // <7>
-          ));
-    }
+    extends AbstractUserAndRolesFixtureScript {
+
+  public UserToRole__joe_UserRw_but_NoDelete() {
+    super(
+      "joe", "pass",
+      "joe@italy.com",
+      "/ITA",
+      AccountType.LOCAL,
+      Can.of(
+        RoleAndPerms__UserRw.ROLE_NAME                                           // <.>
+        ,RoleAndPerms__NoDelete.ROLE_NAME                                        // <1>
+        ,IsisConfiguration.Extensions.Secman.Seed.REGULAR_USER_ROLE_NAME_DEFAULT // <.>
+    ));
+  }
 }
 ----
-<.> username and password
-<.> email address
-<.> application tenancy
-<.> local account (rather than delegated, see xref:setting-up-with-shiro.adoc[])
 <.> application-specific roles
 <.> regular user access (always required)
 <.> specific access to framework features, see <<default-roles,above>>
 
-
 To seed in fixture scripts we could create a top-level `CustomRolesAndUsers` script (as mentioned in <<custom-seed-service,above>>).
 This would then look something like:
 
@@ -342,9 +375,10 @@ public class CustomRolesAndUsers extends FixtureScript {
     @Override protected void execute(ExecutionContext executionContext) {
         executionContext.executeChildren(this,
                 // roles
-                new RoleAndPerms__HelloRw(),
+                new RoleAndPerms__HelloRw()
                 // users
-                new UserToRole__joe_UserRw_but_NoDelete()
+                , new UserToRole__bob_allRoles()
+                , new UserToRole__joe_UserRw_but_NoDelete()
         );
     }
 }
@@ -353,6 +387,14 @@ public class CustomRolesAndUsers extends FixtureScript {
 The custom seed service would then ensure that these users/roles existed on startup.
 
 
+== Creating Users and Roles
+
+Once a super-user admin account has been seeded in, regular users can be created manually by logging in as that security super-user.
+
+Alternatively, users can be created programmatically through xref:refguide:extensions:index/secman/applib/user/dom/ApplicationUserRepository.adoc[ApplicationUserRepository].
+This will return an xref:refguide:extensions:index/secman/applib/user/dom/ApplicationUser.adoc[ApplicationUser] which can then be granted roles, for example using `addRoleToUser()` API of xref:refguide:extensions:index/secman/applib/role/dom/ApplicationRoleRepository.adoc[ApplicationRoleRepository].
+
+
 [#user-registration-aka-sign-up]
 == User registration (aka Sign-up)