Skip to content

24.5.0.beta1

Pre-release
Pre-release
Compare
Choose a tag to compare
@ZheSun88 ZheSun88 released this 18 Sep 07:08
· 46 commits to main since this release

Website · Getting Started · Documentation

This is a pre-release for the next minor version of Hilla. We appreciate it if you give it a try and report any issues you notice.

New and Noteworthy Since Hilla 24.4

TypeScript Generation Enhancements

Support for using genertic types was added to the Hilla browser callable endpoints generator. Better code structure and easy data definition reuse between entities is now possible by extracting generic base classes, which are now preserved as generic also in the generated TypeScript code.

At the same time, Hilla generator has received support for Jackson's @JsonValue / @JsonCreator Java annotations . This enables using domain primitives in Java and other customisations of JSON representation for Java classes.

Using JsonNode type and its subclasses in browser callable endpoints was enabled, which allows sending and receiving raw JSON data with Hilla browser callable endpoints.

Using Arrays in React Forms

Creating repeated form parts for array data types, for example, with the user-provided number of items, was simplified with the new useFormArrayPart hook to the Hilla React form library.

Flow Layout Support

The integration between Hilla and Flow as parts of a single Vaadin Unified Platform application was improved with added support for layout parents defined with Flow to the Hilla file-system router. This further simplifies creating hybrid applications using both Flow and Hilla.

Experimental Full-Stack Signals

The limited support for browser callable services that return a signal shared between the client and the server was added to Hilla. This enables sharing data with live updates and real-time collaboration with a simple API. Only Number and arbitrary JSON value data types are supported. Note that this feature is experimental and not yet ready for production use.

Versions

  • Hilla Maven Plugin
  • Hilla Gradle Plugin
  • Hilla Spring Boot Starter
  • Vaadin Design System / Web Components (24.5.0-beta1)
  • Vaadin Design System / React Components (24.5.0-beta1)

Notable Changes Since v24.4.8

  • feat(generator): support @JsonCreator and @JsonValue annotations by @cromoteca in #2381
  • fix(file-router): improve the speed of the HMR injection by @Lodin in #2411
  • fix: ignore absence of file-routes.json at startup in dev mode by @taefi in #2423
  • fix: support classes that extend or implement an Iterable by @cromoteca in #2397
  • feat: use Flow menu item collection by @caalador in #2425
  • fix: support Maven system scope for dependencies by @cromoteca in #2328
  • fix: adjust Hilla statistics collection by @taefi in #2353
  • refactor(file-router): forbid same names for sibling file and directory by @Lodin in #2443
  • feat(parser): map JsonNode to Object by @cromoteca in #2398
  • fix: add resource pattern for file-routes.json by @rbrki07 in #2396
  • refactor: disallow parametrized items in auto menu by @Lodin in #2392
  • refactor(file-router): tune server routes addition in case of variable routes presented by @Lodin in #2448
  • fix: Do not skip endpoint registration if there are no custom types (#2467) (CP: main) by @vaadin-bot in #2469
  • feat!(frontend): reload the page on login / logout success by @Lodin in #2432
  • fix(engine-runtime): skip generating endpoints in prepare-frontend (#2485) (CP: main) by @vaadin-bot in #2487
  • fix!: change search endpoint log level to debug (#2483) (CP: main) by @vaadin-bot in #2484
  • refactor(file-router): make route with non-null children detected as a layout by @Lodin in #2493
  • fix(binder): update form when array values change by @cromoteca in #2497
  • fix: use hierarchical route as key for collecting client menus (#2462) (CP: main) by @Lodin in #2504
  • fix(file-router): support config below view (#2491) (CP: main) by @vaadin-bot in #2492
  • fix: replace validator/isNumeric with a simple NaN & Finite check by @Lodin in #2510
  • fix(form): initialize value / defaultValue keys when rendering optional fields (#2508) (CP: main) by @vaadin-bot in #2514
  • fix: Report usage stats when isReactEnabled=false by @mshabarov in #2534
  • feat: use flow client route collection and filtering by @caalador in #2449
  • feat(binder): implement useFormArrayPart by @cromoteca in #2505
  • feat: add support for JsonNode subclasses by @cromoteca in #2537
  • test: fix CI failures by @Lodin in #2566
  • fix: nested cases of route parameters in the menu (#2527) (CP: main) by @platosha in #2557
  • fix: Do not log debug info unless asked to by @Artur- in #2549
  • refactor: Do not use installAutoSignalTracking by @Artur- in #2576
  • feat: implement Flow hotswap API by @mcollovati in #2590
  • fix(file-router): preserve empty children for layout routes (#2572) (CP: main) by @platosha in #2585
  • feat(models): implement Object Models proposal by @Lodin in #2535
  • refactor(lit-form): deprecate AbstractModel methods that require BinderNode by @Lodin in #2522
  • feat(maven-plugin) add m2e metadata by @cromoteca in #2610
  • feat: add NumberSignal basic support by @taefi in #2502
  • feat: allow setting signal's value before server confirmation by @taefi in #2633
  • feat: add generator plugin for endpoints returning signals by @taefi in #2639
  • refactor: use nanoid instead of crypto.randomUUID by @taefi in #2646
  • refactor(generator-utils): improve ImportManager implementation by @Lodin in #2645
  • fix: enable security for SignalsHandler by @taefi in #2651
  • feat: add support for Daily Active User feature by @mcollovati in #2649
  • feat: add automatic subscribe/unsubscribe to signals by @taefi in #2663
  • feat: Flow main layout by @caalador in #2662
  • feat(react-i18n): support chunked translations loading by @platosha in #2683
  • feat: add onDisconnect callback to subscription by @krissvaa in #2684
  • feat: add generic single valued signal (ValueSignal) by @taefi in #2672
  • feat: add increment and add operations to NumberSignal by @taefi in #2694
  • fix(TypeScript): npm peer dependency install conflicts in user applications by @platosha in #2699
  • feat!(generator): add support for generics by @cromoteca in #2615
  • fix: remove warning on entities with no properties by @cromoteca in #2711
  • fix: send updates only when not rendering by @krissvaa in #2707
  • fix: do not update while rendering by @krissvaa in #2713
  • fix: adjust increment api and remove add from NumberSignal by @taefi in #2704
  • fix: Nested child with flowLayout and autolayout withFallback by @caalador in #2706
  • feat: enable signal returning methods to have params by @taefi in #2714
  • fix: Do not wrap with layout for empty array by @caalador in #2733
  • feat: automatic flowLayout if match exists by @caalador in #2725

Full Changelog: 24.4.8...24.5.0.beta1