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/11/04 12:13:16 UTC

isis-site git commit: DCEVM usage within IntelliJ

Repository: isis-site
Updated Branches:
  refs/heads/asf-site c96edd2da -> 617ea7b1a


DCEVM usage within IntelliJ


Project: http://git-wip-us.apache.org/repos/asf/isis-site/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis-site/commit/617ea7b1
Tree: http://git-wip-us.apache.org/repos/asf/isis-site/tree/617ea7b1
Diff: http://git-wip-us.apache.org/repos/asf/isis-site/diff/617ea7b1

Branch: refs/heads/asf-site
Commit: 617ea7b1ae291c53fca4af3fcabfd872d757eb1e
Parents: c96edd2
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Wed Nov 4 11:12:40 2015 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Wed Nov 4 11:12:40 2015 +0000

----------------------------------------------------------------------
 content/guides/cg.html                          | 105 +++++++++++++++++--
 ...10-dcevm-list-of-found-jdk-installations.png | Bin 0 -> 44267 bytes
 .../070-advanced/020-dcevm-once-installed.png   | Bin 0 -> 44435 bytes
 .../030-dcevm-intellij-project-structure.png    | Bin 0 -> 62740 bytes
 .../040-dcevm-run-configuration.png             | Bin 0 -> 47864 bytes
 5 files changed, 99 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis-site/blob/617ea7b1/content/guides/cg.html
----------------------------------------------------------------------
diff --git a/content/guides/cg.html b/content/guides/cg.html
index 13b91d7..5a4828f 100644
--- a/content/guides/cg.html
+++ b/content/guides/cg.html
@@ -1271,17 +1271,80 @@ are set up correctly.</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_advanced">2.1.6. Advanced</h4>
+<h4 id="_cg_ide_intellij_advanced">2.1.6. Advanced</h4>
 <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="sect4">
-<h5 id="_setting_up_dynamic_reloading">Setting up Dynamic Reloading</h5>
+<h5 id="_cg_ide_intellij_advanced_dcevm">Setting up Dynamic Reloading</h5>
+<div class="paragraph">
+<p><a href="github.com/dcevm/dcevm">DCEVM</a> enhances the JVM with true hot-swap adding/removing of methods as well as more
+reliable hot swapping of the implementation of existing methods.</p>
+</div>
+<div class="paragraph">
+<p>In the context of Apache Isis, this is very useful for contributed actions and mixins and also view models; you should
+then be able to write these actions and have them be picked up without restarting the application.</p>
+</div>
+<div class="paragraph">
+<p>Changing persisting domain entities is more problematic, for two reasons: the JDO/DataNucleus enhancer needs to run on
+domain entities, and also at runtime JDO/DataNucleus would need to rebuild its own metamodel.  You may find that adding
+actions will work, but adding new properties or collections is much less likely to.</p>
+</div>
+<div class="paragraph">
+<p>To set up DCEVM, download the appropriate JAR from the <a href="https://dcevm.github.io/">github page</a>, and run the
+installer.  For example:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="bash">java -jar DCEVM-light-8u51-installer.jar</code></pre>
+</div>
+</div>
+<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>See the <a href="http://blog.jetbrains.com/idea/2013/07/get-true-hot-swap-in-java-with-dcevm-and-intellij-idea/">IntelliJ blog</a> for setting up DCEVM.</p>
+<p>Be sure to run with appropriate privileges to be able to write to the installation directories of the JDK.  If running
+on Windows, that means running as <code>Administrator</code>.</p>
+</div>
+</td>
+</tr>
+</table>
 </div>
 <div class="paragraph">
-<p>This is supported for Eclipse, too.</p>
+<p>After a few seconds this will display a dialog listing all installations of JDK that have been found:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<a class="image" href="images/appendices/dev-env/intellij-idea/070-advanced/010-dcevm-list-of-found-jdk-installations.png"><img src="images/appendices/dev-env/intellij-idea/070-advanced/010-dcevm-list-of-found-jdk-installations.png" alt="010 dcevm list of found jdk installations" width="600px"></a>
+</div>
+</div>
+<div class="paragraph">
+<p>Select the corresponding installation, and select <code>Replace by DCEVM</code>.</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<a class="image" href="images/appendices/dev-env/intellij-idea/070-advanced/020-dcevm-once-installed.png"><img src="images/appendices/dev-env/intellij-idea/070-advanced/020-dcevm-once-installed.png" alt="020 dcevm once installed" width="600px"></a>
+</div>
+</div>
+<div class="paragraph">
+<p>In IntelliJ, register the JDK in <code>File &gt; Project Structure</code> dialog:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<a class="image" href="images/appendices/dev-env/intellij-idea/070-advanced/030-dcevm-intellij-project-structure.png"><img src="images/appendices/dev-env/intellij-idea/070-advanced/030-dcevm-intellij-project-structure.png" alt="030 dcevm intellij project structure" width="600px"></a>
+</div>
+</div>
+<div class="paragraph">
+<p>Finally, in the run configuration, select the patched JDK:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<a class="image" href="images/appendices/dev-env/intellij-idea/070-advanced/040-dcevm-run-configuration.png"><img src="images/appendices/dev-env/intellij-idea/070-advanced/040-dcevm-run-configuration.png" alt="040 dcevm run configuration" width="600px"></a>
+</div>
 </div>
 </div>
 <div class="sect4">
@@ -1478,6 +1541,31 @@ non-commercial free license (though note this comes with some usage conditions).
 <p>And, remember also to configure Eclipse&#8217;s DataNucleus plugin for these other domain projects.</p>
 </div>
 </div>
+<div class="sect3">
+<h4 id="_advanced">2.2.6. Advanced</h4>
+<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="sect4">
+<h5 id="_setting_up_dynamic_reloading">Setting up Dynamic Reloading</h5>
+<div class="paragraph">
+<p><a href="github.com/dcevm/dcevm">DCEVM</a> enhances the JVM with true hot-swap adding/removing of methods as well as more
+reliable hot swapping of the implementation of existing methods.</p>
+</div>
+<div class="paragraph">
+<p>In the context of Apache Isis, this is very useful for contributed actions and mixins and also view models; you should
+then be able to write these actions and have them be picked up without restarting the application.</p>
+</div>
+<div class="paragraph">
+<p>Changing persisting domain entities is more problematic, for two reasons: the JDO/DataNucleus enhancer needs to run on
+domain entities, and also at runtime JDO/DataNucleus would need to rebuild its own metamodel.  You may find that adding
+actions will work, but adding new properties or collections is much less likely to.</p>
+</div>
+<div class="paragraph">
+<p>For details of setting up DCEVM, see the <a href="#_cg_ide_intellij_advanced_dcevm">corresponding section</a> in the IntelliJ documentation.</p>
+</div>
+</div>
+</div>
 </div>
 <div class="sect2">
 <h3 id="_cg_ide_project-lombok">2.3. Project Lombok</h3>
@@ -7625,9 +7713,9 @@ xxx<br>
 </ul>
 </li>
 <li><a href="#_running_integration_tests">2.1.5. Running Integration Tests</a></li>
-<li><a href="#_advanced">2.1.6. Advanced</a>
+<li><a href="#_cg_ide_intellij_advanced">2.1.6. Advanced</a>
 <ul class="sectlevel4">
-<li><a href="#_setting_up_dynamic_reloading">Setting up Dynamic Reloading</a></li>
+<li><a href="#_cg_ide_intellij_advanced_dcevm">Setting up Dynamic Reloading</a></li>
 <li><a href="#_setting_up_jrebel">Setting up JRebel</a></li>
 </ul>
 </li>
@@ -7646,6 +7734,11 @@ xxx<br>
 </li>
 <li><a href="#_running_the_app_2">2.2.4. Running the App</a></li>
 <li><a href="#_other_domain_projects">2.2.5. Other domain projects.</a></li>
+<li><a href="#_advanced">2.2.6. Advanced</a>
+<ul class="sectlevel4">
+<li><a href="#_setting_up_dynamic_reloading">Setting up Dynamic Reloading</a></li>
+</ul>
+</li>
 </ul>
 </li>
 <li><a href="#_cg_ide_project-lombok">2.3. Project Lombok</a>

http://git-wip-us.apache.org/repos/asf/isis-site/blob/617ea7b1/content/guides/images/appendices/dev-env/intellij-idea/070-advanced/010-dcevm-list-of-found-jdk-installations.png
----------------------------------------------------------------------
diff --git a/content/guides/images/appendices/dev-env/intellij-idea/070-advanced/010-dcevm-list-of-found-jdk-installations.png b/content/guides/images/appendices/dev-env/intellij-idea/070-advanced/010-dcevm-list-of-found-jdk-installations.png
new file mode 100644
index 0000000..601e418
Binary files /dev/null and b/content/guides/images/appendices/dev-env/intellij-idea/070-advanced/010-dcevm-list-of-found-jdk-installations.png differ

http://git-wip-us.apache.org/repos/asf/isis-site/blob/617ea7b1/content/guides/images/appendices/dev-env/intellij-idea/070-advanced/020-dcevm-once-installed.png
----------------------------------------------------------------------
diff --git a/content/guides/images/appendices/dev-env/intellij-idea/070-advanced/020-dcevm-once-installed.png b/content/guides/images/appendices/dev-env/intellij-idea/070-advanced/020-dcevm-once-installed.png
new file mode 100644
index 0000000..afc39ea
Binary files /dev/null and b/content/guides/images/appendices/dev-env/intellij-idea/070-advanced/020-dcevm-once-installed.png differ

http://git-wip-us.apache.org/repos/asf/isis-site/blob/617ea7b1/content/guides/images/appendices/dev-env/intellij-idea/070-advanced/030-dcevm-intellij-project-structure.png
----------------------------------------------------------------------
diff --git a/content/guides/images/appendices/dev-env/intellij-idea/070-advanced/030-dcevm-intellij-project-structure.png b/content/guides/images/appendices/dev-env/intellij-idea/070-advanced/030-dcevm-intellij-project-structure.png
new file mode 100644
index 0000000..951b4a6
Binary files /dev/null and b/content/guides/images/appendices/dev-env/intellij-idea/070-advanced/030-dcevm-intellij-project-structure.png differ

http://git-wip-us.apache.org/repos/asf/isis-site/blob/617ea7b1/content/guides/images/appendices/dev-env/intellij-idea/070-advanced/040-dcevm-run-configuration.png
----------------------------------------------------------------------
diff --git a/content/guides/images/appendices/dev-env/intellij-idea/070-advanced/040-dcevm-run-configuration.png b/content/guides/images/appendices/dev-env/intellij-idea/070-advanced/040-dcevm-run-configuration.png
new file mode 100644
index 0000000..9d042f7
Binary files /dev/null and b/content/guides/images/appendices/dev-env/intellij-idea/070-advanced/040-dcevm-run-configuration.png differ