Hilla 24.5.0
Website · Getting Started · Documentation
New and Noteworthy Since Hilla 24.4
TypeScript Generation Enhancements
Support for using generic 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.
Hilla generator now supports ZonedDateTime
and OffsetDateTime
commonly used Java date and time types.
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.
Notable Changes Since v24.4.10
- feat(generator): support
@JsonCreator
and@JsonValue
annotations by @cromoteca in #2381 - 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
- feat(parser): map
JsonNode
toObject
by @cromoteca in #2398 - refactor: disallow parametrized items in auto menu by @Lodin in #2392
- 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
- fix: Do not log debug info unless asked to by @Artur- in #2549
- feat: implement Flow hotswap API by @mcollovati in #2590
- feat(models): implement Object Models proposal by @Lodin in #2535
- refactor(lit-form): deprecate AbstractModel methods that require BinderNode by @Lodin in #2522
- feat: add NumberSignal basic support by @taefi in #2502
- feat: allow setting signal's value before server confirmation by @taefi in #2633
- test: add NumberSignal IT by @taefi in #2632
- feat: add generator plugin for endpoints returning signals by @taefi in #2639
- fix: enable security for SignalsHandler by @taefi in #2651
- feat: add support for Daily Active User feature by @mcollovati in #2649
- refactor(react-signals): simplify the implementation by @Lodin in #2657
- 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 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
- feat(signals): require a default value for non-nullable signals by @cromoteca in #2732
- fix: undefined representation as empty in string components by @krissvaa in #2727
- fix: do not submit autoform on key-down if pressed in textarea by @krissvaa in #2741
- feat(push): add callback on subscription lost event by @cromoteca in #2737
- feat: Do not force full reload when changing routes by @Artur- in #2751
- fix: fix layout matching by @caalador in #2745
- feat(signals): resubscribe automatically after reconnection by @cromoteca in #2768
- fix: checkbox group undefined field strategy by @krissvaa in #2748
- fix(parser): get type arguments as referred types by @cromoteca in #2777
- fix: if config doesn't exist, add minimal one with flowLayout by @tepi in #2793
- fix(IT): update router typings by @Lodin in #2802
- fix: check full-stack signals feature-flag in client-side by @taefi in #2798
- fix: generator use only public getters and setters by @krissvaa in #2783
- feat: add support for java.time offset and zoned date-time by @krissvaa in #2785
- fix: localdatetime fills in AutoCrud and allow other java time classes to be used automatically by @krissvaa in #2771
- fix: regenerate file-router files when layouts changes (#2796) (CP: 24.5) by @vaadin-bot in #2832
- fix: Check main layout presence separately by @mshabarov in #2831
New Contributors
Full Changelog: 24.4.10...24.5.0