Modified the logic in setPropertyDatasource which determines if a new converter is needed (#11863)
The previous logic had two flaws
* It allowed converter model type to be a sub type of the model type but not vice versa. Similarly for presentation type.
* If the user has set a converter it should be used and not be replaced unless it is absolutely sure that it cannot in any possible way handle conversion (e.g. converter from integer to double cannot handle string to list conversion). If there is a slight chance that it can handle conversion, let it be and let the user set another converter when needed.
Change-Id: I2e1c0b3aac90be63ddbc780195f8428398e28ada
Derive current servlet/portlet from the current service (#11779)
Implement VaadinPortlet.getCurrent() to use VaadinService.getCurrent()
instead of having a separate thread local variable. This is done to
avoid classloading issues when determining which instances to preserve
in CurrentInstance.setThreadLocals. The two current instances have
previously been kept in sync in all cases except during
VaadinPortlet.init where VaadinService has not yet been created.
VaadinPortlet.setCurrent() is removed as no way of preserving its
semantics has been found. This breaks API compatibility, but is probably
better than having a deprecated implementation that can not work as
expected in all situations.
The same changes have also been made to VaadinServlet to maintain the
symmetry.
Change-Id: I0a1ccc07a4aeecec558a9aaae211bd56207313d8
Use "\0" instead of "|" as a push message delimiter (#11692)
Used with TrackMessageSizeInterceptor and with client-to-server Websocket message splitting (see #11648)
The original issue that the delimiter can not appear in the message (unescaped) is apparently fixed in Atmosphere 1.0.13
Also ensure the max size of a websocket fragment in bytes does not exceed the buffer size (#11842)
Change-Id: I768524bb54a5b8b9479dc7bda821256bd843dc52
* Require atmosphere-runtime in vaadin-push with visibility:=reexport
* Require vaadin-push in vaadin-server with resolution:=optional
Serving vaadinPush.js from vaadin-push will be handled by Florian's OSGi addon
Change-Id: Ida3e1ae95eb17b0114e099d1425db73106aaeead
Remove previously added attribute for WAI-ARIA live area
Set overlay container as live area instead
Change-Id: Ie75c2993fdb42f29f307cbd294ae3352d2ef1ce3
Split client-to-server messages when websockets are used (#11648)
* First part of a fragmented message prefixed by total message length plus '|'
* Atmosphere websocket buffer size set to 65536
* Fragment size is 65535 characters (Jetty requires less than buffer size)
Change-Id: I8bf872bbb03b86386070fdc99c14ea805dd2ef3a
Deal correctly with session expired during opening of push connection (#11705)
* Added SessionExpiredHandler which any RequestHandler can implement to customize session expired handling
* The issue can be tested by creating a non-serializable UI (e.g. new Object() in a field) and restarting the server.
Change-Id: I3eb6bc56298e025bcde088af53ea656fb44e897b
Furthermore, the exception that might get thrown from there is passed up
through the call stack until it can be handled in a sensible way.
Change-Id: I4a741b5ad4d9216255932c2328b49e73e92df2f4
Verify CSRF token before accepting new CSRF connection (#11635)
* Can't open push connection during client-side init because CSRF token
is not available at that point. This allows simplifying the
initialization because the push state will not be checked until the
first response has been processed.
* Add helper for checking the CSRF token
Change-Id: I31da1ac669dc9a581cbd66f58c07f10ea4b8b676
* Made it possible to toggle the toString() behavior using the "legacyPropertyToString" init parameter. The default value is "warning" which enables the legacy Property.toString implementation and logs a warning message when it is used. Other supported values are "true" which enables the legacy mode and "false" which disables it.
Change-Id: Ife19352b86590464c8e441b7f82f4fec3b1f3235
addons.scss should contain "addons"-mixin and include all found mixins into that.
Also now that addon stylesheet metadata now contains the full path of the stylesheet,
the @import should handle it by prefixing the paths with "../" .
Change-Id: I9631e8151e053337e6d0fa2023c38faeec7a0a5b