I’ve been trying to get superdevmode running for a vaadin 8 project.
So far I’ve gotten no where dispite trying multiple alternatives.
Key problem is that the documenation seems to make a whole lot of assumptions.
Now some of my problem may be that I’m running eclipses oxygen which may causing issues with the vaadin plugin.
Either way I think the documentation should provide a complete explaination even if you arn’t using the plugin as that way if you need to adjust any settings you would have a full understanding of how the system works.
So I thought I might put a series of questions here so we can get some clarity around the documentation and then perhaps get the doco updated. It looks like we can do pull requests on the doco so I’m happy to contribute.
So questions that I raised as reading the documentation.
- docu needs an overview of the lauch configuration requirements and what they do.
I think that you need:
a) a code server configuation. This is a web servlet container (tomcat | jetty etc) that serves the java source code for the widget set and performs incremental compilation.
b) your standard web servlet container (tomcat | jetty etc) that you currently use to launch your vaadin application.
c) to do superdevmode debugging you need both of the above servers running side by side.
This implies that you need to either bind them to different ip address (e.g. 127.0.0.1 and 127.0.0.2) or different port no.s on the same ip address.
The doco states that you run the class com.google.gwt.dev.DevMode.
What package is this class in? When I attempted to run launch this I got a class not found error.
The doco states that there should be a button ‘Create development mode launch’ in the vaadin section of the project properties.
My eclipse install does not have this. I am running oxygen which may be the issue. I’m running vaadin plugin 4.0.0 final.
Can anyone confirm that this button is available in Eclipse neon or is this an actual problem?
The doco the states you can edit the launch configuration by selecting Run | Run Configurations.
What it doesn’t say is what type of Run Configuration this should be. This would be helpful.
It looks like its meant to be a tomcat (or jetty) server configuation. I think you can just copy or modify your exising tomcat server launch. As I write this I’m not certain I’m correct here as the -noserver option implies that normally it will run up jetty itself, so is this meant to be just a Java Applicaiton launcher?
I’ve just found an artical that states that it is a Java Application Launcher.
and that you need to install the GWT toolkit.
https://stackoverflow.com/questions/18330001/super-dev-mode-in-gwt
It also provides the following argument details with some explaination but it fall short.
-noserver -war WebContent/VAADIN/widgetsets com.example.myproject.widgetset.MyWidgetSet -startupUrl http://localhost:8080/myproject -bindAddress 127.0.0.1
So I have two project. One contains the widget set (I’m working on GridFastNavigation improvements) and the other my vaadin application.
I would guess that this would be a fairly typical project setup.
However the documentation provides no guidance on this type of configuration.
Specifically I’m unclear on what the widget set path should look like.
The example shows:
com.example.myproject.widgetset.MyWidgetSet
Given the case I’m guessing that ‘MyWidgetSet’ is the class name of the widget I’m debugging. The documentation fails to details exactly what this refers to. And yes I can guess but when you are dealing with fifteen other vaugeries it gets a little difficult.
The doco states that you need to add some additional configuration to your .gwt.xml file.
My maven/vaadin project doesn’t seem to have one.
Well thats not quite true.
There is a file in target/generated-resources (as I write this the file doesn’t exist as I moved it).
So I created the file under src/main/resources/(packagename)/AppWidgetsetgwt.xml.
Is this the correct thing to do?
My widget set now looks like:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 2.5.1//EN"
"http://google-web-toolkit.googlecode.com/svn/tags/2.5.1/distro-source/core/src/gwt-module.dtd">
<module>
<inherits name="com.vaadin.DefaultWidgetSet"/>
<inherits name="org.vaadin.patrik.GridFastNavigation" />
<!-- super dev mode settings -->
<add-linker name="xsiframe"/>
<set-configuration-property name="devModeRedirectEnabled" value="true" />
</module>
The discussion around creating the ‘SuperDevMode launch’ has the same limitations.
What type of launch configuration is this?
What does the com.google.gwt.dev.codeserver.CodeServer package come from?
When it says to add the ‘project sources’ to the class path do they mean the widget set classes or the main vaadin applications source folders?
The doco states:
‘The above configuration only needs to be done once to enable the SuperDevMode. After that, you can launch the mode as follows:’
Exactly what only needs to be done once? As far as I can tell both services need to be run each time, so I’m really unclear what this is referring to?
Superdev mode seems like a very useful tool in doing client side development.
As such it would seem that having some excellent documenation to support it would be worth the effort.
Happy to help if I can get some answers.
Brett