You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by re...@apache.org on 2021/11/07 08:38:58 UTC
[wicket] 01/02: introduce isEmpty() for partial update
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 <ba...@semedy.com>
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)
{