Example usage for org.springframework.util Assert state

List of usage examples for org.springframework.util Assert state

Introduction

In this page you can find the example usage for org.springframework.util Assert state.

Prototype

public static void state(boolean expression, Supplier<String> messageSupplier) 

Source Link

Document

Assert a boolean expression, throwing an IllegalStateException if the expression evaluates to false .

Usage

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;
}