Skip to content

Commit

Permalink
[PAXWEB-1119] - Websocket Tracker is to eager
Browse files Browse the repository at this point in the history
  • Loading branch information
ANierbeck authored and grgrzybek committed Jan 17, 2019
1 parent f95a973 commit 4d16d49
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 2 deletions.
Expand Up @@ -75,4 +75,9 @@ public interface ExtenderConstants {
*/
String DEFAULT_INIT_PREFIX_PROP = "init.";

/**
* A registration property for enabling filtering for WebSockets via Whitebox Tracking.
*/
String WEBSOCKET = "websocket";

}
Expand Up @@ -18,6 +18,7 @@
import javax.websocket.Endpoint;
import javax.websocket.server.ServerEndpoint;

import org.ops4j.pax.web.extender.whiteboard.ExtenderConstants;
import org.ops4j.pax.web.extender.whiteboard.internal.ExtenderContext;
import org.ops4j.pax.web.extender.whiteboard.internal.element.WebSocketElement;
import org.ops4j.pax.web.extender.whiteboard.internal.util.ServicePropertiesUtils;
Expand All @@ -41,7 +42,7 @@ public class WebSocketTracker extends AbstractTracker<Object, WebSocketElement>

public static ServiceTracker<Object, WebSocketElement> createTracker(final ExtenderContext extenderContext,
final BundleContext bundleContext) {
return new WebSocketTracker(extenderContext, bundleContext).create(Object.class);
return new WebSocketTracker(extenderContext, bundleContext).create("(&(objectClass=" + Object.class.getName() + ")(" + ExtenderConstants.WEBSOCKET + "=true))");
}

@Override
Expand Down
Expand Up @@ -15,8 +15,12 @@
*/
package org.ops4j.pax.web.itest.common;

import java.util.Dictionary;
import java.util.Hashtable;

import org.junit.Before;
import org.junit.Test;
import org.ops4j.pax.web.extender.whiteboard.ExtenderConstants;
import org.ops4j.pax.web.itest.common.support.SimpleWebSocket;
import org.osgi.framework.BundleException;
import org.slf4j.Logger;
Expand All @@ -43,7 +47,9 @@ public void testWebsocket() throws Exception {

SimpleWebSocket simpleWebSocket = new SimpleWebSocket();

bundleContext.registerService(Object.class.getName(), simpleWebSocket, null);
Dictionary<String, Object> filter = new Hashtable<>();
filter.put(ExtenderConstants.WEBSOCKET, "true");
bundleContext.registerService(Object.class.getName(), simpleWebSocket, filter);

Thread.sleep(1000);
}
Expand Down

0 comments on commit 4d16d49

Please sign in to comment.