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/06/16 08:33:11 UTC

svn commit: r954994 [18/43] - in /websites/staging/isis/trunk: cgi-bin/ content/ content/css/ content/css/asciidoctor/ content/css/font-awesome/ content/css/font-awesome/4.3.0/ content/css/font-awesome/4.3.0/css/ content/css/font-awesome/4.3.0/fonts/ c...

Added: websites/staging/isis/trunk/content/guides/dg.html
==============================================================================
--- websites/staging/isis/trunk/content/guides/dg.html (added)
+++ websites/staging/isis/trunk/content/guides/dg.html Tue Jun 16 06:33:07 2015
@@ -0,0 +1,1702 @@
+<!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>Development Environment Guide</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&trade;</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>This guide describes how to build an Isis applications either from the command line (as per your <a href="http://en.wikipedia.org/wiki/Continuous_integration">continuous integration</a> server or within an IDE.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_dg_cmd-line">Developing from the Command Line</h2>
+<div class="sectionbody">
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+TODO
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_dg_intellij">Setting up IntelliJ IDEA</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This appendix describes how to install and setup IntelliJ, then how to import an application into IntelliJ and run it.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+<div class="paragraph">
+<p>This document relates to IntelliJ Community Edition 14.1.1, with screenshots taken for Windows.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+<div class="sect2">
+<h3 id="_installing_and_setting_up">Installing and Setting up</h3>
+<div class="paragraph">
+<p>This section covers installation and setup.</p>
+</div>
+<div class="sect3">
+<h4 id="_download_and_install">Download and Install</h4>
+<div class="paragraph">
+<p><a href="https://www.jetbrains.com/idea/download/">Download</a> latest version of IntelliJ Community Edition, and install:</p>
+</div>
+<div class="paragraph">
+<p>Start the wizard, click through the welcome page:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="images/appendices/dev-env/intellij-idea/010-installing/010-welcome-page.png" alt="010 welcome page" width="400px">
+</div>
+<div class="title">Figure 1. IntelliJ Installation Wizard - Welcome page</div>
+</div>
+<div class="paragraph">
+<p>Choose the location to install the IDE:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="images/appendices/dev-env/intellij-idea/010-installing/020-choose-location.png" alt="020 choose location" width="400px">
+</div>
+<div class="title">Figure 2. IntelliJ Installation Wizard - Choose Location</div>
+</div>
+<div class="paragraph">
+<p>Adjust any installation options as you prefer:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="images/appendices/dev-env/intellij-idea/010-installing/030-installation-options.png" alt="030 installation options" width="400px">
+</div>
+<div class="title">Figure 3. IntelliJ Installation Wizard - Installation Options</div>
+</div>
+<div class="paragraph">
+<p>and the start menu:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="images/appendices/dev-env/intellij-idea/010-installing/040-start-menu-folder.png" alt="040 start menu folder" width="400px">
+</div>
+<div class="title">Figure 4. IntelliJ Installation Wizard - Start Menu Folder</div>
+</div>
+<div class="paragraph">
+<p>and finish up the wizard:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="images/appendices/dev-env/intellij-idea/010-installing/050-completing.png" alt="050 completing" width="400px">
+</div>
+<div class="title">Figure 5. IntelliJ Installation Wizard - Completing the Wizard</div>
+</div>
+<div class="paragraph">
+<p>Later on we&#8217;ll specify the Apache Isis/ASF code style settings, so for now select <code>I do not want to import settings</code>:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="images/appendices/dev-env/intellij-idea/010-installing/060-import-settings-or-not.png" alt="060 import settings or not" width="400px">
+</div>
+<div class="title">Figure 6. IntelliJ Installation Wizard - Import Settings</div>
+</div>
+<div class="paragraph">
+<p>Finally, if you are young and trendy, set the UI theme to Darcula:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="images/appendices/dev-env/intellij-idea/010-installing/070-set-ui-theme.png" alt="070 set ui theme" width="600px">
+</div>
+<div class="title">Figure 7. IntelliJ Installation Wizard Set UI Theme</div>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_new_project">New Project</h4>
+<div class="paragraph">
+<p>In IntelliJ a project can contain multiple modules; these need not be physically located together.  (If you are previously an Eclipse user, you can think of it as similar to an Eclipse workspace).</p>
+</div>
+<div class="paragraph">
+<p>Start off by creating a new project:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="images/appendices/dev-env/intellij-idea/020-create-new-project/010-new-project-create.png" alt="010 new project create" width="400px">
+</div>
+<div class="title">Figure 8. IntelliJ Create New Project</div>
+</div>
+<div class="paragraph">
+<p>We want to create a new <strong>Java</strong> project:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="images/appendices/dev-env/intellij-idea/020-create-new-project/020-java-project-setup-jdk.png" alt="020 java project setup jdk" width="600px">
+</div>
+<div class="title">Figure 9. IntelliJ Create New Project - Create a Java project</div>
+</div>
+<div class="paragraph">
+<p>We therefore need to specify the JDK.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+at the time of writing Isis supports only Java 7; Java 8 is scheduled for support in Isis v1.9.0
+</td>
+</tr>
+</table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="images/appendices/dev-env/intellij-idea/020-create-new-project/030-java-project-select-jdk.png" alt="030 java project select jdk" width="300px">
+</div>
+<div class="title">Figure 10. IntelliJ Create New Java Project - Select the JDK</div>
+</div>
+<div class="paragraph">
+<p>Specify the directory containing the JDK:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="images/appendices/dev-env/intellij-idea/020-create-new-project/050-name-and-location.png" alt="050 name and location" width="400px">
+</div>
+<div class="title">Figure 11. IntelliJ Create New Project - Select the JDK location</div>
+</div>
+<div class="paragraph">
+<p>Finally allow IntelliJ to create the directory for the new project:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="images/appendices/dev-env/intellij-idea/020-create-new-project/060-create-dir.png" alt="060 create dir" width="200px">
+</div>
+<div class="title">Figure 12. IntelliJ Create New Project</div>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_import_settings">Import Settings</h4>
+<div class="paragraph">
+<p>Next we need to configure IntelliJ with ASF/Apache Isis' standard templates and coding conventions.  These are bundled as the <code>settings.jar</code> JAR file <a href="resources/appendices/dev-env/intellij/isis-settings.jar">download from the Isis website</a>).</p>
+</div>
+<div class="paragraph">
+<p>Import using: <code>File &gt; Import Settings</code>, and specify the directory that you have downloaded the file to:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="images/appendices/dev-env/intellij-idea/030-import-settings/010-settings-import-jar.png" alt="010 settings import jar" width="400px">
+</div>
+<div class="title">Figure 13. IntelliJ Import Settings - Specify JAR file</div>
+</div>
+<div class="paragraph">
+<p>Select all the (two) categories of settings available in the JAR file:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="images/appendices/dev-env/intellij-idea/030-import-settings/020-select-all.png" alt="020 select all" width="300px">
+</div>
+<div class="title">Figure 14. IntelliJ Import Settings - Select all categories</div>
+</div>
+<div class="paragraph">
+<p>And then restart:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="images/appendices/dev-env/intellij-idea/030-import-settings/030-restart.png" alt="030 restart" width="200px">
+</div>
+<div class="title">Figure 15. IntelliJ Import Settings - Restart</div>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_other_settings">Other Settings</h4>
+<div class="paragraph">
+<p>There are also some other miscellaneous settings that we recommend that you adjust (though these are not critical).</p>
+</div>
+<div class="paragraph">
+<p>First, specify an up-to-date Maven installation, using <code>File &gt; Settings</code> (or <code>IntelliJ &gt; Preferences</code> if on MacOS):</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="images/appendices/dev-env/intellij-idea/040-other-settings/010-maven-installation.png" alt="010 maven installation" width="600px">
+</div>
+<div class="title">Figure 16. IntelliJ Other Settings - Maven Installation</div>
+</div>
+<div class="paragraph">
+<p>Still on the Maven settings page, configure as follows:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="images/appendices/dev-env/intellij-idea/040-other-settings/020-maven-configuration.png" alt="020 maven configuration" width="600px">
+</div>
+<div class="title">Figure 17. IntelliJ Other Settings - Maven Configuration</div>
+</div>
+<div class="paragraph">
+<p>On the compiler settings page, ensure that <code>build automatically</code> is enabled (and optionally <code>compile independent modules in parallel</code>):</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="images/appendices/dev-env/intellij-idea/040-other-settings/030-build-automatically.png" alt="030 build automatically" width="600px">
+</div>
+<div class="title">Figure 18. IntelliJ Other Settings - Compiler Settings</div>
+</div>
+<div class="paragraph">
+<p>On the auto import page, check the <code>optimize imports on the fly</code> and <code>add unambiguous imports on the fly</code></p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="images/appendices/dev-env/intellij-idea/040-other-settings/040-auto-import.png" alt="040 auto import" width="600px">
+</div>
+<div class="title">Figure 19. IntelliJ Other Settings - Auto Import</div>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_plugins">Plugins</h4>
+<div class="paragraph">
+<p>You might also want to set up some additional plugins, using <code>File &gt; Settings &gt; Plugins</code> (or equivalently <code>File &gt; Other Settings &gt; Configure Plugins</code>).</p>
+</div>
+<div class="paragraph">
+<p>Recommended are:
+* <a href="https://plugins.jetbrains.com/plugin/7179?pr=idea">Maven Helper</a> plugin</p>
+</div>
+<div class="paragraph">
+<p>+
+Provides better visualization of dependency trees (similar to Eclipse)
+* <a href="https://github.com/asciidoctor/asciidoctor-intellij-plugin">AsciiDoctor</a> plugin</p>
+</div>
+<div class="paragraph">
+<p>+
+Useful if you are doing any authoring of documents.</p>
+</div>
+<div class="paragraph">
+<p>Some others you might like to explore are:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="images/appendices/dev-env/intellij-idea/050-some-plugins/020-some-plugins-confirmation.png" alt="020 some plugins confirmation" width="400px">
+</div>
+<div class="title">Figure 20. IntelliJ Plugins</div>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_importing_and_managing_maven_modules">Importing and Managing Maven Modules</h3>
+<div class="paragraph">
+<p>Let&#8217;s load in some actual code!  We do this by importing the Maven modules.</p>
+</div>
+<div class="paragraph">
+<p>First up, open up the Maven tool window (<code>View &gt; Tool Windows &gt; Maven Projects</code>).  You can then use the 'plus' button to add Maven modules.  In the screenshot you can see we&#8217;ve loaded in Isis core; the modules are listed in the <em>Maven Projects</em> window and corresponding (IntelliJ) modules are shown in the <em>Projects</em> window:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="images/appendices/dev-env/intellij-idea/100-maven-module-mgmt/010-maven-modules-view.png" alt="010 maven modules view" width="730px">
+</div>
+<div class="title">Figure 21. IntelliJ Maven Module Management - Importing Maven modules</div>
+</div>
+<div class="paragraph">
+<p>We can then import another module (from some other directory).  For example, here we are importing the Isis Addons' todoapp example:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="images/appendices/dev-env/intellij-idea/100-maven-module-mgmt/020-adding-another-module.png" alt="020 adding another module" width="400px">
+</div>
+<div class="title">Figure 22. IntelliJ Maven Module Management - Importing another Module</div>
+</div>
+<div class="paragraph">
+<p>You should then see the new Maven module loaded in the <em>Projects</em> window and also the <em>Maven Projects</em> window:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="images/appendices/dev-env/intellij-idea/100-maven-module-mgmt/030-other-module-added.png" alt="030 other module added" width="730px">
+</div>
+<div class="title">Figure 23. IntelliJ Maven Module Management -</div>
+</div>
+<div class="paragraph">
+<p>If any dependencies are already loaded in the project, then IntelliJ will automatically update the CLASSPATH to resolve to locally held modules (rather from <code>.m2/repository</code> folder).  So, for example (assuming that the <code>&lt;version&gt;</code> is correct, of course), the Isis todoapp will have local dependencies on the Isis core.</p>
+</div>
+<div class="paragraph">
+<p>You can press F4 (or use <code>File &gt; Project Structure</code>) to see the resolved classpath for any of the modules loaded into the project.</p>
+</div>
+<div class="paragraph">
+<p>If you want to focus on one set of code (eg the Isis todoapp but not Isis core) then you <em>could</em> remove the module; but better is to ignore those modules.  This will remove from the the <em>Projects</em> window but keep them available in the <em>Maven Projects</em> window for when you next want to work on them:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="images/appendices/dev-env/intellij-idea/100-maven-module-mgmt/040-ignoring-modules.png" alt="040 ignoring modules" width="730px">
+</div>
+<div class="title">Figure 24. IntelliJ Maven Module Management - Ignoring Modules</div>
+</div>
+<div class="paragraph">
+<p>Confirm that it&#8217;s ok to ignore these modules:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="images/appendices/dev-env/intellij-idea/100-maven-module-mgmt/050-ignoring-modules-2.png" alt="050 ignoring modules 2" width="300px">
+</div>
+<div class="title">Figure 25. IntelliJ Maven Module Management - Ignoring Modules (ctd)</div>
+</div>
+<div class="paragraph">
+<p>All being well you should see that the <em>Projects</em> window now only contains the code you are working on.  Its classpath dependencies will be adjusted (eg to resolve to Isis core from <code>.m2/repository</code>):</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="images/appendices/dev-env/intellij-idea/100-maven-module-mgmt/060-ignored-modules.png" alt="060 ignored modules" width="730px">
+</div>
+<div class="title">Figure 26. IntelliJ Maven Module Management - Updated Projects Window</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_running">Running</h3>
+<div class="paragraph">
+<p>Let&#8217;s see how to run both the app and the tests.</p>
+</div>
+<div class="sect3">
+<h4 id="_running_the_app">Running the App</h4>
+<div class="paragraph">
+<p>Once you&#8217;ve imported your Isis application, we should run it.  We do this by creating a Run configuration, using <code>Run &gt; Edit Configurations</code>.</p>
+</div>
+<div class="paragraph">
+<p>Set up the details as follows:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="images/appendices/dev-env/intellij-idea/110-running-the-app/010-run-configuration.png" alt="010 run configuration" width="600px">
+</div>
+<div class="title">Figure 27. IntelliJ Running the App - Run Configuration</div>
+</div>
+<div class="paragraph">
+<p>We specify the <code>Main class</code> to be <code>org.apache.isis.WebServer</code>; this is a wrapper around Jetty.  It&#8217;s possible to pass program arguments to this (eg to automatically install fixtures), but for now leave this blank.</p>
+</div>
+<div class="paragraph">
+<p>Also note that <code>Use classpath of module</code> is the webapp module for your app, and that the <code>working directory</code> is <code>$MODULE_DIR$</code>.</p>
+</div>
+<div class="paragraph">
+<p>Next, and most importantly, configure the DataNucleus enhancer to run for your <code>dom</code> goal.  This can be done by defining a Maven goal to run before the app:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="images/appendices/dev-env/intellij-idea/110-running-the-app/020-datanucleus-enhancer-goal.png" alt="020 datanucleus enhancer goal" width="400px">
+</div>
+<div class="title">Figure 28. IntelliJ Running the App - Datanucleus Enhancer Goal</div>
+</div>
+<div class="paragraph">
+<p>The <code>-o</code> flag in the goal means run off-line; this will run faster.</p>
+</div>
+<div class="admonitionblock warning">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-warning" title="Warning"></i>
+</td>
+<td class="content">
+if you forget to set up the enhancer goal, or don&#8217;t run it on the correct (dom) module, then you will get all sorts of errors when you startup.  These usually manifest themselves as class cast exception in DataNucleus.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>You should now be able to run the app using <code>Run &gt; Run Configuration</code>.  The same configuration can also be used to debug the app if you so need.</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_running_the_unit_tests">Running the Unit Tests</h4>
+<div class="paragraph">
+<p>The easiest way to run the unit tests is just to right click on the <code>dom</code> module in the <em>Project Window</em>, and choose run unit tests.  Hopefully your tests will pass (!).</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="images/appendices/dev-env/intellij-idea/110-running-the-app/030-running-unit-tests.png" alt="030 running unit tests" width="600px">
+</div>
+<div class="title">Figure 29. IntelliJ Running the App - Unit Tests Run Configuration</div>
+</div>
+<div class="paragraph">
+<p>As a side-effect, this will create a run configuration, very similar to the one we manually created for the main app:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="images/appendices/dev-env/intellij-idea/110-running-the-app/040-running-unit-tests-run-configuration.png" alt="040 running unit tests run configuration" width="600px">
+</div>
+<div class="title">Figure 30. IntelliJ Running the App - Unit Tests Run Configuration</div>
+</div>
+<div class="paragraph">
+<p>Thereafter, you should run units by selecting this configuration (if you use the right click approach you&#8217;ll end up with lots of run configurations, all similar).</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_running_the_integration_tests">Running the Integration Tests</h4>
+<div class="paragraph">
+<p>Integration tests can be run in the same way as unit tests, however the <code>dom</code> module must also have been enhanced.</p>
+</div>
+<div class="paragraph">
+<p>One approach is to initially run the tests use the right click on the <code>integtests</code> module; the tests will fail because the code won&#8217;t have been enhanced, but we can then go and update the run configuration to run the datanucleus enhancer goal (same as when running the application):</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="images/appendices/dev-env/intellij-idea/110-running-the-app/050-running-integration-tests-run-configuration.png" alt="050 running integration tests run configuration" width="600px">
+</div>
+<div class="title">Figure 31. IntelliJ Running the App - Integration Tests Run Configuration</div>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_hints_and_tips">Hints and Tips</h3>
+<div class="sect3">
+<h4 id="_keyboard_shortcuts_cheat_sheets">Keyboard Shortcuts Cheat Sheets</h4>
+<div class="paragraph">
+<p>You can download 1-page PDFs cheat sheets for IntelliJ&#8217;s keyboard shortcuts:
+* for <a href="https://www.jetbrains.com/idea/docs/IntelliJIDEA_ReferenceCard.pdf">Windows</a>
+* for MacOS:https://www.jetbrains.com/idea/docs/IntelliJIDEA_ReferenceCard_Mac.pdf[MacOS]</p>
+</div>
+<div class="paragraph">
+<p>Probably the most important shortcut on them is for <code>Find Action</code>:
+- <code>ctrl-shift-A</code> on Windows
+- <code>cmd-shift-A</code> on MacOS.</p>
+</div>
+<div class="paragraph">
+<p>This will let you search for any action just by typing its name.</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_switching_between_tool_windows_and_editors">Switching between Tool Windows and Editors</h4>
+<div class="paragraph">
+<p>The Tool Windows are the views around the editor (to left, bottom and right).  It&#8217;s possible to move these around to your preferred locations.</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Use <code>alt-1</code> through <code>alt-9</code> (or <code>cmd-1</code> through <code>alt-9</code>) to select the tool windows</p>
+<div class="ulist">
+<ul>
+<li>
+<p>Press it twice and the tool window will hide itself; so can use to toggle</p>
+</li>
+</ul>
+</div>
+</li>
+<li>
+<p>If in the <em>Project Window</em> (say) and hit enter on a file, then it will be shown in the editor, but (conveniently) the focus remains in the tool window.  To switch to the editor, just press <code>Esc</code>.</p>
+<div class="ulist">
+<ul>
+<li>
+<p>If in the <em>Terminal Window</em>, you&#8217;ll need to press <code>Shift-Esc</code>.</p>
+</li>
+</ul>
+</div>
+</li>
+<li>
+<p>If on the editor and want to locate the file in (say) the <em>Project Window</em>, use <code>alt-F1</code>.</p>
+</li>
+<li>
+<p>To change the size of any tool window, use <code>ctrl-shift-arrow</code></p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>Using these shortcuts you can easily toggle between the tool windows and the editor, without using the mouse.  Peachy!</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_navigating_around">Navigating Around</h4>
+<div class="paragraph">
+<p>For all of the following, you don&#8217;t need to type every letter, typing "ab" will actually search for ".<strong>a.*b.</strong>".</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>to open classes or files or methods that you know the name of:</p>
+<div class="ulist">
+<ul>
+<li>
+<p><code>ctrl-N</code> to open class</p>
+</li>
+<li>
+<p><code>ctrl-shift-N</code> to open a file</p>
+</li>
+<li>
+<p>(bit fiddly this) <code>ctrl-shift-alt-N</code> to search for any symbol.</p>
+</li>
+</ul>
+</div>
+</li>
+<li>
+<p>open up dialog of recent files: <code>ctrl-E</code></p>
+</li>
+<li>
+<p>search for any file: <code>shift-shift</code></p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>Navigating around:
+* find callers of a method (the call hierarchy): <code>ctrl-alt-H</code>
+* find subclasses or overrides: <code>ctrl-alt-B</code>
+* find superclasses/interface/declaration: <code>ctrl-B</code></p>
+</div>
+<div class="paragraph">
+<p>Viewing the structure (ie outline) of a class
+* <code>ctrl-F12</code> will pop-up a dialog showing all members
+** hit <code>ctrl-F12</code> again to also see inherited members</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_editing">Editing</h4>
+<div class="ulist">
+<ul>
+<li>
+<p>Extend selection using <code>ctrl-W</code></p>
+<div class="ulist">
+<ul>
+<li>
+<p>and contract it down again using <code>ctrl-shift-W</code></p>
+</li>
+</ul>
+</div>
+</li>
+<li>
+<p>to duplicate a line, it&#8217;s <code>ctrl-D</code></p>
+<div class="ulist">
+<ul>
+<li>
+<p>if you have some text selected (or even some lines), it&#8217;ll actually duplicate the entire selection</p>
+</li>
+</ul>
+</div>
+</li>
+<li>
+<p>to delete a line, it&#8217;s <code>ctrl-X</code></p>
+</li>
+<li>
+<p>to move a line up or down: <code>shift-alt-up</code> and <code>shift-alt-down</code></p>
+<div class="ulist">
+<ul>
+<li>
+<p>if you have selected several lines, it&#8217;ll move them all togethe</p>
+</li>
+</ul>
+</div>
+</li>
+<li>
+<p><code>ctrl-shift-J</code> can be handy for joining lines together</p>
+<div class="ulist">
+<ul>
+<li>
+<p>just hit enter to split them apart (even in string quotes; IntelliJ will "do the right thing")</p>
+</li>
+</ul>
+</div>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_intentions_and_code_completion">Intentions and Code Completion</h4>
+<div class="paragraph">
+<p>Massively useful is the "Intentions" popup; IntelliJ tries to guess what you might want to do.  You can activate this using`alt-enter`, whenever you see a lightbulb/tooltip in the margin of the current line.</p>
+</div>
+<div class="paragraph">
+<p>Code completion usually happens whenever you type '.'.  You can also use <code>ctrl-space</code> to bring these up.</p>
+</div>
+<div class="paragraph">
+<p>In certain circumstances (eg in methods0) you can also type <code>ctrl-shift-space</code> to get a smart list of methods etc that you might want to call.  Can be useful.</p>
+</div>
+<div class="paragraph">
+<p>Last, when invoking a method, use <code>ctrl-P</code> to see the parameter types.</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_refactoring">Refactoring</h4>
+<div class="paragraph">
+<p>Loads of good stuff on the <code>Refactor</code> menu; most used are:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Rename (<code>shift-F6</code>)</p>
+</li>
+<li>
+<p>Extract</p>
+<div class="ulist">
+<ul>
+<li>
+<p>method: <code>ctrl-alt-M</code></p>
+</li>
+<li>
+<p>variable: <code>ctrl-alt-V</code></p>
+</li>
+</ul>
+</div>
+</li>
+<li>
+<p>Inline method/variable: <code>ctrl-alt-N</code></p>
+</li>
+<li>
+<p>Change signature</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>If you can&#8217;t remember all those shortcuts, just use <code>ctrl-shift-alt-T</code> (might want to rebind that to something else!) and get a context-sensitive list of refactorings available for the currently selected object</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_troubleshooting">Troubleshooting</h4>
+<div class="paragraph">
+<p>When a Maven module is imported, IntelliJ generates its own project files (suffix <code>.ipr</code>), and the application is actually built from that.</p>
+</div>
+<div class="paragraph">
+<p>Occasionally these don&#8217;t keep in sync (even if auto-import of Maven modules has been enabled).</p>
+</div>
+<div class="paragraph">
+<p>To fix the issue, try:
+* reimport module
+* rebuild selected modules/entire project
+* remove and then re-add the project
+* restart, invalidating caches
+* hit StackOverflow (!)</p>
+</div>
+<div class="paragraph">
+<p>One thing worth knowing; IntelliJ actively scans the filesystem all the time.  It&#8217;s therefore (almost always) fine to build the app from the Maven command line; IntelliJ will detect the changes and keep in sync.  If you want to force that, use <code>File &gt; Synchronize</code>, <code>ctrl-alt-Y</code>.</p>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_advanced">Advanced</h3>
+<div class="paragraph">
+<p>In this section are a couple of options that will reduce the length of the change code/build/deploy/review feedback loop.</p>
+</div>
+<div class="sect3">
+<h4 id="_setting_up_dynamic_reloading">Setting up Dynamic Reloading</h4>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+TODO - see <a href="http://blog.jetbrains.com/idea/2013/07/get-true-hot-swap-in-java-with-dcevm-and-intellij-idea/">IntelliJ blog</a>.
+</td>
+</tr>
+</table>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_setting_up_jrebel">Setting up JRebel</h4>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+TODO
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_dg_eclipse">Setting up Eclipse</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>We highly recommend that you develop your Isis application using an IDE. Isis is built with Maven, and all modern IDEs can import Maven projects.</p>
+</div>
+<div class="paragraph">
+<p>If you are an <a href="http://www.eclipse.org">Eclipse</a> user, then we recommend you download the "Eclipse JEE package" configuration.</p>
+</div>
+<div class="paragraph">
+<p>When running an Isis application, it&#8217;s necessary to setup the development environment so that the Java bytecode can be enhanced by the <a href="http://www.datanucleus.org">DataNucleus</a> enhancer.  If working in Eclipse, then JDO enhancement is most easily done by installing the <a href="http://www.datanucleus.org/products/datanucleus/jdo/guides/eclipse.html">DataNucleus' Eclipse plugin</a>.  This hooks the bytecode enhancement of your domain objects into Eclipse&#8217;s normal incremental compilation.</p>
+</div>
+<div class="paragraph">
+<p>This plugin needs to be configured for each of your domain modules (usually just one in any given app).  The steps are therefore:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>import the project into Eclipse</p>
+</li>
+<li>
+<p>configure the DataNucleus enhancer</p>
+</li>
+<li>
+<p>run the app from the <code>.launch</code> file</p>
+</li>
+</ul>
+</div>
+<div class="sect2">
+<h3 id="_screencast">Screencast</h3>
+<div class="paragraph">
+<p>The following screencast shows how to import an Apache Isis maven-based application into Eclipse and configure to use with the JDO Objectstore</p>
+</div>
+<div class="videoblock">
+<div class="content">
+<iframe width="640px" height="480px" src="//www.youtube.com/embed/RgcYfjQ8yJA?rel=0" frameborder="0" allowfullscreen></iframe>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_importing_the_project">Importing the Project</h3>
+<div class="paragraph">
+<p>Use File &gt; Import, then Maven &gt; Existing Maven Projects.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_add_datanucleus_support">Add DataNucleus support</h3>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+<div class="paragraph">
+<p>Make sure you are in the 'Java' Perspective, not the 'Java EE' Perspective.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>In Eclipse, for the <em>domain object model</em> project, first add DataNucleus support:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<a class="image" href="images/appendices/dev-env/eclipse/eclipse-100-project-support.png"><img src="images/appendices/dev-env/eclipse/eclipse-100-project-support.png" alt="eclipse 100 project support" width="600px"></a>
+</div>
+</div>
+<div class="paragraph">
+<p>Then turn on Auto-Enhancement:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<a class="image" href="images/appendices/dev-env/eclipse/eclipse-110-project-support.png"><img src="images/appendices/dev-env/eclipse/eclipse-110-project-support.png" alt="eclipse 110 project support" width="600px"></a>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_update_the_classpath">Update the classpath</h4>
+<div class="paragraph">
+<p>DataNucleus' enhancer uses the domain object model&#8217;s own classpath to reference DataNucleus JARs. So, even though your domain objects are unlikely to depend on DataNucleus, these references must still be present.</p>
+</div>
+<div class="paragraph">
+<p>See the earlier section on <a href="ug.html#_ug_getting-started_datanucleus-enhancer">DataNucleus enhancer</a> for details of the contents of the <code>pom.xml</code>.  Chances are it is already set up from running the <a href="ug.html#_ug_getting-started_simpleapp-archetype">SimpleApp archetype</a>.</p>
+</div>
+<div class="paragraph">
+<p>Then, tell DataNucleus to use the project classpath:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<a class="image" href="images//appendices/dev-env/eclipse/eclipse-010-windows-preferences.png"><img src="images//appendices/dev-env/eclipse/eclipse-010-windows-preferences.png" alt="eclipse 010 windows preferences" width="750px"></a>
+</div>
+</div>
+<div class="paragraph">
+<p>When the enhancer runs, it will print out to the console:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<a class="image" href="images//appendices/dev-env/eclipse/eclipse-120-console.png"><img src="images//appendices/dev-env/eclipse/eclipse-120-console.png" alt="eclipse 120 console" width="500px"></a>
+</div>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_workaround_for_path_limits_the_dn_plugin_to_use_the_persistence_xml">Workaround for path limits (the DN plugin to use the persistence.xml)</h4>
+<div class="paragraph">
+<p>If running on Windows then the DataNucleus plugin is very likely to hit the Windows path limit.</p>
+</div>
+<div class="paragraph">
+<p>To fix this, we configure the enhancer to read from the <code>persistence.xml</code> file.</p>
+</div>
+<div class="paragraph">
+<p>As a prerequisite, first make sure that your domain object model has a <code>persistence.xml</code> file.  Then specify the <code>persistence-unit</code> in the project properties:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<a class="image" href="images//appendices/dev-env/eclipse/eclipse-025-project-properties.png"><img src="images//appendices/dev-env/eclipse/eclipse-025-project-properties.png" alt="eclipse 025 project properties" width="750px"></a>
+</div>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_workaround_if_the_enhancer_fails">Workaround: If the enhancer fails</h4>
+<div class="paragraph">
+<p>On occasion it appears that Eclipse can attempt to run two instances of the DataNucleus enhancer. This is probably due to multiple Eclipse builders being defined; we&#8217;ve noticed multiple entries in the Eclipse&#8217;s <code>Debug</code> view:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<a class="image" href="images//appendices/dev-env/eclipse/eclipse-210-enhancer-fails-duplicates.png"><img src="images//appendices/dev-env/eclipse/eclipse-210-enhancer-fails-duplicates.png" alt="eclipse 210 enhancer fails duplicates" width="600px"></a>
+</div>
+</div>
+<div class="paragraph">
+<p>At any rate, you&#8217;ll know you&#8217;ve encountered this error if you see the following in the console:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<a class="image" href="images//appendices/dev-env/eclipse/eclipse-200-enhancer-fails-duplicates.png"><img src="images//appendices/dev-env/eclipse/eclipse-200-enhancer-fails-duplicates.png" alt="eclipse 200 enhancer fails duplicates" width="600px"></a>
+</div>
+</div>
+<div class="paragraph">
+<p>The best solution is to remove DataNucleus support and then to re-add it:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<a class="image" href="images//appendices/dev-env/eclipse/eclipse-220-enhancer-fails-duplicates.png"><img src="images//appendices/dev-env/eclipse/eclipse-220-enhancer-fails-duplicates.png" alt="eclipse 220 enhancer fails duplicates" width="600px"></a>
+</div>
+</div>
+<div class="paragraph">
+<p>If you consistently hit problems, then the final recourse is to disable the automatic enhancement and to remember to manually enhance your domain object model before each run.</p>
+</div>
+<div class="paragraph">
+<p>Not ideal, we know. Please feel free to contribute a better solution :-)</p>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_running_the_app_2">Running the App</h3>
+<div class="paragraph">
+<p>The simpleapp archetype automatically provides a <code>.launch</code> configurations in the <code>webapp</code> module. You can therefore very simply run the application by right-clicking on one of these files, and choosing "Run As…" or "Debug As…".</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+<div class="paragraph">
+<p>The screencast above shows this in action.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_other_domain_projects">Other domain projects.</h3>
+<div class="paragraph">
+<p>There is nothing to prevent you having multiple domain projects. You might want to do such that each domain project corresponds to a <a href="http://www.methodsandtools.com/archive/archive.php?id=97p2">DDD module</a>, thus guaranteeing that there are no cyclic dependencies between your modules.</p>
+</div>
+<div class="paragraph">
+<p>If you do this, make sure that each project has its own <code>persistence.xml</code> file.</p>
+</div>
+<div class="paragraph">
+<p>And, remember also to configure Eclipse&#8217;s DataNucleus plugin for these other domain projects.</p>
+</div>
+</div>
+</div>
+</div>

+        </div>

+

+        <footer>

+          <hr>

+          <p class="small">

+          Copyright &copy; 2010~2015 The Apache&nbsp;Software&nbsp;Foundation, licensed under the Apache&nbsp;License,&nbsp;v2.0.

+          <br/>

+          Apache, the Apache feather logo, Apache&nbsp;Isis, and the Apache&nbsp;Isis project logo are all trademarks of The&nbsp;Apache&nbsp;Software&nbsp;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="#_dg_cmd-line">Developing from the Command Line</a></li>
+<li><a href="#_dg_intellij">Setting up IntelliJ IDEA</a>
+<ul class="sectlevel2">
+<li><a href="#_installing_and_setting_up">Installing and Setting up</a>
+<ul class="sectlevel3">
+<li><a href="#_download_and_install">Download and Install</a></li>
+<li><a href="#_new_project">New Project</a></li>
+<li><a href="#_import_settings">Import Settings</a></li>
+<li><a href="#_other_settings">Other Settings</a></li>
+<li><a href="#_plugins">Plugins</a></li>
+</ul>
+</li>
+<li><a href="#_importing_and_managing_maven_modules">Importing and Managing Maven Modules</a></li>
+<li><a href="#_running">Running</a>
+<ul class="sectlevel3">
+<li><a href="#_running_the_app">Running the App</a></li>
+<li><a href="#_running_the_unit_tests">Running the Unit Tests</a></li>
+<li><a href="#_running_the_integration_tests">Running the Integration Tests</a></li>
+</ul>
+</li>
+<li><a href="#_hints_and_tips">Hints and Tips</a>
+<ul class="sectlevel3">
+<li><a href="#_keyboard_shortcuts_cheat_sheets">Keyboard Shortcuts Cheat Sheets</a></li>
+<li><a href="#_switching_between_tool_windows_and_editors">Switching between Tool Windows and Editors</a></li>
+<li><a href="#_navigating_around">Navigating Around</a></li>
+<li><a href="#_editing">Editing</a></li>
+<li><a href="#_intentions_and_code_completion">Intentions and Code Completion</a></li>
+<li><a href="#_refactoring">Refactoring</a></li>
+<li><a href="#_troubleshooting">Troubleshooting</a></li>
+</ul>
+</li>
+<li><a href="#_advanced">Advanced</a>
+<ul class="sectlevel3">
+<li><a href="#_setting_up_dynamic_reloading">Setting up Dynamic Reloading</a></li>
+<li><a href="#_setting_up_jrebel">Setting up JRebel</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><a href="#_dg_eclipse">Setting up Eclipse</a>
+<ul class="sectlevel2">
+<li><a href="#_screencast">Screencast</a></li>
+<li><a href="#_importing_the_project">Importing the Project</a></li>
+<li><a href="#_add_datanucleus_support">Add DataNucleus support</a>
+<ul class="sectlevel3">
+<li><a href="#_update_the_classpath">Update the classpath</a></li>
+<li><a href="#_workaround_for_path_limits_the_dn_plugin_to_use_the_persistence_xml">Workaround for path limits (the DN plugin to use the persistence.xml)</a></li>
+<li><a href="#_workaround_if_the_enhancer_fails">Workaround: If the enhancer fails</a></li>
+</ul>
+</li>
+<li><a href="#_running_the_app_2">Running the App</a></li>
+<li><a href="#_other_domain_projects">Other domain projects.</a></li>
+</ul>
+</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" === "Development Environment Guide") {

+        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: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/eclipse/eclipse-010-windows-preferences.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/eclipse/eclipse-010-windows-preferences.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/eclipse/eclipse-025-project-properties.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/eclipse/eclipse-025-project-properties.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/eclipse/eclipse-100-project-support.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/eclipse/eclipse-100-project-support.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/eclipse/eclipse-110-project-support.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/eclipse/eclipse-110-project-support.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/eclipse/eclipse-120-console.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/eclipse/eclipse-120-console.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/eclipse/eclipse-200-enhancer-fails-duplicates.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/eclipse/eclipse-200-enhancer-fails-duplicates.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/eclipse/eclipse-210-enhancer-fails-duplicates.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/eclipse/eclipse-210-enhancer-fails-duplicates.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/eclipse/eclipse-220-enhancer-fails-duplicates.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/eclipse/eclipse-220-enhancer-fails-duplicates.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/010-installing/010-welcome-page.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/010-installing/010-welcome-page.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/010-installing/020-choose-location.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/010-installing/020-choose-location.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/010-installing/030-installation-options.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/010-installing/030-installation-options.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/010-installing/040-start-menu-folder.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/010-installing/040-start-menu-folder.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/010-installing/050-completing.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/010-installing/050-completing.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/010-installing/060-import-settings-or-not.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/010-installing/060-import-settings-or-not.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/010-installing/070-set-ui-theme.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/010-installing/070-set-ui-theme.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/020-create-new-project/010-new-project-create.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/020-create-new-project/010-new-project-create.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/020-create-new-project/020-java-project-setup-jdk.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/020-create-new-project/020-java-project-setup-jdk.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/020-create-new-project/030-java-project-select-jdk.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/020-create-new-project/030-java-project-select-jdk.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/020-create-new-project/040-sdk-selected.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/020-create-new-project/040-sdk-selected.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/020-create-new-project/050-name-and-location.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/020-create-new-project/050-name-and-location.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/020-create-new-project/060-create-dir.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/020-create-new-project/060-create-dir.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/030-import-settings/010-settings-import-jar.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/030-import-settings/010-settings-import-jar.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/030-import-settings/020-select-all.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/030-import-settings/020-select-all.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/030-import-settings/030-restart.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/030-import-settings/030-restart.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/040-other-settings/010-maven-installation.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/040-other-settings/010-maven-installation.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/040-other-settings/020-maven-configuration.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/040-other-settings/020-maven-configuration.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/040-other-settings/030-build-automatically.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/040-other-settings/030-build-automatically.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/040-other-settings/040-auto-import.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/040-other-settings/040-auto-import.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/050-some-plugins/010-some-plugins.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/050-some-plugins/010-some-plugins.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/050-some-plugins/020-some-plugins-confirmation.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/050-some-plugins/020-some-plugins-confirmation.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/100-maven-module-mgmt/010-maven-modules-view.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/100-maven-module-mgmt/010-maven-modules-view.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/100-maven-module-mgmt/020-adding-another-module.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/100-maven-module-mgmt/020-adding-another-module.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/100-maven-module-mgmt/030-other-module-added.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/100-maven-module-mgmt/030-other-module-added.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/100-maven-module-mgmt/040-ignoring-modules.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/100-maven-module-mgmt/040-ignoring-modules.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/100-maven-module-mgmt/050-ignoring-modules-2.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/100-maven-module-mgmt/050-ignoring-modules-2.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/100-maven-module-mgmt/060-ignored-modules.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/100-maven-module-mgmt/060-ignored-modules.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/110-running-the-app/010-run-configuration.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/110-running-the-app/010-run-configuration.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/110-running-the-app/020-datanucleus-enhancer-goal.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/110-running-the-app/020-datanucleus-enhancer-goal.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/110-running-the-app/030-running-unit-tests.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/110-running-the-app/030-running-unit-tests.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/110-running-the-app/040-running-unit-tests-run-configuration.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/110-running-the-app/040-running-unit-tests-run-configuration.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/110-running-the-app/050-running-integration-tests-run-configuration.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/110-running-the-app/050-running-integration-tests-run-configuration.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/200-project-sdk/010-file-project-structure.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/200-project-sdk/010-file-project-structure.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/200-project-sdk/020-select-jdk.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/200-project-sdk/020-select-jdk.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/200-project-sdk/030-select-jdk-directory.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/200-project-sdk/030-select-jdk-directory.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/200-project-sdk/040-set-project-level.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/200-project-sdk/040-set-project-level.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/200-project-sdk/050-isis-language-level-7.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/200-project-sdk/050-isis-language-level-7.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/200-project-sdk/060-app-language-level-8.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/200-project-sdk/060-app-language-level-8.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/250-new-project/010-new-project.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/250-new-project/010-new-project.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/250-new-project/020-new-project-name.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/250-new-project/020-new-project-name.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/250-new-project/030-new-project-new-window.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/250-new-project/030-new-project-new-window.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/guides/images/appendices/dev-env/intellij-idea/250-new-project/040-new-module-from-existing-sources.png
==============================================================================
Binary file - no diff available.