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 2019/01/06 17:23:08 UTC

[41/51] [partial] isis-site git commit: ISIS-1899: updates site for 1.17.0

http://git-wip-us.apache.org/repos/asf/isis-site/blob/1685fcc5/content/guides/rgant/rgant.html
----------------------------------------------------------------------
diff --git a/content/guides/rgant/rgant.html b/content/guides/rgant/rgant.html
index 42be192..3ef394f 100644
--- a/content/guides/rgant/rgant.html
+++ b/content/guides/rgant/rgant.html
@@ -244,7 +244,7 @@ table.CodeRay td.code>pre{padding:0}
        </div> 
       </form> 
      </div> 
-     <p class="nav navbar-text navbar-right small">v1.16.2</p> 
+     <p class="nav navbar-text navbar-right small">v1.17.0</p> 
     </div> 
    </div> 
   </nav> 
@@ -2406,7 +2406,7 @@ table.CodeRay td.code>pre{padding:0}
            <p>If an appropriate <code>CommandService</code> is configured (for example using (non-ASF) <a href="http://platform.incode.org/modules/spi/command/spi-command.html">Incode Platform’s command</a> module), then the <code>Command</code> itself is persisted.</p> 
           </div> 
           <div class="paragraph"> 
-           <p>By default, actions are invoked in directly in the thread of the invocation. If there is an implementation of <code>BackgroundCommandService</code> (as the (non-ASF) <a href="http://platform.incode.org" target="_blank">Incode Platform</a>'s command module does provide), then this means in turn that the <code>BackgroundService</code> can be used by the domain object code to programmatically create background <code>Command</code>s.</p> 
+           <p>By default, actions are invoked in directly in the thread of the invocation. If there is an implementation of <code>BackgroundCommandService</code> (as the (non-ASF) <a href="http://platform.incode.org" target="_blank" rel="noopener">Incode Platform</a>'s command module does provide), then this means in turn that the <code>BackgroundService</code> can be used by the domain object code to programmatically create background <code>Command</code>s.</p> 
           </div> 
           <div class="admonitionblock note"> 
            <table> 
@@ -3542,7 +3542,7 @@ table.CodeRay td.code>pre{padding:0}
           </div> 
          </div> 
          <div class="sect3"> 
-          <h4 id="__code_commandexecutein_code">3.2.3. <code>commandExecuteIn()</code></h4> 
+          <h4 id="_code_commandexecutein_code">3.2.3. <code>commandExecuteIn()</code></h4> 
           <div class="paragraph"> 
            <p>For persisted commands, the <code>commandExecuteIn()</code> attribute determines whether the <code>Command</code> should be executed in the foreground (the default) or executed in the background.</p> 
           </div> 
@@ -3568,7 +3568,7 @@ table.CodeRay td.code>pre{padding:0}
           </div> 
          </div> 
          <div class="sect3"> 
-          <h4 id="__code_commanddtoprocessor_code">3.2.4. <code>commandDtoProcessor()</code></h4> 
+          <h4 id="_code_commanddtoprocessor_code">3.2.4. <code>commandDtoProcessor()</code></h4> 
           <div class="paragraph"> 
            <p>The <code>commandDtoProcessor()</code> attribute allows an implementation of <code>CommandDtoProcessor</code> to be specified. This interface has the following API:</p> 
           </div> 
@@ -3793,7 +3793,8 @@ table.CodeRay td.code>pre{padding:0}
            <div class="content"> 
             <pre class="CodeRay highlight"><code data-lang="java"><span class="annotation">@DomainService</span>(nature=NatureOfService.DOMAIN)
 <span class="directive">public</span> <span class="type">class</span> <span class="class">SomeSubscriber</span> <span class="directive">extends</span> AbstractSubscriber {
-    <span class="annotation">@com</span>.google.common.eventbus.Subscribe
+    <span class="annotation">@org</span>.axonframework.eventhandling.annotation.EventHandler <span class="comment">// if using axon</span>
+    <span class="annotation">@com</span>.google.common.eventbus.Subscribe                    <span class="comment">// if using guava</span>
     <span class="directive">public</span> <span class="type">void</span> on(ActionDomainEvent ev) {
         ...
     }
@@ -3807,26 +3808,14 @@ table.CodeRay td.code>pre{padding:0}
            <div class="content"> 
             <pre class="CodeRay highlight"><code data-lang="java"><span class="annotation">@DomainService</span>(nature=NatureOfService.DOMAIN)
 <span class="directive">public</span> <span class="type">class</span> <span class="class">SomeSubscriber</span> <span class="directive">extends</span> AbstractSubscriber {
-    <span class="annotation">@com</span>.google.common.eventbus.Subscribe
+    <span class="annotation">@org</span>.axonframework.eventhandling.annotation.EventHandler <span class="comment">// if using axon</span>
+    <span class="annotation">@com</span>.google.common.eventbus.Subscribe                    <span class="comment">// if using guava</span>
     <span class="directive">public</span> <span class="type">void</span> on(ToDoItem.CompletedEvent ev) {
         ...
     }
 }</code></pre> 
            </div> 
           </div> 
-          <div class="admonitionblock tip"> 
-           <table> 
-            <tbody>
-             <tr> 
-              <td class="icon"> <i class="fa icon-tip" title="Tip"></i> </td> 
-              <td class="content"> 
-               <div class="paragraph"> 
-                <p>If the AxonFramework is being used, replace <code>@com.google.common.eventbus.Subscribe</code> with <code>@org.axonframework.eventhandling.annotation.EventHandler</code>.</p> 
-               </div> </td> 
-             </tr> 
-            </tbody>
-           </table> 
-          </div> 
           <div class="paragraph"> 
            <p>The subscriber’s method is called (up to) 5 times:</p> 
           </div> 
@@ -3835,8 +3824,8 @@ table.CodeRay td.code>pre{padding:0}
             <li> <p>whether to veto visibility (hide)</p> </li> 
             <li> <p>whether to veto usability (disable)</p> </li> 
             <li> <p>whether to veto execution (validate)</p> </li> 
-            <li> <p>steps to perform prior to the action being invoked.</p> </li> 
-            <li> <p>steps to perform after the action has been invoked.</p> </li> 
+            <li> <p>steps to perform prior to the action being invoked</p> </li> 
+            <li> <p>steps to perform after the action has been invoked</p> </li> 
            </ul> 
           </div> 
           <div class="paragraph"> 
@@ -3844,8 +3833,8 @@ table.CodeRay td.code>pre{padding:0}
           </div> 
           <div class="listingblock"> 
            <div class="content"> 
-            <pre class="CodeRay highlight"><code data-lang="java"><span class="annotation">@Programmatic</span>
-<span class="annotation">@com</span>.google.common.eventbus.Subscribe
+            <pre class="CodeRay highlight"><code data-lang="java"><span class="annotation">@org</span>.axonframework.eventhandling.annotation.EventHandler <span class="comment">// if using axon</span>
+<span class="annotation">@com</span>.google.common.eventbus.Subscribe                    <span class="comment">// if using guava</span>
 <span class="directive">public</span> <span class="type">void</span> on(ActionDomainEvent ev) {
     <span class="keyword">switch</span>(ev.getEventPhase()) {
         <span class="keyword">case</span> HIDE:
@@ -3884,6 +3873,32 @@ table.CodeRay td.code>pre{padding:0}
           <div class="paragraph"> 
            <p>And, conversely, the framework also provides <code>ActionDomainEvent.Noop</code>; if <code>domainEvent</code> attribute is set to this class, then no event will be posted.</p> 
           </div> 
+          <div class="sect4"> 
+           <h5 id="_class_level_default">Class-level default</h5> 
+           <div class="paragraph"> 
+            <p>Sometimes a subscriber is interested in all of the actions of a given class, though not any individual action. A common use case is to hide or disable all actions for some particular object for some particular user group.</p> 
+           </div> 
+           <div class="paragraph"> 
+            <p>For this use, the default action domain event can be annotated using <code>@DomainObject</code>:</p> 
+           </div> 
+           <div class="listingblock"> 
+            <div class="content"> 
+             <pre class="CodeRay highlight"><code data-lang="java"><span class="annotation">@DomainObject</span>(
+    actionDomainEvent=ToDoItem.ActionDomainEventDefault.class
+)
+<span class="directive">public</span> <span class="type">class</span> <span class="class">ToDoItem</span> {
+    <span class="directive">public</span> <span class="directive">static</span> <span class="type">class</span> <span class="class">ActionDomainEventDefault</span>
+        <span class="directive">extends</span> org.apache.isis.applib.services.eventbus.ActionDomainEvent&lt;<span class="predefined-type">Object</span>&gt; { }
+    ...
+
+    public <span class="type">void</span> updateDescription(<span class="directive">final</span> <span class="predefined-type">String</span> description) {
+        <span class="local-variable">this</span>.description = description;
+    }
+
+}</code></pre> 
+            </div> 
+           </div> 
+          </div> 
          </div> 
          <div class="sect3"> 
           <h4 id="_raising_events_programmatically">3.3.3. Raising events programmatically</h4> 
@@ -4063,7 +4078,7 @@ table.CodeRay td.code>pre{padding:0}
           <p>The <code>publishing()</code> attribute determines whether and how an action invocation is published via the registered implementation of a <a href="../rgsvc/rgsvc.html#_rgsvc_persistence-layer-spi_PublishingService"><code>PublishingService</code></a>) or <a href="../rgsvc/rgsvc.html#_rgsvc_persistence-layer-spi_PublisherService"><code>PublisherService</code></a>. This attribute is also supported for <a href="../rgant/rgant.html#_rgant-DomainObject_publishing">domain objects</a>, where it controls whether changed objects are published as events, and for <a href="../rgant/rgant.html#_rgant-Property_publishing"><code>@Property#publishing()</code></a>, where it controls whether property edits are published as events.</p> 
          </div> 
          <div class="paragraph"> 
-          <p>A common use case is to notify external "downstream" systems of changes in the state of the Isis application. The default value for the attribute is <code>AS_CONFIGURED</code>, meaning that the <a href="../rgcfg/rgcfg.html#_rgcfg_configuring-core">configuration property</a> <code>isis.services.publish.actions</code> is used to determine the whether the action is published:</p> 
+          <p>A common use case is to notify external "downstream" systems of changes in the state of the Apache Isis application. The default value for the attribute is <code>AS_CONFIGURED</code>, meaning that the <a href="../rgcfg/rgcfg.html#_rgcfg_configuring-core">configuration property</a> <code>isis.services.publish.actions</code> is used to determine the whether the action is published:</p> 
          </div> 
          <div class="ulist"> 
           <ul> 
@@ -4109,7 +4124,7 @@ table.CodeRay td.code>pre{padding:0}
           </table> 
          </div> 
          <div class="sect3"> 
-          <h4 id="__code_publishingpayloadfactory_code">3.6.1. <code>publishingPayloadFactory()</code></h4> 
+          <h4 id="_code_publishingpayloadfactory_code">3.6.1. <code>publishingPayloadFactory()</code></h4> 
           <div class="paragraph"> 
            <p>The (optional) related <code>publishingPayloadFactory()</code> specifies the class to use to create the (payload of the) event to be published by the publishing factory.</p> 
           </div> 
@@ -5474,26 +5489,14 @@ WrapperFactory wrapperFactory;</code></pre>
            <div class="content"> 
             <pre class="CodeRay highlight"><code data-lang="java"><span class="annotation">@DomainService</span>(nature=NatureOfService.DOMAIN)
 <span class="directive">public</span> <span class="type">class</span> <span class="class">SomeSubscriber</span> <span class="directive">extends</span> AbstractSubscriber {
-    <span class="annotation">@com</span>.google.common.eventbus.Subscribe
+    <span class="annotation">@org</span>.axonframework.eventhandling.annotation.EventHandler <span class="comment">// if using axon</span>
+    <span class="annotation">@com</span>.google.common.eventbus.Subscribe                    <span class="comment">// if using guava</span>
     <span class="directive">public</span> <span class="type">void</span> on(ToDoItem.DependenciesChangedEvent ev) {
         ...
     }
 }</code></pre> 
            </div> 
           </div> 
-          <div class="admonitionblock tip"> 
-           <table> 
-            <tbody>
-             <tr> 
-              <td class="icon"> <i class="fa icon-tip" title="Tip"></i> </td> 
-              <td class="content"> 
-               <div class="paragraph"> 
-                <p>If the AxonFramework is being used, replace <code>@com.google.common.eventbus.Subscribe</code> with <code>@org.axonframework.eventhandling.annotation.EventHandler</code>.</p> 
-               </div> </td> 
-             </tr> 
-            </tbody>
-           </table> 
-          </div> 
           <div class="paragraph"> 
            <p>The subscriber’s method is called (up to) 5 times:</p> 
           </div> 
@@ -5503,7 +5506,7 @@ WrapperFactory wrapperFactory;</code></pre>
             <li> <p>whether to veto usability (disable)</p> </li> 
             <li> <p>whether to veto execution (validate) the element being added to/removed from the collection</p> </li> 
             <li> <p>steps to perform prior to the collection being added to/removed from</p> </li> 
-            <li> <p>steps to perform after the collection has been added to/removed from.</p> </li> 
+            <li> <p>steps to perform after the collection has been added to/removed from</p> </li> 
            </ul> 
           </div> 
           <div class="paragraph"> 
@@ -5897,7 +5900,7 @@ WrapperFactory wrapperFactory;</code></pre>
               <p>Which view is selected by default, if multiple views are available.</p> 
              </div> 
              <div class="paragraph"> 
-              <p>See the (non-ASF) <a href="http://platform.incode.org" target="_blank">Incode Platform</a> for further Wicket components providing views.</p> 
+              <p>See the (non-ASF) <a href="http://platform.incode.org" target="_blank" rel="noopener">Incode Platform</a> for further Wicket components providing views.</p> 
              </div>
             </div></td> 
           </tr> 
@@ -6086,7 +6089,7 @@ WrapperFactory wrapperFactory;</code></pre>
           </ul>
          </div> 
          <div class="paragraph"> 
-          <p>The <a href="../ugvw/ugvw.html">Wicket viewer</a> allows additional views to be configured to render collections of objects; at the time of writing thesee include the excel, fullcalendar2 and gmap3 provided by the (non-ASF) <a href="http://platform.incode.org" target="_blank">Incode Platform</a>. If the objects to be rendered have the correct "shape", then the appropriate view will be made available. For example, objects with a date can be rendered using <code>calendar</code>; objects with locations can be rendered using <code>map</code>.</p> 
+          <p>The <a href="../ugvw/ugvw.html">Wicket viewer</a> allows additional views to be configured to render collections of objects; at the time of writing thesee include the excel, fullcalendar2 and gmap3 provided by the (non-ASF) <a href="http://platform.incode.org" target="_blank" rel="noopener">Incode Platform</a>. If the objects to be rendered have the correct "shape", then the appropriate view will be made available. For example, objects with a date can be rendered using <code>calendar</code>; objects with locations can be rendered using <code>map</code>.</p> 
          </div> 
          <div class="paragraph"> 
           <p>The <code>defaultView()</code> attribute is used to select which of these views should be used by default for a given collection.</p> 
@@ -6955,7 +6958,7 @@ WrapperFactory wrapperFactory;</code></pre>
           <li> <p>as the value of <code>Bookmark#getObjectType()</code> and in the <code>toString()</code> value of <code>Bookmark</code> (see <a href="../rgsvc/rgsvc.html#_rgsvc_integration-api_BookmarkService"><code>BookmarkService</code></a>)</p> 
            <div class="ulist"> 
             <ul> 
-             <li> <p>and thus in the "table-of-two-halves" pattern, as per the (non-ASF) <a href="http://platform.incode.org" target="_blank">Incode Platform</a>'s poly module</p> </li> 
+             <li> <p>and thus in the "table-of-two-halves" pattern, as per the (non-ASF) <a href="http://platform.incode.org" target="_blank" rel="noopener">Incode Platform</a>'s poly module</p> </li> 
             </ul> 
            </div> </li> 
           <li> <p>in the serialization of <code>OidDto</code> in the <a href="../rgcms/rgcms.html#_rgcms_schema-cmd">command</a> and <a href="../rgcms/rgcms.html#_rgcms_schema-ixn">interaction</a> schemas</p> </li> 
@@ -7382,7 +7385,7 @@ WrapperFactory wrapperFactory;</code></pre>
           </table> 
          </div> 
          <div class="sect3"> 
-          <h4 id="__code_autocompleteaction_code">10.2.1. <code>autoCompleteAction()</code></h4> 
+          <h4 id="_code_autocompleteaction_code">10.2.1. <code>autoCompleteAction()</code></h4> 
           <div class="paragraph"> 
            <p>As noted above, by default the method invoked on the repository is assumed to be called "autoComplete". The optional <code>autoCompleteAction()</code> attribute allows the method on the repository to be overridden.</p> 
           </div> 
@@ -7907,21 +7910,21 @@ WrapperFactory wrapperFactory;</code></pre>
             </div> </li> 
            <li> <p><code>EXTERNAL_ENTITY</code><br></p> 
             <div class="paragraph"> 
-             <p>indicates that the domain objecct is a wrapper/proxy/stub (choose your term) to an entity that is managed by some related external system. For example, the domain object may hold just the URI to a RESTful resource of some third party REST service, or the id of some system accessible over SOAP.<br></p> 
+             <p>indicates that the domain objecct is a wrapper/proxy/stub (choose your term) to an entity that is managed by some related external system. For example, the domain object may hold just the URI to a RESTful resource of some third party REST service, or the id of some system accessible over SOAP.</p> 
             </div> 
             <div class="paragraph"> 
              <p>The identity of an external entity is determined solely by the state of entity’s properties. The framework will automatically recreate the domain object each time it is interacted with.</p> 
             </div> </li> 
            <li> <p><code>INMEMORY_ENTITY</code><br></p> 
             <div class="paragraph"> 
-             <p>indicates that the domain object is a wrapper/proxy/stub to a "synthetic" entity, for example one that is constructed from some sort of internal memory data structure.<br></p> 
+             <p>indicates that the domain object is a wrapper/proxy/stub to a "synthetic" entity, for example one that is constructed from some sort of internal memory data structure.</p> 
             </div> 
             <div class="paragraph"> 
              <p>The identity of an inmemory entity is determined solely by the state of entity’s properties. The framework will automatically recreate the domain object each time it is interacted with.</p> 
             </div> </li> 
            <li> <p><code>MIXIN</code><br></p> 
             <div class="paragraph"> 
-             <p>indicates that the domain object is part of the domain layer, and is contributing behaviour to objects of some other type as a mixin (also known as a trait).<br></p> 
+             <p>indicates that the domain object is part of the domain layer, and is contributing behaviour to objects of some other type as a mixin (also known as a trait).</p> 
             </div> 
             <div class="paragraph"> 
              <p>Equivalent to annotating with <a href="../rgant/rgant.html#_rgant-Mixin"><code>@Mixin</code></a>. For further discussion on using mixins, see <a href="../ugfun/ugfun.html#_ugfun_building-blocks_types-of-domain-objects_mixins">mixins</a> in the user guide.</p> 
@@ -8223,7 +8226,7 @@ WrapperFactory wrapperFactory;</code></pre>
            <li> <p>as the value of <code>Bookmark#getObjectType()</code> and in the <code>toString()</code> value of <code>Bookmark</code> (see <a href="../rgsvc/rgsvc.html#_rgsvc_integration-api_BookmarkService"><code>BookmarkService</code></a>)</p> 
             <div class="ulist"> 
              <ul> 
-              <li> <p>and thus in the "table-of-two-halves" pattern, as per the (non-ASF) <a href="http://platform.incode.org" target="_blank">Incode Platform</a>'s poly module</p> </li> 
+              <li> <p>and thus in the "table-of-two-halves" pattern, as per the (non-ASF) <a href="http://platform.incode.org" target="_blank" rel="noopener">Incode Platform</a>'s poly module</p> </li> 
              </ul> 
             </div> </li> 
            <li> <p>in the serialization of <code>OidDto</code> in the <a href="../rgcms/rgcms.html#_rgcms_schema-cmd">command</a> and <a href="../rgcms/rgcms.html#_rgcms_schema-ixn">interaction</a> schemas</p> </li> 
@@ -8311,7 +8314,7 @@ WrapperFactory wrapperFactory;</code></pre>
           <p>The <code>publishing()</code> attribute determines whether and how a modified object instance is published via the registered implementation of a <a href="../rgsvc/rgsvc.html#_rgsvc_persistence-layer-spi_PublishingService"><code>PublishingService</code></a>) or <a href="../rgsvc/rgsvc.html#_rgsvc_persistence-layer-spi_PublisherService"><code>PublisherService</code></a>. This attribute is also supported for <a href="../rgant/rgant.html#_rgant-Action_publishing">actions</a>, where it controls whether action invocations are published as events, and for <a href="../rgant/rgant.html#_rgant-Property_publishing"><code>@Property#publishing()</code></a>, where it controls whether property edits are published as events.</p> 
          </div> 
          <div class="paragraph"> 
-          <p>A common use case is to notify external "downstream" systems of changes in the state of the Isis application.</p> 
+          <p>A common use case is to notify external "downstream" systems of changes in the state of the Apache Isis application.</p> 
          </div> 
          <div class="paragraph"> 
           <p>The default value for the attribute is <code>AS_CONFIGURED</code>, meaning that the <a href="../rgcfg/rgcfg.html#_rgcfg_configuring-core">configuration property</a> <code>isis.services.publish.objects</code> is used to determine the whether the action is published:</p> 
@@ -8358,7 +8361,7 @@ WrapperFactory wrapperFactory;</code></pre>
           </table> 
          </div> 
          <div class="sect3"> 
-          <h4 id="__code_publishingpayloadfactory_code_2">10.12.1. <code>publishingPayloadFactory()</code></h4> 
+          <h4 id="_code_publishingpayloadfactory_code_2">10.12.1. <code>publishingPayloadFactory()</code></h4> 
           <div class="paragraph"> 
            <p>The (optional) related <code>publishingPayloadFactory()</code> specifies the class to use to create the (payload of the) event to be published by the publishing factory.</p> 
           </div> 
@@ -9799,7 +9802,7 @@ WrapperFactory wrapperFactory;</code></pre>
           </ul> 
          </div> 
          <div class="paragraph"> 
-          <p>The actual class name of the domain service is only rendered for the <code>VIEW</code>, <code>VIEW_MENU_ONLY</code> and <code>VIEW_REST_ONLY</code> natures. Thus, you might also want to adopt naming conventions for your domain classes so you can infer the nature from the class. For example, the naming convention adopted (by and large) by the (non-ASF) <a href="http://platform.incode.org" target="_blank">Incode Platform</a> is <code>ProgrammaticServices</code> or <code>Repository</code> as a suffix for <code>DOMAIN</code> services, and <code>Contributions</code> as a suffix for <code>VIEW_CONTRIBUTIONS_ONLY</code> services.</p> 
+          <p>The actual class name of the domain service is only rendered for the <code>VIEW</code>, <code>VIEW_MENU_ONLY</code> and <code>VIEW_REST_ONLY</code> natures. Thus, you might also want to adopt naming conventions for your domain classes so you can infer the nature from the class. For example, the naming convention adopted (by and large) by the (non-ASF) <a href="http://platform.incode.org" target="_blank" rel="noopener">Incode Platform</a> is <code>ProgrammaticServices</code> or <code>Repository</code> as a suffix for <code>DOMAIN</code> services, and <code>Contributions</code> as a suffix for <code>VIEW_CONTRIBUTIONS_ONLY</code> services.</p> 
          </div> 
          <div class="paragraph"> 
           <p>For example:</p> 
@@ -10589,7 +10592,7 @@ WrapperFactory wrapperFactory;</code></pre>
              <td class="icon"> <i class="fa icon-note" title="Note"></i> </td> 
              <td class="content"> 
               <div class="paragraph"> 
-               <p>An alternative and almost equivalent design would be to publish an event using the <a href="../rgsvc/rgsvc.html#_rgsvc_core-domain-api_EventBusService"><code>EventBusService</code></a> and implement the domain services as subscribers to the event. This alternative design is used in the (non-ASF) <a href="http://platform.incode.org" target="_blank">Incode Platform</a>'s poly module, for example.</p> 
+               <p>An alternative and almost equivalent design would be to publish an event using the <a href="../rgsvc/rgsvc.html#_rgsvc_core-domain-api_EventBusService"><code>EventBusService</code></a> and implement the domain services as subscribers to the event. This alternative design is used in the (non-ASF) <a href="http://platform.incode.org" target="_blank" rel="noopener">Incode Platform</a>'s poly module, for example.</p> 
               </div> </td> 
             </tr> 
            </tbody>
@@ -11188,7 +11191,7 @@ repositoryService.persist(cust);</code></pre>
             </tr> 
             <tr> 
              <td><i class="conum" data-value="2"></i><b>2</b></td> 
-             <td>the <code>@ParameterLayout(named=…​)</code> attribute is required for Java 7; for Java 8 it can be omitted if the (non-ASF) <a href="http://platform.incode.org" target="_blank">Incode Platform</a>'s paraname8 metamodel extension is used.</td> 
+             <td>the <code>@ParameterLayout(named=…​)</code> attribute is required for Java 7; for Java 8 it can be omitted if the (non-ASF) <a href="http://platform.incode.org" target="_blank" rel="noopener">Incode Platform</a>'s paraname8 metamodel extension is used.</td> 
             </tr> 
            </tbody>
           </table> 
@@ -11232,7 +11235,7 @@ repositoryService.persist(cust);</code></pre>
            <tbody>
             <tr> 
              <td><i class="conum" data-value="1"></i><b>1</b></td> 
-             <td>the <code>@ParameterLayout(named=…​)</code> attribute is required for Java 7; for Java 8 it can be omitted if the (non-ASF) <a href="http://platform.incode.org" target="_blank">Incode Platform</a>'s paraname8 metamodel extension is used.</td> 
+             <td>the <code>@ParameterLayout(named=…​)</code> attribute is required for Java 7; for Java 8 it can be omitted if the (non-ASF) <a href="http://platform.incode.org" target="_blank" rel="noopener">Incode Platform</a>'s paraname8 metamodel extension is used.</td> 
             </tr> 
            </tbody>
           </table> 
@@ -11813,7 +11816,7 @@ repositoryService.persist(cust);</code></pre>
           <p>The <code>named()</code> attribute (or the <a href="../rgant/rgant.html#_rgant-aaa_deprecated">deprecated <code>@Named</code></a> annotation) is therefore often required to specify the parameter name.</p> 
          </div> 
          <div class="paragraph"> 
-          <p>As of Java 8, the Java reflection API has been extended. The (non-ASF) <a href="http://platform.incode.org" target="_blank">Incode Platform</a>'s paraname8 metamodel extension provides support for this. Note that your application must (obviously) be running on Java 8, and be compiled with the <code>-parameters</code> compile flag for javac.</p> 
+          <p>As of Java 8, the Java reflection API has been extended. The (non-ASF) <a href="http://platform.incode.org" target="_blank" rel="noopener">Incode Platform</a>'s paraname8 metamodel extension provides support for this. Note that your application must (obviously) be running on Java 8, and be compiled with the <code>-parameters</code> compile flag for javac.</p> 
          </div> 
          <div class="paragraph"> 
           <p>By default the name is HTML escaped. To allow HTML markup, set the related <code>namedEscaped()</code> attribute to <code>false</code>.</p> 
@@ -11985,7 +11988,7 @@ repositoryService.persist(cust);</code></pre>
           <li> <p>as the value of <code>Bookmark#getObjectType()</code> and in the <code>toString()</code> value of <code>Bookmark</code> (see <a href="../rgsvc/rgsvc.html#_rgsvc_integration-api_BookmarkService"><code>BookmarkService</code></a>)</p> 
            <div class="ulist"> 
             <ul> 
-             <li> <p>and thus in the "table-of-two-halves" pattern, as per the (non-ASF) <a href="http://platform.incode.org" target="_blank">Incode Platform</a>'s poly module</p> </li> 
+             <li> <p>and thus in the "table-of-two-halves" pattern, as per the (non-ASF) <a href="http://platform.incode.org" target="_blank" rel="noopener">Incode Platform</a>'s poly module</p> </li> 
             </ul> 
            </div> </li> 
           <li> <p>in the serialization of <code>OidDto</code> in the <a href="../rgcms/rgcms.html#_rgcms_schema-cmd">command</a> and <a href="../rgcms/rgcms.html#_rgcms_schema-ixn">interaction</a> schemas</p> </li> 
@@ -12608,7 +12611,7 @@ repositoryService.persist(cust);</code></pre>
            <p>If an appropriate <code>CommandService</code> is configured (for example using (non-ASF) <a href="http://platform.incode.org/modules/spi/command/spi-command.html">Incode Platform’s command</a> module), then the <code>Command</code> itself is persisted.</p> 
           </div> 
           <div class="paragraph"> 
-           <p>By default, actions are invoked in directly in the thread of the invocation. If there is an implementation of <code>BackgroundCommandService</code> (as the (non-ASF) <a href="http://platform.incode.org" target="_blank">Incode Platform</a>'s command module does provide), then this means in turn that the <code>BackgroundService</code> can be used by the domain object code to programmatically create background <code>Command</code>s.</p> 
+           <p>By default, actions are invoked in directly in the thread of the invocation. If there is an implementation of <code>BackgroundCommandService</code> (as the (non-ASF) <a href="http://platform.incode.org" target="_blank" rel="noopener">Incode Platform</a>'s command module does provide), then this means in turn that the <code>BackgroundService</code> can be used by the domain object code to programmatically create background <code>Command</code>s.</p> 
           </div> 
           <div class="admonitionblock note"> 
            <table> 
@@ -13319,7 +13322,7 @@ repositoryService.persist(cust);</code></pre>
           </div> 
          </div> 
          <div class="sect3"> 
-          <h4 id="__code_commandexecutein_code_2">30.1.3. <code>commandExecuteIn()</code></h4> 
+          <h4 id="_code_commandexecutein_code_2">30.1.3. <code>commandExecuteIn()</code></h4> 
           <div class="paragraph"> 
            <p>For persisted commands, the <code>commandExecuteIn()</code> attribute determines whether the <code>Command</code> should be executed in the foreground (the default) or executed in the background.</p> 
           </div> 
@@ -13346,7 +13349,7 @@ repositoryService.persist(cust);</code></pre>
           </div> 
          </div> 
          <div class="sect3"> 
-          <h4 id="__code_commanddtoprocessor_code_2">30.1.4. <code>commandDtoProcessor()</code></h4> 
+          <h4 id="_code_commanddtoprocessor_code_2">30.1.4. <code>commandDtoProcessor()</code></h4> 
           <div class="paragraph"> 
            <p>The <code>commandDtoProcessor()</code> attribute allows an implementation of <code>CommandDtoProcessor</code> to be specified. This interface has the following API:</p> 
           </div> 
@@ -13527,26 +13530,14 @@ repositoryService.persist(cust);</code></pre>
            <div class="content"> 
             <pre class="CodeRay highlight"><code data-lang="java"><span class="annotation">@DomainService</span>(nature=NatureOfService.DOMAIN)
 <span class="directive">public</span> <span class="type">class</span> <span class="class">SomeSubscriber</span> <span class="directive">extends</span> AbstractSubscriber {
-    <span class="annotation">@com</span>.google.common.eventbus.Subscribe
+    <span class="annotation">@org</span>.axonframework.eventhandling.annotation.EventHandler <span class="comment">// if using axon</span>
+    <span class="annotation">@com</span>.google.common.eventbus.Subscribe                    <span class="comment">// if using guava</span>
     <span class="directive">public</span> <span class="type">void</span> on(ToDoItem.DueByChangedEvent ev) {
         ...
     }
 }</code></pre> 
            </div> 
           </div> 
-          <div class="admonitionblock tip"> 
-           <table> 
-            <tbody>
-             <tr> 
-              <td class="icon"> <i class="fa icon-tip" title="Tip"></i> </td> 
-              <td class="content"> 
-               <div class="paragraph"> 
-                <p>If the AxonFramework is being used, replace <code>@com.google.common.eventbus.Subscribe</code> with <code>@org.axonframework.eventhandling.annotation.EventHandler</code>.</p> 
-               </div> </td> 
-             </tr> 
-            </tbody>
-           </table> 
-          </div> 
           <div class="paragraph"> 
            <p>The subscriber’s method is called (up to) 5 times:</p> 
           </div>