many thanks @Colin and @Jens

I'm currently testing a *partial migration* of my GWT application to *Java 
11 and GWT 2.10*. To get a better idea of the work involved, I tried 
compiling just one module of the project.

Here’s what I’ve done so far:

   - 
   
   Patched and recompiled gxt-2.3.1a to make it compatible with GWT 2.10  
   (  
   
https://groups.google.com/g/google-web-toolkit/c/If897MPqvw0/m/bSWnmuz9BwAJ?pli=1
   =
   - 
   
    Installed the modified JAR locally in my Maven repository
   - 
   
    Tried compiling a single module  — but run into several issues
   
 Main issues I’m facing: 
   
   - 
   
   *Component (GXT) is no longer compatible with Widget (GWT)* ===> breaks 
   all UI layouts
   - 
   
   Many GXT-based custom components like 
   com.extjs.gxt.ui.client.widget.form.TextField, LabelField, etc. are *not 
   compatible anymore*
   - 
   
   *Stricter typing in Java 11 + GWT 2.10* ===> leads to many 
   generic/interface mismatches
   - 
   
   Several dependencies also need to be replaced or upgraded
   
My question: 

Given that the application is *heavily dependent on GXT 2.3.1a*, especially 
for the client-side (grids, forms, fields, etc.), *Is it worth trying to 
patch and adapt GXT further?*
Or should I progressively migrate everything to *native GWT widgets* (like 
Composite, DataGrid,  etc.)?

Has anyone gone through a similar migration? *Are all these issues common* 
when trying to use a patched GXT with GWT 2.10?

Any advice or shared experience would be super appreciated!

Thanks a lot 
wejden

Le dimanche 23 mars 2025 à 20:26:32 UTC+1, Colin Alworth a écrit :

> #1 I think Jens covers it well - something is almost certainly wrong with 
> your modified jar or how the classpath is built.
>
> For #2, the "-server" argument lets you specify a 
> com.google.gwt.core.ext.ServletContainerLauncher type, so 
> org.eclipse.jetty.server.Server will not suffice. If you do not specify 
> one, as of GWT 2.12 the old default of 
> com.google.gwt.dev.shell.jetty.JettyLauncher (using a wrapped Jetty 9) is 
> still used, which is what it sounds like you want anyway. This will change 
> in the future, see https://github.com/gwtproject/gwt/issues/10057 and 
> linked issues, If you're interested in something newer than the default 
> Jetty 9, also see 
> https://groups.google.com/g/google-web-toolkit/c/3dSoHpHD5jY/m/faAeQeJ-AwAJ 
> and 
> https://groups.google.com/g/google-web-toolkit-contributors/c/7jvGVaiSUdI.
>
> Note that Jetty 9 sometimes doesn't behave nicely when it tries to scan 
> your classpath - if it finds something that it can't understand while 
> looking for annotations, it will break. This will result in an error 
> something like
> java.lang.IllegalArgumentException: Unsupported class file major version 64
> at org.objectweb.asm.ClassReader.<init>(ClassReader.java:199)
> at org.objectweb.asm.ClassReader.<init>(ClassReader.java:180)
> at org.objectweb.asm.ClassReader.<init>(ClassReader.java:166)
> at org.objectweb.asm.ClassReader.<init>(ClassReader.java:287)
> at 
> org.eclipse.jetty.annotations.AnnotationParser.scanClass(AnnotationParser.java:932)
> at 
> org.eclipse.jetty.annotations.AnnotationParser.parseDir(AnnotationParser.java:734)
> ... 6 more
>
> The workaround discussed at 
> https://github.com/gwtproject/gwt/issues/9433#issuecomment-250104877 may 
> help here.
>
> #3, nothing special should be required - besides the wrong instance passed 
> to -server, what errors are you seeing?
>
> Re your note: you should not need to deploy a complete war to tomcat for 
> local development - the best way to think about this is "If I wasn't using 
> GWT, how would I want to debug my server", then amend that slightly to 
> permit SDM to change files in the same sort of way that you would either 
> manually edit JS/HTML or you'd use a tool like npm/etc.
>
> On Sunday, March 23, 2025 at 3:23:07 AM UTC-5 [email protected] wrote:
>
>> Hello!  
>>
>> I am following your conversation because i am working on same issues :    
>>
>> Migrating GWT/GXT project to GWT 2.10 + Java 11 + Jetty 9
>>
>> *Initial Context on Legacy project using:*
>>
>>    - 
>>    
>>    GWT 2.8.2
>>    - 
>>    
>>    GXT 2.3.1a-gwt22
>>    - 
>>    
>>    Embedded Jetty
>>    - 
>>    
>>    Java 8
>>    
>> *Migration Goal*
>>
>> Update the project to use:
>>
>>    - 
>>    
>>    Java 11
>>    - 
>>    
>>    GWT 2.10.1
>>    - 
>>    
>>    Jetty 9
>>    - 
>>    
>>    A custom-built GXT version compatible with GWT 2.10
>>    
>> *Steps Already Completed *
>>
>> 1. GXT Recompilation and Installation
>>
>>    - 
>>    
>>    Cloned the GXT 2.3.1a sources.
>>    - 
>>    
>>    Adapted the code to compile with GWT 2.10.1.
>>    - 
>>    
>>    Successfully built gxt-main-2.3.1a-gwt2.10.jar.
>>    - 
>>    
>>    Installed it locally using:
>>    
>>
>> 2. Maven Configuration Updated
>>
>>    - 
>>    
>>    Switched to Java 11 using maven.compiler.source and target.
>>    - 
>>    
>>    GWT updated to version 2.10.1.
>>    - 
>>    
>>    Added the locally installed GXT dependency
>>    
>> 3. GWT Module Inheritance Added
>> 4. GXT Verification
>>
>>    - 
>>    
>>    Confirmed GXT.gwt.xml is present inside the JAR (jar tf checked).
>>    - 
>>    
>>    JAR added to the Eclipse launch configuration (Run Configurations > 
>>    Classpath).
>>    
>> Jetty Configuration Jetty 9 Already in Use
>>
>>    - 
>>    
>>    Version confirmed: 9.4.52.v20230823 (via mvn dependency:tree).
>>    - 
>>    
>>    Dependencies have <scope>compile</scope> (not provided).
>>    - 
>>    
>>    jetty-server-9.4.52.v20230823.jar appears in the Eclipse classpath.
>>    
>>
>> *Current Blocking Issues*
>>
>> 1. GXT Not Found at Runtime
>>
>> When launching GWT DevMode: Unable to find 
>> 'com/extjs/gxt/ui/GXT.gwt.xml' on your classpath
>>
>> Despite:
>>
>>    - 
>>    
>>    The file being present in the JAR.
>>    - 
>>    
>>    The JAR being listed in the Run Configurations > Classpath.
>>    - 
>>    
>>    Proper inheritance in the .gwt.xml file.
>>    
>> 2. Jetty Server Class Not Found
>>
>> Tried using the argument:
>>
>> -server org.eclipse.jetty.server.Server
>>
>> *ClassNotFoundException: org.eclipse.jetty.server.*Server
>>
>> Even though the JAR is present in the classpath, and Jetty 9 is confirmed 
>> to be in use.
>>
>> *So i need to understand*
>>
>>    1. 
>>    
>>    Why is GWT DevMode (or CodeServer) unable to 
>>    find com.extjs.gxt.ui.GXT.gwt.xml, even though it is present and properly 
>>    declared?
>>    2. 
>>    
>>    How can I resolve 
>>    the ClassNotFoundException for org.eclipse.jetty.server.Server, despite 
>>    Jetty 9 being correctly added?
>>    3. 
>>    
>>    Are there any special configurations or recommendations for running 
>>    GWT 2.10 with Jetty 9 and Java 11 in Eclipse?
>>    
>> *Important note:* I do *not* want to switch to a Tomcat 9 deployment 
>> (war packaging) as a workaround. The current state of the project makes the 
>> packaging and deployment process extremely slow — over *one hour* just 
>> to build and deploy. Therefore, I need a solution that works using GWT 
>> Super DevMode and embedded Jetty
>>
>> Thanks in advance for any help or suggestions.
>>
>>
>> __wejden
>>
>>
>>
>> Le mercredi 12 mars 2025 à 17:32:47 UTC+1, Jens a écrit :
>>
>> As Colin said you can use @WebServlet and enable configuration via 
>> annotation scanning in your servlet container. However if your application 
>> is large then scanning might slow your deployment down. If deployment time 
>> is not a concern then it is the easiest solution. There are additional 
>> annotations for other classes you normally add to your web.xml.
>>
>> If you don't like class scanning during deployment time you can write an 
>> annotation processor that picks up all these @WebServlet annotated servlets 
>> and generates a class that registers them using the ServletContext API. 
>> Then you use that generated class in a custom ServletContextListener 
>> implementation to register everything. That ServletContextListener would 
>> then be the only entry in your web.xml. Alternatively, if you use Jetty as 
>> servlet container you can use Jetty's quickstart module to let it generate 
>> a web.xml by scanning your code once (as part of the build process).
>>
>> -- 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 [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/google-web-toolkit/db0a94c4-6dc7-45f3-b203-671e677b271en%40googlegroups.com.

Reply via email to