Monday, March 2, 2015

Re: Module property and deferred binding not evaluated correctly after recompile in super dev mode (SDM)

I see. Now I look stupid, but I'll blame it on Intellij ;)

It seems when I launch built-in SDM from Intellij it uses the codeserver:
>>
Runing CodeServer with parameters: [-noprecompile, -port, 9876, -sourceLevel, 1.7, -bindAddress, 0.0.0.0, -launcherDir,
<<

But when I pass it the argument "-launcherDir " it complains and runs dev mode
>>
 DevMode [-[no]startServer] [-port port-number | "auto"] [-logdir directory] [-logLevel (ERROR|WARN|INFO|TRACE|DEBUG|
SPAM|ALL)] [-gen dir] [-bindAddress host-name-or-address] [-codeServerPort port-number | "auto"] [-[no]superDevMode] [-server servletContainerLauncher[:args]] [-startupUrl url] [-war dir] [-deploy dir] [-extra dir] [-modulePathPrefix ] [-workDir dir] [-XmethodNameDisplayMode (NONE|ONLY_METHOD_NAME|ABBREVIATED|FULL)] [-sourceLevel [auto, 1.7, 1.8]] [-XjsInteropMode (NONE|JS)] [-[no]incremental] [-setProperty name=value,value...] module[s]
...
<<

Well, I never liked the GWT support from Intellij anyway, so I was used to running com.google.gwt.dev.codeserver.CodeServer directly.
But with 2.8-SNAPSHOT I get
>>
Exception in thread "main" java.lang.ClassNotFoundException: com.google.gwt.dev.codeserver.CodeServer
<<

So it seems Intellij in combination with a maven project does not setup the classpath correctly for 2.8.0-SNAPSHOT.

Probably this will also explain why Intellij cannot resolve many classes in my source code, e.g.
>>
Class "java.util.Logger" is not present in JRE Emulation Library so it cannot be used in client code of GWT module
<<

However, with GWT 2.7.0 and the same project, pom, etc.. everything works as expected (except the original bug).

So something in the 2.8.0-SNAPSHOT code 'misleads' Intellij. Is this helpful feedback? Or is this to be expected from a snapshot?

Thank you,
Robert



On 02/03/15 17:20, Thomas Broyer wrote:
DevMode vs. CodeServer.

On Monday, March 2, 2015 at 5:14:41 PM UTC+1, Robert Hoffmann wrote:
This is the output I get when launching SDM from IntelliJ IDEA (14):

>>
Unknown argument: -launcherDir

Google Web Toolkit 2.8.0-SNAPSHOT
DevMode [-[no]startServer] [-port port-number | "auto"] [-logdir directory] [-logLevel (ERROR|WARN|INFO|TRACE|DEBUG|SPAM|ALL)] [-gen dir] [-bindAddress host-name-or-address] [-codeServerPort port-number | "auto"] [-[no]superDevMode] [-server servletContainerLauncher[:args]] [-startupUrl url] [-war dir] [-deploy dir] [-extra dir] [-modulePathPrefix ] [-workDir dir] [-XmethodNameDisplayMode (NONE|ONLY_METHOD_NAME|ABBREVIATED|FULL)] [-sourceLevel [auto, 1.7, 1.8]] [-XjsInteropMode (NONE|JS)] [-[no]incremental] [-setProperty name=value,value...] module[s]

where
  -[no]startServer         Starts a servlet container serving the directory specified by the -war flag. (defaults to ON)
  -port                    Specifies the TCP port for the embedded web server (defaults to 8888)
  -logdir                  Logs to a file in the given directory, as well as graphically
  -logLevel                The level of logging detail: ERROR, WARN, INFO, TRACE, DEBUG, SPAM or ALL (defaults to INFO)
  -gen                     Debugging: causes normally-transient generated types to be saved in the specified directory
  -bindAddress             Specifies the bind address for the code server and web server (defaults to 127.0.0.1)
  -codeServerPort          Specifies the TCP port for the code server (defaults to 9997 for classic Dev Mode or 9876 for Super Dev Mode)
  -[no]superDevMode        Runs Super Dev Mode instead of classic Development Mode. (defaults to ON)
  -server                  Specify a different embedded web server to run (must implement ServletContainerLauncher)
  -startupUrl              Automatically launches the specified URL
  -war                     The directory into which deployable output files will be written (defaults to 'war')
  -deploy                  The directory into which deployable but not servable output files will be written (defaults to 'WEB-INF/deploy' under the -war directory/jar, and may be the same as the -extra directory/jar)
  -extra                   The directory into which extra files, not intended for deployment, will be written
  -modulePathPrefix        The subdirectory inside the war dir where DevMode will create module directories. (defaults empty for top level)
  -workDir                 The compiler's working directory for internal use (must be writeable; defaults to a system temp dir)
  -XmethodNameDisplayMode  EXPERIMENTAL: Specifies method display name mode for chrome devtools: NONE, ONLY_METHOD_NAME, ABBREVIATED or FULL (defaults to NONE)
  -sourceLevel             Specifies Java source level (defaults to 1.7)
  -XjsInteropMode          EXPERIMENTAL: Specifies JsInterop mode: NONE or JS (defaults to NONE)
  -[no]incremental         Compiles faster by reusing data from the previous compile. (defaults to ON)
  -setProperty             Set the values of a property in the form of propertyName=value1[,value2...].
and
  module[s]                Specifies the name(s) of the module(s) to host
<<


To add to the confusion, the documentation at http://www.gwtproject.org/articles/superdevmode.html mentions for exmple the allowMissingSrc attribute which is not listed above either.

Thank you,
Robert


On 02/03/15 16:51, Thomas Broyer wrote:


On Monday, March 2, 2015 at 4:09:08 PM UTC+1, Robert Hoffmann wrote:
Yes. GWT 2.8.0-SNAPSHOT fixes this problem!

However under 2.7.0 I was using com.google.gwt.dev.codeserver.CodeServer with the -src attribute. Is there a way to include external source paths with the new SDM ?

What do you mean by "new SDM"? Isn't it basically the same between 2.7 and 2.8? (I don't remember seeing any major change land in the codebase)
In other words, CodeServer with -src should work just as well; just remember to also use -launcherDir (as in 2.7 BTW).
There's no equivalent to -src with DevMode though, everything has to be put in the classpath.
--
You received this message because you are subscribed to a topic in the Google Groups "Google Web Toolkit" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/google-web-toolkit/52jV7ORx3UI/unsubscribe.
To unsubscribe from this group and all its topics, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To post to this group, send email to google-web-toolkit@googlegroups.com.
Visit this group at http://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to a topic in the Google Groups "Google Web Toolkit" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/google-web-toolkit/52jV7ORx3UI/unsubscribe.
To unsubscribe from this group and all its topics, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To post to this group, send email to google-web-toolkit@googlegroups.com.
Visit this group at http://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.


_________________________________

Robert Hoffmann, Ph.D.
_________________________________


+43 (0) 660 348 6095
robert.hoffmann.phd@gmail.com
_________________________________

No comments:

Post a Comment