You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by bu...@apache.org on 2013/05/22 09:38:08 UTC

svn commit: r862712 [13/21] - in /websites/staging/isis/trunk: cgi-bin/ content/ content/applib-guide/ content/applib-guide/DRAFT/ content/applib-guide/how-tos/ content/applib-guide/how-tos/images/ content/applib-guide/images/ content/applib-guide/reco...

Added: websites/staging/isis/trunk/content/applib-guide/how-tos/how-to-09-050-How to use Factories.html
==============================================================================
--- websites/staging/isis/trunk/content/applib-guide/how-tos/how-to-09-050-How to use Factories.html (added)
+++ websites/staging/isis/trunk/content/applib-guide/how-tos/how-to-09-050-How to use Factories.html Wed May 22 07:38:05 2013
@@ -0,0 +1,312 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+
+    <meta charset="utf-8">
+      <title></title>
+    <meta name="description" content="">
+    <meta name="author" content="">
+
+    <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
+    <!--[if lt IE 9]>
+      <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+
+    <!-- Le styles -->
+    <link href="./../../bootstrap.css" rel="stylesheet">
+    <link href="./../../prettify.css" rel="stylesheet">
+    <link href="./../../bootstrap-mods.css" rel="stylesheet">
+
+    <style type="text/css">
+        body {
+          padding-top: 60px;
+        }
+        .sprite {
+            display: inline-block;
+            height: 20px;
+            margin: 0 auto 4px;
+            outline: medium none;
+            text-indent: -999em;
+            width: 24px;
+            background-image: url('./../../images/sprites.png');
+            background-repeat: no-repeat;
+            overflow: hidden;
+            cursor: pointer;
+        }
+        .edit-page {
+            display: inline-block;
+            height: 20px;
+            margin: 0 auto 4px;
+            outline: medium none;
+            text-indent: -999em;
+            width: 24px;
+            background-image: url('./../../images/edit.png');
+            background-repeat: no-repeat;
+            overflow: hidden;
+            cursor: pointer;
+        }
+        .fb-share {
+            background-position: 0px -40px;
+        }
+        .gp-share {
+            background-position: 0px 0px;
+        }
+        .tw-share {
+            background-position: 0px -80px;
+        }
+        .markdown-content {
+            min-height: 500px;
+        }
+        .book-image img {
+          border: 1px;
+          border-style: solid;
+        }
+        .release-matrix .heading {
+            background-color: #eeeeee;
+        }
+        .release-matrix .new {
+            color: #dd0000;
+            font-weight: bolder;
+        }
+        .stub,.note {
+            position: relative;
+            padding: 7px 15px;
+            margin-bottom: 18px;
+            color: #404040;
+            background-color: #eedc94;
+            background-repeat: repeat-x;
+            background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1), to(#eedc94));
+            background-image: -moz-linear-gradient(top, #fceec1, #eedc94);
+            background-image: -ms-linear-gradient(top, #fceec1, #eedc94);
+            background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fceec1), color-stop(100%, #eedc94));
+            background-image: -webkit-linear-gradient(top, #fceec1, #eedc94);
+            background-image: -o-linear-gradient(top, #fceec1, #eedc94);
+            background-image: linear-gradient(top, #fceec1, #eedc94);
+            filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fceec1', endColorstr='#eedc94', GradientType=0);
+            text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+            border-color: #eedc94 #eedc94 #e4c652;
+            border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+            text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
+            border-width: 1px;
+            border-style: solid;
+            -webkit-border-radius: 4px;
+            -moz-border-radius: 4px;
+            border-radius: 4px;
+            -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
+            -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
+            box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
+        }
+    </style>
+    <script type="text/javascript">
+      function fbshare () {
+          window.open(
+                  "http://www.facebook.com/sharer/sharer.php?u="+document.URL,
+                  'Share on Facebook',
+                  'width=640,height=426');
+      };
+      function gpshare () {
+          window.open(
+                  "https://plus.google.com/share?url="+document.URL,
+                  'Share on Google+',
+                  'width=584,height=385');
+      };
+      function twshare () {
+          window.open(
+                  "https://twitter.com/intent/tweet?url="+document.URL+"&text=",
+                  'Share on Twitter',
+                  'width=800,height=526');
+      };
+    </script>
+
+    <!-- Le fav and touch icons -->
+    <link rel="shortcut icon" href="./../../images/favicon.ico">
+    <link rel="apple-touch-icon" href="./../../images/apple-touch-icon.png">
+    <link rel="apple-touch-icon" sizes="72x72" href="./../../images/apple-touch-icon-72x72.png">
+    <link rel="apple-touch-icon" sizes="114x114" href="./../../images/apple-touch-icon-114x114.png">
+
+    <script src="./../../javascript/prettify.js" type="text/javascript"></script>
+    <script src="./../../javascript/jquery-latest.js"></script>
+
+
+    <script src="http://platform.twitter.com/widgets.js" type="text/javascript"></script>
+    <script src="./../../javascript/common.js"></script>
+    <script src="./../../javascript/prettyprint.js"></script>
+
+    <script src="./../../javascript/bootstrap-alert.js"></script>
+    <script src="./../../javascript/bootstrap-dropdown.js"></script>
+    <script src="./../../javascript/bootstrap-tooltip.js"></script>
+    <script src="./../../javascript/bootstrap-alerts.js"></script>
+    <script src="./../../javascript/bootstrap-modal.js"></script>
+    <script src="./../../javascript/bootstrap-transition.js"></script>
+    <script src="./../../javascript/bootstrap-button.js"></script>
+    <script src="./../../javascript/bootstrap-popover.js"></script>
+    <script src="./../../javascript/bootstrap-twipsy.js"></script>
+    <script src="./../../javascript/bootstrap-buttons.js"></script>
+    <script src="./../../javascript/bootstrap-scrollspy.js"></script>
+    <script src="./../../javascript/bootstrap-typeahead.js"></script>
+    <script src="./../../javascript/bootstrap-carousel.js"></script>
+    <script src="./../../javascript/bootstrap-tab.js"></script>
+    <script src="./../../javascript/bootstrap-collapse.js"></script>
+    <script src="./../../javascript/bootstrap-tabs.js"></script>
+
+    
+    
+    
+
+    <script>
+    $(function () { prettyPrint() })
+    $().dropdown()
+    </script>
+
+    <!-- GAQ stuff removed here -->
+
+
+  </head>
+
+  <body>
+
+    <div class="topbar">
+      <div class="fill">
+        <div class="container">
+          <a class="brand" href="./../../index.html">Apache Isis&trade;</a>
+          <ul class="nav">
+            <li class="dropdown">
+              <a href="#" class="dropdown-toggle" data-toggle="dropdown">Apache <b class="caret"></b></a>
+              <ul class="dropdown-menu">
+                <li>
+                  <a href="http://www.apache.org/">Apache Homepage <i class="icon-share-alt"></i></a>
+                </li>
+                <li>
+                  <a href="http://www.apache.org/licenses/">Licenses <i class="icon-share-alt"></i></a>
+                </li>
+                <li>
+                  <a href="http://www.apache.org/security/">Security <i class="icon-share-alt"></i></a>
+                </li>
+                <li>
+                  <a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship <i class="icon-share-alt"></i></a>
+                </li>
+                <li>
+                  <a href="http://www.apache.org/foundation/thanks.html">Thanks <i class="icon-share-alt"></i></a>
+                </li>
+                <li>
+                  <a href="./../../more-thanks.html">More thanks <i class="icon-share-alt"></i></a>
+                </li>
+              </ul>
+            </li>
+            <li><a href="./../../index.html">Home</a></li>
+            <li><a href="./../../download.html">Download</a></li>
+            <li class="dropdown">
+              <a href="#" class="dropdown-toggle" data-toggle="dropdown">Screenshots<b class="caret"></b></a>
+              <ul class="dropdown-menu">
+                <li><a href="./../../getting-started/screenshots.html">Screenshots</a></li>
+                <li><a href="./../../getting-started/screencasts.html">Screencasts</a></li>
+                <!--
+                <li><a href="#">Online Demo</a></li>
+                -->
+              </ul>
+            </li>
+            <li><a href="./../../documentation.html">Documentation</a></li>
+            <li><a href="./../../support.html">Support</a></li>
+
+          </ul>
+
+          <!-- Google CSE Search Box Begins -->
+          <div style="float: right; position: relative; ">
+
+          <!--
+              <form action="http://www.google.com/cse" id="cse-search-box" _lpchecked="1">
+                <div>
+                    <input type="hidden" name="cx" value="012614087480249044419:dn-q5gtwxya">
+                    <input type="hidden" name="ie" value="UTF-8">
+                    <input type="text" name="q" placeholder="Search" size="31" style="border: 1px solid rgb(126, 157, 185); padding: 2px; background-color: rgb(255, 255, 255); background-position: 0% 50%; background-repeat: no-repeat no-repeat;">
+                    <input type="submit" name="sa" value="Search">
+                </div>
+                <input name="siteurl" type="hidden" value="isis.apache.org">
+                <input name="ref" type="hidden" value="">
+                <input name="ss" type="hidden" value="677j458329j2">
+            </form>
+          -->
+          
+            <FORM class="pull-right" id="searchbox_012614087480249044419:dn-q5gtwxya" action="http://www.google.com/cse">
+                    <input type="hidden" name="cx" value="012614087480249044419:dn-q5gtwxya">
+                <INPUT type="hidden" name="cof" value="FORID:0">
+                <INPUT name="q" type="text" placeholder="Search">
+            </FORM>
+
+          </div>
+       <!-- Google CSE Search Box Ends -->
+        
+        </div>
+      </div>
+    </div>
+
+    <div class="container">
+      <div class="markdown-content">
+      
+
+<div class="page-header">
+<p><a href="./../../documentation.html">Docs</a>&nbsp;&raquo&nbsp;<a href="./../../applib-guide/about.html">Applib Guide</a>&nbsp;&raquo&nbsp;<a href="./../../applib-guide/how-tos/about.html">How Tos</a></p>
+<h1>
+
+</h1>
+</div>
+
+<h2>How to use Factories</h2>
+
+<p>Like repositories, factories are defined by interface in the domain, decoupling the domain objects from their actual implementation.</p>
+
+<p>Unlike repositories, there is no particular need to change the implementation when moving from one object store to another, because in all cases the factory can simply delegate to its injected <code>DomainObjectContainer</code>.</p>
+
+<p>The methods for <code>DomainObjectContainer</code> that are relevant for a factory are:</p>
+
+<ul>
+<li><code>&lt;T&gt; T newTransientInstance(final Class&lt;T&gt; ofClass)</code></li>
+<li><code>&lt;T&gt; T newPersistentInstance(final Class&lt;T&gt; ofClass)</code></li>
+<li><code>persist(Object)</code></li>
+<li><code>persistIfNotAlready(Object)</code></li>
+</ul>
+
+<!--
+These are discussed in more detail in ?. See also ? for full coverage of
+the methods available in DomainObjectContainer.-->
+
+
+
+      </div>
+
+        <div id="edit" class="modal hide fade in" style="display: none; ">
+            <div class="modal-header">
+                <a class="close" data-dismiss="modal">x</a>
+
+                <h3>Thank you for contributing to the documention!</h3>
+            </div>
+            <div class="modal-body">
+                <h4>Any help with the documentation is greatly appreciated.</h4>
+                <p>All edits are reviewed before going live, so feel free to do much more than fix typos or links.  If you see a page that could benefit from an entire rewrite, we'd be thrilled to review it.  Don't be surprised if we like it so much we ask you for help with other pages :)</p>
+                <small>NOTICE: unless indicated otherwise on the pages in question, all editable content available from apache.org is presumed to be licensed under the Apache License (AL) version 2.0 and hence all submissions to apache.org treated as formal Contributions under the license terms.</small>
+                <!--[if gt IE 6]>
+                <h4>Internet Explorer Users</h4>
+                <p>If you are not an Apache committer, click the Yes link and enter a <i>anonymous</i> for the username and leave the password empty</p>
+                <![endif]-->
+
+            </div>
+            <div class="modal-footer">
+                Do you have an Apache ID?
+                <a href="javascript:void(location.href='https://cms.apache.org/redirect?uri='+escape(location.href))" class="btn">Yes</a>
+                <a href="javascript:void(location.href='https://anonymous:@cms.apache.org/redirect?uri='+escape(location.href))" class="btn">No</a>
+            </div>
+        </div>
+        <script src="./../../javascript/bootstrap-modal.js"></script>
+
+      <footer>
+        <p>
+        Copyright &copy; 2012~2013 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.
+        <br/>
+        Apache Isis, Isis, Apache, the Apache feather logo, and the Apache Isis project logo are trademarks of The Apache Software Foundation.
+        </p>
+      </footer>
+
+    </div> <!-- /container -->
+
+  </body>
+</html>

Added: websites/staging/isis/trunk/content/applib-guide/how-tos/images/AbstractContainedObject-hierarchy.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/applib-guide/how-tos/images/AbstractContainedObject-hierarchy.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/applib-guide/images/Events.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/applib-guide/images/Events.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/applib-guide/images/architecture-perspective.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/applib-guide/images/architecture-perspective.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/applib-guide/images/composition-perspective.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/applib-guide/images/composition-perspective.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/applib-guide/isis-applib.html
==============================================================================
--- websites/staging/isis/trunk/content/applib-guide/isis-applib.html (added)
+++ websites/staging/isis/trunk/content/applib-guide/isis-applib.html Wed May 22 07:38:05 2013
@@ -0,0 +1,743 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+
+    <meta charset="utf-8">
+      <title></title>
+    <meta name="description" content="">
+    <meta name="author" content="">
+
+    <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
+    <!--[if lt IE 9]>
+      <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+
+    <!-- Le styles -->
+    <link href="./../bootstrap.css" rel="stylesheet">
+    <link href="./../prettify.css" rel="stylesheet">
+    <link href="./../bootstrap-mods.css" rel="stylesheet">
+
+    <style type="text/css">
+        body {
+          padding-top: 60px;
+        }
+        .sprite {
+            display: inline-block;
+            height: 20px;
+            margin: 0 auto 4px;
+            outline: medium none;
+            text-indent: -999em;
+            width: 24px;
+            background-image: url('./../images/sprites.png');
+            background-repeat: no-repeat;
+            overflow: hidden;
+            cursor: pointer;
+        }
+        .edit-page {
+            display: inline-block;
+            height: 20px;
+            margin: 0 auto 4px;
+            outline: medium none;
+            text-indent: -999em;
+            width: 24px;
+            background-image: url('./../images/edit.png');
+            background-repeat: no-repeat;
+            overflow: hidden;
+            cursor: pointer;
+        }
+        .fb-share {
+            background-position: 0px -40px;
+        }
+        .gp-share {
+            background-position: 0px 0px;
+        }
+        .tw-share {
+            background-position: 0px -80px;
+        }
+        .markdown-content {
+            min-height: 500px;
+        }
+        .book-image img {
+          border: 1px;
+          border-style: solid;
+        }
+        .release-matrix .heading {
+            background-color: #eeeeee;
+        }
+        .release-matrix .new {
+            color: #dd0000;
+            font-weight: bolder;
+        }
+        .stub,.note {
+            position: relative;
+            padding: 7px 15px;
+            margin-bottom: 18px;
+            color: #404040;
+            background-color: #eedc94;
+            background-repeat: repeat-x;
+            background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1), to(#eedc94));
+            background-image: -moz-linear-gradient(top, #fceec1, #eedc94);
+            background-image: -ms-linear-gradient(top, #fceec1, #eedc94);
+            background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fceec1), color-stop(100%, #eedc94));
+            background-image: -webkit-linear-gradient(top, #fceec1, #eedc94);
+            background-image: -o-linear-gradient(top, #fceec1, #eedc94);
+            background-image: linear-gradient(top, #fceec1, #eedc94);
+            filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fceec1', endColorstr='#eedc94', GradientType=0);
+            text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+            border-color: #eedc94 #eedc94 #e4c652;
+            border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+            text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
+            border-width: 1px;
+            border-style: solid;
+            -webkit-border-radius: 4px;
+            -moz-border-radius: 4px;
+            border-radius: 4px;
+            -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
+            -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
+            box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
+        }
+    </style>
+    <script type="text/javascript">
+      function fbshare () {
+          window.open(
+                  "http://www.facebook.com/sharer/sharer.php?u="+document.URL,
+                  'Share on Facebook',
+                  'width=640,height=426');
+      };
+      function gpshare () {
+          window.open(
+                  "https://plus.google.com/share?url="+document.URL,
+                  'Share on Google+',
+                  'width=584,height=385');
+      };
+      function twshare () {
+          window.open(
+                  "https://twitter.com/intent/tweet?url="+document.URL+"&text=",
+                  'Share on Twitter',
+                  'width=800,height=526');
+      };
+    </script>
+
+    <!-- Le fav and touch icons -->
+    <link rel="shortcut icon" href="./../images/favicon.ico">
+    <link rel="apple-touch-icon" href="./../images/apple-touch-icon.png">
+    <link rel="apple-touch-icon" sizes="72x72" href="./../images/apple-touch-icon-72x72.png">
+    <link rel="apple-touch-icon" sizes="114x114" href="./../images/apple-touch-icon-114x114.png">
+
+    <script src="./../javascript/prettify.js" type="text/javascript"></script>
+    <script src="./../javascript/jquery-latest.js"></script>
+
+
+    <script src="http://platform.twitter.com/widgets.js" type="text/javascript"></script>
+    <script src="./../javascript/common.js"></script>
+    <script src="./../javascript/prettyprint.js"></script>
+
+    <script src="./../javascript/bootstrap-alert.js"></script>
+    <script src="./../javascript/bootstrap-dropdown.js"></script>
+    <script src="./../javascript/bootstrap-tooltip.js"></script>
+    <script src="./../javascript/bootstrap-alerts.js"></script>
+    <script src="./../javascript/bootstrap-modal.js"></script>
+    <script src="./../javascript/bootstrap-transition.js"></script>
+    <script src="./../javascript/bootstrap-button.js"></script>
+    <script src="./../javascript/bootstrap-popover.js"></script>
+    <script src="./../javascript/bootstrap-twipsy.js"></script>
+    <script src="./../javascript/bootstrap-buttons.js"></script>
+    <script src="./../javascript/bootstrap-scrollspy.js"></script>
+    <script src="./../javascript/bootstrap-typeahead.js"></script>
+    <script src="./../javascript/bootstrap-carousel.js"></script>
+    <script src="./../javascript/bootstrap-tab.js"></script>
+    <script src="./../javascript/bootstrap-collapse.js"></script>
+    <script src="./../javascript/bootstrap-tabs.js"></script>
+
+    
+    
+    
+
+    <script>
+    $(function () { prettyPrint() })
+    $().dropdown()
+    </script>
+
+    <!-- GAQ stuff removed here -->
+
+
+  </head>
+
+  <body>
+
+    <div class="topbar">
+      <div class="fill">
+        <div class="container">
+          <a class="brand" href="./../index.html">Apache Isis&trade;</a>
+          <ul class="nav">
+            <li class="dropdown">
+              <a href="#" class="dropdown-toggle" data-toggle="dropdown">Apache <b class="caret"></b></a>
+              <ul class="dropdown-menu">
+                <li>
+                  <a href="http://www.apache.org/">Apache Homepage <i class="icon-share-alt"></i></a>
+                </li>
+                <li>
+                  <a href="http://www.apache.org/licenses/">Licenses <i class="icon-share-alt"></i></a>
+                </li>
+                <li>
+                  <a href="http://www.apache.org/security/">Security <i class="icon-share-alt"></i></a>
+                </li>
+                <li>
+                  <a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship <i class="icon-share-alt"></i></a>
+                </li>
+                <li>
+                  <a href="http://www.apache.org/foundation/thanks.html">Thanks <i class="icon-share-alt"></i></a>
+                </li>
+                <li>
+                  <a href="./../more-thanks.html">More thanks <i class="icon-share-alt"></i></a>
+                </li>
+              </ul>
+            </li>
+            <li><a href="./../index.html">Home</a></li>
+            <li><a href="./../download.html">Download</a></li>
+            <li class="dropdown">
+              <a href="#" class="dropdown-toggle" data-toggle="dropdown">Screenshots<b class="caret"></b></a>
+              <ul class="dropdown-menu">
+                <li><a href="./../getting-started/screenshots.html">Screenshots</a></li>
+                <li><a href="./../getting-started/screencasts.html">Screencasts</a></li>
+                <!--
+                <li><a href="#">Online Demo</a></li>
+                -->
+              </ul>
+            </li>
+            <li><a href="./../documentation.html">Documentation</a></li>
+            <li><a href="./../support.html">Support</a></li>
+
+          </ul>
+
+          <!-- Google CSE Search Box Begins -->
+          <div style="float: right; position: relative; ">
+
+          <!--
+              <form action="http://www.google.com/cse" id="cse-search-box" _lpchecked="1">
+                <div>
+                    <input type="hidden" name="cx" value="012614087480249044419:dn-q5gtwxya">
+                    <input type="hidden" name="ie" value="UTF-8">
+                    <input type="text" name="q" placeholder="Search" size="31" style="border: 1px solid rgb(126, 157, 185); padding: 2px; background-color: rgb(255, 255, 255); background-position: 0% 50%; background-repeat: no-repeat no-repeat;">
+                    <input type="submit" name="sa" value="Search">
+                </div>
+                <input name="siteurl" type="hidden" value="isis.apache.org">
+                <input name="ref" type="hidden" value="">
+                <input name="ss" type="hidden" value="677j458329j2">
+            </form>
+          -->
+          
+            <FORM class="pull-right" id="searchbox_012614087480249044419:dn-q5gtwxya" action="http://www.google.com/cse">
+                    <input type="hidden" name="cx" value="012614087480249044419:dn-q5gtwxya">
+                <INPUT type="hidden" name="cof" value="FORID:0">
+                <INPUT name="q" type="text" placeholder="Search">
+            </FORM>
+
+          </div>
+       <!-- Google CSE Search Box Ends -->
+        
+        </div>
+      </div>
+    </div>
+
+    <div class="container">
+      <div class="markdown-content">
+      
+
+<div class="page-header">
+<p><a href="./../documentation.html">Docs</a>&nbsp;&raquo&nbsp;<a href="./../applib-guide/about.html">Applib Guide</a></p>
+<h1>
+
+</h1>
+</div>
+
+<h2>@PublishedAction</h2>
+
+<p>See <a href="http://isis.apache.org/core/publishing-service.html">Isis website</a>.</p>
+
+<h2>@PublishedObject</h2>
+
+<p>See <a href="http://isis.apache.org/core/publishing-service.html">Isis website</a>.</p>
+
+<h2>@Programmatic</h2>
+
+<p>The @Programmatic annotation can be used to cause Apache Isis to
+complete ignore a class member. This means it won't appear in any
+viewer, its value will not be persisted, and it won't appear in any XML
+snapshots (see ?).</p>
+
+<p>A common use-case is to ignore implementation-level artifacts. For
+example:</p>
+
+<pre><code>public class Customer implements Comparable&lt;Customer&gt; {
+    ...
+    @Programmatic
+    public int compareTo(Customer c) { 
+        return getSalary() - c.getSalary();
+    }
+    ...
+}
+</code></pre>
+
+<p>Note that @Programmatic does not simply imply @Hidden and @NotPersisted;
+it actually means that the class member will not be part of the Isis
+metamodel.</p>
+
+<h2>@QueryOnly (deprecated)</h2>
+
+<p>Equivalent to using <code>@ActionSemantics(Of.SAFE)</code> on an action.</p>
+
+<h2>@RegEx</h2>
+
+<p>The <code>@RegEx</code> annotation may be applied to any string property, or to any
+parameter within an action method. It can also be applied to any
+string-based value type. It serves both to validate and potentially to
+normalise the format of the input. <code>@Regex</code> is therefore similar in use
+to <code>@Mask</code> (see ?) but provides more flexibility.</p>
+
+<p>The syntax is:</p>
+
+<p><code>@RegEx(validation = "regEx string",
+        format = "regEx string", caseSensitive =
+        &lt;true|false&gt;)</code></p>
+
+<p>Only the first parameter is required; the format defaults to "no
+formatting", and caseSensitive defaults to false.</p>
+
+<p>For example, on a property:</p>
+
+<pre><code>public class Customer {
+    @RegEx(validation = "(\\w+\\.)*\\w+@(\\w+\\.)+[A-Za-z]+")
+    public String getEmail() {}
+    ...
+}
+</code></pre>
+
+<p>Or, on a parameter:</p>
+
+<pre><code>public class Customer {
+    public void updateEmail(
+            @RegEx(validation = "(\\w+\\.)*\\w+@(\\w+\\.)+[A-Za-z]+")
+            @Named("Email") String email) {
+        ...
+    }
+    ...
+)
+</code></pre>
+
+<p>Or, on a value type:</p>
+
+<pre><code>@Value(...)
+@RegEx(validation = "(\\w+\\.)*\\w+@(\\w+\\.)+[A-Za-z]+")
+public class EmailAddress {
+   ...
+y}
+</code></pre>
+
+<h2>@Render</h2>
+
+<p>The @Render annotation is a hint for properties and collections to
+indicate that a value property should be rendered lazily (rather than
+eagerly, as usual), or that a reference property or collection should be
+rendered eagerly (rather than lazily, as usual).</p>
+
+<p>Viewers can use this to present the property/collection in an
+appropriate manner:</p>
+
+<ul>
+<li>an Order's lineItems collection might initially be rendered expanded
+form so that the user could see a list of line items immediately
+when the order is rendered. This is the most common use case.</li>
+<li>a (reference) property of type Address might show the details of the
+referenced Address in a box</li>
+</ul>
+
+<p>At the same time, an object store might use this to defer lazy loading
+of values that represent blobs or clobs.</p>
+
+<p>For example:</p>
+
+<pre><code>public class Order {
+    @Render(Type.EAGERLY)
+    public List&lt;LineItem&gt; getDetails() { ... }
+
+    ...
+}
+</code></pre>
+
+<p>For properties and collections there is some similarity between this
+concept and that of eager-loading as supported by some object stores.
+Indeed, some object stores may choose use their own specific annotations
+(eg a JDO default fetch group) in order to infer this semantic.</p>
+
+<h2>@Resolve (deprecated)</h2>
+
+<p>The <code>@Resolve</code> annotation is deprecated, and has been replaced by the
+<code>@Render</code> annotation (with exact same semantics).</p>
+
+<h2>@Title</h2>
+
+<p>The <code>@Title</code> annotation is used to indicate which property or properties
+make up the object title. If more than one property is used, the order
+can be specified (using the same Dewey-decimal notation as used by
+@MemberOrder) and the string to use between the components can also be
+specified.</p>
+
+<p>For example:</p>
+
+<pre><code>public void Customer {
+    @Title(sequence="1.0")
+    public String lastName() { ... }
+    ...
+    @Title(sequence="1.5", prepend=", ")
+    public String firstName() { ... }
+    ...
+    @Title(sequence="1.7", append=".")
+    public String midInitial() { ... }
+    ...
+}
+</code></pre>
+
+<p>could be used to create names of the style "Bloggs, Joe K."</p>
+
+<p>It is also possible to annotate reference properties; in this case the
+title will return the title of the referenced object (rather than, say,
+its string representation).</p>
+
+<p>An additional convention for @Title properties is that they are hidden
+in tables (in other words, it implies <code>@Hidden(where=Where.ALL_TABLES)</code>.
+For viewers that support this annotation (for example, the Wicket
+viewer), this convention excludes any properties whose value is already
+present in the title column. This convention can be overridden using
+<code>@Hidden(where=Where.NOWHERE)</code>.</p>
+
+<h2>@TypeOf</h2>
+
+<p>The <code>@TypeOf</code> annotation is used to specify the type of elements in a
+collection, when for whatever reason it is not possible to use generics.</p>
+
+<blockquote>
+  <p><strong>Note</strong></p>
+  
+  <p>Given that Apache Isis only supports Java 1.6 and later, it's not that
+  obvious what such a reason might be...</p>
+</blockquote>
+
+<p>For example:</p>
+
+<pre><code>public void AccountService {
+    @TypeOf(Customer.class)
+    public List errantAccounts() {
+        return CustomerDatabase.allNewCustomers();
+    }
+    ...
+}
+</code></pre>
+
+<h2>@TypicalLength</h2>
+
+<p>The <code>@TypicalLength</code> annotation indicates the typical length of a
+<code>String</code> property or <code>String</code> parameter in an action. It can also be
+specified for string-based value types.</p>
+
+<p>The information is generally used by the viewing mechanism to determine
+the space that should be given to that property or parameter in the
+appropriate view. If the typical length is the same as the <code>@MaxLength</code>
+(see ?) then there is no need to specify <code>@TypicalLength</code> as well. If
+the value specified is zero or negative then it will be ignored.</p>
+
+<p>For example, for a property:</p>
+
+<pre><code>public class Customer {
+    @MaxLength(30)
+    @TypicalLength(20)
+    public String getFirstName() { ... }
+    public void setFirstName(String firstName) { ... }
+}
+</code></pre>
+
+<p>Or, for a parameter:</p>
+
+<pre><code>public class CustomerRepository {
+    public Customer newCustomer(
+            @TypicalLength(20)
+            @Named("First Name") String firstName
+           ,@TypicalLength(20)
+            @Named("Last Name") String lastName) {
+        ...
+    }
+    ...
+}
+</code></pre>
+
+<p>Or, for value type:</p>
+
+<pre><code>@Value(...)
+@TypicalLength(20)
+public class FirstName {
+    ...
+}
+</code></pre>
+
+<h2>@Value</h2>
+
+<p>The <code>@Value</code> annotation indicates that a class should be treated as a
+value type rather than as a reference (or entity) type. It does this
+providing an implementation of a
+org.apache.isis.applib.adapters.ValueSemanticsProvider.</p>
+
+<p>For example:</p>
+
+<pre><code>@Value(semanticsProviderClass=ComplexNumberValueSemanticsProvider.class)
+public class ComplexNumber {
+    ...
+}
+</code></pre>
+
+<p>The ValueSemanticsProvider allows the framework to interact with the
+value, parsing strings and displaying as text, and encoding/decoding
+(for serialization). For more information, see ?.</p>
+
+<h2>@ViewModel</h2>
+
+<p>The @ViewModel annotation allows the developer to declare that a domain
+object is intended to be used as a view model. As such, any changes to
+its structure are guaranteed to be backwardly compatible.</p>
+
+<p>The annotation was originally introduced to support a requirement of the
+RestfulObjects viewer which directly expose the domain objects as
+RESTful representations</p>
+
+<p>For example, a domain object that represents a summary of a Customer and
+their most recent Orders might be annotated as:</p>
+
+<pre><code>@NotPersistable
+@ViewModel
+public class CustomerAndOrdersViewModel {
+   ...
+}
+</code></pre>
+
+<h1>DomainObjectContainer interface</h1>
+
+<blockquote>
+  <p>Provides a single point of contact from domain objects into the
+  <em>Apache Isis</em> framework.</p>
+</blockquote>
+
+<p>The DomainObjectContainer interface provides a single point of contact
+from domain objects into the <em>Isis</em> framework. It can also be used as a
+lightweight general purpose repository during prototyping.</p>
+
+<pre><code>            Category                Method                                                             Description
+</code></pre>
+
+<hr />
+
+<pre><code>         Object creation            newTransientInstance(Class\&lt;T\&gt;)                                   Creates new non-persisted object
+newPersistentInstance(Class\&lt;T\&gt;)   Creates new object, will be persisted at end of action
+ newInstance(Class\&lt;T\&gt;, Object)    Creates object in state persistence state as that provided
+           Validation               isValid(Object)                                                    whether object is valid
+        validate(Object)            reason why object is invalid (if any)
+       Generic Repository           allInstances(Class\&lt;T\&gt;)                                           All persisted instances of specified type
+</code></pre>
+
+<p>allMatches(Class\<T\>, Filter\<T\>)  All persistenced instances of specified type matching filter
+     allMatches(Class\<T\>, String)     All persisted instances with the specified string as their title
+     allMatches(Class\<T\>, Object)     All persisted instances matching object (query-by-example)
+         allMatches(Query\<T\>)         All instances satisfying the provided query
+             firstMatch(...)            As for allMatches(...), but returning first instance
+            uniqueMatch(...)            As for firstMatch(...), but requiring there to be only one match</p>
+
+<p>: DomainObjectContainer methods (1 of 2)</p>
+
+<pre><code>               Category                  Method                                                                                                 Description
+</code></pre>
+
+<hr />
+
+<pre><code>          Object persistence             isPersistent(Object)                                                                                   whether object is persistent
+           persist(Object)               persist the transient object
+     persistIfNotAlready(Object)         persist the object (provided is not already persisted)
+            remove(Object)               remove the persisted object
+      removeIfNotAlready(Object)         remove the object (provided is not already transient)
+             Presentation                titleOf(Object)                                                                                        Returns the title of the object.
+        Messages and warnings            informUser(String)                                                                                     Inform the user
+           warnUser(String)              Warn the user about a situation, requiring acknowledgement.
+          raiseError(String)             Notify user of a serious application error, typically requiring further action on behalf of the user
+               Security                  getUser()                                                                                              The currently-logged on user
+              Properties                 getProperty(String)                                                                                    Value of configuration property
+          getPropertyNames()             All configuration properties available
+</code></pre>
+
+<p>Lazy loading, dirty object tracking (*)  resolve(Object)                                                                                        Lazy load object (overloaded to optionally load a property of object)
+            objectChanged(Object)            Mark object as dirty
+         Object store control (**)         flush()                                                                                                Flush all pending changes to object store
+                   commit()                  Commit all pending changes to object store</p>
+
+<p>: DomainObjectContainer methods (2 of 2)</p>
+
+<blockquote>
+  <p><strong>Note</strong></p>
+  
+  <p>(*) generally not necessary to call - performed by bytecode proxies</p>
+  
+  <p><strong>Note</strong></p>
+  
+  <p>(**) the use of these methods is discouraged - they are typically
+  used only for tests</p>
+</blockquote>
+
+<h1>Security Classes</h1>
+
+<blockquote>
+  <p>A simple set of classes to represent the currently logged on user and
+  their roles.</p>
+</blockquote>
+
+<p>When the user logs onto an Isis application, the framework constructs a
+representation of their user and roles using classes from the applib.
+This allows the application to inspect and act upon those details if
+required.</p>
+
+<p>The user details are captured in the
+org.apache.isis.applib.security.UserMemento class ("memento" because it
+is a snapshot of their credentials at the point of logging on). The
+UserMemento class defines the following properties:</p>
+
+<ul>
+<li><code>name</code> (a String)</li>
+<li>collection of roles (as RoleMemento)</li>
+</ul>
+
+<p>The org.apache.isis.applib.security.RoleMemento class in turn defines
+two properties:</p>
+
+<ul>
+<li><code>name</code> (a String)</li>
+<li><code>description</code> (a String)</li>
+</ul>
+
+<p>To obtain the current user, the application can call
+DomainObjectContainer#getUser(). For more on the DomainObjectContainer,
+see ?.</p>
+
+<h1>Utility Classes</h1>
+
+<blockquote>
+  <p>Simple utility classes for domain objects.</p>
+</blockquote>
+
+<p>The org.apache.isis.applib.util package has a number of simple utility
+classes designed to simplify the coding of some common tasks.</p>
+
+<h2>Title creation</h2>
+
+<p>The TitleBuffer utility class is intended to make it easy to construct
+title strings (returned from the title() method). For example, it has
+overloaded versions of methods called append() and concat().</p>
+
+<h2>Reason text creation (for disable and validate methods)</h2>
+
+<p>There are two different classes provided to help build reasons returned
+by disableXxX() and validateXxx() methods:</p>
+
+<ul>
+<li>the org.apache.isis.applib.util.ReasonBuffer helper class</li>
+<li>the org.apache.isis.applib.util.Reasons helper class</li>
+</ul>
+
+<p>For example:</p>
+
+<pre><code>public class Customer {
+    ...
+    public String validatePlaceOrder(Product p, int quantity) {
+        return Reasons.coalesce(
+            whetherCustomerBlacklisted(this),
+            whetherProductOutOfStock(p)
+        );
+    }
+}
+</code></pre>
+
+<p>Which you use (if any) is up to you.</p>
+
+<h1>Events</h1>
+
+<blockquote>
+  <p>The InteractionEvent hierarchy.</p>
+</blockquote>
+
+<p>Although not supported by the default programming model, the applib
+nevertheless defines an event hierarchy that characterizes all of the
+different types of interactions that can occur. This is used by the
+wrapper programming model, and is exploited by the JUnit viewer.</p>
+
+<p>The following UML class diagram shows the hierarchy of events:</p>
+
+<p><img src="images/Events.png" alt="" /></p>
+
+<h1>Package Dependencies</h1>
+
+<blockquote>
+  <p>The dependencies between the packages.</p>
+</blockquote>
+
+<p>*** these diagrams are out of date ***</p>
+
+<p>The following diagram shows that the relationship between the different
+packages that make up the applib (note that there are no cyclic
+dependencies between the packages):</p>
+
+<p><img src="images/composition-perspective.png" alt="" /></p>
+
+<p>The following diagram shows the same packages, but from a layered,
+architecture perspective:</p>
+
+<p><img src="images/architecture-perspective.png" alt="" /></p>
+
+<p>[^1]: A profile store is a persistence mechanism provided by the
+    configured runtime that allows user profiles to be stored between
+    runs. It is similar to, but independent of, an object store (which
+    stores the domain objects themselves).</p>
+
+
+
+      </div>
+
+        <div id="edit" class="modal hide fade in" style="display: none; ">
+            <div class="modal-header">
+                <a class="close" data-dismiss="modal">x</a>
+
+                <h3>Thank you for contributing to the documention!</h3>
+            </div>
+            <div class="modal-body">
+                <h4>Any help with the documentation is greatly appreciated.</h4>
+                <p>All edits are reviewed before going live, so feel free to do much more than fix typos or links.  If you see a page that could benefit from an entire rewrite, we'd be thrilled to review it.  Don't be surprised if we like it so much we ask you for help with other pages :)</p>
+                <small>NOTICE: unless indicated otherwise on the pages in question, all editable content available from apache.org is presumed to be licensed under the Apache License (AL) version 2.0 and hence all submissions to apache.org treated as formal Contributions under the license terms.</small>
+                <!--[if gt IE 6]>
+                <h4>Internet Explorer Users</h4>
+                <p>If you are not an Apache committer, click the Yes link and enter a <i>anonymous</i> for the username and leave the password empty</p>
+                <![endif]-->
+
+            </div>
+            <div class="modal-footer">
+                Do you have an Apache ID?
+                <a href="javascript:void(location.href='https://cms.apache.org/redirect?uri='+escape(location.href))" class="btn">Yes</a>
+                <a href="javascript:void(location.href='https://anonymous:@cms.apache.org/redirect?uri='+escape(location.href))" class="btn">No</a>
+            </div>
+        </div>
+        <script src="./../javascript/bootstrap-modal.js"></script>
+
+      <footer>
+        <p>
+        Copyright &copy; 2012~2013 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.
+        <br/>
+        Apache Isis, Isis, Apache, the Apache feather logo, and the Apache Isis project logo are trademarks of The Apache Software Foundation.
+        </p>
+      </footer>
+
+    </div> <!-- /container -->
+
+  </body>
+</html>

Added: websites/staging/isis/trunk/content/applib-guide/recognized-annotations/000-about.html
==============================================================================
--- websites/staging/isis/trunk/content/applib-guide/recognized-annotations/000-about.html (added)
+++ websites/staging/isis/trunk/content/applib-guide/recognized-annotations/000-about.html Wed May 22 07:38:05 2013
@@ -0,0 +1,303 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+
+    <meta charset="utf-8">
+      <title></title>
+    <meta name="description" content="">
+    <meta name="author" content="">
+
+    <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
+    <!--[if lt IE 9]>
+      <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+
+    <!-- Le styles -->
+    <link href="./../../bootstrap.css" rel="stylesheet">
+    <link href="./../../prettify.css" rel="stylesheet">
+    <link href="./../../bootstrap-mods.css" rel="stylesheet">
+
+    <style type="text/css">
+        body {
+          padding-top: 60px;
+        }
+        .sprite {
+            display: inline-block;
+            height: 20px;
+            margin: 0 auto 4px;
+            outline: medium none;
+            text-indent: -999em;
+            width: 24px;
+            background-image: url('./../../images/sprites.png');
+            background-repeat: no-repeat;
+            overflow: hidden;
+            cursor: pointer;
+        }
+        .edit-page {
+            display: inline-block;
+            height: 20px;
+            margin: 0 auto 4px;
+            outline: medium none;
+            text-indent: -999em;
+            width: 24px;
+            background-image: url('./../../images/edit.png');
+            background-repeat: no-repeat;
+            overflow: hidden;
+            cursor: pointer;
+        }
+        .fb-share {
+            background-position: 0px -40px;
+        }
+        .gp-share {
+            background-position: 0px 0px;
+        }
+        .tw-share {
+            background-position: 0px -80px;
+        }
+        .markdown-content {
+            min-height: 500px;
+        }
+        .book-image img {
+          border: 1px;
+          border-style: solid;
+        }
+        .release-matrix .heading {
+            background-color: #eeeeee;
+        }
+        .release-matrix .new {
+            color: #dd0000;
+            font-weight: bolder;
+        }
+        .stub,.note {
+            position: relative;
+            padding: 7px 15px;
+            margin-bottom: 18px;
+            color: #404040;
+            background-color: #eedc94;
+            background-repeat: repeat-x;
+            background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1), to(#eedc94));
+            background-image: -moz-linear-gradient(top, #fceec1, #eedc94);
+            background-image: -ms-linear-gradient(top, #fceec1, #eedc94);
+            background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fceec1), color-stop(100%, #eedc94));
+            background-image: -webkit-linear-gradient(top, #fceec1, #eedc94);
+            background-image: -o-linear-gradient(top, #fceec1, #eedc94);
+            background-image: linear-gradient(top, #fceec1, #eedc94);
+            filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fceec1', endColorstr='#eedc94', GradientType=0);
+            text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+            border-color: #eedc94 #eedc94 #e4c652;
+            border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+            text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
+            border-width: 1px;
+            border-style: solid;
+            -webkit-border-radius: 4px;
+            -moz-border-radius: 4px;
+            border-radius: 4px;
+            -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
+            -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
+            box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
+        }
+    </style>
+    <script type="text/javascript">
+      function fbshare () {
+          window.open(
+                  "http://www.facebook.com/sharer/sharer.php?u="+document.URL,
+                  'Share on Facebook',
+                  'width=640,height=426');
+      };
+      function gpshare () {
+          window.open(
+                  "https://plus.google.com/share?url="+document.URL,
+                  'Share on Google+',
+                  'width=584,height=385');
+      };
+      function twshare () {
+          window.open(
+                  "https://twitter.com/intent/tweet?url="+document.URL+"&text=",
+                  'Share on Twitter',
+                  'width=800,height=526');
+      };
+    </script>
+
+    <!-- Le fav and touch icons -->
+    <link rel="shortcut icon" href="./../../images/favicon.ico">
+    <link rel="apple-touch-icon" href="./../../images/apple-touch-icon.png">
+    <link rel="apple-touch-icon" sizes="72x72" href="./../../images/apple-touch-icon-72x72.png">
+    <link rel="apple-touch-icon" sizes="114x114" href="./../../images/apple-touch-icon-114x114.png">
+
+    <script src="./../../javascript/prettify.js" type="text/javascript"></script>
+    <script src="./../../javascript/jquery-latest.js"></script>
+
+
+    <script src="http://platform.twitter.com/widgets.js" type="text/javascript"></script>
+    <script src="./../../javascript/common.js"></script>
+    <script src="./../../javascript/prettyprint.js"></script>
+
+    <script src="./../../javascript/bootstrap-alert.js"></script>
+    <script src="./../../javascript/bootstrap-dropdown.js"></script>
+    <script src="./../../javascript/bootstrap-tooltip.js"></script>
+    <script src="./../../javascript/bootstrap-alerts.js"></script>
+    <script src="./../../javascript/bootstrap-modal.js"></script>
+    <script src="./../../javascript/bootstrap-transition.js"></script>
+    <script src="./../../javascript/bootstrap-button.js"></script>
+    <script src="./../../javascript/bootstrap-popover.js"></script>
+    <script src="./../../javascript/bootstrap-twipsy.js"></script>
+    <script src="./../../javascript/bootstrap-buttons.js"></script>
+    <script src="./../../javascript/bootstrap-scrollspy.js"></script>
+    <script src="./../../javascript/bootstrap-typeahead.js"></script>
+    <script src="./../../javascript/bootstrap-carousel.js"></script>
+    <script src="./../../javascript/bootstrap-tab.js"></script>
+    <script src="./../../javascript/bootstrap-collapse.js"></script>
+    <script src="./../../javascript/bootstrap-tabs.js"></script>
+
+    
+    
+    
+
+    <script>
+    $(function () { prettyPrint() })
+    $().dropdown()
+    </script>
+
+    <!-- GAQ stuff removed here -->
+
+
+  </head>
+
+  <body>
+
+    <div class="topbar">
+      <div class="fill">
+        <div class="container">
+          <a class="brand" href="./../../index.html">Apache Isis&trade;</a>
+          <ul class="nav">
+            <li class="dropdown">
+              <a href="#" class="dropdown-toggle" data-toggle="dropdown">Apache <b class="caret"></b></a>
+              <ul class="dropdown-menu">
+                <li>
+                  <a href="http://www.apache.org/">Apache Homepage <i class="icon-share-alt"></i></a>
+                </li>
+                <li>
+                  <a href="http://www.apache.org/licenses/">Licenses <i class="icon-share-alt"></i></a>
+                </li>
+                <li>
+                  <a href="http://www.apache.org/security/">Security <i class="icon-share-alt"></i></a>
+                </li>
+                <li>
+                  <a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship <i class="icon-share-alt"></i></a>
+                </li>
+                <li>
+                  <a href="http://www.apache.org/foundation/thanks.html">Thanks <i class="icon-share-alt"></i></a>
+                </li>
+                <li>
+                  <a href="./../../more-thanks.html">More thanks <i class="icon-share-alt"></i></a>
+                </li>
+              </ul>
+            </li>
+            <li><a href="./../../index.html">Home</a></li>
+            <li><a href="./../../download.html">Download</a></li>
+            <li class="dropdown">
+              <a href="#" class="dropdown-toggle" data-toggle="dropdown">Screenshots<b class="caret"></b></a>
+              <ul class="dropdown-menu">
+                <li><a href="./../../getting-started/screenshots.html">Screenshots</a></li>
+                <li><a href="./../../getting-started/screencasts.html">Screencasts</a></li>
+                <!--
+                <li><a href="#">Online Demo</a></li>
+                -->
+              </ul>
+            </li>
+            <li><a href="./../../documentation.html">Documentation</a></li>
+            <li><a href="./../../support.html">Support</a></li>
+
+          </ul>
+
+          <!-- Google CSE Search Box Begins -->
+          <div style="float: right; position: relative; ">
+
+          <!--
+              <form action="http://www.google.com/cse" id="cse-search-box" _lpchecked="1">
+                <div>
+                    <input type="hidden" name="cx" value="012614087480249044419:dn-q5gtwxya">
+                    <input type="hidden" name="ie" value="UTF-8">
+                    <input type="text" name="q" placeholder="Search" size="31" style="border: 1px solid rgb(126, 157, 185); padding: 2px; background-color: rgb(255, 255, 255); background-position: 0% 50%; background-repeat: no-repeat no-repeat;">
+                    <input type="submit" name="sa" value="Search">
+                </div>
+                <input name="siteurl" type="hidden" value="isis.apache.org">
+                <input name="ref" type="hidden" value="">
+                <input name="ss" type="hidden" value="677j458329j2">
+            </form>
+          -->
+          
+            <FORM class="pull-right" id="searchbox_012614087480249044419:dn-q5gtwxya" action="http://www.google.com/cse">
+                    <input type="hidden" name="cx" value="012614087480249044419:dn-q5gtwxya">
+                <INPUT type="hidden" name="cof" value="FORID:0">
+                <INPUT name="q" type="text" placeholder="Search">
+            </FORM>
+
+          </div>
+       <!-- Google CSE Search Box Ends -->
+        
+        </div>
+      </div>
+    </div>
+
+    <div class="container">
+      <div class="markdown-content">
+      
+
+<div class="page-header">
+<p><a href="./../../documentation.html">Docs</a>&nbsp;&raquo&nbsp;<a href="./../../applib-guide/about.html">Applib Guide</a>&nbsp;&raquo&nbsp;<a href="./../../applib-guide/recognized-annotations/about.html">Recognized Annotations</a></p>
+<h1>
+
+</h1>
+</div>
+
+<h1>Recognized Annotations</h1>
+
+<blockquote>
+  <p>All the annotations recognized in the <em>Apache Isis</em> default
+  programming model.</p>
+</blockquote>
+
+<p>This chapter defines the set of annotations that are recognised by the
+<em>Apache Isis</em> default programming model.</p>
+
+
+
+      </div>
+
+        <div id="edit" class="modal hide fade in" style="display: none; ">
+            <div class="modal-header">
+                <a class="close" data-dismiss="modal">x</a>
+
+                <h3>Thank you for contributing to the documention!</h3>
+            </div>
+            <div class="modal-body">
+                <h4>Any help with the documentation is greatly appreciated.</h4>
+                <p>All edits are reviewed before going live, so feel free to do much more than fix typos or links.  If you see a page that could benefit from an entire rewrite, we'd be thrilled to review it.  Don't be surprised if we like it so much we ask you for help with other pages :)</p>
+                <small>NOTICE: unless indicated otherwise on the pages in question, all editable content available from apache.org is presumed to be licensed under the Apache License (AL) version 2.0 and hence all submissions to apache.org treated as formal Contributions under the license terms.</small>
+                <!--[if gt IE 6]>
+                <h4>Internet Explorer Users</h4>
+                <p>If you are not an Apache committer, click the Yes link and enter a <i>anonymous</i> for the username and leave the password empty</p>
+                <![endif]-->
+
+            </div>
+            <div class="modal-footer">
+                Do you have an Apache ID?
+                <a href="javascript:void(location.href='https://cms.apache.org/redirect?uri='+escape(location.href))" class="btn">Yes</a>
+                <a href="javascript:void(location.href='https://anonymous:@cms.apache.org/redirect?uri='+escape(location.href))" class="btn">No</a>
+            </div>
+        </div>
+        <script src="./../../javascript/bootstrap-modal.js"></script>
+
+      <footer>
+        <p>
+        Copyright &copy; 2012~2013 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.
+        <br/>
+        Apache Isis, Isis, Apache, the Apache feather logo, and the Apache Isis project logo are trademarks of The Apache Software Foundation.
+        </p>
+      </footer>
+
+    </div> <!-- /container -->
+
+  </body>
+</html>

Added: websites/staging/isis/trunk/content/applib-guide/recognized-annotations/ActionOrder.html
==============================================================================
--- websites/staging/isis/trunk/content/applib-guide/recognized-annotations/ActionOrder.html (added)
+++ websites/staging/isis/trunk/content/applib-guide/recognized-annotations/ActionOrder.html Wed May 22 07:38:05 2013
@@ -0,0 +1,343 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+
+    <meta charset="utf-8">
+      <title></title>
+    <meta name="description" content="">
+    <meta name="author" content="">
+
+    <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
+    <!--[if lt IE 9]>
+      <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+
+    <!-- Le styles -->
+    <link href="./../../bootstrap.css" rel="stylesheet">
+    <link href="./../../prettify.css" rel="stylesheet">
+    <link href="./../../bootstrap-mods.css" rel="stylesheet">
+
+    <style type="text/css">
+        body {
+          padding-top: 60px;
+        }
+        .sprite {
+            display: inline-block;
+            height: 20px;
+            margin: 0 auto 4px;
+            outline: medium none;
+            text-indent: -999em;
+            width: 24px;
+            background-image: url('./../../images/sprites.png');
+            background-repeat: no-repeat;
+            overflow: hidden;
+            cursor: pointer;
+        }
+        .edit-page {
+            display: inline-block;
+            height: 20px;
+            margin: 0 auto 4px;
+            outline: medium none;
+            text-indent: -999em;
+            width: 24px;
+            background-image: url('./../../images/edit.png');
+            background-repeat: no-repeat;
+            overflow: hidden;
+            cursor: pointer;
+        }
+        .fb-share {
+            background-position: 0px -40px;
+        }
+        .gp-share {
+            background-position: 0px 0px;
+        }
+        .tw-share {
+            background-position: 0px -80px;
+        }
+        .markdown-content {
+            min-height: 500px;
+        }
+        .book-image img {
+          border: 1px;
+          border-style: solid;
+        }
+        .release-matrix .heading {
+            background-color: #eeeeee;
+        }
+        .release-matrix .new {
+            color: #dd0000;
+            font-weight: bolder;
+        }
+        .stub,.note {
+            position: relative;
+            padding: 7px 15px;
+            margin-bottom: 18px;
+            color: #404040;
+            background-color: #eedc94;
+            background-repeat: repeat-x;
+            background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1), to(#eedc94));
+            background-image: -moz-linear-gradient(top, #fceec1, #eedc94);
+            background-image: -ms-linear-gradient(top, #fceec1, #eedc94);
+            background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fceec1), color-stop(100%, #eedc94));
+            background-image: -webkit-linear-gradient(top, #fceec1, #eedc94);
+            background-image: -o-linear-gradient(top, #fceec1, #eedc94);
+            background-image: linear-gradient(top, #fceec1, #eedc94);
+            filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fceec1', endColorstr='#eedc94', GradientType=0);
+            text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+            border-color: #eedc94 #eedc94 #e4c652;
+            border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+            text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
+            border-width: 1px;
+            border-style: solid;
+            -webkit-border-radius: 4px;
+            -moz-border-radius: 4px;
+            border-radius: 4px;
+            -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
+            -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
+            box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
+        }
+    </style>
+    <script type="text/javascript">
+      function fbshare () {
+          window.open(
+                  "http://www.facebook.com/sharer/sharer.php?u="+document.URL,
+                  'Share on Facebook',
+                  'width=640,height=426');
+      };
+      function gpshare () {
+          window.open(
+                  "https://plus.google.com/share?url="+document.URL,
+                  'Share on Google+',
+                  'width=584,height=385');
+      };
+      function twshare () {
+          window.open(
+                  "https://twitter.com/intent/tweet?url="+document.URL+"&text=",
+                  'Share on Twitter',
+                  'width=800,height=526');
+      };
+    </script>
+
+    <!-- Le fav and touch icons -->
+    <link rel="shortcut icon" href="./../../images/favicon.ico">
+    <link rel="apple-touch-icon" href="./../../images/apple-touch-icon.png">
+    <link rel="apple-touch-icon" sizes="72x72" href="./../../images/apple-touch-icon-72x72.png">
+    <link rel="apple-touch-icon" sizes="114x114" href="./../../images/apple-touch-icon-114x114.png">
+
+    <script src="./../../javascript/prettify.js" type="text/javascript"></script>
+    <script src="./../../javascript/jquery-latest.js"></script>
+
+
+    <script src="http://platform.twitter.com/widgets.js" type="text/javascript"></script>
+    <script src="./../../javascript/common.js"></script>
+    <script src="./../../javascript/prettyprint.js"></script>
+
+    <script src="./../../javascript/bootstrap-alert.js"></script>
+    <script src="./../../javascript/bootstrap-dropdown.js"></script>
+    <script src="./../../javascript/bootstrap-tooltip.js"></script>
+    <script src="./../../javascript/bootstrap-alerts.js"></script>
+    <script src="./../../javascript/bootstrap-modal.js"></script>
+    <script src="./../../javascript/bootstrap-transition.js"></script>
+    <script src="./../../javascript/bootstrap-button.js"></script>
+    <script src="./../../javascript/bootstrap-popover.js"></script>
+    <script src="./../../javascript/bootstrap-twipsy.js"></script>
+    <script src="./../../javascript/bootstrap-buttons.js"></script>
+    <script src="./../../javascript/bootstrap-scrollspy.js"></script>
+    <script src="./../../javascript/bootstrap-typeahead.js"></script>
+    <script src="./../../javascript/bootstrap-carousel.js"></script>
+    <script src="./../../javascript/bootstrap-tab.js"></script>
+    <script src="./../../javascript/bootstrap-collapse.js"></script>
+    <script src="./../../javascript/bootstrap-tabs.js"></script>
+
+    
+    
+    
+
+    <script>
+    $(function () { prettyPrint() })
+    $().dropdown()
+    </script>
+
+    <!-- GAQ stuff removed here -->
+
+
+  </head>
+
+  <body>
+
+    <div class="topbar">
+      <div class="fill">
+        <div class="container">
+          <a class="brand" href="./../../index.html">Apache Isis&trade;</a>
+          <ul class="nav">
+            <li class="dropdown">
+              <a href="#" class="dropdown-toggle" data-toggle="dropdown">Apache <b class="caret"></b></a>
+              <ul class="dropdown-menu">
+                <li>
+                  <a href="http://www.apache.org/">Apache Homepage <i class="icon-share-alt"></i></a>
+                </li>
+                <li>
+                  <a href="http://www.apache.org/licenses/">Licenses <i class="icon-share-alt"></i></a>
+                </li>
+                <li>
+                  <a href="http://www.apache.org/security/">Security <i class="icon-share-alt"></i></a>
+                </li>
+                <li>
+                  <a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship <i class="icon-share-alt"></i></a>
+                </li>
+                <li>
+                  <a href="http://www.apache.org/foundation/thanks.html">Thanks <i class="icon-share-alt"></i></a>
+                </li>
+                <li>
+                  <a href="./../../more-thanks.html">More thanks <i class="icon-share-alt"></i></a>
+                </li>
+              </ul>
+            </li>
+            <li><a href="./../../index.html">Home</a></li>
+            <li><a href="./../../download.html">Download</a></li>
+            <li class="dropdown">
+              <a href="#" class="dropdown-toggle" data-toggle="dropdown">Screenshots<b class="caret"></b></a>
+              <ul class="dropdown-menu">
+                <li><a href="./../../getting-started/screenshots.html">Screenshots</a></li>
+                <li><a href="./../../getting-started/screencasts.html">Screencasts</a></li>
+                <!--
+                <li><a href="#">Online Demo</a></li>
+                -->
+              </ul>
+            </li>
+            <li><a href="./../../documentation.html">Documentation</a></li>
+            <li><a href="./../../support.html">Support</a></li>
+
+          </ul>
+
+          <!-- Google CSE Search Box Begins -->
+          <div style="float: right; position: relative; ">
+
+          <!--
+              <form action="http://www.google.com/cse" id="cse-search-box" _lpchecked="1">
+                <div>
+                    <input type="hidden" name="cx" value="012614087480249044419:dn-q5gtwxya">
+                    <input type="hidden" name="ie" value="UTF-8">
+                    <input type="text" name="q" placeholder="Search" size="31" style="border: 1px solid rgb(126, 157, 185); padding: 2px; background-color: rgb(255, 255, 255); background-position: 0% 50%; background-repeat: no-repeat no-repeat;">
+                    <input type="submit" name="sa" value="Search">
+                </div>
+                <input name="siteurl" type="hidden" value="isis.apache.org">
+                <input name="ref" type="hidden" value="">
+                <input name="ss" type="hidden" value="677j458329j2">
+            </form>
+          -->
+          
+            <FORM class="pull-right" id="searchbox_012614087480249044419:dn-q5gtwxya" action="http://www.google.com/cse">
+                    <input type="hidden" name="cx" value="012614087480249044419:dn-q5gtwxya">
+                <INPUT type="hidden" name="cof" value="FORID:0">
+                <INPUT name="q" type="text" placeholder="Search">
+            </FORM>
+
+          </div>
+       <!-- Google CSE Search Box Ends -->
+        
+        </div>
+      </div>
+    </div>
+
+    <div class="container">
+      <div class="markdown-content">
+      
+
+<div class="page-header">
+<p><a href="./../../documentation.html">Docs</a>&nbsp;&raquo&nbsp;<a href="./../../applib-guide/about.html">Applib Guide</a>&nbsp;&raquo&nbsp;<a href="./../../applib-guide/recognized-annotations/about.html">Recognized Annotations</a></p>
+<h1>
+
+</h1>
+</div>
+
+<h2>@ActionOrder</h2>
+
+<blockquote>
+  <p><strong>Support</strong></p>
+  
+  <ul>
+  <li>Not supported by: Wicket viewer; use <code>@MemberOrder</code> instead.</li>
+  </ul>
+</blockquote>
+
+<p><code>@ActionOrder</code> provides a mechanism to specify the order in which
+actions appear in the user interface, in which the order is specified in
+one place in the class.</p>
+
+<p>For example:</p>
+
+<pre><code>@ActionOrder("PlaceNewOrder, CheckCredit")
+public class Customer {
+
+    public Order placeNewOrder() {}
+
+    public CreditRating checkCredit() {}
+
+...
+}
+</code></pre>
+
+<p>The action names are not case sensitive.</p>
+
+<p>Compared to <code>@MemberOrder</code>, there is (currently) one additional advantage
+in that you can easily specify groupings (which may be rendered by the
+viewer as sub-menus). This information may be used by the viewing
+mechanism to render actions into sub-menus.</p>
+
+<p>For example:</p>
+
+<pre><code>@ActionOrder("(Account Management: PlaceOrder, CheckCredit), (Personal Details: ChangeOfAddress, AddEmail)")
+public class Customer {
+    public CreditRating checkCredit() { ... }
+    public void changeOfAddress() { ... }
+    public Order placeNewOrder() { ... }
+    public void addEmail(String emailAddress) { ... }
+    ...
+}
+</code></pre>
+
+<p>However, <code>@ActionOrder</code> is more 'brittle' to change: if you change the
+name of an existing action you will need to ensure that the
+corresponding name within the <code>@ActionOrder</code> annotation is also changed.  For this reason we recommend you use <code>@MemberOrder</code> instead.</p>
+
+
+
+      </div>
+
+        <div id="edit" class="modal hide fade in" style="display: none; ">
+            <div class="modal-header">
+                <a class="close" data-dismiss="modal">x</a>
+
+                <h3>Thank you for contributing to the documention!</h3>
+            </div>
+            <div class="modal-body">
+                <h4>Any help with the documentation is greatly appreciated.</h4>
+                <p>All edits are reviewed before going live, so feel free to do much more than fix typos or links.  If you see a page that could benefit from an entire rewrite, we'd be thrilled to review it.  Don't be surprised if we like it so much we ask you for help with other pages :)</p>
+                <small>NOTICE: unless indicated otherwise on the pages in question, all editable content available from apache.org is presumed to be licensed under the Apache License (AL) version 2.0 and hence all submissions to apache.org treated as formal Contributions under the license terms.</small>
+                <!--[if gt IE 6]>
+                <h4>Internet Explorer Users</h4>
+                <p>If you are not an Apache committer, click the Yes link and enter a <i>anonymous</i> for the username and leave the password empty</p>
+                <![endif]-->
+
+            </div>
+            <div class="modal-footer">
+                Do you have an Apache ID?
+                <a href="javascript:void(location.href='https://cms.apache.org/redirect?uri='+escape(location.href))" class="btn">Yes</a>
+                <a href="javascript:void(location.href='https://anonymous:@cms.apache.org/redirect?uri='+escape(location.href))" class="btn">No</a>
+            </div>
+        </div>
+        <script src="./../../javascript/bootstrap-modal.js"></script>
+
+      <footer>
+        <p>
+        Copyright &copy; 2012~2013 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.
+        <br/>
+        Apache Isis, Isis, Apache, the Apache feather logo, and the Apache Isis project logo are trademarks of The Apache Software Foundation.
+        </p>
+      </footer>
+
+    </div> <!-- /container -->
+
+  </body>
+</html>

Added: websites/staging/isis/trunk/content/applib-guide/recognized-annotations/ActionSemantics.html
==============================================================================
--- websites/staging/isis/trunk/content/applib-guide/recognized-annotations/ActionSemantics.html (added)
+++ websites/staging/isis/trunk/content/applib-guide/recognized-annotations/ActionSemantics.html Wed May 22 07:38:05 2013
@@ -0,0 +1,323 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+
+    <meta charset="utf-8">
+      <title></title>
+    <meta name="description" content="">
+    <meta name="author" content="">
+
+    <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
+    <!--[if lt IE 9]>
+      <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+
+    <!-- Le styles -->
+    <link href="./../../bootstrap.css" rel="stylesheet">
+    <link href="./../../prettify.css" rel="stylesheet">
+    <link href="./../../bootstrap-mods.css" rel="stylesheet">
+
+    <style type="text/css">
+        body {
+          padding-top: 60px;
+        }
+        .sprite {
+            display: inline-block;
+            height: 20px;
+            margin: 0 auto 4px;
+            outline: medium none;
+            text-indent: -999em;
+            width: 24px;
+            background-image: url('./../../images/sprites.png');
+            background-repeat: no-repeat;
+            overflow: hidden;
+            cursor: pointer;
+        }
+        .edit-page {
+            display: inline-block;
+            height: 20px;
+            margin: 0 auto 4px;
+            outline: medium none;
+            text-indent: -999em;
+            width: 24px;
+            background-image: url('./../../images/edit.png');
+            background-repeat: no-repeat;
+            overflow: hidden;
+            cursor: pointer;
+        }
+        .fb-share {
+            background-position: 0px -40px;
+        }
+        .gp-share {
+            background-position: 0px 0px;
+        }
+        .tw-share {
+            background-position: 0px -80px;
+        }
+        .markdown-content {
+            min-height: 500px;
+        }
+        .book-image img {
+          border: 1px;
+          border-style: solid;
+        }
+        .release-matrix .heading {
+            background-color: #eeeeee;
+        }
+        .release-matrix .new {
+            color: #dd0000;
+            font-weight: bolder;
+        }
+        .stub,.note {
+            position: relative;
+            padding: 7px 15px;
+            margin-bottom: 18px;
+            color: #404040;
+            background-color: #eedc94;
+            background-repeat: repeat-x;
+            background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1), to(#eedc94));
+            background-image: -moz-linear-gradient(top, #fceec1, #eedc94);
+            background-image: -ms-linear-gradient(top, #fceec1, #eedc94);
+            background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fceec1), color-stop(100%, #eedc94));
+            background-image: -webkit-linear-gradient(top, #fceec1, #eedc94);
+            background-image: -o-linear-gradient(top, #fceec1, #eedc94);
+            background-image: linear-gradient(top, #fceec1, #eedc94);
+            filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fceec1', endColorstr='#eedc94', GradientType=0);
+            text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+            border-color: #eedc94 #eedc94 #e4c652;
+            border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+            text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
+            border-width: 1px;
+            border-style: solid;
+            -webkit-border-radius: 4px;
+            -moz-border-radius: 4px;
+            border-radius: 4px;
+            -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
+            -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
+            box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
+        }
+    </style>
+    <script type="text/javascript">
+      function fbshare () {
+          window.open(
+                  "http://www.facebook.com/sharer/sharer.php?u="+document.URL,
+                  'Share on Facebook',
+                  'width=640,height=426');
+      };
+      function gpshare () {
+          window.open(
+                  "https://plus.google.com/share?url="+document.URL,
+                  'Share on Google+',
+                  'width=584,height=385');
+      };
+      function twshare () {
+          window.open(
+                  "https://twitter.com/intent/tweet?url="+document.URL+"&text=",
+                  'Share on Twitter',
+                  'width=800,height=526');
+      };
+    </script>
+
+    <!-- Le fav and touch icons -->
+    <link rel="shortcut icon" href="./../../images/favicon.ico">
+    <link rel="apple-touch-icon" href="./../../images/apple-touch-icon.png">
+    <link rel="apple-touch-icon" sizes="72x72" href="./../../images/apple-touch-icon-72x72.png">
+    <link rel="apple-touch-icon" sizes="114x114" href="./../../images/apple-touch-icon-114x114.png">
+
+    <script src="./../../javascript/prettify.js" type="text/javascript"></script>
+    <script src="./../../javascript/jquery-latest.js"></script>
+
+
+    <script src="http://platform.twitter.com/widgets.js" type="text/javascript"></script>
+    <script src="./../../javascript/common.js"></script>
+    <script src="./../../javascript/prettyprint.js"></script>
+
+    <script src="./../../javascript/bootstrap-alert.js"></script>
+    <script src="./../../javascript/bootstrap-dropdown.js"></script>
+    <script src="./../../javascript/bootstrap-tooltip.js"></script>
+    <script src="./../../javascript/bootstrap-alerts.js"></script>
+    <script src="./../../javascript/bootstrap-modal.js"></script>
+    <script src="./../../javascript/bootstrap-transition.js"></script>
+    <script src="./../../javascript/bootstrap-button.js"></script>
+    <script src="./../../javascript/bootstrap-popover.js"></script>
+    <script src="./../../javascript/bootstrap-twipsy.js"></script>
+    <script src="./../../javascript/bootstrap-buttons.js"></script>
+    <script src="./../../javascript/bootstrap-scrollspy.js"></script>
+    <script src="./../../javascript/bootstrap-typeahead.js"></script>
+    <script src="./../../javascript/bootstrap-carousel.js"></script>
+    <script src="./../../javascript/bootstrap-tab.js"></script>
+    <script src="./../../javascript/bootstrap-collapse.js"></script>
+    <script src="./../../javascript/bootstrap-tabs.js"></script>
+
+    
+    
+    
+
+    <script>
+    $(function () { prettyPrint() })
+    $().dropdown()
+    </script>
+
+    <!-- GAQ stuff removed here -->
+
+
+  </head>
+
+  <body>
+
+    <div class="topbar">
+      <div class="fill">
+        <div class="container">
+          <a class="brand" href="./../../index.html">Apache Isis&trade;</a>
+          <ul class="nav">
+            <li class="dropdown">
+              <a href="#" class="dropdown-toggle" data-toggle="dropdown">Apache <b class="caret"></b></a>
+              <ul class="dropdown-menu">
+                <li>
+                  <a href="http://www.apache.org/">Apache Homepage <i class="icon-share-alt"></i></a>
+                </li>
+                <li>
+                  <a href="http://www.apache.org/licenses/">Licenses <i class="icon-share-alt"></i></a>
+                </li>
+                <li>
+                  <a href="http://www.apache.org/security/">Security <i class="icon-share-alt"></i></a>
+                </li>
+                <li>
+                  <a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship <i class="icon-share-alt"></i></a>
+                </li>
+                <li>
+                  <a href="http://www.apache.org/foundation/thanks.html">Thanks <i class="icon-share-alt"></i></a>
+                </li>
+                <li>
+                  <a href="./../../more-thanks.html">More thanks <i class="icon-share-alt"></i></a>
+                </li>
+              </ul>
+            </li>
+            <li><a href="./../../index.html">Home</a></li>
+            <li><a href="./../../download.html">Download</a></li>
+            <li class="dropdown">
+              <a href="#" class="dropdown-toggle" data-toggle="dropdown">Screenshots<b class="caret"></b></a>
+              <ul class="dropdown-menu">
+                <li><a href="./../../getting-started/screenshots.html">Screenshots</a></li>
+                <li><a href="./../../getting-started/screencasts.html">Screencasts</a></li>
+                <!--
+                <li><a href="#">Online Demo</a></li>
+                -->
+              </ul>
+            </li>
+            <li><a href="./../../documentation.html">Documentation</a></li>
+            <li><a href="./../../support.html">Support</a></li>
+
+          </ul>
+
+          <!-- Google CSE Search Box Begins -->
+          <div style="float: right; position: relative; ">
+
+          <!--
+              <form action="http://www.google.com/cse" id="cse-search-box" _lpchecked="1">
+                <div>
+                    <input type="hidden" name="cx" value="012614087480249044419:dn-q5gtwxya">
+                    <input type="hidden" name="ie" value="UTF-8">
+                    <input type="text" name="q" placeholder="Search" size="31" style="border: 1px solid rgb(126, 157, 185); padding: 2px; background-color: rgb(255, 255, 255); background-position: 0% 50%; background-repeat: no-repeat no-repeat;">
+                    <input type="submit" name="sa" value="Search">
+                </div>
+                <input name="siteurl" type="hidden" value="isis.apache.org">
+                <input name="ref" type="hidden" value="">
+                <input name="ss" type="hidden" value="677j458329j2">
+            </form>
+          -->
+          
+            <FORM class="pull-right" id="searchbox_012614087480249044419:dn-q5gtwxya" action="http://www.google.com/cse">
+                    <input type="hidden" name="cx" value="012614087480249044419:dn-q5gtwxya">
+                <INPUT type="hidden" name="cof" value="FORID:0">
+                <INPUT name="q" type="text" placeholder="Search">
+            </FORM>
+
+          </div>
+       <!-- Google CSE Search Box Ends -->
+        
+        </div>
+      </div>
+    </div>
+
+    <div class="container">
+      <div class="markdown-content">
+      
+
+<div class="page-header">
+<p><a href="./../../documentation.html">Docs</a>&nbsp;&raquo&nbsp;<a href="./../../applib-guide/about.html">Applib Guide</a>&nbsp;&raquo&nbsp;<a href="./../../applib-guide/recognized-annotations/about.html">Recognized Annotations</a></p>
+<h1>
+
+</h1>
+</div>
+
+<h2>@ActionSemantics</h2>
+
+<p>This annotation, which applies only to actions, describes whether the
+invocation is safe (as no side-effects), is idempotent (may have
+side-effects but always has the same postconditions), or is neither safe
+nor idempotent. If the annotation is missing then the framework assumes
+non-idempotent.</p>
+
+<p>For example:</p>
+
+<pre><code>public class Customer {
+    @ActionSemantics(Of.SAFE)
+    public CreditRating checkCredit() { ... }
+
+    @ActionSemantics(Of.IDEMPOTENT)
+    public void changeOfAddress(Address address) { ... }
+
+    @ActionSemantics(Of.NON_IDEMPOTENT)
+    public Order placeNewOrder() { ... }
+    ...
+}
+</code></pre>
+
+<p>The annotation was introduced for the restfulobjects viewer in order
+that action invocations could be made available using either HTTP GET,
+PUT or POST (respectively). It is now also used in core runtime's
+in-built concurrency checking; the invocation of a safe action does not
+perform a concurrency check, whereas non-safe actions do perform a
+concurrency check.</p>
+
+
+
+      </div>
+
+        <div id="edit" class="modal hide fade in" style="display: none; ">
+            <div class="modal-header">
+                <a class="close" data-dismiss="modal">x</a>
+
+                <h3>Thank you for contributing to the documention!</h3>
+            </div>
+            <div class="modal-body">
+                <h4>Any help with the documentation is greatly appreciated.</h4>
+                <p>All edits are reviewed before going live, so feel free to do much more than fix typos or links.  If you see a page that could benefit from an entire rewrite, we'd be thrilled to review it.  Don't be surprised if we like it so much we ask you for help with other pages :)</p>
+                <small>NOTICE: unless indicated otherwise on the pages in question, all editable content available from apache.org is presumed to be licensed under the Apache License (AL) version 2.0 and hence all submissions to apache.org treated as formal Contributions under the license terms.</small>
+                <!--[if gt IE 6]>
+                <h4>Internet Explorer Users</h4>
+                <p>If you are not an Apache committer, click the Yes link and enter a <i>anonymous</i> for the username and leave the password empty</p>
+                <![endif]-->
+
+            </div>
+            <div class="modal-footer">
+                Do you have an Apache ID?
+                <a href="javascript:void(location.href='https://cms.apache.org/redirect?uri='+escape(location.href))" class="btn">Yes</a>
+                <a href="javascript:void(location.href='https://anonymous:@cms.apache.org/redirect?uri='+escape(location.href))" class="btn">No</a>
+            </div>
+        </div>
+        <script src="./../../javascript/bootstrap-modal.js"></script>
+
+      <footer>
+        <p>
+        Copyright &copy; 2012~2013 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.
+        <br/>
+        Apache Isis, Isis, Apache, the Apache feather logo, and the Apache Isis project logo are trademarks of The Apache Software Foundation.
+        </p>
+      </footer>
+
+    </div> <!-- /container -->
+
+  </body>
+</html>