private RuntimeBeanReference registerUserRegistry(Element element, ParserContext context, @Nullable Object source) { Element relayElement = DomUtils.getChildElementByTagName(element, "stomp-broker-relay"); boolean multiServer = (relayElement != null && relayElement.hasAttribute("user-registry-broadcast")); if (multiServer) { RootBeanDefinition localRegistryBeanDef = new RootBeanDefinition(DefaultSimpUserRegistry.class); RootBeanDefinition beanDef = new RootBeanDefinition(MultiServerUserRegistry.class); beanDef.getConstructorArgumentValues().addIndexedArgumentValue(0, localRegistryBeanDef); String beanName = registerBeanDef(beanDef, context, source); return new RuntimeBeanReference(beanName); } else { RootBeanDefinition beanDef = new RootBeanDefinition(DefaultSimpUserRegistry.class); String beanName = registerBeanDef(beanDef, context, source); return new RuntimeBeanReference(beanName); } }
registerBeanDef(stompHandlerDef, context, source); factoryBean.getConstructorArgumentValues().addIndexedArgumentValue(0, result); factoryBean.getConstructorArgumentValues().addIndexedArgumentValue(1, factories); result = new RuntimeBeanReference(registerBeanDef(factoryBean, context, source));
private RuntimeBeanReference registerUserDestResolver(Element brokerElem, RuntimeBeanReference userRegistry, ParserContext context, @Nullable Object source) { RootBeanDefinition beanDef = new RootBeanDefinition(DefaultUserDestinationResolver.class); beanDef.getConstructorArgumentValues().addIndexedArgumentValue(0, userRegistry); if (brokerElem.hasAttribute("user-destination-prefix")) { beanDef.getPropertyValues().add("userDestinationPrefix", brokerElem.getAttribute("user-destination-prefix")); } if (brokerElem.hasAttribute("path-matcher")) { String pathMatcherRef = brokerElem.getAttribute("path-matcher"); beanDef.getPropertyValues().add("pathMatcher", new RuntimeBeanReference(pathMatcherRef)); } return new RuntimeBeanReference(registerBeanDef(beanDef, context, source)); }
private ManagedMap<String, Object> registerHandlerMapping( Element element, ParserContext context, @Nullable Object source) { RootBeanDefinition handlerMappingDef = new RootBeanDefinition(WebSocketHandlerMapping.class); String orderAttribute = element.getAttribute("order"); int order = orderAttribute.isEmpty() ? DEFAULT_MAPPING_ORDER : Integer.valueOf(orderAttribute); handlerMappingDef.getPropertyValues().add("order", order); String pathHelper = element.getAttribute("path-helper"); if (StringUtils.hasText(pathHelper)) { handlerMappingDef.getPropertyValues().add("urlPathHelper", new RuntimeBeanReference(pathHelper)); } ManagedMap<String, Object> urlMap = new ManagedMap<>(); urlMap.setSource(source); handlerMappingDef.getPropertyValues().add("urlMap", urlMap); registerBeanDef(handlerMappingDef, context, source); return urlMap; }
private RuntimeBeanReference registerUserRegistryMessageHandler( RuntimeBeanReference userRegistry, RuntimeBeanReference brokerTemplate, String destination, ParserContext context, @Nullable Object source) { Object scheduler = WebSocketNamespaceUtils.registerScheduler(SCHEDULER_BEAN_NAME, context, source); RootBeanDefinition beanDef = new RootBeanDefinition(UserRegistryMessageHandler.class); beanDef.getConstructorArgumentValues().addIndexedArgumentValue(0, userRegistry); beanDef.getConstructorArgumentValues().addIndexedArgumentValue(1, brokerTemplate); beanDef.getConstructorArgumentValues().addIndexedArgumentValue(2, destination); beanDef.getConstructorArgumentValues().addIndexedArgumentValue(3, scheduler); String beanName = registerBeanDef(beanDef, context, source); return new RuntimeBeanReference(beanName); }
private RuntimeBeanReference registerUserDestHandler(Element brokerElem, RuntimeBeanReference userRegistry, RuntimeBeanReference inChannel, RuntimeBeanReference brokerChannel, ParserContext context, @Nullable Object source) { Object userDestResolver = registerUserDestResolver(brokerElem, userRegistry, context, source); RootBeanDefinition beanDef = new RootBeanDefinition(UserDestinationMessageHandler.class); beanDef.getConstructorArgumentValues().addIndexedArgumentValue(0, inChannel); beanDef.getConstructorArgumentValues().addIndexedArgumentValue(1, brokerChannel); beanDef.getConstructorArgumentValues().addIndexedArgumentValue(2, userDestResolver); Element relayElement = DomUtils.getChildElementByTagName(brokerElem, "stomp-broker-relay"); if (relayElement != null && relayElement.hasAttribute("user-destination-broadcast")) { String destination = relayElement.getAttribute("user-destination-broadcast"); beanDef.getPropertyValues().add("broadcastDestination", destination); } String beanName = registerBeanDef(beanDef, context, source); return new RuntimeBeanReference(beanName); }
private RuntimeBeanReference registerRequestHandler( Element element, RuntimeBeanReference subProtoHandler, ParserContext ctx, @Nullable Object source) { RootBeanDefinition beanDef; RuntimeBeanReference sockJsService = WebSocketNamespaceUtils.registerSockJsService( element, SCHEDULER_BEAN_NAME, ctx, source); if (sockJsService != null) { ConstructorArgumentValues cargs = new ConstructorArgumentValues(); cargs.addIndexedArgumentValue(0, sockJsService); cargs.addIndexedArgumentValue(1, subProtoHandler); beanDef = new RootBeanDefinition(SockJsHttpRequestHandler.class, cargs, null); // Register alias for backwards compatibility with 4.1 ctx.getRegistry().registerAlias(SCHEDULER_BEAN_NAME, SOCKJS_SCHEDULER_BEAN_NAME); } else { RuntimeBeanReference handler = WebSocketNamespaceUtils.registerHandshakeHandler(element, ctx, source); Element interceptElem = DomUtils.getChildElementByTagName(element, "handshake-interceptors"); ManagedList<Object> interceptors = WebSocketNamespaceUtils.parseBeanSubElements(interceptElem, ctx); String allowedOrigins = element.getAttribute("allowed-origins"); List<String> origins = Arrays.asList(StringUtils.tokenizeToStringArray(allowedOrigins, ",")); interceptors.add(new OriginHandshakeInterceptor(origins)); ConstructorArgumentValues cargs = new ConstructorArgumentValues(); cargs.addIndexedArgumentValue(0, subProtoHandler); cargs.addIndexedArgumentValue(1, handler); beanDef = new RootBeanDefinition(WebSocketHttpRequestHandler.class, cargs, null); beanDef.getPropertyValues().add("handshakeInterceptors", interceptors); } return new RuntimeBeanReference(registerBeanDef(beanDef, ctx, source)); }
registerBeanDef(brokerDef, context, source); return brokerDef;
registerBeanDef(beanDef, context, source);
private RuntimeBeanReference registerUserRegistry(Element element, ParserContext context, @Nullable Object source) { Element relayElement = DomUtils.getChildElementByTagName(element, "stomp-broker-relay"); boolean multiServer = (relayElement != null && relayElement.hasAttribute("user-registry-broadcast")); if (multiServer) { RootBeanDefinition localRegistryBeanDef = new RootBeanDefinition(DefaultSimpUserRegistry.class); RootBeanDefinition beanDef = new RootBeanDefinition(MultiServerUserRegistry.class); beanDef.getConstructorArgumentValues().addIndexedArgumentValue(0, localRegistryBeanDef); String beanName = registerBeanDef(beanDef, context, source); return new RuntimeBeanReference(beanName); } else { RootBeanDefinition beanDef = new RootBeanDefinition(DefaultSimpUserRegistry.class); String beanName = registerBeanDef(beanDef, context, source); return new RuntimeBeanReference(beanName); } }
private RuntimeBeanReference registerUserRegistry(Element element, ParserContext context, @Nullable Object source) { Element relayElement = DomUtils.getChildElementByTagName(element, "stomp-broker-relay"); boolean multiServer = (relayElement != null && relayElement.hasAttribute("user-registry-broadcast")); if (multiServer) { RootBeanDefinition localRegistryBeanDef = new RootBeanDefinition(DefaultSimpUserRegistry.class); RootBeanDefinition beanDef = new RootBeanDefinition(MultiServerUserRegistry.class); beanDef.getConstructorArgumentValues().addIndexedArgumentValue(0, localRegistryBeanDef); String beanName = registerBeanDef(beanDef, context, source); return new RuntimeBeanReference(beanName); } else { RootBeanDefinition beanDef = new RootBeanDefinition(DefaultSimpUserRegistry.class); String beanName = registerBeanDef(beanDef, context, source); return new RuntimeBeanReference(beanName); } }
private RuntimeBeanReference registerUserDestResolver(Element brokerElem, RuntimeBeanReference userRegistry, ParserContext context, @Nullable Object source) { RootBeanDefinition beanDef = new RootBeanDefinition(DefaultUserDestinationResolver.class); beanDef.getConstructorArgumentValues().addIndexedArgumentValue(0, userRegistry); if (brokerElem.hasAttribute("user-destination-prefix")) { beanDef.getPropertyValues().add("userDestinationPrefix", brokerElem.getAttribute("user-destination-prefix")); } if (brokerElem.hasAttribute("path-matcher")) { String pathMatcherRef = brokerElem.getAttribute("path-matcher"); beanDef.getPropertyValues().add("pathMatcher", new RuntimeBeanReference(pathMatcherRef)); } return new RuntimeBeanReference(registerBeanDef(beanDef, context, source)); }
private RuntimeBeanReference registerUserDestResolver(Element brokerElem, RuntimeBeanReference userRegistry, ParserContext context, @Nullable Object source) { RootBeanDefinition beanDef = new RootBeanDefinition(DefaultUserDestinationResolver.class); beanDef.getConstructorArgumentValues().addIndexedArgumentValue(0, userRegistry); if (brokerElem.hasAttribute("user-destination-prefix")) { beanDef.getPropertyValues().add("userDestinationPrefix", brokerElem.getAttribute("user-destination-prefix")); } if (brokerElem.hasAttribute("path-matcher")) { String pathMatcherRef = brokerElem.getAttribute("path-matcher"); beanDef.getPropertyValues().add("pathMatcher", new RuntimeBeanReference(pathMatcherRef)); } return new RuntimeBeanReference(registerBeanDef(beanDef, context, source)); }
private ManagedMap<String, Object> registerHandlerMapping( Element element, ParserContext context, @Nullable Object source) { RootBeanDefinition handlerMappingDef = new RootBeanDefinition(WebSocketHandlerMapping.class); String orderAttribute = element.getAttribute("order"); int order = orderAttribute.isEmpty() ? DEFAULT_MAPPING_ORDER : Integer.valueOf(orderAttribute); handlerMappingDef.getPropertyValues().add("order", order); String pathHelper = element.getAttribute("path-helper"); if (StringUtils.hasText(pathHelper)) { handlerMappingDef.getPropertyValues().add("urlPathHelper", new RuntimeBeanReference(pathHelper)); } ManagedMap<String, Object> urlMap = new ManagedMap<>(); urlMap.setSource(source); handlerMappingDef.getPropertyValues().add("urlMap", urlMap); registerBeanDef(handlerMappingDef, context, source); return urlMap; }
private ManagedMap<String, Object> registerHandlerMapping( Element element, ParserContext context, @Nullable Object source) { RootBeanDefinition handlerMappingDef = new RootBeanDefinition(WebSocketHandlerMapping.class); String orderAttribute = element.getAttribute("order"); int order = orderAttribute.isEmpty() ? DEFAULT_MAPPING_ORDER : Integer.valueOf(orderAttribute); handlerMappingDef.getPropertyValues().add("order", order); String pathHelper = element.getAttribute("path-helper"); if (StringUtils.hasText(pathHelper)) { handlerMappingDef.getPropertyValues().add("urlPathHelper", new RuntimeBeanReference(pathHelper)); } ManagedMap<String, Object> urlMap = new ManagedMap<>(); urlMap.setSource(source); handlerMappingDef.getPropertyValues().add("urlMap", urlMap); registerBeanDef(handlerMappingDef, context, source); return urlMap; }
private RuntimeBeanReference registerUserRegistryMessageHandler( RuntimeBeanReference userRegistry, RuntimeBeanReference brokerTemplate, String destination, ParserContext context, @Nullable Object source) { Object scheduler = WebSocketNamespaceUtils.registerScheduler(SCHEDULER_BEAN_NAME, context, source); RootBeanDefinition beanDef = new RootBeanDefinition(UserRegistryMessageHandler.class); beanDef.getConstructorArgumentValues().addIndexedArgumentValue(0, userRegistry); beanDef.getConstructorArgumentValues().addIndexedArgumentValue(1, brokerTemplate); beanDef.getConstructorArgumentValues().addIndexedArgumentValue(2, destination); beanDef.getConstructorArgumentValues().addIndexedArgumentValue(3, scheduler); String beanName = registerBeanDef(beanDef, context, source); return new RuntimeBeanReference(beanName); }
private RuntimeBeanReference registerUserDestHandler(Element brokerElem, RuntimeBeanReference userRegistry, RuntimeBeanReference inChannel, RuntimeBeanReference brokerChannel, ParserContext context, @Nullable Object source) { Object userDestResolver = registerUserDestResolver(brokerElem, userRegistry, context, source); RootBeanDefinition beanDef = new RootBeanDefinition(UserDestinationMessageHandler.class); beanDef.getConstructorArgumentValues().addIndexedArgumentValue(0, inChannel); beanDef.getConstructorArgumentValues().addIndexedArgumentValue(1, brokerChannel); beanDef.getConstructorArgumentValues().addIndexedArgumentValue(2, userDestResolver); Element relayElement = DomUtils.getChildElementByTagName(brokerElem, "stomp-broker-relay"); if (relayElement != null && relayElement.hasAttribute("user-destination-broadcast")) { String destination = relayElement.getAttribute("user-destination-broadcast"); beanDef.getPropertyValues().add("broadcastDestination", destination); } String beanName = registerBeanDef(beanDef, context, source); return new RuntimeBeanReference(beanName); }
private RuntimeBeanReference registerUserRegistryMessageHandler( RuntimeBeanReference userRegistry, RuntimeBeanReference brokerTemplate, String destination, ParserContext context, @Nullable Object source) { Object scheduler = WebSocketNamespaceUtils.registerScheduler(SCHEDULER_BEAN_NAME, context, source); RootBeanDefinition beanDef = new RootBeanDefinition(UserRegistryMessageHandler.class); beanDef.getConstructorArgumentValues().addIndexedArgumentValue(0, userRegistry); beanDef.getConstructorArgumentValues().addIndexedArgumentValue(1, brokerTemplate); beanDef.getConstructorArgumentValues().addIndexedArgumentValue(2, destination); beanDef.getConstructorArgumentValues().addIndexedArgumentValue(3, scheduler); String beanName = registerBeanDef(beanDef, context, source); return new RuntimeBeanReference(beanName); }
private RuntimeBeanReference registerUserDestHandler(Element brokerElem, RuntimeBeanReference userRegistry, RuntimeBeanReference inChannel, RuntimeBeanReference brokerChannel, ParserContext context, @Nullable Object source) { Object userDestResolver = registerUserDestResolver(brokerElem, userRegistry, context, source); RootBeanDefinition beanDef = new RootBeanDefinition(UserDestinationMessageHandler.class); beanDef.getConstructorArgumentValues().addIndexedArgumentValue(0, inChannel); beanDef.getConstructorArgumentValues().addIndexedArgumentValue(1, brokerChannel); beanDef.getConstructorArgumentValues().addIndexedArgumentValue(2, userDestResolver); Element relayElement = DomUtils.getChildElementByTagName(brokerElem, "stomp-broker-relay"); if (relayElement != null && relayElement.hasAttribute("user-destination-broadcast")) { String destination = relayElement.getAttribute("user-destination-broadcast"); beanDef.getPropertyValues().add("broadcastDestination", destination); } String beanName = registerBeanDef(beanDef, context, source); return new RuntimeBeanReference(beanName); }
private RuntimeBeanReference registerRequestHandler( Element element, RuntimeBeanReference subProtoHandler, ParserContext ctx, @Nullable Object source) { RootBeanDefinition beanDef; RuntimeBeanReference sockJsService = WebSocketNamespaceUtils.registerSockJsService( element, SCHEDULER_BEAN_NAME, ctx, source); if (sockJsService != null) { ConstructorArgumentValues cargs = new ConstructorArgumentValues(); cargs.addIndexedArgumentValue(0, sockJsService); cargs.addIndexedArgumentValue(1, subProtoHandler); beanDef = new RootBeanDefinition(SockJsHttpRequestHandler.class, cargs, null); // Register alias for backwards compatibility with 4.1 ctx.getRegistry().registerAlias(SCHEDULER_BEAN_NAME, SOCKJS_SCHEDULER_BEAN_NAME); } else { RuntimeBeanReference handler = WebSocketNamespaceUtils.registerHandshakeHandler(element, ctx, source); Element interceptElem = DomUtils.getChildElementByTagName(element, "handshake-interceptors"); ManagedList<Object> interceptors = WebSocketNamespaceUtils.parseBeanSubElements(interceptElem, ctx); String allowedOrigins = element.getAttribute("allowed-origins"); List<String> origins = Arrays.asList(StringUtils.tokenizeToStringArray(allowedOrigins, ",")); interceptors.add(new OriginHandshakeInterceptor(origins)); ConstructorArgumentValues cargs = new ConstructorArgumentValues(); cargs.addIndexedArgumentValue(0, subProtoHandler); cargs.addIndexedArgumentValue(1, handler); beanDef = new RootBeanDefinition(WebSocketHttpRequestHandler.class, cargs, null); beanDef.getPropertyValues().add("handshakeInterceptors", interceptors); } return new RuntimeBeanReference(registerBeanDef(beanDef, ctx, source)); }