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 2014/09/12 11:02:49 UTC

svn commit: r921941 - in /websites/staging/isis/trunk: cgi-bin/ content/ content/contributors/ content/contributors/resources/ content/intro/learning-more/ content/intro/resources/resources/ content/more-advanced-topics/

Author: buildbot
Date: Fri Sep 12 09:02:49 2014
New Revision: 921941

Log:
Staging update by buildbot for isis

Added:
    websites/staging/isis/trunk/content/contributors/resources/isis-importorder-in-intellij.png   (with props)
    websites/staging/isis/trunk/content/more-advanced-topics/how-to-04-015-Password-properties-and-params.html
Modified:
    websites/staging/isis/trunk/cgi-bin/   (props changed)
    websites/staging/isis/trunk/content/   (props changed)
    websites/staging/isis/trunk/content/contributors/development-environment.html
    websites/staging/isis/trunk/content/documentation.html
    websites/staging/isis/trunk/content/intro/learning-more/articles-and-presentations.html
    websites/staging/isis/trunk/content/intro/resources/resources/isis-templates-idea.xml

Propchange: websites/staging/isis/trunk/cgi-bin/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Fri Sep 12 09:02:49 2014
@@ -1 +1 @@
-1614298
+1624480

Propchange: websites/staging/isis/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Fri Sep 12 09:02:49 2014
@@ -1 +1 @@
-1614298
+1624480

Modified: websites/staging/isis/trunk/content/contributors/development-environment.html
==============================================================================
--- websites/staging/isis/trunk/content/contributors/development-environment.html (original)
+++ websites/staging/isis/trunk/content/contributors/development-environment.html Fri Sep 12 09:02:49 2014
@@ -581,6 +581,8 @@ MAVEN_OPTS=-Xms512m -Xmx1024m -XX:MaxPer
 
 <h3>Coding Conventions</h3>
 
+<h4>Eclipse</h4>
+
 <p>Isis provides a number of Eclipse templates to help ensure that code is formatted according to our standards:</p>
 
 <ul>
@@ -605,6 +607,12 @@ MAVEN_OPTS=-Xms512m -Xmx1024m -XX:MaxPer
 
 <p>In addition, you will probably want to import the Java editor templates, as described in the <a href="../intro/resources/editor-templates.html">getting started</a> section.</p>
 
+<h4>IntelliJ</h4>
+
+<p>If you use IntelliJ, we haven't (yet) got  an equivalent settings file, but the screenshot below shows how to setup the import order:</p>
+
+<p><img src="resources/isis-importorder-in-intellij.png" width="500px"></img></p>
+
 <p><!--
 TODO: to add from the original incubator website <a href="http://incubator.apache.org/isis" title="Apache Isis (incubator website)">here</a>.</p>
 

Added: websites/staging/isis/trunk/content/contributors/resources/isis-importorder-in-intellij.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/contributors/resources/isis-importorder-in-intellij.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Modified: websites/staging/isis/trunk/content/documentation.html
==============================================================================
--- websites/staging/isis/trunk/content/documentation.html (original)
+++ websites/staging/isis/trunk/content/documentation.html Fri Sep 12 09:02:49 2014
@@ -455,8 +455,8 @@
 <p><p class="display:none"/></p>
 
 <ul>
-<li><a href="intro/tutorials/tutorials.html">Tutorials</a></li>
-<li><strong><a href="intro/tutorials/screencasts.html">Screencasts</a></strong> <a href="intro/tutorials/screencasts.html"><img src="./images/tv_show-25.png"></a>
+<li><strong><a href="intro/tutorials/screencasts.html">Screencasts</a></strong> <a href="intro/tutorials/screencasts.html"><img src="./images/tv_show-25.png"></a></li>
+<li><a href="intro/tutorials/tutorials.html">Tutorials</a>
 </div>
 <div class="col-md-4"></li>
 </ul>
@@ -639,6 +639,7 @@
 
 <ul>
 <li><a href="./more-advanced-topics/how-to-04-010-How-to-make-a-derived-property.html">Derived property</a></li>
+<li><a href="./more-advanced-topics/how-to-04-015-Password-properties-and-params.md.html">Passwords</a></li>
 <li><a href="./more-advanced-topics/how-to-04-020-How-to-make-a-derived-collection.html">Derived collection</a></li>
 <li><a href="./more-advanced-topics/how-to-04-030-How-to-inline-the-results-of-a-query-only-repository-action.html">Inlining query-only repository action</a></li>
 <li><a href="./more-advanced-topics/how-to-04-040-How-to-trigger-other-behaviour-when-a-property-is-changed.html">Trigger on property change</a></li>

Modified: websites/staging/isis/trunk/content/intro/learning-more/articles-and-presentations.html
==============================================================================
--- websites/staging/isis/trunk/content/intro/learning-more/articles-and-presentations.html (original)
+++ websites/staging/isis/trunk/content/intro/learning-more/articles-and-presentations.html Fri Sep 12 09:02:49 2014
@@ -419,6 +419,12 @@
 
 <p>Some articles and recorded material relating to either Apache Isis (or its predecessor, the Naked Objects framework), or its 'sister' open source project on the .NET platform, Naked Objects .NET.  We've <strong>highlighted</strong> some of the better ones...</p>
 
+<p>2014</p>
+
+<ul>
+<li>Presentation, JEEConf: <a href="https://www.youtube.com/watch?v=BNGUqZ6YE-M">Extremely rapid application development with Apache Isis</a> (50 min. video)</li>
+</ul>
+
 <p>2013</p>
 
 <ul>

Modified: websites/staging/isis/trunk/content/intro/resources/resources/isis-templates-idea.xml
==============================================================================
Binary files - no diff available.

Added: websites/staging/isis/trunk/content/more-advanced-topics/how-to-04-015-Password-properties-and-params.html
==============================================================================
--- websites/staging/isis/trunk/content/more-advanced-topics/how-to-04-015-Password-properties-and-params.html (added)
+++ websites/staging/isis/trunk/content/more-advanced-topics/how-to-04-015-Password-properties-and-params.html Fri Sep 12 09:02:49 2014
@@ -0,0 +1,532 @@
+<!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;
+        }
+        .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;
+       }
+        
+        
+        /* 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;
+        }
+        
+        .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);
+            }
+        }        
+    </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">Show<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<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/">Online Demo</a></li>
+            </ul>
+          </li>
+
+          <li><a href="./../documentation.html">Read</a></li>
+
+          <li class="dropdown">
+            <a href="#" class="dropdown-toggle" data-toggle="dropdown">Get<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">Isis Add-ons</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=">ML Archives</a></li>
+              <li><a href="https://issues.apache.org/jira/browse/ISIS">JIRA</a></li>
+              <li><a href="http://stackoverflow.com/questions/tagged/isis">Stack Overflow</a></li>
+              <li><a href="http://github.com/apache/isis">Github mirror</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/">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>
+      </ul>
+
+        <FORM class="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="./../more-advanced-topics/about.html">More Advanced Topics</a></p>
+<h1>
+
+</h1>
+</div>
+
+<h2>How to use a Password field</h2>
+
+<p>Isis provides the <code>org.apache.isis.applib.value.Password</code> value type which the Wicket viewer will automatically render
+using an appropriate <code>input type=password</code> field.</p>
+
+<p>However, (unlike Isis' <code>Blob</code> and <code>Clob</code> value) the JDO Objectstore does not "know" how to persist a <code>Password</code>.  This
+is deliberate: <code>Password</code> has no built-in encryption mechanism, its use merely ensures that the value of the password
+is not rendered in the UI.</p>
+
+<p>Therefore, the recommended approach for implementing passwords is to use a simple string to store the value, with the
+Password property derived from that.  An injected encryption service can be used to convert between the two.</p>
+
+<p>For example:</p>
+
+<pre><code>@javax.jdo.annotations.Column(allowsNull = "true", name = "password")
+private String passwordStr;
+
+@Optional
+@MemberOrder(sequence = "99")
+public Password getPassword() {
+    return passwordStr !=null? new Password(encryptionService.decrypt(passwordStr)): null;
+}
+
+public void setPassword(final Password password) {
+    this.passwordStr = password != null? encryptionService.encrypt(password.getPassword()): null;
+}
+
+@javax.inject.Inject
+private com.mycompany.services.EncryptionService encryptionService;
+</code></pre>
+
+<p>In this case the password is a property, and the encryption service provides both decryption and encryption.</p>
+
+<p>As a variant on the above, you could arrange for the password to be changed using an action.</p>
+
+<pre><code>@javax.jdo.annotations.Column(allowsNull = "true", name = "password")
+private String passwordStr;
+
+@MemberOrder(sequence = "1")
+public ToDoItem changePassword(@Optional Password password) {
+    this.passwordStr = password != null? encryptionService.encrypt(password.getPassword()): null;
+    return this;
+}
+
+@javax.inject.Inject
+private org.isisaddons.module.security.dom.password PasswordEncryptionService encryptionService;
+</code></pre>
+
+<p>This is more secure because the encryption is one-way: encrypt but not decrypt.  Moreover (as the above code snippet 
+hits at) you could reuse the the <a href="https://github.com/isisaddons/isis-module-security">Security Module Addon</a>'s own
+<a href="https://github.com/isisaddons/isis-module-security/tree/917f1933f978643cd319a35d1be0dd7333e88f76/dom/src/main/java/org/isisaddons/module/security/dom/password">PasswordEncryptionService</a>, which
+includes a reasonably secure implementation of this service.</p>
+
+<h4>UI Cosmetic fix (1.6.0 and earlier)</h4>
+
+<p>In Isis 1.6.0 and earlier there is a cosmetic bug that the password field is not rendered correctly.  Add the following
+CSS into your app's <code>application.css</code> file:</p>
+
+<pre><code>.isisPasswordPanel input[type=password] {
+    border-radius:4px;
+    -moz-border-radius:4px;
+    -webkit-border-radius:4px;
+    padding:6px;
+    border:1px solid #F0EFEA;
+    border-top:1px solid #CCCBC7;
+}
+</code></pre>
+
+<p>This has been fixed in <code>1.7.0-SNAPSHOT</code>.</p>
+
+
+
+      </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~2014 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>