You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2015/10/24 16:03:34 UTC

[2/3] isis git commit: ISIS-830: adding documentation

ISIS-830: adding documentation


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/c22159fe
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/c22159fe
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/c22159fe

Branch: refs/heads/master
Commit: c22159fe55317aabbe07d7ac7bccc30b7fe582cb
Parents: 9ac0ffe
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Sat Oct 24 13:59:16 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Sat Oct 24 13:59:16 2015 +0100

----------------------------------------------------------------------
 .../src/main/asciidoc/guides/_rg_classes.adoc   |   2 +
 .../guides/_rg_classes_domainevent.adoc         |  76 +++++++++++
 ...domainevent_manpage-AbstractDomainEvent.adoc |  20 +++
 ...s_domainevent_manpage-ActionDomainEvent.adoc |  20 +++
 ...mainevent_manpage-CollectionDomainEvent.adoc |  21 +++
 ...domainevent_manpage-PropertyDomainEvent.adoc |  17 +++
 .../guides/_rg_classes_lifecycleevent.adoc      | 130 +++++++++++++++++++
 ...cleevent_manpage-AbstractLifecycleEvent.adoc |  27 ++++
 ...fecycleevent_manpage-ObjectCreatedEvent.adoc |  20 +++
 ...ifecycleevent_manpage-ObjectLoadedEvent.adoc |  17 +++
 ...cycleevent_manpage-ObjectPersistedEvent.adoc |  19 +++
 ...ycleevent_manpage-ObjectPersistingEvent.adoc |  21 +++
 ...ecycleevent_manpage-ObjectRemovingEvent.adoc |  20 +++
 ...fecycleevent_manpage-ObjectUpdatedEvent.adoc |  21 +++
 ...ecycleevent_manpage-ObjectUpdatingEvent.adoc |  22 ++++
 .../main/asciidoc/guides/_rg_classes_super.adoc |  49 ++-----
 ...asses_super_manpage-AbstractDomainEvent.adoc |  18 ---
 ...lasses_super_manpage-AbstractSubscriber.adoc |   8 ++
 ...classes_super_manpage-ActionDomainEvent.adoc |  20 ---
 ...ses_super_manpage-CollectionDomainEvent.adoc |  21 ---
 ...asses_super_manpage-PropertyDomainEvent.adoc |  17 ---
 .../asciidoc/guides/_rg_methods_lifecycle.adoc  |   7 +-
 .../_rg_methods_lifecycle_manpage-created.adoc  |   6 +
 .../_rg_methods_lifecycle_manpage-loaded.adoc   |   5 +
 ..._rg_methods_lifecycle_manpage-persisted.adoc |   4 +
 ...rg_methods_lifecycle_manpage-persisting.adoc |   4 +
 .../_rg_methods_lifecycle_manpage-removed.adoc  |   4 +
 .../_rg_methods_lifecycle_manpage-removing.adoc |   4 +
 .../_rg_methods_lifecycle_manpage-updated.adoc  |   4 +
 .../_rg_methods_lifecycle_manpage-updating.adoc |   5 +
 30 files changed, 512 insertions(+), 117 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/c22159fe/adocs/documentation/src/main/asciidoc/guides/_rg_classes.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_classes.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_classes.adoc
index 528a8a3..7155f67 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_classes.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_classes.adoc
@@ -10,6 +10,8 @@ This chapter describes the usage of various classes and interfaces that are not
 
 include::_rg_classes_AppManifest-bootstrapping.adoc[leveloffset=+1]
 include::_rg_classes_super.adoc[leveloffset=+1]
+include::_rg_classes_domainevent.adoc[leveloffset=+1]
+include::_rg_classes_lifecycleevent.adoc[leveloffset=+1]
 include::_rg_classes_value-types.adoc[leveloffset=+1]
 include::_rg_classes_utility.adoc[leveloffset=+1]
 include::_rg_classes_spec.adoc[leveloffset=+1]

http://git-wip-us.apache.org/repos/asf/isis/blob/c22159fe/adocs/documentation/src/main/asciidoc/guides/_rg_classes_domainevent.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_classes_domainevent.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_classes_domainevent.adoc
new file mode 100644
index 0000000..9010e73
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_classes_domainevent.adoc
@@ -0,0 +1,76 @@
+[[_rg_classes_domainevent]]
+= Domain Event Classes
+: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 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.
+:_basedir: ../
+:_imagesdir: images/
+
+
+This section catalogues the various domain event classes defined by Apache Isis.
+
+These events are broadcast on the xref:rg.adoc#_rg_services-api_manpage-EventBusService[`EventBusService`].  The domain
+events are broadcast as a result of being specified in the xref:rg.adoc#_rg_annotations_manpage-Action_domainEvent[`@Action#domainEvent()`],  xref:rg.adoc#_rg_annotations_manpage-Property_domainEvent[`@Property#domainEvent()`] or xref:rg.adoc#_rg_annotations_manpage-Collection_domainEvent[`@Collection#domainEvent()`] attributes.
+
+They are listed in the table below.
+
+.Domain Event Classes
+[cols="2,4a,1,1", options="header"]
+|===
+
+|API
+|Maven Module +
+Impl'n (g: a:)
+|Implementation
+|Notes
+
+
+|xref:rg.adoc#_rg_classes_domainevent_manpage-AbstractDomainEvent[`o.a.i.applib.` +
+`AbstractDomainEvent`]
+|``o.a.i.core`` +
+``services.eventbus`` +
+``isis-core-applib``
+|(abstract class)
+|Superclass of the other domain events, listed below in this table.
+
+
+|xref:rg.adoc#_rg_classes_domainevent_manpage-ActionDomainEvent[`o.a.i.applib.` +
+`ActionDomainEvent`]
+|``o.a.i.core`` +
+``services.eventbus`` +
+``isis-core-applib``
+|(abstract class). +
+`ActionDomainEvent.Default` is the concrete implementation used if no `@Action#domainEvent` attribute is specified
+|Broadcast whenever there is an interaction (hide/disable/validate/pre-execute/post-execute) with an object's action.
+
+
+|xref:rg.adoc#_rg_classes_domainevent_manpage-CollectionDomainEvent[`o.a.i.applib.` +
+`CollectionDomainEvent`]
+|``o.a.i.core`` +
+``services.eventbus`` +
+``isis-core-applib``
+|(abstract class). +
+`CollectionDomainEvent.Default` is the concrete implementation used if no `@Collection#domainEvent` attribute
+is specified.
+|Broadcast whenever there is an interaction (hide/disable/validate/access) with an object's collection.
+
+
+|xref:rg.adoc#_rg_classes_domainevent_manpage-PropertyDomainEvent[`o.a.i.applib.` +
+`PropertyDomainEvent`]
+|``o.a.i.core`` +
+``services.eventbus`` +
+``isis-core-applib``
+|(abstract class). +
+`PropertyDomainEvent.Default` is the concrete implementation used if no `@Propert#domainEvent` attribute is specified
+|Broadcast whenever there is an interaction (hide/disable/validate/access) with an object's property.
+
+
+
+|===
+
+
+
+
+include::_rg_classes_domainevent_manpage-AbstractDomainEvent.adoc[leveloffset=+1]
+include::_rg_classes_domainevent_manpage-ActionDomainEvent.adoc[leveloffset=+1]
+include::_rg_classes_domainevent_manpage-CollectionDomainEvent.adoc[leveloffset=+1]
+include::_rg_classes_domainevent_manpage-PropertyDomainEvent.adoc[leveloffset=+1]
+

http://git-wip-us.apache.org/repos/asf/isis/blob/c22159fe/adocs/documentation/src/main/asciidoc/guides/_rg_classes_domainevent_manpage-AbstractDomainEvent.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_classes_domainevent_manpage-AbstractDomainEvent.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_classes_domainevent_manpage-AbstractDomainEvent.adoc
new file mode 100644
index 0000000..ac5276f
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_classes_domainevent_manpage-AbstractDomainEvent.adoc
@@ -0,0 +1,20 @@
+[[_rg_classes_domainevent_manpage-AbstractDomainEvent]]
+= `AbstractDomainEvent`
+: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 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.
+:_basedir: ../
+:_imagesdir: images/
+
+
+This class is the superclass for all domain events that are raised by the framework when interacting with actions, properties or collections.
+
+Its immediate subclasses are:
+
+* xref:rg.adoc#_rg_classes_domainevent_manpage-ActionDomainEvent[`ActionDomainEvent`]
+
+* xref:rg.adoc#_rg_classes_domainevent_manpage-PropertyDomainEvent[`PropertyDomainEvent`]
+
+* xref:rg.adoc#_rg_classes_domainevent_manpage-CollectionDomainEvent[`CollectionDomainEvent`]
+
+This class defines the `Phase` enum that is common to all domain events (hide/disable/validate/pre-execute/post-execute), and provides methods such as `veto(...)` by which subscribers can influence the interaction (eg hide a collection, disable a property, validate action arguments).
+
+It class also provides `get(...)` and `put(...)` methods that allow adhoc sharing of user data between different phases.  One event instance is used for both the hide and disable phases, and a different event instance is shared between validate/pre-execute/post-execute.

http://git-wip-us.apache.org/repos/asf/isis/blob/c22159fe/adocs/documentation/src/main/asciidoc/guides/_rg_classes_domainevent_manpage-ActionDomainEvent.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_classes_domainevent_manpage-ActionDomainEvent.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_classes_domainevent_manpage-ActionDomainEvent.adoc
new file mode 100644
index 0000000..be71b6f
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_classes_domainevent_manpage-ActionDomainEvent.adoc
@@ -0,0 +1,20 @@
+[[_rg_classes_domainevent_manpage-ActionDomainEvent]]
+= `ActionDomainEvent`
+: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 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.
+:_basedir: ../
+:_imagesdir: images/
+
+
+Subclass of xref:rg.adoc#_rg_classes_domainevent_manpage-AbstractDomainEvent[`AbstractDomainEvent`] for actions.
+
+The class has a number of responsibilities (in addition to those it inherits):
+
+* capture the target object being interacted with
+
+* capture the arguments for each of the action's parameters
+
+* provide selected metadata about the action parameters from the metamodel (names, types)
+
+* link back to the xref:rg.adoc#_rg_services-api_manpage-CommandContext[`CommandContext`] service's `Command` object
+
+The class itself is instantiated automatically by the framework whenever interacting with a rendered object's action.

http://git-wip-us.apache.org/repos/asf/isis/blob/c22159fe/adocs/documentation/src/main/asciidoc/guides/_rg_classes_domainevent_manpage-CollectionDomainEvent.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_classes_domainevent_manpage-CollectionDomainEvent.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_classes_domainevent_manpage-CollectionDomainEvent.adoc
new file mode 100644
index 0000000..030ba87
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_classes_domainevent_manpage-CollectionDomainEvent.adoc
@@ -0,0 +1,21 @@
+[[_rg_classes_domainevent_manpage-CollectionDomainEvent]]
+= `CollectionDomainEvent`
+: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 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.
+:_basedir: ../
+:_imagesdir: images/
+
+
+Subclass of xref:rg.adoc#_rg_classes_domainevent_manpage-AbstractDomainEvent[`AbstractDomainEvent`] for collections.
+
+The class has a couple of responsibilities (in addition to those it inherits):
+
+* capture the target object being interacted with
+
+* indicate whether the interaction is to add or remove an object from the collection (or simply to indicate that the collection is being accessed/read)
+
+* capture the object reference being added or removed
+
+
+The class itself is instantiated automatically by the framework whenever interacting with a rendered object's collection.
+
+

http://git-wip-us.apache.org/repos/asf/isis/blob/c22159fe/adocs/documentation/src/main/asciidoc/guides/_rg_classes_domainevent_manpage-PropertyDomainEvent.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_classes_domainevent_manpage-PropertyDomainEvent.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_classes_domainevent_manpage-PropertyDomainEvent.adoc
new file mode 100644
index 0000000..a843152
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_classes_domainevent_manpage-PropertyDomainEvent.adoc
@@ -0,0 +1,17 @@
+[[_rg_classes_domainevent_manpage-PropertyDomainEvent]]
+= `PropertyDomainEvent`
+: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 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.
+:_basedir: ../
+:_imagesdir: images/
+
+
+Subclass of xref:rg.adoc#_rg_classes_domainevent_manpage-AbstractDomainEvent[`AbstractDomainEvent`] for properties.
+
+The class has a couple of responsibilities (in addition to those it inherits):
+
+* capture the target object being interacted with
+
+* capture the old and new values of the property
+
+
+The class itself is instantiated automatically by the framework whenever interacting with a rendered object's property.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/c22159fe/adocs/documentation/src/main/asciidoc/guides/_rg_classes_lifecycleevent.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_classes_lifecycleevent.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_classes_lifecycleevent.adoc
new file mode 100644
index 0000000..f51ea02
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_classes_lifecycleevent.adoc
@@ -0,0 +1,130 @@
+[[_rg_classes_lifecycleevent]]
+= Lifecycle Events (1.10.0-SNAPSHOT)
+: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 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.
+:_basedir: ../
+:_imagesdir: images/
+
+
+This section catalogues the various lifecycle event classes defined by Apache Isis (1.10.0-SNAPSHOT).  These events
+are fired automatically when a domain object is loaded, created, updated and so forth.
+
+The lifecycle event classes are listed in the table below:
+
+
+.Lifecycle Event Classes
+[cols="2,4a,1,1", options="header"]
+|===
+
+|API
+|Maven Module +
+Impl'n (g: a:)
+|Implementation
+|Notes
+
+
+|xref:rg.adoc#_rg_classes_lifecycleevent_manpage-AbstractLifecycleEvent[`o.a.i.applib.` +
+`AbstractLifecycleEvent`]
+|``o.a.i.core`` +
+``services.eventbus`` +
+``isis-core-applib``
+|(abstract class)
+|Superclass of the other lifecycle events, listed below in this table.
+
+
+|xref:rg.adoc#_rg_classes_lifecycleevent_manpage-ObjectCreatedDomainEvent[`o.a.i.applib.` +
+`ObjectCreatedEvent`]
+|``o.a.i.core`` +
+``services.eventbus`` +
+``isis-core-applib``
+|(abstract class). +
+`ObjectCreatedEvent.Default` is the concrete implementation that is used.
+|Broadcast when an object is first instantiated
+using the xref:rg.adoc#_rg_services-api_manpage-DomainObjectContainer_object-creation-api[`DomainObjectContainer`]'s
+`#newTransientInstance(...)` method.
+
+
+|xref:rg.adoc#_rg_classes_lifecycleevent_manpage-ObjectLoadedDomainEvent[`o.a.i.applib.` +
+`ObjectLoadedEvent`]
+|``o.a.i.core`` +
+``services.eventbus`` +
+``isis-core-applib``
+|(abstract class). +
+`ObjectLoadedEvent.Default` is the concrete implementation that is  used.
+|Broadcast when an object is retrieved from the database.
+
+
+|xref:rg.adoc#_rg_classes_lifecycleevent_manpage-ObjectPersistedDomainEvent[`o.a.i.applib.` +
+`ObjectPersistedEvent`]
+|``o.a.i.core`` +
+``services.eventbus`` +
+``isis-core-applib``
+|(abstract class). +
+`ObjectPersistedEvent.Default` is the concrete implementation that is used.
+|Broadcast when an object is first saved (inserted) into the database using the
+xref:rg.adoc#_rg_services-api_manpage-DomainObjectContainer_object-persistence-api[`DomainObjectContainer`]'s
+`#persist(...)` method.
+
+
+|xref:rg.adoc#_rg_classes_lifecycleevent_manpage-ObjectPersistingDomainEvent[`o.a.i.applib.` +
+`ObjectPersistingEvent`]
+|``o.a.i.core`` +
+``services.eventbus`` +
+``isis-core-applib``
+|(abstract class). +
+`ObjectPersistingEvent.Default` is the concrete implementation that is used.
+|Broadcast when an object is about to be saved (inserted) into the database using the
+xref:rg.adoc#_rg_services-api_manpage-DomainObjectContainer_object-persistence-api[`DomainObjectContainer`]'s
+`#persist(...)` method.
+
+
+|xref:rg.adoc#_rg_classes_lifecycleevent_manpage-ObjectRemovingDomainEvent[`o.a.i.applib.` +
+`ObjectRemovingEvent`]
+|``o.a.i.core`` +
+``services.eventbus`` +
+``isis-core-applib``
+|(abstract class). +
+`ObjectRemovingEvent.Default` is the concrete implementation that is used.
+|Broadcast when an object is about to be deleted from the database using the
+xref:rg.adoc#_rg_services-api_manpage-DomainObjectContainer_object-persistence-api[`DomainObjectContainer`]'s
+`#remove(...)` method.
+
+
+|xref:rg.adoc#_rg_classes_lifecycleevent_manpage-ObjectUpdatedDomainEvent[`o.a.i.applib.` +
+`ObjectUpdatedEvent`]
+|``o.a.i.core`` +
+``services.eventbus`` +
+``isis-core-applib``
+|(abstract class). +
+`ObjectUpdatedEvent.Default` is the concrete implementation that is used.
+|Broadcast when an object has just been updated in the database.  This is done either explicitly when the current
+transaction is flushed using the
+xref:rg.adoc#_rg_services-api_manpage-DomainObjectContainer_object-persistence-api[`DomainObjectContainer`]'s
+`#flush(...)` method, else is done implicitly when the transaction commits at the end of the user request.
+
+
+|xref:rg.adoc#_rg_classes_lifecycleevent_manpage-ObjectUpdatingDomainEvent[`o.a.i.applib.` +
+`ObjectUpdatingEvent`]
+|``o.a.i.core`` +
+``services.eventbus`` +
+``isis-core-applib``
+|(abstract class). +
+`ObjectUpdatingEvent.Default` is the concrete implementation that is used.
+|Broadcast when an object is about to be updated in the database.  This is done either explicitly when the current
+transaction is flushed using the
+xref:rg.adoc#_rg_services-api_manpage-DomainObjectContainer_object-persistence-api[`DomainObjectContainer`]'s
+`#flush(...)` method, else is done implicitly when the transaction commits at the end of the user request.
+
+
+|===
+
+
+
+include::_rg_classes_lifecycleevent_manpage-AbstractLifecycleEvent.adoc[leveloffset=+1]
+include::_rg_classes_lifecycleevent_manpage-ObjectCreatedEvent.adoc[leveloffset=+1]
+include::_rg_classes_lifecycleevent_manpage-ObjectLoadedEvent.adoc[leveloffset=+1]
+include::_rg_classes_lifecycleevent_manpage-ObjectPersistedEvent.adoc[leveloffset=+1]
+include::_rg_classes_lifecycleevent_manpage-ObjectPersistingEvent.adoc[leveloffset=+1]
+include::_rg_classes_lifecycleevent_manpage-ObjectRemovingEvent.adoc[leveloffset=+1]
+include::_rg_classes_lifecycleevent_manpage-ObjectUpdatedEvent.adoc[leveloffset=+1]
+include::_rg_classes_lifecycleevent_manpage-ObjectUpdatingEvent.adoc[leveloffset=+1]
+

http://git-wip-us.apache.org/repos/asf/isis/blob/c22159fe/adocs/documentation/src/main/asciidoc/guides/_rg_classes_lifecycleevent_manpage-AbstractLifecycleEvent.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_classes_lifecycleevent_manpage-AbstractLifecycleEvent.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_classes_lifecycleevent_manpage-AbstractLifecycleEvent.adoc
new file mode 100644
index 0000000..e7baf30
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_classes_lifecycleevent_manpage-AbstractLifecycleEvent.adoc
@@ -0,0 +1,27 @@
+[[_rg_classes_lifecycleevent_manpage-AbstractLifecycleEvent]]
+= `AbstractLifecycleEvent`
+: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 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.
+:_basedir: ../
+:_imagesdir: images/
+
+
+This class is the superclass for all lifecycle events that are raised by the framework when loading, saving, updating
+or deleting objects from the database.
+
+Its immediate subclasses are:
+
+* xref:rg.adoc#_rg_classes_lifecycleevent_manpage-ObjectCreatedEvent[`ObjectCreatedEvent`]
+
+* xref:rg.adoc#_rg_classes_lifecycleevent_manpage-ObjectLoadedEvent[`ObjectLoadedEvent`]
+
+* xref:rg.adoc#_rg_classes_lifecycleevent_manpage-ObjectPersistedEvent[`ObjectPersistedEvent`]
+
+* xref:rg.adoc#_rg_classes_lifecycleevent_manpage-ObjectPersistingEvent[`ObjectPersistingEvent`]
+
+* xref:rg.adoc#_rg_classes_lifecycleevent_manpage-ObjectRemovingEvent[`ObjectRemovingEvent`]
+
+* xref:rg.adoc#_rg_classes_lifecycleevent_manpage-ObjectUpdatedEvent[`ObjectUpdatedEvent`]
+
+* xref:rg.adoc#_rg_classes_lifecycleevent_manpage-ObjectUpdatingEvent[`ObjectUpdatingEvent`]
+
+

http://git-wip-us.apache.org/repos/asf/isis/blob/c22159fe/adocs/documentation/src/main/asciidoc/guides/_rg_classes_lifecycleevent_manpage-ObjectCreatedEvent.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_classes_lifecycleevent_manpage-ObjectCreatedEvent.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_classes_lifecycleevent_manpage-ObjectCreatedEvent.adoc
new file mode 100644
index 0000000..5798ba0
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_classes_lifecycleevent_manpage-ObjectCreatedEvent.adoc
@@ -0,0 +1,20 @@
+[[_rg_classes_lifecycleevent_manpage-ObjectCreatedEvent]]
+= `ObjectCreatedEvent`
+: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 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.
+:_basedir: ../
+:_imagesdir: images/
+
+
+
+Subclass of xref:rg.adoc#_rg_classes_lifecycleevent_manpage-AbstractLifecycleEvent[`AbstractLifecycleEvent`], broadcast
+when an object is first instantiated using the
+xref:rg.adoc#_rg_services-api_manpage-DomainObjectContainer_object-creation-api[`DomainObjectContainer`]'s
+`#newTransientInstance(...)` method.
+
+`ObjectCreatedEvent.Default` is the concrete implementation that is used.
+
+[NOTE]
+====
+In the future this may be generalized to allow arbitrary subclasses to be broadcast, see ISIS-803.
+====
+

http://git-wip-us.apache.org/repos/asf/isis/blob/c22159fe/adocs/documentation/src/main/asciidoc/guides/_rg_classes_lifecycleevent_manpage-ObjectLoadedEvent.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_classes_lifecycleevent_manpage-ObjectLoadedEvent.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_classes_lifecycleevent_manpage-ObjectLoadedEvent.adoc
new file mode 100644
index 0000000..627308a
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_classes_lifecycleevent_manpage-ObjectLoadedEvent.adoc
@@ -0,0 +1,17 @@
+[[_rg_classes_lifecycleevent_manpage-ObjectLoadedEvent]]
+= `ObjectLoadedEvent`
+: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 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.
+:_basedir: ../
+:_imagesdir: images/
+
+
+
+Subclass of xref:rg.adoc#_rg_classes_lifecycleevent_manpage-AbstractLifecycleEvent[`AbstractLifecycleEvent`], broadcast
+when an object is retrieved from the database.
+
+`ObjectLoadedEvent.Default` is the concrete implementation that is used.
+
+[NOTE]
+====
+In the future this may be generalized to allow arbitrary subclasses to be broadcast, see ISIS-803.
+====

http://git-wip-us.apache.org/repos/asf/isis/blob/c22159fe/adocs/documentation/src/main/asciidoc/guides/_rg_classes_lifecycleevent_manpage-ObjectPersistedEvent.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_classes_lifecycleevent_manpage-ObjectPersistedEvent.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_classes_lifecycleevent_manpage-ObjectPersistedEvent.adoc
new file mode 100644
index 0000000..4a1bd91
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_classes_lifecycleevent_manpage-ObjectPersistedEvent.adoc
@@ -0,0 +1,19 @@
+[[_rg_classes_lifecycleevent_manpage-ObjectPersistedEvent]]
+= `ObjectPersistedEvent`
+: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 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.
+:_basedir: ../
+:_imagesdir: images/
+
+
+Subclass of xref:rg.adoc#_rg_classes_lifecycleevent_manpage-AbstractLifecycleEvent[`AbstractLifecycleEvent`], broadcast
+when an object is first saved (inserted) into the database using the
+xref:rg.adoc#_rg_services-api_manpage-DomainObjectContainer_object-persistence-api[`DomainObjectContainer`]'s
+`#persist(...)` method.
+
+
+`ObjectPersistedEvent.Default` is the concrete implementation that is used.
+
+[NOTE]
+====
+In the future this may be generalized to allow arbitrary subclasses to be broadcast, see ISIS-803.
+====

http://git-wip-us.apache.org/repos/asf/isis/blob/c22159fe/adocs/documentation/src/main/asciidoc/guides/_rg_classes_lifecycleevent_manpage-ObjectPersistingEvent.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_classes_lifecycleevent_manpage-ObjectPersistingEvent.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_classes_lifecycleevent_manpage-ObjectPersistingEvent.adoc
new file mode 100644
index 0000000..1baf88e
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_classes_lifecycleevent_manpage-ObjectPersistingEvent.adoc
@@ -0,0 +1,21 @@
+[[_rg_classes_lifecycleevent_manpage-ObjectPersistingEvent]]
+= `ObjectPersistingEvent`
+: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 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.
+:_basedir: ../
+:_imagesdir: images/
+
+
+Subclass of xref:rg.adoc#_rg_classes_lifecycleevent_manpage-AbstractLifecycleEvent[`AbstractLifecycleEvent`], broadcast
+when an object is about to be saved (inserted) into the database using the
+xref:rg.adoc#_rg_services-api_manpage-DomainObjectContainer_object-persistence-api[`DomainObjectContainer`]'s
+`#persist(...)` method.
+
+
+`ObjectPersistingEvent.Default` is the concrete implementation that is used.
+
+[NOTE]
+====
+In the future this may be generalized to allow arbitrary subclasses to be broadcast, see ISIS-803.
+====
+
+

http://git-wip-us.apache.org/repos/asf/isis/blob/c22159fe/adocs/documentation/src/main/asciidoc/guides/_rg_classes_lifecycleevent_manpage-ObjectRemovingEvent.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_classes_lifecycleevent_manpage-ObjectRemovingEvent.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_classes_lifecycleevent_manpage-ObjectRemovingEvent.adoc
new file mode 100644
index 0000000..069f759
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_classes_lifecycleevent_manpage-ObjectRemovingEvent.adoc
@@ -0,0 +1,20 @@
+[[_rg_classes_lifecycleevent_manpage-ObjectRemovingEvent]]
+= `ObjectRemovingEvent`
+: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 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.
+:_basedir: ../
+:_imagesdir: images/
+
+
+Subclass of xref:rg.adoc#_rg_classes_lifecycleevent_manpage-AbstractLifecycleEvent[`AbstractLifecycleEvent`], broadcast
+when an object is about to be deleted from the database using the
+xref:rg.adoc#_rg_services-api_manpage-DomainObjectContainer_object-persistence-api[`DomainObjectContainer`]'s
+`#remove(...)` method.
+
+
+`ObjectRemovingEvent.Default` is the concrete implementation that is used.
+
+[NOTE]
+====
+In the future this may be generalized to allow arbitrary subclasses to be broadcast, see ISIS-803.
+====
+

http://git-wip-us.apache.org/repos/asf/isis/blob/c22159fe/adocs/documentation/src/main/asciidoc/guides/_rg_classes_lifecycleevent_manpage-ObjectUpdatedEvent.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_classes_lifecycleevent_manpage-ObjectUpdatedEvent.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_classes_lifecycleevent_manpage-ObjectUpdatedEvent.adoc
new file mode 100644
index 0000000..fa244b7
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_classes_lifecycleevent_manpage-ObjectUpdatedEvent.adoc
@@ -0,0 +1,21 @@
+[[_rg_classes_lifecycleevent_manpage-ObjectUpdatedEvent]]
+= `ObjectUpdatedEvent`
+: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 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.
+:_basedir: ../
+:_imagesdir: images/
+
+
+
+Subclass of xref:rg.adoc#_rg_classes_lifecycleevent_manpage-AbstractLifecycleEvent[`AbstractLifecycleEvent`], broadcast
+when an object has just been updated in the database.  This is done either explicitly when the current
+transaction is flushed using the
+xref:rg.adoc#_rg_services-api_manpage-DomainObjectContainer_object-persistence-api[`DomainObjectContainer`]'s
+`#flush(...)` method, else is done implicitly when the transaction commits at the end of the user request.
+
+`ObjectUpdatedEvent.Default` is the concrete implementation that is used.
+
+[NOTE]
+====
+In the future this may be generalized to allow arbitrary subclasses to be broadcast, see ISIS-803.
+====
+

http://git-wip-us.apache.org/repos/asf/isis/blob/c22159fe/adocs/documentation/src/main/asciidoc/guides/_rg_classes_lifecycleevent_manpage-ObjectUpdatingEvent.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_classes_lifecycleevent_manpage-ObjectUpdatingEvent.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_classes_lifecycleevent_manpage-ObjectUpdatingEvent.adoc
new file mode 100644
index 0000000..05fc948
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_classes_lifecycleevent_manpage-ObjectUpdatingEvent.adoc
@@ -0,0 +1,22 @@
+[[_rg_classes_lifecycleevent_manpage-ObjectUpdatingEvent]]
+= `ObjectUpdatingEvent`
+: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 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.
+:_basedir: ../
+:_imagesdir: images/
+
+
+
+Subclass of xref:rg.adoc#_rg_classes_lifecycleevent_manpage-AbstractLifecycleEvent[`AbstractLifecycleEvent`], broadcast
+when an object is about to be updated in the database.  This is done either explicitly when the current
+transaction is flushed using the
+xref:rg.adoc#_rg_services-api_manpage-DomainObjectContainer_object-persistence-api[`DomainObjectContainer`]'s
+`#flush(...)` method, else is done implicitly when the transaction commits at the end of the user request.
+
+
+`ObjectUpdatingEvent.Default` is the concrete implementation that is used.
+
+[NOTE]
+====
+In the future this may be generalized to allow arbitrary subclasses to be broadcast, see ISIS-803.
+====
+

http://git-wip-us.apache.org/repos/asf/isis/blob/c22159fe/adocs/documentation/src/main/asciidoc/guides/_rg_classes_super.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_classes_super.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_classes_super.adoc
index 422c6e6..5714797 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_classes_super.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_classes_super.adoc
@@ -5,7 +5,8 @@
 :_imagesdir: images/
 
 
-This section catalogues the various convenience superclasses defined by Apache Isis.  These are listed in the table below.
+This section catalogues the various convenience (non event) superclasses defined by Apache Isis.  These are listed in the table below.
+
 
 .Convenience Superclasses
 [cols="2,4a,1,1", options="header"]
@@ -26,15 +27,6 @@ Impl'n (g: a:)
 |
 
 
-|xref:rg.adoc#_rg_classes_super_manpage-AbstractDomainEvent[`o.a.i.applib.` +
-`AbstractDomainEvent`]
-|``o.a.i.core`` +
-``services.eventbus`` +
-``isis-core-applib``
-|(abstract class)
-|
-
-
 |xref:rg.adoc#_rg_classes_super_manpage-AbstractDomainObject[`o.a.i.applib.` +
 `AbstractDomainObject`]
 |``o.a.i.core`` +
@@ -59,27 +51,17 @@ Impl'n (g: a:)
 |
 
 
-|xref:rg.adoc#_rg_classes_super_manpage-AbstractViewModel[`o.a.i.applib.` +
-`AbstractViewModel`]
+|xref:rg.adoc#_rg_classes_super_manpage-AbstractSubscriber[`o.a.i.applib.` +
+`AbstractSubscriber`]
 |``o.a.i.core`` +
 ``isis-core-applib``
 |(abstract class)
 |
 
 
-|xref:rg.adoc#_rg_classes_super_manpage-ActionDomainEvent[`o.a.i.applib.` +
-`ActionDomainEvent`]
-|``o.a.i.core`` +
-``services.eventbus`` +
-``isis-core-applib``
-|(abstract class)
-|
-
-
-|xref:rg.adoc#_rg_classes_super_manpage-CollectionDomainEvent[`o.a.i.applib.` +
-`CollectionDomainEvent`]
+|xref:rg.adoc#_rg_classes_super_manpage-AbstractViewModel[`o.a.i.applib.` +
+`AbstractViewModel`]
 |``o.a.i.core`` +
-``services.eventbus`` +
 ``isis-core-applib``
 |(abstract class)
 |
@@ -99,36 +81,25 @@ Impl'n (g: a:)
 `FixtureScripts`]
 |``o.a.i.core`` +
 ``isis-core-applib``
-|(abstract class)
+|(abstract class). +
+`FixtureScriptsDefault` is a default implementation that is used when the alternative xref:rg.adoc#_rg_services-api_manpage-FixtureScriptsSpecificationProvider[`FixtureScriptsSpecificationProvider`] is provided
+  (and no other implementation of `FixtureScripts` was found).
 |depends on: +
 `ClassDiscoveryService`
 
 
-|xref:rg.adoc#_rg_classes_super_manpage-PropertyDomainEvent[`o.a.i.applib.` +
-`PropertyDomainEvent`]
-|``o.a.i.core`` +
-``services.eventbus`` +
-``isis-core-applib``
-|(abstract class)
-|
-
-
-
 |===
 
 
 
 
 include::_rg_classes_super_manpage-AbstractContainedObject.adoc[leveloffset=+1]
-include::_rg_classes_super_manpage-AbstractDomainEvent.adoc[leveloffset=+1]
 include::_rg_classes_super_manpage-AbstractDomainObject.adoc[leveloffset=+1]
 include::_rg_classes_super_manpage-AbstractFactoryAndRepository.adoc[leveloffset=+1]
 include::_rg_classes_super_manpage-AbstractService.adoc[leveloffset=+1]
+include::_rg_classes_super_manpage-AbstractSubscriber.adoc[leveloffset=+1]
 include::_rg_classes_super_manpage-AbstractViewModel.adoc[leveloffset=+1]
-include::_rg_classes_super_manpage-ActionDomainEvent.adoc[leveloffset=+1]
-include::_rg_classes_super_manpage-CollectionDomainEvent.adoc[leveloffset=+1]
 include::_rg_classes_super_manpage-FixtureScript.adoc[leveloffset=+1]
 include::_rg_classes_super_manpage-FixtureScripts.adoc[leveloffset=+1]
-include::_rg_classes_super_manpage-PropertyDomainEvent.adoc[leveloffset=+1]
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/c22159fe/adocs/documentation/src/main/asciidoc/guides/_rg_classes_super_manpage-AbstractDomainEvent.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_classes_super_manpage-AbstractDomainEvent.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_classes_super_manpage-AbstractDomainEvent.adoc
deleted file mode 100644
index cbdbcc1..0000000
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_classes_super_manpage-AbstractDomainEvent.adoc
+++ /dev/null
@@ -1,18 +0,0 @@
-[[_rg_classes_super_manpage-AbstractDomainEvent]]
-= `AbstractDomainEvent`
-: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 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.
-:_basedir: ../
-:_imagesdir: images/
-
-
-This class is the superclass for all domain events that are raised by the framework when interacting with actions, properties or collections.
-
-Its immediate subclasses are:
-
-* xref:rg.adoc#_rg_classes_super_manpage-ActionDomainEvent[`ActionDomainEvent`]
-
-* xref:rg.adoc#_rg_classes_super_manpage-PropertyDomainEvent[`PropertyDomainEvent`]
-
-This class defines the `Phase` enum that is common to all domain events (hide/disable/validate/pre-execute/post-execute), and provides methods such as `veto(...)` by which subscribers can influence the interaction (eg hide a collection, disable a property, validate action arguments).
-
-It class also provides `get(...)` and `put(...)` methods that allow adhoc sharing of user data between different phases.  One event instance is used for both the hide and disable phases, and a different event instance is shared between validate/pre-execute/post-execute.

http://git-wip-us.apache.org/repos/asf/isis/blob/c22159fe/adocs/documentation/src/main/asciidoc/guides/_rg_classes_super_manpage-AbstractSubscriber.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_classes_super_manpage-AbstractSubscriber.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_classes_super_manpage-AbstractSubscriber.adoc
new file mode 100644
index 0000000..b663f38
--- /dev/null
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_classes_super_manpage-AbstractSubscriber.adoc
@@ -0,0 +1,8 @@
+[[_rg_classes_super_manpage-AbstractSubscriber]]
+= `AbstractSubscriber`
+: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 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.
+:_basedir: ../
+:_imagesdir: images/
+
+
+This is a convenience superclass for creating subscriber domain services on the xref:rg.adoc#_rg_services-api_manpage-EventBusService[`EventBusService`].  It uses xref:rg.adoc#_rg_annotations_manpage-PostConstruct[`@PostConstruct`] and xref:rg.adoc#_rg_annotations_manpage-PreDestroy[`@PreDestroy`] callbacks to automatically register itself with the `EventBusService`.

http://git-wip-us.apache.org/repos/asf/isis/blob/c22159fe/adocs/documentation/src/main/asciidoc/guides/_rg_classes_super_manpage-ActionDomainEvent.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_classes_super_manpage-ActionDomainEvent.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_classes_super_manpage-ActionDomainEvent.adoc
deleted file mode 100644
index d5ed13b..0000000
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_classes_super_manpage-ActionDomainEvent.adoc
+++ /dev/null
@@ -1,20 +0,0 @@
-[[_rg_classes_super_manpage-ActionDomainEvent]]
-= `ActionDomainEvent`
-: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 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.
-:_basedir: ../
-:_imagesdir: images/
-
-
-Subclass of xref:rg.adoc#_rg_classes_super_manpage-AbstractDomainEvent[`AbstractDomainEvent`] for actions.
-
-The class has a number of responsibilities (in addition to those it inherits):
-
-* capture the target object being interacted with
-
-* capture the arguments for each of the action's parameters
-
-* provide selected metadata about the action parameters from the metamodel (names, types)
-
-* link back to the xref:rg.adoc#_rg_services-api_manpage-CommandContext[`CommandContext`] service's `Command` object
-
-The class itself is instantiated automatically by the framework whenever interacting with a rendered object's action.

http://git-wip-us.apache.org/repos/asf/isis/blob/c22159fe/adocs/documentation/src/main/asciidoc/guides/_rg_classes_super_manpage-CollectionDomainEvent.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_classes_super_manpage-CollectionDomainEvent.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_classes_super_manpage-CollectionDomainEvent.adoc
deleted file mode 100644
index f8953db..0000000
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_classes_super_manpage-CollectionDomainEvent.adoc
+++ /dev/null
@@ -1,21 +0,0 @@
-[[_rg_classes_super_manpage-CollectionDomainEvent]]
-= `CollectionDomainEvent`
-: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 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.
-:_basedir: ../
-:_imagesdir: images/
-
-
-Subclass of xref:rg.adoc#_rg_classes_super_manpage-AbstractDomainEvent[`AbstractDomainEvent`] for collections.
-
-The class has a couple of responsibilities (in addition to those it inherits):
-
-* capture the target object being interacted with
-
-* indicate whether the interaction is to add or remove an object from the collection (or simply to indicate that the collection is being accessed/read)
-
-* capture the object reference being added or removed
-
-
-The class itself is instantiated automatically by the framework whenever interacting with a rendered object's collection.
-
-

http://git-wip-us.apache.org/repos/asf/isis/blob/c22159fe/adocs/documentation/src/main/asciidoc/guides/_rg_classes_super_manpage-PropertyDomainEvent.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_classes_super_manpage-PropertyDomainEvent.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_classes_super_manpage-PropertyDomainEvent.adoc
deleted file mode 100644
index 64961c9..0000000
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_classes_super_manpage-PropertyDomainEvent.adoc
+++ /dev/null
@@ -1,17 +0,0 @@
-[[_rg_classes_super_manpage-PropertyDomainEvent]]
-= `PropertyDomainEvent`
-: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 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.
-:_basedir: ../
-:_imagesdir: images/
-
-
-Subclass of xref:rg.adoc#_rg_classes_super_manpage-AbstractDomainEvent[`AbstractDomainEvent`] for properties.
-
-The class has a couple of responsibilities (in addition to those it inherits):
-
-* capture the target object being interacted with
-
-* capture the old and new values of the property
-
-
-The class itself is instantiated automatically by the framework whenever interacting with a rendered object's property.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/c22159fe/adocs/documentation/src/main/asciidoc/guides/_rg_methods_lifecycle.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_methods_lifecycle.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_methods_lifecycle.adoc
index b23ab6e..ca38de0 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_methods_lifecycle.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_methods_lifecycle.adoc
@@ -11,9 +11,12 @@ The lifecycle callback methods notify a domain entity about its interaction with
 
 [WARNING]
 ====
-Note that these callbacks are fired by Apache Isis rather than JDO.  In the future we may deprecate them because they duplicate functionality already available in JDO.
+Note that these callbacks are fired by Apache Isis rather than JDO.  In the future we may deprecate them because there are better mechanisms available using listeners/subscribers:
 
-You may therefore want to consider using the JDO API directly; see xref:rg.adoc#_rg_methods_lifecycle_jdo-api[here] for further discussion.
+* in Isis 1.9.0 and earlier, you may therefore want to consider using the JDO API directly to set up a lifecycle
+listener; see xref:rg.adoc#_rg_methods_lifecycle_jdo-api[here] for further discussion.
+
+* alternatively (1.10.0-SNAPSHOT), you can use a subscriber for the xref:rg.adoc#_rg_classes_lifecycleevent[lifecycle event]s fired in Isis.
 ====
 
 The lifecycle callback methods supported by Isis are:

http://git-wip-us.apache.org/repos/asf/isis/blob/c22159fe/adocs/documentation/src/main/asciidoc/guides/_rg_methods_lifecycle_manpage-created.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_methods_lifecycle_manpage-created.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_methods_lifecycle_manpage-created.adoc
index 89c4152..8f40cb4 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_methods_lifecycle_manpage-created.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_methods_lifecycle_manpage-created.adoc
@@ -8,4 +8,10 @@
 The `created()` lifecycle callback method is called when an object has just been created using xref:rg.adoc#_rg_services-api_manpage-DomainObjectContainer[`newTransientInstance()`]
 
 
+[TIP]
+====
+Alternatively, consider using a xref:rg.adoc#_rg_services-api_manpage-EventBusService[event bus] xref:rg.adoc#_rg_classes_super_manpage-AbstractSubscriber[subscriber] on the xref:rg.adoc#_rg_classes_lifecycleevent_manpage-ObjectCreatedEvent[`ObjectCreatedEvent`].
+====
+
+
 

http://git-wip-us.apache.org/repos/asf/isis/blob/c22159fe/adocs/documentation/src/main/asciidoc/guides/_rg_methods_lifecycle_manpage-loaded.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_methods_lifecycle_manpage-loaded.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_methods_lifecycle_manpage-loaded.adoc
index 9a5fa76..2e74e6a 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_methods_lifecycle_manpage-loaded.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_methods_lifecycle_manpage-loaded.adoc
@@ -8,3 +8,8 @@
 
 The `loaded()` lifecycle callback method is called when a (persistent) object has just been loaded from the object store.
 
+
+[TIP]
+====
+Alternatively, consider using a xref:rg.adoc#_rg_services-api_manpage-EventBusService[event bus] xref:rg.adoc#_rg_classes_super_manpage-AbstractSubscriber[subscriber] on the xref:rg.adoc#_rg_classes_lifecycleevent_manpage-ObjectLoadedEvent[`ObjectLoadedEvent`].
+====

http://git-wip-us.apache.org/repos/asf/isis/blob/c22159fe/adocs/documentation/src/main/asciidoc/guides/_rg_methods_lifecycle_manpage-persisted.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_methods_lifecycle_manpage-persisted.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_methods_lifecycle_manpage-persisted.adoc
index 5f1e683..d3222b8 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_methods_lifecycle_manpage-persisted.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_methods_lifecycle_manpage-persisted.adoc
@@ -10,3 +10,7 @@ The `persisted()` lifecycle callback method is called when object has just been
 
 See also xref:rg.adoc#_rg_methods_lifecycle_manpage-persisting[`persisting()`].
 
+[TIP]
+====
+Alternatively, consider using a xref:rg.adoc#_rg_services-api_manpage-EventBusService[event bus] xref:rg.adoc#_rg_classes_super_manpage-AbstractSubscriber[subscriber] on the xref:rg.adoc#_rg_classes_lifecycleevent_manpage-ObjectPersistedEvent[`ObjectPersistedEvent`].
+====

http://git-wip-us.apache.org/repos/asf/isis/blob/c22159fe/adocs/documentation/src/main/asciidoc/guides/_rg_methods_lifecycle_manpage-persisting.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_methods_lifecycle_manpage-persisting.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_methods_lifecycle_manpage-persisting.adoc
index 96afbe8..ff64652 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_methods_lifecycle_manpage-persisting.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_methods_lifecycle_manpage-persisting.adoc
@@ -10,3 +10,7 @@ The `persisting()` lifecycle callback method is called when a (not-yet-persisten
 
 See also xref:rg.adoc#_rg_methods_lifecycle_manpage-persisted[`persisted()`].
 
+[TIP]
+====
+Alternatively, consider using a xref:rg.adoc#_rg_services-api_manpage-EventBusService[event bus] xref:rg.adoc#_rg_classes_super_manpage-AbstractSubscriber[subscriber] on the xref:rg.adoc#_rg_classes_lifecycleevent_manpage-ObjectPersistingEvent[`ObjectPersistingEvent`].
+====

http://git-wip-us.apache.org/repos/asf/isis/blob/c22159fe/adocs/documentation/src/main/asciidoc/guides/_rg_methods_lifecycle_manpage-removed.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_methods_lifecycle_manpage-removed.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_methods_lifecycle_manpage-removed.adoc
index 6a85b5e..68c75b3 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_methods_lifecycle_manpage-removed.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_methods_lifecycle_manpage-removed.adoc
@@ -10,3 +10,7 @@ The `removed()` lifecycle callback method is called when a (persistent) object h
 
 See also xref:rg.adoc#_rg_methods_lifecycle_manpage-removing[`removing()`].
 
+[TIP]
+====
+Alternatively, consider using a xref:rg.adoc#_rg_services-api_manpage-EventBusService[event bus] xref:rg.adoc#_rg_classes_super_manpage-AbstractSubscriber[subscriber] on the xref:rg.adoc#_rg_classes_lifecycleevent_manpage-ObjectRemovedEvent[`ObjectRemovedEvent`].
+====

http://git-wip-us.apache.org/repos/asf/isis/blob/c22159fe/adocs/documentation/src/main/asciidoc/guides/_rg_methods_lifecycle_manpage-removing.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_methods_lifecycle_manpage-removing.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_methods_lifecycle_manpage-removing.adoc
index b45bc94..8ebc6df 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_methods_lifecycle_manpage-removing.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_methods_lifecycle_manpage-removing.adoc
@@ -10,3 +10,7 @@ The `removing()` lifecycle callback method is called when a (persistent) object
 
 See also xref:rg.adoc#_rg_methods_lifecycle_manpage-removed[`removed()`].
 
+[TIP]
+====
+Alternatively, consider using a xref:rg.adoc#_rg_services-api_manpage-EventBusService[event bus] xref:rg.adoc#_rg_classes_super_manpage-AbstractSubscriber[subscriber] on the xref:rg.adoc#_rg_classes_lifecycleevent_manpage-ObjectRemovingEvent[`ObjectRemovingEvent`].
+====

http://git-wip-us.apache.org/repos/asf/isis/blob/c22159fe/adocs/documentation/src/main/asciidoc/guides/_rg_methods_lifecycle_manpage-updated.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_methods_lifecycle_manpage-updated.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_methods_lifecycle_manpage-updated.adoc
index b683b5f..77374d2 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_methods_lifecycle_manpage-updated.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_methods_lifecycle_manpage-updated.adoc
@@ -12,3 +12,7 @@ The `updated()` lifecycle callback method is called when a (persistent) object h
 
 See also xref:rg.adoc#_rg_methods_lifecycle_manpage-updating[`updating()`].
 
+[TIP]
+====
+Alternatively, consider using a xref:rg.adoc#_rg_services-api_manpage-EventBusService[event bus] xref:rg.adoc#_rg_classes_super_manpage-AbstractSubscriber[subscriber] on the xref:rg.adoc#_rg_classes_lifecycleevent_manpage-ObjectUpdatedEvent[`ObjectUpdatedEvent`].
+====

http://git-wip-us.apache.org/repos/asf/isis/blob/c22159fe/adocs/documentation/src/main/asciidoc/guides/_rg_methods_lifecycle_manpage-updating.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_methods_lifecycle_manpage-updating.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_methods_lifecycle_manpage-updating.adoc
index b92ba8b..d663ae2 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_methods_lifecycle_manpage-updating.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_methods_lifecycle_manpage-updating.adoc
@@ -8,3 +8,8 @@
 The `updating()` lifecycle callback method is called when a (persistent) object is just about to be updated in the object store
 
 See also xref:rg.adoc#_rg_methods_lifecycle_manpage-updated[`updated()`].
+
+[TIP]
+====
+Alternatively, consider using a xref:rg.adoc#_rg_services-api_manpage-EventBusService[event bus] xref:rg.adoc#_rg_classes_super_manpage-AbstractSubscriber[subscriber] on the xref:rg.adoc#_rg_classes_lifecycleevent_manpage-ObjectUpdatingEvent[`ObjectUpdatingEvent`].
+====