@Override public void handle(AtmosphereFramework framework, Class<BroadcastFilter> annotatedClass) { try { framework.broadcasterFilters( (BroadcastFilter) framework.newClassInstance(BroadcastFilter.class, annotatedClass)); } catch (Exception e) { logger.warn("", e); } }
/** {@inheritDoc} */ @Override public void configure(final AtmosphereConfig config) { framework = config.framework(); arsf = AtmosphereResourceSessionFactory.getDefault(); setStompFormat(PropertyClass.STOMP_FORMAT_CLASS.retrieve(StompFormat.class, config)); try { // TODO: user must map AtmosphereServlet to /stomp in web.xml, can we offer a chance to set a // custom location ? framework.addAtmosphereHandler( "/stomp", framework.newClassInstance( AtmosphereHandler.class, AbstractReflectorAtmosphereHandler.Default.class)); interceptors = new ConcurrentHashMap<org.atmosphere.stomp.protocol.Action, StompInterceptor>(); configureInterceptor( config, ConnectInterceptor.class, org.atmosphere.stomp.protocol.Action.CONNECT, org.atmosphere.stomp.protocol.Action.STOMP, org.atmosphere.stomp.protocol.Action.NULL); configureInterceptor( config, SubscribeInterceptor.class, org.atmosphere.stomp.protocol.Action.SUBSCRIBE); configureInterceptor( config, UnsubscribeInterceptor.class, org.atmosphere.stomp.protocol.Action.UNSUBSCRIBE); configureInterceptor( config, SendInterceptor.class, org.atmosphere.stomp.protocol.Action.SEND); final BroadcastFilterLifecycle filter = framework.newClassInstance(BroadcastFilterLifecycle.class, StompBroadcastFilter.class); framework.broadcasterFilters(filter); filter.init(config); } catch (InstantiationException e) { logger.error("", e); } catch (IllegalAccessException e) { logger.error("", e); } }