Vojtech Szocs has uploaded a new change for review.
Change subject: webadmin: WiP debug using GWT Super Dev Mode
......................................................................
webadmin: WiP debug using GWT Super Dev Mode
Work in progress, needs more testing.
This patch adds the ability to debug WebAdmin using GWT
Super Dev Mode (later on, it can be generalized to cover
UserPortal as well).
Super Dev Mode (SDM) [1] is an alternative way to debug
GWT applications. Similar to Classic Dev Mode (CDM) [2],
it spawns a "code" server used to recompile application
after UI code change.
However, there are notable differences:
* unlike CDM, SDM doesn't require browser plugin,
i.e. no need to install "GWT Developer Plugin"
* with SDM, you debug code as JavaScript inside your
browser, i.e. Java IDE is not needed to debug UI code
* SDM leverages emerging standard known as Source Maps
to map JavaScript code to corresponding Java code
* unlike CDM, SDM doesn't have on-the-fly recompilation
so the user can control when to recompile application
To use Super Dev Mode:
1, build Engine
$ make install-dev [usual options] \
DEV_GWT_SUPER_DEV_MODE=1
2, setup & start Engine
3, launch SDM's "code" server:
$ make gwt-debug [usual options] \
DEV_GWT_SUPER_DEV_MODE=1
4, visit http://127.0.0.1:9876/ and save
"Dev Mode On/Off" bookmarklets in browser
5, visit WebAdmin URL *without* "?gwt.codesvr" part,
debug JavaScript code in browser
6, after UI code change, click "Dev Mode On"
and activate "Compile", check SDM's "code" server
7, reload WebAdmin URL *without* "?gwt.codesvr" part,
debug JavaScript code in browser
[1] http://www.gwtproject.org/articles/superdevmode.html
[2] http://www.gwtproject.org/doc/latest/
DevGuideCompilingAndDebugging.html#DevGuideDevMode
Change-Id: I6e03534e8af4f9c61d93bb715b80b433127cc4e9
Signed-off-by: Vojtech Szocs <[email protected]>
---
M Makefile
M frontend/webadmin/modules/webadmin/pom.xml
M
frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/webadmin/WebAdmin.gwt.xml
3 files changed, 34 insertions(+), 2 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/93/26093/1
diff --git a/Makefile b/Makefile
index a97a6f0..e3d0636 100644
--- a/Makefile
+++ b/Makefile
@@ -37,6 +37,7 @@
DEV_BUILD_GWT_DRAFT=0
DEV_EXTRA_BUILD_FLAGS=
DEV_EXTRA_BUILD_FLAGS_GWT_DEFAULTS=-D gwt.userAgent=gecko1_8
+DEV_GWT_SUPER_DEV_MODE=0
PACKAGE_NAME=ovirt-engine
ENGINE_NAME=$(PACKAGE_NAME)
@@ -89,6 +90,12 @@
endif
DEV_BUILD_FLAGS:=$(DEV_BUILD_FLAGS) $(DEV_EXTRA_BUILD_FLAGS_GWT_DEFAULTS)
DEV_BUILD_FLAGS:=$(DEV_BUILD_FLAGS) $(DEV_EXTRA_BUILD_FLAGS)
+
+DEV_GWT_DEBUG_TARGET:=gwt:debug
+ifneq ($(DEV_GWT_SUPER_DEV_MODE),0)
+DEV_BUILD_FLAGS:=$(DEV_BUILD_FLAGS) -Dgwt.devModeEnabled=true
+DEV_GWT_DEBUG_TARGET:=process-classes gwt:run-codeserver
+endif
BUILD_FLAGS:=
ifneq ($(BUILD_GWT),0)
@@ -421,7 +428,7 @@
$(DEV_EXTRA_BUILD_FLAGS) \
-Dgwt.noserver=true \
-Pgwtdev,gwt-admin,gwt-user \
- gwt:debug
+ $(DEV_GWT_DEBUG_TARGET)
all-dev:
[ "$(DEV_REBUILD)" != 0 ] && rm -f "$(BUILD_FILE)" || :
diff --git a/frontend/webadmin/modules/webadmin/pom.xml
b/frontend/webadmin/modules/webadmin/pom.xml
index e2bc1cb..29d2893 100644
--- a/frontend/webadmin/modules/webadmin/pom.xml
+++ b/frontend/webadmin/modules/webadmin/pom.xml
@@ -130,6 +130,9 @@
<scope>test</scope>
</dependency>
</dependencies>
+ <properties>
+ <gwt.devModeEnabled>false</gwt.devModeEnabled>
+ </properties>
<build>
<outputDirectory>${project.build.directory}/${project.build.finalName}/WEB-INF/classes
</outputDirectory>
@@ -239,13 +242,25 @@
</profile>
<profile>
<id>gwtdev</id>
+ <properties>
+ <gwt.devModeEnabled>true</gwt.devModeEnabled>
+ </properties>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>gwt-maven-plugin</artifactId>
- <version>${gwt-maven-plugin.workingRefresh.version}</version>
+ <dependencies>
+ <dependency>
+ <groupId>com.google.gwt</groupId>
+ <artifactId>gwt-codeserver</artifactId>
+ <version>${gwt.version}</version>
+ </dependency>
+ </dependencies>
+ <configuration>
+ <codeServerPort>9876</codeServerPort>
+ </configuration>
</plugin>
</plugins>
</pluginManagement>
diff --git
a/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/webadmin/WebAdmin.gwt.xml
b/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/webadmin/WebAdmin.gwt.xml
index f3b7664..76696e8 100644
---
a/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/webadmin/WebAdmin.gwt.xml
+++
b/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/webadmin/WebAdmin.gwt.xml
@@ -39,4 +39,14 @@
<set-property name="locale" value="${gwt.locale}" />
<set-property-fallback name="locale" value="en_US" />
+ <!-- Use xsiframe linker that combines cross-site friendliness of xs linker
+ with iframe sandboxing of std linker. Note that xsiframe linker is the
+ only linker that currently supports GWT Super Dev Mode. It also seems
+ that xsiframe linker will be the default linker in GWT > 2.6 release.
-->
+ <add-linker name="xsiframe"/>
+
+ <!-- GWT Super Dev Mode settings -->
+ <set-configuration-property name="devModeRedirectEnabled"
value="${gwt.devModeEnabled}"/>
+ <set-property name="compiler.useSourceMaps" value="${gwt.devModeEnabled}"
/>
+
</module>
--
To view, visit http://gerrit.ovirt.org/26093
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I6e03534e8af4f9c61d93bb715b80b433127cc4e9
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Vojtech Szocs <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches