use of org.cometd.bayeux.server.ServerChannel in project ddf by codice.
the class SearchControllerTest method testExecuteQueryCacheDisabled.
/**
* Verify that the CatalogFramework does not use the cache (i.e. the CatalogFramework
* is called WITHOUT the query request property mode=cache).
*/
@Test
public void testExecuteQueryCacheDisabled() throws Exception {
// Setup
final String ID = "id";
Set<String> srcIds = new HashSet<>(1);
srcIds.add(ID);
SearchRequest request = new SearchRequest(srcIds, getQueryRequest("title LIKE 'Meta*'"), ID);
BayeuxServer bayeuxServer = mock(BayeuxServer.class);
ServerChannel channel = mock(ServerChannel.class);
when(bayeuxServer.getChannel(any(String.class))).thenReturn(channel);
ArgumentCaptor<QueryRequest> queryRequestCaptor = ArgumentCaptor.forClass(QueryRequest.class);
// Enable Cache
searchController.setCacheDisabled(true);
searchController.setBayeuxServer(bayeuxServer);
// Perform Test
searchController.executeQuery(request, mockServerSession, null);
// Verify
verify(framework).query(queryRequestCaptor.capture());
assertThat(queryRequestCaptor.getValue().getProperties().size(), is(0));
}
use of org.cometd.bayeux.server.ServerChannel 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);
}
}
Aggregations