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 2020/01/31 19:25:53 UTC

[isis] 08/09: ISIS-2062: updating docs

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

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

commit 71a2e9ae3ed44b54c0b91591c558f2fed90edcec
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Jan 31 19:02:55 2020 +0000

    ISIS-2062: updating docs
---
 README.adoc                                        |   5 -
 antora/toc/modules/ROOT/pages/about.adoc           |   2 +-
 .../what-is-apache-isis/isis-in-pictures.adoc      |   3 +-
 .../what-is-apache-isis/screencasts-older.adoc     |   3 +-
 .../toc/modules/devguide/pages/ide/intellij.adoc   | 208 +++++++++------------
 ...mn-1.8.0-to-1.9.0_specify-all-dom-packages.adoc |   2 +-
 .../modules/btb/pages/deployment/neo4j.adoc        |   4 +-
 .../philosophy/hexagonal-architecture-addons.png   | Bin 100666 -> 114818 bytes
 .../philosophy/hexagonal-architecture.pptx         | Bin 263049 -> 259626 bytes
 .../framework-provided.adoc                        |   3 +-
 .../modules/fun/pages/building-blocks/modules.adoc |  31 ++-
 .../types-of-domain-objects/domain-services.adoc   |   5 +-
 .../types-of-domain-objects/view-models.adoc       |  19 +-
 .../apache-isis-vs/event-sourcing.adoc             |   1 -
 .../principles/isis-itself/focuses-on-its-usp.adoc |   1 -
 .../domain-services/registering.adoc               |   6 +-
 .../fun/pages/programming-model/properties.adoc    |   4 +-
 .../pages/programming-model/view-models/dto.adoc   |   2 +-
 .../view-models/dto/generating-xsds.adoc           |   6 +-
 .../main/adoc/modules/applib-ant/pages/Column.adoc |   2 +-
 .../main/adoc/modules/applib-ant/pages/Digits.adoc |   2 +-
 .../pages/DomainServiceLayout/menuOrder.adoc       |   2 +-
 .../adoc/modules/applib-ant/pages/HomePage.adoc    |  14 +-
 .../main/adoc/modules/applib-ant/pages/Inject.adoc |   2 +-
 .../pages/PropertyLayout/labelPosition.adoc        |   2 +-
 .../modules/applib-ant/pages/XmlRootElement.adoc   |   2 +-
 .../pages/classes/AppManifest-bootstrapping.adoc   |   8 +-
 .../applib-cm/pages/methods/prefixes/choices.adoc  |   2 +-
 .../applib-cm/pages/methods/prefixes/default.adoc  |   4 +-
 .../applib-cm/pages/methods/reserved/cssClass.adoc |   2 +-
 .../applib-cm/pages/methods/reserved/disable.adoc  |   6 +-
 .../applib-cm/pages/methods/reserved/iconName.adoc |   2 +-
 .../applib-cm/pages/methods/reserved/title.adoc    |   2 +-
 .../application-layer-api/BackgroundService.adoc   |   2 +-
 .../pages/core-domain-api/Scratchpad.adoc          |   2 +-
 .../persistence-layer-api/IsisJdoSupport.adoc      |   2 +-
 .../persistence-layer-api/RepositoryService.adoc   |   2 +-
 .../ErrorReportingService.adoc                     |   2 +-
 .../presentation-layer-spi/UserProfileService.adoc |   2 +-
 .../applib-svc/pages/testing/SudoService.adoc      |   2 +-
 .../ContentNegotiationService.adoc                 |   2 +-
 .../secman/adoc/modules/secman/pages/about.adoc    |   1 -
 .../adoc/modules/secman/pages/shiro-realm.adoc     |   2 +-
 .../src/main/doc/modules/mvn/pages/intro.adoc      |   4 -
 .../src/main/doc/modules/mvn/pages/xsd.adoc        |   6 +-
 .../adoc/modules/shiro/pages/about/ini-realm.adoc  |   2 +-
 .../pages/fixture-scripts/sudo-service.adoc        |   2 +-
 .../adoc/modules/ROOT/pages/ro-spec.adoc           |   2 +-
 .../action-invocation.adoc                         |   4 +-
 .../simplified-representations/domain-object.adoc  |   2 +-
 .../object-collection.adoc                         |   2 +-
 .../ROOT/pages/customisation/brand-logo.adoc       |   2 +-
 .../pages/customisation/tweaking-css-classes.adoc  |   2 +-
 .../ROOT/pages/features/blob-attachments.adoc      |   2 +-
 .../ROOT/pages/features/bookmarked-pages.adoc      |   2 +-
 .../ROOT/pages/hints-and-tips/per-user-themes.adoc |   2 +-
 .../ROOT/pages/layout/annotation-based.adoc        |   2 +-
 .../adoc/modules/ROOT/pages/layout/file-based.adoc |   8 +-
 58 files changed, 194 insertions(+), 226 deletions(-)

diff --git a/README.adoc b/README.adoc
index ccf0ae4..b1b97a2 100644
--- a/README.adoc
+++ b/README.adoc
@@ -22,11 +22,6 @@ toc::[]
 == Core Features
 
 Isis automatically generates the UI from the domain classes.
-The following screenshots are taken from the Isis Addons' http://github.com/isisaddons/isis-app-todoapp[todoapp example], which you are free to fork and use as you will.
-The corresponding domain classes from which this UI was built can be found https://github.com/isisaddons/isis-app-todoapp/tree/0669d6e2acc5bcad1d9978a4514a17bcf7beab1f/dom/src/main/java/todoapp/dom/module/todoitem[here].
-
-The todoapp also integrates with a number of other modules provided by the link:https://platform.incode.org[Incode Platform].
-Please note that these modules are not part of ASF, but they *are* all licensed under Apache License 2.0 and are maintained by Apache the Isis committers.
 
 === Sign-in
 
diff --git a/antora/toc/modules/ROOT/pages/about.adoc b/antora/toc/modules/ROOT/pages/about.adoc
index 158765b..9357cf8 100644
--- a/antora/toc/modules/ROOT/pages/about.adoc
+++ b/antora/toc/modules/ROOT/pages/about.adoc
@@ -158,7 +158,7 @@ _Analysis_
 
 _Example Apps_
 
-* https://github.com/isisaddons/isis-app-todoapp[TodoApp]
+* https://github.com/apache/isis-app-todoapp[TodoApp]
 * https://github.com/isisaddons/isis-app-kitchensink[Kitchensink]
 * https://github.com/isisaddons/isis-app-quickstart[Quickstart]
 
diff --git a/antora/toc/modules/ROOT/pages/what-is-apache-isis/isis-in-pictures.adoc b/antora/toc/modules/ROOT/pages/what-is-apache-isis/isis-in-pictures.adoc
index 6701ab4..69c6136 100644
--- a/antora/toc/modules/ROOT/pages/what-is-apache-isis/isis-in-pictures.adoc
+++ b/antora/toc/modules/ROOT/pages/what-is-apache-isis/isis-in-pictures.adoc
@@ -132,7 +132,7 @@ image::what-is-apache-isis/isis-in-pictures/110-docx.png[width="800px",link="{im
 
 == Security, Auditing and more...
 
-As well as providing extensions to the UI, the (non ASF) Isis Addons provide a rich set of modules to support various cross-cutting concerns.
+As well as providing extensions to the UI, the xref:extensions:ROOT:about.adoc[extensions] provide a rich set of modules to support various cross-cutting concerns.
 
 Under the activity menu are four sets of services which provide support on user session logging/auditing, command module (profiling and replay), audit module (audit object changes) and (inter-system) event publishing:
 
@@ -148,7 +148,6 @@ image::what-is-apache-isis/isis-in-pictures/130-security.png[width="800px",link=
 
 In the prototyping menu is the ability to download a GNU gettext `.po` file for translation.
 This file can then be translated into multiple languages so that your app can support different locales.
-Note that this feature is part of Apache Isis core (it is not in Isis Addons):
 
 image::what-is-apache-isis/isis-in-pictures/140-i18n.png[width="800px",link="{imagesdir}/what-is-apache-isis/isis-in-pictures/140-i18n.png"]
 
diff --git a/antora/toc/modules/ROOT/pages/what-is-apache-isis/screencasts-older.adoc b/antora/toc/modules/ROOT/pages/what-is-apache-isis/screencasts-older.adoc
index 7151322..e12dafc 100644
--- a/antora/toc/modules/ROOT/pages/what-is-apache-isis/screencasts-older.adoc
+++ b/antora/toc/modules/ROOT/pages/what-is-apache-isis/screencasts-older.adoc
@@ -25,9 +25,8 @@ _This screencast is for Apache Isis v1.1.0 (ie very out of date)_
 
 |Todo app walkthrough (v.1.4.0) +
 
-_A run-through of the main features of the (non-ASF) http://github.com/isisaddons/isis-app-todoapp[Isis addons' todoapp]_ +
+_A run-through of the main features of the http://github.com/apache/isis-app-todoapp[TodoApp]_
 
-_nb: the todoapp was previously called the 'quickstart' app_
 
 |video::2leQwavWxeg[youtube,width="420px",height="210px"]
 
diff --git a/antora/toc/modules/devguide/pages/ide/intellij.adoc b/antora/toc/modules/devguide/pages/ide/intellij.adoc
index 52e9f8b..c73e8e6 100644
--- a/antora/toc/modules/devguide/pages/ide/intellij.adoc
+++ b/antora/toc/modules/devguide/pages/ide/intellij.adoc
@@ -3,21 +3,18 @@
 :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 [...]
 :page-partial:
 
-
-
-
 [NOTE]
 ====
-This material does not constitute an endorsement; JetBrains is not affiliated to Apache Software Foundation in any way.  JetBrains does however provide complimentary copies of the IntelliJ IDE to Apache committers.
+This material does not constitute an endorsement; JetBrains is not affiliated to Apache Software Foundation in any way.
+JetBrains does however provide complimentary copies of the IntelliJ IDE to Apache committers.
 ====
 
 This section describes how to install and setup JetBrains' IntelliJ IDEA, then how to import an application into IntelliJ and run it.
 
-
 == Installing and Setting up
 
-This section covers installation and setup. These notes/screenshots were prepared using IntelliJ Community Edition 14.1.x, but are believed to be compatible with more recent versions/other editions of the IDE.
-
+This section covers installation and setup.
+These notes/screenshots were prepared using IntelliJ Community Edition 14.1.x, but are believed to be compatible with more recent versions/other editions of the IDE.
 
 === Download and Install
 
@@ -58,12 +55,10 @@ Finally, if you are a trendy hipster, set the UI theme to Darcula:
 .IntelliJ Installation Wizard Set UI Theme
 image::intellij-idea/010-installing/070-set-ui-theme.png[width="600px",link="{imagesdir}/intellij-idea/010-installing/070-set-ui-theme.png"]
 
-
-
-
 === New Project
 
-In IntelliJ a project can contain multiple modules; these need not be physically located together.  (If you are previously an Eclipse user, you can think of it as similar to an Eclipse workspace).
+In IntelliJ a project can contain multiple modules; these need not be physically located together.
+(If you are previously an Eclipse user, you can think of it as similar to an Eclipse workspace).
 
 Start off by creating a new project:
 
@@ -76,7 +71,7 @@ We want to create a new *Java* project:
 .IntelliJ Create New Project - Create a Java project
 image::intellij-idea/020-create-new-project/020-java-project-setup-jdk.png[width="500px",link="{imagesdir}/intellij-idea/020-create-new-project/020-java-project-setup-jdk.png"]
 
-We therefore need to specify the JDK.  Apache Isis supports both Java 7 and Java 8.
+We therefore need to specify the JDK. Apache Isis supports both Java 7 and Java 8.
 
 
 .IntelliJ Create New Java Project - Select the JDK
@@ -94,35 +89,33 @@ Finally allow IntelliJ to create the directory for the new project:
 .IntelliJ Create New Project
 image::intellij-idea/020-create-new-project/060-create-dir.png[width="250px",link="{imagesdir}/intellij-idea/020-create-new-project/060-create-dir.png"]
 
-
-
 === File templates
 
-
-Next we recommend you import a set of standard file templates.  These are used to create new classes or supporting files:
+Next we recommend you import a set of standard file templates.
+These are used to create new classes or supporting files:
 
 .File templates
 image::intellij-idea/030-import-settings/040-file-templates.png[width="400px",link="{imagesdir}/intellij-idea/030-import-settings/040-file-templates.png"]
 
-The file templates are provided as a settings JAR file, namely *link:{attachmentsdir}/intellij/isis-settings-file-templates.jar[isis-settings-file-templates.jar]*.  Download this file.
+The file templates are provided as a settings JAR file, namely *link:{attachmentsdir}/intellij/isis-settings-file-templates.jar[isis-settings-file-templates.jar]*.
+Download this file.
 
 Next, import using `File > Import Settings`, specifying the directory that you have downloaded the file to:
 
 .IntelliJ Import Settings - Specify JAR file
 image::intellij-idea/030-import-settings/010-settings-import-jar.png[width="400px",link="{imagesdir}/intellij-idea/030-import-settings/010-settings-import-jar.png"]
 
-Select all the categories (there should just be one), and hit OK.  then hit restart.
-
+Select all the categories (there should just be one), and hit OK. then hit restart.
 
 [WARNING]
 ====
-If importing into IntelliJ 2017.2.3 two categories are shown - "File templates" and "File templates (schemes)". Select all the categories.
+If importing into IntelliJ 2017.2.3 two categories are shown - "File templates" and "File templates (schemes)".
+Select all the categories.
 
-Apparently no categories are shown if importing into IntelliJ 2016.1.1 Community Edition (and perhaps other 2016
-versions).  The file does import ok into IntelliJ 15.0.x, so we think this is a bug in the 2016 version.
+Apparently no categories are shown if importing into IntelliJ 2016.1.1 Community Edition (and perhaps other 2016 versions).
+The file does import ok into IntelliJ 15.0.x, so we think this is a bug in the 2016 version.
 
-The workaround is to extract the `.jar` file locally and copy the files into IntelliJ's `config` directory, somewhere
-in your home directory:
+The workaround is to extract the `.jar` file locally and copy the files into IntelliJ's `config` directory, somewhere in your home directory:
 
 * Windows `<User home>\.IdeaIC2016\config`
 * Linux `~/..IdeaIC2016/config`
@@ -130,11 +123,10 @@ in your home directory:
 
 ====
 
-
-
 === Live templates
 
-We also recommend you import a set  of live templates.  These are used to add new methods to existing classes:
+We also recommend you import a set of live templates.
+These are used to add new methods to existing classes:
 
 .Live templates
 image::intellij-idea/030-import-settings/050-live-templates.png[width="600px",link="{imagesdir}/intellij-idea/030-import-settings/050-live-templates.png"]
@@ -148,19 +140,16 @@ The live templates have a prefix of either:
 The live templates are also provided as a settings JAR file, namely *link:{attachmentsdir}/resources/intellij/isis-settings-live-templates.jar[isis-settings-live-templates.jar]*.
 Download and import (as for the previous settings JAR files).
 
-
-
-
 === Coding Standards
 
-Next, we suggest you import settings for standard ASF/Apache Isis coding conventions.  This file is also
-provided as a settings file, namely *link:{attachmentsdir}/intellij/isis-settings-code-style.jar[isis-settings-code-style.jar]*.  Download and import (as for the above settings JAR files).
-
-
+Next, we suggest you import settings for standard ASF/Apache Isis coding conventions.
+This file is also provided as a settings file, namely *link:{attachmentsdir}/intellij/isis-settings-code-style.jar[isis-settings-code-style.jar]*.
+Download and import (as for the above settings JAR files).
 
 === Other Settings (Compiler)
 
-There are also some other settings that influence the compiler.  We highly recommend you set these.
+There are also some other settings that influence the compiler.
+We highly recommend you set these.
 
 On the *Compiler* Settings page, ensure that `build automatically` is enabled (and optionally `compile independent modules in parallel`):
 
@@ -173,18 +162,13 @@ On the *Annotation Processors* page, enable and adjust for the 'default' setting
 .IntelliJ Annotation Processor Settings
 image::intellij-idea/040-other-settings-compiler/020-annotation-processor.png[width="700px",link="{imagesdir}/intellij-idea/040-other-settings-compiler/020-annotation-processor.png"]
 
-This setting enables the generation of the `Q*` classes for DataNucleus type-safe queries, as well as being required
-for frameworks such as xref:toc:devguide:project-lombok.adoc[Project Lombok].
+This setting enables the generation of the `Q*` classes for DataNucleus type-safe queries, as well as being required for frameworks such as xref:toc:devguide:project-lombok.adoc[Project Lombok].
 
 [NOTE]
 ====
 IntelliJ may also have inferred these settings for specific projects/modules when importing; review the list on the left to see if the default is overridden and fix/delete as required.
 ====
 
-
-
-
-
 === Other Settings (Maven)
 
 There are also some other settings for Maven that we recommend you adjust (though these are less critical):
@@ -199,7 +183,6 @@ Still on the Maven settings page, configure as follows:
 .IntelliJ Maven Settings - Configuration
 image::intellij-idea/042-other-settings-maven/020-maven-configuration.png[width="700px",link="{imagesdir}/intellij-idea/042-other-settings-maven/020-maven-configuration.png"]
 
-
 === Other Settings (Misc)
 
 These settings are optional but also recommended.
@@ -209,19 +192,20 @@ On the *auto import* page, check the `optimize imports on the fly` and `add unam
 .IntelliJ Maven Settings - Auto Import
 image::intellij-idea/044-other-settings-misc/010-auto-import.png[width="700px",link="{imagesdir}/intellij-idea/044-other-settings-misc/010-auto-import.png"]
 
-
-
-
 == Importing Maven Modules
 
-Let's load in some actual code!  We do this by importing the Maven modules.
+Let's load in some actual code!
+We do this by importing the Maven modules.
 
-First up, open up the Maven tool window (`View > Tool Windows > Maven Projects`).  You can then use the 'plus' button to add Maven modules.  In the screenshot you can see we've loaded in Apache Isis core; the modules are listed in the _Maven Projects_ window and corresponding (IntelliJ) modules are shown in the _Projects_ window:
+First up, open up the Maven tool window (`View > Tool Windows > Maven Projects`).
+You can then use the 'plus' button to add Maven modules.
+In the screenshot you can see we've loaded in Apache Isis core; the modules are listed in the _Maven Projects_ window and corresponding (IntelliJ) modules are shown in the _Projects_ window:
 
 .IntelliJ Maven Module Management - Importing Maven modules
 image::intellij-idea/100-maven-module-mgmt/010-maven-modules-view.png[width="730px",link="{imagesdir}/intellij-idea/100-maven-module-mgmt/010-maven-modules-view.png"]
 
-We can then import another module (from some other directory).  For example, here we are importing the Isis Addons' todoapp example:
+We can then import another module (from some other directory).
+For example, here we are importing the TodoApp example:
 
 
 .IntelliJ Maven Module Management - Importing another Module
@@ -232,11 +216,13 @@ You should then see the new Maven module loaded in the _Projects_ window and als
 .IntelliJ Maven Module Management -
 image::intellij-idea/100-maven-module-mgmt/030-other-module-added.png[width="730px",link="{imagesdir}/intellij-idea/100-maven-module-mgmt/030-other-module-added.png"]
 
-If any dependencies are already loaded in the project, then IntelliJ will automatically update the CLASSPATH to resolve to locally held modules (rather from `.m2/repository` folder).  So, for example (assuming that the `<version>` is correct, of course), the Isis todoapp will have local dependencies on the Apache Isis core.
+If any dependencies are already loaded in the project, then IntelliJ will automatically update the CLASSPATH to resolve to locally held modules (rather from `.m2/repository` folder).
+So, for example (assuming that the `<version>` is correct, of course), the Isis todoapp will have local dependencies on the Apache Isis core.
 
 You can press F4 (or use `File > Project Structure`) to see the resolved classpath for any of the modules loaded into the project.
 
-If you want to focus on one set of code (eg the Isis todoapp but not Apache Isis core) then you _could_ remove the module; but better is to ignore those modules.  This will remove them from the _Projects_ window but keep them available in the _Maven Projects_ window for when you next want to work on them:
+If you want to focus on one set of code (eg the Isis todoapp but not Apache Isis core) then you _could_ remove the module; but better is to ignore those modules.
+This will remove them from the _Projects_ window but keep them available in the _Maven Projects_ window for when you next want to work on them:
 
 .IntelliJ Maven Module Management - Ignoring Modules
 image::intellij-idea/100-maven-module-mgmt/040-ignoring-modules.png[width="730px",link="{imagesdir}/intellij-idea/100-maven-module-mgmt/040-ignoring-modules.png"]
@@ -252,26 +238,27 @@ Its classpath dependencies will be adjusted (eg to resolve to Apache Isis core f
 .IntelliJ Maven Module Management - Updated Projects Window
 image::intellij-idea/100-maven-module-mgmt/060-ignored-modules.png[width="730px",link="{imagesdir}/intellij-idea/100-maven-module-mgmt/060-ignored-modules.png"]
 
-
-
 == Running
 
 Let's see how to run both the app and the tests.
 
 === Running the App
 
-Once you've imported your Apache Isis application, we should run it.  We do this by creating a Run configuration, using `Run > Edit Configurations`.
+Once you've imported your Apache Isis application, we should run it.
+We do this by creating a Run configuration, using `Run > Edit Configurations`.
 
 Set up the details as follows:
 
 .IntelliJ Running the App - Run Configuration
 image::intellij-idea/110-running-the-app/010-run-configuration.png[width="600px",link="{imagesdir}/intellij-idea/110-running-the-app/010-run-configuration.png"]
 
-We specify the `Main class` to be `org.apache.isis.WebServer`; this is a wrapper around Jetty.  It's possible to pass program arguments to this (eg to automatically install fixtures), but for now leave this blank.
+We specify the `Main class` to be `org.apache.isis.WebServer`; this is a wrapper around Jetty.
+It's possible to pass program arguments to this (eg to automatically install fixtures), but for now leave this blank.
 
 Also note that `Use classpath of module` is the webapp module for your app, and that the `working directory` is `$MODULE_DIR$`.
 
-Next, and most importantly, configure the DataNucleus enhancer to run for your `dom` goal.  This can be done by defining a Maven goal to run before the app:
+Next, and most importantly, configure the DataNucleus enhancer to run for your `dom` goal.
+This can be done by defining a Maven goal to run before the app:
 
 .IntelliJ Running the App - Datanucleus Enhancer Goal
 image::intellij-idea/110-running-the-app/020-datanucleus-enhancer-goal.png[width="400px",link="{imagesdir}/intellij-idea/110-running-the-app/020-datanucleus-enhancer-goal.png"]
@@ -280,19 +267,23 @@ The `-o` flag in the goal means run off-line; this will run faster.
 
 [WARNING]
 ====
-If you forget to set up the enhancer goal, or don't run it on the correct (dom) module, then you will get all sorts of errors when you startup.  These usually manifest themselves as class cast exception in DataNucleus.
+If you forget to set up the enhancer goal, or don't run it on the correct (dom) module, then you will get all sorts of errors when you startup.
+These usually manifest themselves as class cast exception in DataNucleus.
 ====
 
-You should now be able to run the app using `Run > Run Configuration`.  The same configuration can also be used to debug the app if you so need.
+You should now be able to run the app using `Run > Run Configuration`.
+The same configuration can also be used to debug the app if you so need.
 
 [TIP]
 ====
-Under windows you may get 'Standard error from the DataNucleus tool + org.datanucleus.enhancer.DataNucleusEnhancer : The command line is too long' although 'fork=false' is set in pom.xml. Can be worked around via setting '-Dfork=false' before or after 'datanucleus:enhance -o'.
+Under windows you may get 'Standard error from the DataNucleus tool + org.datanucleus.enhancer.DataNucleusEnhancer : The command line is too long' although 'fork=false' is set in pom.xml.
+Can be worked around via setting '-Dfork=false' before or after 'datanucleus:enhance -o'.
 ====
 
 === Running the Unit Tests
 
-The easiest way to run the unit tests is just to right click on the `dom` module in the _Project Window_, and choose run unit tests.  Hopefully your tests will pass (!).
+The easiest way to run the unit tests is just to right click on the `dom` module in the _Project Window_, and choose run unit tests.
+Hopefully your tests will pass (!).
 
 .IntelliJ Running the App - Unit Tests Run Configuration
 image::intellij-idea/110-running-the-app/030-running-unit-tests.png[width="600px",link="{imagesdir}/intellij-idea/110-running-the-app/030-running-unit-tests.png"]
@@ -304,7 +295,6 @@ image::intellij-idea/110-running-the-app/040-running-unit-tests-run-configuratio
 
 Thereafter, you should run units by selecting this configuration (if you use the right click approach you'll end up with lots of run configurations, all similar).
 
-
 === Running the Integration Tests
 
 Integration tests can be run in the same way as unit tests, however the `dom` module must also have been enhanced.
@@ -322,8 +312,6 @@ image::intellij-idea/400-running-integtests/run-debug-configuration-single-modul
 
 If this radio button is set to one of the other options then you may obtain class loading issues; these result from IntelliJ attempting to run unit tests of the `dom` project that depend on test classes in that module, but using the classpath of the `integtests` module whereby the `dom` test-classes (`test-jar` artifact) are not exposed on the Maven classpath.
 
-
-
 [[intellij-hints-and-tips]]
 == Hints and Tips
 
@@ -341,16 +329,19 @@ This will let you search for any action just by typing its name.
 
 === Switch between Tools & Editors
 
-The Tool Windows are the views around the editor (to left, bottom and right).  It's possible to move these around to your preferred locations.
+The Tool Windows are the views around the editor (to left, bottom and right).
+It's possible to move these around to your preferred locations.
 
 * Use `alt-1` through `alt-9` (or `cmd-1` through `alt-9`) to select the tool windows
 ** Press it twice and the tool window will hide itself; so can use to toggle
-* If in the _Project Window_ (say) and hit enter on a file, then it will be shown in the editor, but (conveniently) the focus remains in the tool window.  To switch to the editor, just press `Esc`.
+* If in the _Project Window_ (say) and hit enter on a file, then it will be shown in the editor, but (conveniently) the focus remains in the tool window.
+To switch to the editor, just press `Esc`.
 ** If in the _Terminal Window_, you'll need to press `Shift-Esc`.
 * If on the editor and want to locate the file in (say) the _Project Window_, use `alt-F1`.
 * To change the size of any tool window, use `ctrl-shift-arrow`
 
-Using these shortcuts you can easily toggle between the tool windows and the editor, without using the mouse.  Peachy!
+Using these shortcuts you can easily toggle between the tool windows and the editor, without using the mouse.
+Peachy!
 
 === Navigating Around
 
@@ -373,7 +364,6 @@ Viewing the structure (ie outline) of a class
 * `ctrl-F12` will pop-up a dialog showing all members
 ** hit `ctrl-F12` again to also see inherited members
 
-
 === Editing
 
 * Extend selection using `ctrl-W`
@@ -388,15 +378,17 @@ Viewing the structure (ie outline) of a class
 
 === Intentions and Code Completion
 
-Massively useful is the "Intentions" popup; IntelliJ tries to guess what you might want to do.  You can activate this using`alt-enter`, whenever you see a lightbulb/tooltip in the margin of the current line.
+Massively useful is the "Intentions" popup; IntelliJ tries to guess what you might want to do.
+You can activate this using`alt-enter`, whenever you see a lightbulb/tooltip in the margin of the current line.
 
-Code completion usually happens whenever you type '.'.  You can also use `ctrl-space` to bring these up.
+Code completion usually happens whenever you type '.'.
+You can also use `ctrl-space` to bring these up.
 
-In certain circumstances (eg in methods0) you can also type `ctrl-shift-space` to get a smart list of methods etc that you might want to call.  Can be useful.
+In certain circumstances (eg in methods0) you can also type `ctrl-shift-space` to get a smart list of methods etc that you might want to call.
+Can be useful.
 
 Last, when invoking a method, use `ctrl-P` to see the parameter types.
 
-
 === Refactoring
 
 Loads of good stuff on the `Refactor` menu; most used are:
@@ -410,10 +402,10 @@ Loads of good stuff on the `Refactor` menu; most used are:
 
 If you can't remember all those shortcuts, just use `ctrl-shift-alt-T` (might want to rebind that to something else!) and get a context-sensitive list of refactorings available for the currently selected object
 
-
 === Plugins
 
-You might want to set up some additional plugins.  You can do this using `File > Settings > Plugins` (or equivalently `File > Other Settings > Configure Plugins`).
+You might want to set up some additional plugins.
+You can do this using `File > Settings > Plugins` (or equivalently `File > Other Settings > Configure Plugins`).
 
 Recommended are:
 
@@ -430,10 +422,10 @@ Some others you might like to explore are:
 .IntelliJ Plugins
 image::intellij-idea/050-some-plugins/020-some-plugins-confirmation.png[width="600px",link="{imagesdir}/intellij-idea/050-some-plugins/020-some-plugins-confirmation.png"]
 
-
 ==== Maven Helper Plugin
 
-This plugin provides a couple of great features.  One is better visualization of dependency trees (similar to Eclipse).
+This plugin provides a couple of great features.
+One is better visualization of dependency trees (similar to Eclipse).
 
 If you open a `pom.xml` file, you'll see an additional "Dependencies" tab:
 
@@ -451,7 +443,6 @@ This menu can also be bound to a keystroke so that it is available as a pop-up:
 
 image::intellij-idea/050-some-plugins/maven-helper/040-maven-quick-run.png[width="600px",link="{imagesdir}/intellij-idea/050-some-plugins/maven-helper/040-maven-quick-run.png"]
 
-
 === Troubleshooting
 
 When a Maven module is imported, IntelliJ generates its own project files (suffix `.ipr`), and the application is actually built from that.
@@ -466,27 +457,26 @@ To fix the issue, try:
 * restart, invalidating caches
 * hit StackOverflow (!)
 
-One thing worth knowing; IntelliJ actively scans the filesystem all the time.  It's therefore (almost always) fine to build the app from the Maven command line; IntelliJ will detect the changes and keep in sync.  If you want to force that, use `File > Synchronize`, `ctrl-alt-Y`.
+One thing worth knowing; IntelliJ actively scans the filesystem all the time.
+It's therefore (almost always) fine to build the app from the Maven command line; IntelliJ will detect the changes and keep in sync.
+If you want to force that, use `File > Synchronize`, `ctrl-alt-Y`.
 
 If you hit an error of "duplicate classes":
 
 image::intellij-idea/060-troubleshooting/010-duplicate-classes.png[width="600px",link="{imagesdir}/intellij-idea/060-troubleshooting/010-duplicate-classes.png"]
 
 then make sure you have correctly configured the xref:toc:devguide:about.adoc#other-settings-compiler[annotation processor]
-settings.  Pay attention in particular to the "Production sources directory" and "Test sources directory", that these
-are set up correctly.
-
-
-
+settings.
+Pay attention in particular to the "Production sources directory" and "Test sources directory", that these are set up correctly.
 
 == Faster turnaround times
 
 In this section are several options that will reduce the time it takes between making a source code edit and seeing the results in the running app. code/build/deploy/review feedback loop.
 
-
 === Using Grade to compile/enhance
 
-Running an Apache Isis application requires that the DataNucleus enhancer runs on the compiled bytecode.  As described xref:toc:devguide:about.adoc#running_the-app[above], the recommended way to do this with IntelliJ is to use a Run configuration that runs the enhancer goal prior to launch.
+Running an Apache Isis application requires that the DataNucleus enhancer runs on the compiled bytecode.
+As described xref:toc:devguide:about.adoc#running_the-app[above], the recommended way to do this with IntelliJ is to use a Run configuration that runs the enhancer goal prior to launch.
 
 Alternative, you can use the following `build.gradle` script in your `dom` module:
 
@@ -523,11 +513,11 @@ task copyClasses << {
 }
 ----
 
-The script is intended to be in the background as a daemon while editing/developing; whenever a change is made to any
-source code, gradle will automatically compile _and_ enhance the code.  In this way it eliminates the need to start up
-Maven and run the enhancer goal.
+The script is intended to be in the background as a daemon while editing/developing; whenever a change is made to any source code, gradle will automatically compile _and_ enhance the code.
+In this way it eliminates the need to start up Maven and run the enhancer goal.
 
-To use, you must disable the IntelliJ's automatic building of the 'dom' project.  This is done using:
+To use, you must disable the IntelliJ's automatic building of the 'dom' project.
+This is done using:
 `File > Settings > Build, Execution, Deployment > Compiler > Excludes`, and then exclude the `.../dom/src/main/java`
 directory:
 
@@ -545,16 +535,14 @@ from the command line (in the `dom` module).
 
 image::intellij-idea/070-advanced/004-gradle-output.png[width="600px",link="{imagesdir}/intellij-idea/070-advanced/004-gradle-output.png"]
 
-
-
-
 === Using Gradle for liveReload
 
 Similarly, gradle can be run to reduce the turn-around time when tweaking the UI (defined by the
- xref:vw:ROOT:layout.adoc#file-based[`*.layout.xml`] file for each domain class), when the app is running.
+xref:vw:ROOT:layout.adoc#file-based[`*.layout.xml`] file for each domain class), when the app is running.
 
-The framework will automatically notice any changes to `.layout.xml` files, but these are read from the classpath (the `target/classes` directory), not the source path.  With IntelliJ these can be copied over manually
-by invoking `Run > Reload Changed Classes`.  Once the browser is refreshed, the new layout will be rendered.
+The framework will automatically notice any changes to `.layout.xml` files, but these are read from the classpath (the `target/classes` directory), not the source path.
+With IntelliJ these can be copied over manually by invoking `Run > Reload Changed Classes`.
+Once the browser is refreshed, the new layout will be rendered.
 
 [NOTE]
 ====
@@ -562,14 +550,12 @@ We've occasionally noticed that this interferes with Wicket's own javascript - s
 The work-around is just to reload the page.
 ====
 
-
 To reduce the turn-around time there are therefore two steps to be automated:
 
 * the copying of the `.layout.xml` files over to the `target/classes` directory
 * the triggering of a page refresh by the browser.
 
-The `layouts.gradle` script takes care of the first of these; whenever a change is made to any `.layout.xml` file, gradle
-will automatically copy over the file to the `target/classes` directory:
+The `layouts.gradle` script takes care of the first of these; whenever a change is made to any `.layout.xml` file, gradle will automatically copy over the file to the `target/classes` directory:
 
 [source,groovy]
 .`layouts.gradle`
@@ -609,6 +595,7 @@ These scripts can be run together using:
 gradle -t --offline -b layouts.gradle &
 gradle -t --offline -b liveReload.gradle &
 ----
+
 from the command line (in the `dom` module):
 
 
@@ -628,23 +615,17 @@ You can confirm the script is loaded correctly using the web browser's developme
 
 image::intellij-idea/070-advanced/006-livereload-js.png[width="800px",link="{imagesdir}/intellij-idea/070-advanced/006-livereload-js.png"]
 
-
-
-
 === Setting up DCEVM
 
-link:http://github.com/dcevm/dcevm[DCEVM] enhances the JVM with true hot-swap adding/removing of methods as well as more
-reliable hot swapping of the implementation of existing methods.
+link:http://github.com/dcevm/dcevm[DCEVM] enhances the JVM with true hot-swap adding/removing of methods as well as more reliable hot swapping of the implementation of existing methods.
 
-In the context of Apache Isis, this is very useful for contributed actions and mixins and also view models; you should
-then be able to write these actions and have them be picked up without restarting the application.
+In the context of Apache Isis, this is very useful for contributed actions and mixins and also view models; you should then be able to write these actions and have them be picked up without restarting the application.
 
-Changing persisting domain entities is more problematic, for two reasons: the JDO/DataNucleus enhancer needs to run on
-domain entities, and also at runtime JDO/DataNucleus would need to rebuild its own metamodel.  You may find that adding
-actions will work, but adding new properties or collections is much less likely to.
+Changing persisting domain entities is more problematic, for two reasons: the JDO/DataNucleus enhancer needs to run on domain entities, and also at runtime JDO/DataNucleus would need to rebuild its own metamodel.
+You may find that adding actions will work, but adding new properties or collections is much less likely to.
 
-To set up DCEVM, download the appropriate JAR from the link:https://dcevm.github.io/[github page], and run the
-installer.  For example:
+To set up DCEVM, download the appropriate JAR from the link:https://dcevm.github.io/[github page], and run the installer.
+For example:
 
 [source,bash]
 ----
@@ -653,11 +634,9 @@ java -jar DCEVM-light-8u51-installer.jar
 
 [TIP]
 ====
-Be sure to run with appropriate privileges to be able to write to the installation directories of the JDK.  If running
-on Windows, that means running as `Administrator`.
+Be sure to run with appropriate privileges to be able to write to the installation directories of the JDK. If running on Windows, that means running as `Administrator`.
 ====
 
-
 After a few seconds this will display a dialog listing all installations of JDK that have been found:
 
 image::intellij-idea/070-advanced/010-dcevm-list-of-found-jdk-installations.png[width="600px",link="{imagesdir}/intellij-idea/070-advanced/010-dcevm-list-of-found-jdk-installations.png"]
@@ -676,12 +655,9 @@ Finally, in the run configuration, select the patched JDK:
 
 image::intellij-idea/070-advanced/040-dcevm-run-configuration.png[width="600px",link="{imagesdir}/intellij-idea/070-advanced/040-dcevm-run-configuration.png"]
 
-
-
-
 === Setting up JRebel
 
 See the repo for the (non-ASF) link:https://github.com/isisaddons/isis-jrebel-plugin[Isis JRebel] plugin.
 
-Note that JRebel is a commercial product, requiring a license.  At the time of writing there is also currently a
-non-commercial free license (though note this comes with some usage conditions).
+Note that JRebel is a commercial product, requiring a license.
+At the time of writing there is also currently a non-commercial free license (though note this comes with some usage conditions).
diff --git a/antora/toc/modules/mignotes/pages/mn-1.8.0-to-1.9.0/mn-1.8.0-to-1.9.0_specify-all-dom-packages.adoc b/antora/toc/modules/mignotes/pages/mn-1.8.0-to-1.9.0/mn-1.8.0-to-1.9.0_specify-all-dom-packages.adoc
index 0c3c8c6..6bde1dc 100644
--- a/antora/toc/modules/mignotes/pages/mn-1.8.0-to-1.9.0/mn-1.8.0-to-1.9.0_specify-all-dom-packages.adoc
+++ b/antora/toc/modules/mignotes/pages/mn-1.8.0-to-1.9.0/mn-1.8.0-to-1.9.0_specify-all-dom-packages.adoc
@@ -14,7 +14,7 @@ Apache Isis automatically scans for certain classes on the classpath in order to
 
 For the last of these we have tightened up the validation, to ensure that each package specified in the `isis.persistor.datanucleus.RegisterEntities.packagePrefix` key does indeed include at least one annotated entity.  This should include any domain classes for addon modules.
 
-For example, the (non-ASF) http://github.com/isisaddons/isis-app-todoapp[Isis addons' todoapp]'s configuration now reads:
+For example, the http://github.com/apache/isis-app-todoapp[TodoApp]'s configuration now reads:
 
 [source,ini]
 ----
diff --git a/api/adoc/userguide/modules/btb/pages/deployment/neo4j.adoc b/api/adoc/userguide/modules/btb/pages/deployment/neo4j.adoc
index f7332dc..1211773 100644
--- a/api/adoc/userguide/modules/btb/pages/deployment/neo4j.adoc
+++ b/api/adoc/userguide/modules/btb/pages/deployment/neo4j.adoc
@@ -6,9 +6,11 @@
 
 Apache Isis has experimental support for Neo4J, courtesy of DataNucleus' http://www.datanucleus.org/products/datanucleus/datastores/neo4j.html[Neo4J Datastore] implementation.
 
+//TODO: v2: need to port this over from http://github.com/isisaddons/isis-app-neoapp
+
 [TIP]
 ====
-In addition, the http://github.com/isisaddons/isis-app-neoapp[Isis addons' neoapp] (non-ASF) is configured to run with an embedded Neo4J server running alongside the Apache Isis webapp.
+The http://github.com/apache/isis-app-neoapp[neoapp] is configured to run with an embedded Neo4J server running alongside the Apache Isis webapp.
 ====
 
 The steps below describe the configuration steps required to update an existing app.
diff --git a/api/adoc/userguide/modules/fun/images/core-concepts/philosophy/hexagonal-architecture-addons.png b/api/adoc/userguide/modules/fun/images/core-concepts/philosophy/hexagonal-architecture-addons.png
index ff271e9..9be6ac1 100644
Binary files a/api/adoc/userguide/modules/fun/images/core-concepts/philosophy/hexagonal-architecture-addons.png and b/api/adoc/userguide/modules/fun/images/core-concepts/philosophy/hexagonal-architecture-addons.png differ
diff --git a/api/adoc/userguide/modules/fun/images/core-concepts/philosophy/hexagonal-architecture.pptx b/api/adoc/userguide/modules/fun/images/core-concepts/philosophy/hexagonal-architecture.pptx
index f6c7adb..d5f5453 100644
Binary files a/api/adoc/userguide/modules/fun/images/core-concepts/philosophy/hexagonal-architecture.pptx and b/api/adoc/userguide/modules/fun/images/core-concepts/philosophy/hexagonal-architecture.pptx differ
diff --git a/api/adoc/userguide/modules/fun/pages/available-domain-services/framework-provided.adoc b/api/adoc/userguide/modules/fun/pages/available-domain-services/framework-provided.adoc
index a630b80..28c1817 100644
--- a/api/adoc/userguide/modules/fun/pages/available-domain-services/framework-provided.adoc
+++ b/api/adoc/userguide/modules/fun/pages/available-domain-services/framework-provided.adoc
@@ -5,12 +5,11 @@
 
 
 Most framework domain services are API: they exist to provide support functionality to the application's domain objects and services.
-In this case an implementation of the service will be available, either by Apache Isis itself or by Isis Addons (non ASF).
+In this case an implementation of the service will be available, either in Apache Isis core or as an extension.
 
 Some framework domain services are SPI: they exist primarily so that the application can influence the framework's behaviour.
 In these cases there is (usually) no default implementation; it is up to the application to provide an implementation.
 
-
 General purpose:
 
 * xref:refguide:applib-svc:core-domain-api/ClockService.adoc[`ClockService`]
diff --git a/api/adoc/userguide/modules/fun/pages/building-blocks/modules.adoc b/api/adoc/userguide/modules/fun/pages/building-blocks/modules.adoc
index 82c7ca5..0a4a8cd 100644
--- a/api/adoc/userguide/modules/fun/pages/building-blocks/modules.adoc
+++ b/api/adoc/userguide/modules/fun/pages/building-blocks/modules.adoc
@@ -4,13 +4,30 @@
 
 
 We tend to use Maven modules as a way to group related domain objects together; we can then reason about all the classes in that module as a single unit.
-By convention there will be a single top-level package corresponding to the module.
 
-For example, the (non-ASF) link:https://platform.incode.org[Incode Platform^]'s http://platform.incode.org/modules/lib/excel/lib-excel.html[Excel] module has a top-level package of `org.incode.module.excel`.
-Within the module there may be various subpackages, but it's the module that defines the namespace.
+There will be a single top-level package corresponding to the module, and this will be aligned with the `<groupId>` and `<artifactId>` of the Maven module in which it resides
+For example, the xref:subdomains:excel:about.adoc[Excel subdomain] module has a top-level package of `org.apache.isis.subdomains.excel`.
+Within the module there may be various subpackages, but it's the top-level package that defines the namespace.
 
-[NOTE]
-====
-TODO: flesh out with details on how modules are used under Spring Boot.
-====
+In this top-level package there will also be a class annotated with Spring's link:https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/context/annotation/Configuration.html[@Configuration] annotation.
+The class is also often anntotated with link:https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/context/annotation/Import.html[@Import], through which the dependencies of this module may appear.
+And there is one other annotation that often appears, namely link:https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/context/annotation/ComponentScan.html[@ComponentScan].
+This indicates that the classpath should be scanned for domain services, entities and xref:testing:fixtures:about.adoc[fixture scripts].
 
+For example, if an application's customer module needs to use the aforementioned Excel subdomain model (perhaps to generate a downloadable report), then this would be expressed using:
+
+[source,java]
+----
+package com.mycompany.modules.customer;
+...
+
+@Configuration                                  // <1>
+@Import({
+    IsisModuleSubdomainsExcelApplib.class       // <2>
+})
+@ComponentScan                                  // <3>
+public class CustomerModule {}
+----
+<1> indicates that this is a module (so far as Spring Boot is concerned)
+<2> indicates a dependency on the Excel module (more precisely, its "applib")
+<3> indicates that the classpath be scanned to find domain services and entities etc under this package, eg a `Customer` entity or a `CustomerRepository` domain service.
diff --git a/api/adoc/userguide/modules/fun/pages/building-blocks/types-of-domain-objects/domain-services.adoc b/api/adoc/userguide/modules/fun/pages/building-blocks/types-of-domain-objects/domain-services.adoc
index da21331..6464217 100644
--- a/api/adoc/userguide/modules/fun/pages/building-blocks/types-of-domain-objects/domain-services.adoc
+++ b/api/adoc/userguide/modules/fun/pages/building-blocks/types-of-domain-objects/domain-services.adoc
@@ -46,11 +46,10 @@ xref:userguide:fun:programming-model.adoc#domain-services[here].
 
 It's worth extending the xref:userguide:fun:core-concepts.adoc#hexagonal-architecture[Hexagonal Architecture] to show where domain services fit in:
 
-.The hexagonal architecture with Isis addons
+.The hexagonal architecture with API and SPI implementations
 image::core-concepts/philosophy/hexagonal-architecture-addons.png[width="700px",link="{imagesdir}/core-concepts/philosophy/hexagonal-architecture-addons.png"]
 
-The (non-ASF) link:https://platform.incode.org[Incode Platform^] provide SPI implementations of the common cross-cutting concerns.
-They also provide a number of APIs for domain objects to invoke (not shown in the diagram).
+The xref:extensions:ROOT:about.adoc[extensions] catalog provide SPI implementations of the common cross-cutting concerns.
 You can also write your own domain services as well, for example to interface with some external CMS system, say.
 
 
diff --git a/api/adoc/userguide/modules/fun/pages/building-blocks/types-of-domain-objects/view-models.adoc b/api/adoc/userguide/modules/fun/pages/building-blocks/types-of-domain-objects/view-models.adoc
index b870fb6..0bcf9a9 100644
--- a/api/adoc/userguide/modules/fun/pages/building-blocks/types-of-domain-objects/view-models.adoc
+++ b/api/adoc/userguide/modules/fun/pages/building-blocks/types-of-domain-objects/view-models.adoc
@@ -22,15 +22,11 @@ Such view models are part of the application layer, not part of the domain layer
 
 We explore these use cases in more detail below.
 
-
 [TIP]
 ====
-Details on how to actually write a view model (the programming model for view models) is
-xref:userguide:fun:programming-model.adoc#view-models[here].
+Details on how to actually write a view model (the programming model for view models) can be found xref:userguide:fun:programming-model.adoc#view-models[here].
 ====
 
-
-
 == Externally-managed entities
 
 Sometimes the entities that make up your application are persisted not in the local database but reside in some other system, for example accessible only through a SOAP web service.
@@ -41,15 +37,12 @@ This proxy would hold the reference to the externally-managed domain entity (eg
 
 The stub/proxy is a type of view model: a view -- if you like -- onto the domain entity managed by the external system.
 
-
-
 == In-memory entities
 
 As a variation on the above, sometimes there are domain objects that are, conceptually at least entities, but whose state is not actually persisted anywhere, merely held in-memory (eg in a hash).
 
 A simple example might be read-only configuration data that is read from a config file (eg log4j appender definitions) but thereafter is presented in the UI just like any other entity.
 
-
 == Application-layer view models
 
 Domain entities (whether locally persisted or managed externally) are the bread-and-butter of Apache Isis applications: the focus after all, should be on the business domain concepts and ensuring that they are solid.
@@ -61,7 +54,7 @@ For example, it may be useful to show a dashboard of the most significant data i
 Obtaining this information by hand (by querying the respective services/repositories) would be tedious and slow; far better to have a dashboard do the job for the end user.
 
 A dashboard object is a model of the most relevant state to the end-user, in other words it is (quite literally) a view model.
- It is not a persisted entity, instead it belongs to the application layer.
+It is not a persisted entity, instead it belongs to the application layer.
 
 A view model need not merely aggregate data; it could also provide actions of its own.
 Most likely these actions will be queries and will always ultimately just delegate down to the appropriate domain-layer service/repository.
@@ -72,7 +65,7 @@ In these cases the view model might have some state of its own, but in most case
 
 .Desire Lines
 ****
-One way to think of application view models is as modelling the "desire line": the commonly-trod path that end-users must follow to get from point A to point B as quickly as possible.
+One way to think of application view models is that they model the "desire line": the commonly-trod path that end-users must follow to get from point A to point B as quickly as possible.
 
 To explain: there are link:http://ask.metafilter.com/62599/Where-the-sidewalk-ends[documented] link:https://sivers.org/walkways[examples] link:http://www.softpanorama.org/People/Wall/larry_wall_articles_and_interviews.shtml[that] architects of university campus will only add in paths some while after the campus buildings are complete: let the pedestrians figure out the routes they want to take.
 The name we like best for this idea is "desire lines", though it has also been called a "desire path", "paving the path" or "paving the sidewalk".
@@ -89,14 +82,11 @@ Then build out the minimum domain entities to support that use case.
 Then, identify if there any view models that could be introduced which would simplify the end-user interactions with the system (perhaps automating several related use cases together).
 ****
 
-
 When developing an Apache Isis application you will most likely start off with the persistent domain entities: `Customer`, `Order`, `Product`, and so on.
 For some applications this may well suffice.
 
 However, if the application needs to integrate with other systems, or if the application needs to support reasonably complex business processes, then you may need to look beyond just domain entities; view models are the tool of choice.
 
-
-
 == DTOs
 
 DTOs (data transfer objects) are simple classes that (according to link:https://en.wikipedia.org/wiki/Data_transfer_object[wikipedia]) "carry data between processes".
@@ -121,7 +111,6 @@ The view model simply needs to implement the xref:refguide:applib-cm:classes/mix
 Details of how to consume such DTOs can be found xref:userguide:fun:programming-model.adoc#dto-consumers[here].
 ====
 
-
 == For REST Clients
 
 The xref:vro:ROOT:about.adoc[Restful Objects] viewer automatically provides a REST API for both domain entities.
@@ -139,7 +128,7 @@ Not so fast, though: the real question is whether the REST API you are exposing
 +
 In this case view models provide an isolation layer which allow you to modify the structure of the underlying domain entities without breaking this API.
 
-* If it's a private API, which is to say that the only clients of the REST API are under your  control, then view models are an unnecessary overhead.
+* If it's a private API, which is to say that the only clients of the REST API are under your control, then view models are an unnecessary overhead.
 
 +
 In this case, just expose domain entities directly.
diff --git a/api/adoc/userguide/modules/fun/pages/core-concepts/apache-isis-vs/event-sourcing.adoc b/api/adoc/userguide/modules/fun/pages/core-concepts/apache-isis-vs/event-sourcing.adoc
index 8bb65d3..6f56e34 100644
--- a/api/adoc/userguide/modules/fun/pages/core-concepts/apache-isis-vs/event-sourcing.adoc
+++ b/api/adoc/userguide/modules/fun/pages/core-concepts/apache-isis-vs/event-sourcing.adoc
@@ -23,6 +23,5 @@ CQRS/event sourcing advocates point out -- correctly -- that this is just how th
 
 In Apache Isis every business action (and indeed, property and collection) emits domain events through the xref:refguide:applib-svc:core-domain-api/EventBusService.adoc[`EventBusService`], and can optionally also be published through the xref:refguide:applib-svc:persistence-layer-spi/PublisherService.adoc[`PublisherService`].
 The former are dispatched and consumed in-process and within the same transaction, and for this reason the xref:refguide:applib-cm:classes/super.adoc#AbstractSubscriber[subscribers] can also veto the events.
-The latter are intended for out-of-process consumption; the (obsolete) http://github.com/isisaddons-legacy/isis-module-publishing[Isis addons' publishing] and the (non-ASF) link:https://platform.incode.org[Incode Platform^]'s publishmq modules provide implementations for dispatching either through a RDBMS database table, or directly through to an link:http://camel.apache.org[ActiveMQ] message queue (eg wired up to link:http://camel.apache.org[Apache Camel] event bus).
 
 
diff --git a/api/adoc/userguide/modules/fun/pages/core-concepts/principles/isis-itself/focuses-on-its-usp.adoc b/api/adoc/userguide/modules/fun/pages/core-concepts/principles/isis-itself/focuses-on-its-usp.adoc
index 42075a4..49a46b4 100644
--- a/api/adoc/userguide/modules/fun/pages/core-concepts/principles/isis-itself/focuses-on-its-usp.adoc
+++ b/api/adoc/userguide/modules/fun/pages/core-concepts/principles/isis-itself/focuses-on-its-usp.adoc
@@ -10,7 +10,6 @@ NOTE: FIXME
 add-ons
 
 * Apache Isis is at heart a metamodel with runtime, and coordinates interations using an AOP set of principles
-* Apache Isis vs Isis Addons
 * Apache Isis vs Shiro vs DataNucleus
 
 
diff --git a/api/adoc/userguide/modules/fun/pages/programming-model/domain-services/registering.adoc b/api/adoc/userguide/modules/fun/pages/programming-model/domain-services/registering.adoc
index 29e064a..15bb26e 100644
--- a/api/adoc/userguide/modules/fun/pages/programming-model/domain-services/registering.adoc
+++ b/api/adoc/userguide/modules/fun/pages/programming-model/domain-services/registering.adoc
@@ -16,9 +16,9 @@ For example:
 public class MyAppManifest implements AppManifest {
     public List<Class<?>> getModules() {
         return Arrays.asList(
-                ToDoAppDomainModule.class,
-                ToDoAppFixtureModule.class,
-                ToDoAppAppModule.class,
+                TodoAppDomainModule.class,
+                TodoAppFixtureModule.class,
+                TodoAppAppModule.class,
                 org.isisaddons.module.audit.AuditModule.class);
     }
     ...
diff --git a/api/adoc/userguide/modules/fun/pages/programming-model/properties.adoc b/api/adoc/userguide/modules/fun/pages/programming-model/properties.adoc
index 0e37c89..7a261f4 100644
--- a/api/adoc/userguide/modules/fun/pages/programming-model/properties.adoc
+++ b/api/adoc/userguide/modules/fun/pages/programming-model/properties.adoc
@@ -194,7 +194,7 @@ See the link:http://db.apache.org/jdo/field_types.html[JDO docs] for more detail
 Moreover, these datatypes are _not_ in the default fetch group, meaning that JDO/DataNucleus will perform an additional `SELECT` query for each attribute.
 To avoid this extra query, the annotation should indicate that the property is in the default fetch group.
 
-For example, the `ToDoItem` (in the https://github.com/isisaddons/isis-app-todoapp[todoapp example app] (not ASF)) defines the `dueBy` property as follows:
+For example, the `ToDoItem` (in the https://github.com/apache/isis-app-todoapp[TodoApp] example app (not ASF)) defines the `dueBy` property as follows:
 
 [source,java]
 ----
@@ -249,7 +249,7 @@ Apache Isis configures JDO/DataNucleus so that the properties of type `org.apach
 As for Joda dates, this requires the `@javax.jdo.annotations.Persistent` annotation.
 However, whereas for dates one would always expect this value to be retrieved eagerly, for blobs and clobs it is not so clear cut.
 
-For example, in the `ToDoItem` class (in the (non-ASF) https://github.com/isisaddons/isis-app-todoapp/blob/0333852ddd18ad67e3356fccf805aa442246790d/dom/src/main/java/todoapp/dom/todoitem/ToDoItem.java#L442[todoapp example app]) the `attachment` property is as follows:
+For example, in the `ToDoItem` class (in the (non-ASF) https://github.com/apache/isis-app-todoapp/blob/0333852ddd18ad67e3356fccf805aa442246790d/dom/src/main/java/todoapp/dom/todoitem/ToDoItem.java#L442[TodoApp] example app) the `attachment` property is as follows:
 
 [source,java]
 ----
diff --git a/api/adoc/userguide/modules/fun/pages/programming-model/view-models/dto.adoc b/api/adoc/userguide/modules/fun/pages/programming-model/view-models/dto.adoc
index e13e482..550c8ef 100644
--- a/api/adoc/userguide/modules/fun/pages/programming-model/view-models/dto.adoc
+++ b/api/adoc/userguide/modules/fun/pages/programming-model/view-models/dto.adoc
@@ -5,7 +5,7 @@
 
 
 JAXB view models can also be used as DTOs.
-The examples in this section uses the DTO for `ToDoItem`, taken from the (non-ASF) http://github.com/isisaddons/isis-app-todoapp[Isis addons' todoapp].
+The examples in this section uses the DTO for `ToDoItem`, taken from the http://github.com/apache/isis-app-todoapp[TodoApp].
 
 This DTO is defined as follows:
 
diff --git a/api/adoc/userguide/modules/fun/pages/programming-model/view-models/dto/generating-xsds.adoc b/api/adoc/userguide/modules/fun/pages/programming-model/view-models/dto/generating-xsds.adoc
index fa3bced..160af7a 100644
--- a/api/adoc/userguide/modules/fun/pages/programming-model/view-models/dto/generating-xsds.adoc
+++ b/api/adoc/userguide/modules/fun/pages/programming-model/view-models/dto/generating-xsds.adoc
@@ -14,7 +14,7 @@ But of course you cannot; the consumer runs in a different process space, and wi
 For integration scenarios you'll therefore generally want to define a DTO in a technology independent fashion, for example using XSD schema.
 This can be generated as a DTO for use within Apache Isis, while still allowing XML instances of the schema to be consumed by any other client.
 
-The (non-ASF) http://github.com/isisaddons/isis-app-todoapp[Isis addons' todoapp] demonstrates how use an XSD to generate a DTO; it's mostly just boilerplate.
+The http://github.com/apache/isis-app-todoapp[TodoApp] demonstrates how use an XSD to generate a DTO; it's mostly just boilerplate.
 In the todoapp it can be found in the `todoapp-xsd` Maven module, whose `pom.xml` is structured as two profiles:
 
 [source,xml]
@@ -61,7 +61,7 @@ The `isis-xsd` profile generates the XSD using the xref:refguide:mvn:xsd.adoc[`x
             <artifactId>isis-maven-plugin</artifactId>
             <version>${isis.version}</version>
             <configuration>
-                <appManifest>todoapp.dom.ToDoAppDomManifest</appManifest>
+                <appManifest>todoapp.dom.TodoAppDomManifest</appManifest>
                 <jaxbClasses>
                     <jaxbClass>todoapp.app.viewmodels.todoitem.v1.ToDoItemV1_1</jaxbClass>
                 </jaxbClasses>
@@ -109,7 +109,7 @@ The `isis-xsd` profile generates the XSD using the xref:refguide:mvn:xsd.adoc[`x
 </build>
 ----
 
-The `todoapp.dom.ToDoAppDomManifest` is a cut-down version of the app manifest that identifies only the `dom` domain services.
+The `todoapp.dom.TodoAppDomManifest` is a cut-down version of the app manifest that identifies only the `dom` domain services.
 
 The `xjc` profile, meanwhile, uses the `maven-jaxb2-plugin` (a wrapper around the `schemagen` JDK tool) to generate a DTO from the XSD generated by the preceding profile:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Column.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Column.adoc
index 4f6aa7d..0820918 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Column.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Column.adoc
@@ -114,7 +114,7 @@ public class PartyRelationship {
 
 Isis provides custom value types for xref:refguide:applib-cm:classes/value-types.adoc#Blob[`Blob`]s and xref:refguide:applib-cm:classes/value-types.adoc#Clob[`Clob`]s.  These value types have multiple internal fields, meaning that they corresponding to multiple columns in the database.  Mapping this correctly requires using  `@Column` within JDO's `@Persistent` annotation.
 
-For example, here's how to map a `Blob` (taken from (non-ASF) http://github.com/isisaddons/isis-app-todoapp[Isis addons' todoapp]):
+For example, here's how to map a `Blob` (taken from http://github.com/apache/isis-app-todoapp[TodoApp]):
 
 [source,java]
 ----
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Digits.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Digits.adoc
index aca3e2e..0ff55da 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Digits.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Digits.adoc
@@ -5,7 +5,7 @@
 
 The `@javax.validation.constraints.Digits` annotation is recognized by Apache Isis as a means to specify the precision for properties and action parameters of type `java.math.BigDecimal`.
 
-For example (taken from the (non-ASF) http://github.com/isisaddons/isis-app-todoapp[Isis addons' todoapp]):
+For example (taken from the http://github.com/apache/isis-app-todoapp[TodoApp]):
 
 [source,java]
 ----
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainServiceLayout/menuOrder.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainServiceLayout/menuOrder.adoc
index 1568398..249b051 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainServiceLayout/menuOrder.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainServiceLayout/menuOrder.adoc
@@ -14,7 +14,7 @@ The algorithm works as follows:
 * then, the domain service's top-level name (typically explicitly specified using xref:refguide:applib-ant:DomainServiceLayout.adoc#named[`named()`]) is used to determine the top-level menu item to be rendered on the menu bar
 * finally, if there is more than domain service that has the same name, then the `menuOrder` attribute is used to order those actions on the menu item drop-down.
 
-For example, the screenshot below shows the "prototyping" menu from the (non-ASF) http://github.com/isisaddons/isis-app-todoapp[Isis addons' todoapp]:
+For example, the screenshot below shows the "prototyping" menu from the http://github.com/apache/isis-app-todoapp[TodoApp]:
 
 image::reference-annotations/DomainServiceLayout/menuOrder.png[width="500px",link="{imagesdir}/reference-annotations/DomainServiceLayout/menuOrder.png"]
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/HomePage.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/HomePage.adoc
index 598b335..bd7f3c3 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/HomePage.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/HomePage.adoc
@@ -5,7 +5,7 @@
 
 The `@HomePage` annotation allows a _single_ (no-arg, query-only) action on a _single_ domain service to be nominated as the action to invoke for the default home page.  This often returns a view model that acts as some sort of dashboard, presenting key information and makeing the most commonly used actions easy to invoke.
 
-For example, the (non-ASF) http://github.com/isisaddons/isis-app-todoapp[Isis addons' todoapp] uses `@HomePage` to return a dashboard of todo items to complete:
+For example, the http://github.com/apache/isis-app-todoapp[TodoApp] uses `@HomePage` to return a dashboard of todo items to complete:
 
 image::reference-annotations/HomePage/HomePage.png[width="800px",link="{imagesdir}/reference-annotations/HomePage/HomePage.png"]
 
@@ -15,25 +15,25 @@ The corresponding code is:
 [source,java]
 ----
 @DomainService(nature = NatureOfService.DOMAIN)
-public class ToDoAppDashboardService  {
+public class TodoAppDashboardService  {
     @Action(
             semantics = SemanticsOf.SAFE
     )
     @HomePage
-    public ToDoAppDashboard lookup() {
-        return serviceRegistry.injectServicesInto(new ToDoAppDashboard());
+    public TodoAppDashboard lookup() {
+        return serviceRegistry.injectServicesInto(new TodoAppDashboard());
     }
     @Inject
     ServiceRegistry serviceRegistry;
 }
 ----
 
-where `ToDoAppDashboard` is:
+where `TodoAppDashboard` is:
 
 [source,java]
 ----
 @DomainObject(nature = Nature.VIEW_MODEL)
-public class ToDoAppDashboard {
+public class TodoAppDashboard {
     public String title() { return "Dashboard"; }
 
     public List<ToDoItem> getNotYetComplete() { /* ... */ }
@@ -44,6 +44,6 @@ public class ToDoAppDashboard {
 ----
 <1> associated using xref:vw:ROOT:layout.adoc#file-based[file-based layout] with the `notYetComplete` collection.
 
-The other two actions shown in the above screenshot -- `exportAsXml` and `downloadLayout` -- are actually contributed to the `ToDoAppDashboard` through various domain services, as is the `downloadLayout` action.
+The other two actions shown in the above screenshot -- `exportAsXml` and `downloadLayout` -- are actually contributed to the `TodoAppDashboard` through various domain services, as is the `downloadLayout` action.
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Inject.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Inject.adoc
index 00ca8a7..f0e38e4 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Inject.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Inject.adoc
@@ -119,7 +119,7 @@ View models are created identically:
 
 [source,java]
 ----
-ToDoAppDashboard dashboard = repositoryService.instantiate(ToDoAppDashboard.class);
+TodoAppDashboard dashboard = repositoryService.instantiate(TodoAppDashboard.class);
 ----
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/labelPosition.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/labelPosition.adoc
index d1bbd74..a8e19ab 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/labelPosition.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/labelPosition.adoc
@@ -30,7 +30,7 @@ public class ToDoItem {
 ----
 
 
-To get an idea of how these are rendered (in the xref:vw:ROOT:about.adoc[Wicket viewer]), we can look at the (non-ASF) http://github.com/isisaddons/isis-app-todoapp[Isis addons' todoapp] that happens to have examples of most of these various label positions.
+To get an idea of how these are rendered (in the xref:vw:ROOT:about.adoc[Wicket viewer]), we can look at the http://github.com/apache/isis-app-todoapp[TodoApp] that happens to have examples of most of these various label positions.
 
 The default `LEFT` label positioning is used by the `cost` property:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/XmlRootElement.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/XmlRootElement.adoc
index 15af553..4d27013 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/XmlRootElement.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/XmlRootElement.adoc
@@ -34,7 +34,7 @@ If the view model XML graph is too large to be serialized to a string, then an a
 
 == Example
 
-This example is taken from the (non-ASF) http://github.com/isisaddons/isis-app-todoapp[Isis addons' todoapp]:
+This example is taken from the http://github.com/apache/isis-app-todoapp[TodoApp]:
 
 [source,java]
 ----
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/AppManifest-bootstrapping.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/AppManifest-bootstrapping.adoc
index 92290ad..713f4f8 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/AppManifest-bootstrapping.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/AppManifest-bootstrapping.adoc
@@ -59,16 +59,16 @@ This tells the framework that the package and subpackages under `com.mycompany.m
 As is perhaps apparent, the `getModules()` method replaces and overrides both the `isis.services.ServicesInstallerFromAnnotation.packagePrefix` key (usually found in the `isis.properties`  file) and also the`isis.persistor.datanucleus.RegisterEntities.packagePrefix` key (usually found in the `persistor_datanucleus.properties` file).
 The value of the `isis.services-installer` configuration property is also ignored.
 
-For example, the (non-ASF) http://github.com/isisaddons/isis-app-todoapp[Isis addons' todoapp] defines the following:
+For example, the http://github.com/apache/isis-app-todoapp[TodoApp] defines the following:
 
 [source,java]
 ----
 @Override
 public List<Class<?>> getModules() {
     return Arrays.asList(
-            ToDoAppDomainModule.class,
-            ToDoAppFixtureModule.class,
-            ToDoAppAppModule.class,
+            TodoAppDomainModule.class,
+            TodoAppFixtureModule.class,
+            TodoAppAppModule.class,
             org.isisaddons.module.audit.AuditModule.class,
             org.isisaddons.module.command.CommandModule.class,
             org.isisaddons.module.devutils.DevUtilsModule.class,
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/choices.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/choices.adoc
index 9acba71..9aee459 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/choices.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/choices.adoc
@@ -52,7 +52,7 @@ public class ShoppingCartItem {
 
 Action parameters also support the notion of dependent choices, whereby the list of choices is dependent upon the value of some other argument.
 
-An example can be found in the (non-ASF) http://github.com/isisaddons/isis-app-todoapp[Isis addons' todoapp], whereby `ToDoItem`s are categorized and then can also be subcategorized:
+An example can be found in the http://github.com/apache/isis-app-todoapp[TodoApp], whereby `ToDoItem`s are categorized and then can also be subcategorized:
 
 image::reference-methods/prefixes/choices/dependent.png[width="800px",link="{imagesdir}/reference-methods/prefixes/choices/dependent.png"]
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/default.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/default.adoc
index a6ff33c..59153fe 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/default.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/default.adoc
@@ -60,7 +60,7 @@ public class ShoppingCartItem {
 
 
 Defaults are also supported (of course) for xref:userguide:fun:programming-model.adoc#contributed-action[contributed actions].
-For example, here is a contributed action for updating category/subcategory of the (non-ASF) http://github.com/isisaddons/isis-app-todoapp[Isis addons' todoapp]:
+For example, here is a contributed action for updating category/subcategory of the http://github.com/apache/isis-app-todoapp[TodoApp]:
 
 [source,java]
 ----
@@ -111,7 +111,7 @@ public Integer default2Add(final Integer net, final Integer val) {
 }
 ----
 
-As a more complex example (taken from the (non-ASF) http://github.com/isisaddons/isis-app-kitchensink[Isis addons' kitchensink] app), we can default the NFL region from the NFL league, and then the NFL team based on the region:
+As a more complex example (taken from the link:http://github.com/apache/isis-app-kitchensink[Isis addons' kitchensink] app), we can default the NFL region from the NFL league, and then the NFL team based on the region:
 
 [source,java]
 ----
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved/cssClass.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved/cssClass.adoc
index 7096f1d..aebf2bc 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved/cssClass.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved/cssClass.adoc
@@ -12,7 +12,7 @@ This is done both for rendering the object either in a table or when rendering t
 In conjunction with xref:refguide:config:application-specific/application-css.adoc[`application.css`], can therefore provide custom styling of an object instance wherever it is rendered. +
 
 
-For example, the (non-ASF) http://github.com/isisaddons/isis-app-todoapp[Isis addons' todoapp] uses this technique to add a strikethrough for completed todo items.
+For example, the http://github.com/apache/isis-app-todoapp[TodoApp] uses this technique to add a strikethrough for completed todo items.
 This is shown on the home page:
 
 image::reference-methods/reserved/cssClass/strikethrough.png[width="800px",link="{imagesdir}/reference-methods/reserved/cssClass/strikethrough.png"]
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved/disable.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved/disable.adoc
index a7861a3..fbf19e5 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved/disable.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved/disable.adoc
@@ -44,7 +44,7 @@ For example:
 ----
 public class ToDoItem ... {
     public static abstract class PropertyDomainEvent<T>
-            extends ToDoAppDomainModule.PropertyDomainEvent<ToDoItem, T> {
+            extends TodoAppDomainModule.PropertyDomainEvent<ToDoItem, T> {
         ...
     }
     ...
@@ -55,8 +55,8 @@ where in turn:
 
 [source,java]
 ----
-public final class ToDoAppDomainModule {
-    private ToDoAppDomainModule(){}
+public final class TodoAppDomainModule {
+    private TodoAppDomainModule(){}
     public abstract static class PropertyDomainEvent<S,T>
             extends org.apache.isis.applib.events.domain.PropertyDomainEvent<S,T> { }
     ...
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved/iconName.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved/iconName.adoc
index b79cde5..7c28285 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved/iconName.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved/iconName.adoc
@@ -12,7 +12,7 @@ The `iconName()` allows the icon that to be used to change for individual object
 These are usually quite subtle, for example to reflect the particular status of an object.
 The value returned by the `iconName()` method is added as a suffix to the base icon name.
 
-For example, the (non-ASF) http://github.com/isisaddons/isis-app-todoapp[Isis addons' todoapp] uses this technique to add an overlay for todo items that have been completed:
+For example, the http://github.com/apache/isis-app-todoapp[TodoApp] uses this technique to add an overlay for todo items that have been completed:
 
 image::reference-methods/reserved/iconName/differing.png[width="200px",link="{imagesdir}/reference-methods/reserved/iconName/differing.png"]
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved/title.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved/title.adoc
index e9b7698..5f57179 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved/title.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved/title.adoc
@@ -21,7 +21,7 @@ public String title() { /* ... */ }
 
 Note that Apache Isis' xref:userguide:btb:i18n.adoc[i18n support] extends this so that titles can also be internationalized.
 
-For example, the (non-ASF) http://github.com/isisaddons/isis-app-todoapp[Isis addons' todoapp] uses this technique to add an overlay for todo items that have been completed:
+For example, the http://github.com/apache/isis-app-todoapp[TodoApp] uses this technique to add an overlay for todo items that have been completed:
 
 [source,java]
 ----
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/application-layer-api/BackgroundService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/application-layer-api/BackgroundService.adoc
index 228e62d..be4cf9b 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/application-layer-api/BackgroundService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/application-layer-api/BackgroundService.adoc
@@ -13,7 +13,7 @@ The default `BackgroundServiceDefault` implementation works by using a proxy wra
 This is done using xref:runtime-services:ROOT:application-layer/CommandDtoServiceInternal.adoc[`CommandDtoServiceInternal`].
 
 The persistence delegates the persistence of the memento to an appropriate implementation of the companion `BackgroundCommandService2`.
-One such implementation of `BackgroundCommandService` is provided by (non-ASF) http://github.com/isisaddons/isis-module-command[Isis addons' command] module.
+One such implementation of `BackgroundCommandService` is provided by (non-ASF) http://github.com/incodehq/incode-platform[Incode Platform's command] module.
 
 The persisting of commands is only half the story; there needs to be a separate process to read the commands and execute them.
 The `BackgroundCommandExecution` abstract class (discussed xref:refguide:applib-svc:application-layer-api/BackgroundService/BackgroundCommandExecution.adoc[below]) provides infrastructure to do this; the concrete implementation of this class depends on the configured `BackgroundCommandService` (in order to query for the persisted (background) ``Command``s.
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/core-domain-api/Scratchpad.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/core-domain-api/Scratchpad.adoc
index e8cd2eb..e5af2f7 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/core-domain-api/Scratchpad.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/core-domain-api/Scratchpad.adoc
@@ -39,7 +39,7 @@ To use an alternative implementation, subclass and use Spring's link:https://doc
 
 The most common use-case is for xref:refguide:applib-ant:Action.adoc#invokeOn[bulk] actions that act upon multiple objects in a list.  The (same) `Scratchpad` service is injected into each of these objects, and so they can use pass information.
 
-For example, the Isis addons example https://github.com/isisaddons/isis-app-todoapp/[todoapp] (not ASF) demonstrates how the `Scratchpad` service can be used to calculate the total cost of the selected `ToDoItem`s:
+For example, the link:https://github.com/apache/isis-app-todoapp/[TodoApp] (not ASF) demonstrates how the `Scratchpad` service can be used to calculate the total cost of the selected `ToDoItem`s:
 
 
 [source,java]
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/persistence-layer-api/IsisJdoSupport.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/persistence-layer-api/IsisJdoSupport.adoc
index 54bd36a..705f028 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/persistence-layer-api/IsisJdoSupport.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/persistence-layer-api/IsisJdoSupport.adoc
@@ -91,7 +91,7 @@ public interface IsisJdoSupport {
 The `executeQuery(...)` method supports the common case of obtaining a set of objects that meet some criteria, filtered using the provided `BooleanExpression`.
 To avoid memory leaks, the returned list is cloned and the underlying query closed.
 
-For example, in the (non-ASF) http://github.com/isisaddons/isis-app-todoapp[Isis addons' todoapp] there is an implementation of `ToDoItemRepository` using type-safe queries.
+For example, in the http://github.com/apache/isis-app-todoapp[TodoApp] there is an implementation of `ToDoItemRepository` using type-safe queries.
 The following JDOQL:
 
 [source,sql]
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/persistence-layer-api/RepositoryService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/persistence-layer-api/RepositoryService.adoc
index 94470c0..8c32c16 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/persistence-layer-api/RepositoryService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/persistence-layer-api/RepositoryService.adoc
@@ -179,7 +179,7 @@ public void addExcludedProduct() {
 There are various implementations of the `Query` API, but these either duplicate functionality of the other overloads of `allMatches(...)` or they are not supported by the JDO/DataNucleus object store.
 The only significant implementation of `Query` to be aware of is `QueryDefault`, which identifies a named query and a set of parameter/argument tuples.
 
-For example, in the (non-ASF) http://github.com/isisaddons/isis-app-todoapp[Isis addons' todoapp] the `ToDoItem` is annotated:
+For example, in the http://github.com/apache/isis-app-todoapp[TodoApp] the `ToDoItem` is annotated:
 
 [source,java]
 ----
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/presentation-layer-spi/ErrorReportingService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/presentation-layer-spi/ErrorReportingService.adoc
index 0614341..611fded 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/presentation-layer-spi/ErrorReportingService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/presentation-layer-spi/ErrorReportingService.adoc
@@ -75,7 +75,7 @@ By default a stack trace button is not shown if a ticket is returned (but _is_ s
 
 There is no default implementation of this service, but there are a couple of concrete examples of `Ticket` in `core-runtime`.
 
-The (non-ASF) http://github.com/isisaddons/isis-app-kitchensink[Isis addons' kitchensink] app provides an example implementation:
+The (non-ASF) a[Isis addons' kitchensink] app provides an example implementation:
 
 [source,java]
 ----
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/presentation-layer-spi/UserProfileService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/presentation-layer-spi/UserProfileService.adoc
index d45f3fa..616188e 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/presentation-layer-spi/UserProfileService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/presentation-layer-spi/UserProfileService.adoc
@@ -36,7 +36,7 @@ The framework provides a default implementation of this service, `o.a.i.core.run
 This simply returns the user's name as the user's profile name.
 
 An example implementation can also be found in the (non-ASF)
-http://github.com/isisaddons/isis-app-todoapp[Isis addons' todoapp]:
+http://github.com/apache/isis-app-todoapp[TodoApp]:
 
 image::reference-services-spi/UserProfileService/todoapp.png[width="800px",link="{imagesdir}/reference-services-spi/UserProfileService/todoapp.png"]
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/testing/SudoService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/testing/SudoService.adoc
index 8a536b7..74c1775 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/testing/SudoService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/testing/SudoService.adoc
@@ -48,7 +48,7 @@ The core framework provides a default implementation of this service (`o.a.i.cor
 
 == Usage
 
-A good example can be found in the (non-ASF) http://github.com/isisaddons/isis-app-todoapp[Isis addons' todoapp] which uses the `SudoService` in a fixture script to set up `ToDoItem` objects:
+A good example can be found in the http://github.com/apache/isis-app-todoapp[TodoApp] which uses the `SudoService` in a fixture script to set up `ToDoItem` objects:
 
 [source,java]
 ----
diff --git a/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/presentation-layer/ContentNegotiationService.adoc b/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/presentation-layer/ContentNegotiationService.adoc
index af17686..828c421 100644
--- a/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/presentation-layer/ContentNegotiationService.adoc
+++ b/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/presentation-layer/ContentNegotiationService.adoc
@@ -136,7 +136,7 @@ which returns xref:vro:ROOT:simplified-representations.adoc[simplified represent
 
 == Usage
 
-You can find an example of all these services in the (non-ASF) http://github.com/isisaddons/isis-app-todoapp[Isis addons' todoapp].  This defines a `ToDoItemDto` class that is JAXB annotated (it is in fact generated from an XSD).
+You can find an example of all these services in the http://github.com/apache/isis-app-todoapp[TodoApp].  This defines a `ToDoItemDto` class that is JAXB annotated (it is in fact generated from an XSD).
 
 The example app also includes an implementation of `ContentMappingService` that maps `todoapp.dom.module.todoitem.ToDoItem` entities to `todoapp.dto.module.todoitem.ToDoItemDto` classes.
 
diff --git a/extensions/security/secman/adoc/modules/secman/pages/about.adoc b/extensions/security/secman/adoc/modules/secman/pages/about.adoc
index d0bf967..097863e 100644
--- a/extensions/security/secman/adoc/modules/secman/pages/about.adoc
+++ b/extensions/security/secman/adoc/modules/secman/pages/about.adoc
@@ -6,4 +6,3 @@ This SecMan module provides a complete security subdomain for users, roles, perm
 What that means, of course, that they can also be administered through your Apache Isis application.
 Moreover, the set of permissions (to features) is derived completely from your application's metamodel; in essence the permissions are "type-safe".
 
-NOTE: this extension module builds upon and supercedes the link:https://github.com/isisaddons/isis-module-security[Isis Addons Security Module] (part of the non-ASF https://incode.platform.org[Incode Platform])
diff --git a/extensions/security/secman/adoc/modules/secman/pages/shiro-realm.adoc b/extensions/security/secman/adoc/modules/secman/pages/shiro-realm.adoc
index 658a8f1..e57a5d8 100644
--- a/extensions/security/secman/adoc/modules/secman/pages/shiro-realm.adoc
+++ b/extensions/security/secman/adoc/modules/secman/pages/shiro-realm.adoc
@@ -26,5 +26,5 @@ image::configure-shiro-to-use-isisaddons-security-module-realm-with-delegate-rea
 The xref:security:ROOT:about.adoc[SecMan extension] has many more features than are described here, all of which are described in the module's README.
 The README also explains in detail how to configure an existing app to use this module.
 
-//You can also look at the Isisaddons https://github.com/isisaddons/isis-app-todoapp[todoapp example] (not ASF), which is preconfigured to use the security module.
+//You can also look at the Isisaddons https://github.com/apache/isis-app-todoapp[TodoApp example] (not ASF), which is preconfigured to use the security module.
 
diff --git a/legacy/testing/mavenplugin/src/main/doc/modules/mvn/pages/intro.adoc b/legacy/testing/mavenplugin/src/main/doc/modules/mvn/pages/intro.adoc
index 0f71927..0dc5504 100644
--- a/legacy/testing/mavenplugin/src/main/doc/modules/mvn/pages/intro.adoc
+++ b/legacy/testing/mavenplugin/src/main/doc/modules/mvn/pages/intro.adoc
@@ -24,10 +24,6 @@ This is instead of and preferable to using the JAXB link:https://jaxb.java.net/2
 
 The `validate` goal is by default bound to the `test` phase, and the `swagger` goal is by default bound to the `package` phase; both are typically of your application's `dom` sub-module.
 The `xsd` goal meanwhile defaults to the `generate-resources` phase, and this is generally used in a completely separate sub-module.
-An example can be found in the (non-ASF) http://github.com/isisaddons/isis-app-todoapp[Isis addons' todoapp] example app; the separate submodule that uses the `xsd` goal is (also) called `todoapp-xsd`.
-
-All of these goals require an xref:refguide:applib-cm:classes/AppManifest-bootstrapping.adoc[`AppManifest`] to point the plugin at, so that it knows how to bootstrap an Isis runtime.
-This is discussed below, followed by sections on configuring the two goals.
 
 
 
diff --git a/legacy/testing/mavenplugin/src/main/doc/modules/mvn/pages/xsd.adoc b/legacy/testing/mavenplugin/src/main/doc/modules/mvn/pages/xsd.adoc
index 86e09a6..ceab079 100644
--- a/legacy/testing/mavenplugin/src/main/doc/modules/mvn/pages/xsd.adoc
+++ b/legacy/testing/mavenplugin/src/main/doc/modules/mvn/pages/xsd.adoc
@@ -59,7 +59,7 @@ below shows the overall design:
 image::maven-plugin/xsd-goal.png[width="800px",link="{imagesdir}/maven-plugin/xsd-goal.png"]
 
 For example, here is the `pom.xml` file for the (non-ASF)
-http://github.com/isisaddons/isis-app-todoapp[Isis addons' todoapp] example app's `todoapp-xsd` submodule.
+http://github.com/apache/isis-app-todoapp[TodoApp] example app's `todoapp-xsd` submodule.
 
 First, the usual boilerplate:
 
@@ -76,7 +76,7 @@ First, the usual boilerplate:
     </parent>
 
     <artifactId>todoapp-xsd</artifactId>
-    <name>Isis Addons ToDoApp XSD</name>
+    <name>Isis Addons TodoApp XSD</name>
 
     <dependencies>
         <dependency>
@@ -126,7 +126,7 @@ The `isis-xsd` profile runs the `xsd` goal of the `isis-maven-plugin`; these are
                 <artifactId>isis-maven-plugin</artifactId>
                 <version>${isis.version}</version>
                 <configuration>
-                    <appManifest>todoapp.dom.ToDoAppDomManifest</appManifest>                       <!--2-->
+                    <appManifest>todoapp.dom.TodoAppDomManifest</appManifest>                       <!--2-->
                     <jaxbClasses>                                                                   <!--3-->
                         <jaxbClass>todoapp.app.viewmodels.todoitem.v1_0.ToDoItemDto</jaxbClass>
                         <jaxbClass>todoapp.app.viewmodels.todoitem.v1_1.ToDoItemDto</jaxbClass>
diff --git a/security/shiro/src/main/adoc/modules/shiro/pages/about/ini-realm.adoc b/security/shiro/src/main/adoc/modules/shiro/pages/about/ini-realm.adoc
index 54c8da2..cbe2818 100644
--- a/security/shiro/src/main/adoc/modules/shiro/pages/about/ini-realm.adoc
+++ b/security/shiro/src/main/adoc/modules/shiro/pages/about/ini-realm.adoc
@@ -66,7 +66,7 @@ For example:
 ----
 user_role = *:ToDoItems:*:*,\
             *:ToDoItem:*:*,\
-            *:ToDoAppDashboard:*:*
+            *:TodoAppDashboard:*:*
 analysis_role = *:ToDoItemAnalysis:*:*,\
             *:ToDoItemsByCategoryViewModel:*:*,\
             *:ToDoItemsByDateRangeViewModel:*:*
diff --git a/testing/fixtures/adoc/modules/fixtures/pages/fixture-scripts/sudo-service.adoc b/testing/fixtures/adoc/modules/fixtures/pages/fixture-scripts/sudo-service.adoc
index a0ee7be..17cce42 100644
--- a/testing/fixtures/adoc/modules/fixtures/pages/fixture-scripts/sudo-service.adoc
+++ b/testing/fixtures/adoc/modules/fixtures/pages/fixture-scripts/sudo-service.adoc
@@ -6,7 +6,7 @@
 Sometimes in our fixture scripts we want to perform a business action running as a particular user.
 This might be for the usual reason - so that our fixtures accurately reflect the reality of the system with all business constraints enforced using the `WrapperFactory` - or more straightforwardly it might be simply that the action depends on the identity of the user invoking the action.
 
-An example of the latter case is in the (non-ASF) http://github.com/isisaddons/isis-app-todoapp[Isis addons' todoapp]'s `ToDoItem` class:
+An example of the latter case is in the http://github.com/apache/isis-app-todoapp[TodoApp]'s `ToDoItem` class:
 
 [source,java]
 .Production code that depends on current user
diff --git a/viewers/restfulobjects/adoc/modules/ROOT/pages/ro-spec.adoc b/viewers/restfulobjects/adoc/modules/ROOT/pages/ro-spec.adoc
index c106306..2de340e 100644
--- a/viewers/restfulobjects/adoc/modules/ROOT/pages/ro-spec.adoc
+++ b/viewers/restfulobjects/adoc/modules/ROOT/pages/ro-spec.adoc
@@ -147,7 +147,7 @@ in the RO spec, the main point being to avoid the "N+1" problem of too many (slo
 this feature one can load a grid of data in a single call.  (That said, the xref:vro:ROOT:simplified-representations.adoc[simplified representations]
 supported by Restful Objects viewer also support this use case, albeit in way that deviates from the RO spec).
 
-This link:https://www.youtube.com/watch?v=hSKnqqBQ7Zo[screencast] demonstrates the Restful Object viewer's support for `x-ro-follow-links` parameter, using the (non-ASF) http://github.com/isisaddons/isis-app-kitchensink[Isis addons' kitchensink] app as the example,
+This link:https://www.youtube.com/watch?v=hSKnqqBQ7Zo[screencast] demonstrates the Restful Object viewer's support for `x-ro-follow-links` parameter, using the link:http://github.com/apache/isis-app-kitchensink[Isis addons' kitchensink] app as the example,
 This app contains three entities, `Grandparent`, `Parent` and `Child` that define a hierarchy of 1:m relationships.
 
 
diff --git a/viewers/restfulobjects/adoc/modules/ROOT/pages/simplified-representations/action-invocation.adoc b/viewers/restfulobjects/adoc/modules/ROOT/pages/simplified-representations/action-invocation.adoc
index 2da5b29..565c5d0 100644
--- a/viewers/restfulobjects/adoc/modules/ROOT/pages/simplified-representations/action-invocation.adoc
+++ b/viewers/restfulobjects/adoc/modules/ROOT/pages/simplified-representations/action-invocation.adoc
@@ -10,7 +10,7 @@ When an action is invoked, it can return a domain object, a list, a scalar, or r
 
 If the action returned an object, then the xref:vro:ROOT:simplified-representations.adoc#domain-object[domain object representation] is returned.
 
-For example, using the (non-ASF) http://github.com/isisaddons/isis-app-todoapp[Isis addons' todoapp], accessing
+For example, using the http://github.com/apache/isis-app-todoapp[TodoApp], accessing
 this resource:
 
 [source]
@@ -60,7 +60,7 @@ Content-Type: application/json;profile="urn:org.apache.isis/v1";repr-type="objec
 On the other hand if the action returned a list (a "standalone" collection, then an array representation is returned.
 This is very similar to that returned by a xref:vro:ROOT:simplified-representations.adoc#object-collection[(parented) object collection], though with a slightly different `Content-Type` to distinguish.
 
-For example, using the (non-ASF) http://github.com/isisaddons/isis-app-todoapp[Isis addons' todoapp], accessing
+For example, using the http://github.com/apache/isis-app-todoapp[TodoApp], accessing
 this resource:
 
 [source]
diff --git a/viewers/restfulobjects/adoc/modules/ROOT/pages/simplified-representations/domain-object.adoc b/viewers/restfulobjects/adoc/modules/ROOT/pages/simplified-representations/domain-object.adoc
index fd0b24e..950f1c9 100644
--- a/viewers/restfulobjects/adoc/modules/ROOT/pages/simplified-representations/domain-object.adoc
+++ b/viewers/restfulobjects/adoc/modules/ROOT/pages/simplified-representations/domain-object.adoc
@@ -15,7 +15,7 @@ object) and a `$$title` property (to use as a label, eg the hyperlink text).
 
 In addition, the representation defined by the RO spec is also included, under a special `$$ro` property.
 
-For example, using the (non-ASF) http://github.com/isisaddons/isis-app-todoapp[Isis addons' todoapp], accessing
+For example, using the http://github.com/apache/isis-app-todoapp[TodoApp], accessing
 this resource:
 
 [source]
diff --git a/viewers/restfulobjects/adoc/modules/ROOT/pages/simplified-representations/object-collection.adoc b/viewers/restfulobjects/adoc/modules/ROOT/pages/simplified-representations/object-collection.adoc
index c398cd6..4a0e72a 100644
--- a/viewers/restfulobjects/adoc/modules/ROOT/pages/simplified-representations/object-collection.adoc
+++ b/viewers/restfulobjects/adoc/modules/ROOT/pages/simplified-representations/object-collection.adoc
@@ -11,7 +11,7 @@ pairs of the properties of that object (a grid, again). +
 In addition, the representation defined by the RO spec is also included, as a special object with a single `$$ro`
 property.
 
-For example, using the (non-ASF) http://github.com/isisaddons/isis-app-todoapp[Isis addons' todoapp], accessing
+For example, using the http://github.com/apache/isis-app-todoapp[TodoApp], accessing
 this resource:
 
 [source]
diff --git a/viewers/wicket/adoc/modules/ROOT/pages/customisation/brand-logo.adoc b/viewers/wicket/adoc/modules/ROOT/pages/customisation/brand-logo.adoc
index a53a7d3..bfd9eec 100644
--- a/viewers/wicket/adoc/modules/ROOT/pages/customisation/brand-logo.adoc
+++ b/viewers/wicket/adoc/modules/ROOT/pages/customisation/brand-logo.adoc
@@ -9,7 +9,7 @@ This can be changed to display a png logo instead.
 
 == Screenshots
 
-The screenshot below shows the Isis addons example https://github.com/isisaddons/isis-app-todoapp/[todoapp] (not ASF) with a 'brand logo' image in its header:
+The screenshot below shows the example https://github.com/apache/isis-app-todoapp/[TodoApp] with a 'brand logo' image in its header:
 
 image::brand-logo/brand-logo.png[width="750px",link="{imagesdir}/brand-logo/brand-logo.png"]
 
diff --git a/viewers/wicket/adoc/modules/ROOT/pages/customisation/tweaking-css-classes.adoc b/viewers/wicket/adoc/modules/ROOT/pages/customisation/tweaking-css-classes.adoc
index ea4fba27..e21cece 100644
--- a/viewers/wicket/adoc/modules/ROOT/pages/customisation/tweaking-css-classes.adoc
+++ b/viewers/wicket/adoc/modules/ROOT/pages/customisation/tweaking-css-classes.adoc
@@ -19,7 +19,7 @@ These customizations should generally be added to xref:refguide:config:applicati
 
 == Individual members
 
-For example, the `ToDoItem` object of the Isis addons example https://github.com/isisaddons/isis-app-todoapp/[todoapp] (not ASF) has a `notes` property. The HTML for this will be something like:
+For example, the `ToDoItem` object of the example https://github.com/apache/isis-app-todoapp/[TodoApp] has a `notes` property. The HTML for this will be something like:
 
 [source,html]
 ----
diff --git a/viewers/wicket/adoc/modules/ROOT/pages/features/blob-attachments.adoc b/viewers/wicket/adoc/modules/ROOT/pages/features/blob-attachments.adoc
index c9bbd9d..385d30f 100644
--- a/viewers/wicket/adoc/modules/ROOT/pages/features/blob-attachments.adoc
+++ b/viewers/wicket/adoc/modules/ROOT/pages/features/blob-attachments.adoc
@@ -14,7 +14,7 @@ A class can define a property using either of these types, for example:
 
 == Screenshots
 
-The following screenshots are taken from the Isis addons example https://github.com/isisaddons/isis-app-todoapp[todoapp] (not ASF):
+The following screenshots are taken from the example https://github.com/apache/isis-app-todoapp[TodoApp]:
 
 
 
diff --git a/viewers/wicket/adoc/modules/ROOT/pages/features/bookmarked-pages.adoc b/viewers/wicket/adoc/modules/ROOT/pages/features/bookmarked-pages.adoc
index 8adca4a..a1c2af2 100644
--- a/viewers/wicket/adoc/modules/ROOT/pages/features/bookmarked-pages.adoc
+++ b/viewers/wicket/adoc/modules/ROOT/pages/features/bookmarked-pages.adoc
@@ -15,7 +15,7 @@ Bookmarking is automatic; whenever a bookmarkable object/action is visited, then
 
 == Screenshots
 
-The following screenshot (nb: using a pre 1.8.0 version of the xref:vw:ROOT:about.adoc[Wicket viewer] UI), taken from https://github.com/isisaddons/isis-app-todoapp[Isisaddons example todoapp] (not ASF), shows how the bookmarks are listed in a sliding panel.
+The following screenshot (nb: using a pre 1.8.0 version of the xref:vw:ROOT:about.adoc[Wicket viewer] UI), taken from https://github.com/apache/isis-app-todoapp[Isisaddons example todoapp] (not ASF), shows how the bookmarks are listed in a sliding panel.
 
 image::bookmarked-pages/panel.png[width="800px",link="{imagesdir}/bookmarked-pages/panel.png"]
 
diff --git a/viewers/wicket/adoc/modules/ROOT/pages/hints-and-tips/per-user-themes.adoc b/viewers/wicket/adoc/modules/ROOT/pages/hints-and-tips/per-user-themes.adoc
index 4054c9a..d55a284 100644
--- a/viewers/wicket/adoc/modules/ROOT/pages/hints-and-tips/per-user-themes.adoc
+++ b/viewers/wicket/adoc/modules/ROOT/pages/hints-and-tips/per-user-themes.adoc
@@ -11,7 +11,7 @@ Would this also be possible for the login page, possibly depending on the used h
 
 Yes, you can do this, by installing a custom implementation of the Wicket Bootstrap's `ActiveThemeProvider`.
 
-The http://github.com/isisaddons/isis-app-todoapp[Isis addons' todoapp] (non-ASF) actually link:https://github.com/isisaddons/isis-app-todoapp/tree/61b8114a8e01dbb3c380b31cf09eaed456407570[does this], storing the info via the (non-ASF) http://platform.incode.org/modules/dom/settings/dom-settings.html[Incode Platform's settings module] :
+The http://github.com/apache/isis-app-todoapp[TodoApp] (non-ASF) actually link:https://github.com/apache/isis-app-todoapp/tree/61b8114a8e01dbb3c380b31cf09eaed456407570[does this], storing the info via the (non-ASF) http://platform.incode.org/modules/dom/settings/dom-settings.html[Incode Platform's settings module] :
 
 
 [source,java]
diff --git a/viewers/wicket/adoc/modules/ROOT/pages/layout/annotation-based.adoc b/viewers/wicket/adoc/modules/ROOT/pages/layout/annotation-based.adoc
index 4f3a96b..e73e7b1 100644
--- a/viewers/wicket/adoc/modules/ROOT/pages/layout/annotation-based.adoc
+++ b/viewers/wicket/adoc/modules/ROOT/pages/layout/annotation-based.adoc
@@ -164,7 +164,7 @@ If the sum of all the columns exceeds 12, then the collections are placed undern
 
 == Example Layouts
 
-Below are sketches for the layout of the https://github.com/apache/isis/blob/f38fdb92941172eabb12e0943509f239e6d5925f/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java[ToDoItem] class of the Isis addons example https://github.com/isisaddons/isis-app-todoapp/[todoapp] (not ASF):
+Below are sketches for the layout of the https://github.com/apache/isis/blob/f38fdb92941172eabb12e0943509f239e6d5925f/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java[ToDoItem] class of the example https://github.com/apache/isis-app-todoapp/[TodoApp]:
 
 The first divides the properties into two equal sized columns (6-6-0) and puts the collections underneath (12):
 
diff --git a/viewers/wicket/adoc/modules/ROOT/pages/layout/file-based.adoc b/viewers/wicket/adoc/modules/ROOT/pages/layout/file-based.adoc
index b2b3e1b..41f11a0 100644
--- a/viewers/wicket/adoc/modules/ROOT/pages/layout/file-based.adoc
+++ b/viewers/wicket/adoc/modules/ROOT/pages/layout/file-based.adoc
@@ -77,7 +77,7 @@ This link:https://www.youtube.com/watch?v=MxewC5Pve5k[screencast] describes the
 == Examples
 
 Probably the easiest way to understand dynamic XML layouts is by example.
-For this we'll use the `ToDoItem` from the (non-ASF) http://github.com/isisaddons/isis-app-todoapp[Isis addons' todoapp]:
+For this we'll use the `ToDoItem` from the http://github.com/apache/isis-app-todoapp[TodoApp]:
 
 image::layout-dynamic-xml/ToDoItem.png[width="940px",link="{imagesdir}/layout-dynamic-xml/ToDoItem.png"]
 
@@ -266,10 +266,10 @@ This section decribes a number of more features useful in more complex layouts.
 
 One feature worth being aware of is that it is possible to render a single feature more than once.
 
-For example, the dashboard home page for the (non-ASF) http://github.com/isisaddons/isis-app-todoapp[Isis addons' todoapp] shows
+For example, the dashboard home page for the http://github.com/apache/isis-app-todoapp[TodoApp] shows
 the "not yet complete" collection of todo items twice, once as a table and also as a calendar:
 
-image::layout-dynamic-xml/ToDoAppDashboard.png[width="940px",link="{imagesdir}/layout-dynamic-xml/ToDoAppDashboard.png"]
+image::layout-dynamic-xml/TodoAppDashboard.png[width="940px",link="{imagesdir}/layout-dynamic-xml/TodoAppDashboard.png"]
 
 
 This is accomplished using the following (slightly abbreviated) layout:
@@ -306,7 +306,7 @@ This might be useful for a complex domain object with multiple tabs; certain pro
 
 === Custom CSS
 
-The ToDoApp's dashboard (above) also shows how custom CSS styles can be associated with specific regions of the layout:
+The TodoApp's dashboard (above) also shows how custom CSS styles can be associated with specific regions of the layout:
 
 [source,xml]
 ----