This is an automated email from the ASF dual-hosted git repository. reiern70 pushed a commit to branch WICKET-6930-websocket-improvements in repository https://gitbox.apache.org/repos/asf/wicket.git
commit 7a4e4b204ab0f9c95c89b87e35152ab5a47276d5 Author: ernestosemedy <[email protected]> AuthorDate: Sat Nov 6 10:41:57 2021 +0300 introduce isEmpty() for partial update --- .../java/org/apache/wicket/page/PartialPageUpdate.java | 8 ++++++++ .../wicket/protocol/ws/api/AbstractWebSocketProcessor.java | 6 +++--- .../wicket/protocol/ws/api/WebSocketRequestHandler.java | 14 ++++++++++++-- .../apache/wicket/protocol/ws/javax/WicketEndpoint.java | 1 - 4 files changed, 23 insertions(+), 6 deletions(-) diff --git a/wicket-core/src/main/java/org/apache/wicket/page/PartialPageUpdate.java b/wicket-core/src/main/java/org/apache/wicket/page/PartialPageUpdate.java index f95c959..f5cef02 100644 --- a/wicket-core/src/main/java/org/apache/wicket/page/PartialPageUpdate.java +++ b/wicket-core/src/main/java/org/apache/wicket/page/PartialPageUpdate.java @@ -150,6 +150,14 @@ public abstract class PartialPageUpdate } /** + * @return returns true if and only if nothing has being added to partial update. + */ + public boolean isEmpty() + { + return prependJavaScripts.isEmpty() && appendJavaScripts.isEmpty() && domReadyJavaScripts.isEmpty() && markupIdToComponent.isEmpty(); + } + + /** * Serializes this object to the response. * * @param response diff --git a/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/AbstractWebSocketProcessor.java b/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/AbstractWebSocketProcessor.java index f891751..82cd21a 100644 --- a/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/AbstractWebSocketProcessor.java +++ b/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/AbstractWebSocketProcessor.java @@ -261,7 +261,7 @@ public abstract class AbstractWebSocketProcessor implements IWebSocketProcessor { WebSocketRequestHandler requestHandler = webSocketSettings.newWebSocketRequestHandler(page, connection); - WebSocketPayload payload = createEventPayload(message, requestHandler); + WebSocketPayload<?> payload = createEventPayload(message, requestHandler); if (!(message instanceof ConnectedMessage || isSpecialMessage(message))) { requestCycle.scheduleRequestHandlerAfterCurrent(requestHandler); @@ -356,9 +356,9 @@ public abstract class AbstractWebSocketProcessor implements IWebSocketProcessor return sessionId; } - private WebSocketPayload createEventPayload(IWebSocketMessage message, WebSocketRequestHandler handler) + private WebSocketPayload<?> createEventPayload(IWebSocketMessage message, WebSocketRequestHandler handler) { - final WebSocketPayload payload; + final WebSocketPayload<?> payload; if (message instanceof TextMessage) { payload = new WebSocketTextPayload((TextMessage) message, handler); diff --git a/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/WebSocketRequestHandler.java b/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/WebSocketRequestHandler.java index 7df3735..70a2603 100644 --- a/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/WebSocketRequestHandler.java +++ b/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/WebSocketRequestHandler.java @@ -97,7 +97,13 @@ public class WebSocketRequestHandler extends AbstractPartialPageRequestHandler i } } - + /** + * @return if true then EMPTY partial updates will be ignored. + */ + protected boolean pushOnEmptyUpdate() + { + return true; + } protected PartialPageUpdate getUpdate() { if (update == null) { @@ -129,7 +135,11 @@ public class WebSocketRequestHandler extends AbstractPartialPageRequestHandler i { if (update != null) { - update.writeTo(requestCycle.getResponse(), "UTF-8"); + // if the update is not empty or empty updates will be pushed anyway then write to response. + if (pushOnEmptyUpdate() || !update.isEmpty()) + { + update.writeTo(requestCycle.getResponse(), "UTF-8"); + } } } diff --git a/wicket-native-websocket/wicket-native-websocket-javax/src/main/java/org/apache/wicket/protocol/ws/javax/WicketEndpoint.java b/wicket-native-websocket/wicket-native-websocket-javax/src/main/java/org/apache/wicket/protocol/ws/javax/WicketEndpoint.java index 0636831..4808dbd 100644 --- a/wicket-native-websocket/wicket-native-websocket-javax/src/main/java/org/apache/wicket/protocol/ws/javax/WicketEndpoint.java +++ b/wicket-native-websocket/wicket-native-websocket-javax/src/main/java/org/apache/wicket/protocol/ws/javax/WicketEndpoint.java @@ -123,7 +123,6 @@ public class WicketEndpoint extends Endpoint { String appName = null; - @SuppressWarnings("unchecked") Map<String, List<String>> parameters = session.getRequestParameterMap(); if (parameters != null) {
