The cql-language-server was split into 6 Maven modules (core, ls/server, ls/service, debug/server, debug/service, plugin/debug) due to two constraints that no longer exist:
- Spring Boot fat JAR layout — Spring Boot's BOOT-INF/ classloader prevented other modules from depending on the fat JAR as a library, forcing the ls/server + ls/service split. Spring Boot was removed in v4.3.0; this constraint is gone.
- ServiceLoader plugin system — CqlLanguageServerPluginFactory was designed for external plugin extensibility. It was never used externally. Only one plugin (plugin/debug) was ever written, by the same team. The abstraction added indirection with no benefit.
Every major peer language server (rust-analyzer, gopls, Pyright, clangd, Pylsp, OmniSharp) ships as a single binary with no plugin system. This refactor aligns with that convention.
The cql-language-server was split into 6 Maven modules (core, ls/server, ls/service, debug/server, debug/service, plugin/debug) due to two constraints that no longer exist:
Every major peer language server (rust-analyzer, gopls, Pyright, clangd, Pylsp, OmniSharp) ships as a single binary with no plugin system. This refactor aligns with that convention.