WICKET-5929 remove ajax from page update
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/470f2a28 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/470f2a28 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/470f2a28 Branch: refs/heads/master Commit: 470f2a286a51e05f78251f6d8f9a6837d42b2125 Parents: 7c40e4d Author: Sven Meier <[email protected]> Authored: Sat Jun 27 09:00:38 2015 +0200 Committer: Sven Meier <[email protected]> Committed: Sat Jun 27 09:03:49 2015 +0200 ---------------------------------------------------------------------- .../apache/wicket/ajax/AjaxRequestHandler.java | 75 ++++++++++---------- .../apache/wicket/ajax/PartialPageUpdate.java | 11 +-- .../wicket/ajax/XmlPartialPageUpdate.java | 2 +- .../ws/api/WebSocketRequestHandler.java | 14 +--- 4 files changed, 44 insertions(+), 58 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/470f2a28/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxRequestHandler.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxRequestHandler.java b/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxRequestHandler.java index 439319d..f7ab416 100644 --- a/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxRequestHandler.java +++ b/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxRequestHandler.java @@ -81,10 +81,9 @@ public class AjaxRequestHandler implements AjaxRequestTarget { /** - * A POJO-like that collects the data for the Ajax response written to the client and serializes - * it to specific String-based format (XML, JSON, ...). + * Collector of page updates. */ - private final PartialPageUpdate responseObject; + private final PartialPageUpdate update; /** a list of listeners */ private List<AjaxRequestTarget.IListener> listeners = null; @@ -111,8 +110,28 @@ public class AjaxRequestHandler implements AjaxRequestTarget { this.page = Args.notNull(page, "page"); - responseObject = new XmlPartialPageUpdate(page) + update = new XmlPartialPageUpdate(page) { + /** + * Freezes the {@link AjaxRequestHandler#listeners} before firing the event and + * un-freezes them afterwards to allow components to add more + * {@link AjaxRequestTarget.IListener}s for the second event. + */ + @Override + protected void onBeforeRespond(final Response response) + { + listenersFrozen = true; + + if (listeners != null) + { + for (AjaxRequestTarget.IListener listener : listeners) + { + listener.onBeforeRespond(markupIdToComponent, AjaxRequestHandler.this); + } + } + + listenersFrozen = false; + } /** * Freezes the {@link AjaxRequestHandler#listeners}, and does not un-freeze them as the @@ -122,7 +141,7 @@ public class AjaxRequestHandler implements AjaxRequestTarget * the response to write to */ @Override - protected void fireOnAfterRespondListeners(final Response response) + protected void onAfterRespond(final Response response) { listenersFrozen = true; @@ -148,28 +167,6 @@ public class AjaxRequestHandler implements AjaxRequestTarget } } } - - /** - * Freezes the {@link AjaxRequestHandler#listeners} before firing the event and - * un-freezes them afterwards to allow components to add more - * {@link AjaxRequestTarget.IListener}s for the second event. - */ - @Override - protected void fireOnBeforeRespondListeners() - { - listenersFrozen = true; - - if (listeners != null) - { - for (AjaxRequestTarget.IListener listener : listeners) - { - listener.onBeforeRespond(markupIdToComponent, AjaxRequestHandler.this); - } - } - - listenersFrozen = false; - } - }; } @@ -236,13 +233,13 @@ public class AjaxRequestHandler implements AjaxRequestTarget @Override public void add(Component component, String markupId) { - responseObject.add(component, markupId); + update.add(component, markupId); } @Override public final Collection<? extends Component> getComponents() { - return responseObject.getComponents(); + return update.getComponents(); } @Override @@ -261,7 +258,7 @@ public class AjaxRequestHandler implements AjaxRequestTarget @Override public final void appendJavaScript(CharSequence javascript) { - responseObject.appendJavaScript(javascript); + update.appendJavaScript(javascript); } /** @@ -275,7 +272,7 @@ public class AjaxRequestHandler implements AjaxRequestTarget logData = new PageLogData(page); } - responseObject.detach(requestCycle); + update.detach(requestCycle); } /** @@ -287,7 +284,7 @@ public class AjaxRequestHandler implements AjaxRequestTarget if (obj instanceof AjaxRequestHandler) { AjaxRequestHandler that = (AjaxRequestHandler)obj; - return responseObject.equals(that.responseObject); + return update.equals(that.update); } return false; } @@ -299,14 +296,14 @@ public class AjaxRequestHandler implements AjaxRequestTarget public int hashCode() { int result = "AjaxRequestHandler".hashCode(); - result += responseObject.hashCode() * 17; + result += update.hashCode() * 17; return result; } @Override public final void prependJavaScript(CharSequence javascript) { - responseObject.prependJavaScript(javascript); + update.prependJavaScript(javascript); } @Override @@ -350,20 +347,20 @@ public class AjaxRequestHandler implements AjaxRequestTarget final String encoding = app.getRequestCycleSettings().getResponseRequestEncoding(); // Set content type based on markup type for page - responseObject.setContentType(response, encoding); + update.setContentType(response, encoding); // Make sure it is not cached by a client response.disableCaching(); final StringResponse bodyResponse = new StringResponse(); - responseObject.writeTo(bodyResponse, encoding); + update.writeTo(bodyResponse, encoding); CharSequence filteredResponse = invokeResponseFilters(bodyResponse); response.write(filteredResponse); } private boolean shouldRedirectToPage(IRequestCycle requestCycle) { - if (responseObject.containsPage()) + if (update.containsPage()) { return true; } @@ -411,13 +408,13 @@ public class AjaxRequestHandler implements AjaxRequestTarget @Override public String toString() { - return "[AjaxRequestHandler@" + hashCode() + " responseObject [" + responseObject + "]"; + return "[AjaxRequestHandler@" + hashCode() + " responseObject [" + update + "]"; } @Override public IHeaderResponse getHeaderResponse() { - return responseObject.getHeaderResponse(); + return update.getHeaderResponse(); } /** http://git-wip-us.apache.org/repos/asf/wicket/blob/470f2a28/wicket-core/src/main/java/org/apache/wicket/ajax/PartialPageUpdate.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/PartialPageUpdate.java b/wicket-core/src/main/java/org/apache/wicket/ajax/PartialPageUpdate.java index 5970f38..35ea016 100644 --- a/wicket-core/src/main/java/org/apache/wicket/ajax/PartialPageUpdate.java +++ b/wicket-core/src/main/java/org/apache/wicket/ajax/PartialPageUpdate.java @@ -153,13 +153,12 @@ public abstract class PartialPageUpdate { writeHeader(response, encoding); - // invoke onbeforerespond event on listeners - fireOnBeforeRespondListeners(); + onBeforeRespond(response); // process added components writeComponents(response, encoding); - fireOnAfterRespondListeners(response); + onAfterRespond(response); // queue up prepend javascripts. unlike other steps these are executed out of order so that // components can contribute them from inside their onbeforerender methods. @@ -175,9 +174,11 @@ public abstract class PartialPageUpdate writeFooter(response, encoding); } - protected abstract void fireOnAfterRespondListeners(Response response); + protected void onBeforeRespond(Response response) { + } - protected abstract void fireOnBeforeRespondListeners(); + protected void onAfterRespond(Response response) { + } /** * @param response http://git-wip-us.apache.org/repos/asf/wicket/blob/470f2a28/wicket-core/src/main/java/org/apache/wicket/ajax/XmlPartialPageUpdate.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/XmlPartialPageUpdate.java b/wicket-core/src/main/java/org/apache/wicket/ajax/XmlPartialPageUpdate.java index d3f6d73..fb157c5 100644 --- a/wicket-core/src/main/java/org/apache/wicket/ajax/XmlPartialPageUpdate.java +++ b/wicket-core/src/main/java/org/apache/wicket/ajax/XmlPartialPageUpdate.java @@ -30,7 +30,7 @@ import org.slf4j.LoggerFactory; /** * A {@link PartialPageUpdate} that serializes itself to XML. */ -public abstract class XmlPartialPageUpdate extends PartialPageUpdate +public class XmlPartialPageUpdate extends PartialPageUpdate { private static final Logger LOG = LoggerFactory.getLogger(XmlPartialPageUpdate.class); http://git-wip-us.apache.org/repos/asf/wicket/blob/470f2a28/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/WebSocketRequestHandler.java ---------------------------------------------------------------------- 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 6cbda67..5528f76 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 @@ -29,7 +29,6 @@ import org.apache.wicket.core.request.handler.logger.PageLogData; import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.request.ILogData; import org.apache.wicket.request.IRequestCycle; -import org.apache.wicket.request.Response; import org.apache.wicket.request.component.IRequestablePage; import org.apache.wicket.request.http.WebRequest; import org.apache.wicket.request.mapper.parameter.PageParameters; @@ -67,18 +66,7 @@ public class WebSocketRequestHandler implements IWebSocketRequestHandler { this.page = Args.notNull(component, "component").getPage(); this.connection = Args.notNull(connection, "connection"); - this.update = new XmlPartialPageUpdate(page) - { - @Override - protected void fireOnAfterRespondListeners(Response response) - { - } - - @Override - protected void fireOnBeforeRespondListeners() - { - } - }; + this.update = new XmlPartialPageUpdate(page); } @Override
