Search in sources :

Example 1 with ServerAnnotationProcessor

use of org.cometd.annotation.ServerAnnotationProcessor 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

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 BayeuxServer (org.cometd.bayeux.server.BayeuxServer)1 ServerChannel (org.cometd.bayeux.server.ServerChannel)1 ServerMessage (org.cometd.bayeux.server.ServerMessage)1 ServerSession (org.cometd.bayeux.server.ServerSession)1 DefaultSecurityPolicy (org.cometd.server.DefaultSecurityPolicy)1