List of usage examples for org.springframework.util Assert state
public static void state(boolean expression, Supplier<String> messageSupplier)
From source file:dstrelec.nats.annotation.NatsListenerAnnotationBeanPostProcessor.java
@Override public void afterSingletonsInstantiated() { this.registrar.setBeanFactory(this.beanFactory); if (this.beanFactory instanceof ListableBeanFactory) { Map<String, NatsListenerConfigurer> instances = ((ListableBeanFactory) this.beanFactory) .getBeansOfType(NatsListenerConfigurer.class); for (NatsListenerConfigurer configurer : instances.values()) { configurer.configureNatsListeners(this.registrar); }/* w w w . j a va 2 s . com*/ } if (this.registrar.getEndpointRegistry() == null) { if (this.endpointRegistry == null) { Assert.state(this.beanFactory != null, "BeanFactory must be set to find endpoint registry by bean name"); this.endpointRegistry = this.beanFactory.getBean( NatsListenerConfigUtils.NATS_LISTENER_ENDPOINT_REGISTRY_BEAN_NAME, NatsListenerEndpointRegistry.class); } this.registrar.setEndpointRegistry(this.endpointRegistry); } if (this.containerFactoryBeanName != null) { this.registrar.setContainerFactoryBeanName(this.containerFactoryBeanName); } // Set the custom handler method factory once resolved by the configurer MessageHandlerMethodFactory handlerMethodFactory = this.registrar.getMessageHandlerMethodFactory(); if (handlerMethodFactory != null) { this.messageHandlerMethodFactory.setMessageHandlerMethodFactory(handlerMethodFactory); } // Actually register all listeners this.registrar.afterPropertiesSet(); }
From source file:dstrelec.nats.annotation.NatsListenerAnnotationBeanPostProcessor.java
protected void processListener(MethodNatsListenerEndpoint endpoint, NatsListener natsListener, Object bean, Object adminTarget, String beanName) { endpoint.setBean(bean);/*from ww w. j a v a 2 s . c o m*/ endpoint.setMessageHandlerMethodFactory(this.messageHandlerMethodFactory); endpoint.setId(getEndpointId(natsListener)); endpoint.setSubjects(resolveSubjects(natsListener)); String group = natsListener.group(); if (StringUtils.hasText(group)) { Object resolvedGroup = resolveExpression(group); if (resolvedGroup instanceof String) { endpoint.setGroup((String) resolvedGroup); } } NatsListenerContainerFactory factory = null; String containerFactoryBeanName = resolve(natsListener.containerFactory()); if (StringUtils.hasText(containerFactoryBeanName)) { Assert.state(this.beanFactory != null, "BeanFactory must be set to obtain container factory by bean name"); try { factory = this.beanFactory.getBean(containerFactoryBeanName, NatsListenerContainerFactory.class); } catch (NoSuchBeanDefinitionException ex) { throw new BeanInitializationException("Could not register Nats listener endpoint on [" + adminTarget + "] for bean " + beanName + ", no " + NatsListenerContainerFactory.class.getSimpleName() + " with id '" + containerFactoryBeanName + "' was found in the application context", ex); } } this.registrar.registerEndpoint(endpoint, factory); }
From source file:dstrelec.nats.config.NatsListenerEndpointRegistry.java
/** * Create a message listener container for the given {@link NatsListenerEndpoint}. * <p>This create the necessary infrastructure to honor that endpoint * with regards to its configuration./* w ww . ja va 2s .c o m*/ * <p>The {@code startImmediately} flag determines if the container should be * started immediately. * @param endpoint the endpoint to add. * @param factory the {@link NatsListenerContainerFactory} to use. * @param startImmediately start the container immediately if necessary * @see #getListenerContainers() * @see #getListenerContainer(String) */ @SuppressWarnings("unchecked") public void registerListenerContainer(NatsListenerEndpoint endpoint, NatsListenerContainerFactory factory, boolean startImmediately) { Assert.notNull(endpoint, "Endpoint must not be null"); Assert.notNull(factory, "Factory must not be null"); String id = endpoint.getId(); Assert.hasText(id, "Endpoint id must not be empty"); synchronized (this.listenerContainers) { Assert.state(!this.listenerContainers.containsKey(id), "Another endpoint is already registered with id '" + id + "'"); NatsListenerContainer container = createListenerContainer(endpoint, factory); this.listenerContainers.put(id, container); if (StringUtils.hasText(endpoint.getGroup()) && this.applicationContext != null) { List<NatsListenerContainer> containerGroup; if (this.applicationContext.containsBean(endpoint.getGroup())) { containerGroup = this.applicationContext.getBean(endpoint.getGroup(), List.class); } else { containerGroup = new ArrayList<NatsListenerContainer>(); this.applicationContext.getBeanFactory().registerSingleton(endpoint.getGroup(), containerGroup); } containerGroup.add(container); } if (startImmediately) { startIfNecessary(container); } } }
From source file:dstrelec.nats.listener.adapter.MessagingMessageListenerAdapter.java
/** * Subclasses can override this method to use a different mechanism to determine * the target type of the payload conversion. * @param method the method./* w ww . j a v a2 s . c om*/ * @return the type. */ protected Type determineInferredType(Method method) { if (method == null) { return null; } Type genericParameterType = null; for (int i = 0; i < method.getParameterTypes().length; i++) { MethodParameter methodParameter = new MethodParameter(method, i); /* * We're looking for a single non-annotated parameter, or one annotated with @Payload. * We ignore parameters with type Message because they are not involved with conversion. */ if (eligibleParameter(methodParameter) && (methodParameter.getParameterAnnotations().length == 0 || methodParameter.hasParameterAnnotation(Payload.class))) { if (genericParameterType == null) { genericParameterType = methodParameter.getGenericParameterType(); if (genericParameterType instanceof ParameterizedType) { ParameterizedType parameterizedType = (ParameterizedType) genericParameterType; if (parameterizedType.getRawType().equals(Message.class)) { genericParameterType = ((ParameterizedType) genericParameterType) .getActualTypeArguments()[0]; } else if (parameterizedType.getRawType().equals(List.class) && parameterizedType.getActualTypeArguments().length == 1) { Type paramType = parameterizedType.getActualTypeArguments()[0]; this.isConsumerRecordList = paramType.equals(io.nats.client.Message.class) || (paramType instanceof ParameterizedType && ((ParameterizedType) paramType) .getRawType().equals(io.nats.client.Message.class)); this.isMessageList = paramType.equals(Message.class) || (paramType instanceof ParameterizedType && ((ParameterizedType) paramType).getRawType().equals(Message.class)); } } } else { if (this.logger.isDebugEnabled()) { this.logger.debug("Ambiguous parameters for target payload for method " + method + "; no inferred type available"); } break; } } } Assert.state(!this.isConsumerRecordList || method.getParameterTypes().length == 1, "A parameter of type 'List<ConsumerRecord>' must be the only parameter"); Assert.state(!this.isMessageList || method.getParameterTypes().length == 1, "A parameter of type 'List<Message<?>>' must be the only parameter"); return genericParameterType; }
From source file:dstrelec.nats.listener.DefaultNatsListenerContainer.java
protected void doStart() { if (isRunning()) { return;/*from w ww . j a v a 2 s .co m*/ } ContainerProperties containerProperties = getContainerProperties(); this.subscriptions.clear(); this.listener = containerProperties.getMessageListener(); Assert.state(this.listener != null, "A MessageListener is required"); try { final Connection connection = DefaultNatsListenerContainer.this.connectionFactory.getConnection(); MessageHandler messageHandler = createMessageHandler(); for (String subject : containerProperties.getSubjects()) { AsyncSubscription subscription = connection.subscribe(subject, messageHandler); subscriptions.add(subscription); } this.connection = connection; ErrorHandler errHandler = containerProperties.getErrorHandler(); this.errorHandler = errHandler == null ? new LoggingErrorHandler() : errHandler; this.running = true; } catch (IOException e) { //TODO handle exception e.printStackTrace(); } }
From source file:gov.va.vinci.chartreview.util.CRSchemaXML.java
private void checkState() { Assert.state(isRendering, "Illegal CRSchemaXML Converter call!"); }
From source file:grails.converters.XML.java
private void checkState() { Assert.state(isRendering, "Illegal XML Converter call!"); }
From source file:hello.MetricsActivator.java
@SuppressWarnings("unchecked") private Map<String, MessageChannelMetrics> registerChannels(Set<MessageChannelMetrics> messageChannelMetrics) { final Map<String, MessageChannelMetrics> metricsEnabledChannels = new HashMap<String, MessageChannelMetrics>(); for (MessageChannelMetrics monitor : messageChannelMetrics) { String name = ((NamedComponent) monitor).getComponentName(); this.allChannelsByName.put(name, monitor); //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< if (!matches(this.componentNamePatterns, name)) { //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< continue; }/* w ww . j a va 2 s. c o m*/ // Only register once... if (!this.channelsByName.containsKey(name)) { //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< String beanKey = getChannelBeanKey(name); logger.info("Registering MessageChannel " + name); if (name != null) { this.channelsByName.put(name, monitor); } AbstractMessageChannelMetrics metrics = this.metricsFactory.createChannelMetrics(name); //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Assert.state(metrics != null, "'metrics' must not be null"); Boolean enabled = smartMatch(this.enabledCountsPatterns, name); //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< if (enabled != null) { monitor.enableCounts(enabled); } enabled = smartMatch(this.enabledStatsPatterns, name); //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< if (enabled != null) { monitor.enableStats(enabled); metrics.setFullStatsEnabled(enabled); } if (monitor instanceof ConfigurableMetricsAware) { ((ConfigurableMetricsAware<AbstractMessageChannelMetrics>) monitor).configureMetrics(metrics); } metricsEnabledChannels.put(beanKey, monitor); } } return metricsEnabledChannels; }
From source file:hello.MetricsActivator.java
@SuppressWarnings("unchecked") private Map<String, MessageHandlerMetrics> registerHandlers(Set<MessageHandlerMetrics> messageHandlerMetrics) { final Map<String, MessageHandlerMetrics> metricsEnabledHandlers = new HashMap<String, MessageHandlerMetrics>(); for (MessageHandlerMetrics handler : messageHandlerMetrics) { MessageHandlerMetrics monitor = enhanceHandlerMonitor(handler); //<<<<<<<<<<<<<<<<<<<<<<<<< String name = monitor.getManagedName(); this.allHandlersByName.put(name, monitor); //<<<<<<<<<<<<<<<<<<<<<<<<< if (!matches(this.componentNamePatterns, name)) { //<<<<<<<<<<<<<<<<<<<<<<<<< continue; }/* w ww .j a v a2s.c om*/ // Only register once... if (!handlersByName.containsKey(name)) { //<<<<<<<<<<<<<<<<<<<<<<<<< String beanKey = getHandlerBeanKey(monitor); //<<<<<<<<<<<<<<<<<<<<<<<<< if (name != null) { handlersByName.put(name, monitor); //<<<<<<<<<<<<<<<<<<<<<<<<< } AbstractMessageHandlerMetrics metrics = this.metricsFactory.createHandlerMetrics(name); //<<<<<<<<<<<<<<<<<<<<<<<<< Assert.state(metrics != null, "'metrics' must not be null"); Boolean enabled = smartMatch(this.enabledCountsPatterns, name); //<<<<<<<<<<<<<<<<<<<<<<<<< if (enabled != null) { monitor.enableCounts(enabled); } enabled = smartMatch(this.enabledStatsPatterns, name); if (enabled != null) { monitor.enableStats(enabled); metrics.setFullStatsEnabled(enabled); } if (monitor instanceof ConfigurableMetricsAware) { ((ConfigurableMetricsAware<AbstractMessageHandlerMetrics>) monitor).configureMetrics(metrics); } metricsEnabledHandlers.put(beanKey, monitor); } } return metricsEnabledHandlers; }
From source file:me.andpay.ti.spring.batch.FlatFileItemWriter.java
protected OutputState getOutputState() { if (state == null) { File file;/*from w ww . j ava 2 s . c om*/ try { file = resource.getFile(); } catch (IOException e) { throw new ItemStreamException("Could not convert resource to file: [" + resource + "]", e); } Assert.state(!file.exists() || file.canWrite(), "Resource is not writable: [" + resource + "]"); state = new OutputState(); state.setDeleteIfExists(shouldDeleteIfExists); state.setAppendAllowed(append); state.setEncoding(encoding); } return (OutputState) state; }