@Override public boolean handleRequest(VaadinSession session, VaadinRequest request, VaadinResponse response) throws IOException { if (!ServletHelper.isRequestType(request, RequestType.PUSH)) { return false; } if (request instanceof VaadinServletRequest) { if (atmosphere == null) { response.sendError(500, "Atmosphere initialization failed. No push available."); return true; } try { atmosphere.doCometSupport( AtmosphereRequest.wrap((VaadinServletRequest) request), AtmosphereResponse .wrap((VaadinServletResponse) response)); } catch (ServletException e) { // TODO PUSH decide how to handle throw new RuntimeException(e); } } else { throw new IllegalArgumentException( "Only VaadinServletRequests are supported"); } return true; }
@Override public void onRequest() { TesterBroadcaster broadcaster = (TesterBroadcaster) eventBus.getBroadcaster(); AtmosphereResource atmosphereResource = new AtmosphereResourceImpl(); AtmosphereRequest atmosphereRequest = AtmosphereRequest.wrap(wicketTester.getRequest()); AtmosphereResponse atmosphereResponse = AtmosphereResponse.wrap(wicketTester.getResponse()); TesterAsyncSupport asyncSupport = new TesterAsyncSupport(); atmosphereResource.initialize(broadcaster.getApplicationConfig(), broadcaster, atmosphereRequest, atmosphereResponse, asyncSupport, new AtmosphereHandlerAdapter()); atmosphereResource.setBroadcaster(broadcaster); broadcaster.addAtmosphereResource(atmosphereResource); String uuid = atmosphereResource.uuid(); Page page = getComponent().getPage(); page.setMetaData(ATMOSPHERE_UUID, uuid); eventBus.registerPage(uuid, page); } }