Example usage for org.springframework.util Assert isInstanceOf

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

Introduction

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

Prototype

public static void isInstanceOf(Class<?> type, @Nullable Object obj) 

Source Link

Document

Assert that the provided object is an instance of the provided class.

Usage

From source file:org.springframework.xd.dirt.integration.bus.MessageBusSupport.java

private int invokePartitionSelector(String partitionSelectorClassName, Object key, int partitionCount) {
    if (this.applicationContext.containsBean(partitionSelectorClassName)) {
        return this.applicationContext.getBean(partitionSelectorClassName, PartitionSelectorStrategy.class)
                .selectPartition(key, partitionCount);
    }/* w ww .  j  a v a2 s  . c o  m*/
    Class<?> clazz;
    try {
        clazz = ClassUtils.forName(partitionSelectorClassName, this.applicationContext.getClassLoader());
    } catch (Exception e) {
        logger.error("Failed to load partition selector", e);
        throw new MessageBusException("Failed to load partition selector: " + partitionSelectorClassName, e);
    }
    try {
        Object extractor = clazz.newInstance();
        Assert.isInstanceOf(PartitionKeyExtractorStrategy.class, extractor);
        this.applicationContext.getBeanFactory().registerSingleton(partitionSelectorClassName, extractor);
        this.applicationContext.getBeanFactory().initializeBean(extractor, partitionSelectorClassName);
        return ((PartitionSelectorStrategy) extractor).selectPartition(key, partitionCount);
    } catch (Exception e) {
        logger.error("Failed to instantiate partition selector", e);
        throw new MessageBusException("Failed to instantiate partition selector: " + partitionSelectorClassName,
                e);
    }
}

From source file:org.springframework.xd.dirt.integration.rabbit.RabbitMessageBus.java

@Override
public void bindProducer(final String name, MessageChannel moduleOutputChannel, Properties properties) {
    Assert.isInstanceOf(SubscribableChannel.class, moduleOutputChannel);
    RabbitPropertiesAccessor accessor = new RabbitPropertiesAccessor(properties);
    if (name.startsWith(P2P_NAMED_CHANNEL_TYPE_PREFIX)) {
        validateProducerProperties(name, properties, SUPPORTED_NAMED_PRODUCER_PROPERTIES);
    } else {/*  w w  w.  j  a  v  a 2 s .c  o m*/
        validateProducerProperties(name, properties, SUPPORTED_PRODUCER_PROPERTIES);
    }
    if (!bindNewProducerDirectlyIfPossible(name, (SubscribableChannel) moduleOutputChannel, accessor)) {
        if (logger.isInfoEnabled()) {
            logger.info("declaring queue for outbound: " + name);
        }
        AmqpOutboundEndpoint queue = this.buildOutboundEndpoint(name, accessor,
                determineRabbitTemplate(accessor));
        doRegisterProducer(name, moduleOutputChannel, queue, accessor);
    }
}

From source file:org.springframework.xd.dirt.integration.rabbit.RabbitMessageBus.java

private void doRegisterProducer(final String name, MessageChannel moduleOutputChannel,
        AmqpOutboundEndpoint delegate, String replyTo, RabbitPropertiesAccessor properties) {
    Assert.isInstanceOf(SubscribableChannel.class, moduleOutputChannel);
    MessageHandler handler = new SendingHandler(delegate, replyTo, properties);
    EventDrivenConsumer consumer = new EventDrivenConsumer((SubscribableChannel) moduleOutputChannel, handler);
    consumer.setBeanFactory(getBeanFactory());
    consumer.setBeanName("outbound." + name);
    consumer.afterPropertiesSet();/*www  .j  a  v  a2 s  . com*/
    Binding producerBinding = Binding.forProducer(name, moduleOutputChannel, consumer, properties);
    addBinding(producerBinding);
    producerBinding.start();
}

From source file:org.springframework.xd.dirt.integration.rabbit.RabbitMessageBus.java

@Override
public void bindRequestor(String name, MessageChannel requests, MessageChannel replies, Properties properties) {
    if (logger.isInfoEnabled()) {
        logger.info("binding requestor: " + name);
    }/*  ww w.j a  v a 2  s. c  o  m*/
    validateProducerProperties(name, properties, SUPPORTED_REQUESTING_PRODUCER_PROPERTIES);
    Assert.isInstanceOf(SubscribableChannel.class, requests);
    RabbitPropertiesAccessor accessor = new RabbitPropertiesAccessor(properties);
    String queueName = name + ".requests";
    AmqpOutboundEndpoint queue = this.buildOutboundEndpoint(queueName, accessor, this.rabbitTemplate);
    queue.setBeanFactory(this.getBeanFactory());

    String replyQueueName = accessor.getPrefix(this.defaultPrefix) + name + ".replies."
            + this.getIdGenerator().generateId();
    this.doRegisterProducer(name, requests, queue, replyQueueName, accessor);
    Queue replyQueue = new Queue(replyQueueName, false, false, true); // auto-delete
    declareQueueIfNotPresent(replyQueue);
    // register with context so it will be redeclared after a connection failure
    this.autoDeclareContext.getBeanFactory().registerSingleton(replyQueueName, replyQueue);
    this.doRegisterConsumer(name, replies, replyQueue, accessor, false);
}