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/08/06 09:37:23 UTC

[1/3] isis-site git commit: ISIS-1521: minor updates to release process

Repository: isis-site
Updated Branches:
  refs/heads/asf-site cc36a9b97 -> 3921d6e7f


http://git-wip-us.apache.org/repos/asf/isis-site/blob/3921d6e7/content/guides/cgcom/cgcom.html
----------------------------------------------------------------------
diff --git a/content/guides/cgcom/cgcom.html b/content/guides/cgcom/cgcom.html
index ffd8a0d..d9e095a 100644
--- a/content/guides/cgcom/cgcom.html
+++ b/content/guides/cgcom/cgcom.html
@@ -1313,7 +1313,7 @@ mvn -pl webapp jetty:run              # runs as mvn jetty plugin</code></pre>
           </div> 
           <div class="listingblock"> 
            <div class="content"> 
-            <pre class="CodeRay highlight"><code data-lang="bash">cd ../example/application/helloworld</code></pre> 
+            <pre class="CodeRay highlight"><code data-lang="bash">cd ../../../example/application/helloworld</code></pre> 
            </div> 
           </div> 
           <div class="sect4"> 
@@ -1599,6 +1599,7 @@ mvn jetty:run</code></pre>
           <div class="content"> 
            <pre class="CodeRay highlight"><code>git push origin refs/tags/isis-$ISISREL:refs/tags/isis-$ISISREL-$ISISRC
 git push origin refs/tags/simpleapp-archetype-$ISISREL:refs/tags/simpleapp-archetype-$ISISREL-$ISISRC
+git push origin refs/tags/helloworld-archetype-$ISISREL:refs/tags/helloworld-archetype-$ISISREL-$ISISRC
 git fetch</code></pre> 
           </div> 
          </div> 
@@ -1609,7 +1610,7 @@ git fetch</code></pre>
              <td class="icon"> <i class="fa icon-note" title="Note"></i> </td> 
              <td class="content"> 
               <div class="paragraph"> 
-               <p>The remote tag isn’t visible locally but can be seen <a href="https://git-wip-us.apache.org/repos/asf/isis/repo?p=isis.git;a=summary">online</a>.</p> 
+               <p>The remote tags aren’t visible locally but can be seen <a href="https://git-wip-us.apache.org/repos/asf/isis/repo?p=isis.git;a=summary">online</a>.</p> 
               </div> </td> 
             </tr> 
            </tbody>
@@ -1656,7 +1657,7 @@ The source code artifacts have been uploaded to staging repositories on reposito
 
 For each zip there is a corresponding signature file (append .asc to the zip's url).
 
-In the source code repo the code has been tagged as isis-1.15.0-RC1 and simpleapp-archetype-1.15.0-RC1; see https://git-wip-us.apache.org/repos/asf?p=isis.git
+In the source code repo the code has been tagged as isis-1.15.0-RC1, helloworld-archetype-1.15.0-RC1 and simpleapp-archetype-1.15.0-RC1; see https://git-wip-us.apache.org/repos/asf?p=isis.git
 
 For instructions on how to verify the release (build from binaries and/or use in Maven directly), see http://isis.apache.org/guides/cgcom.html#_cgcom_verifying-releases
 

http://git-wip-us.apache.org/repos/asf/isis-site/blob/3921d6e7/content/guides/cgcom/cgcom.pdf
----------------------------------------------------------------------
diff --git a/content/guides/cgcom/cgcom.pdf b/content/guides/cgcom/cgcom.pdf
index a9efe85..d3992c5 100644
--- a/content/guides/cgcom/cgcom.pdf
+++ b/content/guides/cgcom/cgcom.pdf
@@ -4,8 +4,8 @@
 << /Title (Committers' Guide)
 /Creator (Asciidoctor PDF 1.5.0.alpha.11, based on Prawn 1.3.0)
 /Producer (Asciidoctor PDF 1.5.0.alpha.11, based on Prawn 1.3.0)
-/CreationDate (D:20170805062117+01'00')
-/ModDate (D:20170805062117+01'00')
+/CreationDate (D:20170806103244+01'00')
+/ModDate (D:20170806103244+01'00')
 >>
 endobj
 2 0 obj
@@ -8377,7 +8377,7 @@ ET
 BT
 108.74000000000001 753.585 Td
 /F4.0 11 Tf
-<312e31362e302d534e415053484f54> Tj
+<312e31352e302d534e415053484f54> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -14671,7 +14671,7 @@ endobj
 [123 0 R /XYZ 0 258.27000000000027 null]
 endobj
 128 0 obj
-<< /Length 10315
+<< /Length 10327
 >>
 stream
 q
@@ -15176,7 +15176,7 @@ Q
 BT
 59.24 242.12500000000003 Td
 /F4.0 11 Tf
-<6364202e2e2f6578616d706c652f6170706c69636174696f6e2f68656c6c6f776f726c64> Tj
+<6364202e2e2f2e2e2f2e2e2f6578616d706c652f6170706c69636174696f6e2f68656c6c6f776f726c64> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -19701,7 +19701,7 @@ J
>
 endstream
 endobj
 169 0 obj
-<< /Length 6082
+<< /Length 6592
 >>
 stream
 q
@@ -19880,10 +19880,10 @@ q
 52.240 233.689 m
 543.040 233.689 l
 545.249 233.689 547.040 231.898 547.040 229.689 c
-547.040 156.729 l
-547.040 154.520 545.249 152.729 543.040 152.729 c
-52.240 152.729 l
-50.031 152.729 48.240 154.520 48.240 156.729 c
+547.040 127.249 l
+547.040 125.040 545.249 123.249 543.040 123.249 c
+52.240 123.249 l
+50.031 123.249 48.240 125.040 48.240 127.249 c
 48.240 229.689 l
 48.240 231.898 50.031 233.689 52.240 233.689 c
 h
@@ -19893,10 +19893,10 @@ f
 52.240 233.689 m
 543.040 233.689 l
 545.249 233.689 547.040 231.898 547.040 229.689 c
-547.040 156.729 l
-547.040 154.520 545.249 152.729 543.040 152.729 c
-52.240 152.729 l
-50.031 152.729 48.240 154.520 48.240 156.729 c
+547.040 127.249 l
+547.040 125.040 545.249 123.249 543.040 123.249 c
+52.240 123.249 l
+50.031 123.249 48.240 125.040 48.240 127.249 c
 48.240 229.689 l
 48.240 231.898 50.031 233.689 52.240 233.689 c
 h
@@ -19941,6 +19941,28 @@ ET
 BT
 59.24000000000001 166.6437580853815 Td
 /F4.0 11 Tf
+<6769742070757368206f726967696e20726566732f746167732f68656c6c6f776f726c642d6172636865747970652d244953495352454c3a726566732f746167732f68656c6c6f776f726c642d> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+59.24000000000001 151.90375808538153 Td
+/F4.0 11 Tf
+<6172636865747970652d244953495352454c2d24495349535243> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+59.24000000000001 137.16375808538152 Td
+/F4.0 11 Tf
 <676974206665746368> Tj
 ET
 
@@ -19949,8 +19971,8 @@ ET
 q
 0.5 w
 0.933 0.933 0.933 SCN
-113.807 116.949 m
-113.807 140.729 l
+113.807 87.469 m
+113.807 111.249 l
 S
 Q
 0.098 0.251 0.486 scn
@@ -19961,7 +19983,7 @@ Q
 0.098 0.251 0.486 SCN
 
 BT
-77.16783333333333 120.61625808538153 Td
+77.16783333333333 91.13625808538151 Td
 /F3.1 23 Tf
 <21> Tj
 ET
@@ -19972,9 +19994,9 @@ ET
 0.200 0.200 0.200 SCN
 
 BT
-125.80666666666667 124.76475808538152 Td
+125.80666666666667 95.2847580853815 Td
 /F1.0 10.5 Tf
-<5468652072656d6f7465207461672069736ed5742076697369626c65206c6f63616c6c79206275742063616e206265207365656e20> Tj
+<5468652072656d6f74652074616773206172656ed5742076697369626c65206c6f63616c6c79206275742063616e206265207365656e20> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -19983,7 +20005,7 @@ ET
 0.259 0.545 0.792 SCN
 
 BT
-379.03516666666667 124.76475808538152 Td
+392.1496666666667 95.2847580853815 Td
 /F1.0 10.5 Tf
 <6f6e6c696e65> Tj
 ET
@@ -19994,7 +20016,7 @@ ET
 0.200 0.200 0.200 SCN
 
 BT
-410.8606666666667 124.76475808538152 Td
+423.97516666666667 95.2847580853815 Td
 /F1.0 10.5 Tf
 <2e> Tj
 ET
@@ -20075,7 +20097,7 @@ endobj
 /URI (https://git-wip-us.apache.org/repos/asf/isis/repo?p=isis.git;a=summary)
 >>
 /Subtype /Link
-/Rect [379.03516666666667 121.69875808538151 410.8606666666667 135.97875808538151]
+/Rect [392.1496666666667 92.2187580853815 423.97516666666667 106.4987580853815]
 /Type /Annot
 >>
 endobj
@@ -20280,7 +20302,7 @@ endobj
 [176 0 R /XYZ 0 715.0500000000001 null]
 endobj
 179 0 obj
-<< /Length 9410
+<< /Length 9617
 >>
 stream
 q
@@ -20290,10 +20312,10 @@ q
 52.240 805.890 m
 543.040 805.890 l
 545.249 805.890 547.040 804.099 547.040 801.890 c
-547.040 316.210 l
-547.040 314.001 545.249 312.210 543.040 312.210 c
-52.240 312.210 l
-50.031 312.210 48.240 314.001 48.240 316.210 c
+547.040 301.470 l
+547.040 299.261 545.249 297.470 543.040 297.470 c
+52.240 297.470 l
+50.031 297.470 48.240 299.261 48.240 301.470 c
 48.240 801.890 l
 48.240 804.099 50.031 805.890 52.240 805.890 c
 h
@@ -20304,10 +20326,10 @@ f
 52.240 805.890 m
 543.040 805.890 l
 545.249 805.890 547.040 804.099 547.040 801.890 c
-547.040 316.210 l
-547.040 314.001 545.249 312.210 543.040 312.210 c
-52.240 312.210 l
-50.031 312.210 48.240 314.001 48.240 316.210 c
+547.040 301.470 l
+547.040 299.261 545.249 297.470 543.040 297.470 c
+52.240 297.470 l
+50.031 297.470 48.240 299.261 48.240 301.470 c
 48.240 801.890 l
 48.240 804.099 50.031 805.890 52.240 805.890 c
 h
@@ -20486,7 +20508,7 @@ ET
 BT
 59.24 488.26499999999993 Td
 /F4.0 11 Tf
-<496e2074686520736f7572636520636f6465207265706f2074686520636f646520686173206265656e2074616767656420617320697369732d312e31352e302d52433120616e642073696d706c656170702d> Tj
+<496e2074686520736f7572636520636f6465207265706f2074686520636f646520686173206265656e2074616767656420617320697369732d312e31352e302d5243312c2068656c6c6f776f726c642d> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -20497,7 +20519,7 @@ ET
 BT
 59.24 473.5249999999999 Td
 /F4.0 11 Tf
-<6172636865747970652d312e31352e302d5243313b207365652068747470733a2f2f6769742d7769702d75732e6170616368652e6f72672f7265706f732f6173663f703d697369732e676974> Tj
+<6172636865747970652d312e31352e302d52433120616e642073696d706c656170702d6172636865747970652d312e31352e302d5243313b207365652068747470733a2f2f6769742d7769702d> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -20506,9 +20528,9 @@ ET
 0.200 0.200 0.200 SCN
 
 BT
-59.24 444.0449999999999 Td
+59.24 458.7849999999999 Td
 /F4.0 11 Tf
-<466f7220696e737472756374696f6e73206f6e20686f7720746f20766572696679207468652072656c6561736520286275696c642066726f6d2062696e617269657320616e642f6f722075736520696e204d6176656e> Tj
+<75732e6170616368652e6f72672f7265706f732f6173663f703d697369732e676974> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -20519,6 +20541,17 @@ ET
 BT
 59.24 429.3049999999999 Td
 /F4.0 11 Tf
+<466f7220696e737472756374696f6e73206f6e20686f7720746f20766572696679207468652072656c6561736520286275696c642066726f6d2062696e617269657320616e642f6f722075736520696e204d6176656e> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+59.24 414.5649999999999 Td
+/F4.0 11 Tf
 <6469726563746c79292c2073656520687474703a2f2f697369732e6170616368652e6f72672f6775696465732f6367636f6d2e68746d6c235f6367636f6d5f766572696679696e672d72656c6561736573> Tj
 ET
 
@@ -20528,7 +20561,7 @@ ET
 0.200 0.200 0.200 SCN
 
 BT
-59.24 399.8249999999999 Td
+59.24 385.08499999999987 Td
 /F4.0 11 Tf
 <506c6561736520766572696679207468652072656c6561736520616e64206361737420796f757220766f74652e202054686520766f74652077696c6c206265206f70656e20666f722061206d696e696d756d206f66> Tj
 ET
@@ -20539,7 +20572,7 @@ ET
 0.200 0.200 0.200 SCN
 
 BT
-59.24 385.08499999999987 Td
+59.24 370.34499999999986 Td
 /F4.0 11 Tf
 <373220686f7572732e> Tj
 ET
@@ -20550,7 +20583,7 @@ ET
 0.200 0.200 0.200 SCN
 
 BT
-59.24 355.60499999999985 Td
+59.24 340.86499999999984 Td
 /F4.0 11 Tf
 <5b205d202b31> Tj
 ET
@@ -20561,7 +20594,7 @@ ET
 0.200 0.200 0.200 SCN
 
 BT
-59.24 340.86499999999984 Td
+59.24 326.12499999999983 Td
 /F4.0 11 Tf
 <5b205d202030> Tj
 ET
@@ -20572,7 +20605,7 @@ ET
 0.200 0.200 0.200 SCN
 
 BT
-59.24 326.12499999999983 Td
+59.24 311.3849999999998 Td
 /F4.0 11 Tf
 <5b205d202d31> Tj
 ET
@@ -20583,7 +20616,7 @@ ET
 0.200 0.200 0.200 SCN
 
 BT
-48.24 288.2459999999998 Td
+48.24 273.5059999999998 Td
 /F1.0 10.5 Tf
 <52656d656d62657220746f207570646174653a> Tj
 ET
@@ -20596,7 +20629,7 @@ ET
 0.200 0.200 0.200 SCN
 
 BT
-56.88050000000001 260.46599999999984 Td
+56.88050000000001 245.72599999999983 Td
 /F1.0 10.5 Tf
 <a5> Tj
 ET
@@ -20609,7 +20642,7 @@ ET
 0.200 0.200 0.200 SCN
 
 BT
-66.24000000000001 260.46599999999984 Td
+66.24000000000001 245.72599999999983 Td
 /F1.0 10.5 Tf
 <7468652076657273696f6e206e756d6265722028312e31352e30206f7220776861746576657229> Tj
 ET
@@ -20622,7 +20655,7 @@ ET
 0.200 0.200 0.200 SCN
 
 BT
-56.88050000000001 238.68599999999986 Td
+56.88050000000001 223.94599999999983 Td
 /F1.0 10.5 Tf
 <a5> Tj
 ET
@@ -20635,7 +20668,7 @@ ET
 0.200 0.200 0.200 SCN
 
 BT
-66.24000000000001 238.68599999999986 Td
+66.24000000000001 223.94599999999983 Td
 /F1.0 10.5 Tf
 <7468652072656c656173652063616e646964617465206e756d6265722028> Tj
 ET
@@ -20646,7 +20679,7 @@ ET
 0.694 0.129 0.275 SCN
 
 BT
-222.0285 238.68599999999986 Td
+222.0285 223.94599999999983 Td
 /F4.0 10.5 Tf
 <524331> Tj
 ET
@@ -20657,7 +20690,7 @@ ET
 0.200 0.200 0.200 SCN
 
 BT
-237.7785 238.68599999999986 Td
+237.7785 223.94599999999983 Td
 /F1.0 10.5 Tf
 <206f7220776861746576657229> Tj
 ET
@@ -20670,7 +20703,7 @@ ET
 0.200 0.200 0.200 SCN
 
 BT
-56.88050000000001 216.90599999999986 Td
+56.88050000000001 202.16599999999983 Td
 /F1.0 10.5 Tf
 <a5> Tj
 ET
@@ -20683,7 +20716,7 @@ ET
 0.200 0.200 0.200 SCN
 
 BT
-66.24000000000001 216.90599999999986 Td
+66.24000000000001 202.16599999999983 Td
 /F1.0 10.5 Tf
 [<746865207265706f7369746f72792069642c2061732070726f76696465642062> 20.01953125 <79204e65787573206561726c6965722028>] TJ
 ET
@@ -20694,7 +20727,7 @@ ET
 0.694 0.129 0.275 SCN
 
 BT
-304.642294921875 216.90599999999986 Td
+304.642294921875 202.16599999999983 Td
 /F4.0 10.5 Tf
 <6f7267617061636865697369732d31307878> Tj
 ET
@@ -20705,7 +20738,7 @@ ET
 0.200 0.200 0.200 SCN
 
 BT
-399.142294921875 216.90599999999986 Td
+399.142294921875 202.16599999999983 Td
 /F1.0 10.5 Tf
 <206f7220776861746576657229> Tj
 ET
@@ -20716,7 +20749,7 @@ ET
 0.200 0.200 0.200 SCN
 
 BT
-48.24000000000001 189.12599999999986 Td
+48.24000000000001 174.38599999999983 Td
 /F1.0 10.5 Tf
 <4e6f746520746861742074686520656d61696c20616c736f207265666572656e636573207468652070726f63656475726520666f72206f7468657220636f6d6d69747465727320746f20> Tj
 ET
@@ -20727,7 +20760,7 @@ ET
 0.259 0.545 0.792 SCN
 
 BT
-417.6195 189.12599999999986 Td
+417.6195 174.38599999999983 Td
 /F1.0 10.5 Tf
 <766572696679207468652072656c65617365> Tj
 ET
@@ -20738,7 +20771,7 @@ ET
 0.200 0.200 0.200 SCN
 
 BT
-504.507 189.12599999999986 Td
+504.507 174.38599999999983 Td
 /F1.0 10.5 Tf
 <2e> Tj
 ET
@@ -20791,7 +20824,7 @@ endobj
 /URI (../cgcom/cgcom.pdf#_cgcom_verifying-releases)
 >>
 /Subtype /Link
-/Rect [417.6195 186.05999999999986 504.507 200.33999999999986]
+/Rect [417.6195 171.31999999999982 504.507 185.59999999999982]
 /Type /Annot
 >>
 endobj
@@ -58308,646 +58341,646 @@ xref
 0000293088 00000 n 
 0000293146 00000 n 
 0000293204 00000 n 
-0000303574 00000 n 
-0000303815 00000 n 
-0000303861 00000 n 
-0000303918 00000 n 
-0000303976 00000 n 
-0000315872 00000 n 
-0000316127 00000 n 
-0000316173 00000 n 
-0000328445 00000 n 
-0000328718 00000 n 
-0000328916 00000 n 
-0000328962 00000 n 
-0000329019 00000 n 
-0000329077 00000 n 
-0000338684 00000 n 
-0000338943 00000 n 
-0000339001 00000 n 
-0000340020 00000 n 
-0000340066 00000 n 
-0000340283 00000 n 
-0000412711 00000 n 
-0000413691 00000 n 
-0000413949 00000 n 
-0000414143 00000 n 
-0000514341 00000 n 
-0000516908 00000 n 
-0000517166 00000 n 
-0000517360 00000 n 
-0000621112 00000 n 
-0000621732 00000 n 
-0000621977 00000 n 
-0000622171 00000 n 
-0000724737 00000 n 
-0000725426 00000 n 
-0000725671 00000 n 
-0000725866 00000 n 
-0000842840 00000 n 
-0000843842 00000 n 
-0000844087 00000 n 
-0000844281 00000 n 
-0000925715 00000 n 
-0000931851 00000 n 
-0000932151 00000 n 
-0000932346 00000 n 
-0000932573 00000 n 
-0000932630 00000 n 
-0000932889 00000 n 
-0000936535 00000 n 
-0000936776 00000 n 
-0000936822 00000 n 
-0000936879 00000 n 
-0000946343 00000 n 
-0000946589 00000 n 
-0000946802 00000 n 
-0000960363 00000 n 
-0000960684 00000 n 
-0000960730 00000 n 
-0000960939 00000 n 
-0000961166 00000 n 
-0000961393 00000 n 
-0000961450 00000 n 
-0000961679 00000 n 
-0000961871 00000 n 
-0000962075 00000 n 
-0000962291 00000 n 
-0000962349 00000 n 
-0000973585 00000 n 
-0000973868 00000 n 
-0000973914 00000 n 
-0000974142 00000 n 
-0000974375 00000 n 
-0000974432 00000 n 
-0000974489 00000 n 
-0000974546 00000 n 
-0000974604 00000 n 
-0000974849 00000 n 
-0000975074 00000 n 
-0000992310 00000 n 
-0000992583 00000 n 
-0000992641 00000 n 
-0000992850 00000 n 
-0000992907 00000 n 
-0001002885 00000 n 
-0001003113 00000 n 
-0001017666 00000 n 
-0001017970 00000 n 
-0001018027 00000 n 
-0001018084 00000 n 
-0001018484 00000 n 
-0001018542 00000 n 
-0001018754 00000 n 
-0001018961 00000 n 
-0001019188 00000 n 
-0001019412 00000 n 
-0001019634 00000 n 
-0001030373 00000 n 
-0001030632 00000 n 
-0001030689 00000 n 
-0001030911 00000 n 
-0001032607 00000 n 
-0001032848 00000 n 
-0001032894 00000 n 
-0001044581 00000 n 
-0001044856 00000 n 
-0001044902 00000 n 
-0001045111 00000 n 
-0001045321 00000 n 
-0001045548 00000 n 
-0001045605 00000 n 
-0001045663 00000 n 
-0001053279 00000 n 
-0001053582 00000 n 
-0001053639 00000 n 
-0001053831 00000 n 
-0001121050 00000 n 
-0001121255 00000 n 
-0001121312 00000 n 
-0001121568 00000 n 
-0001121790 00000 n 
-0001122005 00000 n 
-0001131510 00000 n 
-0001131756 00000 n 
-0001132000 00000 n 
-0001142192 00000 n 
-0001142420 00000 n 
-0001153319 00000 n 
-0001153608 00000 n 
-0001153654 00000 n 
-0001153711 00000 n 
-0001153769 00000 n 
-0001153827 00000 n 
-0001154091 00000 n 
-0001154345 00000 n 
-0001154402 00000 n 
-0001154460 00000 n 
-0001154676 00000 n 
-0001154734 00000 n 
-0001155171 00000 n 
-0001167040 00000 n 
-0001167347 00000 n 
-0001167542 00000 n 
-0001167754 00000 n 
-0001167961 00000 n 
-0001168168 00000 n 
-0001168388 00000 n 
-0001168664 00000 n 
-0001168721 00000 n 
-0001168928 00000 n 
-0001180727 00000 n 
-0001180994 00000 n 
-0001181051 00000 n 
-0001181269 00000 n 
-0001181484 00000 n 
-0001181541 00000 n 
-0001181599 00000 n 
-0001196095 00000 n 
-0001196354 00000 n 
-0001196400 00000 n 
-0001196670 00000 n 
-0001196728 00000 n 
-0001196786 00000 n 
-0001210396 00000 n 
-0001210695 00000 n 
-0001210894 00000 n 
-0001210951 00000 n 
-0001211196 00000 n 
-0001211425 00000 n 
-0001211483 00000 n 
-0001211541 00000 n 
-0001211755 00000 n 
-0001211968 00000 n 
-0001212026 00000 n 
-0001212282 00000 n 
-0001212340 00000 n 
-0001225705 00000 n 
-0001225985 00000 n 
-0001226042 00000 n 
-0001226256 00000 n 
-0001226512 00000 n 
-0001241980 00000 n 
-0001242268 00000 n 
-0001242539 00000 n 
-0001242597 00000 n 
-0001243536 00000 n 
-0001243739 00000 n 
-0001243994 00000 n 
-0001260256 00000 n 
-0001260523 00000 n 
-0001260827 00000 n 
-0001261097 00000 n 
-0001270913 00000 n 
-0001271154 00000 n 
-0001271200 00000 n 
-0001281926 00000 n 
-0001282201 00000 n 
-0001282247 00000 n 
-0001282456 00000 n 
-0001282666 00000 n 
-0001282893 00000 n 
-0001282950 00000 n 
-0001283008 00000 n 
-0001288767 00000 n 
-0001289026 00000 n 
-0001289083 00000 n 
-0001289301 00000 n 
-0001289359 00000 n 
-0001304766 00000 n 
-0001305046 00000 n 
-0001305092 00000 n 
-0001305149 00000 n 
-0001305402 00000 n 
-0001305621 00000 n 
-0001305678 00000 n 
-0001306346 00000 n 
-0001310508 00000 n 
-0001310780 00000 n 
-0001310826 00000 n 
-0001311043 00000 n 
-0001324318 00000 n 
-0001324622 00000 n 
-0001324668 00000 n 
-0001325149 00000 n 
-0001325372 00000 n 
-0001325567 00000 n 
-0001325757 00000 n 
-0001325803 00000 n 
-0001325998 00000 n 
-0001326195 00000 n 
-0001326253 00000 n 
-0001326311 00000 n 
-0001335321 00000 n 
-0001335562 00000 n 
-0001335608 00000 n 
-0001350472 00000 n 
-0001350787 00000 n 
-0001350833 00000 n 
-0001351044 00000 n 
-0001351242 00000 n 
-0001351442 00000 n 
-0001351643 00000 n 
-0001351882 00000 n 
-0001352091 00000 n 
-0001352148 00000 n 
-0001352388 00000 n 
-0001352622 00000 n 
-0001352680 00000 n 
-0001365680 00000 n 
-0001365966 00000 n 
-0001366144 00000 n 
-0001366202 00000 n 
-0001377072 00000 n 
-0001377347 00000 n 
-0001377393 00000 n 
-0001377615 00000 n 
-0001377831 00000 n 
-0001378056 00000 n 
-0001378113 00000 n 
-0001378170 00000 n 
-0001388591 00000 n 
-0001388819 00000 n 
-0001401224 00000 n 
-0001401452 00000 n 
-0001410643 00000 n 
-0001410897 00000 n 
-0001410954 00000 n 
-0001418943 00000 n 
-0001419184 00000 n 
-0001428652 00000 n 
-0001428911 00000 n 
-0001428969 00000 n 
-0001429211 00000 n 
-0001438735 00000 n 
-0001438963 00000 n 
-0001451853 00000 n 
-0001452144 00000 n 
-0001452190 00000 n 
-0001452248 00000 n 
-0001452454 00000 n 
-0001452705 00000 n 
-0001452952 00000 n 
-0001453159 00000 n 
-0001453392 00000 n 
-0001462744 00000 n 
-0001463011 00000 n 
-0001463057 00000 n 
-0001463114 00000 n 
-0001463324 00000 n 
-0001463381 00000 n 
-0001463614 00000 n 
-0001486108 00000 n 
-0001486336 00000 n 
-0001498908 00000 n 
-0001499183 00000 n 
-0001499240 00000 n 
-0001499693 00000 n 
-0001499904 00000 n 
-0001499962 00000 n 
-0001500020 00000 n 
-0001500261 00000 n 
-0001500484 00000 n 
-0001513161 00000 n 
-0001513402 00000 n 
-0001513448 00000 n 
-0001532379 00000 n 
-0001532691 00000 n 
-0001532737 00000 n 
-0001532935 00000 n 
-0001532992 00000 n 
-0001533244 00000 n 
-0001533301 00000 n 
-0001533518 00000 n 
-0001533723 00000 n 
-0001533931 00000 n 
-0001533988 00000 n 
-0001534202 00000 n 
-0001544663 00000 n 
-0001544930 00000 n 
-0001545171 00000 n 
-0001545387 00000 n 
-0001558145 00000 n 
-0001558436 00000 n 
-0001558482 00000 n 
-0001558539 00000 n 
-0001558596 00000 n 
-0001558781 00000 n 
-0001558838 00000 n 
-0001559101 00000 n 
-0001559158 00000 n 
-0001559360 00000 n 
-0001559582 00000 n 
-0001559799 00000 n 
-0001571727 00000 n 
-0001571986 00000 n 
-0001572192 00000 n 
-0001572238 00000 n 
-0001576115 00000 n 
-0001576382 00000 n 
-0001576428 00000 n 
-0001576643 00000 n 
-0001576848 00000 n 
-0001587102 00000 n 
-0001587411 00000 n 
-0001587457 00000 n 
-0001587646 00000 n 
-0001587703 00000 n 
-0001588190 00000 n 
+0000303586 00000 n 
+0000303827 00000 n 
+0000303873 00000 n 
+0000303930 00000 n 
+0000303988 00000 n 
+0000315884 00000 n 
+0000316139 00000 n 
+0000316185 00000 n 
+0000328457 00000 n 
+0000328730 00000 n 
+0000328928 00000 n 
+0000328974 00000 n 
+0000329031 00000 n 
+0000329089 00000 n 
+0000338696 00000 n 
+0000338955 00000 n 
+0000339013 00000 n 
+0000340032 00000 n 
+0000340078 00000 n 
+0000340295 00000 n 
+0000412723 00000 n 
+0000413703 00000 n 
+0000413961 00000 n 
+0000414155 00000 n 
+0000514353 00000 n 
+0000516920 00000 n 
+0000517178 00000 n 
+0000517372 00000 n 
+0000621124 00000 n 
+0000621744 00000 n 
+0000621989 00000 n 
+0000622183 00000 n 
+0000724749 00000 n 
+0000725438 00000 n 
+0000725683 00000 n 
+0000725878 00000 n 
+0000842852 00000 n 
+0000843854 00000 n 
+0000844099 00000 n 
+0000844293 00000 n 
+0000925727 00000 n 
+0000932373 00000 n 
+0000932673 00000 n 
+0000932868 00000 n 
+0000933095 00000 n 
+0000933152 00000 n 
+0000933408 00000 n 
+0000937054 00000 n 
+0000937295 00000 n 
+0000937341 00000 n 
+0000937398 00000 n 
+0000947069 00000 n 
+0000947315 00000 n 
+0000947528 00000 n 
+0000961089 00000 n 
+0000961410 00000 n 
+0000961456 00000 n 
+0000961665 00000 n 
+0000961892 00000 n 
+0000962119 00000 n 
+0000962176 00000 n 
+0000962405 00000 n 
+0000962597 00000 n 
+0000962801 00000 n 
+0000963017 00000 n 
+0000963075 00000 n 
+0000974311 00000 n 
+0000974594 00000 n 
+0000974640 00000 n 
+0000974868 00000 n 
+0000975101 00000 n 
+0000975158 00000 n 
+0000975215 00000 n 
+0000975272 00000 n 
+0000975330 00000 n 
+0000975575 00000 n 
+0000975800 00000 n 
+0000993036 00000 n 
+0000993309 00000 n 
+0000993367 00000 n 
+0000993576 00000 n 
+0000993633 00000 n 
+0001003611 00000 n 
+0001003839 00000 n 
+0001018392 00000 n 
+0001018696 00000 n 
+0001018753 00000 n 
+0001018810 00000 n 
+0001019210 00000 n 
+0001019268 00000 n 
+0001019480 00000 n 
+0001019687 00000 n 
+0001019914 00000 n 
+0001020138 00000 n 
+0001020360 00000 n 
+0001031099 00000 n 
+0001031358 00000 n 
+0001031415 00000 n 
+0001031637 00000 n 
+0001033333 00000 n 
+0001033574 00000 n 
+0001033620 00000 n 
+0001045307 00000 n 
+0001045582 00000 n 
+0001045628 00000 n 
+0001045837 00000 n 
+0001046047 00000 n 
+0001046274 00000 n 
+0001046331 00000 n 
+0001046389 00000 n 
+0001054005 00000 n 
+0001054308 00000 n 
+0001054365 00000 n 
+0001054557 00000 n 
+0001121776 00000 n 
+0001121981 00000 n 
+0001122038 00000 n 
+0001122294 00000 n 
+0001122516 00000 n 
+0001122731 00000 n 
+0001132236 00000 n 
+0001132482 00000 n 
+0001132726 00000 n 
+0001142918 00000 n 
+0001143146 00000 n 
+0001154045 00000 n 
+0001154334 00000 n 
+0001154380 00000 n 
+0001154437 00000 n 
+0001154495 00000 n 
+0001154553 00000 n 
+0001154817 00000 n 
+0001155071 00000 n 
+0001155128 00000 n 
+0001155186 00000 n 
+0001155402 00000 n 
+0001155460 00000 n 
+0001155897 00000 n 
+0001167766 00000 n 
+0001168073 00000 n 
+0001168268 00000 n 
+0001168480 00000 n 
+0001168687 00000 n 
+0001168894 00000 n 
+0001169114 00000 n 
+0001169390 00000 n 
+0001169447 00000 n 
+0001169654 00000 n 
+0001181453 00000 n 
+0001181720 00000 n 
+0001181777 00000 n 
+0001181995 00000 n 
+0001182210 00000 n 
+0001182267 00000 n 
+0001182325 00000 n 
+0001196821 00000 n 
+0001197080 00000 n 
+0001197126 00000 n 
+0001197396 00000 n 
+0001197454 00000 n 
+0001197512 00000 n 
+0001211122 00000 n 
+0001211421 00000 n 
+0001211620 00000 n 
+0001211677 00000 n 
+0001211922 00000 n 
+0001212151 00000 n 
+0001212209 00000 n 
+0001212267 00000 n 
+0001212481 00000 n 
+0001212694 00000 n 
+0001212752 00000 n 
+0001213008 00000 n 
+0001213066 00000 n 
+0001226431 00000 n 
+0001226711 00000 n 
+0001226768 00000 n 
+0001226982 00000 n 
+0001227238 00000 n 
+0001242706 00000 n 
+0001242994 00000 n 
+0001243265 00000 n 
+0001243323 00000 n 
+0001244262 00000 n 
+0001244465 00000 n 
+0001244720 00000 n 
+0001260982 00000 n 
+0001261249 00000 n 
+0001261553 00000 n 
+0001261823 00000 n 
+0001271639 00000 n 
+0001271880 00000 n 
+0001271926 00000 n 
+0001282652 00000 n 
+0001282927 00000 n 
+0001282973 00000 n 
+0001283182 00000 n 
+0001283392 00000 n 
+0001283619 00000 n 
+0001283676 00000 n 
+0001283734 00000 n 
+0001289493 00000 n 
+0001289752 00000 n 
+0001289809 00000 n 
+0001290027 00000 n 
+0001290085 00000 n 
+0001305492 00000 n 
+0001305772 00000 n 
+0001305818 00000 n 
+0001305875 00000 n 
+0001306128 00000 n 
+0001306347 00000 n 
+0001306404 00000 n 
+0001307072 00000 n 
+0001311234 00000 n 
+0001311506 00000 n 
+0001311552 00000 n 
+0001311769 00000 n 
+0001325044 00000 n 
+0001325348 00000 n 
+0001325394 00000 n 
+0001325875 00000 n 
+0001326098 00000 n 
+0001326293 00000 n 
+0001326483 00000 n 
+0001326529 00000 n 
+0001326724 00000 n 
+0001326921 00000 n 
+0001326979 00000 n 
+0001327037 00000 n 
+0001336047 00000 n 
+0001336288 00000 n 
+0001336334 00000 n 
+0001351198 00000 n 
+0001351513 00000 n 
+0001351559 00000 n 
+0001351770 00000 n 
+0001351968 00000 n 
+0001352168 00000 n 
+0001352369 00000 n 
+0001352608 00000 n 
+0001352817 00000 n 
+0001352874 00000 n 
+0001353114 00000 n 
+0001353348 00000 n 
+0001353406 00000 n 
+0001366406 00000 n 
+0001366692 00000 n 
+0001366870 00000 n 
+0001366928 00000 n 
+0001377798 00000 n 
+0001378073 00000 n 
+0001378119 00000 n 
+0001378341 00000 n 
+0001378557 00000 n 
+0001378782 00000 n 
+0001378839 00000 n 
+0001378896 00000 n 
+0001389317 00000 n 
+0001389545 00000 n 
+0001401950 00000 n 
+0001402178 00000 n 
+0001411369 00000 n 
+0001411623 00000 n 
+0001411680 00000 n 
+0001419669 00000 n 
+0001419910 00000 n 
+0001429378 00000 n 
+0001429637 00000 n 
+0001429695 00000 n 
+0001429937 00000 n 
+0001439461 00000 n 
+0001439689 00000 n 
+0001452579 00000 n 
+0001452870 00000 n 
+0001452916 00000 n 
+0001452974 00000 n 
+0001453180 00000 n 
+0001453431 00000 n 
+0001453678 00000 n 
+0001453885 00000 n 
+0001454118 00000 n 
+0001463470 00000 n 
+0001463737 00000 n 
+0001463783 00000 n 
+0001463840 00000 n 
+0001464050 00000 n 
+0001464107 00000 n 
+0001464340 00000 n 
+0001486834 00000 n 
+0001487062 00000 n 
+0001499634 00000 n 
+0001499909 00000 n 
+0001499966 00000 n 
+0001500419 00000 n 
+0001500630 00000 n 
+0001500688 00000 n 
+0001500746 00000 n 
+0001500987 00000 n 
+0001501210 00000 n 
+0001513887 00000 n 
+0001514128 00000 n 
+0001514174 00000 n 
+0001533105 00000 n 
+0001533417 00000 n 
+0001533463 00000 n 
+0001533661 00000 n 
+0001533718 00000 n 
+0001533970 00000 n 
+0001534027 00000 n 
+0001534244 00000 n 
+0001534449 00000 n 
+0001534657 00000 n 
+0001534714 00000 n 
+0001534928 00000 n 
+0001545389 00000 n 
+0001545656 00000 n 
+0001545897 00000 n 
+0001546113 00000 n 
+0001558871 00000 n 
+0001559162 00000 n 
+0001559208 00000 n 
+0001559265 00000 n 
+0001559322 00000 n 
+0001559507 00000 n 
+0001559564 00000 n 
+0001559827 00000 n 
+0001559884 00000 n 
+0001560086 00000 n 
+0001560308 00000 n 
+0001560525 00000 n 
+0001572453 00000 n 
+0001572712 00000 n 
+0001572918 00000 n 
+0001572964 00000 n 
+0001576841 00000 n 
+0001577108 00000 n 
+0001577154 00000 n 
+0001577369 00000 n 
+0001577574 00000 n 
+0001587828 00000 n 
+0001588137 00000 n 
+0001588183 00000 n 
+0001588372 00000 n 
 0001588429 00000 n 
-0001588680 00000 n 
-0001588738 00000 n 
-0001588956 00000 n 
-0001589013 00000 n 
-0001596445 00000 n 
-0001596699 00000 n 
-0001596745 00000 n 
-0001607706 00000 n 
-0001607978 00000 n 
-0001608024 00000 n 
-0001608270 00000 n 
-0001608316 00000 n 
-0001608374 00000 n 
-0001620519 00000 n 
-0001620804 00000 n 
-0001621005 00000 n 
-0001621062 00000 n 
-0001632942 00000 n 
-0001633227 00000 n 
-0001633273 00000 n 
-0001633330 00000 n 
-0001633528 00000 n 
-0001633586 00000 n 
-0001635998 00000 n 
-0001636226 00000 n 
-0001636346 00000 n 
-0001636467 00000 n 
-0001636592 00000 n 
-0001636718 00000 n 
-0001636864 00000 n 
-0001637012 00000 n 
-0001637145 00000 n 
-0001637280 00000 n 
-0001637414 00000 n 
-0001637550 00000 n 
-0001637703 00000 n 
-0001637857 00000 n 
-0001638008 00000 n 
-0001638161 00000 n 
-0001638309 00000 n 
-0001638458 00000 n 
-0001638609 00000 n 
-0001638751 00000 n 
-0001638912 00000 n 
-0001639066 00000 n 
-0001639224 00000 n 
-0001639384 00000 n 
-0001639561 00000 n 
-0001639739 00000 n 
-0001639924 00000 n 
-0001640111 00000 n 
-0001640297 00000 n 
-0001640485 00000 n 
-0001640659 00000 n 
-0001640835 00000 n 
-0001641019 00000 n 
-0001641214 00000 n 
-0001641410 00000 n 
-0001641606 00000 n 
-0001641790 00000 n 
-0001641976 00000 n 
-0001642152 00000 n 
-0001642330 00000 n 
-0001642499 00000 n 
-0001642670 00000 n 
-0001642823 00000 n 
-0001642978 00000 n 
-0001643129 00000 n 
-0001643290 00000 n 
-0001643462 00000 n 
-0001643634 00000 n 
-0001643813 00000 n 
-0001643994 00000 n 
-0001644157 00000 n 
-0001644322 00000 n 
-0001644479 00000 n 
-0001644638 00000 n 
-0001644813 00000 n 
-0001644988 00000 n 
-0001645138 00000 n 
-0001645298 00000 n 
-0001645445 00000 n 
-0001645603 00000 n 
-0001645774 00000 n 
-0001645945 00000 n 
-0001646098 00000 n 
-0001646261 00000 n 
-0001646406 00000 n 
-0001646562 00000 n 
-0001646711 00000 n 
-0001646870 00000 n 
-0001647027 00000 n 
-0001647194 00000 n 
-0001647340 00000 n 
-0001647496 00000 n 
-0001647666 00000 n 
-0001647836 00000 n 
-0001647990 00000 n 
-0001648154 00000 n 
-0001648303 00000 n 
-0001648463 00000 n 
-0001648599 00000 n 
-0001648745 00000 n 
-0001648934 00000 n 
-0001649123 00000 n 
-0001649289 00000 n 
-0001649455 00000 n 
-0001649605 00000 n 
-0001649765 00000 n 
-0001649926 00000 n 
-0001650087 00000 n 
-0001650254 00000 n 
-0001650421 00000 n 
-0001650561 00000 n 
-0001650711 00000 n 
-0001650881 00000 n 
-0001651062 00000 n 
-0001651212 00000 n 
-0001651372 00000 n 
-0001651519 00000 n 
-0001651676 00000 n 
-0001651825 00000 n 
-0001651976 00000 n 
-0001652164 00000 n 
-0001652352 00000 n 
-0001652502 00000 n 
-0001652662 00000 n 
-0001652811 00000 n 
-0001652970 00000 n 
-0001653122 00000 n 
-0001653274 00000 n 
-0001653440 00000 n 
-0001653618 00000 n 
-0001653766 00000 n 
-0001653925 00000 n 
-0001654081 00000 n 
-0001654247 00000 n 
-0001654417 00000 n 
-0001654587 00000 n 
-0001654755 00000 n 
-0001654923 00000 n 
-0001655082 00000 n 
-0001655253 00000 n 
-0001655410 00000 n 
-0001655570 00000 n 
-0001655729 00000 n 
-0001655891 00000 n 
-0001656070 00000 n 
-0001656249 00000 n 
-0001656404 00000 n 
-0001656561 00000 n 
-0001656750 00000 n 
-0001656952 00000 n 
-0001657140 00000 n 
-0001657330 00000 n 
-0001657531 00000 n 
-0001657740 00000 n 
-0001657905 00000 n 
-0001658080 00000 n 
-0001658242 00000 n 
-0001658414 00000 n 
-0001658579 00000 n 
-0001658744 00000 n 
-0001658909 00000 n 
-0001659087 00000 n 
-0001659262 00000 n 
-0001659413 00000 n 
-0001659575 00000 n 
-0001659751 00000 n 
-0001659929 00000 n 
-0001660090 00000 n 
-0001660261 00000 n 
-0001660412 00000 n 
-0001660573 00000 n 
-0001660716 00000 n 
-0001660870 00000 n 
-0001661041 00000 n 
-0001661212 00000 n 
-0001661379 00000 n 
-0001661546 00000 n 
-0001661833 00000 n 
-0001661911 00000 n 
-0001662088 00000 n 
-0001662280 00000 n 
-0001662545 00000 n 
-0001662720 00000 n 
-0001662981 00000 n 
-0001663162 00000 n 
-0001663347 00000 n 
-0001663632 00000 n 
-0001663841 00000 n 
-0001664048 00000 n 
-0001664227 00000 n 
-0001664440 00000 n 
-0001664705 00000 n 
-0001664910 00000 n 
-0001665165 00000 n 
-0001665421 00000 n 
-0001665632 00000 n 
-0001665873 00000 n 
-0001666114 00000 n 
-0001666322 00000 n 
-0001666477 00000 n 
-0001666751 00000 n 
-0001666933 00000 n 
-0001667142 00000 n 
-0001667391 00000 n 
-0001667644 00000 n 
-0001667876 00000 n 
-0001668063 00000 n 
-0001668362 00000 n 
-0001668556 00000 n 
-0001668757 00000 n 
-0001669009 00000 n 
-0001669237 00000 n 
-0001669426 00000 n 
-0001669639 00000 n 
-0001669875 00000 n 
-0001670067 00000 n 
-0001670315 00000 n 
-0001670552 00000 n 
-0001670772 00000 n 
-0001670981 00000 n 
-0001671228 00000 n 
-0001671534 00000 n 
-0001671728 00000 n 
-0001671949 00000 n 
-0001672193 00000 n 
-0001672356 00000 n 
-0001672622 00000 n 
-0001672816 00000 n 
-0001673020 00000 n 
-0001673175 00000 n 
-0001673437 00000 n 
-0001673620 00000 n 
-0001673825 00000 n 
-0001673996 00000 n 
-0001674274 00000 n 
-0001674476 00000 n 
-0001674729 00000 n 
-0001674980 00000 n 
-0001675238 00000 n 
-0001675484 00000 n 
-0001675700 00000 n 
-0001675928 00000 n 
-0001676221 00000 n 
-0001676414 00000 n 
-0001676759 00000 n 
-0001677082 00000 n 
-0001677384 00000 n 
-0001677638 00000 n 
-0001677870 00000 n 
-0001678088 00000 n 
-0001678322 00000 n 
-0001678536 00000 n 
-0001678722 00000 n 
-0001678962 00000 n 
-0001679136 00000 n 
-0001679393 00000 n 
-0001679620 00000 n 
-0001680350 00000 n 
-0001690496 00000 n 
-0001690712 00000 n 
-0001692075 00000 n 
-0001693119 00000 n 
-0001701934 00000 n 
-0001702155 00000 n 
-0001703518 00000 n 
-0001704583 00000 n 
-0001706032 00000 n 
-0001706243 00000 n 
-0001706563 00000 n 
-0001707479 00000 n 
-0001713623 00000 n 
-0001713837 00000 n 
-0001715200 00000 n 
-0001716244 00000 n 
-0001717917 00000 n 
-0001718131 00000 n 
-0001718443 00000 n 
-0001719581 00000 n 
-0001720976 00000 n 
-0001721194 00000 n 
-0001722557 00000 n 
-0001723696 00000 n 
-0001726194 00000 n 
-0001726420 00000 n 
-0001727783 00000 n 
+0001588916 00000 n 
+0001589155 00000 n 
+0001589406 00000 n 
+0001589464 00000 n 
+0001589682 00000 n 
+0001589739 00000 n 
+0001597171 00000 n 
+0001597425 00000 n 
+0001597471 00000 n 
+0001608432 00000 n 
+0001608704 00000 n 
+0001608750 00000 n 
+0001608996 00000 n 
+0001609042 00000 n 
+0001609100 00000 n 
+0001621245 00000 n 
+0001621530 00000 n 
+0001621731 00000 n 
+0001621788 00000 n 
+0001633668 00000 n 
+0001633953 00000 n 
+0001633999 00000 n 
+0001634056 00000 n 
+0001634254 00000 n 
+0001634312 00000 n 
+0001636724 00000 n 
+0001636952 00000 n 
+0001637072 00000 n 
+0001637193 00000 n 
+0001637318 00000 n 
+0001637444 00000 n 
+0001637590 00000 n 
+0001637738 00000 n 
+0001637871 00000 n 
+0001638006 00000 n 
+0001638140 00000 n 
+0001638276 00000 n 
+0001638429 00000 n 
+0001638583 00000 n 
+0001638734 00000 n 
+0001638887 00000 n 
+0001639035 00000 n 
+0001639184 00000 n 
+0001639335 00000 n 
+0001639477 00000 n 
+0001639638 00000 n 
+0001639792 00000 n 
+0001639950 00000 n 
+0001640110 00000 n 
+0001640287 00000 n 
+0001640465 00000 n 
+0001640650 00000 n 
+0001640837 00000 n 
+0001641023 00000 n 
+0001641211 00000 n 
+0001641385 00000 n 
+0001641561 00000 n 
+0001641745 00000 n 
+0001641940 00000 n 
+0001642136 00000 n 
+0001642332 00000 n 
+0001642516 00000 n 
+0001642702 00000 n 
+0001642878 00000 n 
+0001643056 00000 n 
+0001643225 00000 n 
+0001643396 00000 n 
+0001643549 00000 n 
+0001643704 00000 n 
+0001643855 00000 n 
+0001644016 00000 n 
+0001644188 00000 n 
+0001644360 00000 n 
+0001644539 00000 n 
+0001644720 00000 n 
+0001644883 00000 n 
+0001645048 00000 n 
+0001645205 00000 n 
+0001645364 00000 n 
+0001645539 00000 n 
+0001645714 00000 n 
+0001645864 00000 n 
+0001646024 00000 n 
+0001646171 00000 n 
+0001646329 00000 n 
+0001646500 00000 n 
+0001646671 00000 n 
+0001646824 00000 n 
+0001646987 00000 n 
+0001647132 00000 n 
+0001647288 00000 n 
+0001647437 00000 n 
+0001647596 00000 n 
+0001647753 00000 n 
+0001647920 00000 n 
+0001648066 00000 n 
+0001648222 00000 n 
+0001648392 00000 n 
+0001648562 00000 n 
+0001648716 00000 n 
+0001648880 00000 n 
+0001649029 00000 n 
+0001649189 00000 n 
+0001649325 00000 n 
+0001649471 00000 n 
+0001649660 00000 n 
+0001649849 00000 n 
+0001650015 00000 n 
+0001650181 00000 n 
+0001650331 00000 n 
+0001650491 00000 n 
+0001650652 00000 n 
+0001650813 00000 n 
+0001650980 00000 n 
+0001651147 00000 n 
+0001651287 00000 n 
+0001651437 00000 n 
+0001651607 00000 n 
+0001651788 00000 n 
+0001651938 00000 n 
+0001652098 00000 n 
+0001652245 00000 n 
+0001652402 00000 n 
+0001652551 00000 n 
+0001652702 00000 n 
+0001652890 00000 n 
+0001653078 00000 n 
+0001653228 00000 n 
+0001653388 00000 n 
+0001653537 00000 n 
+0001653696 00000 n 
+0001653848 00000 n 
+0001654000 00000 n 
+0001654166 00000 n 
+0001654344 00000 n 
+0001654492 00000 n 
+0001654651 00000 n 
+0001654807 00000 n 
+0001654973 00000 n 
+0001655143 00000 n 
+0001655313 00000 n 
+0001655481 00000 n 
+0001655649 00000 n 
+0001655808 00000 n 
+0001655979 00000 n 
+0001656136 00000 n 
+0001656296 00000 n 
+0001656455 00000 n 
+0001656617 00000 n 
+0001656796 00000 n 
+0001656975 00000 n 
+0001657130 00000 n 
+0001657287 00000 n 
+0001657476 00000 n 
+0001657678 00000 n 
+0001657866 00000 n 
+0001658056 00000 n 
+0001658257 00000 n 
+0001658466 00000 n 
+0001658631 00000 n 
+0001658806 00000 n 
+0001658968 00000 n 
+0001659140 00000 n 
+0001659305 00000 n 
+0001659470 00000 n 
+0001659635 00000 n 
+0001659813 00000 n 
+0001659988 00000 n 
+0001660139 00000 n 
+0001660301 00000 n 
+0001660477 00000 n 
+0001660655 00000 n 
+0001660816 00000 n 
+0001660987 00000 n 
+0001661138 00000 n 
+0001661299 00000 n 
+0001661442 00000 n 
+0001661596 00000 n 
+0001661767 00000 n 
+0001661938 00000 n 
+0001662105 00000 n 
+0001662272 00000 n 
+0001662559 00000 n 
+0001662637 00000 n 
+0001662814 00000 n 
+0001663006 00000 n 
+0001663271 00000 n 
+0001663446 00000 n 
+0001663707 00000 n 
+0001663888 00000 n 
+0001664073 00000 n 
+0001664358 00000 n 
+0001664567 00000 n 
+0001664774 00000 n 
+0001664953 00000 n 
+0001665166 00000 n 
+0001665431 00000 n 
+0001665636 00000 n 
+0001665891 00000 n 
+0001666147 00000 n 
+0001666358 00000 n 
+0001666599 00000 n 
+0001666840 00000 n 
+0001667048 00000 n 
+0001667203 00000 n 
+0001667477 00000 n 
+0001667659 00000 n 
+0001667868 00000 n 
+0001668117 00000 n 
+0001668370 00000 n 
+0001668602 00000 n 
+0001668789 00000 n 
+0001669088 00000 n 
+0001669282 00000 n 
+0001669483 00000 n 
+0001669735 00000 n 
+0001669963 00000 n 
+0001670152 00000 n 
+0001670365 00000 n 
+0001670601 00000 n 
+0001670793 00000 n 
+0001671041 00000 n 
+0001671278 00000 n 
+0001671498 00000 n 
+0001671707 00000 n 
+0001671954 00000 n 
+0001672260 00000 n 
+0001672454 00000 n 
+0001672675 00000 n 
+0001672919 00000 n 
+0001673082 00000 n 
+0001673348 00000 n 
+0001673542 00000 n 
+0001673746 00000 n 
+0001673901 00000 n 
+0001674163 00000 n 
+0001674346 00000 n 
+0001674551 00000 n 
+0001674722 00000 n 
+0001675000 00000 n 
+0001675202 00000 n 
+0001675455 00000 n 
+0001675706 00000 n 
+0001675964 00000 n 
+0001676210 00000 n 
+0001676426 00000 n 
+0001676654 00000 n 
+0001676947 00000 n 
+0001677140 00000 n 
+0001677485 00000 n 
+0001677808 00000 n 
+0001678110 00000 n 
+0001678364 00000 n 
+0001678596 00000 n 
+0001678814 00000 n 
+0001679048 00000 n 
+0001679262 00000 n 
+0001679448 00000 n 
+0001679688 00000 n 
+0001679862 00000 n 
+0001680119 00000 n 
+0001680346 00000 n 
+0001681076 00000 n 
+0001691222 00000 n 
+0001691438 00000 n 
+0001692801 00000 n 
+0001693845 00000 n 
+0001702660 00000 n 
+0001702881 00000 n 
+0001704244 00000 n 
+0001705309 00000 n 
+0001706758 00000 n 
+0001706969 00000 n 
+0001707289 00000 n 
+0001708205 00000 n 
+0001714349 00000 n 
+0001714563 00000 n 
+0001715926 00000 n 
+0001716970 00000 n 
+0001718643 00000 n 
+0001718857 00000 n 
+0001719169 00000 n 
+0001720307 00000 n 
+0001721702 00000 n 
+0001721920 00000 n 
+0001723283 00000 n 
+0001724422 00000 n 
+0001726920 00000 n 
+0001727146 00000 n 
+0001728509 00000 n 
 trailer
 << /Size 764
 /Root 2 0 R
 /Info 1 0 R
 >>
 startxref
-1728906
+1729632
 %%EOF


[2/3] isis-site git commit: ISIS-1521: minor updates to release process

Posted by da...@apache.org.
http://git-wip-us.apache.org/repos/asf/isis-site/blob/3921d6e7/content/elasticlunr/index.json
----------------------------------------------------------------------
diff --git a/content/elasticlunr/index.json b/content/elasticlunr/index.json
index 86461dc..889907c 100644
--- a/content/elasticlunr/index.json
+++ b/content/elasticlunr/index.json
@@ -1 +1 @@
-{"version":"0.9.5","fields":["title","body","description","url"],"ref":"id","documentStore":{"docs":{"372886":{"title":"Rows, full-width cols, and tabs","url":"guides/ugvw/ugvw.html#_rows_full_width_cols_and_tabs","body":"Rows, full-width cols, and tabs  The example layout consists of three rows: a row for the object/icon, a row containing a properties, and a row containing collections. In all three cases the row contains a single column spanning the full width of the page. For the property and collection rows, the column contains a tab group.  This corresponds to the following XML:  You will notice that one of the columns has an unreferencedActions attribute, while one of the tabGroups has a similar unreferencedCollections attribute. This topic is discussed in more detail below. ","description":" The example layout consists of three rows: a row for the object/icon, a row containing a properties, and a row containing collections. In all three cases the row contains a single column s
 panning the full width of the page. For the property and collection rows, the column contains a","id":372886},"2646929":{"title":"Apache Isis vs …​","url":"guides/ugfun/ugfun.html#_ugfun_core-concepts_apache-isis-vs","body":"Apache Isis vs …​  Many other frameworks promise rapid application development and provide automatically generated user interfaces, so how do they compare to Apache Isis? ","description":" Many other frameworks promise rapid application development and provide automatically generated user interfaces, so how do they compare to Apache Isis? ","id":2646929},"3836440":{"title":"Running","url":"guides/dg/dg.html#__dg_ide_intellij_running","body":"Running  Let’s see how to run both the app and the tests. ","description":" Let’s see how to run both the app and the tests. ","id":3836440},"11600575":{"title":"Using Contributions","url":"pages/tg/tg.html#_using_contributions","body":"Using Contributions  One of Apache Isis' most powerful features is the abilit
 y for the UI to combine functionality from domain services into the representation of an entity. The effect is similar to traits or mix-ins in other languages, however the \"mixing in\" is done at runtime, within the Apache Isis metamodel. In Apache Isis' terminology, we say that the domain service action is contributed to the entity.  Any action of a domain service that has a domain entity type as one of its parameter types will (by default) be contributed. If the service action takes more than one argument, or does not have safe semantics, then it will be contributed as an entity action. If the service action has precisely one parameter type (that of the entity) and has safe semantics then it will be contributed either as a collection or as a property (dependent on whether it returns a collection of a scalar).  Why are contributions so useful? Because the service action will match not on the entity type, but also on any of the entity’s supertypes (all the way up to java.lang.Obj
 ect). That means that you can apply the dependency inversion principle to ensure that the modules of your application have acyclic dependencies; but in the UI it can still appear as if there are bidirectional dependencies between those modules. The lack of bidirectional dependencies can help save your app degrading into a big ball of mud.  Finally, note that the layout of contributed actions/collections/properties can be specified using the .layout.json file (and it is highly recommended that you do so). ","description":" One of Apache Isis' most powerful features is the ability for the UI to combine functionality from domain services into the representation of an entity. The effect is similar to traits or mix-ins in other languages, however the \"mixing in\" is done at runtime, within the Apache Isis metamodel","id":11600575},"12649581":{"title":"Mark the version as released","url":"guides/cgcom/cgcom.html#_mark_the_version_as_released","body":"Mark the version as released  In JIRA
 , go to the administration section for the Apache Isis project and update the version as being released.  In the Kanban view this will have the effect of marking all tickets as released (clearing the \"done\" column). ","description":" In JIRA, go to the administration section for the Apache Isis project and update the version as being released. ","id":12649581},"13573617":{"title":"hide…​()","url":"guides/rgcms/rgcms.html#_rgcms_methods_prefixes_hide","body":"hide…​()  The hide…​() supporting method is called for properties, collections and actions. It allows the property/collection to be completely hidden from view.  It’s comparatively rare for properties or collections to be imperatively hidden from view, but actions are sometimes hidden or shown visible (as opposed to being just disabled, ie greyed out).  The signature of the supporting method is simply:  Returning true will hide the property, collection or action, returning false leaves it visible.  For example, t
 o hide an action:  Or, to hide a property: ","description":" The hide…​() supporting method is called for properties, collections and actions. It allows the property/collection to be completely hidden from view. ","id":13573617},"14971197":{"title":"Suppressing 'remember me'","url":"guides/ugvw/ugvw.html#_ugvw_configuration-properties_suppressing-remember-me","body":"Suppressing 'remember me'  The 'remember me' checkbox on the login page can be suppressed, if required, by setting a configuration flag. ","description":" The 'remember me' checkbox on the login page can be suppressed, if required, by setting a configuration flag. ","id":14971197},"16629694":{"title":"allowLateRegistration","url":"migration-notes/migration-notes.html#__code_allowlateregistration_code","body":"allowLateRegistration  One possible issue is that (as per ISIS-830) the EventBusService is now initialized as one of the first domain services; this is to ensure that any object lifecycle events caused by domai
 n services initializing themselves can be posted on the event bus for subscribers. The typical case for such lifecycle events to occur is from domain services that seed reference data; one such example can be found in the (non-ASF) Isis addons' security module.  In previous releases, the ordering of initialization for the EventBusService was undefined (but would typically be towards the \"end\" of the list of services. What this meant in practice is that it generally didn’t matter whether (domain service) subscribers were initialized before or after seed services.  Now, though, because the EventBusService is initialized early on, it proactively checks that all subscribers have been registered before any event posts occur (so that no events get missed). If any subscriber attempts to register after at least one event has been posted, then the service will fail fast and the framework will not start. The error looks something like:  To ensure that subscriber domain services are initia
 lized before \"seed\" domain services, the @DomainServiceLayout#menuOrder() attribute can be used. Normally this attribute is just used to order UI-visible services on the menu bars, but it also is used internally to sequence the internal list of services being initialized.  Alternatively, you can disable this checking within the EventBusService using:  If you do that, be aware that not all subscribers may not receive some events generated by other domain services.  For more details, see the EventBusService man page. ","description":" One possible issue is that (as per ISIS-830) the EventBusService is now initialized as one of the first domain services; this is to ensure that any object lifecycle events caused by domain services initializing themselves can be posted on the event bus for subscribers. The typical case for such","id":16629694},"17000573":{"title":"ObjectCreatedEvent","url":"guides/rgcms/rgcms.html#_rgcms_classes_lifecycleevent_ObjectCreatedEvent","body":"ObjectCreatedE
 vent  Subclass of AbstractLifecycleEvent, broadcast when an object is first instantiated using the DomainObjectContainer's #newTransientInstance(…​) method.  ObjectCreatedEvent.Default is the concrete implementation that is used. ","description":" Subclass of AbstractLifecycleEvent, broadcast when an object is first instantiated using the DomainObjectContainer's #newTransientInstance(…​) method. ","id":17000573},"17618894":{"title":"New Feature","url":"release-notes/release-notes.html#_new_feature_20","body":"New Feature ","description":"","id":17618894},"17724516":{"title":"Multi-select action parameters","url":"guides/ugfun/ugfun.html#_multi_select_action_parameters","body":"Multi-select action parameters  As well as scalar values, action parameters can also be collections. For this to be valid, a choices or autoComplete supporting method must be provided.  For example, suppose we want to \"tag\" or \"label\" an object: ","description":" As well as scalar values, action pa
 rameters can also be collections. For this to be valid, a choices or autoComplete supporting method must be provided. ","id":17724516},"18445041":{"title":"Verifying Releases","url":"downloads.html#_verifying_releases","body":"Verifying Releases ","description":"","id":18445041},"19254915":{"title":"API & Implementation","url":"guides/rgsvc/rgsvc.html#_api_implementation_7","body":"API & Implementation  The API of Scratchpad service is:  This class (o.a.i.applib.services.scratchpad.Scratchpad) is also the implementation. And, as you can see, the service is just a request-scoped wrapper around a java.util.Map. ","description":" The API of Scratchpad service is: ","id":19254915},"21190750":{"title":"Run the archetype","url":"pages/tg/tg.html#_run_the_archetype","body":"Run the archetype  Throughout this tutorial you can, if you wish, just checkout from the github repo wherever you see a \"git checkout\" note:  Run the simpleapp archetype to build an empty Isis application. With the *n
 ix bash shell, use:  Adjust as necessary if using Windows cmd.exe or Powershell.  This will generate the app in a petclinic directory. Move the contents back: ","description":" Throughout this tutorial you can, if you wish, just checkout from the github repo wherever you see a \"git checkout\" note: ","id":21190750},"21212015":{"title":"Key features","url":"pages/powered-by/powered-by.html#_key_features","body":"Key features ","description":"","id":21212015},"21857601":{"title":"Other Guides","url":"guides/cgcom/cgcom.html#_other_guides","body":"Other Guides  Apache Isis documentation is broken out into a number of user, reference and \"supporting procedures\" guides.  The user guides available are:  The reference guides are:  The remaining guides are:  This guide provides guidance for Apache Isis' own committers. ","description":" Apache Isis documentation is broken out into a number of user, reference and \"supporting procedures\" guides. ","id":21857601},"23125949":{"title":"Edit
 ing","url":"guides/dg/dg.html#__dg_ide_intellij_hints-and-tips_editing","body":"Editing ","description":"","id":23125949},"23524101":{"title":"Collections","url":"guides/ugvw/ugvw.html#_collections","body":"Collections  In the final row the collections are placed in tabs, simply one collection per tab. This corresponds to the following XML:  As with properties, actions can be associated with collections; this indicates that they should be rendered in the collection’s header. ","description":" In the final row the collections are placed in tabs, simply one collection per tab. This corresponds to the following XML: ","id":23524101},"26509816":{"title":"Commit changes","url":"guides/cgcom/cgcom.html#__cgcom_cutting-a-release_releasing-core_commit-changes","body":"Commit changes  Commit any changes from the preceding steps: ","description":" Commit any changes from the preceding steps: ","id":26509816},"27806498":{"title":"renderedAsDayBefore()","url":"guides/rgant/rgant.html#_rgant-P
 arameterLayout_renderedAsDayBefore","body":"renderedAsDayBefore()  The renderedAsDayBefore() attribute applies only to date parameters whereby the date will be rendered as the day before the value actually held in the domain object. It is ignored for parameters of other types. This attribute is also supported for properties.  This behaviour might at first glance appear odd, but the rationale is to support the use case of a sequence of instances that represent adjacent intervals of time. In such cases there would typically be startDate and endDate properties, eg for all of Q2. Storing this as a half-closed interval — eg [1-Apr-2015, 1-July-2015) — can substantially simplify internal algorithms; the endDate of one interval will correspond to the startDate of the next.  However, from an end-user perspective the requirement may be to render the interval as a fully closed interval; eg the end date should be shown as 30-Jun-2015.  This attribute therefore bridges the gap; it presents 
 the information in a way that makes sense to an end-user, but also stores the domain object in a way that is easy work with internally.  For example: ","description":" The renderedAsDayBefore() attribute applies only to date parameters whereby the date will be rendered as the day before the value actually held in the domain object. It is ignored for parameters of other types. This attribute is also supported for properties. ","id":27806498},"31857620":{"title":"Interacting with the services","url":"guides/rgsvc/rgsvc.html#_interacting_with_the_services","body":"Interacting with the services  Typically domain objects will have little need to interact with the CommandContext and Command directly; what is more useful is that these are persisted in support of the various use cases identified above.  One case however where a domain object might want to obtain the Command is to determine whether it has been invoked in the foreground, or in the background. It can do this using the getExecu
 tedIn() method:  Although not often needed, this then allows the domain object to access the Command object through the CommandContext service. To expand th above example:  If run in the background, it might then notify the user (eg by email) if all work is done.  This leads us onto a related point, distinguishing the current effective user vs the originating \"real\" user. When running in the foreground, the current user can be obtained from the UserService, using:  If running in the background, however, then the current user will be the credentials of the background process, for example as run by a Quartz scheduler job.  The domain object can still obtain the original (\"effective\") user that caused the job to be created, using: ","description":" Typically domain objects will have little need to interact with the CommandContext and Command directly; what is more useful is that these are persisted in support of the various use cases identified above. ","id":31857620},"36734123":{"
 title":"Bug","url":"release-notes/release-notes.html#_bug_8","body":"Bug ","description":"","id":36734123},"39248326":{"title":"Runtime vs Noop implementation","url":"guides/rgfis/rgfis.html#_runtime_vs_noop_implementation","body":"Runtime vs Noop implementation  The framework provides two implementations:  The …​Default implementation takes priority over the …​Noop implementation. ","description":" The framework provides two implementations: ","id":39248326},"39290887":{"title":"Implementation","url":"guides/rgsvc/rgsvc.html#_implementation_22","body":"Implementation  The core framework provides a default implementation of this service (o.a.i.core.metamodel.services.container.DomainObjectContainerDefault). ","description":" The core framework provides a default implementation of this service (o.a.i.core.metamodel.services.container.DomainObjectContainerDefault). ","id":39290887},"42240053":{"title":"Screenshots","url":"guides/ugvw/ugvw.html#_screenshots_9","body":"Screensho
 ts  The screenshot below shows the Isis addons example todoapp (not ASF) with a 'brand logo' image in its header:  A custom brand logo (typically larger) can also be specified for the signin page: ","description":" The screenshot below shows the Isis addons example todoapp (not ASF) with a 'brand logo' image in its header: ","id":42240053},"44021072":{"title":"Subsidiary Goals","url":"guides/rgcms/rgcms.html#_subsidiary_goals","body":"Subsidiary Goals  There are a number of subsidiary goals of the AppManifest class (though not all of these are fully implemented): ","description":" There are a number of subsidiary goals of the AppManifest class (though not all of these are fully implemented): ","id":44021072},"44483327":{"title":"New Feature","url":"release-notes/release-notes.html#_new_feature_17","body":"New Feature ","description":"","id":44483327},"57327287":{"title":"cssClassFa()","url":"guides/rgant/rgant.html#_rgant-ViewModelLayout_cssClassFa","body":"cssClassFa()  The cssClas
 sFa() attribute is used to specify the name of a Font Awesome icon name, to be rendered as the domain object’s icon.  These attribute can also be applied to domain objects to specify the object’s icon, and to actions to specify an icon for the action’s representation as a button or menu item.  If necessary the icon specified can be overridden by a particular object instance using the iconName() method.  For example:  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.  The related cssClassFaPosition() attribute is currently unused for domain objects; the icon is always rendered to the left. ","description":" The cssClassFa() attribute is used to specify the name of a Font Awesome icon name, to be rendered as the domain object’s icon. ","id":57327287
 },"64932464":{"title":"Other Guides","url":"guides/ugtst/ugtst.html#_other_guides","body":"Other Guides  Apache Isis documentation is broken out into a number of user, reference and \"supporting procedures\" guides.  The user guides available are:  The reference guides are:  The remaining guides are: ","description":" Apache Isis documentation is broken out into a number of user, reference and \"supporting procedures\" guides. ","id":64932464},"66604001":{"title":"@Programmatic","url":"guides/rgant/rgant.html#_rgant-Programmatic","body":"@Programmatic ","description":"","id":66604001},"68441589":{"title":"License headers","url":"guides/cgcom/cgcom.html#__cgcom_cutting-a-release_releasing-core_license-headers","body":"License headers  The Apache Release Audit Tool RAT (from the Apache Creadur project) checks for missing license header files. The parent pom.xml of each releasable module specifies the RAT Maven plugin, with a number of custom exclusions.  To run the RAT tool, use:  whe
 re rat.numUnapprovedLicenses property is set to a high figure, temporarily overriding the default value of 0. This will allow the command to run over all submodules, rather than failing after the first one. The command writes out a target\\rat.txt for each submodule. missing license notes are indicated using the key !???. The for command collates all the errors.  Investigate and fix any reported violations, typically by either:  To add missing headers, use the groovy script addmissinglicenses.groovy (in the scripts directory) to automatically insert missing headers for certain file types. The actual files checked are those with extensions specified in the line def fileEndings = [\".java\", \".htm\"]:  (If the -x is omitted then the script is run in \"dry run\" mode). Once you’ve fixed all issues, confirm once more that apache-rat-plugin no longer reports any license violations, this time leaving the rat.numUnapprovedLicenses property to its default, 0: ","description":" The Apache
  Release Audit Tool RAT (from the Apache Creadur project) checks for missing license header files. The parent pom.xml of each releasable module specifies the RAT Maven plugin, with a number of custom exclusions. ","id":68441589},"73703450":{"title":"New Feature","url":"release-notes/release-notes.html#_new_feature_29","body":"New Feature ","description":"","id":73703450},"75054401":{"title":"Supporting Method Prefixes","url":"guides/rgcms/rgcms.html#_rgcms_methods_prefixes","body":"Supporting Method Prefixes  Supporting methods are those that are associated with properties, collections and actions, providing additional imperative business rule checking and behaviour to be performed when the user interacts with those object members.  This association is performed by name matching. Thus, a property called \"firstName\", derived from a method getFirstName() may have supporting methods hideFirstName(), disableFirstName() and validateFirstName(). Supporting methods are, therefore, each c
 haracterized by their own particular prefix.  The table below lists the method prefixes that are recognized as part of Apache Isis' default programming model. ","description":" Supporting methods are those that are associated with properties, collections and actions, providing additional imperative business rule checking and behaviour to be performed when the user interacts with those object members. ","id":75054401},"77231561":{"title":"Interaction Execution","url":"guides/rgcms/rgcms.html#_rgcms_schema-ixn","body":"Interaction Execution  The interaction (\"ixn\") schema defines the serialized form of an action invocation or a property edit. In fact, it actually defines a call-graph of such executions for those cases where the WrapperFactory is used to execute sub-actions/property edits.  Each execution identifies the target object, the member to invoke, and the arguments. It also captures metrics about the execution, and the result of the execution (eg return value of an action in
 vocation). ","description":" The interaction (\"ixn\") schema defines the serialized form of an action invocation or a property edit. In fact, it actually defines a call-graph of such executions for those cases where the WrapperFactory is used to execute sub-actions/property edits. ","id":77231561},"78112488":{"title":"Screencast","url":"guides/ugvw/ugvw.html#_screencast","body":"Screencast  This screencast describes the feature. ","description":" This screencast describes the feature. ","id":78112488},"78624086":{"title":"Other Guides","url":"guides/ugsec/ugsec.html#_other_guides","body":"Other Guides  Apache Isis documentation is broken out into a number of user, reference and \"supporting procedures\" guides.  The user guides available are:  The reference guides are:  The remaining guides are: ","description":" Apache Isis documentation is broken out into a number of user, reference and \"supporting procedures\" guides. ","id":78624086},"80534397":{"title":"ContentMappingService"
 ,"url":"guides/rgsvc/rgsvc.html#_rgsvc_presentation-layer-spi_ContentMappingService","body":"ContentMappingService  The ContentMappingService supports the (default implementation of the) ContentNegotiationService enabling the RestfulObjects viewer to represent domain objects in some other format as specified by the HTTP Accept header.  See ContentNegotiationService for further discussion. ","description":" The ContentMappingService supports the (default implementation of the) ContentNegotiationService enabling the RestfulObjects viewer to represent domain objects in some other format as specified by the HTTP Accept header. ","id":80534397},"83803344":{"title":"MessageService","url":"guides/rgsvc/rgsvc.html#_rgsvc_application-layer-api_MessageService","body":"MessageService  The MessageService allows domain objects to raise information, warning or error messages. These messages can either be simple strings, or can be translated. ","description":" The MessageService allows domain obje
 cts to raise information, warning or error messages. These messages can either be simple strings, or can be translated. ","id":83803344},"83933647":{"title":"Persistence Concerns","url":"guides/ugbtb/ugbtb.html#_persistence_concerns","body":"Persistence Concerns ","description":"","id":83933647},"85931482":{"title":"Task","url":"release-notes/release-notes.html#_task_24","body":"Task ","description":"","id":85931482},"87271564":{"title":"2004:","url":"pages/articles-and-presentations/articles-and-presentations.html#_2004","body":"2004: ","description":"","id":87271564},"90561824":{"title":"Wicket Viewer","url":"release-notes/release-notes.html#_wicket_viewer_8","body":"Wicket Viewer ","description":"","id":90561824},"90935214":{"title":"Wicket Viewer","url":"release-notes/release-notes.html#_wicket_viewer_10","body":"Wicket Viewer ","description":"","id":90935214},"91902412":{"title":"The issue in more detail","url":"guides/ugodn/ugodn.html#_the_issue_in_more_detail","body":"The iss
 ue in more detail  Consider these entities (yuml.me/b8681268):  In the course of a transaction, the Agreement entity is loaded into memory (not necessarily modified), and then new AgreementRoles are associated to it.  All these entities implement Comparable using ObjectContracts, and the implementation of AgreementRole's (simplified) is:  while Agreement's is implemented as:  and Party's is similarly implemented as:  DataNucleus’s persistence-by-reachability algorithm adds the AgreementRole instances into a SortedSet, which causes AgreementRole#compareTo() to fire:  In other words, in figuring out whether AgreementRole requires the persistence-by-reachability algorithm to run, it causes the adjacent associated entity Party to also be retrieved. ","description":" Consider these entities (yuml.me/b8681268): ","id":91902412},"92467660":{"title":"API and Usage","url":"guides/ugtst/ugtst.html#_ugtst_fixture-scripts_api-and-usage","body":"API and Usage  There are two parts to using fixt
 ure scripts: the FixtureScripts domain service class, and the FixtureScript view model class:  Let’s look at FixtureScripts domain service in more detail first. ","description":" There are two parts to using fixture scripts: the FixtureScripts domain service class, and the FixtureScript view model class: ","id":92467660},"95725933":{"title":"Appendix: Isis Add-ons (not ASF)","url":"guides/ugvw/ugvw.html#_ugvw_isis-addons","body":"Appendix: Isis Add-ons (not ASF) ","description":"","id":95725933},"96583162":{"title":"Configure toolchains plugin","url":"guides/cgcom/cgcom.html#_configure_toolchains_plugin","body":"Configure toolchains plugin  Apache Isis releases are built using Java 7, enforced using the maven toolchains plugin. Ensure that Java 7 is installed and the toolchains plugin is configured, as described in the contributors' guide. ","description":" Apache Isis releases are built using Java 7, enforced using the maven toolchains plugin. Ensure that Java 7 is installed and 
 the toolchains plugin is configured, as described in the contributors' guide. ","id":96583162},"98976996":{"title":"Bootstrapping","url":"guides/rgcms/rgcms.html#_bootstrapping","body":"Bootstrapping  One of the primary goals of the AppManifest is to unify the bootstrapping of both integration tests and the webapp. This requires that the integration tests and webapp can both reference the implementation.  We strongly recommend using a myapp-app Maven module to hold the implementation of the AppManifest. This Maven module can then also hold dependencies which are common to both integration tests and the webapp, specifically the org.apache.isis.core:isis-core-runtime and the org.apache.isis.core:isis-core-wrapper modules.  We also strongly recommend that any application-layer domain services and view models (code that references persistent domain entities but that is not referenced back) is moved to this myapp-app module. This will allow the architectural layering of the overall appli
 cation to be enforced by Maven.  What then remains is to update the bootstrapping code itself. ","description":" One of the primary goals of the AppManifest is to unify the bootstrapping of both integration tests and the webapp. This requires that the integration tests and webapp can both reference the implementation. ","id":98976996},"99090360":{"title":"Running the App","url":"guides/ugfun/ugfun.html#__ugfun_getting-started_simpleapp-archetype_running-the-app","body":"Running the App  The simpleapp archetype generates a single WAR file, configured to run both the Wicket viewer and the Restful Objects viewer. The archetype also configures the DataNucleus/JDO Objectstore to use an in-memory HSQLDB connection.  Once you’ve built the app, you can run the WAR in a variety of ways. ","description":" The simpleapp archetype generates a single WAR file, configured to run both the Wicket viewer and the Restful Objects viewer. The archetype also configures the DataNucleus/JDO Objectstore 
 to use an in-memory HSQLDB connection. ","id":99090360},"100682258":{"title":"Update dependencies","url":"guides/cgcom/cgcom.html#_update_dependencies","body":"Update dependencies  With the release complete, now is a good time to bump versions of dependencies (so that there is a full release cycle to identify any possible issues).  You will probably want to create a new JIRA ticket for these updates (or if minor then use the \"catch-all\" JIRA ticket raised earlier for the next release). ","description":" With the release complete, now is a good time to bump versions of dependencies (so that there is a full release cycle to identify any possible issues). ","id":100682258},"102347041":{"title":"Bug","url":"release-notes/release-notes.html#_bug_10","body":"Bug ","description":"","id":102347041},"104167755":{"title":"How to implement a spellchecker?","url":"guides/ugbtb/ugbtb.html#_ugbtb_hints-and-tips_how-to-implement-a-spellchecker","body":"How to implement a spellchecker?  From this
  thread on the Apache Isis users mailing list:  One way to implement is to use the event bus:  if if the change is made through an edit, you can use @Property#domainEvent().  You’ll need some way to know which fields should be spell checked. Two ways spring to mind:  And you’ll (obviously) also need some sort of spell checker implementation to call. ","description":" From this thread on the Apache Isis users mailing list: ","id":104167755},"105480253":{"title":"Visitor","url":"guides/ugbtb/ugbtb.html#__code_visitor_code","body":"Visitor  More often than not, you’ll want to visit every element in the metamodel, and so for this you can instead subclass from MetaModelValidatorVisiting.Visitor:  You can then create your custom validator by subclassing MetaModelValidatorComposite and adding the visiting validator:  If you have more than one rule then each can live in its own visitor. ","description":" More often than not, you’ll want to visit every element in the metamodel, and s
 o for this you can instead subclass from MetaModelValidatorVisiting.Visitor: ","id":105480253},"106558909":{"title":"contributedAs()","url":"guides/rgant/rgant.html#_rgant-ActionLayout_contributedAs","body":"contributedAs()  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 nature nature of either VIEW or VIEW_CONTRIBUTIONS_ONLY, and the action must have safe action semantics, and takes a single argument, namely the contributee domain object.  For example:  It’s also possible to use the attribute to suppress the action completely:  In such cases, though, it would pr
 obably make more sense to annotate the action as either hidden or indeed @Programmatic. ","description":" 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). ","id":106558909},"106606865":{"title":"Using the Wicket Viewer","url":"guides/rgcfg/rgcfg.html#_using_the_wicket_viewer","body":"Using the Wicket Viewer  Most of the you’re likely to run Apache Isis using the Wicket viewer. In this case Apache Isis' \"deployment type\" concept maps to Wicket’s \"configuration\" concept:  Wicket’s mechanism for specifying the \"configuration\" is to use a context parameter in web.xml; Apache Isis automatically infers its own deployment type from this. In other words: ","description":" Most of the you’re likely to run Apache Isis using the Wicket viewer. In this case Apache Isis' \"deployment type\" concept maps to Wicket’s \"configuration\" concept: ","id":
 106606865},"108721033":{"title":"Incode Catalog","url":"guides/ugfun/ugfun.html#_ugfun_available-domain-services_incode-catalog","body":"Incode Catalog  The Incode Catalog website also provides a number of reusable modules, focusing on business logic for generic subdomains.  This section surveys the functionality available.  The modules themselves fall into a number of broader groups:  Each of the modules has a full README and demo application demonstrating their usage. The sections below briefly outline the capabilities of these modules. ","description":" The Incode Catalog website also provides a number of reusable modules, focusing on business logic for generic subdomains. ","id":108721033},"108815435":{"title":"unchanging() (1.15.0-SNAPSHOT)","url":"guides/rgant/rgant.html#_rgant-PropertyLayout_unchanging","body":"unchanging() (1.15.0-SNAPSHOT)  The unchanging() attribute is used to indicate that the value held by the property never changes over time, even when other properties 
 of the object do change.  Setting this attribute to true is used as a hint to the viewer to not redraw the property after an AJAX update of some other property/ies of the object have changed. This is primarily for performance, eg can improve the user experience when rendering PDFs/blobs.  Note that for this to work, the viewer will also ensure that none of the property’s parent component (such as a tab group panel) are re-rendered.  For example: ","description":" The unchanging() attribute is used to indicate that the value held by the property never changes over time, even when other properties of the object do change. ","id":108815435},"109833874":{"title":"Persistable","url":"guides/rgcms/rgcms.html#_rgcms_classes_mixins_Persistable","body":"Persistable  All domain entities automatically implement the DataNucleus Persistable role interface as a result of the enhancer process (the fully qualified class name is org.datanucleus.enhancement.Persistable). So as a developer you do no
 t need to write any code to obtain the mixins that contribute to this interface. ","description":" All domain entities automatically implement the DataNucleus Persistable role interface as a result of the enhancer process (the fully qualified class name is org.datanucleus.enhancement.Persistable). So as a developer you do not need to write any code to obtain the mixins that contribute to this interface. ","id":109833874},"112375674":{"title":"Auditing","url":"migration-notes/migration-notes.html#_auditing","body":"Auditing  The AuditingService SPI service has been deprecated, instead replaced by the AuditerService.  There can be more than one implementation of this new SPI, and a framework-provided implementation (AuditerServiceLogging) will log to a file. The (non-ASF) Isis addons' audit module also implements the new SPI. ","description":" The AuditingService SPI service has been deprecated, instead replaced by the AuditerService. ","id":112375674},"114685873":{"title":"Usage","ur
 l":"guides/rgsvc/rgsvc.html#_usage_19","body":"Usage  To indicate that an action invocation should be published, annotate it with the @Action#publishing() annotation.  To indicate that an property edit should be published, annotate it with the @Property#publishing() annotation.  To indicate that a changed object should be published is to annotate it with the @DomainObject#publishing() annotation. ","description":" To indicate that an action invocation should be published, annotate it with the @Action#publishing() annotation. ","id":114685873},"115229271":{"title":"Domain Entities","url":"guides/ugfun/ugfun.html#_ugfun_programming-model_domain-entities","body":"Domain Entities  Entities are persistent domain objects, with their persistence handled by JDO/DataNucleus. As such, they are mapped to a persistent object store, typically an RDBMS, with DataNucleus taking care of both lazy loading and also the persisting of modified (\"dirty\") objects.  Domain entities are generally decorat
 ed with both DataNucleus and Apache Isis annotations. Let’s look at some of the most commonly-used annotations.  To start with, entities are flagged as being \"persistence capable\", indicating how JDO/DataNucleus should manage their identity:  All domain entities will have some sort of mandatory key properties. The example below is a very simple case, where the entity is identified by a name property:  It’s also common for domain entities to have queries annotated on them. These are used by repository domain services to query for instances of the entity:  DataNucleus provides several APIs for defining queries, including entirely programmatic and type-safe APIs; but JDOQL is very similar to SQL and so easily learnt.  The corresponding repository method for the above query is: ","description":" Entities are persistent domain objects, with their persistence handled by JDO/DataNucleus. As such, they are mapped to a persistent object store, typically an RDBMS, with DataNucleus takin
 g care of both lazy loading and also the persisting of modified (\"dirty\") objects. ","id":115229271},"117553409":{"title":"Object Icon","url":"guides/ugfun/ugfun.html#_object_icon","body":"Object Icon  The icon is often the same for all instances of a particular class, and is picked up by convention.  It’s is also possible for an individual instance to return a custom icon, typically so that some significant state of that domain object is represented. For example, a custom icon could be used to represent a shipped order, say, or an overdue library loan. ","description":" The icon is often the same for all instances of a particular class, and is picked up by convention. ","id":117553409},"121574190":{"title":"Related Services","url":"guides/rgsvc/rgsvc.html#_related_services_18","body":"Related Services  The ActionInteractionContext service allows bulk actions to co-ordinate with each other.  The QueryResultsCache is useful for caching the results of expensive method calls. ","de
 scription":" The ActionInteractionContext service allows bulk actions to co-ordinate with each other. ","id":121574190},"121879267":{"title":"Wicket Viewer","url":"release-notes/release-notes.html#_wicket_viewer_2","body":"Wicket Viewer ","description":"","id":121879267},"122762699":{"title":"Contributee","url":"guides/rgcms/rgcms.html#_rgcms_classes_contributee","body":"Contributee  The interfaces listed in this chapter act as contributees; they allow domain services to contribute actions/properties/collections to any domain objects that implement these interfaces. ","description":" The interfaces listed in this chapter act as contributees; they allow domain services to contribute actions/properties/collections to any domain objects that implement these interfaces. ","id":122762699},"125299345":{"title":"Example","url":"guides/rgant/rgant.html#_example_2","body":"Example  This example is taken from the (non-ASF) Isis addons' todoapp: ","description":" This example is taken from the
  (non-ASF) Isis addons' todoapp: ","id":125299345},"125961908":{"title":"Do it!","url":"pages/tg/tg.html#_do_it","body":"Do it! ","description":"","id":125961908},"134804772":{"title":"How to handle void/null results","url":"guides/ugbtb/ugbtb.html#_ugbtb_hints-and-tips_how-to-handle-void-and-null-results","body":"How to handle void/null results  From this thread on the Apache Isis users mailing list:  One way to implement this idea is to provide a custom implementation of the RoutingService SPI domain service. The default implementation will either return the current object (if not null), else the home page (as defined by @HomePage) if one exists.  The following custom implementation refines this to use the breadcrumbs (available in the Wicket viewer) to return the first non-deleted domain object found in the list of breadcrumbs:  Note that the above implementation uses Java 8, so if you are using Java 7 then you’ll need to backport accordingly. ","description":" From this thread
  on the Apache Isis users mailing list: ","id":134804772},"140760147":{"title":"Isis Add-on modules","url":"guides/ugvw/ugvw.html#_isis_add_on_modules","body":"Isis Add-on modules  Some of the (non-ASF) Isis Addons modules also provide services whose actions appear in top-level menus.  The security's module places its domain service menus in three top-level menus:  Meanwhile the devutils module places its actions - to download layouts and so forth - on a \"Prototyping\" top-level menu, on the SECONDARY menu bar.  Currently there is no facility to alter the placement of these services. However, their UI can be suppressed using security or using a vetoing subscriber. ","description":" Some of the (non-ASF) Isis Addons modules also provide services whose actions appear in top-level menus. ","id":140760147},"145340696":{"title":"Registering the Services","url":"guides/rgsvc/rgsvc.html#_registering_the_services_20","body":"Registering the Services  The (non-ASF) Isis addons' audit module
  provides an implementation of this service (AuditingService), and also provides a number of related domain services (AuditingServiceMenu, AuditingServiceRepository and AuditingServiceContributions).  Assuming that an AppManifest is being used to bootstrap the app) then this can be activated by updating the pom.xml and updating the AppManifest#getModules() method.  If menu items or contributions are not required in the UI, these can be suppressed either using security or by implementing a vetoing subscriber. ","description":" The (non-ASF) Isis addons' audit module provides an implementation of this service (AuditingService), and also provides a number of related domain services (AuditingServiceMenu, AuditingServiceRepository and AuditingServiceContributions). ","id":145340696},"148135206":{"title":"Layout Metadata Reader (deprecated)","url":"guides/ugbtb/ugbtb.html#_ugbtb_programming-model_layout-metadata-reader","body":"Layout Metadata Reader (deprecated)  The metadata for domain 
 objects is obtained both annotations and files. There is also deprecated support for reading layouts from .layout.json files. This service provides an SPI (and default implementation) for reading layouts defined in this fashion. ","description":" The metadata for domain objects is obtained both annotations and files. There is also deprecated support for reading layouts from .layout.json files. This service provides an SPI (and default implementation) for reading layouts defined in this fashion. ","id":148135206},"153666205":{"title":"Implementation","url":"guides/rgsvc/rgsvc.html#_implementation_17","body":"Implementation  The core framework provides a default implementation of this service (o.a.i.core.metamodel.services.title.TitleServiceDefault). ","description":" The core framework provides a default implementation of this service (o.a.i.core.metamodel.services.title.TitleServiceDefault). ","id":153666205},"155655500":{"title":"@PrimaryKey (javax.jdo)","url":"guides/rgant/rgant.h
 tml#_rgant-PrimaryKey","body":"@PrimaryKey (javax.jdo) ","description":"","id":155655500},"158069558":{"title":"Usability: Defaults","url":"pages/tg/tg.html#_usability_defaults","body":"Usability: Defaults  Quick detour: often we want to set up defaults to go with choices. Sensible defaults for action parameters can really improve the usability of the app. ","description":" Quick detour: often we want to set up defaults to go with choices. Sensible defaults for action parameters can really improve the usability of the app. ","id":158069558},"158897592":{"title":"Refactoring","url":"guides/dg/dg.html#__dg_ide_intellij_hints-and-tips_refactoring","body":"Refactoring  Loads of good stuff on the Refactor menu; most used are:  If you can’t remember all those shortcuts, just use ctrl-shift-alt-T (might want to rebind that to something else!) and get a context-sensitive list of refactorings available for the currently selected object ","description":" Loads of good stuff on the Refactor 
 menu; most used are: ","id":158897592},"160872749":{"title":"Related Services","url":"guides/rgfis/rgfis.html#_related_services","body":"Related Services  The default implementation of ContentNegotiationService delegates to ContentMappingService (if present) to convert domain entities into a stable form (eg DTO).  The ContentNegotiationService is itself called by the (default implementation of) RepresentationService. ","description":" The default implementation of ContentNegotiationService delegates to ContentMappingService (if present) to convert domain entities into a stable form (eg DTO). ","id":160872749},"163915714":{"title":"web.xml","url":"migration-notes/migration-notes.html#_web_xml","body":"web.xml  In the web.xml, the \"isis.viewers\" context-param is now ignored. Instead the viewer_wicket.properties and viewer_restfulobjects.properties will both be loaded if present (but neither need be present). ","description":" In the web.xml, the \"isis.viewers\" context-param is now
  ignored. Instead the viewer_wicket.properties and viewer_restfulobjects.properties will both be loaded if present (but neither need be present). ","id":163915714},"165602306":{"title":"GridLoaderService","url":"guides/rgsvc/rgsvc.html#_rgsvc_presentation-layer-spi_GridLoaderService","body":"GridLoaderService  The GridLoaderService provides the ability to load the XML layout (grid) for a domain class. ","description":" The GridLoaderService provides the ability to load the XML layout (grid) for a domain class. ","id":165602306},"165750333":{"title":"loaded()","url":"guides/rgcms/rgcms.html#_rgcms_methods_lifecycle_loaded","body":"loaded()  The loaded() lifecycle callback method is called when a (persistent) object has just been loaded from the object store. ","description":" The loaded() lifecycle callback method is called when a (persistent) object has just been loaded from the object store. ","id":165750333},"166045728":{"title":"Sanity Check","url":"guides/cgcom/cgcom.html#_sanit
 y_check_2","body":"Sanity Check  Ensure that the framework builds ok using the same command that your CI server is set up to execute (see section above). ","description":" Ensure that the framework builds ok using the same command that your CI server is set up to execute (see section above). ","id":166045728},"166899251":{"title":"Installing and Setting up","url":"guides/dg/dg.html#__dg_ide_intellij_installing","body":"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. ","description":" 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. ","id":166899251},"167039338":{"title":"Task","url":"release-notes/release-notes.html#_task_14","body":"Task 
 ","description":"","id":167039338},"169081251":{"title":"Interaction","url":"guides/rgsvc/rgsvc.html#__code_interaction_code","body":"Interaction  The public API of the Interaction class consists of:  This class is concrete (is also the implementation). ","description":" The public API of the Interaction class consists of: ","id":169081251},"174738887":{"title":"Related functionality","url":"guides/ugvw/ugvw.html#_related_functionality_2","body":"Related functionality  The Recent Pages also lists recently visited pages, selected from a drop-down. ","description":" The Recent Pages also lists recently visited pages, selected from a drop-down. ","id":174738887},"175028546":{"title":"Implementation","url":"guides/rgsvc/rgsvc.html#_implementation_5","body":"Implementation  The framework provides a default implementation of this service, namely GridServiceDefault. ","description":" The framework provides a default implementation of this service, namely GridServiceDefault. ","id":17502854
 6},"175197970":{"title":"Performance tuning","url":"pages/tg/tg.html#_performance_tuning","body":"Performance tuning  The QueryResultsCache (request-scoped) domain service allows arbitrary objects to be cached for the duration of a request.  This can be helpful for \"naive\" code which would normally make the same query within a loop. ","description":" The QueryResultsCache (request-scoped) domain service allows arbitrary objects to be cached for the duration of a request. ","id":175197970},"175636232":{"title":"RepositoryService","url":"guides/rgsvc/rgsvc.html#_rgsvc_persistence-layer-api_RepositoryService","body":"RepositoryService  The RepositoryService collects together methods for creating, persisting and searching for entities from the underlying persistence store. It acts as an abstraction over the JDO/DataNucleus objectstore.  You can use it during prototyping to write naive queries (find all rows, then filter using the Guava Predicate API, or you can use it to call JDO name
 d queries using JDOQL.  As an alternative, you could also use JDO typesafe queries through the IsisJdoSupport service. ","description":" The RepositoryService collects together methods for creating, persisting and searching for entities from the underlying persistence store. It acts as an abstraction over the JDO/DataNucleus objectstore. ","id":175636232},"176767338":{"title":"Command and Events","url":"guides/rgsvc/rgsvc.html#__rgsvc_intro_commands-and-events","body":"Command and Events  A good number of the domain services manage the execution of action invocations/property edits, along with the state of domain objects that are modified as a result of these. These services capture information which can then be used for various purposes, most notably for auditing or for publishing events, or for deferring execution such that the execution be performed in the background at some later date.  The diagram below shows how these services fit together. The outline boxes are services while
  the coloured boxes represent data structures - defined in the applib and therefore accessible to domain applications - which hold various information about the executions.  To explain:  Implementations of CommandService can use the Command#getMemento() method to obtain a XML equivalent of that Command, reified using the cmd.xsd schema. This can be converted back into a CommandDto using the CommandDtoUtils utility class (part of the applib).  Similarly, implementations of PublisherService can use the InteractionDtoUtils utility class to obtain a InteractionDto representing the interaction, either just for a single execution or for the entire call-graph. This can be converted into XML in a similar fashion.  Likewise, the PublishedObjects class passed to the PublisherService at the end of the interaction provides the PublishedObjects#getDto() method which returns a ChangesDto instance. This can be converted into XML using the ChangesDtoUtils utility class.  One final point: multiple P
 ublisherService implementations are supported because different implementations may have different responsibilities. For example, the (non-ASF) Isis addons' publishmq module is responsible for publishing messages onto an ActiveMQ event bus, for inter-system communication. However, the SPI can also be used for profiling; each execution within the call-graph contains metrics of the number of objects loaded or modified as a result of that execution, and thus could be used for application profiling. The framework provides a default PublisherServiceLogging implementation that logs this using SLF4J. ","description":" A good number of the domain services manage the execution of action invocations/property edits, along with the state of domain objects that are modified as a result of these. These services capture information which can then be used for various purposes, most notably for auditing or for publishing events","id":176767338},"178125062":{"title":"domainEvent()","url":"guides/rgan
 t/rgant.html#_rgant-Action_domainEvent","body":"domainEvent()  Whenever a domain object (or list of domain objects) is to be rendered, the framework fires off multiple domain events for every property, collection and action of the domain object. In the cases of the domain object’s actions, the events that are fired are:  Subscribers subscribe through the EventBusService using either Guava or Axon Framework annotations and can influence each of these phases.  By default the event raised is ActionDomainEvent.Default. For example:  The domainEvent() attribute allows a custom subclass to be emitted allowing more precise subscriptions (to those subclasses) to be defined instead. This attribute is also supported for collections and properties.  For example:  The benefit is that subscribers can be more targeted as to the events that they subscribe to. ","description":" Whenever a domain object (or list of domain objects) is to be rendered, the framework fires off multiple domain events f
 or every property, collection and action of the domain object. In the cases of the domain object’s actions, the events that are fired are: ","id":178125062},"180783343":{"title":"TranslatableException","url":"guides/ugbtb/ugbtb.html#__code_translatableexception_code","body":"TranslatableException  Another mechanism by which messages can be rendered to the user are as the result of exception messages thrown and recognized by an ExceptionRecognizer.  In this case, if the exception implements TranslatableException, then the message will automatically be translated before being rendered. The TranslatableException itself takes the form: ","description":" Another mechanism by which messages can be rendered to the user are as the result of exception messages thrown and recognized by an ExceptionRecognizer. ","id":180783343},"183226640":{"title":"updatedLifecycleEvent()","url":"guides/rgant/rgant.html#_rgant-DomainObject_updatedLifecycleEvent","body":"updatedLifecycleEvent()  Whenever a (
 persistent) domain object has been modified and has been updated in the database, an \"updated\" lifecycle event is fired.  Subscribers subscribe through the EventBusService and can use the event to obtain a reference to the domain object.  By default the event raised is ObjectUpdatedEvent.Default. For example:  The purpose of the updatedLifecycleEvent() attribute is to allows a custom subclass to be emitted instead. A similar attribute is available for other lifecycle events.  For example:  The benefit is that subscribers can be more targeted as to the events that they subscribe to. ","description":" Whenever a (persistent) domain object has been modified and has been updated in the database, an \"updated\" lifecycle event is fired. ","id":183226640},"188123644":{"title":"2013","url":"pages/articles-and-presentations/articles-and-presentations.html#_2013","body":"2013 ","description":"","id":188123644},"189180810":{"title":"HoldsUpdatedAt","url":"guides/rgcms/rgcms.html#_rgcms_clas
 ses_roles_HoldsUpdatedAt","body":"HoldsUpdatedAt  The HoldsUpdatedAt role interface allows the (framework-provided) TimestampService to update each object with the current timestamp whenever it is modified in a transaction.  The interface is defined as:  The current time is obtained from the ClockService.  Entities that implement this interface often also implement HoldsUpdatedBy role interface; as a convenience the Timestampable interface combines the two roles. ","description":" The HoldsUpdatedAt role interface allows the (framework-provided) TimestampService to update each object with the current timestamp whenever it is modified in a transaction. ","id":189180810},"191180113":{"title":"persistence.xml","url":"guides/ugodn/ugodn.html#_ugodn_configuring_persistence-xml","body":"persistence.xml  DataNucleus will for itself also and read the META-INF/persistence.xml. In theory it can hold mappings and even connection strings. However, with Apache Isis we tend to use annotations ins
 tead and externalize connection strings. so its definition is extremely simply, specifying just the name of the \"persistence unit\".  Here’s the one provided by the SimpleApp archetype:  Normally all one needs to do is to change the persistence-unit name.  See DataNucleus' documentation on persistence.xml to learn more. ","description":" DataNucleus will for itself also and read the META-INF/persistence.xml. In theory it can hold mappings and even connection strings. However, with Apache Isis we tend to use annotations instead and externalize connection strings. so its definition is extremely simply, specifying just the name of the \"persistence unit","id":191180113},"193237835":{"title":"Core","url":"release-notes/release-notes.html#_core_8","body":"Core ","description":"","id":193237835},"193497711":{"title":"UI Hints","url":"guides/ugfun/ugfun.html#_ugfun_ui-hints","body":"UI Hints ","description":"","id":193497711},"194608562":{"title":"SPI","url":"guides/rgsvc/rgsvc.html#_sp
 i_19","body":"SPI  The SudoService.Spi service allows implementations of SudoService to notify other services/components that the effective user and roles are different. The default implementation of UserService has been refactored to leverage this SPI.  The names of these methods were chosen based on similar names within Shiro. ","description":" The SudoService.Spi service allows implementations of SudoService to notify other services/components that the effective user and roles are different. The default implementation of UserService has been refactored to leverage this SPI. ","id":194608562},"195374240":{"title":"Update the LDAP committee (if a PMC member)","url":"guides/cgcom/cgcom.html#_update_the_ldap_committee_if_a_pmc_member","body":"Update the LDAP committee (if a PMC member)  (Assuming that the new committer is a PMC member), also add them as to the PMC committee. This takes two steps:  The new committer does not officially become a member of the PMC until the ASF records 
 have been updated. ","description":" (Assuming that the new committer is a PMC member), also add them as to the PMC committee. This takes two steps: ","id":195374240},"195848147":{"title":"ICLA, obtain new account","url":"guides/cgcom/cgcom.html#_icla_obtain_new_account","body":"ICLA, obtain new account  If required (that is, if the committer is not already a committer for a different ASF project), then ask them to complete an ICLA. As a result of this, they should also get an @apache.org user name.  More info can be found in the ASF new committers guide. ","description":" If required (that is, if the committer is not already a committer for a different ASF project), then ask them to complete an ICLA. As a result of this, they should also get an @apache.org user name. ","id":195848147},"198329644":{"title":"Strings (Length)","url":"guides/ugfun/ugfun.html#__ugfun_programming-model_properties_datatypes_strings","body":"Strings (Length)  By default JDO/DataNucleus will map string prop
 erties to a VARCHAR(255). To limit the length, use the @Column(length=…​) annotation.  For example:  This is a good example of a case where Apache Isis infers domain semantics from the JDO annotation. ","description":" By default JDO/DataNucleus will map string properties to a VARCHAR(255). To limit the length, use the @Column(length=…​) annotation. ","id":198329644},"198382465":{"title":"Actions","url":"pages/tg/tg.html#_actions","body":"Actions  Most business functionality is implemented using actions basically a public method accepting domain classes and primitives as its parameter types. The action can return a domain entity, or a collection of entities, or a primitive/String/value, or void. If a domain entity is returned then that object is rendered immediately; if a collection is returned then the Wicket viewer renders a table. Such collections are sometimes called \"standalone\" collections. ","description":" Most business functionality is implemented using actions ba
 sically a public method accepting domain classes and primitives as its parameter types. The action can return a domain entity, or a collection of entities, or a primitive/String/value, or void. If a domain entity is returned then that object is rendered","id":198382465},"203208629":{"title":"New Feature","url":"release-notes/release-notes.html#_new_feature_18","body":"New Feature ","description":"","id":203208629},"203740710":{"title":"RoutingService","url":"guides/rgsvc/rgsvc.html#_rgsvc_presentation-layer-spi_RoutingService","body":"RoutingService  The RoutingService provides the ability to return (and therefore render) an alternative object from an action invocation.  There are two primary use cases:  Currently the routing service is used only by the Wicket viewer; it is ignored by the Restful Objects viewer. ","description":" The RoutingService provides the ability to return (and therefore render) an alternative object from an action invocation. ","id":203740710},"204452611":{"t
 itle":"Related services","url":"guides/rgsvc/rgsvc.html#_related_services_15","body":"Related services  The ConfigurationServiceMenu exposes the allConfigurationProperties action in the user interface. ","description":" The ConfigurationServiceMenu exposes the allConfigurationProperties action in the user interface. ","id":204452611},"207811701":{"title":"API","url":"guides/rgsvc/rgsvc.html#_api_2","body":"API  The API of TitleService is: ","description":" The API of TitleService is: ","id":207811701},"209853740":{"title":"To run","url":"guides/rgmvn/rgmvn.html#_to_run","body":"To run  The plugin is activated by default, so is run simply using:  This will run any tests, and then also - because the plugin is activated by the isis-validate property and bound to the test phase, will run the plugin’s validate goal.  If for any reason you want to disable the validation, use: ","description":" The plugin is activated by default, so is run simply using: ","id":209853740},"213642269":{"ti
 tle":"Moving on","url":"guides/ugfun/ugfun.html#__ugfun_getting-started_helloworld-archetype_moving-on","body":"Moving on  When you are ready to start working on your own app, we don’t recommend building on top of the helloworld app.  Instead, we suggest that you start with the simpleapp archetype instead. Although a little more complex, it provides more structure and tests, all of which will help you as your application grows. ","description":" When you are ready to start working on your own app, we don’t recommend building on top of the helloworld app. ","id":213642269},"216231183":{"title":"Raising a pull request","url":"guides/dg/dg.html#_raising_a_pull_request","body":"Raising a pull request  If you have your own fork, you can now simply push the changes you’ve made locally to your fork:  This will create a corresponding branch in the remote github repo. If you use gitk --all, you’ll also see a remotes/origin/ISIS-123-blobs branch.  Then, use github to raise a pull requ
 est. Pull requests sent to the Apache GitHub repositories will forward a pull request e-mail to the dev mailing list. You’ll probably want to sign up to the dev mailing list first before issuing your first pull request (though that isn’t mandatory).  The process to raise the pull request, broadly speaking: ","description":" If you have your own fork, you can now simply push the changes you’ve made locally to your fork: ","id":216231183},"220685197":{"title":"AbstractSubscriber","url":"guides/rgcms/rgcms.html#_rgcms_classes_super_AbstractSubscriber","body":"AbstractSubscriber  This is a convenience superclass for creating subscriber domain services on the EventBusService. It uses @PostConstruct and @PreDestroy callbacks to automatically register/unregister itself with the EventBusService.  It’s important that subscribers register before any domain services that might emit events on the EventBusService. For example, the (non-ASF) Isis addons' security module provides a domain 
 service that automatically seeds certain domain entities; these will generate lifecycle events and so any subscribers must be registered before such seed services. The easiest way to do this is to use the @DomainServiceLayout#menuOrder() attribute.  As a convenience, the AbstractSubscriber specifies this attribute. ","description":" This is a convenience superclass for creating subscriber domain services on the EventBusService. It uses @PostConstruct and @PreDestroy callbacks to automatically register/unregister itself with the EventBusService. ","id":220685197},"221961571":{"title":"Release prepare \"dry run\"","url":"guides/cgcom/cgcom.html#__cgcom_cutting-a-release_releasing-core_release-prepare-dry-run","body":"Release prepare \"dry run\"  Most of the work is done using the mvn release:prepare goal. Since this makes a lot of changes, we run it first in \"dry run\" mode; only if that works do we run the goal for real.  Run the dry-run as follows:  You may be prompted for the gpg 
 passphrase. ","description":" Most of the work is done using the mvn release:prepare goal. Since this makes a lot of changes, we run it first in \"dry run\" mode; only if that works do we run the goal for real. ","id":221961571},"224301547":{"title":"IsisWebAppBootstrapper","url":"guides/ugbtb/ugbtb.html#__code_isiswebappbootstrapper_code","body":"IsisWebAppBootstrapper  The IsisWebAppBootstrapper servlet context listener bootstraps the shared (global) metadata for the Apache Isis framework. This listener is not required (indeed must not be configured) if the Wicket viewer is in use.  Its definition is:  Its context parameters are: ","description":" The IsisWebAppBootstrapper servlet context listener bootstraps the shared (global) metadata for the Apache Isis framework. This listener is not required (indeed must not be configured) if the Wicket viewer is in use. ","id":224301547},"227377078":{"title":"Initialization","url":"guides/ugfun/ugfun.html#_ugfun_programming-model_domain-ser
 vices_initialization","body":"Initialization  Services can optionally declare lifecycle callbacks to initialize them (when the app is deployed) and to shut them down (when the app is undeployed).  An Apache Isis session is available when initialization occurs (so services can interact with the object store, for example).  The framework will call any public method annotated with @PostConstruct with either no arguments of an argument of type Map<String,String>. In the latter case, the framework passes in the configuration (isis.properties and any other component-specific configuration files).  Shutdown is similar; the framework will call any method annotated with @PreDestroy. ","description":" Services can optionally declare lifecycle callbacks to initialize them (when the app is deployed) and to shut them down (when the app is undeployed). ","id":227377078},"228550183":{"title":"Policies","url":"guides/cgcom/cgcom.html#_cgcom_policies","body":"Policies ","description":"","id":2285501
 83},"229025509":{"title":"Remove references to isis-viewer-wicket parent pom.","url":"migration-notes/migration-notes.html#_remove_references_to_code_isis_viewer_wicket_code_parent_pom","body":"Remove references to isis-viewer-wicket parent pom.  In earlier releases the Wicket viewer defined its own parent pom.xml for dependency management and its dependencies and to declare the various submodules that make up the viewer. This pom.xml has now been incorporated into the parent pom.xml for the Core framework.  Therefore, in the parent pom.xml of your own domain applications, remove: ","description":" In earlier releases the Wicket viewer defined its own parent pom.xml for dependency management and its dependencies and to declare the various submodules that make up the viewer. This pom.xml has now been incorporated into the parent pom.xml for the Core framework. ","id":229025509},"230599582":{"title":"AuditingServiceInternal","url":"guides/rgfis/rgfis.html#_rgfis_persistence-layer_Audi
 tingServiceInternal","body":"AuditingServiceInternal  The (internal) AuditingServiceInternal domain service acts as an internal facade to any configured AuditingService and AuditerService services. It is responsible for obtaining the details of all changes to domain objects within an interaction, and then to call the configured AuditingService to actually create audit entries of those changes. ","description":" The (internal) AuditingServiceInternal domain service acts as an internal facade to any configured AuditingService and AuditerService services. It is responsible for obtaining the details of all changes to domain objects within an interaction, and then to call the configured AuditingService to actually create audit entries of those changes. ","id":230599582},"232471644":{"title":"Registering Subscribers","url":"guides/rgsvc/rgsvc.html#_registering_subscribers","body":"Registering Subscribers  The register() method should be called in the @PostConstruct lifecycle method. It is
  valid and probably the least confusing to readers to also \"unregister\" in the @PreDestroy lifecycle method (though as noted above, unregistering is actually a no-op).  For example:  This works for both singleton (application-scoped) and also @RequestScoped domain services. ","description":" The register() method should be called in the @PostConstruct lifecycle method. It is valid and probably the least confusing to readers to also \"unregister\" in the @PreDestroy lifecycle method (though as noted above, unregistering is actually a no-op). ","id":232471644},"235512052":{"title":"Usage","url":"guides/rgsvc/rgsvc.html#_usage_21","body":"Usage  The usage will vary depending upon the conventions of the design. As of 1.9.0, the usage of the service has been centralized such that the packages to be scanned are located from the AppManifest's #getModules() method.  For example, the SimpleApp archetype's app manifest includes:  where the three module classes in effect define three differe
 nt package prefixes to search under (for domain services, fixture scripts and persistent entities).  Other usages of the ClassDiscoveryService are likely to work in a similar way, requiring some sort of scope to be specified. ","description":" The usage will vary depending upon the conventions of the design. As of 1.9.0, the usage of the service has been centralized such that the packages to be scanned are located from the AppManifest's #getModules() method. ","id":235512052},"238546442":{"title":"rebuildMetamodel()","url":"guides/rgcms/rgcms.html#__rgcms_classes_mixins_Object_rebuildMetamodel","body":"rebuildMetamodel()  The Object_rebuildMetamodel mixin provides the ability to discard the current internal metamodel data (an instance of ObjectSpecification) for the domain class of the rendered object, and recreate from code and other sources (most notably, layout XML data). It has the following signature: ","description":" The Object_rebuildMetamodel mixin provides the ability to d
 iscard the current internal metamodel data (an instance of ObjectSpecification) for the domain class of the rendered object, and recreate from code and other sources (most notably, layout XML data). It has the following signature: ","id":238546442},"238979657":{"title":"New Feature","url":"release-notes/release-notes.html#_new_feature_22","body":"New Feature ","description":"","id":238979657},"240026998":{"title":"Improvement","url":"release-notes/release-notes.html#_improvement_14","body":"Improvement ","description":"","id":240026998},"242030985":{"title":"1.4.0","url":"release-notes/release-notes.html#_release-notes_1.4.0","body":"1.4.0 ","description":"","id":242030985},"243439147":{"title":"hidden()","url":"guides/rgant/rgant.html#_rgant-Property_hidden","body":"hidden()  Properties can be hidden at the domain-level, indicating that they are not visible to the end-user. This attribute can also be applied to actions and collections.  For example:  The acceptable values for the w
 here parameter are:  For example, if a property is annotated with @Title, then normally this should be hidden from all tables. Annotating with @Property(where=Where.NOWHERE) overrides this. ","description":" Properties can be hidden at the domain-level, indicating that they are not visible to the end-user. This attribute can also be applied to actions and collections. ","id":243439147},"243876171":{"title":"Task","url":"release-notes/release-notes.html#_task_28","body":"Task ","description":"","id":243876171},"246275568":{"title":"Registering the Services","url":"guides/rgsvc/rgsvc.html#_registering_the_services_4","body":"Registering the Services  Assuming that the configuration-and-annotation services installer is configured (implicit if using the AppManifest to bootstrap the app), then the default implementation of GridLoaderService is automatically registered and injected, and no further configuration is required.  To use an alternative implementation, use @DomainServiceLayout#m
 enuOrder() (as explained in the introduction to this guide). That said, there should be little reason to use a different implementation; if behaviour does need to be changed, it would also be possible to replace the implementation of either the GridLoaderService or the GridSystemService. ","description":" Assuming that the configuration-and-annotation services installer is configured (implicit if using the AppManifest to bootstrap the app), then the default implementation of GridLoaderService is automatically registered and injected, and no further configuration is required. ","id":246275568},"246409050":{"title":"Using system properties","url":"guides/ugbtb/ugbtb.html#_using_system_properties","body":"Using system properties  The servlet context initializer will search for any system properties called isis.xxx and if present will use them as overrides.  Thus, an alternative option for a Docker image is to bootstrap the servlet container (Tomcat, Jetty) with appropriate system prope
 rties set up. For example, with Tomcat this can be done by writing into the conf/catalina.properties file (see for example this stackoverflow post).  The Docker’s ENTRYPOINT therefore just needs to parse the Docker container’s own command line arguments and use to create this file. ","description":" The servlet context initializer will search for any system properties called isis.xxx and if present will use them as overrides. ","id":246409050},"251015067":{"title":"myapp-dom Module","url":"migration-notes/migration-notes.html#__code_myapp_dom_code_module","body":"myapp-dom Module  In your myapp-dom module (containing definitions of your persistent entities and domain services), create an empty class to represent the module. This should be at the root package for the domain, eg:  Since there is no requirement to actually instantiate this class (it merely provides the location of the myapp.dom package), we give it a private constructor.  If you have any other modules where you hav
 e either domain services or entities, similarly create an empty \"module\" class. ","description":" In your myapp-dom module (containing definitions of your persistent entities and domain services), create an empty class to represent the module. This should be at the root package for the domain, eg: ","id":251015067},"255768608":{"title":"Multi-tenancy support","url":"pages/isis-in-pictures/isis-in-pictures.html#_multi_tenancy_support","body":"Multi-tenancy support  Of the various Isis Addons, the security module has the most features. One significant feature is the ability to associate users and objects with a \"tenancy\". The todoapp uses this feature so that different users' list of todo items are kept separate from one another. A user with administrator is able to switch their own \"tenancy\" to the tenancy of some other user, in order to access the objects in that tenancy:  For more details, see the security module README. ","description":" Of the various Isis Addons, the secur
 ity module has the most features. One significant feature is the ability to associate users and objects with a \"tenancy\". The todoapp uses this feature so that different users' list of todo items are kept separate from one another. A user with administrator is","id":255768608},"257661017":{"title":"AppManifest (bootstrapping)","url":"guides/rgcms/rgcms.html#_rgcms_classes_AppManifest-bootstrapping","body":"AppManifest (bootstrapping)  This section describes how to implement the AppManifest interface to bootstrap both an Apache Isis web application, and also its integration tests. ","description":" This section describes how to implement the AppManifest interface to bootstrap both an Apache Isis web application, and also its integration tests. ","id":257661017},"259358868":{"title":"Hints and Tips","url":"guides/ugodn/ugodn.html#_ugodn_hints-and-tips","body":"Hints and Tips ","description":"","id":259358868},"266250802":{"title":"Implementation","url":"guides/rgsvc/rgsvc.html#_impl
 ementation_2","body":"Implementation  The (non-ASF) Isis addons' kitchensink app provides an example implementation:  which is rendered as: ","description":" The (non-ASF) Isis addons' kitchensink app provides an example implementation: ","id":266250802},"267695496":{"title":"Building Apache Isis","url":"guides/dg/dg.html#_dg_building-isis","body":"Building Apache Isis ","description":"","id":267695496},"273843820":{"title":"Simulated UI (WrapperFactory)","url":"guides/ugtst/ugtst.html#_simulated_ui_code_wrapperfactory_code","body":"Simulated UI (WrapperFactory)  When we talk about integration tests/specs here, we mean tests that exercise the domain object logic, through to the actual database. But we also want the tests to exercise the app from the users’s perspective, which means including the user interface.  For most other frameworks that would require having to test the application in a very heavy weight/fragile fashion using a tool such as Selenium, driving a web browser to 
 navigate . In this regard though, Apache Isis has a significant trick up its sleeve. Because Apache Isis implements the naked objects pattern, it means that the UI is generated automatically from the UI. This therefore allows for other implementations of the UI.  The WrapperFactory domain service allows a test to wrap domain objects and thus to interact with said objects \"as if\" through the UI:  If the test invokes an action that is disabled, then the wrapper will throw an appropriate exception. If the action is ok to invoke, it delegates through.  What this means is that an Isis application can be tested end-to-end without having to deploy it onto a webserver; the whole app can be tested while running in-memory. Although integration tests re (necessarily) slower than unit tests, they are not any harder to write (in fact, in some respects they are easier). ","description":" When we talk about integration tests/specs here, we mean tests that exercise the domain object logic, throug
 h to the actual database. But we also want the tests to exercise the app from the users’s perspective, which means including the user interface. ","id":273843820},"273985863":{"title":"addTo…​() (deprecated)","url":"guides/rgcms/rgcms.html#_rgcms_methods_prefixes_addTo","body":"addTo…​() (deprecated)  The addTo…​() supporting method is called whenever an object is added to a collection. Its purpose is to allow additional business logic to be performed.  For example:  See also removeFrom…​()` ","description":" The addTo…​() supporting method is called whenever an object is added to a collection. Its purpose is to allow additional business logic to be performed. ","id":273985863},"278859977":{"title":"promptStyle() (1.15.0-SNAPSHOT)","url":"guides/rgant/rgant.html#_rgant-PropertyLayout_promptStyle","body":"promptStyle() (1.15.0-SNAPSHOT)  The promptStyle() attribute is used to specify whether, when editing a domain object property, the new value for the property 
 is prompted by way of a dialog box, or is prompted using an inline panel (replacing the property on the page).  If the attribute is not set, then the value of the configuration property isis.viewer.wicket.promptStyle is used. If this is itself not set, then an inline prompt is used.  For example:  Alternatively, the promptStyle() can be specified using file-based layouts. ","description":" The promptStyle() attribute is used to specify whether, when editing a domain object property, the new value for the property is prompted by way of a dialog box, or is prompted using an inline panel (replacing the property on the page). ","id":278859977},"278890330":{"title":"Build a domain app","url":"pages/tg/tg.html#_build_a_domain_app","body":"Build a domain app  The remainder of the tutorial provides guidance on building a domain application. We don’t mandate any particular design, but we suggest one with no more than 3 to 6 domain entities in the first instance. If you’re stuck for ideas
 , then how about:  Hopefully one of those ideas appeals or sparks an idea for something of your own. ","description":" The remainder of the tutorial provides guidance on building a domain application. We don’t mandate any particular design, but we suggest one with no more than 3 to 6 domain entities in the first instance. If you’re stuck for ideas, then how about: ","id":278890330},"278999912":{"title":"Integration API","url":"guides/rgsvc/rgsvc.html#_rgsvc_integration-api","body":"Integration API ","description":"","id":278999912},"282766365":{"title":"Object CSS Styling","url":"guides/ugfun/ugfun.html#_object_css_styling","body":"Object CSS Styling  It is also possible for an object to return a CSS class. In conjunction with customized CSS this can be used to apply arbitrary styling; for example each object could be rendered in a page with a different background colour. ","description":" It is also possible for an object to return a CSS class. In conjunction with customized CS
 S this can be used to apply arbitrary styling; for example each object could be rendered in a page with a different background colour. ","id":282766365},"283629224":{"title":"App Structure","url":"guides/ugfun/ugfun.html#_app_structure","body":"App Structure  As noted above, the generated app is a very simple application consisting of a single domain object that can be easily renamed and extended. The intention is not to showcase all of Apache Isis' capabilities; rather it is to allow you to very easily modify the generated application (eg rename SimpleObject to Customer) without having to waste time deleting lots of generated code.  If you run into issues, please don’t hesitate to ask for help on the users mailing list. ","description":" As noted above, the generated app is a very simple application consisting of a single domain object that can be easily renamed and extended. The intention is not to showcase all of Apache Isis' capabilities; rather it is to allow you to very easi
 ly modify the generated application (eg rename","id":283629224},"285898371":{"title":"ObjectUpdatedEvent","url":"guides/rgcms/rgcms.html#_rgcms_classes_lifecycleevent_ObjectUpdatedEvent","body":"ObjectUpdatedEvent  Subclass of AbstractLifecycleEvent, broadcast when an object has just been updated in the database. This is done either explicitly when the current transaction is flushed using the DomainObjectContainer's #flush(…​) method, else is done implicitly when the transaction commits at the end of the user request.  ObjectUpdatedEvent.Default is the concrete implementation that is used. ","description":" Subclass of AbstractLifecycleEvent, broadcast when an object has just been updated in the database. This is done either explicitly when the current transaction is flushed using the DomainObjectContainer's #flush(…​) method, else is done implicitly when the transaction commits at the end of the user request. ","id":285898371},"286850218":{"title":"Dependent choices for act
 ion parameters","url":"guides/ugfun/ugfun.html#_dependent_choices_for_action_parameters","body":"Dependent choices for action parameters  For action it is also possible (in a limited form) to define dependencies between parameters. Specifically, if one parameter is a drop-down choice, then other drop-down choices can be derived from it.  A good example is a category/sub-category:  Note how the choices method for the 2nd parameter also accepts the first parameter. ","description":" For action it is also possible (in a limited form) to define dependencies between parameters. Specifically, if one parameter is a drop-down choice, then other drop-down choices can be derived from it. ","id":286850218},"287120012":{"title":"Actions","url":"guides/ugfun/ugfun.html#_actions_2","body":"Actions  Of course, the precondition business rules described above are only one type of business rule.  More generally, business rules are implemented in the form of the implementation of actions. Rather than 
 have the end-user have to edit individual properties of numerous objects, an action can encode these rules and allow only safe transformations of the application from one consistent state to the next. ","description":" Of course, the precondition business rules described above are only one type of business rule. ","id":287120012},"288377989":{"title":"Philosophy and Architecture","url":"guides/ugfun/ugfun.html#_ugfun_core-concepts_philosophy","body":"Philosophy and Architecture  This section describes some of the core ideas and architectural patterns upon which Apache Isis builds. ","description":" This section describes some of the core ideas and architectural patterns upon which Apache Isis builds. ","id":288377989},"288392697":{"title":"User Experience","url":"guides/ugvw/ugvw.html#_user_experience_3","body":"User Experience  The copy URL dialog is typically obtained by clicking on the icon.  Alternatively, alt+] will also open the dialog. It can be closed with either OK or the E
 sc key. ","description":" The copy URL dialog is typically obtained by clicking on the icon. ","id":288392697},"291813215":{"title":"Raising events programmatically","url":"guides/rgant/rgant.html#_raising_events_programmatically","body":"Raising events programmatically  Normally events are only raised for interactions through the UI. However, events can be raised programmatically either by calling the EventBusService API directly, or by emulating the UI by wrapping the target object using the WrapperFactory domain service. ","description":" Normally events are only raised for interactions through the UI. However, events can be raised programmatically either by calling the EventBusService API directly, or by emulating the UI by wrapping the target object using the WrapperFactory domain service. ","id":291813215},"293860175":{"title":"Usage","url":"guides/rgsvc/rgsvc.html#_usage_10","body":"Usage  The most common use-case is for bulk actions that act upon multiple objects in a list. 
 The (same) Scratchpad service is injected into each of these objects, and so they can use pass information.  For example, the Isis addons example todoapp (not ASF) demonstrates how the Scratchpad service can be used to calculate the total cost of the selected `ToDoItem`s:  A more complex example could use a view model to enable bulk updates to a set of objects. The view model’s job is to gather track of the items to be updated:  The bulk action in the objects simply adds the selected item to the view model:  If using the Wicket viewer, the ToDoItemBulkUpdate view model returned from the last action invoked will be displayed. Thereafter this view model can be used to perform a bulk update of the \"enlisted\" items. ","description":" The most common use-case is for bulk actions that act upon multiple objects in a list. The (same) Scratchpad service is injected into each of these objects, and so they can use pass information. ","id":293860175},"295225295":{"title":"updatingLifecycleE
 vent()","url":"guides/rgant/rgant.html#_rgant-DomainObject_updatingLifecycleEvent","body":"updatingLifecycleEvent()  Whenever a (persistent) domain object has been modified and is about to be updated to the database, an \"updating\" lifecycle event is fired.  Subscribers subscribe through the EventBusService and can use the event to obtain a reference to the domain object. The subscriber could then, for example, update the object, or it could use it maintain an external datastore. One possible application is to maintain a full-text search database using Apache Lucene or sim

<TRUNCATED>

[3/3] isis-site git commit: ISIS-1521: minor updates to release process

Posted by da...@apache.org.
ISIS-1521: minor updates to release process


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

Branch: refs/heads/asf-site
Commit: 3921d6e7f7f13ff37c467d0cf58829b63a81ba87
Parents: cc36a9b
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Sun Aug 6 10:36:42 2017 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Sun Aug 6 10:36:42 2017 +0100

----------------------------------------------------------------------
 content/elasticlunr/index.json  |    2 +-
 content/guides/cgcom/cgcom.html |    7 +-
 content/guides/cgcom/cgcom.pdf  | 1413 +++++++++++++++++-----------------
 3 files changed, 728 insertions(+), 694 deletions(-)
----------------------------------------------------------------------