You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2015/06/16 08:32:16 UTC
svn commit: r1685718 [45/47] - in /isis/site/trunk/content: ./ css/
css/asciidoctor/ css/font-awesome/ css/font-awesome/4.3.0/
css/font-awesome/4.3.0/css/ css/font-awesome/4.3.0/fonts/
css/font-awesome/4.3.0/less/ css/font-awesome/4.3.0/scss/ css/found...
Added: isis/site/trunk/content/screencasts.html
URL: http://svn.apache.org/viewvc/isis/site/trunk/content/screencasts.html?rev=1685718&view=auto
==============================================================================
--- isis/site/trunk/content/screencasts.html (added)
+++ isis/site/trunk/content/screencasts.html Tue Jun 16 06:32:10 2015
@@ -0,0 +1,1052 @@
+<!doctype html>
+<html class="no-js" lang="en">
+<head>
+ <meta charset="utf-8"/>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+
+ <title>Screencasts</title>
+
+ <!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+ -->
+
+ <!-- No caching headers -->
+ <meta http-equiv="cache-control" content="no-cache" />
+ <meta http-equiv="pragma" content="no-cache" />
+ <meta http-equiv="expires" content="-1" />
+
+
+ <!-- TODO: need to (re)instate CDN in the future (not using for now just so can develop off-line -->
+ <link href="./css/foundation/5.5.1/foundation.css" rel="stylesheet" />
+ <script src="./js/foundation/5.5.1/vendor/modernizr.js"></script>
+ <link href="./css/asciidoctor/colony.css" rel="stylesheet">
+ <link href="./css/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet">
+
+
+
+
+ <link href="./css/github-fork-ribbon-css/0.1.1/gh-fork-ribbon.css" rel="stylesheet" />
+ <!--[if lt IE 9]>
+ <link href="./css/github-fork-ribbon-css/0.1.1/gh-fork-ribbon.ie.css" rel="stylesheet" />
+ <![endif]-->
+
+
+ <style type="text/css">
+ /* Stylesheet for CodeRay to match GitHub theme | MIT License | http://foundation.zurb.com */
+/*pre.CodeRay {background-color:#f7f7f8;}*/
+.CodeRay .line-numbers{border-right:1px solid #d8d8d8;padding:0 0.5em 0 .25em}
+.CodeRay span.line-numbers{display:inline-block;margin-right:.5em;color:rgba(0,0,0,.3)}
+.CodeRay .line-numbers strong{font-weight: normal}
+table.CodeRay{border-collapse:separate;border-spacing:0;margin-bottom:0;border:0;background:none}
+table.CodeRay td{vertical-align: top}
+table.CodeRay td.line-numbers{text-align:right}
+table.CodeRay td.line-numbers>pre{padding:0;color:rgba(0,0,0,.3)}
+table.CodeRay td.code{padding:0 0 0 .5em}
+table.CodeRay td.code>pre{padding:0}
+.CodeRay .debug{color:#fff !important;background:#000080 !important}
+.CodeRay .annotation{color:#007}
+.CodeRay .attribute-name{color:#000080}
+.CodeRay .attribute-value{color:#700}
+.CodeRay .binary{color:#509}
+.CodeRay .comment{color:#998;font-style:italic}
+.CodeRay .char{color:#04d}
+.CodeRay .char .content{color:#04d}
+.CodeRay .char .delimiter{color:#039}
+.CodeRay .class{color:#458;font-weight:bold}
+.CodeRay .complex{color:#a08}
+.CodeRay .constant,.CodeRay .predefined-constant{color:#008080}
+.CodeRay .color{color:#099}
+.CodeRay .class-variable{color:#369}
+.CodeRay .decorator{color:#b0b}
+.CodeRay .definition{color:#099}
+.CodeRay .delimiter{color:#000}
+.CodeRay .doc{color:#970}
+.CodeRay .doctype{color:#34b}
+.CodeRay .doc-string{color:#d42}
+.CodeRay .escape{color:#666}
+.CodeRay .entity{color:#800}
+.CodeRay .error{color:#808}
+.CodeRay .exception{color:inherit}
+.CodeRay .filename{color:#099}
+.CodeRay .function{color:#900;font-weight:bold}
+.CodeRay .global-variable{color:#008080}
+.CodeRay .hex{color:#058}
+.CodeRay .integer,.CodeRay .float{color:#099}
+.CodeRay .include{color:#555}
+.CodeRay .inline{color:#00}
+.CodeRay .inline .inline{background:#ccc}
+.CodeRay .inline .inline .inline{background:#bbb}
+.CodeRay .inline .inline-delimiter{color:#d14}
+.CodeRay .inline-delimiter{color:#d14}
+.CodeRay .important{color:#555;font-weight:bold}
+.CodeRay .interpreted{color:#b2b}
+.CodeRay .instance-variable{color:#008080}
+.CodeRay .label{color:#970}
+.CodeRay .local-variable{color:#963}
+.CodeRay .octal{color:#40e}
+.CodeRay .predefined{color:#369}
+.CodeRay .preprocessor{color:#579}
+.CodeRay .pseudo-class{color:#555}
+.CodeRay .directive{font-weight:bold}
+.CodeRay .type{font-weight:bold}
+.CodeRay .predefined-type{color:inherit}
+.CodeRay .reserved,.CodeRay .keyword {color:#000;font-weight:bold}
+.CodeRay .key{color:#808}
+.CodeRay .key .delimiter{color:#606}
+.CodeRay .key .char{color:#80f}
+.CodeRay .value{color:#088}
+.CodeRay .regexp .delimiter{color:#808}
+.CodeRay .regexp .content{color:#808}
+.CodeRay .regexp .modifier{color:#808}
+.CodeRay .regexp .char{color:#d14}
+.CodeRay .regexp .function{color:#404;font-weight:bold}
+.CodeRay .string{color:#d20}
+.CodeRay .string .string .string{background:#ffd0d0}
+.CodeRay .string .content{color:#d14}
+.CodeRay .string .char{color:#d14}
+.CodeRay .string .delimiter{color:#d14}
+.CodeRay .shell{color:#d14}
+.CodeRay .shell .delimiter{color:#d14}
+.CodeRay .symbol{color:#990073}
+.CodeRay .symbol .content{color:#a60}
+.CodeRay .symbol .delimiter{color:#630}
+.CodeRay .tag{color:#008080}
+.CodeRay .tag-special{color:#d70}
+.CodeRay .variable{color:#036}
+.CodeRay .insert{background:#afa}
+.CodeRay .delete{background:#faa}
+.CodeRay .change{color:#aaf;background:#007}
+.CodeRay .head{color:#f8f;background:#505}
+.CodeRay .insert .insert{color:#080}
+.CodeRay .delete .delete{color:#800}
+.CodeRay .change .change{color:#66f}
+.CodeRay .head .head{color:#f4f}
+
+ pre.CodeRay code {
+ background-color: inherit;
+ border-style: none;
+ }
+
+ pre.CodeRay code > span:first-child {
+ margin-left: -5px;
+ }
+
+ .literalblock pre,
+ .listingblock pre:not(.highlight),
+ .listingblock pre[class="highlight"],
+ .listingblock pre[class^="highlight "],
+ .listingblock pre.CodeRay,
+ .listingblock pre.prettyprint {
+ background: rgb(253, 250, 246);
+ }
+ .sidebarblock .literalblock pre,
+ .sidebarblock .listingblock pre:not(.highlight),
+ .sidebarblock .listingblock pre[class="highlight"],
+ .sidebarblock .listingblock pre[class^="highlight "],
+ .sidebarblock .listingblock pre.CodeRay,
+ .sidebarblock .listingblock pre.prettyprint {
+ background: rgb(253, 250, 246);
+ }
+
+ <style>
+
+ <style>
+ .github-fork-ribbon-wrapper.right {
+ position: fixed;
+ }
+ .github-fork-ribbon {
+ background: #090;
+ }
+ .github-fork-ribbon a:hover {
+ background:#0D0;
+ color:#fff;
+ font-size: 1.1em;
+ }
+ </style>
+
+ <style>
+ @media only screen and (min-width: 40.063em) {
+ .top-bar {
+ .contain-to-grid .top-bar {
+ max-width: 80rem;
+ }
+ }
+ }
+ .row {
+ max-width: 80rem;
+ }
+ </style>
+
+ <style>
+ .extended-quote,
+ .extended-quote-first {
+ margin-left: 40px;
+ margin-right: 40px;
+ font-style: italic;
+ }
+ .extended-quote-attribution {
+ text-align: right;
+ margin-right: 100px;
+ color: #10B061;
+ }
+
+ .extended-quote-first:before {
+ content: "\201c";
+ float: left;
+ font-size: 2.75em;
+ font-weight: bold;
+ line-height: 0.6em;
+ margin-left: -0.6em;
+ color: #003b6b;
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
+ }
+ </style>
+
+ <style>
+ body {
+ position: relative;
+ }
+
+ *:not(pre) a > code {
+ color: #210DDC;
+ }
+
+ *:not(pre) > code {
+ background-color: inherit;
+ border: none;
+ font-weight: normal;
+ }
+
+ body div#toc li,
+ body div#toc2 li {
+ list-style-type: none;
+ }
+
+ div#doc-content {
+ margin-top: 30px;
+ }
+
+ body div#toc li.active-region:before,
+ body div#toc2 li.active-region:before {
+ content: "\00BB \0020";
+ margin-left: -12px;
+ }
+
+ body div#toc li a.active,
+ body div#toc2 li a.active {
+ color: red;
+ }
+
+ body div#toc.toc,
+ body div#toc.toc2 {
+ position: fixed;
+ left: auto;
+ padding-top: 60px;
+ z-index: auto;
+ background-color: white;
+ border-left-color: #eee;
+ border-left-style: solid;
+ border-right: none;
+ min-height: 2000px;
+ }
+
+ </style>
+
+ <style>
+
+ @media only screen and (min-width: 768px) {
+ #toc.toc2 ul ul { margin-left: -10px; }
+ }
+
+
+ body div#toc .tocify-subheader ul {
+ margin-bottom: 0px;
+ }
+
+ body div#toc .tocify-subheader li {
+ font-size: 14px;
+ }
+ .tocify li.tocify-item, .tocify ul.tocify-item {
+ line-height: 24px;
+ }
+
+ body div#toc li.tocify-item.active:before,
+ body div#toc2 li.tocify-item.active:before {
+ content: "\00BB \0020";
+ margin-left: -12px;
+ }
+
+ body div#toc li.tocify-item.active a,
+ body div#toc2 li.tocify-item.active a {
+ color: red;
+ }
+ </style>
+
+ <style>
+ footer {
+ margin-top: 1000px;
+ }
+ </style>
+
+ <style>
+ /* overriding colony.css stylesheet */
+ .literalblock pre, .literalblock pre[class], .listingblock pre, .listingblock pre[class] {
+ /*padding: 1.25em 1.5625em 1.125em 1.5625em;*/
+ padding: 0.3em 0.6em 0.25em 0.6em;
+ }
+ @media only screen and (min-width: 1280px)
+ #toc.toc2 {
+ /*width: 20em;*/
+ width: 25em;
+ }
+
+ #doc-content a {
+ color: #210DDC;
+ }
+
+ .top-bar h1 {
+ border-bottom: inherit;
+ }
+
+ h2 {
+ margin-top: 80px;
+ }
+ h3 {
+ margin-top: 40px;
+ }
+ h4,h5 {
+ margin-top: 30px;
+ }
+
+ .admonitionblock.tip > table td.content {
+ color: #10B061;
+ }
+ .admonitionblock.note > table td.content {
+ color: #B509AB;
+ }
+ .admonitionblock.important > table td.content {
+ color: #D5810A;
+ }
+
+ .admonitionblock .title {
+ font-size: larger;
+ font-style: italic;
+ }
+
+ .imageblock img {
+ margin-bottom: 10px;
+ }
+ </style>
+
+ <style>
+ /* from http://ben.balter.com/2014/03/13/pages-anchor-links/ */
+ .header-link {
+ position: absolute;
+ left: -0.5em;
+ opacity: 0;
+
+ /*
+ -webkit-transition: opacity 0.2s ease-in-out 0.1s;
+ -moz-transition: opacity 0.2s ease-in-out 0.1s;
+ -ms-transition: opacity 0.2s ease-in-out 0.1s;
+ */
+ }
+
+ h2:hover .header-link,
+ h3:hover .header-link,
+ h4:hover .header-link,
+ h5:hover .header-link,
+ h6:hover .header-link {
+ opacity: 1;
+ }
+ </style>
+
+ <style>
+ .top-bar
+ {
+ -webkit-transition-duration: .5s;
+ transition-duration: .5s;
+
+ -webkit-transition-timing-function: cubic-bezier( 0.215, 0.610, 0.355, 1.000 );
+ transition-timing-function: cubic-bezier( 0.215, 0.610, 0.355, 1.000 );
+
+ -webkit-transition-property: -webkit-transform;
+ transition-property: transform;
+ }
+
+ /*
+ http://osvaldas.info/auto-hide-sticky-header
+ MIT license
+ */
+ .header--hidden
+ {
+ -webkit-transform: translateY( -100% );
+ -ms-transform: translateY( -100% );
+ transform: translateY( -100% );
+
+ transition-duration: .5s;
+ transition-timing-function: cubic-bezier( 0.215, 0.610, 0.355, 1.000 );
+ -webkit-transition-property: -webkit-transform;
+ transition-property: transform;
+ }
+ </style>
+
+ <style>
+ #doc-content a.guide {
+ color: white;
+ }
+ </style>
+
+ <style>
+ .tocify {
+ margin-top: 80px;
+ }
+ </style>
+
+
+</script>
+
+</head>
+<body>
+
+<<div class="github-fork-ribbon-wrapper right" style="position: fixed;">
+ <div class="github-fork-ribbon">
+ <a href="https://github.com/apache/isis/fork">Fork me on GitHub</a>
+ </div>
+</div>
+
+
+<div class="row">
+
+ <div class="fixed contain-to-grid header">
+ <nav class="top-bar" data-topbar role="navigation" style="max-width: 80rem">
+ <ul class="title-area">
+ <li class="name">
+ <h1>
+ <a href="/index.html">Apache Isis™</a>
+ </h1>
+ </li>
+ <!-- Remove the class "menu-icon" to get rid of menu icon. Take out "Menu" to just have icon alone -->
+ <li class="toggle-topbar menu-icon"><a href="#"><span>Menu</span></a></li>
+ </ul>
+
+ <section class="top-bar-section">
+ <ul class="right">
+
+ <li class="has-form">
+ <FORM class="searchbox navbar-form navbar-right" id="searchbox_012614087480249044419:dn-q5gtwxya" action="http://www.google.com/cse">
+ <div class="row collapse">
+ <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>
+ </li>
+
+ </ul>
+
+ <!-- Left Nav Section -->
+ <ul class="left">
+
+ <li><a href="/documentation.html">Documentation</a></li>
+ <li><a href="/downloads.html">Downloads</a></li>
+ <li><a href="/help.html">Help</a></li>
+ <li><a href="/asf.html">@ASF</a></li>
+
+ </ul>
+
+ </section>
+ </nav>
+ </div>
+</div>
+
+<div class="row">
+
+ <div id="doc-content-left" class="large-9 medium-9 columns">
+
+
+ <div id="doc-content">
+ <div id="preamble">
+<div class="sectionbody">
+<div class="paragraph">
+<p><br/><br/></p>
+</div>
+<div class="paragraph">
+<p>We’ve prepared some screencasts to help you quickly see what Apache Isis has to offer.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_getting_started">Getting Started</h2>
+<div class="sectionbody">
+<table class="tableblock frame-all grid-all spread">
+<colgroup>
+<col style="width: 50%;">
+<col style="width: 50%;">
+</colgroup>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p>How it works (v1.1.0)+</p>
+</div>
+<div class="paragraph">
+<p><em>How Apache Isis builds a webapp from the underlying domain object model</em></p>
+</div>
+<div class="paragraph">
+<p><em>This screencast is for Isis v1.1.0 (ie very out of date)</em></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><div><div class="videoblock">
+<div class="content">
+<iframe width="420px" height="315px" src="//www.youtube.com/embed/ludOLyi6VyY?rel=0" frameborder="0" allowfullscreen></iframe>
+</div>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p>Todo app walkthrough (v.1.4.0)<br></p>
+</div>
+<div class="paragraph">
+<p><em>A run-through of the main features of the (non-ASF) <a href="http://github.com/isisaddons/isis-app-todoapp">Isis addons' todoapp</a></em><br></p>
+</div>
+<div class="paragraph">
+<p><em>nb: the todoapp was previously called the 'quickstart' app</em></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><div><div class="videoblock">
+<div class="content">
+<iframe width="420px" height="210px" src="//www.youtube.com/embed/2leQwavWxeg?rel=0" frameborder="0" allowfullscreen></iframe>
+</div>
+</div></div></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_development_environment">Development Environment</h2>
+<div class="sectionbody">
+<table class="tableblock frame-all grid-all spread">
+<colgroup>
+<col style="width: 50%;">
+<col style="width: 50%;">
+</colgroup>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p>Setting up Eclipse<br></p>
+</div>
+<div class="paragraph">
+<p><em>How to import an Apache Isis maven-based application into Eclipse and configure to use with the JDO Objectstore</em><br></p>
+</div>
+<div class="paragraph">
+<p>NB: when configuring DataNucleus for the <strong>dom</strong> project, make sure you are in the 'Java perspective', not the 'Java EE perspective').<br></p>
+</div>
+<div class="paragraph">
+<p>Learn more <a href="./guides/dg.html#_dg_eclipse">here</a></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><div><div class="videoblock">
+<div class="content">
+<iframe width="420px" height="315px" src="//www.youtube.com/embed/RgcYfjQ8yJA?rel=0" frameborder="0" allowfullscreen></iframe>
+</div>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p>Setting up IntelliJ<br></p>
+</div>
+<div class="paragraph">
+<p><em>How to import an Apache Isis maven-based application into IntelliJ and run the app.</em><br></p>
+</div>
+<div class="paragraph">
+<p>Learn more <a href="./guides/dg.html#_dg_intellij">here</a></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><div><div class="videoblock">
+<div class="content">
+<iframe width="420px" height="315px" src="//www.youtube.com/embed/lwKsyTbTSnA?rel=0" frameborder="0" allowfullscreen></iframe>
+</div>
+</div></div></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_isis_add_on_modules">Isis Add-on Modules</h2>
+<div class="sectionbody">
+<table class="tableblock frame-all grid-all spread">
+<colgroup>
+<col style="width: 50%;">
+<col style="width: 50%;">
+</colgroup>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p>Commands and Auditing (v1.6.0)<br></p>
+</div>
+<div class="paragraph">
+<p><em>Configuring the command and auditing add-on modules for the <a href="./simpleapp-archetype.html">simpleapp</a>.</em><br></p>
+</div>
+<div class="paragraph">
+<p>Learn more at the (non-ASF) Isis addons' <a href="http://github.com/isisaddons/isis-module-command">command</a> and <a href="http://github.com/isisaddons/isis-module-audit">audit</a> modules</p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><div><div class="videoblock">
+<div class="content">
+<iframe width="420px" height="236px" src="//www.youtube.com/embed/g01tK58MxJ8?rel=0" frameborder="0" allowfullscreen></iframe>
+</div>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p>Security (v1.6.0)<br></p>
+</div>
+<div class="paragraph">
+<p><em>Configuring the security add-on module for for the <a href="./simpleapp-archetype.html">simpleapp</a>.</em><br></p>
+</div>
+<div class="paragraph">
+<p>Learn more at the (non-ASF) <a href="http://github.com/isisaddons/isis-module-security">Isis addons' security</a> module</p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><div><div class="videoblock">
+<div class="content">
+<iframe width="420px" height="236px" src="//www.youtube.com/embed/bj8735nBRR4?rel=0" frameborder="0" allowfullscreen></iframe>
+</div>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p>Commands, Auditing, Publishing (v1.5.0)<br></p>
+</div>
+<div class="paragraph">
+<p><em>A run-through of the command (profiling) service, auditing service, publishing service. Also shows how commands can be run in the background either explicitly by scheduling through the background service or implicitly by way of a framework annotation.</em><br></p>
+</div>
+<div class="paragraph">
+<p>Learn more at the (non-ASF) Isis addons' <a href="http://github.com/isisaddons/isis-module-command">command</a>, <a href="http://github.com/isisaddons/isis-module-audit">audit</a> and (non-ASF) <a href="http://github.com/isisaddons/isis-module-publishing">publishing</a> modules.</p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><div><div class="videoblock">
+<div class="content">
+<iframe width="420px" height="210px" src="//www.youtube.com/embed/tqXUZkPB3EI?rel=0" frameborder="0" allowfullscreen></iframe>
+</div>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p>Bulk updates in Isis (v1.5.0)<br></p>
+</div>
+<div class="paragraph">
+<p><em>Using the (non-ASF) <a href="http://github.com/isisaddons/isis-module-excel">Isis addons' excel</a> module and view models to perform bulk updates).</em></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><div><div class="videoblock">
+<div class="content">
+<iframe width="420px" height="315px" src="//www.youtube.com/embed/8SsRDhCUuRc?rel=0" frameborder="0" allowfullscreen></iframe>
+</div>
+</div></div></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_wicket_viewer_and_isis_add_ons">Wicket Viewer and Isis Add-ons</h2>
+<div class="sectionbody">
+<table class="tableblock frame-all grid-all spread">
+<colgroup>
+<col style="width: 50%;">
+<col style="width: 50%;">
+</colgroup>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p>Dynamic layouts in the Wicket viewer<br></p>
+</div>
+<div class="paragraph">
+<p><em>How to layout properties and collections dynamically</em><br></p>
+</div>
+<div class="paragraph">
+<p>Learn more <a href="./user-guide/rg.html#_rg-object-layout">here</a></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><div><div class="videoblock">
+<div class="content">
+<iframe width="420px" height="236px" src="//www.youtube.com/embed/zmrg49WeEPc?rel=0" frameborder="0" allowfullscreen></iframe>
+</div>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p>Customizing the Wicket viewer<br></p>
+</div>
+<div class="paragraph">
+<p><em>How to customize the Wicket viewer, integrating the (non-ASF) <a href="http://github.com/isisaddons/isis-wicket-gmap3">Isis addons' gmap3 </a> wicket extension.</em></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><div><div class="videoblock">
+<div class="content">
+<iframe width="420px" height="315px" src="//www.youtube.com/embed/9o5zAME8LrM?rel=0" frameborder="0" allowfullscreen></iframe>
+</div>
+</div></div></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_restful_objects_viewer">Restful Objects Viewer</h2>
+<div class="sectionbody">
+<table class="tableblock frame-all grid-all spread">
+<colgroup>
+<col style="width: 50%;">
+<col style="width: 50%;">
+</colgroup>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p>Using Chrome Tools<br></p>
+</div>
+<div class="paragraph">
+<p><em>Interacting with the REST API using Chrome Plugins</em></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><div><div class="videoblock">
+<div class="content">
+<iframe width="420px" height="236px" src="//www.youtube.com/embed/_-TOvVYWCHc?rel=0" frameborder="0" allowfullscreen></iframe>
+</div>
+</div></div></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_jrebel_integration">JRebel Integration</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p><em>Develop your app without having to redeploy using <a href="http://zeroturnaround.com/software/jrebel/">JRebel</a> and an <a href="https://github.com/danhaywood/isis-jrebel-plugin">Isis plugin</a> for JRebel.</em></p>
+</div>
+<table class="tableblock frame-all grid-all spread">
+<colgroup>
+<col style="width: 50%;">
+<col style="width: 50%;">
+</colgroup>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p>Maven and JRebel</p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><div><div class="videoblock">
+<div class="content">
+<iframe width="420px" height="236px" src="//www.youtube.com/embed/jpYNZ343gi4?rel=0" frameborder="0" allowfullscreen></iframe>
+</div>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p>Eclipse and JRebel</p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><div><div class="videoblock">
+<div class="content">
+<iframe width="420px" height="236px" src="//www.youtube.com/embed/uPfRXllQV1o?rel=0" frameborder="0" allowfullscreen></iframe>
+</div>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p>IntelliJ and JRebel</p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><div><div class="videoblock">
+<div class="content">
+<iframe width="420px" height="236px" src="//www.youtube.com/embed/fb5VbU-VY8I?rel=0" frameborder="0" allowfullscreen></iframe>
+</div>
+</div></div></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+ </div>
+
+ <footer>
+ <hr>
+ <p class="small">
+ Copyright © 2010~2015 The Apache Software Foundation, licensed under the Apache License, v2.0.
+ <br/>
+ Apache, the Apache feather logo, Apache Isis, and the Apache Isis project logo are all trademarks of The Apache Software Foundation.
+ </p>
+ </footer>
+
+ </div>
+
+ <div id="doc-content-right" class="large-3 medium-3 xcolumns">
+ <div id="toc" class="toc2">
+ <div class="fallback-toc">
+ <ul class="sectlevel1">
+<li><a href="#_getting_started">Getting Started</a></li>
+<li><a href="#_development_environment">Development Environment</a></li>
+<li><a href="#_isis_add_on_modules">Isis Add-on Modules</a></li>
+<li><a href="#_wicket_viewer_and_isis_add_ons">Wicket Viewer and Isis Add-ons</a></li>
+<li><a href="#_restful_objects_viewer">Restful Objects Viewer</a></li>
+<li><a href="#_jrebel_integration">JRebel Integration</a></li>
+</ul>
+ </div>
+ </div>
+ </div>
+
+</div>
+
+
+<script src="./js/foundation/5.5.1/vendor/jquery.js"></script>
+<script src="./js/foundation/5.5.1/foundation.min.js"></script>
+
+
+<link href="./css/jquery.tocify/1.9.0/jquery.tocify.css" rel="stylesheet">
+<script src="./js/jqueryui/1.11.4/jquery-ui.min.js"></script> -->
+<script src="./js/jquery.tocify/1.9.0/jquery.tocify.js"></script>
+
+
+
+<script type="text/javascript">
+ $(function () {
+ $("#toc").tocify({
+ scrollTo: 50,
+ extendPage: true,
+ context: "#doc-content",
+ highlightOnScroll: true,
+ hashGenerator: "pretty",
+ hideEffect: "slideUp",
+ selectors: "h2,h3,h4,h5"
+ });
+ $(".fallback-toc").hide();
+ });
+</script>
+
+<script type="text/javascript">
+
+ /****
+
+ $(document).foundation();
+
+ $(document).ready(function(){
+ // Cache selectors
+ var lastId,
+ topMenu = $("div#toc ul"),
+ topMenuHeight = 100,
+
+ menuItems = topMenu.find("a"),
+ menuItemsHrefs = menuItems.map(function(){
+ var item = $($(this).attr("href"));
+ if (item.length) { return item; }
+ });
+
+ // Bind click handler to menu items to scroll animation
+ menuItems.click(function(e){
+ var href = $(this).attr("href"),
+ offsetTop = href === "#" ? 0 : $(href).offset().top-topMenuHeight+1;
+ $('html, body').stop().animate({
+ scrollTop: offsetTop
+ }, 300);
+
+ e.preventDefault();
+ });
+
+ // Bind to scroll of window
+ $( window ).scroll(function(){
+
+ // Get container scroll position
+ var fromTop = $(this).scrollTop()+topMenuHeight;
+
+ var cur = menuItemsHrefs.map(function(){
+ if ($(this).offset().top < fromTop)
+ return this;
+ });
+
+ // Get the id of the current element
+ cur = cur[cur.length-1];
+
+ var id = cur && cur.length ? cur[0].id : "";
+
+ if (lastId !== id && id) {
+ scrollTo(id);
+ }
+
+ window.history.pushState({}, "", window.location.origin + window.location.pathname + "#" + id);
+ });
+
+ scrollTo = function(id) {
+ lastId = id;
+
+ menuItems
+ .removeClass("active");
+
+ menuItems
+ .parents()
+ .removeClass("active-region");
+
+ menuItems
+ .parents("ul").hide();
+
+ menuItems
+ .filter("[href=#"+id+"]")
+ .addClass("active");
+
+ menuItems
+ .filter("[href=#"+id+"]")
+ .parents("ul").show();
+
+ menuItems
+ .filter("[href=#"+id+"]")
+ .parent().children("ul").show();
+
+ menuItems
+ .filter("[href=#"+id+"]")
+ .parents("li").addClass("active-region");
+
+ }
+ menuItems
+ .removeClass("active");
+
+ menuItems
+ .parents()
+ .removeClass("active-region");
+
+ var syncMenuItem;
+ if(window.location.hash!=="") {
+ var menuItemFor = $.grep(menuItems, function(e) {
+ return e.hash === window.location.hash;
+ });
+ console.log(menuItemFor);
+ if(menuItemFor.length === 1) {
+ syncMenuItem = menuItemFor[0];
+ }
+ }
+
+ if(!syncMenuItem){
+ syncMenuItem = menuItems[0];
+ }
+
+ $(syncMenuItem).click();
+
+ });
+
+ ***/
+
+</script>
+
+<script type="text/javascript">
+
+$(document).ready(function(){
+ if("Documentation" === "Screencasts") {
+ console.log( "processing 'Documentation'" );
+
+ $("#doc-content-left").removeClass("large-9").removeClass("medium-9").addClass("large-12").addClass("medium-12");
+ $("#doc-content-right").removeClass("large-3").removeClass("medium-3").hide();
+ }
+
+});
+
+</script>
+
+
+<script>
+
+$( document ).ready(function() {
+
+ (function() {
+ $(function() {
+ return $("#doc-content h2, #doc-content h3, #doc-content h4, #doc-content h5, #doc-content h6").each(function(i, el) {
+ var $el, icon, id;
+ $el = $(el);
+ id = $el.attr('id');
+ icon = '<i class="fa fa-link"></i>';
+ if (id) {
+ return $el.prepend($("<a />").addClass("header-link").attr("href", "#" + id).html(icon));
+ }
+ });
+ });
+ }).call(this);
+
+
+
+ /*
+ http://osvaldas.info/auto-hide-sticky-header
+ MIT license
+ */
+ ;( function( $, window, document, undefined )
+ {
+ 'use strict';
+
+ var elSelector = '.header',
+ elClassHidden = 'header--hidden',
+ throttleTimeout = 500,
+ $element = $( elSelector );
+
+ if( !$element.length ) return true;
+
+ var $window = $( window ),
+ wHeight = 0,
+ wScrollCurrent = 0,
+ wScrollBefore = 0,
+ wScrollDiff = 0,
+ $document = $( document ),
+ dHeight = 0,
+
+ throttle = function( delay, fn )
+ {
+ var last, deferTimer;
+ return function()
+ {
+ var context = this, args = arguments, now = +new Date;
+ if( last && now < last + delay )
+ {
+ clearTimeout( deferTimer );
+ deferTimer = setTimeout( function(){ last = now; fn.apply( context, args ); }, delay );
+ }
+ else
+ {
+ last = now;
+ fn.apply( context, args );
+ }
+ };
+ };
+
+ $window.on( 'scroll', throttle( throttleTimeout, function()
+ {
+ dHeight = $document.height();
+ wHeight = $window.height();
+ wScrollCurrent = $window.scrollTop();
+ wScrollDiff = wScrollBefore - wScrollCurrent;
+
+ if( wScrollCurrent <= 0 ) // scrolled to the very top; element sticks to the top
+ $element.removeClass( elClassHidden );
+
+ else if( wScrollDiff > 0 && $element.hasClass( elClassHidden ) ) // scrolled up; element slides in
+ $element.removeClass( elClassHidden );
+
+ else if( wScrollDiff < 0 ) // scrolled down
+ {
+ if( wScrollCurrent + wHeight >= dHeight && $element.hasClass( elClassHidden ) ) // scrolled to the very bottom; element slides in
+ $element.removeClass( elClassHidden );
+
+ else // scrolled down; element slides out
+ $element.addClass( elClassHidden );
+ }
+
+ wScrollBefore = wScrollCurrent;
+ }));
+
+ })( jQuery, window, document );
+
+
+});
+</script>
+
+</body>
+</html>
\ No newline at end of file
Added: isis/site/trunk/content/simpleapp-archetype.html
URL: http://svn.apache.org/viewvc/isis/site/trunk/content/simpleapp-archetype.html?rev=1685718&view=auto
==============================================================================
--- isis/site/trunk/content/simpleapp-archetype.html (added)
+++ isis/site/trunk/content/simpleapp-archetype.html Tue Jun 16 06:32:10 2015
@@ -0,0 +1,1036 @@
+<!doctype html>
+<html class="no-js" lang="en">
+<head>
+ <meta charset="utf-8"/>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+
+ <title>SimpleApp Archetype</title>
+
+ <!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+ -->
+
+ <!-- No caching headers -->
+ <meta http-equiv="cache-control" content="no-cache" />
+ <meta http-equiv="pragma" content="no-cache" />
+ <meta http-equiv="expires" content="-1" />
+
+
+ <!-- TODO: need to (re)instate CDN in the future (not using for now just so can develop off-line -->
+ <link href="./css/foundation/5.5.1/foundation.css" rel="stylesheet" />
+ <script src="./js/foundation/5.5.1/vendor/modernizr.js"></script>
+ <link href="./css/asciidoctor/colony.css" rel="stylesheet">
+ <link href="./css/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet">
+
+
+
+
+ <link href="./css/github-fork-ribbon-css/0.1.1/gh-fork-ribbon.css" rel="stylesheet" />
+ <!--[if lt IE 9]>
+ <link href="./css/github-fork-ribbon-css/0.1.1/gh-fork-ribbon.ie.css" rel="stylesheet" />
+ <![endif]-->
+
+
+ <style type="text/css">
+ /* Stylesheet for CodeRay to match GitHub theme | MIT License | http://foundation.zurb.com */
+/*pre.CodeRay {background-color:#f7f7f8;}*/
+.CodeRay .line-numbers{border-right:1px solid #d8d8d8;padding:0 0.5em 0 .25em}
+.CodeRay span.line-numbers{display:inline-block;margin-right:.5em;color:rgba(0,0,0,.3)}
+.CodeRay .line-numbers strong{font-weight: normal}
+table.CodeRay{border-collapse:separate;border-spacing:0;margin-bottom:0;border:0;background:none}
+table.CodeRay td{vertical-align: top}
+table.CodeRay td.line-numbers{text-align:right}
+table.CodeRay td.line-numbers>pre{padding:0;color:rgba(0,0,0,.3)}
+table.CodeRay td.code{padding:0 0 0 .5em}
+table.CodeRay td.code>pre{padding:0}
+.CodeRay .debug{color:#fff !important;background:#000080 !important}
+.CodeRay .annotation{color:#007}
+.CodeRay .attribute-name{color:#000080}
+.CodeRay .attribute-value{color:#700}
+.CodeRay .binary{color:#509}
+.CodeRay .comment{color:#998;font-style:italic}
+.CodeRay .char{color:#04d}
+.CodeRay .char .content{color:#04d}
+.CodeRay .char .delimiter{color:#039}
+.CodeRay .class{color:#458;font-weight:bold}
+.CodeRay .complex{color:#a08}
+.CodeRay .constant,.CodeRay .predefined-constant{color:#008080}
+.CodeRay .color{color:#099}
+.CodeRay .class-variable{color:#369}
+.CodeRay .decorator{color:#b0b}
+.CodeRay .definition{color:#099}
+.CodeRay .delimiter{color:#000}
+.CodeRay .doc{color:#970}
+.CodeRay .doctype{color:#34b}
+.CodeRay .doc-string{color:#d42}
+.CodeRay .escape{color:#666}
+.CodeRay .entity{color:#800}
+.CodeRay .error{color:#808}
+.CodeRay .exception{color:inherit}
+.CodeRay .filename{color:#099}
+.CodeRay .function{color:#900;font-weight:bold}
+.CodeRay .global-variable{color:#008080}
+.CodeRay .hex{color:#058}
+.CodeRay .integer,.CodeRay .float{color:#099}
+.CodeRay .include{color:#555}
+.CodeRay .inline{color:#00}
+.CodeRay .inline .inline{background:#ccc}
+.CodeRay .inline .inline .inline{background:#bbb}
+.CodeRay .inline .inline-delimiter{color:#d14}
+.CodeRay .inline-delimiter{color:#d14}
+.CodeRay .important{color:#555;font-weight:bold}
+.CodeRay .interpreted{color:#b2b}
+.CodeRay .instance-variable{color:#008080}
+.CodeRay .label{color:#970}
+.CodeRay .local-variable{color:#963}
+.CodeRay .octal{color:#40e}
+.CodeRay .predefined{color:#369}
+.CodeRay .preprocessor{color:#579}
+.CodeRay .pseudo-class{color:#555}
+.CodeRay .directive{font-weight:bold}
+.CodeRay .type{font-weight:bold}
+.CodeRay .predefined-type{color:inherit}
+.CodeRay .reserved,.CodeRay .keyword {color:#000;font-weight:bold}
+.CodeRay .key{color:#808}
+.CodeRay .key .delimiter{color:#606}
+.CodeRay .key .char{color:#80f}
+.CodeRay .value{color:#088}
+.CodeRay .regexp .delimiter{color:#808}
+.CodeRay .regexp .content{color:#808}
+.CodeRay .regexp .modifier{color:#808}
+.CodeRay .regexp .char{color:#d14}
+.CodeRay .regexp .function{color:#404;font-weight:bold}
+.CodeRay .string{color:#d20}
+.CodeRay .string .string .string{background:#ffd0d0}
+.CodeRay .string .content{color:#d14}
+.CodeRay .string .char{color:#d14}
+.CodeRay .string .delimiter{color:#d14}
+.CodeRay .shell{color:#d14}
+.CodeRay .shell .delimiter{color:#d14}
+.CodeRay .symbol{color:#990073}
+.CodeRay .symbol .content{color:#a60}
+.CodeRay .symbol .delimiter{color:#630}
+.CodeRay .tag{color:#008080}
+.CodeRay .tag-special{color:#d70}
+.CodeRay .variable{color:#036}
+.CodeRay .insert{background:#afa}
+.CodeRay .delete{background:#faa}
+.CodeRay .change{color:#aaf;background:#007}
+.CodeRay .head{color:#f8f;background:#505}
+.CodeRay .insert .insert{color:#080}
+.CodeRay .delete .delete{color:#800}
+.CodeRay .change .change{color:#66f}
+.CodeRay .head .head{color:#f4f}
+
+ pre.CodeRay code {
+ background-color: inherit;
+ border-style: none;
+ }
+
+ pre.CodeRay code > span:first-child {
+ margin-left: -5px;
+ }
+
+ .literalblock pre,
+ .listingblock pre:not(.highlight),
+ .listingblock pre[class="highlight"],
+ .listingblock pre[class^="highlight "],
+ .listingblock pre.CodeRay,
+ .listingblock pre.prettyprint {
+ background: rgb(253, 250, 246);
+ }
+ .sidebarblock .literalblock pre,
+ .sidebarblock .listingblock pre:not(.highlight),
+ .sidebarblock .listingblock pre[class="highlight"],
+ .sidebarblock .listingblock pre[class^="highlight "],
+ .sidebarblock .listingblock pre.CodeRay,
+ .sidebarblock .listingblock pre.prettyprint {
+ background: rgb(253, 250, 246);
+ }
+
+ <style>
+
+ <style>
+ .github-fork-ribbon-wrapper.right {
+ position: fixed;
+ }
+ .github-fork-ribbon {
+ background: #090;
+ }
+ .github-fork-ribbon a:hover {
+ background:#0D0;
+ color:#fff;
+ font-size: 1.1em;
+ }
+ </style>
+
+ <style>
+ @media only screen and (min-width: 40.063em) {
+ .top-bar {
+ .contain-to-grid .top-bar {
+ max-width: 80rem;
+ }
+ }
+ }
+ .row {
+ max-width: 80rem;
+ }
+ </style>
+
+ <style>
+ .extended-quote,
+ .extended-quote-first {
+ margin-left: 40px;
+ margin-right: 40px;
+ font-style: italic;
+ }
+ .extended-quote-attribution {
+ text-align: right;
+ margin-right: 100px;
+ color: #10B061;
+ }
+
+ .extended-quote-first:before {
+ content: "\201c";
+ float: left;
+ font-size: 2.75em;
+ font-weight: bold;
+ line-height: 0.6em;
+ margin-left: -0.6em;
+ color: #003b6b;
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
+ }
+ </style>
+
+ <style>
+ body {
+ position: relative;
+ }
+
+ *:not(pre) a > code {
+ color: #210DDC;
+ }
+
+ *:not(pre) > code {
+ background-color: inherit;
+ border: none;
+ font-weight: normal;
+ }
+
+ body div#toc li,
+ body div#toc2 li {
+ list-style-type: none;
+ }
+
+ div#doc-content {
+ margin-top: 30px;
+ }
+
+ body div#toc li.active-region:before,
+ body div#toc2 li.active-region:before {
+ content: "\00BB \0020";
+ margin-left: -12px;
+ }
+
+ body div#toc li a.active,
+ body div#toc2 li a.active {
+ color: red;
+ }
+
+ body div#toc.toc,
+ body div#toc.toc2 {
+ position: fixed;
+ left: auto;
+ padding-top: 60px;
+ z-index: auto;
+ background-color: white;
+ border-left-color: #eee;
+ border-left-style: solid;
+ border-right: none;
+ min-height: 2000px;
+ }
+
+ </style>
+
+ <style>
+
+ @media only screen and (min-width: 768px) {
+ #toc.toc2 ul ul { margin-left: -10px; }
+ }
+
+
+ body div#toc .tocify-subheader ul {
+ margin-bottom: 0px;
+ }
+
+ body div#toc .tocify-subheader li {
+ font-size: 14px;
+ }
+ .tocify li.tocify-item, .tocify ul.tocify-item {
+ line-height: 24px;
+ }
+
+ body div#toc li.tocify-item.active:before,
+ body div#toc2 li.tocify-item.active:before {
+ content: "\00BB \0020";
+ margin-left: -12px;
+ }
+
+ body div#toc li.tocify-item.active a,
+ body div#toc2 li.tocify-item.active a {
+ color: red;
+ }
+ </style>
+
+ <style>
+ footer {
+ margin-top: 1000px;
+ }
+ </style>
+
+ <style>
+ /* overriding colony.css stylesheet */
+ .literalblock pre, .literalblock pre[class], .listingblock pre, .listingblock pre[class] {
+ /*padding: 1.25em 1.5625em 1.125em 1.5625em;*/
+ padding: 0.3em 0.6em 0.25em 0.6em;
+ }
+ @media only screen and (min-width: 1280px)
+ #toc.toc2 {
+ /*width: 20em;*/
+ width: 25em;
+ }
+
+ #doc-content a {
+ color: #210DDC;
+ }
+
+ .top-bar h1 {
+ border-bottom: inherit;
+ }
+
+ h2 {
+ margin-top: 80px;
+ }
+ h3 {
+ margin-top: 40px;
+ }
+ h4,h5 {
+ margin-top: 30px;
+ }
+
+ .admonitionblock.tip > table td.content {
+ color: #10B061;
+ }
+ .admonitionblock.note > table td.content {
+ color: #B509AB;
+ }
+ .admonitionblock.important > table td.content {
+ color: #D5810A;
+ }
+
+ .admonitionblock .title {
+ font-size: larger;
+ font-style: italic;
+ }
+
+ .imageblock img {
+ margin-bottom: 10px;
+ }
+ </style>
+
+ <style>
+ /* from http://ben.balter.com/2014/03/13/pages-anchor-links/ */
+ .header-link {
+ position: absolute;
+ left: -0.5em;
+ opacity: 0;
+
+ /*
+ -webkit-transition: opacity 0.2s ease-in-out 0.1s;
+ -moz-transition: opacity 0.2s ease-in-out 0.1s;
+ -ms-transition: opacity 0.2s ease-in-out 0.1s;
+ */
+ }
+
+ h2:hover .header-link,
+ h3:hover .header-link,
+ h4:hover .header-link,
+ h5:hover .header-link,
+ h6:hover .header-link {
+ opacity: 1;
+ }
+ </style>
+
+ <style>
+ .top-bar
+ {
+ -webkit-transition-duration: .5s;
+ transition-duration: .5s;
+
+ -webkit-transition-timing-function: cubic-bezier( 0.215, 0.610, 0.355, 1.000 );
+ transition-timing-function: cubic-bezier( 0.215, 0.610, 0.355, 1.000 );
+
+ -webkit-transition-property: -webkit-transform;
+ transition-property: transform;
+ }
+
+ /*
+ http://osvaldas.info/auto-hide-sticky-header
+ MIT license
+ */
+ .header--hidden
+ {
+ -webkit-transform: translateY( -100% );
+ -ms-transform: translateY( -100% );
+ transform: translateY( -100% );
+
+ transition-duration: .5s;
+ transition-timing-function: cubic-bezier( 0.215, 0.610, 0.355, 1.000 );
+ -webkit-transition-property: -webkit-transform;
+ transition-property: transform;
+ }
+ </style>
+
+ <style>
+ #doc-content a.guide {
+ color: white;
+ }
+ </style>
+
+ <style>
+ .tocify {
+ margin-top: 80px;
+ }
+ </style>
+
+
+</script>
+
+</head>
+<body>
+
+<<div class="github-fork-ribbon-wrapper right" style="position: fixed;">
+ <div class="github-fork-ribbon">
+ <a href="https://github.com/apache/isis/fork">Fork me on GitHub</a>
+ </div>
+</div>
+
+
+<div class="row">
+
+ <div class="fixed contain-to-grid header">
+ <nav class="top-bar" data-topbar role="navigation" style="max-width: 80rem">
+ <ul class="title-area">
+ <li class="name">
+ <h1>
+ <a href="/index.html">Apache Isis™</a>
+ </h1>
+ </li>
+ <!-- Remove the class "menu-icon" to get rid of menu icon. Take out "Menu" to just have icon alone -->
+ <li class="toggle-topbar menu-icon"><a href="#"><span>Menu</span></a></li>
+ </ul>
+
+ <section class="top-bar-section">
+ <ul class="right">
+
+ <li class="has-form">
+ <FORM class="searchbox navbar-form navbar-right" id="searchbox_012614087480249044419:dn-q5gtwxya" action="http://www.google.com/cse">
+ <div class="row collapse">
+ <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>
+ </li>
+
+ </ul>
+
+ <!-- Left Nav Section -->
+ <ul class="left">
+
+ <li><a href="/documentation.html">Documentation</a></li>
+ <li><a href="/downloads.html">Downloads</a></li>
+ <li><a href="/help.html">Help</a></li>
+ <li><a href="/asf.html">@ASF</a></li>
+
+ </ul>
+
+ </section>
+ </nav>
+ </div>
+</div>
+
+<div class="row">
+
+ <div id="doc-content-left" class="large-9 medium-9 columns">
+
+
+ <div id="doc-content">
+ <div id="preamble">
+<div class="sectionbody">
+<div class="paragraph">
+<p><br/><br/></p>
+</div>
+<div class="paragraph">
+<p>The quickest way to get started with Apache Isis is to run the simple archetype. This will generate a very simple one-class domain model, called <code>SimpleObject</code>, with a single property <code>name</code>. There is also a corresponding <code>SimpleObjectRepository</code> domain service. From this you can easily rename these initial classes, and extend to build up your own Isis domain application.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_generating_the_app">Generating the App</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Create a new directory, and <code>cd</code> into that directory.</p>
+</div>
+<div class="paragraph">
+<p>Then run the following command:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="bash">mvn archetype:generate \
+ -D archetypeGroupId=org.apache.isis.archetype \
+ -D archetypeArtifactId=simpleapp-archetype \
+ -D archetypeVersion=1.8.0 \
+ -D groupId=com.mycompany \
+ -D artifactId=myapp \
+ -D version=1.0-SNAPSHOT \
+ -B</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>where:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><code>groupId</code> represents your own organization, and</p>
+</li>
+<li>
+<p><code>artifactId</code> is a unique identifier for this app within your organization.</p>
+</li>
+<li>
+<p><code>version</code> is the initial (snapshot) version of your app</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>The archetype generation process will then run; it only takes a few seconds.</p>
+</div>
+<div class="sect2">
+<h3 id="_snapshot_release">Snapshot release</h3>
+<div class="paragraph">
+<p>We also maintain the archetype for the most current <code>-SNAPSHOT</code>; an app generated with this archetype will contain the latest features of Isis, but the usual caveats apply: some features still in development may be unstable.</p>
+</div>
+<div class="paragraph">
+<p>The process is almost identical to that for stable releases, however the <code>archetype:generate</code> goal is called with slightly different arguments:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="bash">mvn archetype:generate \
+ -D archetypeGroupId=org.apache.isis.archetype \
+ -D archetypeArtifactId=simpleapp-archetype \
+ -D archetypeVersion=1.9.0-SNAPSHOT \
+ -D groupId=com.mycompany \
+ -D artifactId=myapp \
+ -D version=1.0-SNAPSHOT \
+ -D archetypeRepository=http://repository-estatio.forge.cloudbees.com/snapshot/ \
+ -B</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>where as before:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><code>groupId</code> represents your own organization, and</p>
+</li>
+<li>
+<p><code>artifactId</code> is a unique identifier for this app within your organization.</p>
+</li>
+<li>
+<p><code>version</code> is the initial (snapshot) version of your app</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>but also:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><code>archetypeVersion</code> is the SNAPSHOT version of Isis.</p>
+</li>
+<li>
+<p><code>archetypeRepository</code> specifies the location of our snapshot repo (hosted on [CloudBees](<a href="http://www.cloudbees.com)" class="bare">http://www.cloudbees.com)</a>), and</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>The archetype generation process will then run; it only takes a few seconds.</p>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_building_the_app">Building the App</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Switch into the root directory of your newly generated app, and build your app:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="bash">cd myapp
+mvn clean install</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>where <code>myapp</code> is the <code>artifactId</code> entered above.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_running_the_app">Running the App</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>simpleapp</code> archetype generates a single WAR file, configured to run both the <a href="./guides/ug.html#_ug_wicket-viewer">Wicket viewer</a> and the <a href="./guides/ug.html#_ug_restfulobjects-viewer">Restful Objects viewer</a>. The archetype also configures the JDO/DataNucleus objectstore to use an in-memory HSQLDB connection.</p>
+</div>
+<div class="paragraph">
+<p>Once you’ve built the app, you can run the WAR in a variety of ways.</p>
+</div>
+<div class="paragraph">
+<p>The recommended approach when getting started is to run the self-hosting version of the WAR, allowing Isis to run as a standalone app; for example:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="bash">java -jar webapp/target/myapp-webapp-1.0-SNAPSHOT-jetty-console.jar</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>This can also be accomplished using an embedded Ant target provided in the build script:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="bash">mvn -P self-host antrun:run</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>The first is to simply deploying the generated WAR (<code>webapp/target/myapp-webapp-1.0-SNAPSHOT.war</code>) to a servlet container.</p>
+</div>
+<div class="paragraph">
+<p>Alternatively, you could run the WAR in a Maven-hosted Jetty instance, though you need to <code>cd</code> into the <code>webapp</code> module:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="bash">cd webapp
+mvn jetty:run -D jetty.port=9090</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>In the above, we’ve passed in a property to indicate a different port from the default port (8080).</p>
+</div>
+<div class="paragraph">
+<p>Note that if you use <code>mvn jetty:run</code>, then the context path changes; check the console output (eg [<a href="http://localhost:9090/myapp-webapp" class="bare">http://localhost:9090/myapp-webapp</a>](<a href="http://localhost:9090/myapp-webapp)" class="bare">http://localhost:9090/myapp-webapp)</a>).</p>
+</div>
+<div class="paragraph">
+<p>Finally, you can also run the app by deploying to a standalone servlet container such as [Tomcat](<a href="http://tomcat.apache.org" class="bare">http://tomcat.apache.org</a>).</p>
+</div>
+<div class="sect2">
+<h3 id="_with_fixtures">With Fixtures</h3>
+<div class="paragraph">
+<p>It is also possible to start the application with a pre-defined set of data; useful for demos or manual exploratory
+testing. This is done by specifying a <em>fixture script</em> on the command line:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="bash">java -jar webapp/target/myapp-webapp-1.0-SNAPSHOT-jetty-console.jar \
+ --initParam isis.persistor.datanucleus.install-fixtures=true \
+ --initParam isis.fixtures=fixture.simple.SimpleObjectsFixture</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>where (in the above example) <code>fixture.simple.SimpleObjectsFixture</code> is the fully qualified class name of the fixture
+script to be run.</p>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_using_the_app">Using the App</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The archetype provides a welcome page that explains the classes and files generated, and provides detailed guidance and what to do next.</p>
+</div>
+<div class="paragraph">
+<p>The app itself is configured to run using shiro security, as configured in the <code>WEB-INF/shiro.ini</code> config file. To log in, use <code>sven/pass</code>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_modifying_the_app">Modifying the App</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Once you are familiar with the generated app, you’ll want to start modifying it. Check out our the <a href=".guides/ug.html">User Guide</a>, which has how-tos and a complete reference guide (as well as some background concepts and discussion of more advanced techniques).</p>
+</div>
+<div class="paragraph">
+<p>If you use IntelliJ or Eclipse, you’ll also want to set up your IDE; this is also described in the user guide appendices.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_app_structure">App Structure</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>As noted above, the generated app is a very simple application consisting of a single domain object that can be easily renamed and extended. The intention is not to showcase all of Isis' capabilities; rather it is to allow you to very easily modify the generated application (eg rename <code>SimpleObject</code> to <code>Customer</code>) without having to waste time deleting lots of generated code.</p>
+</div>
+<table class="tableblock frame-all grid-all spread">
+<caption class="title">Table 1. Table caption</caption>
+<colgroup>
+<col style="width: 50%;">
+<col style="width: 50%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Module</th>
+<th class="tableblock halign-left valign-top">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">myapp</p></td>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p>The parent (aggregator) module</p>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">myapp-dom</p></td>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p>The domain object model, consisting of <tt>SimpleObject</tt> and <tt>SimpleObjects</tt> (repository) domain service.</p>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">myapp-fixture</p></td>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p>Domain object fixtures used for initializing the system when being demo’ed or for unit testing.</p>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">myapp-integtests</p></td>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p>End-to-end integration tests, that exercise from the UI through to the database</p>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">myapp-webapp</p></td>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p>Run as a webapp (from <code>web.xml</code>) using either the Wicket viewer or the RestfulObjects viewer</p>
+</div></div></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>If you run into issues, please don’t hesitate to ask for help on the <a href="../../support.html">users mailing list</a>.</p>
+</div>
+</div>
+</div>
+ </div>
+
+ <footer>
+ <hr>
+ <p class="small">
+ Copyright © 2010~2015 The Apache Software Foundation, licensed under the Apache License, v2.0.
+ <br/>
+ Apache, the Apache feather logo, Apache Isis, and the Apache Isis project logo are all trademarks of The Apache Software Foundation.
+ </p>
+ </footer>
+
+ </div>
+
+ <div id="doc-content-right" class="large-3 medium-3 xcolumns">
+ <div id="toc" class="toc2">
+ <div class="fallback-toc">
+ <ul class="sectlevel1">
+<li><a href="#_generating_the_app">Generating the App</a>
+<ul class="sectlevel2">
+<li><a href="#_snapshot_release">Snapshot release</a></li>
+</ul>
+</li>
+<li><a href="#_building_the_app">Building the App</a></li>
+<li><a href="#_running_the_app">Running the App</a>
+<ul class="sectlevel2">
+<li><a href="#_with_fixtures">With Fixtures</a></li>
+</ul>
+</li>
+<li><a href="#_using_the_app">Using the App</a></li>
+<li><a href="#_modifying_the_app">Modifying the App</a></li>
+<li><a href="#_app_structure">App Structure</a></li>
+</ul>
+ </div>
+ </div>
+ </div>
+
+</div>
+
+
+<script src="./js/foundation/5.5.1/vendor/jquery.js"></script>
+<script src="./js/foundation/5.5.1/foundation.min.js"></script>
+
+
+<link href="./css/jquery.tocify/1.9.0/jquery.tocify.css" rel="stylesheet">
+<script src="./js/jqueryui/1.11.4/jquery-ui.min.js"></script> -->
+<script src="./js/jquery.tocify/1.9.0/jquery.tocify.js"></script>
+
+
+
+<script type="text/javascript">
+ $(function () {
+ $("#toc").tocify({
+ scrollTo: 50,
+ extendPage: true,
+ context: "#doc-content",
+ highlightOnScroll: true,
+ hashGenerator: "pretty",
+ hideEffect: "slideUp",
+ selectors: "h2,h3,h4,h5"
+ });
+ $(".fallback-toc").hide();
+ });
+</script>
+
+<script type="text/javascript">
+
+ /****
+
+ $(document).foundation();
+
+ $(document).ready(function(){
+ // Cache selectors
+ var lastId,
+ topMenu = $("div#toc ul"),
+ topMenuHeight = 100,
+
+ menuItems = topMenu.find("a"),
+ menuItemsHrefs = menuItems.map(function(){
+ var item = $($(this).attr("href"));
+ if (item.length) { return item; }
+ });
+
+ // Bind click handler to menu items to scroll animation
+ menuItems.click(function(e){
+ var href = $(this).attr("href"),
+ offsetTop = href === "#" ? 0 : $(href).offset().top-topMenuHeight+1;
+ $('html, body').stop().animate({
+ scrollTop: offsetTop
+ }, 300);
+
+ e.preventDefault();
+ });
+
+ // Bind to scroll of window
+ $( window ).scroll(function(){
+
+ // Get container scroll position
+ var fromTop = $(this).scrollTop()+topMenuHeight;
+
+ var cur = menuItemsHrefs.map(function(){
+ if ($(this).offset().top < fromTop)
+ return this;
+ });
+
+ // Get the id of the current element
+ cur = cur[cur.length-1];
+
+ var id = cur && cur.length ? cur[0].id : "";
+
+ if (lastId !== id && id) {
+ scrollTo(id);
+ }
+
+ window.history.pushState({}, "", window.location.origin + window.location.pathname + "#" + id);
+ });
+
+ scrollTo = function(id) {
+ lastId = id;
+
+ menuItems
+ .removeClass("active");
+
+ menuItems
+ .parents()
+ .removeClass("active-region");
+
+ menuItems
+ .parents("ul").hide();
+
+ menuItems
+ .filter("[href=#"+id+"]")
+ .addClass("active");
+
+ menuItems
+ .filter("[href=#"+id+"]")
+ .parents("ul").show();
+
+ menuItems
+ .filter("[href=#"+id+"]")
+ .parent().children("ul").show();
+
+ menuItems
+ .filter("[href=#"+id+"]")
+ .parents("li").addClass("active-region");
+
+ }
+ menuItems
+ .removeClass("active");
+
+ menuItems
+ .parents()
+ .removeClass("active-region");
+
+ var syncMenuItem;
+ if(window.location.hash!=="") {
+ var menuItemFor = $.grep(menuItems, function(e) {
+ return e.hash === window.location.hash;
+ });
+ console.log(menuItemFor);
+ if(menuItemFor.length === 1) {
+ syncMenuItem = menuItemFor[0];
+ }
+ }
+
+ if(!syncMenuItem){
+ syncMenuItem = menuItems[0];
+ }
+
+ $(syncMenuItem).click();
+
+ });
+
+ ***/
+
+</script>
+
+<script type="text/javascript">
+
+$(document).ready(function(){
+ if("Documentation" === "SimpleApp Archetype") {
+ console.log( "processing 'Documentation'" );
+
+ $("#doc-content-left").removeClass("large-9").removeClass("medium-9").addClass("large-12").addClass("medium-12");
+ $("#doc-content-right").removeClass("large-3").removeClass("medium-3").hide();
+ }
+
+});
+
+</script>
+
+
+<script>
+
+$( document ).ready(function() {
+
+ (function() {
+ $(function() {
+ return $("#doc-content h2, #doc-content h3, #doc-content h4, #doc-content h5, #doc-content h6").each(function(i, el) {
+ var $el, icon, id;
+ $el = $(el);
+ id = $el.attr('id');
+ icon = '<i class="fa fa-link"></i>';
+ if (id) {
+ return $el.prepend($("<a />").addClass("header-link").attr("href", "#" + id).html(icon));
+ }
+ });
+ });
+ }).call(this);
+
+
+
+ /*
+ http://osvaldas.info/auto-hide-sticky-header
+ MIT license
+ */
+ ;( function( $, window, document, undefined )
+ {
+ 'use strict';
+
+ var elSelector = '.header',
+ elClassHidden = 'header--hidden',
+ throttleTimeout = 500,
+ $element = $( elSelector );
+
+ if( !$element.length ) return true;
+
+ var $window = $( window ),
+ wHeight = 0,
+ wScrollCurrent = 0,
+ wScrollBefore = 0,
+ wScrollDiff = 0,
+ $document = $( document ),
+ dHeight = 0,
+
+ throttle = function( delay, fn )
+ {
+ var last, deferTimer;
+ return function()
+ {
+ var context = this, args = arguments, now = +new Date;
+ if( last && now < last + delay )
+ {
+ clearTimeout( deferTimer );
+ deferTimer = setTimeout( function(){ last = now; fn.apply( context, args ); }, delay );
+ }
+ else
+ {
+ last = now;
+ fn.apply( context, args );
+ }
+ };
+ };
+
+ $window.on( 'scroll', throttle( throttleTimeout, function()
+ {
+ dHeight = $document.height();
+ wHeight = $window.height();
+ wScrollCurrent = $window.scrollTop();
+ wScrollDiff = wScrollBefore - wScrollCurrent;
+
+ if( wScrollCurrent <= 0 ) // scrolled to the very top; element sticks to the top
+ $element.removeClass( elClassHidden );
+
+ else if( wScrollDiff > 0 && $element.hasClass( elClassHidden ) ) // scrolled up; element slides in
+ $element.removeClass( elClassHidden );
+
+ else if( wScrollDiff < 0 ) // scrolled down
+ {
+ if( wScrollCurrent + wHeight >= dHeight && $element.hasClass( elClassHidden ) ) // scrolled to the very bottom; element slides in
+ $element.removeClass( elClassHidden );
+
+ else // scrolled down; element slides out
+ $element.addClass( elClassHidden );
+ }
+
+ wScrollBefore = wScrollCurrent;
+ }));
+
+ })( jQuery, window, document );
+
+
+});
+</script>
+
+</body>
+</html>
\ No newline at end of file