Sunday, June 30, 2019

Re: GWT.create() is only usable in client code!

Try the shared version instead of the client versionn:

com.google.gwt.core.shared.GWT


Paul

On Sat, 29 Jun 2019, 14:20 Evan Ferrell, <ewcraleigh@gmail.com> wrote:
I am receiving the attached error when trying to run JUnit. Please advise.

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/bdf933c5-c992-496b-a082-5d0737dd627e%40googlegroups.com.

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/CAGHNWNKdiiiXVd0xBcv7f%2BFcuk0s%2BadSzXtr6yH3QGRAdLDv-w%40mail.gmail.com.

Friday, June 28, 2019

GWT.create() is only usable in client code!

I am receiving the attached error when trying to run JUnit. Please advise.

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/bdf933c5-c992-496b-a082-5d0737dd627e%40googlegroups.com.

Re: GWT source compile error

Hmmm maybe the ANT build holds the gwt-dev.jar open and thus Windows forbids overwriting the file with gwt-dev-merged.jar . I guess you need to either try changing the build file to make is work on Windows or use a Linux VM for now.

-- J.

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/8cd28154-be4a-4d58-861c-8eb9febf9715%40googlegroups.com.

Re: How to use DatePicker with UiBinder

I don't believe GWT supports a Time picker out of the box.  Only date:  http://samples.gwtproject.org/samples/Showcase/Showcase.html#!CwDatePicker

A quick search shows that some people have created one:  https://stackoverflow.com/questions/4509655/gwt-time-picker

Or you could use JSNI to bind to a JavaScript one.


On Tuesday, 25 June 2019 17:07:22 UTC+2, Shweta Thainua wrote:
Can u tell me how to make are and time picker both in ui binder file

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/569651a2-3334-49df-bd1a-cc8b46160615%40googlegroups.com.

Thursday, June 27, 2019

Re: How to generate and download Excel Files with GWT

Hi, Can you please let me know which module did add gwt.xml file to work with WritableWorkbook. I have a situation to work with Excel in GWT but not able to find any module

On Tuesday, 4 May 2010 19:22:28 UTC+5:30, Dima wrote:
Hi,

I try to create a test.xsl on the server without saving the file on
the server. My application is running fine in hosted mode, but once
compiled and uploud(Tomcat) I get a nasty exception. Probably my
servleturl is not correct.

My code:

Client:----------------------------
    final String link = GWT.getModuleBaseURL() + "myfiledownload";

                          RequestBuilder builder = new
RequestBuilder(RequestBuilder.GET,link);

                          try {
                               builder.sendRequest(null, new RequestCallback() {
                            public void onError(Request request, Throwable t) {
                              Window.alert("Error bei getExcel");
                            }
                          public void onResponseReceived(Request request,Response response)

                                  if(response.getStatusCode() == 200) {
                                          Window.Location.replace(link);
                            } else if(response.getStatusCode() == 404) {
                              Window.alert("Service not available.");
                            }
                          }
                         });
                         } catch (RequestException re) {
                           GWT.log("Error", re);
                         }
-------------------------------------------------------------------
web.xml

<servlet>
        <servlet-name>myfiledownload</servlet-name>
        <servlet-class>module.server.MyFileServlet</servlet-class>
</servlet>
<servlet-mapping>
        <servlet-name>myfiledownload</servlet-name>
        <url-pattern>/myfiledownload</url-pattern>
   </servlet-mapping>
--------------------------------------------
MyApp.gwt.xml

<module>
...
<servlet path="/myfiledownload" class="module.server.MyFileServlet"/>
</module>
---------------------------------------
Server

package module.server;


public class MyFileServlet extends HttpServlet {
          private static final long serialVersionUID = 1L;

public void  doGet(HttpServletRequest request, HttpServletResponse
response) throws  IOException {
            try {
              // Get Excel Data
              ByteArrayOutputStream bytes = generateExcelReport();

              // Initialize Http Response Headers
              response.setHeader("Content-disposition", "attachment;
filename=exportUsers.xls");
              response.setContentType("application/vnd.ms-excel");

              // Write data on response output stream
              if (bytes != null) {
                response.getOutputStream().write(bytes.toByteArray());
              }
            } catch (Exception e) {
              response.setContentType("text/plain");
              response.getWriter().print("An error as occured");
            }
          }

public ByteArrayOutputStream generateExcelReport() throws IOException,
WriteException{


           /* Stream containing excel data */
                ByteArrayOutputStream outputStream = new ByteArrayOutputStream();

                /* Create Excel WorkBook and Sheet */
                WritableWorkbook workBook = Workbook.createWorkbook(outputStream);
                WritableSheet sheet = workBook.createSheet("User List", 0);

                /* Generates Headers Cells */
                WritableFont headerFont = new WritableFont(WritableFont.TAHOMA, 12,
WritableFont.BOLD);
                WritableCellFormat headerCellFormat = new
WritableCellFormat(headerFont);
                headerCellFormat.setBackground(Colour.PALE_BLUE);
                sheet.addCell(new Label(1, 1, "LastName", headerCellFormat));
                sheet.addCell(new Label(2, 1, "FirstName", headerCellFormat));

                /* Generates Data Cells */
                WritableFont dataFont = new WritableFont(WritableFont.TAHOMA, 12);
                WritableCellFormat dataCellFormat = new
WritableCellFormat(dataFont);
                int currentRow = 2;


                /* Write & Close Excel WorkBook */
                workBook.write();
                workBook.close();

                return outputStream;

       }
}
---------------------------------------

Please help my...

--
You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group.
To post to this group, send email to google-we...@googlegroups.com.
To unsubscribe from this group, send email to google-web-toolkit+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/6449bd84-6002-4d7c-ac41-d40333dd6861%40googlegroups.com.

GWT source compile error

Hi. I'm trying to compile the current master of GWT from source but keep getting the following error. I'm on JDK 8 on a windows 7 PC.
The commands I tried were: ant, ant clean dist-dev, ant clean elemental dist-dev.

merge_codeserver:
     [echo] Merge gwt-dev.jar and gwt-codeserver.jar
      [jar] Building jar: C:\Users\chandulah\Desktop\gwt\trunk\build\out\gwt-dev-merged.jar
      [jar] Warning: selected jar files include a META-INF/INDEX.LIST which will be replaced by a newly generated one.
      [jar] Warning: selected jar files include a META-INF/INDEX.LIST which will be replaced by a newly generated one.
     [echo] Overwriting gwt-dev.jar with merged gwt-dev.jar
     [move] Moving 1 file to C:\Users\chandulah\Desktop\gwt\trunk\build\lib
Attempt to copy C:\Users\chandulah\Desktop\gwt\trunk\build\out\gwt-dev-merged.jar to C:\Users\chandulah\Desktop\gwt\trun
k\build\lib\gwt-dev.jar using NIO Channels failed due to 'C:\Users\chandulah\Desktop\gwt\trunk\build\lib\gwt-dev.jar'.
Falling back to streams.

BUILD FAILED
C:\Users\chandulah\Desktop\gwt\trunk\build.xml:48: The following error occurred while executing this line:
C:\Users\chandulah\Desktop\gwt\trunk\distro-source\build.xml:23: Failed to copy C:\Users\chandulah\Desktop\gwt\trunk\bui
ld\out\gwt-dev-merged.jar to C:\Users\chandulah\Desktop\gwt\trunk\build\lib\gwt-dev.jar due to C:\Users\chandulah\Deskto
p\gwt\trunk\build\lib\gwt-dev.jar

Thanks in advance for any help you could provide!



--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/6d84ec6b-784f-488f-8268-b5451681eac3%40googlegroups.com.

Tuesday, June 25, 2019

Re: How to use DatePicker with UiBinder

Can u tell me how to make are and time picker both in ui binder file

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/062e960a-fdb2-4aac-afee-a73c3b5e069b%40googlegroups.com.

How to build an interactive swimlane widget

Anyone has any idea what the easiest way is to create an interactive swimlane widget in GWT ?

I did some 5 minute googling and it seems that this is possilbe with D3.js (although I think a lot of manual work).
I also found a GWT wrapper for D3.js but only an old one.

Anyone has another idea than looking in the direction of D3.js ? Maybe some library that has swimlanes build in, so with a lot less manual work.
And if D3.js is a good choice. Should I use the available GWT wrapper ? Or is it possible to automagicly create an jsinterop wrapper ?

I have zero experience with jsinterop, only with JSNI. So I don't have a clue how much work it is to create wrapper using jsinterop. Also I don't find much documentation about how to do this with jsinterop. I don't really have an idea on how to start with this.

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/e9e32782-2d16-47a5-bb72-bc4719074ea5%40googlegroups.com.

Thursday, June 20, 2019

Re: Stack trace not showing correct line number

I haven't seen proper stack traces in my app without emulation in Chrome, even in older versions of GWT.

Is it possible there's a trick to making it show the real line instead of the function start, rather than a bug in 2.8.2?

Paul

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/CAGHNWNL79HdM2hv-5rqKhquhzD_qev6nDirg0bQK6ZZjjqNf2w%40mail.gmail.com.

Wednesday, June 19, 2019

Re: Stack trace not showing correct line number

Gwt do not show trace .
But you can show browser trace.
Example chrome is depeloper mode .

2019年6月20日(木) 2:56 Jens <jens.nehlmeier@gmail.com>:

In my experience, with "compiler.stackMode = native", even when using Chrome, you don't get line numbers.  You have to have "compiler.stackMode = emulated".

Today I have looked at a stack trace and it did show the correct line number when using Chrome. But the app uses GWT trunk and not a released GWT version, so maybe something changed and is currently broken in 2.8.2.

-- J.

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/35af2790-634c-40b6-a215-b48ee36a7422%40googlegroups.com.

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/CAH%2B05FjQn64eRE-iZVti%3DvNag%3DQUA6AOvFsPHQe2PDL8f9dyUg%40mail.gmail.com.

Re: Stack trace not showing correct line number


In my experience, with "compiler.stackMode = native", even when using Chrome, you don't get line numbers.  You have to have "compiler.stackMode = emulated".

Today I have looked at a stack trace and it did show the correct line number when using Chrome. But the app uses GWT trunk and not a released GWT version, so maybe something changed and is currently broken in 2.8.2.

-- J.

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/35af2790-634c-40b6-a215-b48ee36a7422%40googlegroups.com.

Re: Stack trace not showing correct line number

Thank you for your inputs. We now understand a little more what's going on and a possible workaround. None of the browsers we tested (Chrome, Safari or Edge) give us line numbers. The emulated version is too large and serving it to our users is not an option. If we can't find the line with the exception using native we'll have to upload the emulated version and recreate the conditions as admin. A bit time consuming but it works.

If there were a version with working line numbers weighing in slightly heavier than native but not as heavy as emulated we might go for that. Wishful thinking...

On Wednesday, June 19, 2019 at 12:59:02 PM UTC+2, Craig Mitchell wrote:
In my experience, with "compiler.stackMode = native", even when using Chrome, you don't get line numbers.  You have to have "compiler.stackMode = emulated".

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/25b1049b-e5db-4bdd-9849-4200a091e497%40googlegroups.com.

Re: "socket.io.js" + JSInterop



On Wed, Jun 19, 2019 at 8:24 PM Rinaldo Arden <rinaldo.arden@gmail.com> wrote:
The problem is not that it cannot be done (everything can be done with a C compiler and a text editor), but that this is the year 2019, and we are still talking about this matter. GWT never provided an underlying up-to-date transport mechanism (there was RPC earlier of course); I recall having to hack up something to get websockets working, some time ago. OK it worked but it was no proper library. Another chap has pointed me kindly to a JSNI wrapper for socketio, which is itself some years old. And some years after JSInterop has been released there still appears to be no up-to-date library for socketio; which confirms my original suspicion that there is no interest in GWT for real-time applications, or really even in underlying network transport. Which cannot be said of Angular, or React, or of other frameworks. What exactly is GWT 3 is going to be all about?

We have been doing "real time applications" in GWT since ~2011 and we have historically used our own libraries that with a combination of long polling, eventsource and websocket tech. However browsers have got good enough these days that we have stripped most of it away and are just sending json packets and json-like packets on websockets. And you can use elemental2 for that - see https://groups.google.com/d/msg/google-web-toolkit/qkgexZ4C0n0/kp9bqw-MAQAJ for latest elemental2.

GWT may not have have bindings for some library but most of those libraries no longer offer the value they once did. I do miss having decent serialization library ... but you can't have everything ;)
--
Cheers,

Peter Donald

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/CACiKNc5mxa%3DdrJHEsJ95-mk01M%2BUayjmemeFPAvhPjmmgtZkGQ%40mail.gmail.com.

Re: Stack trace not showing correct line number

In my experience, with "compiler.stackMode = native", even when using Chrome, you don't get line numbers.  You have to have "compiler.stackMode = emulated".

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/52268174-1b73-47e2-a528-afa75381170c%40googlegroups.com.

Re: "socket.io.js" + JSInterop

Hi Jens,
The problem is not that it cannot be done (everything can be done with a C compiler and a text editor), but that this is the year 2019, and we are still talking about this matter. GWT never provided an underlying up-to-date transport mechanism (there was RPC earlier of course); I recall having to hack up something to get websockets working, some time ago. OK it worked but it was no proper library. Another chap has pointed me kindly to a JSNI wrapper for socketio, which is itself some years old. And some years after JSInterop has been released there still appears to be no up-to-date library for socketio; which confirms my original suspicion that there is no interest in GWT for real-time applications, or really even in underlying network transport. Which cannot be said of Angular, or React, or of other frameworks. What exactly is GWT 3 is going to be all about?

On Wed, Jun 19, 2019 at 4:47 PM Jens <jens.nehlmeier@gmail.com> wrote:
I don't see a reason why socketio should give you nightmares with GWT + JsInterop. Generally you can use any JS library with GWT.

-- J.

--
You received this message because you are subscribed to a topic in the Google Groups "GWT Users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/google-web-toolkit/FnbakOW88O0/unsubscribe.
To unsubscribe from this group and all its topics, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/c0c21e73-3cd2-4533-8725-19a398ac63f9%40googlegroups.com.

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/CACdqbtUQ1%2BFftim3s9kyC6qWK7mgZfdzFD_nEhVuOFO%3D9kUSyw%40mail.gmail.com.

"socket.io.js" + JSInterop

I am also using https://github.com/sockjs successfully with a vertx backend.

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/0e9a66be-7249-41ce-a9ce-7d1d7422d297%40googlegroups.com.

"socket.io.js" + JSInterop

Should you consider this as an option, which is future solution and will work with gwt2 and gwt3

https://github.com/niloc132/webbit-gwt

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/4b33e7ba-cb11-48d6-8008-19cbe79e7ab4%40googlegroups.com.

Re: "socket.io.js" + JSInterop

As is said, "JSNI will be removed with GWT 3"; and gwt_socket.io [... TJSocketIO.java ] provides a JSNI wrapper for "socket.io.js". Thus gwt_socket.io is not future proof wrt imminent release of GWT 3.
Thanks for the pointer though, appreciate it.

On Wed, Jun 19, 2019 at 4:49 PM Frank <frank.wynants@gmail.com> wrote:
A quick Goolgle gave me : https://github.com/jumanor/gwt_socket.io

--
You received this message because you are subscribed to a topic in the Google Groups "GWT Users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/google-web-toolkit/FnbakOW88O0/unsubscribe.
To unsubscribe from this group and all its topics, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/80cafd96-6cbd-40c0-8ae8-2c603fdb9c60%40googlegroups.com.

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/CACdqbtU5zKPW2BkQ3UN%3D1JNRysrzWOaFnCJ4vuBzV8w9PdXX9A%40mail.gmail.com.

Re: Stack trace not showing correct line number

In addition to what Freddy already said:

Native JS exceptions (which you get with "compiler.stackMode = native") should provide a line number as well as a column number. However not all browsers do this, some only report a line number. For those browsers that do not provide a column, the stack trace points to the start of the method because GWT's final JS output places each JS method on its own, single line. So if any exception occurs in the method, the line number matches the start of the method. Theoretically GWT could put each JS statement on its own line for those browsers but that would increase the JS size (additional carriage return character for each statement).

Chrome for example provides line and column numbers and thus the exception points to the concrete line within the method.

If you use "compiler.stackMode = emulated" then GWT inserts code to track code lines, thus the app will be roughly twice as large (and quite a bit slower).

-- J.

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/ba384771-a892-4995-acd5-7858b684346c%40googlegroups.com.

Tuesday, June 18, 2019

Re: "socket.io.js" + JSInterop

A quick Goolgle gave me : https://github.com/jumanor/gwt_socket.io

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/80cafd96-6cbd-40c0-8ae8-2c603fdb9c60%40googlegroups.com.

Re: "socket.io.js" + JSInterop

I don't see a reason why socketio should give you nightmares with GWT + JsInterop. Generally you can use any JS library with GWT.

-- J.

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/c0c21e73-3cd2-4533-8725-19a398ac63f9%40googlegroups.com.

Re: Stack trace not showing correct line number

Line Number is only accurate if you compile with:

  <set-property name="compiler.stackMode" value="emulated" />
 
<set-configuration-property name="compiler.emulatedStack.recordLineNumbers" value="true" />
 
<set-configuration-property name="compiler.emulatedStack.recordFileNames" value="true" />


But it will double the size of your compiled JS file!!!

With:
<set-property name="compiler.stackMode" value="native" />

you will only get the line number of your method declaration (but not the exact line inside the method).

I have a demo project where you can play with that: https://gwt-storage-objectify.appspot.com

Basically what we do at work, is to compile the project twice (one time with emulated and one time with native).
By default we serve the native JS (that is smaller) but if a User faces an Exception, then at next reload we serve the emulated JS for this specific User so if an Exception happens again, we have the exact StackTrace.

Freddy


On Wednesday, June 19, 2019 at 12:19:30 AM UTC+10, Carl wrote:
We use source maps to log stack traces from the GWT client on the server

<set-property name="compiler.stackMode" value="native" />

<set-property name="compiler.useSourceMaps" value="true"/>

<set-property name="compiler.emulatedStack" value="true" />

<set-configuration-property name="compiler.emulatedStack.recordLineNumbers" value="true" />

<set-configuration-property name="compiler.emulatedStack.recordFileNames" value="true" />


and use StackTraceDeobfuscator to deobfuscate


private StackTraceDeobfuscator getStackTraceDeobfuscator(ServletContext servletContext) {

String relativeWebPath = "WEB-INF/deploy/appimpl/symbolMaps";

String symbolMapsDirectory = servletContext.getRealPath(relativeWebPath);

StackTraceDeobfuscator std = StackTraceDeobfuscator.fromFileSystem(symbolMapsDirectory);

return std;

}


which gives us this stack trace:


at java.lang.Throwable.Throwable(Throwable.java:58)

at java.lang.Exception.Exception(Exception.java:25)

at java.lang.RuntimeException.RuntimeException(RuntimeException.java:25)

at java.lang.NullPointerException.NullPointerException(NullPointerException.java:27)

at client.CustomMenu.simulateClientCrash(CustomMenu.java:3734)    <--- first line of method

at client.CustomMenu$12.onClick(CustomMenu.java:1686)

..


The problem is that the trace always gives us the first line of the method and not the line where the exception is thrown.


CustomMenu.java

3734  private void simulateClientCrash() {     <--- first line of method

3735      if (true) {

3736        throw new NullPointerException();     <--- exception is thrown

3737   }

3738  }


This is not a big deal if the method is short but can be quite a pain if the method is longer.


Why is this? Can it be fixed?

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/a3b5408b-438a-4000-b14c-c9a690c57415%40googlegroups.com.

"socket.io.js" + JSInterop

Hi All, 
Just a small query. I am working on an application that requires real-time interaction between server and client. After considering GWT for some time, I am coming to the conclusion that GWT has not, does not, and will not support this kind of interaction. I may be wrong, but I suspect that there is no easy way to achieve this functionality with GWT.  I am aware that some years ago the Atmosphere framework provided something along these lines, but the Atmosphere project is, I am sorry to say, something of a mess at the moment, and appears to be fading. The other project I am considering is of course SocketIO but I can't see how it would be possible to add a SocketIO client to a GWT project. ("socket.io.js" + JSInterop gives me nightmares and wouldn't work anyway, would it?)  But maybe it (real-time + GWT) has been done already, I would like to know. 
Thanks for any insights.
RA

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/1bdd98a4-a719-41d4-9b5b-f7b2e7af722e%40googlegroups.com.

Monday, June 17, 2019

Re: JSNI - access inner class attribute from external JS?


Thanks for your help Jens.  Is there some documentation that explains this syntax to any degree?  All I can find is this and it isn't enough - http://www.gwtproject.org/doc/latest/DevGuideCodingBasicsJSNI.html#calling

Thats the only information on the official site. http://www.gwtproject.org/doc/latest/DevGuideCodingBasicsJSNI.html#methods-fields contains a short description how a JSNI method call is constructed.

 
I've tried what you describe but when I call it from my external javascript I get an error indicating that the function I'm calling is not defined. 

Be aware that GWT apps load asynchronous and you have to wait for it so that $wnd.setValueFromExternal is available once your external JS executes.

 
It passes the GWT compiler but at runtime it can't find the function.  I feel like the syntax isn't correct but I'm not seeing it.  Should "Bar" be the instance name of the internal class within the outer class?  I tried that too, same result.

So it sounds like you want setValue() to be an instance method. But at the same time it sounds like your external JS does not know anything about the Bar instance on which the external JS needs to call setValue(). In that case I would probably do


class Foo {

 
class Bar {

   
static void setValueFromExternal(int value) {
     
Bar barInstance = getBarInstanceSomeHow();
      barInstance
.setValue(value);
   
}

 
}
}

public static native void exportSetValueFromExternalFunction() /*-{
  // Note: when exporting functions do not write "setValueFromExternal(I)()" because that will call the function
  $wnd.setValueFromExternal = $entry(@com.example.Foo.Bar::setValueFromExternal(I));
}-*/


The above assumes that it is more natural to use Java code to get the Bar instance somehow. Of course you could also do it within the JSNI method but I would try to avoid real code in JSNI methods because that makes it easier to switch to JsInterop (something you should consider if you want that GWT code to be GWT 3 compatible).


-- J.

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/0ffe40da-adf8-44cb-9207-c2cb7fc26715%40googlegroups.com.

Re: JSNI - access inner class attribute from external JS?



On Monday, June 17, 2019 at 5:15:26 AM UTC-5, Jens wrote:
Your setValue() method must be static if you want to call it that way. If it must be an instance method you need to write barInstance.@pkg.Foo.Bar::method (don't forget the dot after instance variable)

-- J.
 
Thanks for your help Jens.  Is there some documentation that explains this syntax to any degree?  All I can find is this and it isn't enough - http://www.gwtproject.org/doc/latest/DevGuideCodingBasicsJSNI.html#calling


I've tried what you describe but when I call it from my external javascript I get an error indicating that the function I'm calling is not defined.  It passes the GWT compiler but at runtime it can't find the function.  I feel like the syntax isn't correct but I'm not seeing it.  Should "Bar" be the instance name of the internal class within the outer class?  I tried that too, same result.

Here is the updated native method:

public native void setValueFromExternal(int newValue) /*-{
Bar.maxInstance.@pkg.Foo.Bar::setValue(I)(newValue);
}-*/; 


The call from the external javascript file is still the same:

function setValue(value){
    this.setValueFromExternal(value);

}

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/1e0c78d9-65e6-438c-9bbd-5284a088e47f%40googlegroups.com.

Re: JSNI - access inner class attribute from external JS?

Your setValue() method must be static if you want to call it that way. If it must be an instance method you need to write barInstance.@pkg.Foo.Bar::method (don't forget the dot after instance variable)

-- J.

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/bae25e5c-caf9-4c6e-afcc-d7b208b12584%40googlegroups.com.

Friday, June 14, 2019

JSNI - access inner class attribute from external JS?

I am absolutely pulling my hear out with this one and I'm hoping someone can help.  I have been able to use JSNI on numerous other occasions to call GWT class functionality when needed.  It works very well once the syntax is figured out.  I need to do something similar but with an inner class.  I have an app that has an inner class within a GWT class.  I need to be able to access and change an attribute on that inner class from external/hand-written javascript.  

The GWT compiler is throwing an error: "Missing qualifier on instance method" and it's complaining about this line -- "$wnd.setValueFromExternal"

What is the proper way to call a GWT accessor from an external/hand-written javascript file when that accessor is within an inner class?


public class Foo extends DataEntryListener{

....

    public class Bar(){

        private int value;

        public int getValue(){

            return value;

        }

        public void setValue(int val){

            this.value = val;

        }

    }


public native void setValueFromExternal(int newValue) /*-{
$wnd.setValueFromExternal = $entry(@pkg.Foo.Bar::setValue(I)(newValue);
}-*/;
}


Here is the call from an external/hand-written javascript file:

function setValue(value){
    this.setValueFromExternal(value);

}

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/0aa6299a-f951-4e85-95c7-ae863709d631%40googlegroups.com.

Wednesday, June 12, 2019

Re: [ANN] (Unofficial) Elemental2 2.24 release


On Wed, Jun 12, 2019 at 8:29 AM Peter Donald <pe...@realityforge.org> wrote:
On Wed, Jun 12, 2019 at 7:31 AM John Huss <john...@gmail.com> wrote:
Out of curiosity, how did you get this project to build successfully? 

When I try to build it I see this:

$ ./bazel_build_test.sh 


ERROR: /Users/john/repos/elemental2/third_party/BUILD:21:1: no such target '@com_google_javascript_closure_compiler//:externs': target 'externs' not declared in package '' defined by /private/var/tmp/_bazel_john/b729f51825638d22c4a92cfea6e4556d/external/com_google_javascript_closure_compiler/BUILD and referenced by '//third_party:es6_collections'



My guess is that you need to do something like this

bazel clean --expunge

 
This will remove all downloaded repositories (i.e. the closure-compiler source code as well as the other remote dependencies) and rebuild them. I believe after that it should build cleanly.

That said I just ran this and it seems to be running against the last binary release of closure compiler ... not the current git repository ... which will not produce the same jar as I generated as the closure externs are outdated. I will need to poke around to figure out how to work arouns this.

That worked, thanks! 

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/5b43869e-8228-4649-a98b-8adab3bbe074%40googlegroups.com.

Tuesday, June 11, 2019

Re: [ANN] (Unofficial) Elemental2 2.24 release



On Wed, Jun 12, 2019 at 8:29 AM Peter Donald <peter@realityforge.org> wrote:
On Wed, Jun 12, 2019 at 7:31 AM John Huss <johnthuss@gmail.com> wrote:
Out of curiosity, how did you get this project to build successfully? 

When I try to build it I see this:

$ ./bazel_build_test.sh 


ERROR: /Users/john/repos/elemental2/third_party/BUILD:21:1: no such target '@com_google_javascript_closure_compiler//:externs': target 'externs' not declared in package '' defined by /private/var/tmp/_bazel_john/b729f51825638d22c4a92cfea6e4556d/external/com_google_javascript_closure_compiler/BUILD and referenced by '//third_party:es6_collections'



My guess is that you need to do something like this

bazel clean --expunge

 
This will remove all downloaded repositories (i.e. the closure-compiler source code as well as the other remote dependencies) and rebuild them. I believe after that it should build cleanly.

That said I just ran this and it seems to be running against the last binary release of closure compiler ... not the current git repository ... which will not produce the same jar as I generated as the closure externs are outdated. I will need to poke around to figure out how to work arouns this.

--
Cheers,

Peter Donald

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/CACiKNc5xTgA7L7%3Dmz0-WNrjw0UUvM6aQLqiqPUhtquFj%2BC%2BRag%40mail.gmail.com.

Re: [ANN] (Unofficial) Elemental2 2.24 release



On Wed, Jun 12, 2019 at 7:31 AM John Huss <johnthuss@gmail.com> wrote:
Out of curiosity, how did you get this project to build successfully? 

When I try to build it I see this:

$ ./bazel_build_test.sh 


ERROR: /Users/john/repos/elemental2/third_party/BUILD:21:1: no such target '@com_google_javascript_closure_compiler//:externs': target 'externs' not declared in package '' defined by /private/var/tmp/_bazel_john/b729f51825638d22c4a92cfea6e4556d/external/com_google_javascript_closure_compiler/BUILD and referenced by '//third_party:es6_collections'



My guess is that you need to do something like this

bazel clean --expunge

 
This will remove all downloaded repositories (i.e. the closure-compiler source code as well as the other remote dependencies) and rebuild them. I believe after that it should build cleanly.

HTH

On Sunday, June 2, 2019 at 8:56:47 PM UTC-5, Peter Donald wrote:
Elemental2 provides type checked access to browser APIs for Java
code. This is done by using closure extern files and generating
JsTypes, which are part of the new JsInterop specification that
is implemented in both GWT and J2CL.

https://github.com/google/elemental2

This is an unofficial release to Maven Central under a different groupId.
Please don't bug the original authors. Versions are released on demand.

API Changes relative to Elemental2 version 2.23

elemental2-core:
  API Differences: https://jsinterop.github.io/api-diff/?key=elemental2-core&old=2.23&new=2.24
  - 39 non breaking changes.
  - 19 potentially breaking changes.
  - 49 breaking changes.
elemental2-dom:
  API Differences: https://jsinterop.github.io/api-diff/?key=elemental2-dom&old=2.23&new=2.24
  - 85 non breaking changes.
  - 68 potentially breaking changes.
  - 165 breaking changes.
elemental2-indexeddb:
  API Differences: https://jsinterop.github.io/api-diff/?key=elemental2-indexeddb&old=2.23&new=2.24
  - 1 non breaking changes.
elemental2-svg:
  API Differences: https://jsinterop.github.io/api-diff/?key=elemental2-svg&old=2.23&new=2.24
  - 1 breaking changes.
elemental2-webassembly:
  API Differences: https://jsinterop.github.io/api-diff/?key=elemental2-webassembly&old=2.23&new=2.24
  - 1 potentially breaking changes.

The complete set of Elemental2 API differences is available at

  https://jsinterop.github.io/api-diff/?key=elemental2&old=2.23&new=2.24

The Maven dependencies can be added to your pom.xml via

    <dependency>
      <groupId>org.realityforge.com.google.elemental2</groupId>
      <artifactId>${artifact-id}</artifactId>
      <version>2.24</version>
    </dependency>

where artifact-id is one of

* elemental2-core
* elemental2-dom
* elemental2-promise
* elemental2-indexeddb
* elemental2-svg
* elemental2-webgl
* elemental2-media
* elemental2-webstorage
* elemental2-webassembly

Hope this helps,

Peter Donald

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/a7ddd14d-d72d-4f45-ab43-cecb13c267a0%40googlegroups.com.


--
Cheers,

Peter Donald

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/CACiKNc6gDFQHANZ63-gq6vidL6oxyeSuWo%3DbcD4ErTke7h%3Dz3Q%40mail.gmail.com.

Re: [ANN] (Unofficial) Elemental2 2.24 release

Out of curiosity, how did you get this project to build successfully? 

When I try to build it I see this:

$ ./bazel_build_test.sh 


ERROR: /Users/john/repos/elemental2/third_party/BUILD:21:1: no such target '@com_google_javascript_closure_compiler//:externs': target 'externs' not declared in package '' defined by /private/var/tmp/_bazel_john/b729f51825638d22c4a92cfea6e4556d/external/com_google_javascript_closure_compiler/BUILD and referenced by '//third_party:es6_collections'


On Sunday, June 2, 2019 at 8:56:47 PM UTC-5, Peter Donald wrote:
Elemental2 provides type checked access to browser APIs for Java
code. This is done by using closure extern files and generating
JsTypes, which are part of the new JsInterop specification that
is implemented in both GWT and J2CL.

https://github.com/google/elemental2

This is an unofficial release to Maven Central under a different groupId.
Please don't bug the original authors. Versions are released on demand.

API Changes relative to Elemental2 version 2.23

elemental2-core:
  API Differences: https://jsinterop.github.io/api-diff/?key=elemental2-core&old=2.23&new=2.24
  - 39 non breaking changes.
  - 19 potentially breaking changes.
  - 49 breaking changes.
elemental2-dom:
  API Differences: https://jsinterop.github.io/api-diff/?key=elemental2-dom&old=2.23&new=2.24
  - 85 non breaking changes.
  - 68 potentially breaking changes.
  - 165 breaking changes.
elemental2-indexeddb:
  API Differences: https://jsinterop.github.io/api-diff/?key=elemental2-indexeddb&old=2.23&new=2.24
  - 1 non breaking changes.
elemental2-svg:
  API Differences: https://jsinterop.github.io/api-diff/?key=elemental2-svg&old=2.23&new=2.24
  - 1 breaking changes.
elemental2-webassembly:
  API Differences: https://jsinterop.github.io/api-diff/?key=elemental2-webassembly&old=2.23&new=2.24
  - 1 potentially breaking changes.

The complete set of Elemental2 API differences is available at

  https://jsinterop.github.io/api-diff/?key=elemental2&old=2.23&new=2.24

The Maven dependencies can be added to your pom.xml via

    <dependency>
      <groupId>org.realityforge.com.google.elemental2</groupId>
      <artifactId>${artifact-id}</artifactId>
      <version>2.24</version>
    </dependency>

where artifact-id is one of

* elemental2-core
* elemental2-dom
* elemental2-promise
* elemental2-indexeddb
* elemental2-svg
* elemental2-webgl
* elemental2-media
* elemental2-webstorage
* elemental2-webassembly

Hope this helps,

Peter Donald

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/a7ddd14d-d72d-4f45-ab43-cecb13c267a0%40googlegroups.com.

Wednesday, June 5, 2019

Re: A Short GWT JsInterop Article for Beginners



On Tuesday, June 4, 2019 at 6:38:44 PM UTC+2, Jamal Romero wrote:
Thanks for sharing this!I would love to see also pointer or a reference available somewhere about the workings of Super Dev Mode in conjunction with the GWT compiler. Just a high level schematic or flowchart showing the flow and connections between these tools. What the codeserver does? So far if I follow the documented steps and nothing goes wrong during the compile and build all is good. But things start to get complicated when something goes wrong with the build tools.

7 years old next week, but still accurate afaik: http://blog.ltgt.net/how-does-gwts-super-dev-mode-work/
"Modern" SDM doesn't need anything specific in the gwt.xml files, and (major difference) no longer requires bookmarklets if you run CodeServer with -launcherDir (or use the DevMode launcher instead); it then generates a nocache.js file that does the same thing as the bookmarklet+compile button automatically on page load; but the overall architecture hasn't changed.

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/04fc61c1-c980-4639-8447-f1f59dad8b12%40googlegroups.com.

Tuesday, June 4, 2019

A Short GWT JsInterop Article for Beginners

Thanks for sharing this!I would love to see also pointer or a reference available somewhere about the workings of Super Dev Mode in conjunction with the GWT compiler. Just a high level schematic or flowchart showing the flow and connections between these tools. What the codeserver does? So far if I follow the documented steps and nothing goes wrong during the compile and build all is good. But things start to get complicated when something goes wrong with the build tools.

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/80c2c634-92e8-4167-83b2-eed4cb6dde4c%40googlegroups.com.

Monday, June 3, 2019

Re: GWT - Still Active ?

I can see why you would be frustrated ... and the GWT documentation is not particularly good. For us superdev+browser debugging mode "just works" as long as you do not change the linker. We don't have a massive app (~700K lines of client-side java source code across 37 directory trees + lots different jars) and generally we don't embed assets in javascript (which can degrade performance and increase js size).

These days we tend to debug in the browser rather than the IDE as historically IntelliJ struggled debugging large browser apps (although I believe this is no longer true) but we now find the browser debugger nicer to work with as it has all the other browser goodies.

I would recommend starting with a very simple app and seeing if you can get source maps and debugging working with that and then work from there. https://gitter.im/gwtproject/gwt is usually helpful and someone else was helped with this recently...

On Mon, Jun 3, 2019 at 11:13 PM Edson Richter <brviking@gmail.com> wrote:
Well, let's name few problems here:

1) Source maps: I don't know why, but Chrome can't find them. I've tried everything (I swear, I followed step by step every tutorial in earth - it just wont work. It may be because our folder structure that is bit more complex than those simple examples).
2) So, I'll forget and leave Java sources, and try to debug Javascript code. I've configured GWT compiler to produce "pretty", "non-obfuscated code". The generated javascript files are so big that chrome can't open it in developer mode. I just open an "empty" window. Nothing else.

Just to let you know, I'm using NetBeans - but this has nothing to do with the IDE I use - I'm just talking about debug javascript code.

I do consider myself a experienced engineer, having worked with several languages and systems - but I can't manage to get superdevmode working at all. May be just my system is currently too large.

Regards,

Edson


Em domingo, 2 de junho de 2019 15:01:04 UTC-3, Andrew Buck escreveu:
Debugging of both the server and client code works great. I'm not sure why it doesn't work for you. Client side debugging is done in the browser console using source maps that are automatically generated by the GWT compiler.

On Saturday, June 1, 2019 at 3:22:09 PM UTC-7, Edson Richter wrote:
This is my opinion (from a person with more than 30 years of experience in software enginnering), and I respect every other persons opinion - I'll just not put my eggs on this basket for another 8 years "just to see if it will get better".
Last year I had big issue with dates, because GWT has outdated DST tables (backend had correct dates, front end show everything one hour earlier!!!). This is just one little big problem for enterprise apps. I've asked support for this issue here, without any result (if someone had pointed me how to fix, I'll contribute code back to the project!). Finally, I had to write my own DST table and use "creativity" to overcome this "bug".
Not having support is also a big issue.
Not being able to debug the code anymore is another one.
More and more, GWT will get those "pieces" failing... and finally, it won't be usable anymore.

Regards,

Edson


Em sexta-feira, 31 de maio de 2019 11:41:27 UTC-3, Jamal Romero escreveu:
Out of curiosity, what would prevent someone still build projects based on current GWT 2.8.2 and keep using all the goodies? I think as of 2.8.2 it is future proof especially with a shift to jsinteop included in current release version? People even with current version took their own path and modernized part of GWT like the excellent gwt material & domino ui kit.

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/6f3dfaf6-ab6e-400a-a154-35b3c386422d%40googlegroups.com.


--
Cheers,

Peter Donald

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/CACiKNc7Oyn33n_MfPsQwTzAW31UP9fkyZ4CNbRTrZwS%2Bo%3DP9yw%40mail.gmail.com.

Re: A Short GWT JsInterop Article for Beginners

Nice!

On Tuesday, June 4, 2019 at 6:21:32 AM UTC+10, Dr. Lofi Dewanto wrote:
Hi All,

I wrote a short article to introduce GWT and JsInterop for beginners, hope to see more people using GWT: http://bit.ly/WebJavaStory

Enjoy, thanks,
Lofi

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/3d76a880-3646-42d3-8a1e-dfc19ee7bee0%40googlegroups.com.

A Short GWT JsInterop Article for Beginners

Hi All,

I wrote a short article to introduce GWT and JsInterop for beginners, hope to see more people using GWT: http://bit.ly/WebJavaStory

Enjoy, thanks,
Lofi

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/1e60c5ea-ae86-4096-adb3-1ecb7c679ead%40googlegroups.com.

Re: What is the advantage of GWT 3.0?

Sounds great! Thanks!


On Sunday, June 2, 2019 at 3:44:23 PM UTC-7, Peter Donald wrote:


On Sun, Jun 2, 2019 at 12:59 PM Andrew Buck <anb...@gmail.com> wrote:
I love GWT 2.8 and I appreciate all the work that the community has put into it as well as the work towards GWT 3.0. I'm trying to understand what the advantage of GWT 3.0 is though. It seems like GWT 3.0 is a subset of GWT 2.8 with a different compiler under the covers. How is the closure compiler better than the GWT 2 compiler and is it really worth trying to switch when GWT 2.8 is mature and works well?

The reason we are moving that way is:

* <1s refresh times in dev mode regardless of the size of the project. The promise is that the compile time is proportional to the size of the change, not the size of the app.
* Integration with modern javascript so can use modern browser facilities without backflips. i.e. Simple creation of ES6 class instances so can do things like WebComponents without ugly hacks and/or loss of optimize-ability.
* Potential for much better code optimization and writing custom compiler passes.
* Emitting modules as non-web apps without writing custom linkers. i.e. Currently if you are building a browser extension or a web worker or an app to run in node you need to write a custom linker
* potential for hot-reload in candidate modules without loosing any application state (i.e reload just a single ui component in our react/gwt app without loosing the rest of the state in our application)
* Integration/optimization with native javascript. i.e. Bringing in native js modules will be possible and they will all be compiled and optimized together
* Exporting java libraries to native Typescript/javascript without any ugliness and full optimization still available

To be honest the first two are the main reasons ... the rest is icing on the cake ;)

-- 
Cheers,

Peter Donald

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/e163dbab-9300-426b-a5b5-42ad0152a0df%40googlegroups.com.