You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2022/06/30 07:04:39 UTC

[isis] branch master updated: ISIS-3084: Wrapper: removal of collection modification events

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

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


The following commit(s) were added to refs/heads/master by this push:
     new c47eb31746 ISIS-3084: Wrapper: removal of collection modification events
c47eb31746 is described below

commit c47eb3174656d71c8b47cd81797d8ecaa5dd6ac6
Author: Andi Huber <ah...@apache.org>
AuthorDate: Thu Jun 30 09:04:32 2022 +0200

    ISIS-3084: Wrapper: removal of collection modification events
---
 .../index/services/wrapper/WrappingObject.adoc     |  4 +-
 .../services/wrapper/control/AsyncControl.adoc     |  2 +-
 .../index/services/wrapper/events/AccessEvent.adoc |  2 +-
 .../wrapper/events/ActionArgumentEvent.adoc        |  2 +-
 .../wrapper/events/ActionInvocationEvent.adoc      |  2 +-
 .../wrapper/events/ActionUsabilityEvent.adoc       |  2 +-
 .../wrapper/events/ActionVisibilityEvent.adoc      |  2 +-
 .../wrapper/events/CollectionAccessEvent.adoc      |  4 +-
 .../wrapper/events/CollectionAddToEvent.adoc       | 30 -------------
 .../wrapper/events/CollectionMethodEvent.adoc      |  2 +-
 .../wrapper/events/CollectionRemoveFromEvent.adoc  | 18 --------
 .../wrapper/events/CollectionUsabilityEvent.adoc   |  2 +-
 ...tyEvent.adoc => CollectionVisibilityEvent.adoc} | 12 ++---
 .../services/wrapper/events/InteractionEvent.adoc  |  2 +-
 .../services/wrapper/events/ObjectTitleEvent.adoc  |  2 +-
 .../wrapper/events/ObjectValidityEvent.adoc        |  2 +-
 .../wrapper/events/ObjectVisibilityEvent.adoc      |  2 +-
 .../services/wrapper/events/ParseValueEvent.adoc   |  2 +-
 .../wrapper/events/PropertyAccessEvent.adoc        |  2 +-
 .../wrapper/events/PropertyModifyEvent.adoc        |  2 +-
 .../wrapper/events/PropertyUsabilityEvent.adoc     |  2 +-
 .../wrapper/events/PropertyVisibilityEvent.adoc    |  2 +-
 .../wrapper/events/ProposedHolderEvent.adoc        |  2 +-
 .../services/wrapper/events/UsabilityEvent.adoc    |  2 +-
 .../services/wrapper/events/ValidityEvent.adoc     |  2 +-
 .../services/wrapper/events/VisibilityEvent.adoc   |  2 +-
 .../wrapper/listeners/InteractionAdapter.adoc      |  2 -
 .../wrapper/listeners/InteractionListener.adoc     | 24 +---------
 .../applib/services/wrapper/WrappingObject.java    |  4 +-
 .../services/wrapper/control/AsyncControl.java     |  7 +--
 .../services/wrapper/control/ControlAbstract.java  | 13 +++---
 .../services/wrapper/control/SyncControl.java      |  8 +---
 .../services/wrapper/events/AccessEvent.java       |  5 ++-
 .../wrapper/events/ActionArgumentEvent.java        | 17 ++++---
 .../wrapper/events/ActionInvocationEvent.java      |  6 +--
 .../wrapper/events/ActionUsabilityEvent.java       |  6 ++-
 .../wrapper/events/ActionVisibilityEvent.java      |  7 ++-
 .../wrapper/events/CollectionAccessEvent.java      | 11 +++--
 .../wrapper/events/CollectionAddToEvent.java       | 52 ----------------------
 .../wrapper/events/CollectionMethodEvent.java      |  4 +-
 .../wrapper/events/CollectionRemoveFromEvent.java  | 48 --------------------
 .../wrapper/events/CollectionUsabilityEvent.java   |  6 +--
 .../wrapper/events/CollectionVisibilityEvent.java  |  6 ++-
 .../services/wrapper/events/InteractionEvent.java  |  4 +-
 .../services/wrapper/events/ObjectTitleEvent.java  |  4 +-
 .../wrapper/events/ObjectValidityEvent.java        |  7 +--
 .../wrapper/events/ObjectVisibilityEvent.java      |  5 ++-
 .../services/wrapper/events/ParseValueEvent.java   |  8 ++--
 .../wrapper/events/PropertyAccessEvent.java        |  5 ++-
 .../wrapper/events/PropertyModifyEvent.java        | 11 +++--
 .../wrapper/events/PropertyUsabilityEvent.java     |  6 ++-
 .../wrapper/events/PropertyVisibilityEvent.java    |  6 ++-
 .../wrapper/events/ProposedHolderEvent.java        |  9 ++--
 .../services/wrapper/events/UsabilityEvent.java    |  5 ++-
 .../services/wrapper/events/ValidityEvent.java     |  6 +--
 .../services/wrapper/events/VisibilityEvent.java   |  4 +-
 .../wrapper/listeners/InteractionAdapter.java      | 17 ++++---
 .../wrapper/listeners/InteractionListener.java     | 35 +++++++--------
 core/adoc/modules/_overview/pages/about.adoc       |  4 +-
 .../wrapper/WrapperFactoryDefault.java             |  7 ++-
 60 files changed, 157 insertions(+), 322 deletions(-)

diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/WrappingObject.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/WrappingObject.adoc
index 596fbe1486..014f1cae82 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/WrappingObject.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/WrappingObject.adoc
@@ -28,7 +28,7 @@ Provide access to the underlying, wrapped object.
 <.> xref:#__isis_executionModes__[__isis_executionModes()]
 +
 --
-The _EnumSetexecution modes_ inferred from the xref:refguide:applib:index/services/wrapper/control/SyncControl.adoc[SyncControl] with which this wrapper was _WrapperFactory#wrap(Object, SyncControl) created_ .
+The xref:refguide:applib:index/services/wrapper/control/ExecutionMode.adoc[ExecutionMode] (s) inferred from the xref:refguide:applib:index/services/wrapper/control/SyncControl.adoc[SyncControl] with which this wrapper was _WrapperFactory#wrap(Object, SyncControl) created_ .
 --
 
 == Members
@@ -54,4 +54,4 @@ NOTE: domain classes may not have a method with this name. The `__isis_` prefix
 [#__isis_executionModes__]
 === __isis_executionModes()
 
-The _EnumSetexecution modes_ inferred from the xref:refguide:applib:index/services/wrapper/control/SyncControl.adoc[SyncControl] with which this wrapper was _WrapperFactory#wrap(Object, SyncControl) created_ .
+The xref:refguide:applib:index/services/wrapper/control/ExecutionMode.adoc[ExecutionMode] (s) inferred from the xref:refguide:applib:index/services/wrapper/control/SyncControl.adoc[SyncControl] with which this wrapper was _WrapperFactory#wrap(Object, SyncControl) created_ .
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/control/AsyncControl.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/control/AsyncControl.adoc
index 469f1461c5..30e8cc1ddb 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/control/AsyncControl.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/control/AsyncControl.adoc
@@ -14,7 +14,7 @@ class AsyncControl<R> {
   AsyncControl<Void> returningVoid()     // <.>
   AsyncControl<X> returning(Class<X> cls)     // <.>
   AsyncControl<R> withSkipRules()     // <.>
-  AsyncControl with(ExceptionHandler exceptionHandler)     // <.>
+  AsyncControl<R> with(ExceptionHandler exceptionHandler)     // <.>
   AsyncControl<R> with(ExecutorService executorService)     // <.>
   AsyncControl<R> withClock(VirtualClock clock)
   AsyncControl<R> withLocale(Locale locale)
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/AccessEvent.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/AccessEvent.adoc
index e9a8bb10e6..d503604690 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/AccessEvent.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/AccessEvent.adoc
@@ -1,7 +1,7 @@
 = AccessEvent
 :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 [...]
 
- _Supported only by _org.apache.isis.applib.services.wrapper.WrapperFactory_ service,_ represents an access (reading) of a property, collection or title.
+Supported only by xref:refguide:applib:index/services/wrapper/WrapperFactory.adoc[WrapperFactory] , represents an access (reading) of a property, collection or title.
 
 Analogous to xref:refguide:applib:index/services/wrapper/events/ValidityEvent.adoc[ValidityEvent] (which corresponds to modifying a property or collection etc), however the _#getReason()_ will always be `null` . (If access is not allowed then a vetoing xref:refguide:applib:index/services/wrapper/events/VisibilityEvent.adoc[VisibilityEvent] would have been fired).
 
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/ActionArgumentEvent.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/ActionArgumentEvent.adoc
index 734cca5f2f..353624c483 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/ActionArgumentEvent.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/ActionArgumentEvent.adoc
@@ -1,7 +1,7 @@
 = ActionArgumentEvent
 :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 [...]
 
- _Supported only by _org.apache.isis.applib.services.wrapper.WrapperFactory_ service,_ represents a check as to whether a particular argument for an action is valid or not.
+Supported only by xref:refguide:applib:index/services/wrapper/WrapperFactory.adoc[WrapperFactory] , represents a check as to whether a particular argument for an action is valid or not.
 
 If _#getReason()_ is not `null` then provides the reason why the argument is invalid; otherwise the argument is valid.
 
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/ActionInvocationEvent.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/ActionInvocationEvent.adoc
index dbed8f9880..0ce9cdf729 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/ActionInvocationEvent.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/ActionInvocationEvent.adoc
@@ -1,7 +1,7 @@
 = ActionInvocationEvent
 :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 [...]
 
- _Supported only by xref:refguide:applib:index/services/wrapper/WrapperFactory.adoc[WrapperFactory] service,_ represents a check as to whether a particular argument for an action is valid or not.
+Supported only by xref:refguide:applib:index/services/wrapper/WrapperFactory.adoc[WrapperFactory], represents a check as to whether a particular argument for an action is valid or not.
 
 If _#getReason()_ is not `null` then provides the reason why the set of arguments are invalid; otherwise the arguments are valid.
 
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/ActionUsabilityEvent.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/ActionUsabilityEvent.adoc
index 091924dc43..a0fe743c01 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/ActionUsabilityEvent.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/ActionUsabilityEvent.adoc
@@ -1,7 +1,7 @@
 = ActionUsabilityEvent
 :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 [...]
 
- _Supported only by _org.apache.isis.applib.services.wrapper.WrapperFactory_ service,_ represents a check as to whether an action is usable or has been disabled.
+Supported only by xref:refguide:applib:index/services/wrapper/WrapperFactory.adoc[WrapperFactory] , represents a check as to whether an action is usable or has been disabled.
 
 If _#getReason()_ is not `null` then provides the reason why the action is disabled; otherwise action is enabled.
 
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/ActionVisibilityEvent.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/ActionVisibilityEvent.adoc
index e6d808622c..247e1ff23b 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/ActionVisibilityEvent.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/ActionVisibilityEvent.adoc
@@ -1,7 +1,7 @@
 = ActionVisibilityEvent
 :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 [...]
 
- _Supported only by xref:refguide:applib:index/services/wrapper/WrapperFactory.adoc[WrapperFactory] service,_ represents a check as to whether an action is visible or has been hidden.
+Supported only by xref:refguide:applib:index/services/wrapper/WrapperFactory.adoc[WrapperFactory] , represents a check as to whether an action is visible or has been hidden.
 
 If _#getReason()_ is not `null` then provides the reason why the action is invisible; otherwise action is visible.
 
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/CollectionAccessEvent.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/CollectionAccessEvent.adoc
index 063ade3cd1..6f9ebdd021 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/CollectionAccessEvent.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/CollectionAccessEvent.adoc
@@ -1,9 +1,9 @@
 = CollectionAccessEvent
 :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 [...]
 
- _Supported only by _org.apache.isis.applib.services.wrapper.WrapperFactory_ service,_ represents an access (reading) of a collection.
+Supported only by _org.apache.isis.applib.services.wrapper.WrapperFactory_ , represents an access (reading) of a collection.
 
-Analogous to xref:refguide:applib:index/services/wrapper/events/CollectionAddToEvent.adoc[CollectionAddToEvent] or xref:refguide:applib:index/services/wrapper/events/CollectionRemoveFromEvent.adoc[CollectionRemoveFromEvent] , however the _#getReason()_ will always be `null` . (If access is not allowed then a vetoing _CollectionVisibilityEvent_ would have been fired).
+The _#getReason()_ will always be `null` . (If access is not allowed then a vetoing xref:refguide:applib:index/services/wrapper/events/CollectionVisibilityEvent.adoc[CollectionVisibilityEvent] would have been fired).
 
 == API
 
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/CollectionAddToEvent.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/CollectionAddToEvent.adoc
deleted file mode 100644
index 3abe1a803e..0000000000
--- a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/CollectionAddToEvent.adoc
+++ /dev/null
@@ -1,30 +0,0 @@
-= CollectionAddToEvent
-: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 [...]
-
- _Supported only by _org.apache.isis.applib.services.wrapper.WrapperFactory_ service,_ represents a check as to whether a particular object to be added to a collection is valid or not.
-
-If _#getReason()_ is not `null` then provides the reason why the object is invalid; otherwise the object is valid.
-
-== API
-
-[source,java]
-.CollectionAddToEvent.java
-----
-class CollectionAddToEvent {
-  CollectionAddToEvent(Object source, Identifier collectionIdentifier, Object proposed)
-  Object getProposed()     // <.>
-}
-----
-
-<.> xref:#getProposed__[getProposed()]
-+
---
-The object that is being added.
---
-
-== Members
-
-[#getProposed__]
-=== getProposed()
-
-The object that is being added.
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/CollectionMethodEvent.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/CollectionMethodEvent.adoc
index 68af778ac4..f011d02b47 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/CollectionMethodEvent.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/CollectionMethodEvent.adoc
@@ -1,7 +1,7 @@
 = CollectionMethodEvent
 :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 [...]
 
- _Supported only by _org.apache.isis.applib.services.wrapper.WrapperFactory_ service,_ represents an interaction with a collection object itself.
+Supported only by xref:refguide:applib:index/services/wrapper/WrapperFactory.adoc[WrapperFactory] , represents an interaction with a collection object itself.
 
 == API
 
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/CollectionRemoveFromEvent.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/CollectionRemoveFromEvent.adoc
deleted file mode 100644
index 4f0e23c1d6..0000000000
--- a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/CollectionRemoveFromEvent.adoc
+++ /dev/null
@@ -1,18 +0,0 @@
-= CollectionRemoveFromEvent
-: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 [...]
-
- _Supported only by _org.apache.isis.applib.services.wrapper.WrapperFactory_ service,_ represents a check as to whether a particular object to be removed from a collection is valid or not.
-
-If _#getReason()_ is not `null` then provides the reason why the object is invalid; otherwise the object is valid.
-
-== API
-
-[source,java]
-.CollectionRemoveFromEvent.java
-----
-class CollectionRemoveFromEvent {
-  CollectionRemoveFromEvent(Object source, Identifier collectionIdentifier, Object proposed)
-  Object getProposed()
-}
-----
-
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/CollectionUsabilityEvent.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/CollectionUsabilityEvent.adoc
index 1d9c19bfea..a783249244 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/CollectionUsabilityEvent.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/CollectionUsabilityEvent.adoc
@@ -1,7 +1,7 @@
 = CollectionUsabilityEvent
 :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 [...]
 
- _Supported only by _org.apache.isis.applib.services.wrapper.WrapperFactory_ service,_ represents a check as to whether a collection is usable or has been disabled.
+Supported only by xref:refguide:applib:index/services/wrapper/WrapperFactory.adoc[WrapperFactory] , represents a check as to whether a collection is usable or has been disabled.
 
 If _#getReason()_ is not `null` then provides the reason why the collection is disabled; otherwise collection is enabled.
 
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/CollectionUsabilityEvent.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/CollectionVisibilityEvent.adoc
similarity index 68%
copy from antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/CollectionUsabilityEvent.adoc
copy to antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/CollectionVisibilityEvent.adoc
index 1d9c19bfea..5cf00ae8eb 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/CollectionUsabilityEvent.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/CollectionVisibilityEvent.adoc
@@ -1,17 +1,17 @@
-= CollectionUsabilityEvent
+= CollectionVisibilityEvent
 :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 [...]
 
- _Supported only by _org.apache.isis.applib.services.wrapper.WrapperFactory_ service,_ represents a check as to whether a collection is usable or has been disabled.
+Supported only by xref:refguide:applib:index/services/wrapper/WrapperFactory.adoc[WrapperFactory] , represents a check as to whether a collection is visible or has been hidden.
 
-If _#getReason()_ is not `null` then provides the reason why the collection is disabled; otherwise collection is enabled.
+If _#getReason()_ is not `null` then provides the reason why the collection is invisible; otherwise collection is visible.
 
 == API
 
 [source,java]
-.CollectionUsabilityEvent.java
+.CollectionVisibilityEvent.java
 ----
-class CollectionUsabilityEvent {
-  CollectionUsabilityEvent(Object source, Identifier identifier)
+class CollectionVisibilityEvent {
+  CollectionVisibilityEvent(Object source, Identifier identifier)
 }
 ----
 
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/InteractionEvent.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/InteractionEvent.adoc
index eb8206f76d..08fe24d11d 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/InteractionEvent.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/InteractionEvent.adoc
@@ -1,7 +1,7 @@
 = InteractionEvent
 :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 [...]
 
- _Supported only by _org.apache.isis.applib.services.wrapper.WrapperFactory_ service,_ represents an interaction with a domain object or a particular feature (property, collection, action) of a domain object.
+Supported only by xref:refguide:applib:index/services/wrapper/WrapperFactory.adoc[WrapperFactory] , represents an interaction with a domain object or a particular feature (property, collection, action) of a domain object.
 
 Many of the interactions are checks for xref:refguide:applib:index/services/wrapper/events/VisibilityEvent.adoc[VisibilityEvent] , xref:refguide:applib:index/services/wrapper/events/UsabilityEvent.adoc[UsabilityEvent] and xref:refguide:applib:index/services/wrapper/events/ValidityEvent.adoc[ValidityEvent] .
 
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/ObjectTitleEvent.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/ObjectTitleEvent.adoc
index 20c0a14f7d..5cd526f517 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/ObjectTitleEvent.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/ObjectTitleEvent.adoc
@@ -1,7 +1,7 @@
 = ObjectTitleEvent
 :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 [...]
 
- _Supported only by _org.apache.isis.applib.services.wrapper.WrapperFactory_ service,_ represents an access (reading) of an object's title.
+Supported only by xref:refguide:applib:index/services/wrapper/WrapperFactory.adoc[WrapperFactory] service, represents an access (reading) of an object's title.
 
 The _#getReason()_ will always be `null` ; access is always allowed.
 
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/ObjectValidityEvent.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/ObjectValidityEvent.adoc
index 35b50eb3a9..4e19c5c99d 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/ObjectValidityEvent.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/ObjectValidityEvent.adoc
@@ -1,7 +1,7 @@
 = ObjectValidityEvent
 :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 [...]
 
- _Supported only by _org.apache.isis.applib.services.wrapper.WrapperFactory_ service,_ represents a check as to whether the current values of the properties/collections of an object are valid (for example, prior to saving that object).
+Supported only by xref:refguide:applib:index/services/wrapper/WrapperFactory.adoc[WrapperFactory] , represents a check as to whether the current values of the properties/collections of an object are valid (for example, prior to saving that object).
 
 If _#getReason()_ is not `null` then provides the reason why the object is invalid, otherwise ok.
 
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/ObjectVisibilityEvent.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/ObjectVisibilityEvent.adoc
index a67c050820..ce017987e9 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/ObjectVisibilityEvent.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/ObjectVisibilityEvent.adoc
@@ -1,7 +1,7 @@
 = ObjectVisibilityEvent
 :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 [...]
 
- _Supported only by _org.apache.isis.applib.services.wrapper.WrapperFactory_ service,_ represents a check as to whether an object is visible or has been hidden.
+Supported only by xref:refguide:applib:index/services/wrapper/WrapperFactory.adoc[WrapperFactory] , represents a check as to whether an object is visible or has been hidden.
 
 If _#getReason()_ is not `null` then provides the reason why the object is invisible; otherwise action is visible.
 
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/ParseValueEvent.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/ParseValueEvent.adoc
index 6f8a169e06..0cebc29f89 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/ParseValueEvent.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/ParseValueEvent.adoc
@@ -1,7 +1,7 @@
 = ParseValueEvent
 :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 [...]
 
- _Supported only by _org.apache.isis.applib.services.wrapper.WrapperFactory_ service,_ represents a check as to whether the proposed values of the value type is valid.
+Supported only by xref:refguide:applib:index/services/wrapper/WrapperFactory.adoc[WrapperFactory] , represents a check as to whether the proposed values of the value type is valid.
 
 If _#getReason()_ is not `null` then provides the reason why the proposed value is invalid, otherwise the new value is acceptable.
 
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/PropertyAccessEvent.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/PropertyAccessEvent.adoc
index a9f8519faa..da3c9435e1 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/PropertyAccessEvent.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/PropertyAccessEvent.adoc
@@ -1,7 +1,7 @@
 = PropertyAccessEvent
 :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 [...]
 
- _Supported only by _org.apache.isis.applib.services.wrapper.WrapperFactory_ service,_ represents an access (reading) of a property.
+Supported only by xref:refguide:applib:index/services/wrapper/WrapperFactory.adoc[WrapperFactory] , represents an access (reading) of a property.
 
 Analogous to xref:refguide:applib:index/services/wrapper/events/PropertyModifyEvent.adoc[PropertyModifyEvent] , however the _#getReason()_ will always be `null` . (If access is not allowed then a xref:refguide:applib:index/services/wrapper/events/PropertyVisibilityEvent.adoc[PropertyVisibilityEvent] would have been fired).
 
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/PropertyModifyEvent.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/PropertyModifyEvent.adoc
index 3a930f3f3a..e4a069baff 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/PropertyModifyEvent.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/PropertyModifyEvent.adoc
@@ -1,7 +1,7 @@
 = PropertyModifyEvent
 :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 [...]
 
- _Supported only by _org.apache.isis.applib.services.wrapper.WrapperFactory_ service,_ represents a check as to whether a particular value for a property is valid or not.
+Supported only by xref:refguide:applib:index/services/wrapper/WrapperFactory.adoc[WrapperFactory] , represents a check as to whether a particular value for a property is valid or not.
 
 If _#getReason()_ is not `null` then provides the reason why the value is invalid; otherwise the value is valid.
 
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/PropertyUsabilityEvent.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/PropertyUsabilityEvent.adoc
index 505006e6b5..d9c343c68c 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/PropertyUsabilityEvent.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/PropertyUsabilityEvent.adoc
@@ -1,7 +1,7 @@
 = PropertyUsabilityEvent
 :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 [...]
 
- _Supported only by _org.apache.isis.applib.services.wrapper.WrapperFactory_ service,_ represents a check as to whether a property is usable or has been disabled.
+Supported only by xref:refguide:applib:index/services/wrapper/WrapperFactory.adoc[WrapperFactory] , represents a check as to whether a property is usable or has been disabled.
 
 If _#getReason()_ is not `null` then provides the reason why the property is disabled; otherwise property is enabled.
 
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/PropertyVisibilityEvent.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/PropertyVisibilityEvent.adoc
index e99f8bed22..48486d9d03 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/PropertyVisibilityEvent.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/PropertyVisibilityEvent.adoc
@@ -1,7 +1,7 @@
 = PropertyVisibilityEvent
 :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 [...]
 
- _Supported only by _org.apache.isis.applib.services.wrapper.WrapperFactory_ service,_ represents a check as to whether a property is visible or has been hidden.
+Supported only by xref:refguide:applib:index/services/wrapper/WrapperFactory.adoc[WrapperFactory] , represents a check as to whether a property is visible or has been hidden.
 
 If _#getReason()_ is not `null` then provides the reason why the property is invisible; otherwise property is visible.
 
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/ProposedHolderEvent.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/ProposedHolderEvent.adoc
index 08731b9fe8..1d2d7d9a86 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/ProposedHolderEvent.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/ProposedHolderEvent.adoc
@@ -1,7 +1,7 @@
 = ProposedHolderEvent _(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 [...]
 
- _Supported only by _org.apache.isis.applib.services.wrapper.WrapperFactory_ service,_ makes it easier to process different events that hold a single proposed argument (such as xref:refguide:applib:index/services/wrapper/events/CollectionAddToEvent.adoc[CollectionAddToEvent] and xref:refguide:applib:index/services/wrapper/events/PropertyModifyEvent.adoc[PropertyModifyEvent] ).
+Supported only by xref:refguide:applib:index/services/wrapper/WrapperFactory.adoc[WrapperFactory] , makes it easier to process different events that hold a single proposed argument (such as xref:refguide:applib:index/services/wrapper/events/PropertyModifyEvent.adoc[PropertyModifyEvent] ).
 
 == API
 
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/UsabilityEvent.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/UsabilityEvent.adoc
index f43b35b719..a0d9fd3c47 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/UsabilityEvent.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/UsabilityEvent.adoc
@@ -1,7 +1,7 @@
 = UsabilityEvent
 :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 [...]
 
- _Supported only by _org.apache.isis.applib.services.wrapper.WrapperFactory_ service,_ represents a check to determine whether a member of an object is usable or has been disabled.
+Supported only by xref:refguide:applib:index/services/wrapper/WrapperFactory.adoc[WrapperFactory] , represents a check to determine whether a member of an object is usable or has been disabled.
 
 If _#getReason()_ is `null` , then is usable; otherwise is disabled.
 
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/ValidityEvent.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/ValidityEvent.adoc
index 9a97812e71..310bfb0aed 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/ValidityEvent.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/ValidityEvent.adoc
@@ -1,7 +1,7 @@
 = ValidityEvent
 :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 [...]
 
- _Supported only by _org.apache.isis.applib.services.wrapper.WrapperFactory_ service,_ represents a check to determine whether a proposed change is valid.
+Supported only by xref:refguide:applib:index/services/wrapper/WrapperFactory.adoc[WrapperFactory] , represents a check to determine whether a proposed change is valid.
 
 Multiple subclasses, including:
 
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/VisibilityEvent.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/VisibilityEvent.adoc
index 717ba6c593..f7fe19d3c7 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/VisibilityEvent.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/events/VisibilityEvent.adoc
@@ -1,7 +1,7 @@
 = VisibilityEvent
 :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 [...]
 
- _Supported only by xref:refguide:applib:index/services/wrapper/WrapperFactory.adoc[WrapperFactory] service,_ represents a check to determine whether a member of an object is visible or has been hidden.
+Supported only by xref:refguide:applib:index/services/wrapper/WrapperFactory.adoc[WrapperFactory] , represents a check to determine whether a member of an object is visible or has been hidden.
 
 If _#getReason()_ is `null` , then is usable; otherwise is invisible.
 
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/listeners/InteractionAdapter.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/listeners/InteractionAdapter.adoc
index ed1ff61f4d..f4f20118e5 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/listeners/InteractionAdapter.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/listeners/InteractionAdapter.adoc
@@ -16,8 +16,6 @@ class InteractionAdapter {
   void collectionVisible(CollectionVisibilityEvent ev)
   void collectionUsable(CollectionUsabilityEvent ev)
   void collectionAccessed(CollectionAccessEvent ev)
-  void collectionAddedTo(CollectionAddToEvent ev)
-  void collectionRemovedFrom(CollectionRemoveFromEvent ev)
   void collectionMethodInvoked(CollectionMethodEvent interactionEvent)
   void actionVisible(ActionVisibilityEvent interactionEvent)
   void actionUsable(ActionUsabilityEvent ev)
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/listeners/InteractionListener.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/listeners/InteractionListener.adoc
index 16d6e20faa..99a7860b78 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/listeners/InteractionListener.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/listeners/InteractionListener.adoc
@@ -18,8 +18,6 @@ interface InteractionListener {
   void collectionVisible(CollectionVisibilityEvent ev)     // <.>
   void collectionUsable(CollectionUsabilityEvent ev)     // <.>
   void collectionAccessed(CollectionAccessEvent ev)     // <.>
-  void collectionAddedTo(CollectionAddToEvent ev)     // <.>
-  void collectionRemovedFrom(CollectionRemoveFromEvent ev)     // <.>
   void collectionMethodInvoked(CollectionMethodEvent interactionEvent)     // <.>
   void actionVisible(ActionVisibilityEvent interactionEvent)     // <.>
   void actionUsable(ActionUsabilityEvent ev)     // <.>
@@ -73,16 +71,6 @@ A check was made to determine if a collection was usable.
 --
 A collection was read.
 --
-<.> xref:#collectionAddedTo__CollectionAddToEvent[collectionAddedTo(CollectionAddToEvent)]
-+
---
-An object was added to the collection (or an attempt to add it was made).
---
-<.> xref:#collectionRemovedFrom__CollectionRemoveFromEvent[collectionRemovedFrom(CollectionRemoveFromEvent)]
-+
---
-An object was removed from the collection (or an attempt to remove it was made).
---
 <.> xref:#collectionMethodInvoked__CollectionMethodEvent[collectionMethodInvoked(CollectionMethodEvent)]
 +
 --
@@ -157,7 +145,7 @@ Will be fired prior to _#collectionUsable(CollectionUsabilityEvent)_ .
 
 A check was made to determine if a collection was usable.
 
-Will be fired prior to either _#collectionAccessed(CollectionAccessEvent)_ or _#collectionAddedTo(CollectionAddToEvent)_ or _#collectionRemovedFrom(CollectionRemoveFromEvent)_ .
+Will be fired prior to either _#collectionAccessed(CollectionAccessEvent)_
 
 [#collectionAccessed__CollectionAccessEvent]
 === collectionAccessed(CollectionAccessEvent)
@@ -166,16 +154,6 @@ A collection was read.
 
 Unlike most other events, a xref:refguide:applib:index/services/wrapper/events/CollectionAccessEvent.adoc[CollectionAccessEvent] will never have been vetoed (that is, _CollectionAccessEvent#isVeto()_ will always be `false` ).
 
-[#collectionAddedTo__CollectionAddToEvent]
-=== collectionAddedTo(CollectionAddToEvent)
-
-An object was added to the collection (or an attempt to add it was made).
-
-[#collectionRemovedFrom__CollectionRemoveFromEvent]
-=== collectionRemovedFrom(CollectionRemoveFromEvent)
-
-An object was removed from the collection (or an attempt to remove it was made).
-
 [#collectionMethodInvoked__CollectionMethodEvent]
 === collectionMethodInvoked(CollectionMethodEvent)
 
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrappingObject.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrappingObject.java
index e434ec9594..298c4953a0 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrappingObject.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrappingObject.java
@@ -25,7 +25,7 @@ import org.apache.isis.commons.collections.ImmutableEnumSet;
 /**
  * Implemented by all objects that have been viewed as per
  * {@link WrapperFactory#wrap(Object)}.
- * 
+ *
  * @since 1.x {@index}
  */
 public interface WrappingObject {
@@ -60,7 +60,7 @@ public interface WrappingObject {
     Object __isis_wrapped();
 
     /**
-     * The {@link EnumSet<ExecutionMode> execution modes} inferred from the
+     * The {@link ExecutionMode}(s) inferred from the
      * {@link SyncControl} with which this wrapper was
      * {@link WrapperFactory#wrap(Object, SyncControl) created}.
      *
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/AsyncControl.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/AsyncControl.java
index bb80c02d2e..b0e595ab08 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/AsyncControl.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/AsyncControl.java
@@ -101,12 +101,10 @@ public class AsyncControl<R> extends ControlAbstract<AsyncControl<R>> {
      * </p>
      */
     @Override
-    public AsyncControl with(final ExceptionHandler exceptionHandler) {
+    public AsyncControl<R> with(final ExceptionHandler exceptionHandler) {
         return super.with(exceptionHandler);
     }
 
-
-
     @Getter @NonNull
     private ExecutorService executorService =
                             ForkJoinPool.commonPool();
@@ -161,8 +159,6 @@ public class AsyncControl<R> extends ControlAbstract<AsyncControl<R>> {
         // ...
     }
 
-
-
     @Getter
     private UserMemento user;
     /**
@@ -213,5 +209,4 @@ public class AsyncControl<R> extends ControlAbstract<AsyncControl<R>> {
         return buf.toString();
     }
 
-    // ...
 }
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/ControlAbstract.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/ControlAbstract.java
index 95c4e53bd1..61cfd3e9dd 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/ControlAbstract.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/ControlAbstract.java
@@ -31,7 +31,7 @@ import lombok.Getter;
 import lombok.Setter;
 
 /**
- * 
+ *
  * @since 2.0 {@index}
  */
 public class ControlAbstract<T extends ControlAbstract<T>> {
@@ -55,24 +55,21 @@ public class ControlAbstract<T extends ControlAbstract<T>> {
     public T withCheckRules() {
         checkRules = true;
         return _Casts.uncheckedCast(this);
-        // ...
     }
     public T withSkipRules() {
         checkRules = false;
         return _Casts.uncheckedCast(this);
-        // ...
     }
-    
+
     private ExceptionHandler exceptionHandler;
-   
+
     public Optional<ExceptionHandler> getExceptionHandler() {
         return Optional.ofNullable(exceptionHandler);
     }
-                      
-    public T with(ExceptionHandler exceptionHandler) {
+
+    public T with(final ExceptionHandler exceptionHandler) {
         this.exceptionHandler = exceptionHandler;
         return _Casts.uncheckedCast(this);
-        // ...
     }
 
     /**
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/SyncControl.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/SyncControl.java
index 2216c1f884..41af4ea0da 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/SyncControl.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/SyncControl.java
@@ -39,7 +39,6 @@ public class SyncControl extends ControlAbstract<SyncControl> {
         });
     }
 
-
     /**
      * Skip checking business rules (hide/disable/validate) before
      * executing the underlying property or action
@@ -49,7 +48,6 @@ public class SyncControl extends ControlAbstract<SyncControl> {
         return super.withSkipRules();
     }
 
-
     /**
      * How to handle exceptions if they occur, using the provided
      * {@link ExceptionHandler}.
@@ -59,11 +57,10 @@ public class SyncControl extends ControlAbstract<SyncControl> {
      * </p>
      */
     @Override
-    public SyncControl with(ExceptionHandler exceptionHandler) {
+    public SyncControl with(final ExceptionHandler exceptionHandler) {
         return super.with(exceptionHandler);
     }
 
-
     private boolean execute = true;
 
     /**
@@ -72,7 +69,6 @@ public class SyncControl extends ControlAbstract<SyncControl> {
     public SyncControl withExecute() {
         execute = true;
         return this;
-        // ...
     }
 
     /**
@@ -82,12 +78,12 @@ public class SyncControl extends ControlAbstract<SyncControl> {
     public SyncControl withNoExecute() {
         execute = false;
         return this;
-        // ...
     }
 
     /**
      * Not API.
      */
+    @Override
     public ImmutableEnumSet<ExecutionMode> getExecutionModes() {
         EnumSet<ExecutionMode> modes = EnumSet.copyOf(super.getExecutionModes().toEnumSet());
         if(!execute) {
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/AccessEvent.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/AccessEvent.java
index 4bf2b06677..f95b00a94b 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/AccessEvent.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/AccessEvent.java
@@ -19,10 +19,11 @@
 package org.apache.isis.applib.services.wrapper.events;
 
 import org.apache.isis.applib.Identifier;
+import org.apache.isis.applib.services.wrapper.WrapperFactory;
 
 /**
- * <i>Supported only by {@link org.apache.isis.applib.services.wrapper.WrapperFactory} service, </i> represents an access (reading) of a property, collection or title.
- *
+ * Supported only by {@link WrapperFactory},
+ * represents an access (reading) of a property, collection or title.
  * <p>
  * Analogous to {@link ValidityEvent} (which corresponds to modifying a property
  * or collection etc), however the {@link #getReason()} will always be
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/ActionArgumentEvent.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/ActionArgumentEvent.java
index 09e781bfe7..0fecdccec3 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/ActionArgumentEvent.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/ActionArgumentEvent.java
@@ -19,18 +19,18 @@
 package org.apache.isis.applib.services.wrapper.events;
 
 import org.apache.isis.applib.Identifier;
+import org.apache.isis.applib.services.wrapper.WrapperFactory;
 
 /**
- * <i>Supported only by {@link org.apache.isis.applib.services.wrapper.WrapperFactory} service, </i> represents a check as to whether a particular argument for an action is valid
+ * Supported only by {@link WrapperFactory},
+ * represents a check as to whether a particular argument for an action is valid
  * or not.
- *
  * <p>
  * If {@link #getReason()} is not <tt>null</tt> then provides the reason why the
  * argument is invalid; otherwise the argument is valid.
- *
  * <p>
  * Called once per argument, and before {@link ActionInvocationEvent}.
- * 
+ *
  * @since 1.x {@index}
  */
 public class ActionArgumentEvent extends ValidityEvent {
@@ -39,7 +39,11 @@ public class ActionArgumentEvent extends ValidityEvent {
     private final int position;
     private final Object proposed;
 
-    public ActionArgumentEvent(final Object source, final Identifier actionIdentifier, final Object[] args, final int position) {
+    public ActionArgumentEvent(
+            final Object source,
+            final Identifier actionIdentifier,
+            final Object[] args,
+            final int position) {
         super(source, actionIdentifier);
         this.args = args;
         this.position = position;
@@ -64,7 +68,8 @@ public class ActionArgumentEvent extends ValidityEvent {
 
     @Override
     public String getReasonMessage() {
-        return String.format("Invalid action argument. Position: %s. Proposed value: %s. Reason: %s", this.getPosition(), this.getProposed(), super.getReasonMessage());
+        return String.format("Invalid action argument. Position: %s. Proposed value: %s. Reason: %s",
+                this.getPosition(), this.getProposed(), super.getReasonMessage());
     }
 
 }
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/ActionInvocationEvent.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/ActionInvocationEvent.java
index 5d34c1f10d..6562228b0a 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/ActionInvocationEvent.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/ActionInvocationEvent.java
@@ -22,17 +22,15 @@ import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.services.wrapper.WrapperFactory;
 
 /**
- * <i>Supported only by {@link WrapperFactory} service, </i> represents a check 
+ * Supported only by {@link WrapperFactory}</i>, represents a check
  * as to whether a particular argument for an action is valid
  * or not.
- *
  * <p>
  * If {@link #getReason()} is not <tt>null</tt> then provides the reason why the
  * set of arguments are invalid; otherwise the arguments are valid.
- *
  * <p>
  * Called after each of the {@link ActionArgumentEvent}s.
- * 
+ *
  * @since 1.x {@index}
  */
 public class ActionInvocationEvent extends ValidityEvent {
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/ActionUsabilityEvent.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/ActionUsabilityEvent.java
index e1802900bb..488778349c 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/ActionUsabilityEvent.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/ActionUsabilityEvent.java
@@ -19,13 +19,15 @@
 package org.apache.isis.applib.services.wrapper.events;
 
 import org.apache.isis.applib.Identifier;
+import org.apache.isis.applib.services.wrapper.WrapperFactory;
 
 /**
- * <i>Supported only by {@link org.apache.isis.applib.services.wrapper.WrapperFactory} service, </i> represents a check as to whether an action is usable or has been disabled.
- *
+ * Supported only by {@link WrapperFactory},
+ * represents a check as to whether an action is usable or has been disabled.
  * <p>
  * If {@link #getReason()} is not <tt>null</tt> then provides the reason why the
  * action is disabled; otherwise action is enabled.
+ *
  * @since 1.x {@index}
  */
 public class ActionUsabilityEvent extends UsabilityEvent {
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/ActionVisibilityEvent.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/ActionVisibilityEvent.java
index fbb41a5cd7..b532e68222 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/ActionVisibilityEvent.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/ActionVisibilityEvent.java
@@ -22,13 +22,12 @@ import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.services.wrapper.WrapperFactory;
 
 /**
- * <i>Supported only by {@link WrapperFactory} service, </i> represents a check as 
- * to whether an action is visible or has been hidden.
- *
+ * Supported only by {@link WrapperFactory},
+ * represents a check as to whether an action is visible or has been hidden.
  * <p>
  * If {@link #getReason()} is not <tt>null</tt> then provides the reason why the
  * action is invisible; otherwise action is visible.
- * 
+ *
  * @since 1.x {@index}
  */
 public class ActionVisibilityEvent extends VisibilityEvent {
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/CollectionAccessEvent.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/CollectionAccessEvent.java
index 101e154211..c559d8ff76 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/CollectionAccessEvent.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/CollectionAccessEvent.java
@@ -21,12 +21,11 @@ package org.apache.isis.applib.services.wrapper.events;
 import org.apache.isis.applib.Identifier;
 
 /**
- * <i>Supported only by {@link org.apache.isis.applib.services.wrapper.WrapperFactory} service, </i> represents an access (reading) of a collection.
- *
+ * Supported only by {@link org.apache.isis.applib.services.wrapper.WrapperFactory},
+ * represents an access (reading) of a collection.
  * <p>
- * Analogous to {@link CollectionAddToEvent} or
- * {@link CollectionRemoveFromEvent}, however the {@link #getReason()} will
- * always be <tt>null</tt>. (If access is not allowed then a vetoing
+ * The {@link #getReason()} will always be <tt>null</tt>.
+ * (If access is not allowed then a vetoing
  * {@link CollectionVisibilityEvent} would have been fired).
  *
  * @since 1.x {@index}
@@ -37,4 +36,4 @@ public class CollectionAccessEvent extends AccessEvent {
         super(source, collectionIdentifier);
     }
 
-}
+}
\ No newline at end of file
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/CollectionAddToEvent.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/CollectionAddToEvent.java
deleted file mode 100644
index 725ddf5ced..0000000000
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/CollectionAddToEvent.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- *  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 agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-package org.apache.isis.applib.services.wrapper.events;
-
-import org.apache.isis.applib.Identifier;
-
-/**
- * <i>Supported only by {@link org.apache.isis.applib.services.wrapper.WrapperFactory} service, </i> represents a check as to whether a particular object to be added to a
- * collection is valid or not.
- *
- * <p>
- * If {@link #getReason()} is not <tt>null</tt> then provides the reason why the
- * object is invalid; otherwise the object is valid.
- *
- * @see CollectionRemoveFromEvent
- * 
- * @since 1.x {@index}
- */
-public class CollectionAddToEvent extends ValidityEvent {
-
-    private final Object proposed;
-
-    public CollectionAddToEvent(final Object source, final Identifier collectionIdentifier, final Object proposed) {
-        super(source, collectionIdentifier);
-        this.proposed = proposed;
-    }
-
-    /**
-     * The object that is being added.
-     */
-    @Override
-    public Object getProposed() {
-        return proposed;
-    }
-
-}
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/CollectionMethodEvent.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/CollectionMethodEvent.java
index afd98fda4b..f1bd85e825 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/CollectionMethodEvent.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/CollectionMethodEvent.java
@@ -19,9 +19,11 @@
 package org.apache.isis.applib.services.wrapper.events;
 
 import org.apache.isis.applib.Identifier;
+import org.apache.isis.applib.services.wrapper.WrapperFactory;
 
 /**
- * <i>Supported only by {@link org.apache.isis.applib.services.wrapper.WrapperFactory} service, </i> represents an interaction with a collection object itself.
+ * Supported only by {@link WrapperFactory},
+ * represents an interaction with a collection object itself.
  *
  * @since 1.x {@index}
  */
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/CollectionRemoveFromEvent.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/CollectionRemoveFromEvent.java
deleted file mode 100644
index 479a3e59b6..0000000000
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/CollectionRemoveFromEvent.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- *  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 agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-package org.apache.isis.applib.services.wrapper.events;
-
-import org.apache.isis.applib.Identifier;
-
-/**
- * <i>Supported only by {@link org.apache.isis.applib.services.wrapper.WrapperFactory} service, </i> represents a check as to whether a particular object to be removed from a
- * collection is valid or not.
- *
- * <p>
- * If {@link #getReason()} is not <tt>null</tt> then provides the reason why the
- * object is invalid; otherwise the object is valid.
- *
- * @see CollectionAddToEvent
- * @since 1.x {@index}
- */
- public class CollectionRemoveFromEvent extends ValidityEvent {
-
-    private final Object proposed;
-
-    public CollectionRemoveFromEvent(final Object source, final Identifier collectionIdentifier, final Object proposed) {
-        super(source, collectionIdentifier);
-        this.proposed = proposed;
-    }
-
-    @Override
-    public Object getProposed() {
-        return proposed;
-    }
-
-}
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/CollectionUsabilityEvent.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/CollectionUsabilityEvent.java
index e2b7a379d3..8b8acea2d0 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/CollectionUsabilityEvent.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/CollectionUsabilityEvent.java
@@ -19,15 +19,15 @@
 package org.apache.isis.applib.services.wrapper.events;
 
 import org.apache.isis.applib.Identifier;
+import org.apache.isis.applib.services.wrapper.WrapperFactory;
 
 /**
- * <i>Supported only by {@link org.apache.isis.applib.services.wrapper.WrapperFactory} service, </i> represents a check as to whether a collection is usable or has been disabled.
- *
+ * Supported only by {@link WrapperFactory},
+ * represents a check as to whether a collection is usable or has been disabled.
  * <p>
  * If {@link #getReason()} is not <tt>null</tt> then provides the reason why the
  * collection is disabled; otherwise collection is enabled.
  *
- * 
  * @since 1.x {@index}
  */
 public class CollectionUsabilityEvent extends UsabilityEvent {
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/CollectionVisibilityEvent.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/CollectionVisibilityEvent.java
index 2d097fcf40..00d27294ee 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/CollectionVisibilityEvent.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/CollectionVisibilityEvent.java
@@ -19,14 +19,16 @@
 package org.apache.isis.applib.services.wrapper.events;
 
 import org.apache.isis.applib.Identifier;
+import org.apache.isis.applib.services.wrapper.WrapperFactory;
 
 /**
- * <i>Supported only by {@link org.apache.isis.applib.services.wrapper.WrapperFactory} service, </i> represents a check as to whether a collection is visible or has been hidden.
- *
+ * Supported only by {@link WrapperFactory},
+ * represents a check as to whether a collection is visible or has been hidden.
  * <p>
  * If {@link #getReason()} is not <tt>null</tt> then provides the reason why the
  * collection is invisible; otherwise collection is visible.
  *
+ * @since 1.x {@index}
  */
 public class CollectionVisibilityEvent extends VisibilityEvent {
 
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/InteractionEvent.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/InteractionEvent.java
index 8ea6131aec..0f84aa5670 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/InteractionEvent.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/InteractionEvent.java
@@ -20,13 +20,13 @@ package org.apache.isis.applib.services.wrapper.events;
 
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.events.EventObjectBase;
+import org.apache.isis.applib.services.wrapper.WrapperFactory;
 import org.apache.isis.commons.collections.Can;
 
 /**
- * <i>Supported only by {@link org.apache.isis.applib.services.wrapper.WrapperFactory} service, </i>
+ * Supported only by {@link WrapperFactory},
  * represents an interaction with a domain object or a particular feature
  * (property, collection, action) of a domain object.
- *
  * <p>
  * Many of the interactions are checks for {@link VisibilityEvent visibility},
  * {@link UsabilityEvent usability} and {@link ValidityEvent validity}.
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/ObjectTitleEvent.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/ObjectTitleEvent.java
index 670ed548b9..b9df79958d 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/ObjectTitleEvent.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/ObjectTitleEvent.java
@@ -19,11 +19,11 @@
 package org.apache.isis.applib.services.wrapper.events;
 
 import org.apache.isis.applib.Identifier;
+import org.apache.isis.applib.services.wrapper.WrapperFactory;
 
 /**
- * <i>Supported only by {@link org.apache.isis.applib.services.wrapper.WrapperFactory} service, </i>
+ * Supported only by {@link WrapperFactory} service,
  * represents an access (reading) of an object's title.
- *
  * <p>
  * The {@link #getReason()} will always be <tt>null</tt>; access is always
  * allowed.
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/ObjectValidityEvent.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/ObjectValidityEvent.java
index 1067265556..91e2847b4a 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/ObjectValidityEvent.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/ObjectValidityEvent.java
@@ -19,16 +19,17 @@
 package org.apache.isis.applib.services.wrapper.events;
 
 import org.apache.isis.applib.Identifier;
+import org.apache.isis.applib.services.wrapper.WrapperFactory;
 
 /**
- * <i>Supported only by {@link org.apache.isis.applib.services.wrapper.WrapperFactory} service, </i> represents a check as to whether the current values of the
+ * Supported only by {@link WrapperFactory},
+ * represents a check as to whether the current values of the
  * properties/collections of an object are valid (for example, prior to saving
  * that object).
- *
  * <p>
  * If {@link #getReason()} is not <tt>null</tt> then provides the reason why the
  * object is invalid, otherwise ok.
- * 
+ *
  * @since 1.x {@index}
  */
 public class ObjectValidityEvent extends ValidityEvent {
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/ObjectVisibilityEvent.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/ObjectVisibilityEvent.java
index 672065e77a..2ba330f593 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/ObjectVisibilityEvent.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/ObjectVisibilityEvent.java
@@ -19,10 +19,11 @@
 package org.apache.isis.applib.services.wrapper.events;
 
 import org.apache.isis.applib.Identifier;
+import org.apache.isis.applib.services.wrapper.WrapperFactory;
 
 /**
- * <i>Supported only by {@link org.apache.isis.applib.services.wrapper.WrapperFactory} service, </i> represents a check as to whether an object is visible or has been hidden.
- *
+ * Supported only by {@link WrapperFactory},
+ * represents a check as to whether an object is visible or has been hidden.
  * <p>
  * If {@link #getReason()} is not <tt>null</tt> then provides the reason why the
  * object is invisible; otherwise action is visible.
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/ParseValueEvent.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/ParseValueEvent.java
index f9429b0012..2d5fbf6818 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/ParseValueEvent.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/ParseValueEvent.java
@@ -19,15 +19,15 @@
 package org.apache.isis.applib.services.wrapper.events;
 
 import org.apache.isis.applib.Identifier;
+import org.apache.isis.applib.services.wrapper.WrapperFactory;
 
 /**
- * <i>Supported only by {@link org.apache.isis.applib.services.wrapper.WrapperFactory} service, </i> represents a check as to whether the proposed values of the value type is
- * valid.
- *
+ * Supported only by {@link WrapperFactory},
+ * represents a check as to whether the proposed values of the value type is valid.
  * <p>
  * If {@link #getReason()} is not <tt>null</tt> then provides the reason why the
  * proposed value is invalid, otherwise the new value is acceptable.
- * 
+ *
  * @since 1.x {@index}
  */
 public class ParseValueEvent extends ValidityEvent {
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/PropertyAccessEvent.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/PropertyAccessEvent.java
index e9ccbc1cf4..413f9909d0 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/PropertyAccessEvent.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/PropertyAccessEvent.java
@@ -19,10 +19,11 @@
 package org.apache.isis.applib.services.wrapper.events;
 
 import org.apache.isis.applib.Identifier;
+import org.apache.isis.applib.services.wrapper.WrapperFactory;
 
 /**
- * <i>Supported only by {@link org.apache.isis.applib.services.wrapper.WrapperFactory} service, </i> represents an access (reading) of a property.
- *
+ * Supported only by {@link WrapperFactory},
+ * represents an access (reading) of a property.
  * <p>
  * Analogous to {@link PropertyModifyEvent}, however the {@link #getReason()}
  * will always be <tt>null</tt>. (If access is not allowed then a
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/PropertyModifyEvent.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/PropertyModifyEvent.java
index d31e378079..342b87c4a6 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/PropertyModifyEvent.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/PropertyModifyEvent.java
@@ -19,21 +19,26 @@
 package org.apache.isis.applib.services.wrapper.events;
 
 import org.apache.isis.applib.Identifier;
+import org.apache.isis.applib.services.wrapper.WrapperFactory;
 
 /**
- * <i>Supported only by {@link org.apache.isis.applib.services.wrapper.WrapperFactory} service, </i> represents a check as to whether a particular value for a property is valid
+ * Supported only by {@link WrapperFactory},
+ * represents a check as to whether a particular value for a property is valid
  * or not.
- *
  * <p>
  * If {@link #getReason()} is not <tt>null</tt> then provides the reason why the
  * value is invalid; otherwise the value is valid.
+ *
  * @since 1.x {@index}
  */
 public class PropertyModifyEvent extends ValidityEvent {
 
     private final Object proposed;
 
-    public PropertyModifyEvent(final Object source, final Identifier propertyIdentifier, final Object proposed) {
+    public PropertyModifyEvent(
+            final Object source,
+            final Identifier propertyIdentifier,
+            final Object proposed) {
         super(source, propertyIdentifier);
         this.proposed = proposed;
     }
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/PropertyUsabilityEvent.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/PropertyUsabilityEvent.java
index ebe81c174f..266534db66 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/PropertyUsabilityEvent.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/PropertyUsabilityEvent.java
@@ -19,13 +19,15 @@
 package org.apache.isis.applib.services.wrapper.events;
 
 import org.apache.isis.applib.Identifier;
+import org.apache.isis.applib.services.wrapper.WrapperFactory;
 
 /**
- * <i>Supported only by {@link org.apache.isis.applib.services.wrapper.WrapperFactory} service, </i> represents a check as to whether a property is usable or has been disabled.
- *
+ * Supported only by {@link WrapperFactory},
+ * represents a check as to whether a property is usable or has been disabled.
  * <p>
  * If {@link #getReason()} is not <tt>null</tt> then provides the reason why the
  * property is disabled; otherwise property is enabled.
+ *
  * @since 1.x {@index}
  */
 public class PropertyUsabilityEvent extends UsabilityEvent {
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/PropertyVisibilityEvent.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/PropertyVisibilityEvent.java
index f11b620e2c..9c72b2c39c 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/PropertyVisibilityEvent.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/PropertyVisibilityEvent.java
@@ -19,13 +19,15 @@
 package org.apache.isis.applib.services.wrapper.events;
 
 import org.apache.isis.applib.Identifier;
+import org.apache.isis.applib.services.wrapper.WrapperFactory;
 
 /**
- * <i>Supported only by {@link org.apache.isis.applib.services.wrapper.WrapperFactory} service, </i> represents a check as to whether a property is visible or has been hidden.
- *
+ * Supported only by {@link WrapperFactory},
+ * represents a check as to whether a property is visible or has been hidden.
  * <p>
  * If {@link #getReason()} is not <tt>null</tt> then provides the reason why the
  * property is invisible; otherwise property is visible.
+ *
  * @since 1.x {@index}
  */
 public class PropertyVisibilityEvent extends VisibilityEvent {
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/ProposedHolderEvent.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/ProposedHolderEvent.java
index f91ed6137b..4f796c6b2d 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/ProposedHolderEvent.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/ProposedHolderEvent.java
@@ -19,10 +19,13 @@
 
 package org.apache.isis.applib.services.wrapper.events;
 
+import org.apache.isis.applib.services.wrapper.WrapperFactory;
+
 /**
- * <i>Supported only by {@link org.apache.isis.applib.services.wrapper.WrapperFactory} service, </i> makes it easier to process different events that hold a single proposed
- * argument (such as {@link CollectionAddToEvent} and
- * {@link PropertyModifyEvent}).
+ * Supported only by {@link WrapperFactory},
+ * makes it easier to process different events that hold a single proposed
+ * argument (such as {@link PropertyModifyEvent}).
+ *
  * @since 1.x {@index}
  */
 public interface ProposedHolderEvent {
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/UsabilityEvent.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/UsabilityEvent.java
index a50295b653..98b721aacd 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/UsabilityEvent.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/UsabilityEvent.java
@@ -19,11 +19,12 @@
 package org.apache.isis.applib.services.wrapper.events;
 
 import org.apache.isis.applib.Identifier;
+import org.apache.isis.applib.services.wrapper.WrapperFactory;
 
 /**
- * <i>Supported only by {@link org.apache.isis.applib.services.wrapper.WrapperFactory} service, </i> represents a check to determine whether a member of an object is usable or
+ * Supported only by {@link WrapperFactory},
+ * represents a check to determine whether a member of an object is usable or
  * has been disabled.
- *
  * <p>
  * If {@link #getReason()} is <tt>null</tt>, then is usable; otherwise is
  * disabled.
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/ValidityEvent.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/ValidityEvent.java
index 32f9f5cc44..93f7cc084b 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/ValidityEvent.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/ValidityEvent.java
@@ -19,10 +19,11 @@
 package org.apache.isis.applib.services.wrapper.events;
 
 import org.apache.isis.applib.Identifier;
+import org.apache.isis.applib.services.wrapper.WrapperFactory;
 
 /**
- * <i>Supported only by {@link org.apache.isis.applib.services.wrapper.WrapperFactory} service, </i> represents a check to determine whether a proposed change is valid.
- *
+ * Supported only by {@link WrapperFactory},
+ * represents a check to determine whether a proposed change is valid.
  * <p>
  * Multiple subclasses, including:
  * <ul>
@@ -32,7 +33,6 @@ import org.apache.isis.applib.Identifier;
  * <li>checking all arguments for an action invocation</li>
  * <li>checking all properties for an object before saving</li>
  * </ul>
- *
  * <p>
  * If {@link #getReason()} is <tt>null</tt>, then is usable; otherwise is
  * disabled.
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/VisibilityEvent.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/VisibilityEvent.java
index b4e0a3fa73..159c39cfb9 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/VisibilityEvent.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/events/VisibilityEvent.java
@@ -22,10 +22,10 @@ import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.services.wrapper.WrapperFactory;
 
 /**
- * <i>Supported only by {@link WrapperFactory} service, </i> represents a 
+ * Supported only by {@link WrapperFactory},
+ * represents a
  * check to determine whether a member of an object is visible or
  * has been hidden.
- *
  * <p>
  * If {@link #getReason()} is <tt>null</tt>, then is usable; otherwise is
  * invisible.
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/listeners/InteractionAdapter.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/listeners/InteractionAdapter.java
index bea2d7c58e..6f346be3d0 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/listeners/InteractionAdapter.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/listeners/InteractionAdapter.java
@@ -23,9 +23,7 @@ import org.apache.isis.applib.services.wrapper.events.ActionInvocationEvent;
 import org.apache.isis.applib.services.wrapper.events.ActionUsabilityEvent;
 import org.apache.isis.applib.services.wrapper.events.ActionVisibilityEvent;
 import org.apache.isis.applib.services.wrapper.events.CollectionAccessEvent;
-import org.apache.isis.applib.services.wrapper.events.CollectionAddToEvent;
 import org.apache.isis.applib.services.wrapper.events.CollectionMethodEvent;
-import org.apache.isis.applib.services.wrapper.events.CollectionRemoveFromEvent;
 import org.apache.isis.applib.services.wrapper.events.CollectionUsabilityEvent;
 import org.apache.isis.applib.services.wrapper.events.CollectionVisibilityEvent;
 import org.apache.isis.applib.services.wrapper.events.ObjectTitleEvent;
@@ -71,13 +69,14 @@ public class InteractionAdapter implements InteractionListener {
     public void collectionAccessed(final CollectionAccessEvent ev) {
     }
 
-    @Override
-    public void collectionAddedTo(final CollectionAddToEvent ev) {
-    }
-
-    @Override
-    public void collectionRemovedFrom(final CollectionRemoveFromEvent ev) {
-    }
+//XXX[ISIS-3084] - removal of collection modification events
+//    @Override
+//    public void collectionAddedTo(final CollectionAddToEvent ev) {
+//    }
+//
+//    @Override
+//    public void collectionRemovedFrom(final CollectionRemoveFromEvent ev) {
+//    }
 
     @Override
     public void collectionMethodInvoked(final CollectionMethodEvent interactionEvent) {
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/listeners/InteractionListener.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/listeners/InteractionListener.java
index decccfa17d..c234c5f9d7 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/listeners/InteractionListener.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/listeners/InteractionListener.java
@@ -23,9 +23,7 @@ import org.apache.isis.applib.services.wrapper.events.ActionInvocationEvent;
 import org.apache.isis.applib.services.wrapper.events.ActionUsabilityEvent;
 import org.apache.isis.applib.services.wrapper.events.ActionVisibilityEvent;
 import org.apache.isis.applib.services.wrapper.events.CollectionAccessEvent;
-import org.apache.isis.applib.services.wrapper.events.CollectionAddToEvent;
 import org.apache.isis.applib.services.wrapper.events.CollectionMethodEvent;
-import org.apache.isis.applib.services.wrapper.events.CollectionRemoveFromEvent;
 import org.apache.isis.applib.services.wrapper.events.CollectionUsabilityEvent;
 import org.apache.isis.applib.services.wrapper.events.CollectionVisibilityEvent;
 import org.apache.isis.applib.services.wrapper.events.ObjectTitleEvent;
@@ -110,9 +108,7 @@ public interface InteractionListener {
      *
      * <p>
      * Will be fired prior to either
-     * {@link #collectionAccessed(CollectionAccessEvent)} or
-     * {@link #collectionAddedTo(CollectionAddToEvent)} or
-     * {@link #collectionRemovedFrom(CollectionRemoveFromEvent)}.
+     * {@link #collectionAccessed(CollectionAccessEvent)}
      *
      * @param ev
      */
@@ -130,20 +126,21 @@ public interface InteractionListener {
      */
     void collectionAccessed(CollectionAccessEvent ev);
 
-    /**
-     * An object was added to the collection (or an attempt to add it was made).
-     *
-     * @param ev
-     */
-    void collectionAddedTo(CollectionAddToEvent ev);
-
-    /**
-     * An object was removed from the collection (or an attempt to remove it was
-     * made).
-     *
-     * @param ev
-     */
-    void collectionRemovedFrom(CollectionRemoveFromEvent ev);
+//XXX[ISIS-3084] - removal of collection modification events
+//    /**
+//     * An object was added to the collection (or an attempt to add it was made).
+//     *
+//     * @param ev
+//     */
+//    void collectionAddedTo(CollectionAddToEvent ev);
+//
+//    /**
+//     * An object was removed from the collection (or an attempt to remove it was
+//     * made).
+//     *
+//     * @param ev
+//     */
+//    void collectionRemovedFrom(CollectionRemoveFromEvent ev);
 
     /**
      * A method of a collection (such as <tt>isEmpty()</tt> or <tt>size()</tt>) has been invoked.
diff --git a/core/adoc/modules/_overview/pages/about.adoc b/core/adoc/modules/_overview/pages/about.adoc
index 1b30860ba8..ed7b336540 100644
--- a/core/adoc/modules/_overview/pages/about.adoc
+++ b/core/adoc/modules/_overview/pages/about.adoc
@@ -1486,7 +1486,7 @@ org.jmock:jmock:jar:<managed> +
 
 .Document Index Entries
 ****
-xref:refguide:applib:index/Identifier.adoc[Identifier], xref:refguide:applib:index/IsisModuleApplib.adoc[IsisModuleApplib], xref:refguide:applib:index/IsisModuleApplibChangeAndExecutionLoggers.adoc[IsisModuleApplibChangeAndExecutionLoggers], xref:refguide:applib:index/IsisModuleApplibObjectMetadataMixins.adoc[IsisModuleApplibObjectMetadataMixins], xref:refguide:applib:index/ViewModel.adoc[ViewModel], xref:refguide:applib:index/annotation/Action.adoc[Action], xref:refguide:applib:index/an [...]
+xref:refguide:applib:index/Identifier.adoc[Identifier], xref:refguide:applib:index/IsisModuleApplib.adoc[IsisModuleApplib], xref:refguide:applib:index/IsisModuleApplibChangeAndExecutionLoggers.adoc[IsisModuleApplibChangeAndExecutionLoggers], xref:refguide:applib:index/IsisModuleApplibObjectMetadataMixins.adoc[IsisModuleApplibObjectMetadataMixins], xref:refguide:applib:index/ViewModel.adoc[ViewModel], xref:refguide:applib:index/annotation/Action.adoc[Action], xref:refguide:applib:index/an [...]
 ****
 
 |Apache Isis Core - Code Gen (ByteBuddy)
@@ -4394,7 +4394,7 @@ Directory: /extensions/vw/pdfjs/wicket/integration
 org.apache.isis.extensions:isis-extensions-pdfjs-applib:jar:<managed> +
 org.apache.isis.viewer:isis-viewer-wicket-ui:jar:<managed> +
 org.webjars.bowergithub.mozilla:pdfjs-dist:jar:1.10.100 +
-org.webjars.npm:pdfjs-dist:jar:2.13.216 +
+org.webjars.npm:pdfjs-dist:jar:2.14.305 +
 ****
 
 .Document Index Entries
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java
index 66119fe943..910db5706c 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java
@@ -65,9 +65,7 @@ import org.apache.isis.applib.services.wrapper.events.ActionInvocationEvent;
 import org.apache.isis.applib.services.wrapper.events.ActionUsabilityEvent;
 import org.apache.isis.applib.services.wrapper.events.ActionVisibilityEvent;
 import org.apache.isis.applib.services.wrapper.events.CollectionAccessEvent;
-import org.apache.isis.applib.services.wrapper.events.CollectionAddToEvent;
 import org.apache.isis.applib.services.wrapper.events.CollectionMethodEvent;
-import org.apache.isis.applib.services.wrapper.events.CollectionRemoveFromEvent;
 import org.apache.isis.applib.services.wrapper.events.CollectionUsabilityEvent;
 import org.apache.isis.applib.services.wrapper.events.CollectionVisibilityEvent;
 import org.apache.isis.applib.services.wrapper.events.InteractionEvent;
@@ -146,8 +144,9 @@ public class WrapperFactoryDefault implements WrapperFactory {
         putDispatcher(CollectionVisibilityEvent.class, InteractionListener::collectionVisible);
         putDispatcher(CollectionUsabilityEvent.class, InteractionListener::collectionUsable);
         putDispatcher(CollectionAccessEvent.class, InteractionListener::collectionAccessed);
-        putDispatcher(CollectionAddToEvent.class, InteractionListener::collectionAddedTo);
-        putDispatcher(CollectionRemoveFromEvent.class, InteractionListener::collectionRemovedFrom);
+//XXX[ISIS-3084] - removal of collection modification events
+//        putDispatcher(CollectionAddToEvent.class, InteractionListener::collectionAddedTo);
+//        putDispatcher(CollectionRemoveFromEvent.class, InteractionListener::collectionRemovedFrom);
         putDispatcher(ActionVisibilityEvent.class, InteractionListener::actionVisible);
         putDispatcher(ActionUsabilityEvent.class, InteractionListener::actionUsable);
         putDispatcher(ActionArgumentEvent.class, InteractionListener::actionArgument);