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 2017/03/31 07:11:19 UTC

[43/51] [partial] isis git commit: ISIS-1521: reorganizes asciidoc documentation, moves into subdirs (both guides and other pages)

http://git-wip-us.apache.org/repos/asf/isis/blob/2669a971/adocs/documentation/src/main/asciidoc/guides/_dg_ide_eclipse.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_dg_ide_eclipse.adoc b/adocs/documentation/src/main/asciidoc/guides/_dg_ide_eclipse.adoc
deleted file mode 100644
index f2a3e5b..0000000
--- a/adocs/documentation/src/main/asciidoc/guides/_dg_ide_eclipse.adoc
+++ /dev/null
@@ -1,175 +0,0 @@
-[[_dg_ide_eclipse]]
-= Developing using Eclipse
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-:_basedir: ../../../
-:_imagesdir: images/
-:toc: right
-
-
-[NOTE]
-====
-This material does not constitute an endorsement; Eclipse foundation is not affiliated to Apache Software Foundation in any way.
-====
-
-If you are an http://www.eclipse.org[Eclipse] user, then we recommend you download the "Eclipse JEE package" configuration.
-
-When running an Apache Isis application, it's necessary to setup the development environment so that the Java bytecode can be enhanced by the link:http://www.datanucleus.org[DataNucleus] enhancer.  If working in Eclipse, then JDO enhancement is most easily done by installing the http://www.datanucleus.org/products/datanucleus/jdo/guides/eclipse.html[DataNucleus' Eclipse plugin].  This hooks the bytecode enhancement of your domain objects into Eclipse's normal incremental compilation.
-
-This plugin needs to be configured for each of your domain modules (usually just one in any given app).  The steps are therefore:
-
-* import the project into Eclipse
-* configure the DataNucleus enhancer
-* run the app from the `.launch` file
-
-
-
-
-[[__dg_ide_eclipse_screencast]]
-== Screencast
-
-This link:https://www.youtube.com/watch?v=RgcYfjQ8yJA[screencast] shows how to import an Apache Isis maven-based
-application into Eclipse and configure to use with the JDO Objectstore.
-
-
-
-[[__dg_ide_eclipse_editor-templates]]
-== Editor Templates
-
-We provide a set of editor templates.  These are used to add new methods to existing classes.  (These are equivalent to the xref:dg.adoc#__dg_ide_intellij_live-templates[IntelliJ live templates]):
-
-* `is` (Apache Isis domain objects).  link:./resources/appendices/dev-env/eclipse/isis-templates.xml[Download]
-* `ju` (for JUnit tests) link:./resources/appendices/dev-env/eclipse/junit4-templates.xml[Download]
-* `jm` (for JMock mocks or libraries) link:./resources/appendices/dev-env/eclipse/jmock2-templates.xml[Download]
-
-
-To install, download each XML file, then go to `Windows > Preferences > Java > Editor > Templates` and choose `Import`.
-
-
-
-
-[[__dg_ide_eclipse_importing-the-project]]
-== Importing the Project
-
-Use File > Import, then Maven > Existing Maven Projects.
-
-
-
-
-== Add DataNucleus support
-
-[TIP]
-====
-Make sure you are in the 'Java' Perspective, not the 'Java EE' Perspective.
-====
-
-
-In Eclipse, for the _domain object model_ project, first add DataNucleus support:
-
-image::{_imagesdir}appendices/dev-env/eclipse/eclipse-100-project-support.png[width="600px",link="{_imagesdir}appendices/dev-env/eclipse/eclipse-100-project-support.png"]
-
-
-Then turn on Auto-Enhancement:
-
-image::{_imagesdir}appendices/dev-env/eclipse/eclipse-110-project-support.png[width="600px",link="{_imagesdir}appendices/dev-env/eclipse/eclipse-110-project-support.png"]
-
-
-=== Update the classpath
-
-DataNucleus' enhancer uses the domain object model's own classpath to reference DataNucleus JARs. So, even though your domain objects are unlikely to depend on DataNucleus, these references must still be present.
-
-See the earlier section on xref:ugfun.adoc#_ugfun_getting-started_datanucleus-enhancer[DataNucleus enhancer] for details of the contents of the `pom.xml`.  Chances are it is already set up from running the xref:ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype].
-
-
-Then, tell DataNucleus to use the project classpath:
-
-
-image::{_imagesdir}/appendices/dev-env/eclipse/eclipse-010-windows-preferences.png[width="750px",link="{_imagesdir}/appendices/dev-env/eclipse/eclipse-010-windows-preferences.png"]
-
-When the enhancer runs, it will print out to the console:
-
-image::{_imagesdir}/appendices/dev-env/eclipse/eclipse-120-console.png[width="500px",link="{_imagesdir}/appendices/dev-env/eclipse/eclipse-120-console.png"]
-
-
-
-=== Workaround for path limits (the DN plugin to use the persistence.xml)
-
-If running on Windows then the DataNucleus plugin is very likely to hit the Windows path limit.
-
-To fix this, we configure the enhancer to read from the `persistence.xml` file.
-
-As a prerequisite, first make sure that your domain object model has a `persistence.xml` file.  Then specify the `persistence-unit` in the project properties:
-
-image::{_imagesdir}/appendices/dev-env/eclipse/eclipse-025-project-properties.png[width="750px",link="{_imagesdir}/appendices/dev-env/eclipse/eclipse-025-project-properties.png"]
-
-
-=== Workaround: If the enhancer fails
-
-On occasion it appears that Eclipse can attempt to run two instances of the DataNucleus enhancer. This is probably due to multiple Eclipse builders being defined; we've noticed multiple entries in the Eclipse's `Debug` view:
-
-
-image::{_imagesdir}/appendices/dev-env/eclipse/eclipse-210-enhancer-fails-duplicates.png[width="600px",link="{_imagesdir}/appendices/dev-env/eclipse/eclipse-210-enhancer-fails-duplicates.png"]
-
-
-At any rate, you'll know you've encountered this error if you see the following in the console:
-
-
-image::{_imagesdir}/appendices/dev-env/eclipse/eclipse-200-enhancer-fails-duplicates.png[width="600px",link="{_imagesdir}/appendices/dev-env/eclipse/eclipse-200-enhancer-fails-duplicates.png"]
-
-
-
-The best solution is to remove DataNucleus support and then to re-add it:
-
-
-image::{_imagesdir}/appendices/dev-env/eclipse/eclipse-220-enhancer-fails-duplicates.png[width="600px",link="{_imagesdir}/appendices/dev-env/eclipse/eclipse-220-enhancer-fails-duplicates.png"]
-
-
-If you consistently hit problems, then the final recourse is to disable the automatic enhancement and to remember to manually enhance your domain object model before each run.
-
-Not ideal, we know. Please feel free to contribute a better solution :-)
-
-
-
-
-== Running the App
-
-The simpleapp archetype automatically provides a `.launch` configurations in the `webapp` module. You can therefore very simply run the application by right-clicking on one of these files, and choosing "Run As\u2026" or "Debug As\u2026".
-
-
-[NOTE]
-====
-The screencast above shows this in action.
-====
-
-
-
-
-
-== Other domain projects.
-
-There is nothing to prevent you having multiple domain projects. You might want to do such that each domain project corresponds to a http://www.methodsandtools.com/archive/archive.php?id=97p2[DDD module], thus guaranteeing that there are no cyclic dependencies between your modules.
-
-If you do this, make sure that each project has its own `persistence.xml` file.
-
-And, remember also to configure Eclipse's DataNucleus plugin for these other domain projects.
-
-
-
-== Advanced
-
-In this section are a couple of options that will reduce the length of the change code/build/deploy/review feedback loop.
-
-
-=== Setting up DCEVM
-
-link: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.
-
-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.
-
-For details of setting up DCEVM, see the xref:dg.adoc#__dg_ide_intellij_advanced_dcevm[corresponding section] in the IntelliJ documentation.
-

http://git-wip-us.apache.org/repos/asf/isis/blob/2669a971/adocs/documentation/src/main/asciidoc/guides/_dg_ide_intellij.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_dg_ide_intellij.adoc b/adocs/documentation/src/main/asciidoc/guides/_dg_ide_intellij.adoc
deleted file mode 100644
index ae0047b..0000000
--- a/adocs/documentation/src/main/asciidoc/guides/_dg_ide_intellij.adoc
+++ /dev/null
@@ -1,704 +0,0 @@
-[[_dg_ide_intellij]]
-= Developing using IntelliJ IDEA
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-:_basedir: ../../../
-:_imagesdir: images/
-:toc: right
-
-
-
-[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 section describes how to install and setup JetBrains' IntelliJ IDEA, then how to import an application into IntelliJ and run it.
-
-
-[[__dg_ide_intellij_installing]]
-== 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.
-
-
-[[__dg_ide_intellij_installing_download]]
-=== Download and Install
-
-https://www.jetbrains.com/idea/download/[Download] latest version of IntelliJ Community Edition, and install:
-
-Start the wizard, click through the welcome page:
-
-.IntelliJ Installation Wizard - Welcome page
-image::{_imagesdir}appendices/dev-env/intellij-idea/010-installing/010-welcome-page.png[width="400px"]
-
-Choose the location to install the IDE:
-
-.IntelliJ Installation Wizard - Choose Location
-image::{_imagesdir}appendices/dev-env/intellij-idea/010-installing/020-choose-location.png[width="400px"]
-
-Adjust any installation options as you prefer:
-
-.IntelliJ Installation Wizard - Installation Options
-image::{_imagesdir}appendices/dev-env/intellij-idea/010-installing/030-installation-options.png[width="400px"]
-
-and the start menu:
-
-.IntelliJ Installation Wizard - Start Menu Folder
-image::{_imagesdir}appendices/dev-env/intellij-idea/010-installing/040-start-menu-folder.png[width="400px"]
-
-and finish up the wizard:
-
-.IntelliJ Installation Wizard - Completing the Wizard
-image::{_imagesdir}appendices/dev-env/intellij-idea/010-installing/050-completing.png[width="400px"]
-
-Later on we'll specify the Apache Isis/ASF code style settings, so for now select `I do not want to import settings`:
-
-.IntelliJ Installation Wizard - Import Settings
-image::{_imagesdir}appendices/dev-env/intellij-idea/010-installing/060-import-settings-or-not.png[width="400px"]
-
-Finally, if you are a trendy hipster, set the UI theme to Darcula:
-
-.IntelliJ Installation Wizard Set UI Theme
-image::{_imagesdir}appendices/dev-env/intellij-idea/010-installing/070-set-ui-theme.png[width="600px"]
-
-
-
-
-[[__dg_ide_intellij_installing_new-project]]
-=== 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).
-
-Start off by creating a new project:
-
-.IntelliJ Create New Project
-image::{_imagesdir}appendices/dev-env/intellij-idea/020-create-new-project/010-new-project-create.png[width="400px"]
-
-
-We want to create a new *Java* project:
-
-.IntelliJ Create New Project - Create a Java project
-image::{_imagesdir}appendices/dev-env/intellij-idea/020-create-new-project/020-java-project-setup-jdk.png[width="500px"]
-
-We therefore need to specify the JDK.  Apache Isis supports both Java 7 and Java 8.
-
-
-.IntelliJ Create New Java Project - Select the JDK
-image::{_imagesdir}appendices/dev-env/intellij-idea/020-create-new-project/030-java-project-select-jdk.png[width="250px"]
-
-
-Specify the directory containing the JDK:
-
-.IntelliJ Create New Project - Select the JDK location
-image::{_imagesdir}appendices/dev-env/intellij-idea/020-create-new-project/050-name-and-location.png[width="400px"]
-
-
-Finally allow IntelliJ to create the directory for the new project:
-
-.IntelliJ Create New Project
-image::{_imagesdir}appendices/dev-env/intellij-idea/020-create-new-project/060-create-dir.png[width="250px"]
-
-
-
-[[__dg_ide_intellij_file-templates]]
-=== File templates
-
-
-Next we recommend you import a set of standard file templates.  These are used to create new classes or supporting files:
-
-.File templates
-image::{_imagesdir}appendices/dev-env/intellij-idea/030-import-settings/040-file-templates.png[width="400px"]
-
-The file templates are provided as a settings JAR file, namely *link:resources/appendices/dev-env/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::{_imagesdir}appendices/dev-env/intellij-idea/030-import-settings/010-settings-import-jar.png[width="400px"]
-
-Select all the categories (there should just be one), and hit OK.  then hit restart.
-
-
-[WARNING]
-====
-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:
-
-* Windows `<User home>\.IdeaIC2016\config`
-* Linux `~/..IdeaIC2016/config`
-* Mac OS `~/Library/Preferences/IdeaIC2016`
-
-====
-
-
-
-[[__dg_ide_intellij_live-templates]]
-=== Live templates
-
-We also recommend you import a set  of live templates.  These are used to add new methods to existing classes:
-
-.Live templates
-image::{_imagesdir}appendices/dev-env/intellij-idea/030-import-settings/050-live-templates.png[width="600px"]
-
-The live templates have a prefix of prefixed either:
-
-* `is` : for Apache Isis domain objects
-* `ju` : for JUnit tests
-* `jm` : for JMock mocks or libraries
-* `ad` : for Asciidoc documentation; a full list can be found in the xref:dg.adoc#_dg_asciidoc-templates[appendix].
-
-The live templates are also provided as a settings JAR file, namely *link:resources/appendices/dev-env/intellij/isis-settings-live-templates.jar[isis-settings-live-templates.jar]*.
-Download and import (as for the previous settings JAR files).
-
-
-
-
-[[__dg_ide_intellij_coding-standards]]
-=== Coding Standards
-
-Next, we suggest you recommend you import settings for standard ASF/Apache Isis coding conventions.  This file is also
-provided as a settings file, namely *link:resources/appendices/dev-env/intellij/isis-settings-code-style.jar[isis-settings-code-style.jar]*.  Download and import (as for the above settings JAR files).
-
-
-
-[[__dg_ide_intellij_other-settings-compiler]]
-=== Other Settings (Compiler)
-
-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`):
-
-.IntelliJ Compiler Settings
-image::{_imagesdir}appendices/dev-env/intellij-idea/040-other-settings-compiler/010-build-automatically.png[width="700px"]
-
-
-On the *Annotation Processors* page, enable and adjust for the 'default' setting:
-
-.IntelliJ Annotation Processor Settings
-image::{_imagesdir}appendices/dev-env/intellij-idea/040-other-settings-compiler/020-annotation-processor.png[width="700px"]
-
-This setting enables the generation of the `Q*` classes for DataNucleus type-safe queries, as well as being required
-for frameworks such as xref:_cg_ide_project-lombok[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.
-====
-
-
-
-
-
-[[__dg_ide_intellij_other-settings-maven]]
-=== Other Settings (Maven)
-
-There are also some other settings for Maven that we recommend you adjust (though these are less critical):
-
-First, specify an up-to-date Maven installation, using `File > Settings` (or `IntelliJ > Preferences` if on MacOS):
-
-.IntelliJ Maven Settings - Installation
-image::{_imagesdir}appendices/dev-env/intellij-idea/042-other-settings-maven/010-maven-installation.png[width="700px"]
-
-Still on the Maven settings page, configure as follows:
-
-.IntelliJ Maven Settings - Configuration
-image::{_imagesdir}appendices/dev-env/intellij-idea/042-other-settings-maven/020-maven-configuration.png[width="700px"]
-
-
-=== Other Settings (Misc)
-
-These settings are optional but also recommended.
-
-On the *auto import* page, check the `optimize imports on the fly` and `add unambiguous imports on the fly`
-
-.IntelliJ Maven Settings - Auto Import
-image::{_imagesdir}appendices/dev-env/intellij-idea/044-other-settings-misc/010-auto-import.png[width="700px"]
-
-
-
-
-[[__dg_ide_intellij_importing-maven-modules]]
-== Importing 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:
-
-.IntelliJ Maven Module Management - Importing Maven modules
-image::{_imagesdir}appendices/dev-env/intellij-idea/100-maven-module-mgmt/010-maven-modules-view.png[width="730px"]
-
-We can then import another module (from some other directory).  For example, here we are importing the Isis Addons' todoapp example:
-
-
-.IntelliJ Maven Module Management - Importing another Module
-image::{_imagesdir}appendices/dev-env/intellij-idea/100-maven-module-mgmt/020-adding-another-module.png[width="400px"]
-
-You should then see the new Maven module loaded in the _Projects_ window and also the _Maven Projects_ window:
-
-.IntelliJ Maven Module Management -
-image::{_imagesdir}appendices/dev-env/intellij-idea/100-maven-module-mgmt/030-other-module-added.png[width="730px"]
-
-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 from the 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::{_imagesdir}appendices/dev-env/intellij-idea/100-maven-module-mgmt/040-ignoring-modules.png[width="730px"]
-
-Confirm that it's ok to ignore these modules:
-
-.IntelliJ Maven Module Management - Ignoring Modules (ctd)
-image::{_imagesdir}appendices/dev-env/intellij-idea/100-maven-module-mgmt/050-ignoring-modules-2.png[width="300px"]
-
-All being well you should see that the _Projects_ window now only contains the code you are working on.  Its classpath dependencies will be adjusted (eg to resolve to Apache Isis core from `.m2/repository`):
-
-.IntelliJ Maven Module Management - Updated Projects Window
-image::{_imagesdir}appendices/dev-env/intellij-idea/100-maven-module-mgmt/060-ignored-modules.png[width="730px"]
-
-
-
-[[__dg_ide_intellij_running]]
-== Running
-
-Let's see how to run both the app and the tests.
-
-[[__dg_ide_intellij_running_the-app]]
-=== Running the App
-
-Once you've imported your 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::{_imagesdir}appendices/dev-env/intellij-idea/110-running-the-app/010-run-configuration.png[width="600px"]
-
-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:
-
-.IntelliJ Running the App - Datanucleus Enhancer Goal
-image::{_imagesdir}appendices/dev-env/intellij-idea/110-running-the-app/020-datanucleus-enhancer-goal.png[width="400px"]
-
-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.
-
-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.
-
-
-[[__dg_ide_intellij_running_unit-tests]]
-=== 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 (!).
-
-.IntelliJ Running the App - Unit Tests Run Configuration
-image::{_imagesdir}appendices/dev-env/intellij-idea/110-running-the-app/030-running-unit-tests.png[width="600px"]
-
-As a side-effect, this will create a run configuration, very similar to the one we manually created for the main app:
-
-.IntelliJ Running the App - Unit Tests Run Configuration
-image::{_imagesdir}appendices/dev-env/intellij-idea/110-running-the-app/040-running-unit-tests-run-configuration.png[width="600px"]
-
-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).
-
-
-[[__dg_ide_intellij_running_integ-tests]]
-=== 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.
-
-One approach is to initially run the tests use the right click on the `integtests` module; the tests will fail because the code won't have been enhanced, but we can then go and update the run configuration to run the datanucleus enhancer goal (same as when running the application):
-
-.IntelliJ Running the App - Integration Tests Run Configuration
-image::{_imagesdir}appendices/dev-env/intellij-idea/110-running-the-app/050-running-integration-tests-run-configuration.png[width="600px"]
-
-
-
-Also make sure that the `search for tests` radio button is set to `In single module`:
-
-image::{_imagesdir}appendices/dev-env/intellij-idea/400-running-integtests/run-debug-configuration-single-module.png[width="600px",link="{_imagesdir}appendices/dev-env/intellij-idea/400-running-integtests/run-debug-configuration-single-module.png"]
-
-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.
-
-
-
-
-[[__dg_ide_intellij_hints-and-tips]]
-== Hints and Tips
-
-[[__dg_ide_intellij_hints-and-tips_keyboard-cheat-sheets]]
-=== Keyboard Cheat Sheets
-
-You can download 1-page PDFs cheat sheets for IntelliJ's keyboard shortcuts:
-* for link:https://www.jetbrains.com/idea/docs/IntelliJIDEA_ReferenceCard.pdf[Windows]
-* for link:https://www.jetbrains.com/idea/docs/IntelliJIDEA_ReferenceCard_Mac.pdf[MacOS]
-
-Probably the most important shortcut on them is for `Find Action`:
-- `ctrl-shift-A` on Windows
-- `cmd-shift-A` on MacOS.
-
-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.
-
-* 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 _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!
-
-[[__dg_ide_intellij_hints-and-tips_navigating-around]]
-=== Navigating Around
-
-For all of the following, you don't need to type every letter, typing "ab" will actually search for ".*a.*b.*".
-
-* to open classes or files or methods that you know the name of:
-** `ctrl-N` to open class
-** `ctrl-shift-N` to open a file
-** (bit fiddly this) `ctrl-shift-alt-N` to search for any symbol.
-* open up dialog of recent files: `ctrl-E`
-* search for any file: `shift-shift`
-
-Navigating around:
-* find callers of a method (the call hierarchy): `ctrl-alt-H`
-* find subclasses or overrides: `ctrl-alt-B`
-* find superclasses/interface/declaration: `ctrl-B`
-
-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
-
-
-[[__dg_ide_intellij_hints-and-tips_editing]]
-=== Editing
-
-* Extend selection using `ctrl-W`
-** and contract it down again using `ctrl-shift-W`
-* to duplicate a line, it's `ctrl-D`
-** if you have some text selected (or even some lines), it'll actually duplicate the entire selection
-* to delete a line, it's `ctrl-X`
-* to move a line up or down: `shift-alt-up` and `shift-alt-down`
-** if you have selected several lines, it'll move them all togethe
-* `ctrl-shift-J` can be handy for joining lines together
-** just hit enter to split them apart (even in string quotes; IntelliJ will "do the right thing")
-
-### 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.
-
-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.
-
-Last, when invoking a method, use `ctrl-P` to see the parameter types.
-
-
-[[__dg_ide_intellij_hints-and-tips_refactoring]]
-=== Refactoring
-
-Loads of good stuff on the `Refactor` menu; most used are:
-
-* Rename (`shift-F6`)
-* Extract
-** method: `ctrl-alt-M`
-** variable: `ctrl-alt-V`
-* Inline method/variable: `ctrl-alt-N`
-* Change signature
-
-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
-
-
-[[__dg_ide_intellij_hints-and-tips_plugins]]
-=== 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:
-
-* link:https://plugins.jetbrains.com/plugin/7179?pr=idea[Maven Helper] plugin
-+
-More on this below.
-
-* link:https://github.com/asciidoctor/asciidoctor-intellij-plugin[AsciiDoctor] plugin
-+
-Useful if you are doing any authoring of documents.
-
-Some others you might like to explore are:
-
-.IntelliJ Plugins
-image::{_imagesdir}appendices/dev-env/intellij-idea/050-some-plugins/020-some-plugins-confirmation.png[width="600px"]
-
-
-[[__dg_ide_intellij_hints-and-tips_plugins_maven-helper-plugin]]
-==== Maven Helper Plugin
-
-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:
-
-image::{_imagesdir}appendices/dev-env/intellij-idea/050-some-plugins/maven-helper/010-dependency-tab.png[width="600px",link="{_imagesdir}appendices/dev-env/intellij-idea/050-some-plugins/maven-helper/010-dependency-tab.png"]
-
-Clicking on this gives a graphical tree representation of the dependencies, similar to that obtained by `mvn dependency:tree`, but filterable.
-
-image::{_imagesdir}appendices/dev-env/intellij-idea/050-some-plugins/maven-helper/020-dependency-as-tree.png[width="600px",link="{_imagesdir}appendices/dev-env/intellij-idea/050-some-plugins/maven-helper/020-dependency-as-tree.png"]
-
-The plugin also provides the ability to easily run a Maven goal on a project:
-
-image::{_imagesdir}appendices/dev-env/intellij-idea/050-some-plugins/maven-helper/030-maven-run-goal.png[width="600px",link="{_imagesdir}appendices/dev-env/intellij-idea/050-some-plugins/maven-helper/030-maven-run-goal.png"]
-
-This menu can also be bound to a keystroke so that it is available as a pop-up:
-
-image::{_imagesdir}appendices/dev-env/intellij-idea/050-some-plugins/maven-helper/040-maven-quick-run.png[width="600px",link="{_imagesdir}appendices/dev-env/intellij-idea/050-some-plugins/maven-helper/040-maven-quick-run.png"]
-
-
-[[__dg_ide_intellij_troubleshooting]]
-=== Troubleshooting
-
-When a Maven module is imported, IntelliJ generates its own project files (suffix `.ipr`), and the application is actually built from that.
-
-Occasionally these don't keep in sync (even if auto-import of Maven modules has been enabled).
-
-To fix the issue, try:
-* reimport module
-* rebuild selected modules/entire project
-* remove and then re-add the project
-* 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`.
-
-If you hit an error of "duplicate classes":
-
-image::{_imagesdir}appendices/dev-env/intellij-idea/060-troubleshooting/010-duplicate-classes.png[width="600px",link="{_imagesdir}appendices/dev-env/intellij-idea/060-troubleshooting/010-duplicate-classes.png"]
-
-then make sure you have correctly configured the xref:_cg_ide_intellij_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.
-
-
-
-
-[[__dg_ide_intellij_advanced]]
-== 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.
-
-
-[[__dg_ide_intellij_advanced_gradle-compile-enhance]]
-=== Using Grade to compile/enhance
-
-Running an Apache Isis application requires that the DataNucleus enhancer runs on the compiled bytecode.  As described xref:dg.adoc#__dg_ide_intellij_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:
-
-[source,groovy]
-.`build.gradle`
-----
-apply plugin: 'java'
-apply plugin: 'tangram.tools'
-sourceCompatibility = 1.8
-targetCompatibility = 1.8
-version = (new XmlParser()).parse('pom.xml').parent.version.text()
-buildscript {
-  repositories {
-    maven { url "http://oss.jfrog.org/artifactory/oss-snapshot-local" }
-    jcenter()
-  }
-  dependencies {
-    classpath 'tangram:gradle-plugin:1.1.2'
-  }
-}
-repositories {
-    mavenLocal()
-    maven { url "http://oss.jfrog.org/artifactory/oss-snapshot-local" }
-    jcenter()
-}
-dependencies {
-    compile group: 'org.apache.isis.core', name: 'isis-core-applib', version: version
-}
-task copyClasses << {
-    copy {
-        from 'build/classes/main'
-        into 'target/classes'
-    }
-}
-----
-
-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:
-`File > Settings > Build, Execution, Deployment > Compiler > Excludes`, and then exclude the `.../dom/src/main/java`
-directory:
-
-image::{_imagesdir}appendices/dev-env/intellij-idea/070-advanced/002-compiler-exclude.png[width="800px",link="{_imagesdir}appendices/dev-env/intellij-idea/070-advanced/002-compiler-exclude.png"]
-
-
-The script can be run in the background using:
-
-[source,bash]
-----
-gradle -t --offline &
-----
-
-from the command line (in the `dom` module).
-
-image::{_imagesdir}appendices/dev-env/intellij-idea/070-advanced/004-gradle-output.png[width="600px",link="{_imagesdir}appendices/dev-env/intellij-idea/070-advanced/004-gradle-output.png"]
-
-
-
-
-[[__dg_ide_intellij_advanced_gradle-liveReload]]
-=== Using Gradle for liveReload
-
-Similarly, gradle can be run to reduce the turn-around time when tweaking the UI (defined by the
- xref:ugfun.adoc#_ugfun_object-layout_dynamic_xml[`*.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
-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]
-====
-We've occasionally noticed that this interferes with Wicket's own javascript - switching tabs becomes unresponsive.
-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:
-
-[source,groovy]
-.`layouts.gradle`
-----
-defaultTasks 'copyLayouts'
-task copyLayouts(type:Copy) {
-    from 'src/main/java'
-    into 'target/classes'
-    include '**/*.layout.xml'
-}
-----
-
-Similarly, the `liveReload.gradle` script takes care of the browser refresh:
-
-[source,groovy]
-.`liveReload.gradle`
-----
-defaultTasks 'liveReload'
-buildscript {
-    repositories {
-        jcenter()
-    }
-    dependencies {
-        classpath 'org.kordamp.gradle:livereload-gradle-plugin:0.2.1'
-    }
-}
-apply plugin: 'org.kordamp.gradle.livereload'
-liveReload {
-    docRoot new File('target/classes').canonicalPath
-}
-----
-
-These scripts can be run together using:
-
-[source,bash]
-----
-gradle -t --offline -b layouts.gradle &
-gradle -t --offline -b liveReload.gradle &
-----
-from the command line (in the `dom` module):
-
-
-image::{_imagesdir}appendices/dev-env/intellij-idea/070-advanced/005-gradle-output.png[width="600px",link="{_imagesdir}appendices/dev-env/intellij-idea/070-advanced/005-gradle-output.png"]
-
-
-Live reload also requires that the `isis.viewer.wicket.liveReloadUrl` configuration property is set appropriately:
-
-[source,ini]
-.`viewer_wicket.properties`
-----
-isis.viewer.wicket.liveReloadUrl=http://localhost:35729/livereload.js?snipver=1
-----
-
-You can confirm the script is loaded correctly using the web browser's development tools, eg:
-
-
-image::{_imagesdir}appendices/dev-env/intellij-idea/070-advanced/006-livereload-js.png[width="800px",link="{_imagesdir}appendices/dev-env/intellij-idea/070-advanced/006-livereload-js.png"]
-
-
-
-
-[[__dg_ide_intellij_advanced_dcevm]]
-=== Setting up DCEVM
-
-link: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.
-
-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:
-
-[source,bash]
-----
-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`.
-====
-
-
-After a few seconds this will display a dialog listing all installations of JDK that have been found:
-
-image::{_imagesdir}appendices/dev-env/intellij-idea/070-advanced/010-dcevm-list-of-found-jdk-installations.png[width="600px",link="{_imagesdir}appendices/dev-env/intellij-idea/070-advanced/010-dcevm-list-of-found-jdk-installations.png"]
-
-
-Select the corresponding installation, and select `Replace by DCEVM`.
-
-image::{_imagesdir}appendices/dev-env/intellij-idea/070-advanced/020-dcevm-once-installed.png[width="600px",link="{_imagesdir}appendices/dev-env/intellij-idea/070-advanced/020-dcevm-once-installed.png"]
-
-
-In IntelliJ, register the JDK in `File > Project Structure` dialog:
-
-image::{_imagesdir}appendices/dev-env/intellij-idea/070-advanced/030-dcevm-intellij-project-structure.png[width="600px",link="{_imagesdir}appendices/dev-env/intellij-idea/070-advanced/030-dcevm-intellij-project-structure.png"]
-
-Finally, in the run configuration, select the patched JDK:
-
-image::{_imagesdir}appendices/dev-env/intellij-idea/070-advanced/040-dcevm-run-configuration.png[width="600px",link="{_imagesdir}appendices/dev-env/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.  With some
-modification, this should work for IntelliJ too.
-
-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).

http://git-wip-us.apache.org/repos/asf/isis/blob/2669a971/adocs/documentation/src/main/asciidoc/guides/_dg_project-lombok.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_dg_project-lombok.adoc b/adocs/documentation/src/main/asciidoc/guides/_dg_project-lombok.adoc
deleted file mode 100644
index 367d00b..0000000
--- a/adocs/documentation/src/main/asciidoc/guides/_dg_project-lombok.adoc
+++ /dev/null
@@ -1,50 +0,0 @@
-[[_dg_project-lombok]]
-= Appendix: Project Lombok
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-:_basedir: ../
-:_imagesdir: images/
-
-
-
-link:https://projectlombok.org/[Project Lombok] is an open source project to reduce the amount of boilerplate in
-your code.
-
-For example, rather than write:
-
-[source,java]
-----
-private String name;
-public String getName() {
-    return name;
-}
-public void setName(String name) {
-    this.name = name;
-}
-----
-
-you can instead write simply:
-
-[source,java]
-----
-@Getter @Setter
-private String name;
-----
-
-Under the covers it is implemented as an annotation processor; it basically hooks into the Java compiler
-so that it can emit additional bytecode (eg for the getter and setter).  See xref:_cg_ide_intellij_other-settings-compiler[here] for details of setting up in IntelliJ (Eclipse has very similar support).
-
-Apache Isis supports link:https://projectlombok.org/[Project Lombok], in that the annotations that would normally be placed on the getter (namely xref:rgant.adoc#_rgant-Property[`Property`], xref:rgant.adoc#_rgant-PropertyLayout[`@PropertyLayout`], xref:rgant.adoc#_rgant-Collection[`@Collection`], xref:rgant.adoc#_rgant-CollectionLayout[`@CollectionLayout`] and xref:rgant.adoc#_rgant-MemberOrder[`@MemberOrder`]) can be placed on the field instead.
-
-
-There are plugins for Lombok for maven; it's just a matter of adding the required dependency.  To compile the code
-within your IDE (eg so that its compiler "knows" that there is, actually, a getter and setter) will require an
-Lombok plugin appropriate to that IDE.  See the link:https://projectlombok.org/download.html[Lombok download page] for more information.
-
-
-
-== Future thoughts
-
-In the future we might extend/fork Lombok so that it understands Isis' own annotations (ie xref:rgant.adoc#_rgant-Property[`@Property`] and xref:rgant.adoc#_rgant-Collection[`@Collection`])
-rather than Lombok's own `@Getter` and `@Setter.
-
-It might also be possible to use Lombok to generate the domain event classes for each member.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/2669a971/adocs/documentation/src/main/asciidoc/guides/_dg_working-with-many-repos.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_dg_working-with-many-repos.adoc b/adocs/documentation/src/main/asciidoc/guides/_dg_working-with-many-repos.adoc
deleted file mode 100644
index 383341b..0000000
--- a/adocs/documentation/src/main/asciidoc/guides/_dg_working-with-many-repos.adoc
+++ /dev/null
@@ -1,111 +0,0 @@
-[[_dg_working-with-many-repos]]
-= Appendix: Working with Many Repos
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-:_basedir: ../../../
-:_imagesdir: images/
-:toc: right
-
-
-Applications built with Apache Isis often (should) consist of multiple modules, each in separate git repositories.  For example, there are the various (non-ASF) link:http://isisaddons.org[Isis Addons] that provide various cross-cutting concerns/technical services (security, mail-merge etc), as well the modules eg as provided by the (non-ASF) link:http://catalog.incode.org[Incode Catalog], which provides generic business subdomains (communication channels, documents etc).
-
-In addition, your own application may well be structured as a number of distinct modules (probably with the entities in each module being mapped to a different schema), and using such techniques as the xref:ugbtb.adoc#_ugbtb_decoupling_event-bus[event bus] and xref:ugbtb.adoc#_ugbtb_decoupling_mixins[mixins] so that these modules are decoupled from each other.
-
-All of which is a preamble to say that you will likely have multiple directories on your local development computer, for each such git repository that you contribute to.
-
-In this appendix we provide some simple but useful bash scripts to help you manage each such.
-
-
-== Prerequisites
-
-We recommend that you adopt a convention for your directories.  For example, open source repositories (such as the Isis Addons and Incode Catalog mentioned above) reside in link:https://github.com/[github.com], while your own proprietary code might reside in some other service, eg link:https://bitbucket.org/[bitbucket].  For example:
-
-[source]
-----
-/users/home/me/
-    BITBUCKET/
-        mycompany/
-            myapp-moduleA
-            myapp-moduleB
-            myapp
-    GITHUB/
-        isisaddons/
-            isis-module-docx
-            isis-module-security
-        incodehq/
-            incode-module-commchannel
-            incode-module-classification
-----
-
-
-== `_repos.txt`
-
-Create a file `_repos.txt` that catalogues the repositories, eg:
-
-[source]
-----
-#
-# our code
-#
-/users/home/me/BITBUCKET/mycompany/myapp-moduleA
-/users/home/me/BITBUCKET/mycompany/myapp-moduleB
-/users/home/me/BITBUCKET/mycompany/myapp
-#
-# open source modules
-#
-/users/home/me/GITHUB/isisaddons/isis-module-docx
-/users/home/me/GITHUB/isisaddons/isis-module-security
-/users/home/me/GITHUB/incodehq/incode-module-commchannel
-/users/home/me/GITHUB/incodehq/incode-module-classification
-----
-
-
-
-== Bash functions
-
-The `.bash_functions` file (downloadable from this link:https://gist.github.com/danhaywood/21b5b885433fd8bc440da3fab88c91cb[gist]) provides the following two functions:
-
-
-* `repo` +
-+
-Switches (using `pushd`) to the specified directory (as listed in the `_repos.txt` file).
-
-* `foreach` +
-+
-Runs the specified command for all (or matching) repositories (as listed in `_repos.txt` file).
-
-
-For example,
-
-[source,bash]
-----
-repo doc
-----
-
-would switch to `/users/home/me/GITHUB/isisaddons/isis-module-docx`, the first module that matches the fragment.
-
-
-Meanwhile:
-
-[source,bash]
-----
-foreach git status
-----
-
-would perform a `git status` on every git repository, while
-
-[source,bash]
-----
-foreach -g isisaddons git fetch
-----
-
-would perform a `git fetch` but only to those repositories which match "isisaddons" (`-g` flag standing for `grep`).
-
-
-To load the functions into your profile (`.bashrc` or `.profile` or similar), use:
-
-[source,bash]
-----
-. ~/.bash_functions
-----
-
-

http://git-wip-us.apache.org/repos/asf/isis/blob/2669a971/adocs/documentation/src/main/asciidoc/guides/_rgant-Action.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rgant-Action.adoc b/adocs/documentation/src/main/asciidoc/guides/_rgant-Action.adoc
deleted file mode 100644
index bde910d..0000000
--- a/adocs/documentation/src/main/asciidoc/guides/_rgant-Action.adoc
+++ /dev/null
@@ -1,133 +0,0 @@
-[[_rgant-Action]]
-= `@Action`
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-:_basedir: ../
-:_imagesdir: images/
-
-
-The `@Action` annotation groups together all domain-specific metadata for an invokable action on a domain object or domain service.
-
-The table below summarizes the annotation's attributes.
-
-.`@Action` attributes
-[cols="2,2,4a", options="header"]
-|===
-
-| Attribute
-| Values (default)
-| Description
-
-
-|xref:rgant.adoc#_rgant-Action_command[`command()`]
-|`AS_CONFIGURED`, `ENABLED`, `DISABLED` +
-(`AS_CONFIGURED`)
-|whether the action invocation should be reified into a `o.a.i.applib.` +
-`services.command.Command` object through the xref:rgsvc.adoc#_rgsvc_api_CommandContext[`CommandContext`] service.
-
-
-|`commandExecuteIn()`
-|`FOREGROUND`,`BACKGROUND` +
-(`FOREGROUND`)
-|whether to execute the command immediately, or to persist it (assuming that an appropriate implementation of xref:rgsvc.adoc#_rgsvc_spi_CommandService[`CommandService`] has been configured) such that a background scheduler can execute the command asynchronously
-
-
-|`commandPersistence()`
-|`PERSISTED`, `NOT_PERSISTED`, `IF_HINTED` +
-(`PERSISTED`)
-|whether the reified `Command` (as provided by the `CommandContext` domain service) should actually be persisted (assuming an appropriate implementation of xref:rgsvc.adoc#_rgsvc_spi_CommandService[`CommandService`] has been configured).
-
-
-|xref:rgant.adoc#_rgant-Action_domainEvent[`domainEvent()`]
-|subtype of `ActionDomainEvent` +
-(`ActionDomainEvent.Default`)
-|the event type to be posted to the xref:rgsvc.adoc#_rgsvc_api_EventBusService[`EventBusService`] to
-broadcast the action's business rule checking (hide, disable, validate) and its invocation (pre-execute and
-post-execute).
-
-
-|xref:rgant.adoc#_rgant-Action_hidden[`hidden()`]
-|`EVERYWHERE`, `NOWHERE` +
-(`NOWHERE`)
-|indicates where (in the UI) the action should be hidden from the user.
-
-
-|xref:rgant.adoc#_rgant-Action_invokeOn[`invokeOn()`]
-|`OBJECT_ONLY`, `COLLECTION_ONLY`, `OBJECT_AND_COLLECTION` +
-(`OBJECT_ONLY`)
-|whether an action can be invoked on a single object and/or on many objects in a collection.
-
-Currently this is only supported for no-arg actions.
-
-
-|xref:rgant.adoc#_rgant-Action_publishing[`publishing()`]
-|`AS_CONFIGURED`, `ENABLED`, `DISABLED` +
-(`AS_CONFIGURED`)
-|whether the action invocation should be published to the registered xref:rgsvc.adoc#_rgsvc_spi_PublishingService[`PublishingService`].
-
-|`publishing-` +
-`PayloadFactory()`
-|subtype of `PublishingPayloadFactory-` `ForAction` (none)
-|specifies that a custom implementation of `PublishingPayloadFactoryForAction` be used to create the (payload of the) published event representing the action invocation
-
-|xref:rgant.adoc#_rgant-Action_restrictTo[`restrictTo()`]
-|`NO_RESTRICTIONS`,`PROTOTYPING` +
-(`NO_RESTRICTIONS`)
-|whether the action is only available in prototyping mode, or whether it is available also in production mode.
-
-|xref:rgant.adoc#_rgant-Action_semantics[`semantics()`]
-|`SAFE_AND_REQUEST_CACHEABLE`, `SAFE`, +
-`IDEMPOTENT`, `IDEMPOTENT_ARE_YOU_SURE` +
-`NON_IDEMPOTENT`, `NON_IDEMPOTENT_ARE_YOU_SURE` + +
-(`NON_IDEMPOTENT`)
-|the action's semantics (ie whether objects are modified as the result of invoking this action, and if so whether reinvoking the action would result in no further change; if not whether the results can be cached for the remainder of the request).
-
-The `...ARE_YOU_SURE` variants cause a confirmation dialog to be displayed in the xref:ugvw.adoc#[Wicket viewer].
-
-|xref:rgant.adoc#_rgant-Action_typeOf[`typeOf()`]
-|(none)
-|if the action returns a collection, hints as to the run-time type of the objects within that collection (as a fallback)
-
-|===
-
-
-For example:
-
-[source,java]
-----
-public class ToDoItem {
-    public static class CompletedEvent extends ActionDomainEvent<ToDoItem> { }
-    @Action(
-        command=CommandReification.ENABLED,
-        commandExecuteIn=CommandExecuteIn.FOREGROUND,          // <1>
-        commandPersistence=CommandPersistence.NOT_PERSISTED,   // <2>
-        domainEvent=CompletedEvent.class,
-        hidden = Where.NOWHERE,                                // <3>
-        invokeOn = InvokeOn.OBJECT_ONLY,                       // <4>
-        publishing = Publishing.ENABLED,
-        semantics = SemanticsOf.IDEMPOTENT
-    )
-    public ToDoItem completed() { ... }
-}
-----
-<1> default value, so could be omitted
-<2> default value, so could be omitted
-<3> default value, so could be omitted
-<4> default value, so could be omitted
-
-
-
-
-
-
-include::_rgant-Action_command.adoc[leveloffset=+1]
-include::_rgant-Action_domainEvent.adoc[leveloffset=+1]
-include::_rgant-Action_hidden.adoc[leveloffset=+1]
-include::_rgant-Action_invokeOn.adoc[leveloffset=+1]
-include::_rgant-Action_publishing.adoc[leveloffset=+1]
-include::_rgant-Action_restrictTo.adoc[leveloffset=+1]
-include::_rgant-Action_semantics.adoc[leveloffset=+1]
-include::_rgant-Action_typeOf.adoc[leveloffset=+1]
-
-
-
-

http://git-wip-us.apache.org/repos/asf/isis/blob/2669a971/adocs/documentation/src/main/asciidoc/guides/_rgant-ActionLayout.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rgant-ActionLayout.adoc b/adocs/documentation/src/main/asciidoc/guides/_rgant-ActionLayout.adoc
deleted file mode 100644
index c2537a1..0000000
--- a/adocs/documentation/src/main/asciidoc/guides/_rgant-ActionLayout.adoc
+++ /dev/null
@@ -1,133 +0,0 @@
-[[_rgant-ActionLayout]]
-= `@ActionLayout`
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-:_basedir: ../
-:_imagesdir: images/
-
-
-The `@ActionLayout` annotation applies to actions, collecting together all UI hints within a single annotation.
-
-The table below summarizes the annotation's attributes.
-
-.`@ActionLayout` attributes
-[cols="2,2,4a", options="header"]
-|===
-
-| Attribute
-| Values (default)
-| Description
-
-
-|xref:rgant.adoc#_rgant-ActionLayout_bookmarking[`bookmarking()`]
-|`AS_ROOT`, `NEVER` +
-(`NEVER`)
-|indicates if an action (with safe xref:rgant.adoc#_rgant-Action_semantics[action semantics]) is automatically bookmarked.
-
-
-|xref:rgant.adoc#_rgant-ActionLayout_contributedAs[`contributedAs()`]
-|`AS_BOTH`, `AS_ACTION`, `AS_ASSOCIATION`, `AS_NEITHER` +
-(`AS_BOTH`)
-|for a domain service action that can be contributed, whether to contribute as an action or as an association (ie a property or collection). +
-
-For a domain service action to be contributed, the domain services must have a xref:rgant.adoc#_rgant-DomainService_nature[nature] nature of either `VIEW` or `VIEW_CONTRIBUTIONS_ONLY`, and the action must have xref:rgant.adoc#_rgant-Action_semantics[safe action semantics], and takes a single argument, namely the contributee domain object.
-
-
-|xref:rgant.adoc#_rgant-ActionLayout_cssClass[`cssClass()`]
-|Any string valid as a CSS class
-|an additional CSS class around the HTML that represents for the action, to allow targetted styling in xref:rgcfg.adoc#_rgcfg_application-specific_application-css[`application.css`]. +
-
-Supported by the xref:ugvw.adoc#[Wicket viewer] but currently ignored by the xref:ugvro.adoc#[RestfulObjects viewer].
-
-
-|xref:rgant.adoc#_rgant-ActionLayout_cssClassFa[`cssClassFa()`]
-|Any valid link:http://fortawesome.github.io/Font-Awesome/[Font awesome] icon name
-|specify a font awesome icon for the action's menu link or icon. +
-
-
-|`cssClassFaPosition()`
-|`LEFT`, `RIGHT` +
-(`LEFT`)
-|Positioning of the icon on the button/menu item.
-
-
-|xref:rgant.adoc#_rgant-ActionLayout_describedAs[`describedAs()`]
-|String.
-|provides a short description of the action, eg for rendering as a 'tool tip'.
-
-
-|xref:rgant.adoc#_rgant-ActionLayout_hidden[`hidden()`]
-|`EVERYWHERE`, `NOWHERE` +
-(`NOWHERE`)
-|indicates where (in the UI) the action should be hidden from the user.
-
-
-|xref:rgant.adoc#_rgant-ActionLayout_named[`named()`]
-|String.
-|to override the name inferred from the action's name in code. +
-
-A typical use case is if the desired name is a reserved Java keyword, such as `default` or `package`.
-
-|xref:rgant.adoc#_rgant-ActionLayout_position[`position()`]
-|`BELOW`, `RIGHT`, `PANEL`, `PANEL_DROPDOWN` (`BELOW`)
-|for actions associated (using xref:rgant.adoc#_rgant-MemberOrder[`@MemberOrder#named()`]) with properties, the positioning of the action's button with respect to the property
-
-
-|===
-
-
-For example:
-
-[source,java]
-----
-public class ToDoItems {
-    @Action(semantics=SemanticsOf.SAFE)             // <1>
-    @ActionLayout(
-        bookmarking=BookmarkPolicy.AS_ROOT,
-        cssClass="x-key",
-        cssClassFa="fa-checkbox",
-        describedAs="Mark the todo item as not complete after all",
-        hidden=Where.NOWHERE                        // <2>
-    )
-    @MemberOrder(sequence = "1")
-    public List<ToDoItem> notYetComplete() {
-        ...
-    }
-}
-----
-<1> required for bookmarkable actions
-<2> default value, so could be omitted
-
-
-
-
-As an alternative to using the `@ActionLayout` annotation, a dynamic layout using  xref:ugfun.adoc#_ugfun_object-layout_dynamic[`.layout.json`] file can be specified; for example:
-
-[source,javascript]
-----
-"notYetComplete": {
-    "actionLayout": {
-        "bookmarking": "AS_ROOT",
-        "cssClass": "x-key",
-        "cssClassFa": "fa-checkbox",
-        "describedAs": "Mark the todo item as not complete after all",
-        "hidden": "NOWHERE"
-    }
-}
-----
-
-
-
-include::_rgant-ActionLayout_bookmarking.adoc[leveloffset=+1]
-include::_rgant-ActionLayout_contributedAs.adoc[leveloffset=+1]
-include::_rgant-ActionLayout_cssClass.adoc[leveloffset=+1]
-include::_rgant-ActionLayout_cssClassFa.adoc[leveloffset=+1]
-include::_rgant-ActionLayout_describedAs.adoc[leveloffset=+1]
-include::_rgant-ActionLayout_hidden.adoc[leveloffset=+1]
-include::_rgant-ActionLayout_named.adoc[leveloffset=+1]
-include::_rgant-ActionLayout_position.adoc[leveloffset=+1]
-
-
-
-
-
-

http://git-wip-us.apache.org/repos/asf/isis/blob/2669a971/adocs/documentation/src/main/asciidoc/guides/_rgant-ActionLayout_bookmarking.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rgant-ActionLayout_bookmarking.adoc b/adocs/documentation/src/main/asciidoc/guides/_rgant-ActionLayout_bookmarking.adoc
deleted file mode 100644
index d7d7157..0000000
--- a/adocs/documentation/src/main/asciidoc/guides/_rgant-ActionLayout_bookmarking.adoc
+++ /dev/null
@@ -1,64 +0,0 @@
-[[_rgant-ActionLayout_bookmarking]]
-= `bookmarking()`
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-:_basedir: ../
-:_imagesdir: images/
-
-
-
-The `bookmarking()` attribute indicates if an action (with safe xref:rgant.adoc#_rgant-Action_semantics[action semantics]) is automatically bookmarked. This attribute is also supported for  xref:rgant.adoc#_rgant-DomainObjectLayout_bookmarking[domain objects].
-
-
-
-In the xref:ugvw.adoc#[Wicket viewer], a link to a bookmarked object is shown in the bookmarks panel:
-
-image::{_imagesdir}reference-annotations/ActionLayout/bookmarking.png[width="720px",link="{_imagesdir}reference-annotations/ActionLayout/bookmarking.png"]
-
-[NOTE]
-====
-Note that this screenshot shows an earlier version of the xref:ugvw.adoc#[Wicket viewer] UI (specifically, pre 1.8.0).
-====
-
-[TIP]
-====
-The xref:ugvw.adoc#[Wicket viewer] supports `alt-[` as a shortcut for opening the bookmark panel.  `Esc` will close.
-====
-
-
-For example:
-
-[source,java]
-----
-public class ToDoItems {
-    @Action(semantics=SemanticsOf.SAFE)
-    @ActionLayout(bookmarking=BookmarkPolicy.AS_ROOT)
-    @MemberOrder(sequence = "1")
-    public List<ToDoItem> notYetComplete() {
-        ...
-    }
-}
-----
-
-indicates that the `notYetComplete()` action is bookmarkable.
-
-
-
-[NOTE]
-====
-The enum value `AS_CHILD` has no meaning for actions; it relates only to bookmarked xref:rgant.adoc#_rgant-DomainObject_bookmarking[domain object]s.
-====
-
-
-
-As an alternative to using the annotation, the dynamic xref:ugfun.adoc#_ugfun_object-layout_dynamic[`.layout.json`]
-can be used instead, eg:
-
-[source,javascript]
-----
-"notYetComplete": {
-    "actionLayout": { "bookmarking": "AS_ROOT" }
-}
-----
-
-
-

http://git-wip-us.apache.org/repos/asf/isis/blob/2669a971/adocs/documentation/src/main/asciidoc/guides/_rgant-ActionLayout_contributedAs.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rgant-ActionLayout_contributedAs.adoc b/adocs/documentation/src/main/asciidoc/guides/_rgant-ActionLayout_contributedAs.adoc
deleted file mode 100644
index ce3d5e2..0000000
--- a/adocs/documentation/src/main/asciidoc/guides/_rgant-ActionLayout_contributedAs.adoc
+++ /dev/null
@@ -1,54 +0,0 @@
-[[_rgant-ActionLayout_contributedAs]]
-= `contributedAs()`
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-:_basedir: ../
-:_imagesdir: images/
-
-
-
-For a domain service action that _can_ be contributed, the `contributedAs()` attribute determines how it is contributed: as an action or as an association (ie a property or collection).
-
-The distinction between property or collection is automatic: if the action returns a `java.util.Collection` (or subtype) then the action is contributed as a collection; otherwise it is contributed as a property.
-
-For a domain service action to be contributed, the domain services must have a xref:rgant.adoc#_rgant-DomainService_nature[nature] nature of either `VIEW` or `VIEW_CONTRIBUTIONS_ONLY`, and the action must have xref:rgant.adoc#_rgant-Action_semantics[safe action semantics], and takes a single argument, namely the contributee domain object.
-
-For example:
-
-[source,java]
-----
-@DomainService(nature=NatureOfService.VIEW_CONTRIBUTIONS_ONLY)
-public class CustomerContributions {
-    @Action(semantics=SemanticsOf.SAFE)
-    @ActionLayout(contributedAs=Contributed.AS_ASSOCIATION)
-    public List<Order> mostRecentOrders(Customer customer) { ... }
-    ...
-}
-----
-
-[TIP]
-====
-The `@ActionLayout` is not required if the action does not have safe semantics, or if the action takes more than one argument; in these cases the action can only be contributed _as_ an action.
-====
-
-
-It's also possible to use the attribute to suppress the action completely:
-
-[source,java]
-----
-@DomainService(nature=NatureOfService.VIEW)
-public class OrderContributions {
-    @ActionLayout(contributedAs=Contributed.AS_NEITHER)
-    public void cancel(Order order);
-    ...
-}
-----
-
-In such cases, though, it would probably make more sense to annotate the action as either xref:rgant.adoc#_rgant-Action_hidden[hidden] or indeed xref:rgant.adoc#_rgant-Programmatic[`@Programmatic`].
-
-
-
-[NOTE]
-====
-Unlike other `@ActionLayout` attributes, this attribute _cannot_ be specified dynamically in the `.layout.json` xref:ugfun.adoc#_ugfun_object-layout_dynamic[dynamic layout file] because it relates to the contributor domain service, not the contributee domain object.
-====
-

http://git-wip-us.apache.org/repos/asf/isis/blob/2669a971/adocs/documentation/src/main/asciidoc/guides/_rgant-ActionLayout_cssClass.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rgant-ActionLayout_cssClass.adoc b/adocs/documentation/src/main/asciidoc/guides/_rgant-ActionLayout_cssClass.adoc
deleted file mode 100644
index 50663ba..0000000
--- a/adocs/documentation/src/main/asciidoc/guides/_rgant-ActionLayout_cssClass.adoc
+++ /dev/null
@@ -1,41 +0,0 @@
-[[_rgant-ActionLayout_cssClass]]
-= `cssClass()`
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-:_basedir: ../
-:_imagesdir: images/
-
-
-
-The `cssClass()` attribute can be used to render additional CSS classes in the HTML (a wrapping `<div>`) that represents the action.   xref:rgcfg.adoc#_rgcfg_application-specific_application-css[Application-specific CSS] can then be used to target and adjust the UI representation of that particular element.
-
-This attribute can also be applied to xref:rgant.adoc#_rgant-DomainObjectLayout_cssClass[domain objects], xref:rgant.adoc#_rgant-ViewModelLayout_cssClass[view models],  xref:rgant.adoc#_rgant-PropertyLayout_cssClass[properties],  xref:rgant.adoc#_rgant-CollectionLayout_cssClass[collections] and xref:rgant.adoc#_rgant-ParameterLayout_cssClass[parameters].
-
-
-For example:
-
-[source,java]
-----
-public class ToDoItem {
-    @ActionLayout(cssClass="x-key")
-    public ToDoItem postpone(LocalDate until) { ... }
-    ...
-}
-----
-
-[NOTE]
-====
-The similar xref:rgant.adoc#_rgant-ActionLayout_cssClassFa[`@ActionLayout#cssClassFa()`] annotation attribute is also used as a hint
-to apply CSS, specifically to add http://fortawesome.github.io/Font-Awesome/icons/[Font Awesome icons] on action menu items or buttons.
-====
-
-
-
-As an alternative to using the annotation, the dynamic xref:ugfun.adoc#_ugfun_object-layout_dynamic[`.layout.json`]
-can be used instead, eg:
-
-[source,javascript]
-----
-"postpone": {
-    "actionLayout": { "cssClass": "x-key" }
-}
-----

http://git-wip-us.apache.org/repos/asf/isis/blob/2669a971/adocs/documentation/src/main/asciidoc/guides/_rgant-ActionLayout_cssClassFa.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rgant-ActionLayout_cssClassFa.adoc b/adocs/documentation/src/main/asciidoc/guides/_rgant-ActionLayout_cssClassFa.adoc
deleted file mode 100644
index 97e4640..0000000
--- a/adocs/documentation/src/main/asciidoc/guides/_rgant-ActionLayout_cssClassFa.adoc
+++ /dev/null
@@ -1,59 +0,0 @@
-[[_rgant-ActionLayout_cssClassFa]]
-= `cssClassFa()`
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-:_basedir: ../
-:_imagesdir: images/
-
-
-The `cssClassFa()` attribute is used to specify the name of a link:http://fortawesome.github.io/Font-Awesome/icons/[Font Awesome icon] name, to be rendered on the action's representation as a button or menu item.    The related `cssClassFaPosition()` attribute specifies the positioning of the icon, to the left or the right of the text.
-
-These attributes can also be applied to xref:rgant.adoc#_rgant-DomainObjectLayout_cssClassFa[domain objects] and to xref:rgant.adoc#_rgant-ViewModelLayout_cssClassFa[view models] to specify the object's icon.
-
-
-For example:
-
-[source,java]
-----
-public class ToDoItem {
-    @ActionLayout(
-        cssClassFa="fa-step-backward"
-    )
-    public ToDoItem previous() { ... }
-
-    @ActionLayout(
-        cssClassFa="fa-step-forward",
-        cssClassFaPosition=ActionLayout.CssClassFaPosition.RIGHT
-    )
-    public ToDoItem next() { ... }
-}
-----
-
-There can be multiple "fa-" classes, eg to mirror or rotate the icon. There is no need to include the mandatory `fa` "marker" CSS class; it will be automatically added to the list.  The `fa-` prefix can also be omitted from the class names; it will be prepended to each if required.
-
-
-As an alternative to using the annotation, the dynamic xref:ugfun.adoc#_ugfun_object-layout_dynamic[`.layout.json`]
-can be used instead, eg:
-
-[source,javascript]
-----
-"previous": {
-    "actionLayout": {
-        "cssClassFa": "fa-step-backward",
-        "cssClassFaPosition": "LEFT"
-    }
-},
-"next": {
-    "actionLayout": {
-        "cssClassFa": "fa-step-forward",
-        "cssClassFaPosition": "RIGHT"
-    }
-}
-----
-
-
-
-[NOTE]
-====
-The similar xref:rgant.adoc#_rgant-ActionLayout_cssClass[`@ActionLayout#cssClass()`] annotation attribute is also used as a hint to apply CSS, but for wrapping the representation of an object or object member so that it can be styled in an application-specific way.
-====
-

http://git-wip-us.apache.org/repos/asf/isis/blob/2669a971/adocs/documentation/src/main/asciidoc/guides/_rgant-ActionLayout_describedAs.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rgant-ActionLayout_describedAs.adoc b/adocs/documentation/src/main/asciidoc/guides/_rgant-ActionLayout_describedAs.adoc
deleted file mode 100644
index ff07b6b..0000000
--- a/adocs/documentation/src/main/asciidoc/guides/_rgant-ActionLayout_describedAs.adoc
+++ /dev/null
@@ -1,37 +0,0 @@
-[[_rgant-ActionLayout_describedAs]]
-= `describedAs()`
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-:_basedir: ../
-:_imagesdir: images/
-
-
-
-The `describedAs()` attribute is used to provide a short description of the action to the user.  In the xref:ugvw.adoc#[Wicket viewer] it is displayed as a 'tool tip'.
-
-This attribute can also be specified for xref:rgant.adoc#_rgant-CollectionLayout_describedAs[collections],  xref:rgant.adoc#_rgant-PropertyLayout_describedAs[properties], xref:rgant.adoc#_rgant-ParameterLayout_describedAs[parameters], xref:rgant.adoc#_rgant-DomainObjectLayout_describedAs[domain objects] and xref:rgant.adoc#_rgant-ViewModelLayout_describedAs[view models].
-
-
-For example:
-
-[source,java]
-----
-public class Customer {
-    @ActionLayout(describedAs="Place a repeat order of the last (most recently placed) order")
-    public Order placeRepeatOrder(...) { ... }
-}
-----
-
-
-
-
-As an alternative to using the annotation, the dynamic xref:ugfun.adoc#_ugfun_object-layout_dynamic[`.layout.json`]
-can be used instead, eg:
-
-[source,javascript]
-----
-"postpone": {
-    "actionLayout": { "describedAs": "Place a repeat order of the last (most recently placed) order" }
-}
-----
-
-

http://git-wip-us.apache.org/repos/asf/isis/blob/2669a971/adocs/documentation/src/main/asciidoc/guides/_rgant-ActionLayout_hidden.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rgant-ActionLayout_hidden.adoc b/adocs/documentation/src/main/asciidoc/guides/_rgant-ActionLayout_hidden.adoc
deleted file mode 100644
index 8b24d47..0000000
--- a/adocs/documentation/src/main/asciidoc/guides/_rgant-ActionLayout_hidden.adoc
+++ /dev/null
@@ -1,57 +0,0 @@
-[[_rgant-ActionLayout_hidden]]
-= `hidden()`
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-:_basedir: ../
-:_imagesdir: images/
-
-
-The `hidden()` attribute indicates where (in the UI) the action should be hidden from the user.  This attribute can also be applied to xref:rgant.adoc#_rgant-PropertyLayout_hidden[properties] and xref:rgant.adoc#_rgant-CollectionLayout_hidden[collections].
-
-[TIP]
-====
-It is also possible to use xref:rgant.adoc#_rgant-Action_hidden[`@Action#hidden()`] to hide an action at the domain layer.  Both options are provided with a view that in the future the view-layer semantics may be under the control of (expert) users, whereas domain-layer semantics should never be overridden or modified by the user.
-====
-
-For example:
-
-[source,java]
-----
-public class Customer {
-    @ActionLayout(hidden=Where.EVERYWHERE)
-    public void updateStatus() { ... }
-    ...
-}
-----
-
-The acceptable values for the `where` parameter are:
-
-* `Where.EVERYWHERE` or `Where.ANYWHERE` +
-+
-The action should be hidden at all times.
-
-* `Where.NOWHERE` +
-+
-The action should not be hidden.
-
-
-The other values of the `Where` enum have no meaning for a collection.
-
-
-As an alternative to using the annotation, the dynamic xref:ugfun.adoc#_ugfun_object-layout_dynamic[`.layout.json`]
-can be used instead, eg:
-
-[source,javascript]
-----
-"updateStatus": {
-    "actionLayout": { "hidden": "EVERYWHERE" }
-}
-----
-
-
-[NOTE]
-====
-For actions of domain services the visibility is dependent upon its xref:rgant.adoc#_rgant-DomainService_nature[`@DomainService#nature()`] and also on whether it is contributed (as per  xref:rgant.adoc#_rgant-ActionLayout_contributedAs[`@ActionLayout#contributedAs()`]).
-====
-
-
-

http://git-wip-us.apache.org/repos/asf/isis/blob/2669a971/adocs/documentation/src/main/asciidoc/guides/_rgant-ActionLayout_named.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rgant-ActionLayout_named.adoc b/adocs/documentation/src/main/asciidoc/guides/_rgant-ActionLayout_named.adoc
deleted file mode 100644
index 4a3ea1f..0000000
--- a/adocs/documentation/src/main/asciidoc/guides/_rgant-ActionLayout_named.adoc
+++ /dev/null
@@ -1,45 +0,0 @@
-[[_rgant-ActionLayout_named]]
-= `named()`
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-:_basedir: ../
-:_imagesdir: images/
-
-
-The `named()` attribute explicitly specifies the action's name, overriding the name that would normally be inferred from the Java source code.  This attribute can also be specified for xref:rgant.adoc#_rgant-CollectionLayout_named[collections], xref:rgant.adoc#_rgant-PropertyLayout_named[properties], xref:rgant.adoc#_rgant-ParameterLayout_named[parameters], xref:rgant.adoc#_rgant-DomainObjectLayout_named[domain objects], xref:rgant.adoc#_rgant-ViewModelLayout_named[view models] and xref:rgant.adoc#_rgant-DomainServiceLayout_named[domain services].
-
-[TIP]
-====
-Following the link:http://en.wikipedia.org/wiki/Don%27t_repeat_yourself[don't repeat yourself] principle, we recommend that you only use this attribute when the desired name cannot be used in Java source code.  Examples of that include a name that would be a reserved Java keyword (eg "package"), or a name that has punctuation, eg apostrophes.
-====
-
-
-
-For example:
-
-[source,java]
-----
-public class Customer {
-    @ActionLayout(named="Get credit rating")
-    public CreditRating obtainCreditRating() { ... }
-}
-----
-
-
-As an alternative to using the annotation, the dynamic xref:ugfun.adoc#_ugfun_object-layout_dynamic[`.layout.json`]
-can be used instead, eg:
-
-[source,javascript]
-----
-"obtainCreditRating": {
-    "actionLayout": { "named": "Get credit rating" }
-}
-----
-
-
-[TIP]
-====
-The framework also provides a separate, powerful mechanism for xref:ugbtb.adoc#_ugbtb_i18n[internationalization].
-====
-
-
-

http://git-wip-us.apache.org/repos/asf/isis/blob/2669a971/adocs/documentation/src/main/asciidoc/guides/_rgant-ActionLayout_position.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rgant-ActionLayout_position.adoc b/adocs/documentation/src/main/asciidoc/guides/_rgant-ActionLayout_position.adoc
deleted file mode 100644
index 2338f5e..0000000
--- a/adocs/documentation/src/main/asciidoc/guides/_rgant-ActionLayout_position.adoc
+++ /dev/null
@@ -1,80 +0,0 @@
-[[_rgant-ActionLayout_position]]
-= `position()`
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-:_basedir: ../
-:_imagesdir: images/
-
-
-
-
-
-The `position()` attribute pertains only to actions that have been associated with properties using xref:rgant.adoc#_rgant-MemberOrder[`@MemberOrder#named()`].  For these actions, it specifies the positioning of the action's button with respect to the field representing the object property.
-
-The attribute can take one of four values: `BELOW`, `RIGHT`, `PANEL` or `PANEL_DROPDOWN`.
-
-For example:
-
-[source,java]
-----
-public class Customer {
-
-    @Property(
-        editing=Editing.DISABLED                 // <1>
-    )
-    public CustomerStatus getStatus() { ... }
-    public void setStatus(CustomerStatus customerStatus) { ... }
-
-    @MemberOrder(
-        named="status",                          // <2>
-        sequence="1"
-    )
-    @ActionLayout(
-        named="Update",                          // <3>
-        position=Position.BELOW
-    )
-    public CreditRating updateStatus(Customer ) { ... }
-}
-----
-<1> indicate the property as read-only, such that it can only be updated using an action
-<2> associate the "updateStatus" action with the "status" property
-<3> give the action an abbreviated name, because the fact that the "status" property is to be updated is implied by its positioning
-
-
-The default is `BELOW`, which is rendered (by the xref:ugvw.adoc#[Wicket viewer]) as shown below:
-
-image::{_imagesdir}reference-annotations/ActionLayout/position-BELOW.png[width="720px",link="{_imagesdir}reference-annotations/ActionLayout/position-BELOW.png"]
-
-
-If the action is positioned as `RIGHT`, then the action's button is rendered to the right of the property's field, in a compact drop-down.  This is ideal if there are many actions associated with a property:
-
-image::{_imagesdir}reference-annotations/ActionLayout/position-RIGHT.png[width="720px",link="{_imagesdir}reference-annotations/ActionLayout/position-RIGHT.png"]
-
-
-
-If the action is positioned as `PANEL`, then the action's button is rendered on the header of the panel that contains the property:
-
-image::{_imagesdir}reference-annotations/ActionLayout/position-PANEL.png[width="720px",link="{_imagesdir}reference-annotations/ActionLayout/position-PANEL.png"]
-
-
-
-And finally, if the action is positioned as `PANEL_DROPDOWN`, then the action's button is again rendered on the panel header, but as a drop-down:
-
-
-image::{_imagesdir}reference-annotations/ActionLayout/position-PANEL_DROPDOWN.png[width="720px",link="{_imagesdir}reference-annotations/ActionLayout/position-PANEL_DROPDOWN.png"]
-
-
-
-If there are multiple actions associated with a single property then the positioning can be mix'ed-and-match'ed as required.  If the `PANEL` or `PANEL_DROPDOWN` are used, then (as the screenshots above show) the actions from potentially multiple properties grouped by that panel will be shown together.
-
-
-As an alternative to using the annotation, the dynamic xref:ugfun.adoc#_ugfun_object-layout_dynamic[`.layout.json`]
-can be used instead, eg:
-
-[source,javascript]
-----
-"obtainCreditRating": {
-    "actionLayout": { "named": "Get credit rating" }
-}
-----
-
-The fact that the layout is dynamic (does not require a rebuild/restart) is particularly useful in that the look-n-feel can be easily experimented with and adjusted.
\ No newline at end of file