Updated Branches: refs/heads/master 57a16f1a7 -> cb5da57c8
WICKET-5410 Remove setting interfaces Remove IWebSocketSettings interface Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/cb5da57c Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/cb5da57c Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/cb5da57c Branch: refs/heads/master Commit: cb5da57c846bb24a291df2d864fa0ea7d3298015 Parents: 57a16f1 Author: Martin Tzvetanov Grigorov <[email protected]> Authored: Sun Nov 24 12:21:44 2013 +0100 Committer: Martin Tzvetanov Grigorov <[email protected]> Committed: Sun Nov 24 12:21:44 2013 +0100 ---------------------------------------------------------------------- .../wicket/protocol/ws/IWebSocketSettings.java | 88 -------------------- .../wicket/protocol/ws/WebSocketSettings.java | 61 ++++++++++++-- .../ws/api/AbstractWebSocketProcessor.java | 4 +- .../ws/api/WebSocketPushBroadcaster.java | 8 +- .../tester/WebSocketTesterBehaviorTest.java | 4 +- .../ws/javax/app/charts/ChartUpdater.java | 4 +- 6 files changed, 64 insertions(+), 105 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/cb5da57c/wicket-experimental/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/IWebSocketSettings.java ---------------------------------------------------------------------- diff --git a/wicket-experimental/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/IWebSocketSettings.java b/wicket-experimental/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/IWebSocketSettings.java deleted file mode 100644 index bcc35ea..0000000 --- a/wicket-experimental/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/IWebSocketSettings.java +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.wicket.protocol.ws; - - -import org.apache.wicket.Application; -import org.apache.wicket.MetaDataKey; -import org.apache.wicket.protocol.ws.api.registry.IWebSocketConnectionRegistry; -import org.apache.wicket.protocol.ws.concurrent.Executor; - -/** - * Interface for websocket related settings. - * <p> - * More documentation is available about each setting in the setter method for the property. - * - * @since 6.4 - */ -public interface IWebSocketSettings -{ - public static final MetaDataKey<IWebSocketSettings> KEY = new MetaDataKey<IWebSocketSettings>() - { - }; - - /** - * Holds this IWebSocketSettings in the Application's metadata. - * This way wicket-core module doesn't have reference to wicket-native-websocket. - */ - public static final class Holder - { - public static IWebSocketSettings get(Application application) - { - IWebSocketSettings settings = application.getMetaData(KEY); - if (settings == null) - { - synchronized (application) - { - if (settings == null) - { - settings = new WebSocketSettings(); - set(application, settings); - } - } - } - return settings; - } - - public static void set(Application application, IWebSocketSettings settings) - { - application.setMetaData(KEY, settings); - } - } - - /** - * The executor for processing websocket push messages broadcasted to all sessions. - * - * @return - * The executor used for processing push messages. - */ - Executor getWebSocketPushMessageExecutor(); - - /** - * Set the executor for processing websocket push messages broadcasted to all sessions. - * Default executor does all the processing in the caller thread. Using a proper thread pool is adviced - * for applications that send push events from ajax calls to avoid page level deadlocks. - * - * @param executorService - * The executor used for processing push messages. - */ - IWebSocketSettings setWebSocketPushMessageExecutor(Executor executorService); - - IWebSocketConnectionRegistry getConnectionRegistry(); - - IWebSocketSettings setConnectionRegistry(IWebSocketConnectionRegistry connectionRegistry); -} http://git-wip-us.apache.org/repos/asf/wicket/blob/cb5da57c/wicket-experimental/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/WebSocketSettings.java ---------------------------------------------------------------------- diff --git a/wicket-experimental/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/WebSocketSettings.java b/wicket-experimental/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/WebSocketSettings.java index 1b5ea56..937548b 100644 --- a/wicket-experimental/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/WebSocketSettings.java +++ b/wicket-experimental/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/WebSocketSettings.java @@ -18,16 +18,53 @@ package org.apache.wicket.protocol.ws; import java.util.concurrent.Callable; +import org.apache.wicket.Application; +import org.apache.wicket.MetaDataKey; import org.apache.wicket.protocol.ws.api.registry.IWebSocketConnectionRegistry; import org.apache.wicket.protocol.ws.api.registry.SimpleWebSocketConnectionRegistry; import org.apache.wicket.protocol.ws.concurrent.Executor; import org.apache.wicket.util.lang.Args; /** + * Web Socket related settings. * + * More documentation is available about each setting in the setter method for the property. */ -public class WebSocketSettings implements IWebSocketSettings +public class WebSocketSettings { + private static final MetaDataKey<WebSocketSettings> KEY = new MetaDataKey<WebSocketSettings>() + { + }; + + /** + * Holds this IWebSocketSettings in the Application's metadata. + * This way wicket-core module doesn't have reference to wicket-native-websocket. + */ + public static final class Holder + { + public static WebSocketSettings get(Application application) + { + WebSocketSettings settings = application.getMetaData(KEY); + if (settings == null) + { + synchronized (application) + { + if (settings == null) + { + settings = new WebSocketSettings(); + set(application, settings); + } + } + } + return settings; + } + + public static void set(Application application, WebSocketSettings settings) + { + application.setMetaData(KEY, settings); + } + } + /** * The executor that handles the processing of Web Socket push message broadcasts. */ @@ -38,29 +75,39 @@ public class WebSocketSettings implements IWebSocketSettings */ private IWebSocketConnectionRegistry connectionRegistry = new SimpleWebSocketConnectionRegistry(); - @Override - public IWebSocketSettings setWebSocketPushMessageExecutor(Executor executor) + /** + * Set the executor for processing websocket push messages broadcasted to all sessions. + * Default executor does all the processing in the caller thread. Using a proper thread pool is adviced + * for applications that send push events from ajax calls to avoid page level deadlocks. + * + * @param executor + * The executor used for processing push messages. + */ + public WebSocketSettings setWebSocketPushMessageExecutor(Executor executor) { Args.notNull(executor, "executor"); this.webSocketPushMessageExecutor = executor; return this; } - @Override + /** + * The executor for processing websocket push messages broadcasted to all sessions. + * + * @return + * The executor used for processing push messages. + */ public IWebSocketConnectionRegistry getConnectionRegistry() { return connectionRegistry; } - @Override - public IWebSocketSettings setConnectionRegistry(IWebSocketConnectionRegistry connectionRegistry) + public WebSocketSettings setConnectionRegistry(IWebSocketConnectionRegistry connectionRegistry) { Args.notNull(connectionRegistry, "connectionRegistry"); this.connectionRegistry = connectionRegistry; return this; } - @Override public Executor getWebSocketPushMessageExecutor() { return webSocketPushMessageExecutor; http://git-wip-us.apache.org/repos/asf/wicket/blob/cb5da57c/wicket-experimental/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/AbstractWebSocketProcessor.java ---------------------------------------------------------------------- diff --git a/wicket-experimental/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/AbstractWebSocketProcessor.java b/wicket-experimental/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/AbstractWebSocketProcessor.java index b704303..3359f70 100644 --- a/wicket-experimental/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/AbstractWebSocketProcessor.java +++ b/wicket-experimental/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/AbstractWebSocketProcessor.java @@ -31,7 +31,7 @@ import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.page.IPageManager; import org.apache.wicket.protocol.http.WebApplication; import org.apache.wicket.protocol.http.WicketFilter; -import org.apache.wicket.protocol.ws.IWebSocketSettings; +import org.apache.wicket.protocol.ws.WebSocketSettings; import org.apache.wicket.protocol.ws.api.event.WebSocketBinaryPayload; import org.apache.wicket.protocol.ws.api.event.WebSocketClosedPayload; import org.apache.wicket.protocol.ws.api.event.WebSocketConnectedPayload; @@ -136,7 +136,7 @@ public abstract class AbstractWebSocketProcessor implements IWebSocketProcessor this.webRequest = new WebSocketRequest(new ServletRequestCopy(request), getFilterPath(wicketFilter)); this.application = Args.notNull(application, "application"); - IWebSocketSettings webSocketSettings = IWebSocketSettings.Holder.get(application); + WebSocketSettings webSocketSettings = WebSocketSettings.Holder.get(application); this.connectionRegistry = webSocketSettings.getConnectionRegistry(); } http://git-wip-us.apache.org/repos/asf/wicket/blob/cb5da57c/wicket-experimental/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/WebSocketPushBroadcaster.java ---------------------------------------------------------------------- diff --git a/wicket-experimental/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/WebSocketPushBroadcaster.java b/wicket-experimental/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/WebSocketPushBroadcaster.java index cbe2daf..db653d2 100644 --- a/wicket-experimental/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/WebSocketPushBroadcaster.java +++ b/wicket-experimental/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/WebSocketPushBroadcaster.java @@ -21,7 +21,7 @@ import static java.util.Collections.singletonList; import java.util.Collection; import org.apache.wicket.Application; -import org.apache.wicket.protocol.ws.IWebSocketSettings; +import org.apache.wicket.protocol.ws.WebSocketSettings; import org.apache.wicket.protocol.ws.api.message.ConnectedMessage; import org.apache.wicket.protocol.ws.api.message.IWebSocketPushMessage; import org.apache.wicket.protocol.ws.api.registry.IKey; @@ -53,7 +53,7 @@ public class WebSocketPushBroadcaster * * This method can be invoked from any thread, even a non-wicket thread. By default all processing * is done in the caller thread. Use - * {@link IWebSocketSettings#setWebSocketPushMessageExecutor(org.apache.wicket.protocol.ws.concurrent.Executor)} + * {@link WebSocketSettings#setWebSocketPushMessageExecutor(org.apache.wicket.protocol.ws.concurrent.Executor)} * to move processing to background threads. * * If the given connection is no longer open then the broadcast is silently ignored. @@ -86,7 +86,7 @@ public class WebSocketPushBroadcaster * * This method can be invoked from any thread, even a non-wicket thread. By default all processing * is done in the caller thread. Use - * {@link IWebSocketSettings#setWebSocketPushMessageExecutor(org.apache.wicket.protocol.ws.concurrent.Executor)} + * {@link WebSocketSettings#setWebSocketPushMessageExecutor(org.apache.wicket.protocol.ws.concurrent.Executor)} * to move processing to background threads. * * If some connections are not in valid state they are silently ignored. @@ -112,7 +112,7 @@ public class WebSocketPushBroadcaster private void process(final Application application, final Collection<IWebSocketConnection> wsConnections, final IWebSocketPushMessage message) { - IWebSocketSettings webSocketSettings = IWebSocketSettings.Holder.get(application); + WebSocketSettings webSocketSettings = WebSocketSettings.Holder.get(application); Executor executor = webSocketSettings.getWebSocketPushMessageExecutor(); for (final IWebSocketConnection wsConnection : wsConnections) { http://git-wip-us.apache.org/repos/asf/wicket/blob/cb5da57c/wicket-experimental/wicket-native-websocket/wicket-native-websocket-core/src/test/java/org/apache/wicket/protocol/ws/util/tester/WebSocketTesterBehaviorTest.java ---------------------------------------------------------------------- diff --git a/wicket-experimental/wicket-native-websocket/wicket-native-websocket-core/src/test/java/org/apache/wicket/protocol/ws/util/tester/WebSocketTesterBehaviorTest.java b/wicket-experimental/wicket-native-websocket/wicket-native-websocket-core/src/test/java/org/apache/wicket/protocol/ws/util/tester/WebSocketTesterBehaviorTest.java index ce123cb..64ca565 100644 --- a/wicket-experimental/wicket-native-websocket/wicket-native-websocket-core/src/test/java/org/apache/wicket/protocol/ws/util/tester/WebSocketTesterBehaviorTest.java +++ b/wicket-experimental/wicket-native-websocket/wicket-native-websocket-core/src/test/java/org/apache/wicket/protocol/ws/util/tester/WebSocketTesterBehaviorTest.java @@ -20,7 +20,7 @@ import java.io.UnsupportedEncodingException; import java.util.concurrent.atomic.AtomicBoolean; import org.apache.wicket.event.IEvent; -import org.apache.wicket.protocol.ws.IWebSocketSettings; +import org.apache.wicket.protocol.ws.WebSocketSettings; import org.apache.wicket.protocol.ws.api.WebSocketPushBroadcaster; import org.apache.wicket.protocol.ws.api.event.WebSocketPushPayload; import org.apache.wicket.protocol.ws.api.message.ConnectedMessage; @@ -152,7 +152,7 @@ public class WebSocketTesterBehaviorTest extends Assert tester.getSession().bind(); new WebSocketTester(tester, page); - IWebSocketSettings webSocketSettings = IWebSocketSettings.Holder.get(tester.getApplication()); + WebSocketSettings webSocketSettings = WebSocketSettings.Holder.get(tester.getApplication()); WebSocketPushBroadcaster broadcaster = new WebSocketPushBroadcaster(webSocketSettings.getConnectionRegistry()); ConnectedMessage wsMessage = new ConnectedMessage(tester.getApplication(), tester.getHttpSession().getId(), new PageIdKey(page.getPageId())); http://git-wip-us.apache.org/repos/asf/wicket/blob/cb5da57c/wicket-experimental/wicket-native-websocket/wicket-native-websocket-javax/src/test/java/org/apache/wicket/protocol/ws/javax/app/charts/ChartUpdater.java ---------------------------------------------------------------------- diff --git a/wicket-experimental/wicket-native-websocket/wicket-native-websocket-javax/src/test/java/org/apache/wicket/protocol/ws/javax/app/charts/ChartUpdater.java b/wicket-experimental/wicket-native-websocket/wicket-native-websocket-javax/src/test/java/org/apache/wicket/protocol/ws/javax/app/charts/ChartUpdater.java index 86a8bb0..d83f72d 100644 --- a/wicket-experimental/wicket-native-websocket/wicket-native-websocket-javax/src/test/java/org/apache/wicket/protocol/ws/javax/app/charts/ChartUpdater.java +++ b/wicket-experimental/wicket-native-websocket/wicket-native-websocket-javax/src/test/java/org/apache/wicket/protocol/ws/javax/app/charts/ChartUpdater.java @@ -21,7 +21,7 @@ import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; import org.apache.wicket.Application; -import org.apache.wicket.protocol.ws.IWebSocketSettings; +import org.apache.wicket.protocol.ws.WebSocketSettings; import org.apache.wicket.protocol.ws.api.IWebSocketConnection; import org.apache.wicket.protocol.ws.api.registry.IWebSocketConnectionRegistry; import org.apache.wicket.protocol.ws.api.message.ConnectedMessage; @@ -96,7 +96,7 @@ public class ChartUpdater public void run() { Application application = Application.get(applicationName); - IWebSocketSettings webSocketSettings = IWebSocketSettings.Holder.get(application); + WebSocketSettings webSocketSettings = WebSocketSettings.Holder.get(application); IWebSocketConnectionRegistry webSocketConnectionRegistry = webSocketSettings.getConnectionRegistry(); IWebSocketConnection connection = webSocketConnectionRegistry.getConnection(application, sessionId, key);
