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 2015/03/30 12:46:58 UTC

svn commit: r945619 - in /websites/staging/isis/trunk: cgi-bin/ content/ content/documentation.html content/reference/services/sudo-service.html

Author: buildbot
Date: Mon Mar 30 10:46:57 2015
New Revision: 945619

Log:
Staging update by buildbot for isis

Added:
    websites/staging/isis/trunk/content/reference/services/sudo-service.html
Modified:
    websites/staging/isis/trunk/cgi-bin/   (props changed)
    websites/staging/isis/trunk/content/   (props changed)
    websites/staging/isis/trunk/content/documentation.html

Propchange: websites/staging/isis/trunk/cgi-bin/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Mon Mar 30 10:46:57 2015
@@ -1 +1 @@
-1669911
+1670046

Propchange: websites/staging/isis/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Mon Mar 30 10:46:57 2015
@@ -1 +1 @@
-1669911
+1670046

Modified: websites/staging/isis/trunk/content/documentation.html
==============================================================================
--- websites/staging/isis/trunk/content/documentation.html (original)
+++ websites/staging/isis/trunk/content/documentation.html Mon Mar 30 10:46:57 2015
@@ -937,6 +937,7 @@
 <li><a href="core/integtestsupport.html">Integration Test Support</a></li>
 <li><a href="core/specsupport-and-integtestsupport.html">BDD/Integ Test Support</a></li>
 <li><a href="./more-advanced-topics/Fixture-Scripts.html">Fixture Scripts</a></li>
+<li><a href="./services/sudo-service.html">SudoService</a> (1.9.0-SNAPSHOT)</li>
 <li><a href="components/objectstores/jdo/IsisConfigurationForJdoIntegTests.html">IsisConfigurationForJdoIntegTests</a></li>
 </ul>
 

Added: websites/staging/isis/trunk/content/reference/services/sudo-service.html
==============================================================================
--- websites/staging/isis/trunk/content/reference/services/sudo-service.html (added)
+++ websites/staging/isis/trunk/content/reference/services/sudo-service.html Mon Mar 30 10:46:57 2015
@@ -0,0 +1,689 @@
+<!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-3.0.0/css/bootstrap.css" rel="stylesheet">
+    <link href="./../../prettify.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;
+        }
+
+        .markdown-content .isis-in-pictures img {
+            width: 98%;
+        }
+
+        .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);
+        }
+        
+        div.XXXisis-tweak form {
+            margin-top: 6px;
+            margin-bottom: -2px;
+        }
+        
+        div.row div.col-md-12 {
+          border-top: 1px solid #eeeeee;
+       }
+        .homepage div.row div.col-md-12 {
+          border-top: 0px;
+       }
+
+        
+        /* Isis specific stuff */
+
+        div.row div.col-md-12 {
+          margin-top: 20px;
+        }
+
+        .container {
+          width: 940px;
+        }
+
+        .markdown-content .documentation .span-one-third p {
+          margin-bottom: 0px;
+        }
+
+        .container .markdown-content .group,
+        .markdown-content .documentation .group {
+          margin-top: 9px;
+        }
+
+        .container .group h2,
+        .documentation .group h2 {
+          border-bottom: 1px solid #DDD
+        }
+
+        .container h2 a[name],
+        .documentation h2 a[name] {
+            padding-top: 50px;
+            margin-top: -50px;
+        }
+
+        .apacheconeu2014 h2 {
+          margin-top: 80px;
+        }
+        
+        .container h2 a[name],
+        .container h3 a[name],
+        .container h4 a[name],
+        .documentation h2 a[name],
+        .documentation h3 a[name],
+        .documentation h4 a[name] {
+            color: black;
+            display: inline-block; 
+        }
+        .container h2 a[name]:hover,
+        .container h3 a[name]:hover,
+        .container h4 a[name]:hover,
+        .documentation h2 a[name]:hover,
+        .documentation h3 a[name]:hover,
+        .documentation h4 a[name]:hover {
+            text-decoration: none;
+        }
+
+        .documentation h2 a:not([name]),
+        .documentation h3 a:not([name]),
+        .documentation h4 a:not([name]) {
+          /* same as code style */
+          padding: 0 3px 2px;
+          font-family: Monaco, Andale Mono, Courier New, monospace;
+          font-size: 12px;
+          -webkit-border-radius: 3px;
+          -moz-border-radius: 3px;
+          border-radius: 3px;
+          padding: 1px 3px;
+        }
+        
+        .carousel-indicators li {
+          border: 1px solid rgb(192,70,1);
+        }
+
+        .carousel-indicators li.active {
+          background-color: rgb(192,70,1);
+        }
+        
+        .carousel-control .icon-prev,
+        .carousel-control .icon-next {
+          color: rgb(192,70,1);
+          font-size: 60px;
+        }
+        
+        .page-header {
+          margin-top: 0px;
+        }
+
+        .container blockquote p {
+            font-size: small;
+        }
+
+        .container blockquote p:not([author]) {
+            font-style: italic;
+        }
+
+        .container blockquote p {
+            font-size: small;
+            font-style: italic;
+            font-weight: bold;
+        }
+        
+        footer hr {
+            margin-top: 100px;
+        }
+
+        .markdown-content img {
+            margin-top: 10px;
+            margin-bottom: 20px;
+        }
+
+        .markdown-content a img {
+            margin-top: 0px;
+            margin-bottom: 0px;
+        }
+
+        
+        #forkongithub a{
+            display: none;
+            background:#090;
+            color:#fff;
+            text-decoration:none;
+            font-family:arial, sans-serif;
+            text-align:center;
+            font-weight:bold;
+            padding:5px 40px;
+            font-size:1rem;
+            line-height:2rem;
+            position:relative;
+            transition:0.5s;
+        }
+        #forkongithub a:hover{
+            background:#0D0;
+            color:#fff;
+        }
+        #forkongithub a::before,
+        #forkongithub a::after{
+            content:"";width:100%;
+            display:block;
+            position:fixed;
+            top:1px;
+            left:0;
+            height:1px;
+            background:#fff;
+            z-index: 9999;
+        }
+        #forkongithub a::after{
+            bottom:1px;
+            top:auto;
+        }
+        @media screen and (min-width:768px){
+            #forkongithub{
+                position:fixed;
+                display:block;
+                top:0;
+                right:0;
+                width:250px;
+                overflow:hidden;
+                height:250px;
+                z-index: 9999;
+            }
+            #forkongithub a{
+                display:inherit;
+                width:250px;
+                position:fixed;
+                font-size:small;
+                top:40px;
+                right:-60px;
+                transform:rotate(45deg);
+                -webkit-transform:rotate(45deg);
+                -ms-transform:rotate(45deg);
+                box-shadow:4px 4px 10px rgba(0,0,0,0.8);
+            }
+        }
+
+
+        .container .homepage .jumbotron {
+            padding-top: 20px;
+            padding-bottom: 20px;
+        }
+
+        .jumbotron .container {
+            padding-top: 20px;
+            padding-bottom: 20px;
+            padding-left: 30px;
+            padding-right: 30px;
+        }
+
+        .jumbotron .description {
+            padding-top: 20px;
+        }
+
+        /* carousel */
+        #quote-carousel
+        {
+            padding: 0 10px 30px 10px;
+            margin-top: 30px 0px 0px;
+        }
+
+        /* Control buttons  */
+        #quote-carousel .carousel-control
+        {
+            background: none;
+            color: #222;
+            font-size: 2.3em;
+            text-shadow: none;
+            margin-top: 60px;
+        }
+
+        div#quote-carousel {
+            height: 260px;
+            margin-left: 20px;
+        }
+
+        #quote-carousel blockquote p {
+            font-size: medium;
+        }
+
+        #quote-carousel .carousel-inner blockquote small {
+            font-size: 70%;
+        }
+
+        #quote-carousel .carousel-inner blockquote .row .col-md-12 {
+            padding-left: 0px;
+            padding-right: 0px;
+            margin-left: -5px;
+            margin-right: -5px;
+        }
+
+        #quote-carousel .carousel-control.left
+        {
+            left: -12px;
+        }
+        #quote-carousel .carousel-control.right
+        {
+            right: -12px !important;
+        }
+        #quote-carousel .carousel-indicators
+        {
+            right: 50%;
+            top: auto;
+            bottom: 0px;
+            margin-right: -19px;
+        }
+        #quote-carousel .carousel-indicators li
+        {
+            background: #c0c0c0;
+        }
+        #quote-carousel .carousel-indicators .active
+        {
+            background: #333333;
+        }
+        #quote-carousel img
+        {
+            width: 250px;
+            height: 100px
+        }
+        /* End carousel */
+
+        .item blockquote {
+            border-left: none;
+            margin: 0;
+        }
+
+        .item blockquote img {
+            margin-bottom: 10px;
+        }
+
+        .jumbotron h3.legend {
+            text-align: center;
+        }
+        /*
+        .item blockquote p:before {
+            content: "\f10d";
+            font-family: 'Fontawesome';
+            float: left;
+            margin-right: 10px;
+        }
+        */
+
+
+
+        /**
+          MEDIA QUERIES
+        */
+
+        @media (max-width: 991px) {
+
+            .jumbotron img.logo {
+                width: 300px;
+            }
+
+            #quote-carousel .carousel-indicators {
+                display: none;
+            }
+
+            #quote-carousel .carousel-indicators {
+                display: none;
+            }
+
+            .navbar form.searchbox {
+                display: none;
+            }
+        }
+
+        @media (min-width: 992px) {
+            .jumbotron img.logo {
+                width: 400px;
+            }
+        }
+
+        /* Small devices (tablets, 768px and up) */
+        @media (min-width: 768px) {
+            #quote-carousel
+            {
+                margin-bottom: 0;
+                margin-top: 30px;
+            }
+
+
+        }
+
+        /* Small devices (tablets, up to 768px) */
+        @media (max-width: 768px) {
+
+            /* Make the indicators larger for easier clicking with fingers/thumb on mobile */
+
+            #quote-carousel .carousel-indicators {
+                bottom: -20px !important;
+            }
+            #quote-carousel .carousel-indicators li {
+                display: inline-block;
+                margin: 0px 5px;
+                width: 15px;
+                height: 15px;
+            }
+            #quote-carousel .carousel-indicators li.active {
+                margin: 0px 5px;
+                width: 20px;
+                height: 20px;
+            }
+
+        }
+
+        .jumbotron .learn-more {
+            margin-top: 20px;
+        }
+
+
+
+    </style>
+
+    <!-- courtesy of http://codepo8.github.io/css-fork-on-github-ribbon/ -->
+    <span id="forkongithub">
+        <a href="https://github.com/apache/isis">Fork me on GitHub</a>
+    </span>
+
+    <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">
+
+    <script src="./../../javascript/prettify.js" type="text/javascript"></script>
+    
+    <script src="//code.jquery.com/jquery.js"></script>
+    <script src="./../../javascript/prettyprint.js"></script>
+    <script src="./../../bootstrap-3.0.0/js/bootstrap.js"></script>
+
+
+    <script src="http://platform.twitter.com/widgets.js" type="text/javascript"></script>
+    <!--
+    <DISABLEDscript src="./../../javascript/common.js"></DISABLEDscript>
+    -->
+
+    
+    
+    
+
+    <script>
+    $(function () { prettyPrint() })
+    $().dropdown()
+    </script>
+
+    
+  </head>
+
+  <body>
+
+    <nav class="navbar navbar-fixed-top navbar-inverse" role="navigation">
+      <div class="container">
+        <a class="navbar-brand" href="./../../index.html">Apache Isis&trade;</a>
+        <ul class="nav navbar-nav">
+
+          <li class="dropdown">
+            <a href="#" class="dropdown-toggle" data-toggle="dropdown">Demos<b class="caret"></b></a>
+            <ul class="dropdown-menu">
+              <li><a href="./../../intro/elevator-pitch/isis-in-pictures.html">Screenshots</a></li>
+              <li><a href="./../../intro/tutorials/screencasts.html">Screencasts&nbsp;<img src="./../../images/tv_show-25.png"></a></li>
+              <li><a href="./../../intro/powered-by/powered-by.html">Powered by</a></li>
+              <li><a href="http://isisdemo.mmyco.co.uk/" target="_blank">Online Demo</a></li>
+            </ul>
+          </li>
+
+          <li><a href="./../../documentation.html">Documentation</a></li>
+
+          <li class="dropdown">
+            <a href="#" class="dropdown-toggle" data-toggle="dropdown">Downloads<b class="caret"></b></a>
+            <ul class="dropdown-menu">
+              <li><a href="./../../intro/getting-started/simpleapp-archetype.html">Isis (Maven archetype)</a></li>
+              <li><a href="./../../download.html">Isis (downloads)</a></li>
+              <li><a href="http://www.isisaddons.org" target="_blank">Isis Add-ons (not ASF)</a></li>
+            </ul>
+          </li>
+
+          <li class="dropdown">
+            <a href="#" class="dropdown-toggle" data-toggle="dropdown">Help<b class="caret"></b></a>
+            <ul class="dropdown-menu">
+              <li><a href="./../../support.html">Mailing Lists</a></li>
+              <li><a href="http://isis.markmail.org/search/?q=" target="_blank">Mailing List Archives</a></li>
+              <li><a href="https://issues.apache.org/jira/browse/ISIS" target="_blank">JIRA</a></li>
+              <li><a href="http://github.com/apache/isis" target="_blank">Github mirror</a></li>
+              <li><a href="http://stackoverflow.com/questions/tagged/isis" target="_blank">Stack Overflow</a></li>
+              <li><a href="./../../contributors/contributing.html">How to contribute</a></li>
+            </ul>
+          </li>
+
+
+          <li class="dropdown navbar-right">
+            <a href="#" class="dropdown-toggle" data-toggle="dropdown">@ASF<b class="caret"></b></a>
+            <ul class="dropdown-menu">
+              <li>
+                <a href="http://www.apache.org/" target="_blank">Apache Homepage <i class="icon-share-alt"></i></a>
+              </li>
+              <li>
+                <a href="http://www.apache.org/licenses/" target="_blank">Licenses <i class="icon-share-alt"></i></a>
+              </li>
+              <li>
+                <a href="http://www.apache.org/security/" target="_blank">Security <i class="icon-share-alt"></i></a>
+              </li>
+              <li>
+                <a href="http://www.apache.org/foundation/sponsorship.html" target="_blank">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>
+      </ul>
+
+        <FORM class="searchbox navbar-form navbar-right" id="searchbox_012614087480249044419:dn-q5gtwxya" action="http://www.google.com/cse">
+        <div class="form-group">
+          <input type="hidden" name="cx" value="012614087480249044419:dn-q5gtwxya">
+          <INPUT type="hidden" name="cof" value="FORID:0">
+          <INPUT class="form-control" name="q" type="text" placeholder="Search">
+        </div>
+      </FORM>
+
+
+      </div>
+
+
+  </nav>
+
+    <div class="container">
+      <div class="markdown-content">
+      
+
+<div class="page-header">
+<p><a href="./../../documentation.html">Docs</a>&nbsp;&raquo&nbsp;<a href="./../../reference/about.html">Reference</a>&nbsp;&raquo&nbsp;<a href="./../../reference/services/about.html">Services</a></p>
+<h1>
+
+</h1>
+</div>
+
+<h1>SudoService (1.9.0-SNAPSHOT)</h1>
+
+<p>The <code>SudoService</code> allows the current user reported by the <code>DomainObjectContainer</code> to be temporarily changed to some 
+other user.  This is valuable during both integration testing (eg if testing a workflow system whereby objects are
+moved from one user to another) and during fixture scripts (eg setting up objects that would normally require several
+users to have acted upon the objects).</p>
+
+<p>The API provided by the service is:</p>
+
+<pre><code>public interface SudoService {
+
+    void sudo(String username, final Runnable runnable);
+    &lt;T&gt; T sudo(String username, final Callable&lt;T&gt; callable);
+    void sudo(String username, List&lt;String&gt; roles, final Runnable runnable);
+    &lt;T&gt; T sudo(String username, List&lt;String&gt; roles, final Callable&lt;T&gt; callable);
+}
+</code></pre>
+
+<p>which will run the provided block of code (a <code>Runnable</code> or a <code>Callable</code>) as if the specified username and optionally
+roles being returned by <code>DomainObjectContainer#getUser()</code>.</p>
+
+<p>For example, in the <a href="https://github.com/isisaddons/isis-app-todoapp">todoapp</a> (non ASF) the <code>SudoService</code> is used to 
+set up todo item objects:</p>
+
+<pre><code>protected void execute(final ExecutionContext ec) {
+    ...
+    sudoService.sudo(getUsername(),
+            new Runnable() {
+                @Override
+                public void run() {
+                    wrap(toDoItem).completed();
+                }
+            });
+    ...
+}
+</code></pre>
+
+
+
+      </div>
+
+        <div id="edit" class="modal hide fade in" style="xxxdisplay: 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>
+        <hr/>
+        <p>
+        Copyright &copy; 2010~2015 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>