Search in sources :

Example 6 with BayeuxServer

use of org.cometd.bayeux.server.BayeuxServer in project ddf by codice.

the class CometdEndpoint method init.

@Override
public void init(ServletConfig config) throws ServletException {
    super.init(config);
    bayeuxServer = (BayeuxServer) config.getServletContext().getAttribute(BayeuxServer.ATTRIBUTE);
    if (bayeuxServer != null) {
        ServerAnnotationProcessor cometdAnnotationProcessor = new ServerAnnotationProcessor(bayeuxServer);
        //TODO: don't do this, we need some sort of policy
        bayeuxServer.setSecurityPolicy(new DefaultSecurityPolicy() {

            @Override
            public boolean canCreate(BayeuxServer server, ServerSession session, String channelId, ServerMessage message) {
                return true;
            }

            @Override
            public boolean canHandshake(BayeuxServer server, ServerSession session, ServerMessage message) {
                if (LOGGER.isDebugEnabled()) {
                    LOGGER.debug("canHandshake ServerSession: {}   canHandshake ServerMessage: {}", session, message);
                }
                notificationController.registerUserSession(session, message);
                activityController.registerUserSession(session, message);
                return true;
            }

            @Override
            public boolean canPublish(BayeuxServer server, ServerSession session, ServerChannel channel, ServerMessage message) {
                return true;
            }

            @Override
            public boolean canSubscribe(BayeuxServer server, ServerSession session, ServerChannel channel, ServerMessage message) {
                return true;
            }
        });
        searchController.setBayeuxServer(bayeuxServer);
        searchService = new SearchService(filterBuilder, searchController);
        UserService userService = new UserService(persistentStore);
        WorkspaceService workspaceService = new WorkspaceService(persistentStore);
        cometdAnnotationProcessor.process(userService);
        cometdAnnotationProcessor.process(workspaceService);
        cometdAnnotationProcessor.process(searchService);
        cometdAnnotationProcessor.process(notificationController);
        cometdAnnotationProcessor.process(activityController);
    }
}
Also used : DefaultSecurityPolicy(org.cometd.server.DefaultSecurityPolicy) ServerSession(org.cometd.bayeux.server.ServerSession) ServerAnnotationProcessor(org.cometd.annotation.ServerAnnotationProcessor) UserService(org.codice.ddf.ui.searchui.query.service.UserService) BayeuxServer(org.cometd.bayeux.server.BayeuxServer) WorkspaceService(org.codice.ddf.ui.searchui.query.service.WorkspaceService) SearchService(org.codice.ddf.ui.searchui.query.service.SearchService) ServerMessage(org.cometd.bayeux.server.ServerMessage) ServerChannel(org.cometd.bayeux.server.ServerChannel)

Aggregations

BayeuxServer (org.cometd.bayeux.server.BayeuxServer)6 ServerChannel (org.cometd.bayeux.server.ServerChannel)6 SearchRequest (org.codice.ddf.ui.searchui.query.model.SearchRequest)5 Matchers.anyString (org.mockito.Matchers.anyString)5 HashSet (java.util.HashSet)4 Test (org.junit.Test)4 QueryRequest (ddf.catalog.operation.QueryRequest)3 ServerMessage (org.cometd.bayeux.server.ServerMessage)3 ServerSession (org.cometd.bayeux.server.ServerSession)3 Mutable (org.cometd.bayeux.server.ServerMessage.Mutable)2 CatalogFramework (ddf.catalog.CatalogFramework)1 GeotoolsFilterAdapterImpl (ddf.catalog.filter.proxy.adapter.GeotoolsFilterAdapterImpl)1 QueryResponse (ddf.catalog.operation.QueryResponse)1 ArrayList (java.util.ArrayList)1 ActionRegistryImpl (org.codice.ddf.ui.searchui.query.actions.ActionRegistryImpl)1 SearchService (org.codice.ddf.ui.searchui.query.service.SearchService)1 UserService (org.codice.ddf.ui.searchui.query.service.UserService)1 WorkspaceService (org.codice.ddf.ui.searchui.query.service.WorkspaceService)1 ServerAnnotationProcessor (org.cometd.annotation.ServerAnnotationProcessor)1 DefaultSecurityPolicy (org.cometd.server.DefaultSecurityPolicy)1