You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by mg...@apache.org on 2015/11/12 21:01:44 UTC

[02/50] [abbrv] isis git commit: ISIS-1195: docs on configuring DCEVM.

ISIS-1195: docs on configuring DCEVM.


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

Branch: refs/heads/ISIS-1224-select2-v4
Commit: 5d9f9af17c3398808355865b703e0a8876c5c3a7
Parents: 271ae4b
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Wed Nov 4 11:12:01 2015 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Wed Nov 4 11:12:01 2015 +0000

----------------------------------------------------------------------
 .../main/asciidoc/guides/_cg_ide_eclipse.adoc   |  21 +++++++++
 .../main/asciidoc/guides/_cg_ide_intellij.adoc  |  47 ++++++++++++++++++-
 ...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
 6 files changed, 66 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/5d9f9af1/adocs/documentation/src/main/asciidoc/guides/_cg_ide_eclipse.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_cg_ide_eclipse.adoc b/adocs/documentation/src/main/asciidoc/guides/_cg_ide_eclipse.adoc
index 3efa28d..c6527fc 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_cg_ide_eclipse.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_cg_ide_eclipse.adoc
@@ -132,3 +132,24 @@ If you do this, make sure that each project has its own `persistence.xml` file.
 
 And, remember also to configure Eclipse's DataNucleus plugin for these other domain projects.
 
+
+
+== Advanced
+
+In this section are a couple of options that will reduce the length of the change code/build/deploy/review feedback loop.
+
+
+=== Setting up Dynamic Reloading
+
+link:github.com/dcevm/dcevm[DCEVM] enhances the JVM with true hot-swap adding/removing of methods as well as more
+reliable hot swapping of the implementation of existing methods.
+
+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.
+
+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.
+
+For details of setting up DCEVM, see the xref:cg.adoc#_cg_ide_intellij_advanced_dcevm[corresponding section] in the IntelliJ documentation.
+

http://git-wip-us.apache.org/repos/asf/isis/blob/5d9f9af1/adocs/documentation/src/main/asciidoc/guides/_cg_ide_intellij.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_cg_ide_intellij.adoc b/adocs/documentation/src/main/asciidoc/guides/_cg_ide_intellij.adoc
index 20e3cd2..85887e2 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_cg_ide_intellij.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_cg_ide_intellij.adoc
@@ -426,16 +426,59 @@ image::{_imagesdir}appendices/dev-env/intellij-idea/400-running-integtests/run-d
 If this radio button is set to one of the other options then you may obtain class loading issues; these result from IntelliJ attempting to run unit tests of the `dom` project that depend on test classes in that module, but using the classpath of the `integtests` module whereby the `dom` test-classes (`test-jar` artifact) are not exposed on the Maven classpath.
 
 
+[[_cg_ide_intellij_advanced]]
 == Advanced
 
 In this section are a couple of options that will reduce the length of the change code/build/deploy/review feedback loop.
 
 
+[[_cg_ide_intellij_advanced_dcevm]]
 === Setting up Dynamic Reloading
 
-See the link:http://blog.jetbrains.com/idea/2013/07/get-true-hot-swap-in-java-with-dcevm-and-intellij-idea/[IntelliJ blog] for setting up DCEVM.
+link:github.com/dcevm/dcevm[DCEVM] enhances the JVM with true hot-swap adding/removing of methods as well as more
+reliable hot swapping of the implementation of existing methods.
+
+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.
+
+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.
+
+To set up DCEVM, download the appropriate JAR from the link:https://dcevm.github.io/[github page], and run the
+installer.  For example:
+
+[source,bash]
+----
+java -jar DCEVM-light-8u51-installer.jar
+----
+
+[TIP]
+====
+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 `Administrator`.
+====
+
+
+After a few seconds this will display a dialog listing all installations of JDK that have been found:
+
+image::{_imagesdir}appendices/dev-env/intellij-idea/070-advanced/010-dcevm-list-of-found-jdk-installations.png[width="600px",link="{_imagesdir}appendices/dev-env/intellij-idea/070-advanced/010-dcevm-list-of-found-jdk-installations.png"]
+
+
+Select the corresponding installation, and select `Replace by DCEVM`.
+
+image::{_imagesdir}appendices/dev-env/intellij-idea/070-advanced/020-dcevm-once-installed.png[width="600px",link="{_imagesdir}appendices/dev-env/intellij-idea/070-advanced/020-dcevm-once-installed.png"]
+
+
+In IntelliJ, register the JDK in `File > Project Structure` dialog:
+
+image::{_imagesdir}appendices/dev-env/intellij-idea/070-advanced/030-dcevm-intellij-project-structure.png[width="600px",link="{_imagesdir}appendices/dev-env/intellij-idea/070-advanced/030-dcevm-intellij-project-structure.png"]
+
+Finally, in the run configuration, select the patched JDK:
+
+image::{_imagesdir}appendices/dev-env/intellij-idea/070-advanced/040-dcevm-run-configuration.png[width="600px",link="{_imagesdir}appendices/dev-env/intellij-idea/070-advanced/040-dcevm-run-configuration.png"]
+
 
-This is supported for Eclipse, too.
 
 
 === Setting up JRebel

http://git-wip-us.apache.org/repos/asf/isis/blob/5d9f9af1/adocs/documentation/src/main/asciidoc/guides/images/appendices/dev-env/intellij-idea/070-advanced/010-dcevm-list-of-found-jdk-installations.png
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/images/appendices/dev-env/intellij-idea/070-advanced/010-dcevm-list-of-found-jdk-installations.png b/adocs/documentation/src/main/asciidoc/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/adocs/documentation/src/main/asciidoc/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/blob/5d9f9af1/adocs/documentation/src/main/asciidoc/guides/images/appendices/dev-env/intellij-idea/070-advanced/020-dcevm-once-installed.png
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/images/appendices/dev-env/intellij-idea/070-advanced/020-dcevm-once-installed.png b/adocs/documentation/src/main/asciidoc/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/adocs/documentation/src/main/asciidoc/guides/images/appendices/dev-env/intellij-idea/070-advanced/020-dcevm-once-installed.png differ

http://git-wip-us.apache.org/repos/asf/isis/blob/5d9f9af1/adocs/documentation/src/main/asciidoc/guides/images/appendices/dev-env/intellij-idea/070-advanced/030-dcevm-intellij-project-structure.png
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/images/appendices/dev-env/intellij-idea/070-advanced/030-dcevm-intellij-project-structure.png b/adocs/documentation/src/main/asciidoc/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/adocs/documentation/src/main/asciidoc/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/blob/5d9f9af1/adocs/documentation/src/main/asciidoc/guides/images/appendices/dev-env/intellij-idea/070-advanced/040-dcevm-run-configuration.png
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/images/appendices/dev-env/intellij-idea/070-advanced/040-dcevm-run-configuration.png b/adocs/documentation/src/main/asciidoc/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/adocs/documentation/src/main/asciidoc/guides/images/appendices/dev-env/intellij-idea/070-advanced/040-dcevm-run-configuration.png differ