Wednesday, December 31, 2025

Re: GWT and IntelliJ IDEA as a single, unified product

The ability to simply refresh the browser to get the up-to-date client code is just so convenient for me.

The GWT Maven Plugin does this too by using the GWT Code Server (which I would guess is the same as what the GWT IntelliJ plugin does).

On Thursday, 1 January 2026 at 2:39:06 am UTC+11 Khun Yee Fung wrote:
Yeah, for whatever reason, it is not easy to set up properly to run GWT inside IntelliJ. No idea why it has to be that way. No documentation either. I do have to say once it is done once, the set up is very consistent.

If and when they open source the plugin, I hope they open source the jetty plugin as well (the jetty plugin does not work properly for 12.0.17 and later as well. Given their focus right now, I am not optimistic it will ever get fixed), so that I can find out if it is possible to make it much easier to do. The ability to simply refresh the browser to get the up-to-date client code is just so convenient for me.

On Tuesday, December 30, 2025 at 6:12:06 PM UTC-5 Craig Mitchell wrote:
I did install the Navigator extension for GWT.  That worked well, and handy if you use RPC.

The JavaScript dubugger is another "you have it but you can't use it" plugin:
Screenshot 2025-12-31 100957.png

And when they say "more features", they really mean "all the features".  😆

On Wednesday, 31 December 2025 at 9:36:09 am UTC+11 Craig Mitchell wrote:
Thanks Khun.  That looks way too hard!  I think I'll stick with GWT Maven Plugin.  🙂

Turns out, the IntelliJ GWT plugin installs, but once I go back to see what's happening, I see this:
Untitled.png

So, IntelliJ actually isn't letting me use it.   IntelliJ really should filter it out when searching, or at least say it won't work.

On Wednesday, 31 December 2025 at 2:55:23 am UTC+11 Khun Yee Fung wrote:
I use the GWT plugin to run my GWT projects all the time. It is useful for me because if I need to modify the client side code that is not used by the server side, I can simply modify it and then refresh the browser to get the up-to-date client code. This is especially nice when I am adjusting the CSS and the look-and-feel. To get the CSS automatically refreshed, it has to be injected somehow (I use StyleInjector.inject(), very nice to switch to light/dark mode and back with CSS variables). It can't be in a file. If it is in a file, then both jetty and GWT have to be re-run to get any changes in the CSS file. I guess the CSS file is considered to be on the server side, served by jetty.

I also use the Jetty plugin to run the server side. Together, I can run my GWT projects inside Intellij.

If you are interested, I have an article on Medium on how to run the whole thing with jetty 12.0 (https://medium.com/programming-is-life/how-to-run-jetty-12-and-gwt-inside-intellij-4a5e134bc397).

I don't use the JS debugger.

On Tuesday, December 30, 2025 at 10:03:41 AM UTC-5 Jens wrote:
I use IntelliJ Ultimate and thus also using the GWT plugin. I don't use it to run GWT but instead use it for the enhanced code navigation, error checks, auto completion, etc.. But as far as I know you can only use it if you pay for Ultimate. However Jetbrains said in an issue that supporting the GWT plugin isn't priority anymore and they consider making it open source. I guess they have some metrics and the GWT plugin isn't used often enough these days.

The JS debugger is ok, basically what you have in Chrome you then have in IntelliJ. I used it a few times but it annoyed me to always switch between browser and IDE if you put some breakpoints here and there and have to trigger them using the app UI in the browser. If I remember correctly the main benefit from debugging via IntelliJ was that you could navigate code more easily and thus peek at method implementations without actually entering them with the debugger. In the browser you cannot "click into" a method implementation while debugging as you only see a sourcemapped version of the original Java code.

-- 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 visit https://groups.google.com/d/msgid/google-web-toolkit/df1a88fe-70c6-4830-a964-e41ad429ce3an%40googlegroups.com.

Re: AI agents

What is your goal? AI agents running locally are usually a security nightmare (data deletion, secret exfiltration via prompt injection) so you have two choices:

1.) babysit them all the time and review, understand and confirm any command the agent wants to execute. Otherwise it might delete your drive accidentally and feels really sorry about it or it reads an untrusted website with some prompt injection sections which causes the model to do something totally different. As a middleground you can allow read/search commands by default but still review everything else.

2.) Run the agent autonomously in a secure environment to protect your local data. This can be a local VM, a local docker container (e.g. use devcontainers for development in general or just run the agent in a container) or an OS provided sandbox mechanism. Then you make only the folders accessible to the environment (and thus the AI agent) which are required. If your agent should use the internet for research then you must control network requests (e.g. allowed domains).

Depending on the code size and the task complexity an AI agent is relatively slow as it does a lot of research in the code base first before implementing stuff. So if you work on a laptop it might be annoying to wait for the agent to complete. So the last option is using agents in the cloud which also solves the security issue for your local data as the cloud solutions usually must clone your repository from somewhere.

-- J.

Tim Macpherson schrieb am Dienstag, 30. Dezember 2025 um 20:25:14 UTC+1:


 Following on from a recent post about AI, I  use basic chatgpt or Gemini. Should I be using AI agents such as Claude Code, OpenAI's Codex, etc ?  My current AI usage is ok for specifics but awful at remembering things.

--
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 visit https://groups.google.com/d/msgid/google-web-toolkit/9585ff0f-015e-4344-931f-6610ae632644n%40googlegroups.com.

Re: AI agents

What is your goal? AI agents running locally are usually a security nightmare (data deletion, secret exfiltration via prompt injection) so you have two choices:

1.) babysit them all the time and review, understand and confirm any command the agent wants to execute. Otherwise it might delete your drive accidentally and feels really sorry about it or it reads an untrusted website with some prompt injection sections which causes the model to do something totally different. As a middleground you can allow read/search commands by default but still review everything else.

2.) Run the agent autonomously in a secure environment to protect your local data. This can be a local VM, a local docker container (e.g. use devcontainers for development in general or just run the agent in a container) or an OS provided sandbox mechanism. Then you make only the folders accessible to the environment (and thus the AI agent) which are required. If your agent should use the internet for research then you must control network requests (e.g. allowed domains).

Depending on the code size and the task complexity an AI agent is relatively slow as it does a lot of research in the code base first before implementing stuff. So if you work on a laptop it might be annoying to wait for the agent to complete. So the last option is using agents in the cloud which also solves the security issue for your local data as the cloud solutions usually must clone your repository from somewhere.

-- J.

Tim Macpherson schrieb am Dienstag, 30. Dezember 2025 um 20:25:14 UTC+1:


 Following on from a recent post about AI, I  use basic chatgpt or Gemini. Should I be using AI agents such as Claude Code, OpenAI's Codex, etc ?  My current AI usage is ok for specifics but awful at remembering things.

--
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 visit https://groups.google.com/d/msgid/google-web-toolkit/9585ff0f-015e-4344-931f-6610ae632644n%40googlegroups.com.

Re: GWT and IntelliJ IDEA as a single, unified product

Yeah, for whatever reason, it is not easy to set up properly to run GWT inside IntelliJ. No idea why it has to be that way. No documentation either. I do have to say once it is done once, the set up is very consistent.

If and when they open source the plugin, I hope they open source the jetty plugin as well (the jetty plugin does not work properly for 12.0.17 and later as well. Given their focus right now, I am not optimistic it will ever get fixed), so that I can find out if it is possible to make it much easier to do. The ability to simply refresh the browser to get the up-to-date client code is just so convenient for me.

On Tuesday, December 30, 2025 at 6:12:06 PM UTC-5 Craig Mitchell wrote:
I did install the Navigator extension for GWT.  That worked well, and handy if you use RPC.

The JavaScript dubugger is another "you have it but you can't use it" plugin:
Screenshot 2025-12-31 100957.png

And when they say "more features", they really mean "all the features".  😆

On Wednesday, 31 December 2025 at 9:36:09 am UTC+11 Craig Mitchell wrote:
Thanks Khun.  That looks way too hard!  I think I'll stick with GWT Maven Plugin.  🙂

Turns out, the IntelliJ GWT plugin installs, but once I go back to see what's happening, I see this:
Untitled.png

So, IntelliJ actually isn't letting me use it.   IntelliJ really should filter it out when searching, or at least say it won't work.

On Wednesday, 31 December 2025 at 2:55:23 am UTC+11 Khun Yee Fung wrote:
I use the GWT plugin to run my GWT projects all the time. It is useful for me because if I need to modify the client side code that is not used by the server side, I can simply modify it and then refresh the browser to get the up-to-date client code. This is especially nice when I am adjusting the CSS and the look-and-feel. To get the CSS automatically refreshed, it has to be injected somehow (I use StyleInjector.inject(), very nice to switch to light/dark mode and back with CSS variables). It can't be in a file. If it is in a file, then both jetty and GWT have to be re-run to get any changes in the CSS file. I guess the CSS file is considered to be on the server side, served by jetty.

I also use the Jetty plugin to run the server side. Together, I can run my GWT projects inside Intellij.

If you are interested, I have an article on Medium on how to run the whole thing with jetty 12.0 (https://medium.com/programming-is-life/how-to-run-jetty-12-and-gwt-inside-intellij-4a5e134bc397).

I don't use the JS debugger.

On Tuesday, December 30, 2025 at 10:03:41 AM UTC-5 Jens wrote:
I use IntelliJ Ultimate and thus also using the GWT plugin. I don't use it to run GWT but instead use it for the enhanced code navigation, error checks, auto completion, etc.. But as far as I know you can only use it if you pay for Ultimate. However Jetbrains said in an issue that supporting the GWT plugin isn't priority anymore and they consider making it open source. I guess they have some metrics and the GWT plugin isn't used often enough these days.

The JS debugger is ok, basically what you have in Chrome you then have in IntelliJ. I used it a few times but it annoyed me to always switch between browser and IDE if you put some breakpoints here and there and have to trigger them using the app UI in the browser. If I remember correctly the main benefit from debugging via IntelliJ was that you could navigate code more easily and thus peek at method implementations without actually entering them with the debugger. In the browser you cannot "click into" a method implementation while debugging as you only see a sourcemapped version of the original Java code.

-- 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 visit https://groups.google.com/d/msgid/google-web-toolkit/48a120e0-ac00-48c3-8a22-8c956703cd63n%40googlegroups.com.

Tuesday, December 30, 2025

Re: GWT and IntelliJ IDEA as a single, unified product

I did install the Navigator extension for GWT.  That worked well, and handy if you use RPC.

The JavaScript dubugger is another "you have it but you can't use it" plugin:
Screenshot 2025-12-31 100957.png

And when they say "more features", they really mean "all the features".  😆

On Wednesday, 31 December 2025 at 9:36:09 am UTC+11 Craig Mitchell wrote:
Thanks Khun.  That looks way too hard!  I think I'll stick with GWT Maven Plugin.  🙂

Turns out, the IntelliJ GWT plugin installs, but once I go back to see what's happening, I see this:
Untitled.png

So, IntelliJ actually isn't letting me use it.   IntelliJ really should filter it out when searching, or at least say it won't work.

On Wednesday, 31 December 2025 at 2:55:23 am UTC+11 Khun Yee Fung wrote:
I use the GWT plugin to run my GWT projects all the time. It is useful for me because if I need to modify the client side code that is not used by the server side, I can simply modify it and then refresh the browser to get the up-to-date client code. This is especially nice when I am adjusting the CSS and the look-and-feel. To get the CSS automatically refreshed, it has to be injected somehow (I use StyleInjector.inject(), very nice to switch to light/dark mode and back with CSS variables). It can't be in a file. If it is in a file, then both jetty and GWT have to be re-run to get any changes in the CSS file. I guess the CSS file is considered to be on the server side, served by jetty.

I also use the Jetty plugin to run the server side. Together, I can run my GWT projects inside Intellij.

If you are interested, I have an article on Medium on how to run the whole thing with jetty 12.0 (https://medium.com/programming-is-life/how-to-run-jetty-12-and-gwt-inside-intellij-4a5e134bc397).

I don't use the JS debugger.

On Tuesday, December 30, 2025 at 10:03:41 AM UTC-5 Jens wrote:
I use IntelliJ Ultimate and thus also using the GWT plugin. I don't use it to run GWT but instead use it for the enhanced code navigation, error checks, auto completion, etc.. But as far as I know you can only use it if you pay for Ultimate. However Jetbrains said in an issue that supporting the GWT plugin isn't priority anymore and they consider making it open source. I guess they have some metrics and the GWT plugin isn't used often enough these days.

The JS debugger is ok, basically what you have in Chrome you then have in IntelliJ. I used it a few times but it annoyed me to always switch between browser and IDE if you put some breakpoints here and there and have to trigger them using the app UI in the browser. If I remember correctly the main benefit from debugging via IntelliJ was that you could navigate code more easily and thus peek at method implementations without actually entering them with the debugger. In the browser you cannot "click into" a method implementation while debugging as you only see a sourcemapped version of the original Java code.

-- 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 visit https://groups.google.com/d/msgid/google-web-toolkit/2da3e3da-b90d-4c12-bf64-394bacf07669n%40googlegroups.com.

Re: GWT and IntelliJ IDEA as a single, unified product

Thanks Khun.  That looks way too hard!  I think I'll stick with GWT Maven Plugin.  🙂

Turns out, the IntelliJ GWT plugin installs, but once I go back to see what's happening, I see this:
Untitled.png

So, IntelliJ actually isn't letting me use it.   IntelliJ really should filter it out when searching, or at least say it won't work.

On Wednesday, 31 December 2025 at 2:55:23 am UTC+11 Khun Yee Fung wrote:
I use the GWT plugin to run my GWT projects all the time. It is useful for me because if I need to modify the client side code that is not used by the server side, I can simply modify it and then refresh the browser to get the up-to-date client code. This is especially nice when I am adjusting the CSS and the look-and-feel. To get the CSS automatically refreshed, it has to be injected somehow (I use StyleInjector.inject(), very nice to switch to light/dark mode and back with CSS variables). It can't be in a file. If it is in a file, then both jetty and GWT have to be re-run to get any changes in the CSS file. I guess the CSS file is considered to be on the server side, served by jetty.

I also use the Jetty plugin to run the server side. Together, I can run my GWT projects inside Intellij.

If you are interested, I have an article on Medium on how to run the whole thing with jetty 12.0 (https://medium.com/programming-is-life/how-to-run-jetty-12-and-gwt-inside-intellij-4a5e134bc397).

I don't use the JS debugger.

On Tuesday, December 30, 2025 at 10:03:41 AM UTC-5 Jens wrote:
I use IntelliJ Ultimate and thus also using the GWT plugin. I don't use it to run GWT but instead use it for the enhanced code navigation, error checks, auto completion, etc.. But as far as I know you can only use it if you pay for Ultimate. However Jetbrains said in an issue that supporting the GWT plugin isn't priority anymore and they consider making it open source. I guess they have some metrics and the GWT plugin isn't used often enough these days.

The JS debugger is ok, basically what you have in Chrome you then have in IntelliJ. I used it a few times but it annoyed me to always switch between browser and IDE if you put some breakpoints here and there and have to trigger them using the app UI in the browser. If I remember correctly the main benefit from debugging via IntelliJ was that you could navigate code more easily and thus peek at method implementations without actually entering them with the debugger. In the browser you cannot "click into" a method implementation while debugging as you only see a sourcemapped version of the original Java code.

-- 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 visit https://groups.google.com/d/msgid/google-web-toolkit/c1180f1d-e331-4a53-855c-a7e06b80f153n%40googlegroups.com.

AI agents



 Following on from a recent post about AI, I  use basic chatgpt or Gemini. Should I be using AI agents such as Claude Code, OpenAI's Codex, etc ?  My current AI usage is ok for specifics but awful at remembering things.

--
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 visit https://groups.google.com/d/msgid/google-web-toolkit/978958206.7690219.1767122643149%40mail.yahoo.com.

Re: GWT and IntelliJ IDEA as a single, unified product

I use the GWT plugin to run my GWT projects all the time. It is useful for me because if I need to modify the client side code that is not used by the server side, I can simply modify it and then refresh the browser to get the up-to-date client code. This is especially nice when I am adjusting the CSS and the look-and-feel. To get the CSS automatically refreshed, it has to be injected somehow (I use StyleInjector.inject(), very nice to switch to light/dark mode and back with CSS variables). It can't be in a file. If it is in a file, then both jetty and GWT have to be re-run to get any changes in the CSS file. I guess the CSS file is considered to be on the server side, served by jetty.

I also use the Jetty plugin to run the server side. Together, I can run my GWT projects inside Intellij.

If you are interested, I have an article on Medium on how to run the whole thing with jetty 12.0 (https://medium.com/programming-is-life/how-to-run-jetty-12-and-gwt-inside-intellij-4a5e134bc397).

I don't use the JS debugger.

On Tuesday, December 30, 2025 at 10:03:41 AM UTC-5 Jens wrote:
I use IntelliJ Ultimate and thus also using the GWT plugin. I don't use it to run GWT but instead use it for the enhanced code navigation, error checks, auto completion, etc.. But as far as I know you can only use it if you pay for Ultimate. However Jetbrains said in an issue that supporting the GWT plugin isn't priority anymore and they consider making it open source. I guess they have some metrics and the GWT plugin isn't used often enough these days.

The JS debugger is ok, basically what you have in Chrome you then have in IntelliJ. I used it a few times but it annoyed me to always switch between browser and IDE if you put some breakpoints here and there and have to trigger them using the app UI in the browser. If I remember correctly the main benefit from debugging via IntelliJ was that you could navigate code more easily and thus peek at method implementations without actually entering them with the debugger. In the browser you cannot "click into" a method implementation while debugging as you only see a sourcemapped version of the original Java code.

-- 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 visit https://groups.google.com/d/msgid/google-web-toolkit/6a8d494f-8a04-474e-a931-dae07424b4dfn%40googlegroups.com.

Re: GWT and IntelliJ IDEA as a single, unified product

I use IntelliJ Ultimate and thus also using the GWT plugin. I don't use it to run GWT but instead use it for the enhanced code navigation, error checks, auto completion, etc.. But as far as I know you can only use it if you pay for Ultimate. However Jetbrains said in an issue that supporting the GWT plugin isn't priority anymore and they consider making it open source. I guess they have some metrics and the GWT plugin isn't used often enough these days.

The JS debugger is ok, basically what you have in Chrome you then have in IntelliJ. I used it a few times but it annoyed me to always switch between browser and IDE if you put some breakpoints here and there and have to trigger them using the app UI in the browser. If I remember correctly the main benefit from debugging via IntelliJ was that you could navigate code more easily and thus peek at method implementations without actually entering them with the debugger. In the browser you cannot "click into" a method implementation while debugging as you only see a sourcemapped version of the original Java code.

-- 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 visit https://groups.google.com/d/msgid/google-web-toolkit/d06d69f2-ae8d-45ca-8e0e-5d0d4e6ce1f8n%40googlegroups.com.

Monday, December 29, 2025

GWT and IntelliJ IDEA as a single, unified product

Previously, I was using the free IntelliJ Community Edition.  However, now IntelliJ IDEA is a single, unified product (with an upgrade option to Ultimate).

Before, with the Community Edition, there was no GWT plugin available.  Now I see these:
Untitled.png

I also see JavaScript debugger plugins that never showed up before.

Do people use these?  Any other plugins recommended for 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 visit https://groups.google.com/d/msgid/google-web-toolkit/e2f182e5-d7e5-403f-a67b-65812b3a68f0n%40googlegroups.com.

Re: J2CL plugin question

Correct.  I was assuming, as you have GWT, you would compile the JS with GWT, and then you would give the compiled JS to the people that want to use it (and don't have GWT).  ...but I shouldn't assume.

On Monday, 29 December 2025 at 2:14:06 am UTC+11 Tim Macpherson wrote:
Thanks for your responses, GraalVM WASM is something to keep in mind but easiest to use teavm for now, basic plumbing is straightforward. Unfortunately Craig afaik to generate js from a GWT lib it has to be compiled in a GWT app.


On Sun, Dec 28, 2025 at 4:59 AM, Dmitrii Tikhomirov

I am the person who continues to maintain the J2CL Maven plugin. If you need to build a JavaScript application and run it in a JavaScript environment, you can look at how this is implemented here (https://github.com/apache/incubator-kie-tools/tree/main/packages/serverless-workflow-diagram-editor) (this is an application that uses a Jakarta-like CDI framework, along with JSON/YAML marshallers).

It looks like the Google team is finishing work on adding support for records, so I will be updating the entire stack soon to enable these features

At the moment, GWT is noticeably more stable than J2CL, so I would recommend taking another look at it. However, if you really do not want to go that route, you could also consider running a WASM application using GraalVM.


On Dec 27, 2025, at 1:55 PM, Craig Mitchell <ma...@craig-mitchell.com> wrote:

Isn't that what <packaging>gwt-lib</packagingis designed for in GWT? ( https://tbroyer.github.io/gwt-maven-plugin/usage.html )

Unless you're not running on a Java backend.  So you'd need a npm package created somehow.  Not sure how to do that.

On Sunday, 28 December 2025 at 8:33:42 am UTC+11 Tim Macpherson wrote:
I want to provide client js that is logic only, no UI,  I write it in  java because the tooling in typescript is not good enough. I need to release this as pure js, it's that simple


On Sat, Dec 27, 2025 at 8:59 PM, Colin Alworth
It still isnt quite clear to me what you're asking for - can you be more precise?

That is, if you're writing d3 js code, the best way to make that available to others is JS. Each Java-to-JS compiler first assumes that the next developer is using Java, but each makes their own assumptions about how to map JS ideas to Java, so there isn't a one-size-fits-all approach. JsInterop types at least are mostly the same for both J2CL and GWT - but if you have a user who doesn't use GWT, they probably also don't use Java in the client at all?

On Saturday, December 27, 2025 at 1:34:46 PM UTC-6 tim_mac...@yahoo.co.uk wrote:
GWT works for me and I will always be using it in my own stack while it's maintained, but I need to make some of my d3 js code and client java surrounding it available for others who don't use GWT. Teavm is maybe best tool for that.


On Sat, Dec 27, 2025 at 7:17 PM, Colin Alworth
"Best" is hard to define - what are your requirements?

If GWT doesn't fit your use cases, it seems unlikely that J2CL will - can you elaborate on what about GWT doesn't work for you? If anything, I've found J2CL to be more picky than GWT in just about every way - more limited options for emulation, more requirements for JsInterop, no JSNI/Generators, smaller ecosystem and prior art for customizing the build (whether using the maven plugin or the official Bazel build tooling).

It does tend to produce slightly smaller and slightly faster output, and does offer better integration with compiling plain JS sources in the same build (with the requirement that this JS must be built to be safe to compile by closure-compiler in ADVANCED mode).

For a generally bigger set of JRE emulation (and much larger output sizes), consider TeaVM or CheerpJ - both have their strengths. I don't have a lot of experience with either, but I do find that for math-heavy apps, TeaVM does a great job getting even better performance in some cases than GWT or J2CL, and produces output much more quickly. It tends to do much more poorly on string heavy (e.g. DOM manipulation). CheerpJ I have almost no experience with, but excels at supporting nearly any JRE-compatible code, and finding a way to make it work regardless of whether the browser is a good place to run it. This is a huge advantage for "it doesn't matter as long as it can run" cases - more and more it can be possible to run a JS app that is hundreds of times what would have been acceptable a few years ago.

On Saturday, December 27, 2025 at 12:08:38 PM UTC-6 tim_mac...@yahoo.co.uk wrote:
Can someone advise if it's the best tool for building js code from pure logic front end java ? I need to enable usage for those not using GWT. 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-tool...@googlegroups.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-tool...@googlegroups.com.
To view this discussion visit

--
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-tool...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/google-web-toolkit/08fdb818-510e-4674-9e67-e48f96959cf0n%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-tool...@googlegroups.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 visit
https://groups.google.com/d/msgid/google-web-toolkit/c357b43b-8329-4799-8805-850b27e0245en%40googlegroups.com
.

Sunday, December 28, 2025

Re: GWT 2.11 – How to remove unsafe-eval and unsafe-inline CSP vulnerabilities without breaking the app

Hello everyone,

I recently upgraded an existing GWT application to GWT 2.12 as part of an effort to make it CSP-compliant and using CrossSiteIframeLinker as suggested, I wanted to specifically ask about GXT (Ext GWT).

Context
  • Application upgraded to GWT 2.12

  • Using CrossSiteIframeLinker

  • Strict CSP without unsafe-eval

  • Runtime error observed:

    (EvalError): Evaluating a string as JavaScript violates the following Content Security Policy directive

From investigation and stack traces, the issue appears to originate from GXT internals, particularly during runtime behavior.

Question

Do we have any recommendations or supported approaches to use GXT in a CSP-compliant setup without unsafe-eval?

Specifically:

  1. Are there CSP-safe versions of GXT that avoid eval() entirely?

  2. Are there known configuration flags or patterns in GXT to disable eval-based behavior?

Any guidance, experience, or official direction regarding GXT and CSP would be greatly appreciated.

Best regards,
Garima Jain


On Wednesday, 3 December 2025 at 13:58:16 UTC+5:30 David Nouls wrote:
We are using a custom Linker with gwt 2.12 to be able to work with CSP.
 
The linker extends the CrossSiteIframelinker and overrides a few methods.
 
shouldInstallCode always returns false
 
getHostedFilename returns "" which disables the generation of *.devmode.js files (not needed for us)
 
getJsProcessMetas returns "com/google/gwt/core/ext/linker/impl/processMetasNull.js" since we don't use meta tag to configure the app
 
 
On Dec 3, 2025 at 08:16 +0100, Garima Jain <garim...@gmail.com>, wrote:

Hi everyone,

I'm working on a GWT 2.11.0 application and trying to tighten our Content Security Policy (CSP) by removing the following insecure directives:

  • unsafe-eval

  • unsafe-inline

When I try removing unsafe-eval, the application starts throwing browser console errors like:

com.google.gwt.core.client.JavaScriptException: (EvalError) : Evaluating a string as JavaScript violates the following Content Security Policy directive because 'unsafe-eval' is not an allowed source of script: script-src 'self' 'unsafe-inline'".

When I then try removing unsafe-inline, I receive additional CSP errors such as:

Executing inline script violates the CSP directive 'script-src 'self' 'unsafe-eval'' A nonce or hash is required to enable inline execution. Running javascript: URL violates CSP directive

It looks like both the GWT-generated scripts and some parts of the UI rely on inline scripts and eval-like operations.
I'm trying to find out if anyone has successfully removed both:

  • unsafe-eval

  • unsafe-inline

in a GWT 2.11+ application without breaking functionality.

I'm looking for guidance from anyone who has successfully removed both unsafe-eval and unsafe-inline in a GWT 2.11+ application, including any known workarounds, compiler options, migration steps, or advice on handling inline scripts or eval usage in GWT to achieve strict CSP compliance.

--
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-tool...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/google-web-toolkit/8edc06b3-1c3b-49dc-9929-50a7c94fe7c7n%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 visit https://groups.google.com/d/msgid/google-web-toolkit/b26c6c91-e0e5-477e-8a46-f151fba033afn%40googlegroups.com.

Re: J2CL plugin question

Correct.  I was assuming, as you have GWT, you would compile the JS with GWT, and then you would give the compiled JS to the people that want to use it (and don't have GWT).  ...but I shouldn't assume.

On Monday, 29 December 2025 at 2:14:06 am UTC+11 Tim Macpherson wrote:
Thanks for your responses, GraalVM WASM is something to keep in mind but easiest to use teavm for now, basic plumbing is straightforward. Unfortunately Craig afaik to generate js from a GWT lib it has to be compiled in a GWT app.


On Sun, Dec 28, 2025 at 4:59 AM, Dmitrii Tikhomirov

I am the person who continues to maintain the J2CL Maven plugin. If you need to build a JavaScript application and run it in a JavaScript environment, you can look at how this is implemented here (https://github.com/apache/incubator-kie-tools/tree/main/packages/serverless-workflow-diagram-editor) (this is an application that uses a Jakarta-like CDI framework, along with JSON/YAML marshallers).

It looks like the Google team is finishing work on adding support for records, so I will be updating the entire stack soon to enable these features

At the moment, GWT is noticeably more stable than J2CL, so I would recommend taking another look at it. However, if you really do not want to go that route, you could also consider running a WASM application using GraalVM.


On Dec 27, 2025, at 1:55 PM, Craig Mitchell <ma...@craig-mitchell.com> wrote:

Isn't that what <packaging>gwt-lib</packagingis designed for in GWT? ( https://tbroyer.github.io/gwt-maven-plugin/usage.html )

Unless you're not running on a Java backend.  So you'd need a npm package created somehow.  Not sure how to do that.

On Sunday, 28 December 2025 at 8:33:42 am UTC+11 Tim Macpherson wrote:
I want to provide client js that is logic only, no UI,  I write it in  java because the tooling in typescript is not good enough. I need to release this as pure js, it's that simple


On Sat, Dec 27, 2025 at 8:59 PM, Colin Alworth
It still isnt quite clear to me what you're asking for - can you be more precise?

That is, if you're writing d3 js code, the best way to make that available to others is JS. Each Java-to-JS compiler first assumes that the next developer is using Java, but each makes their own assumptions about how to map JS ideas to Java, so there isn't a one-size-fits-all approach. JsInterop types at least are mostly the same for both J2CL and GWT - but if you have a user who doesn't use GWT, they probably also don't use Java in the client at all?

On Saturday, December 27, 2025 at 1:34:46 PM UTC-6 tim_mac...@yahoo.co.uk wrote:
GWT works for me and I will always be using it in my own stack while it's maintained, but I need to make some of my d3 js code and client java surrounding it available for others who don't use GWT. Teavm is maybe best tool for that.


On Sat, Dec 27, 2025 at 7:17 PM, Colin Alworth
"Best" is hard to define - what are your requirements?

If GWT doesn't fit your use cases, it seems unlikely that J2CL will - can you elaborate on what about GWT doesn't work for you? If anything, I've found J2CL to be more picky than GWT in just about every way - more limited options for emulation, more requirements for JsInterop, no JSNI/Generators, smaller ecosystem and prior art for customizing the build (whether using the maven plugin or the official Bazel build tooling).

It does tend to produce slightly smaller and slightly faster output, and does offer better integration with compiling plain JS sources in the same build (with the requirement that this JS must be built to be safe to compile by closure-compiler in ADVANCED mode).

For a generally bigger set of JRE emulation (and much larger output sizes), consider TeaVM or CheerpJ - both have their strengths. I don't have a lot of experience with either, but I do find that for math-heavy apps, TeaVM does a great job getting even better performance in some cases than GWT or J2CL, and produces output much more quickly. It tends to do much more poorly on string heavy (e.g. DOM manipulation). CheerpJ I have almost no experience with, but excels at supporting nearly any JRE-compatible code, and finding a way to make it work regardless of whether the browser is a good place to run it. This is a huge advantage for "it doesn't matter as long as it can run" cases - more and more it can be possible to run a JS app that is hundreds of times what would have been acceptable a few years ago.

On Saturday, December 27, 2025 at 12:08:38 PM UTC-6 tim_mac...@yahoo.co.uk wrote:
Can someone advise if it's the best tool for building js code from pure logic front end java ? I need to enable usage for those not using GWT. 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-tool...@googlegroups.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-tool...@googlegroups.com.
To view this discussion visit

--
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-tool...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/google-web-toolkit/08fdb818-510e-4674-9e67-e48f96959cf0n%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-tool...@googlegroups.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 visit https://groups.google.com/d/msgid/google-web-toolkit/c357b43b-8329-4799-8805-850b27e0245en%40googlegroups.com.

Re: J2CL plugin question

I am the person who continues to maintain the J2CL Maven plugin. If you need to build a JavaScript application and run it in a JavaScript environment, you can look at how this is implemented here (https://github.com/apache/incubator-kie-tools/tree/main/packages/serverless-workflow-diagram-editor) (this is an application that uses a Jakarta-like CDI framework, along with JSON/YAML marshallers).

It looks like the Google team is finishing work on adding support for records, so I will be updating the entire stack soon to enable these features

At the moment, GWT is noticeably more stable than J2CL, so I would recommend taking another look at it. However, if you really do not want to go that route, you could also consider running a WASM application using GraalVM.


On Dec 27, 2025, at 1:55 PM, Craig Mitchell <mail@craig-mitchell.com> wrote:

Isn't that what <packaging>gwt-lib</packagingis designed for in GWT? ( https://tbroyer.github.io/gwt-maven-plugin/usage.html )

Unless you're not running on a Java backend.  So you'd need a npm package created somehow.  Not sure how to do that.

On Sunday, 28 December 2025 at 8:33:42 am UTC+11 Tim Macpherson wrote:
I want to provide client js that is logic only, no UI,  I write it in  java because the tooling in typescript is not good enough. I need to release this as pure js, it's that simple


On Sat, Dec 27, 2025 at 8:59 PM, Colin Alworth
It still isnt quite clear to me what you're asking for - can you be more precise?

That is, if you're writing d3 js code, the best way to make that available to others is JS. Each Java-to-JS compiler first assumes that the next developer is using Java, but each makes their own assumptions about how to map JS ideas to Java, so there isn't a one-size-fits-all approach. JsInterop types at least are mostly the same for both J2CL and GWT - but if you have a user who doesn't use GWT, they probably also don't use Java in the client at all?

On Saturday, December 27, 2025 at 1:34:46 PM UTC-6 tim_mac...@yahoo.co.uk wrote:
GWT works for me and I will always be using it in my own stack while it's maintained, but I need to make some of my d3 js code and client java surrounding it available for others who don't use GWT. Teavm is maybe best tool for that.


On Sat, Dec 27, 2025 at 7:17 PM, Colin Alworth
"Best" is hard to define - what are your requirements?

If GWT doesn't fit your use cases, it seems unlikely that J2CL will - can you elaborate on what about GWT doesn't work for you? If anything, I've found J2CL to be more picky than GWT in just about every way - more limited options for emulation, more requirements for JsInterop, no JSNI/Generators, smaller ecosystem and prior art for customizing the build (whether using the maven plugin or the official Bazel build tooling).

It does tend to produce slightly smaller and slightly faster output, and does offer better integration with compiling plain JS sources in the same build (with the requirement that this JS must be built to be safe to compile by closure-compiler in ADVANCED mode).

For a generally bigger set of JRE emulation (and much larger output sizes), consider TeaVM or CheerpJ - both have their strengths. I don't have a lot of experience with either, but I do find that for math-heavy apps, TeaVM does a great job getting even better performance in some cases than GWT or J2CL, and produces output much more quickly. It tends to do much more poorly on string heavy (e.g. DOM manipulation). CheerpJ I have almost no experience with, but excels at supporting nearly any JRE-compatible code, and finding a way to make it work regardless of whether the browser is a good place to run it. This is a huge advantage for "it doesn't matter as long as it can run" cases - more and more it can be possible to run a JS app that is hundreds of times what would have been acceptable a few years ago.

On Saturday, December 27, 2025 at 12:08:38 PM UTC-6 tim_mac...@yahoo.co.uk wrote:
Can someone advise if it's the best tool for building js code from pure logic front end java ? I need to enable usage for those not using GWT. 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-tool...@googlegroups.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-tool...@googlegroups.com.
To view this discussion visit

--
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 visit https://groups.google.com/d/msgid/google-web-toolkit/08fdb818-510e-4674-9e67-e48f96959cf0n%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 visit https://groups.google.com/d/msgid/google-web-toolkit/88ED6B60-E3C5-4E97-B82B-7B057F0AADE1%40gmail.com.

Saturday, December 27, 2025

Re: J2CL plugin question

I am the person who continues to maintain the J2CL Maven plugin. If you need to build a JavaScript application and run it in a JavaScript environment, you can look at how this is implemented here (https://github.com/apache/incubator-kie-tools/tree/main/packages/serverless-workflow-diagram-editor) (this is an application that uses a Jakarta-like CDI framework, along with JSON/YAML marshallers).

It looks like the Google team is finishing work on adding support for records, so I will be updating the entire stack soon to enable these features

At the moment, GWT is noticeably more stable than J2CL, so I would recommend taking another look at it. However, if you really do not want to go that route, you could also consider running a WASM application using GraalVM.


On Dec 27, 2025, at 1:55 PM, Craig Mitchell <mail@craig-mitchell.com> wrote:

Isn't that what <packaging>gwt-lib</packagingis designed for in GWT? ( https://tbroyer.github.io/gwt-maven-plugin/usage.html )

Unless you're not running on a Java backend.  So you'd need a npm package created somehow.  Not sure how to do that.

On Sunday, 28 December 2025 at 8:33:42 am UTC+11 Tim Macpherson wrote:
I want to provide client js that is logic only, no UI,  I write it in  java because the tooling in typescript is not good enough. I need to release this as pure js, it's that simple


On Sat, Dec 27, 2025 at 8:59 PM, Colin Alworth
It still isnt quite clear to me what you're asking for - can you be more precise?

That is, if you're writing d3 js code, the best way to make that available to others is JS. Each Java-to-JS compiler first assumes that the next developer is using Java, but each makes their own assumptions about how to map JS ideas to Java, so there isn't a one-size-fits-all approach. JsInterop types at least are mostly the same for both J2CL and GWT - but if you have a user who doesn't use GWT, they probably also don't use Java in the client at all?

On Saturday, December 27, 2025 at 1:34:46 PM UTC-6 tim_mac...@yahoo.co.uk wrote:
GWT works for me and I will always be using it in my own stack while it's maintained, but I need to make some of my d3 js code and client java surrounding it available for others who don't use GWT. Teavm is maybe best tool for that.


On Sat, Dec 27, 2025 at 7:17 PM, Colin Alworth
"Best" is hard to define - what are your requirements?

If GWT doesn't fit your use cases, it seems unlikely that J2CL will - can you elaborate on what about GWT doesn't work for you? If anything, I've found J2CL to be more picky than GWT in just about every way - more limited options for emulation, more requirements for JsInterop, no JSNI/Generators, smaller ecosystem and prior art for customizing the build (whether using the maven plugin or the official Bazel build tooling).

It does tend to produce slightly smaller and slightly faster output, and does offer better integration with compiling plain JS sources in the same build (with the requirement that this JS must be built to be safe to compile by closure-compiler in ADVANCED mode).

For a generally bigger set of JRE emulation (and much larger output sizes), consider TeaVM or CheerpJ - both have their strengths. I don't have a lot of experience with either, but I do find that for math-heavy apps, TeaVM does a great job getting even better performance in some cases than GWT or J2CL, and produces output much more quickly. It tends to do much more poorly on string heavy (e.g. DOM manipulation). CheerpJ I have almost no experience with, but excels at supporting nearly any JRE-compatible code, and finding a way to make it work regardless of whether the browser is a good place to run it. This is a huge advantage for "it doesn't matter as long as it can run" cases - more and more it can be possible to run a JS app that is hundreds of times what would have been acceptable a few years ago.

On Saturday, December 27, 2025 at 12:08:38 PM UTC-6 tim_mac...@yahoo.co.uk wrote:
Can someone advise if it's the best tool for building js code from pure logic front end java ? I need to enable usage for those not using GWT. 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-tool...@googlegroups.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-tool...@googlegroups.com.
To view this discussion visit

--
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 visit https://groups.google.com/d/msgid/google-web-toolkit/08fdb818-510e-4674-9e67-e48f96959cf0n%40googlegroups.com.