Skip to content

chore(flow-client): remove the GWT client engine and build wiring - #24954

Open
totally-not-ai[bot] wants to merge 2 commits into
flow-client-ts-cutoverfrom
flow-client-ts-remove-gwt
Open

chore(flow-client): remove the GWT client engine and build wiring#24954
totally-not-ai[bot] wants to merge 2 commits into
flow-client-ts-cutoverfrom
flow-client-ts-remove-gwt

Conversation

@totally-not-ai

@totally-not-ai totally-not-ai Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Summary

With the TypeScript engine now live (previous PR), the GWT client is dead. Removes it: com.vaadin.client.* sources + their JUnit/GWTTestCase tests, the ClientEngine*.gwt.xml modules, ClientEngineLinker + its single-script template, and the GWT deps / gwt-maven-plugin / GWT test wiring from pom.xml and package.json.

flow-client is now a TypeScript + resources module with no Java sources. Nothing outside flow-client referenced com.vaadin.client. Large but mechanical (deletions).

Stacked on #24953 (base flow-client-ts-cutover) — merge after it. Non-draft; please review before merging.

@totally-not-ai

totally-not-ai Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor Author

Review — GWT client engine + build wiring removal

The removal is complete and internally consistent:

  • All GWT Java is gone — after this PR flow-client/src/main/java contains 0 .java files, and src/test-gwt/ is removed entirely (28 files). The 30 deleted src/test files are the GWT-only unit tests.
  • pom.xml cleanly strips every piece of GWT wiring: the gwt.module* properties, the com.google.gwt dependency import + gwt-user/gwt-dev/gwt-elemental, the gwt-maven-plugin (compile/generateAsync/test), the build-helper src/test-gwt/java source dir, the surefire **/Gwt*.java exclude, the sdm profile, and the slow-tests gwt.test.pattern. The still-needed FlowClient.js spotless exclude is correctly retained.
  • No dangling references — a repo-wide sweep finds 0 remaining import com.vaadin.client.* in any Java file, so removing the engine breaks no remaining compilation.

One follow-up that this removal breaks (please address or confirm handled elsewhere)

flow-tests/test-root-context/.../dependencies/DependenciesLoadingAnnotationsIT.java uses the GWT client engine script as its boundary marker between Flow and user dependencies:

if (jsUrl.endsWith(".cache.js") && jsUrl.contains("static/client/client-")) {
    foundClientEngine = true;
}

With the engine gone, foundClientEngine never flips to true, so every script is treated as a "flow dependency" and the loop asserts "Flow dependencies should not contain user dependencies" against the first eager/lazy user script — which will now fail (or, at best, silently stop testing the ordering it was written to verify). This IT isn't touched by this PR but is a direct consequence of the removal; it needs updating (new marker for the TS FlowClient, or a rewrite of the ordering check).

Minor cleanup leftovers (non-blocking)

  • flow-test-generic/.../ClassesSerializableTest.java still lists com.vaadin.flow.linker.ClientEngineLinker (+$Script) in its exclusion regex list — the class no longer exists, so the pattern is now dead (harmless string, but could be removed).
  • ApplicationConstants.CLIENT_ENGINE_PATH is now unused by production code (see the 24955 note); safe to keep as public shared API, but worth noting.

Otherwise LGTM — thorough, correct removal with no dangling imports or build references.

Artur- added 2 commits August 14, 2026 09:26
With the TypeScript engine now the live client (previous commit), the GWT client
is dead. Remove it: the com.vaadin.client.* sources and their JUnit + GWTTestCase
tests, the ClientEngine*.gwt.xml modules, ClientEngineLinker and its single-script
template, and the GWT dependencies / gwt-maven-plugin / GWT test wiring from
pom.xml and package.json.

flow-client is now a TypeScript + resources module with no Java sources. Nothing
outside flow-client referenced com.vaadin.client.
@Artur-
Artur- force-pushed the flow-client-ts-remove-gwt branch from 9d706b9 to f9d6cf7 Compare August 14, 2026 06:28
@github-actions github-actions Bot added +0.0.1 and removed +1.0.0 labels Aug 14, 2026
@sonarqubecloud

Copy link
Copy Markdown

@github-actions

Copy link
Copy Markdown
Contributor

Test Results

 1 424 files   -  26   1 509 suites   - 26   1h 26m 9s ⏱️ - 3m 58s
10 591 tests  - 348  10 524 ✅  - 348  67 💤 ±0  0 ❌ ±0 
11 027 runs   - 348  10 959 ✅  - 348  68 💤 ±0  0 ❌ ±0 

Results for commit f9d6cf7. ± Comparison against base commit 0cfb4a3.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants