Fix RpcDataProvider listener handling on ItemSetChange (#19371)
Old ValueChangeListeners are discarded and new ones created when an
ItemSetChange occurs. This is done to reapply the listeners to possibly
recreated Items.
Change-Id: I9956af8950e241005574c597c49c5efb43afc1c7
Check for optimizations when looking for missing updates (#18317)
A recently merged patch leaves out information from hierarchyInfo for
empty connectors with state changes. This must be taken into account
when looking for disappeared connectors that do not cause any hierarchy
change to be sent.
Change-Id: I9ae7150341a83798141d0a2806ee81cafe7c2f9a
Omit empty hierarchy data from the response (#18510)
Reduces the payload size for the "Update all labels" action with 40
layouts in BasicPerformanceTest by 16% (from 11087 to 9270 bytes). The
reduction is improved to 22% (1855 to 1455) if the response is gzipped
since the omited data doesn't compress very well.
Change-Id: I1d2837c93222fffa59b14836f162e3e87349e086
Serializing an object should never modify its internal state.
It should be possible to serialize an object multiple times and get
the same result
Change-Id: I983e2eec1b3fb374bf40f150bdb9918ac5791d62
Move RpcDataProviderExtension and DataGenerator to correct package
New location is com.vaadin.server.communication.data as the extension
only manages the communication of container data to a client-side data
source.
Change-Id: I7aeefe23c9d771d70bc1dd389bc7f0c3357f0a17
This change removes deprecation of the class, but
leaves some methods subject to change in the future.
Change-Id: I4187c32c5439eb5db1e1466d4cb594eb06c86133
Move session store/load/remove logic to service from session (#9782, #18998)
The session storage logic when implemented in VaadinSession was and must be
partly static. This makes it impossible to override the storage logic.
To be able to support storage customizations for portals (storing using
APPLICATION_SCOPE), the logic was moved to VaadinService.
For portals, all storage operations now use APPLICATION_SCOPE. Previously
only the store operation was done using APPLICATION_SCOPE, leading to
some portals not being able to load the session at all (the default
scope for reading attributes in portals is PORTLET_SCOPE).
Change-Id: I3d112608d98c883a457e650c0a25bf10c81acc78
Properly cleanup stream variables if DragAndDropWrapper is detached (#14882)
If DragAndDropWrapper is removed from the UI for whatever reason before cleanup
happens, the UI can no longer be found through it. If we do not do cleanup, we
leave a reference hanging forever in ConnectorTracker.
Change-Id: I9fc3da5d616276a7810ddc4a18cbebf8621635fe
Use counter in client to server messages to avoid duplicate handling (#11733)
An server message id counter is included in every client to server message and an
expected id is included in every server to client message. This makes it safe to
re-send any message when the client is not 100% sure the server has received the
message, without having to worry about double handling on the server side.
Change-Id: I840cc04829fc2491f35a0e6f98f07eaf46b1ea42
Reduces time spent in findStateType() for the "40 layouts" action in
BasicPerformanceTest from around 2 ms to around 0.2 ms. This improves
the total performance of the action by about 5%.
Change-Id: I4f979827b2da0d4db87e201fa78421e5551a4113