Example usage for org.springframework.context ConfigurableApplicationContext getBean

List of usage examples for org.springframework.context ConfigurableApplicationContext getBean

Introduction

In this page you can find the example usage for org.springframework.context ConfigurableApplicationContext getBean.

Prototype

<T> T getBean(String name, Class<T> requiredType) throws BeansException;

Source Link

Document

Return an instance, which may be shared or independent, of the specified bean.

Usage

From source file:de.iteratec.iteraplan.xmi.XmiImport.java

/**
 * Imports the XMI data.//  www .j a  va2s . c o m
 * 
 * @throws IOException if the {@code iteraplanData.xmi} file will be not found
 */
public void importData() throws IOException {
    LOGGER.info("Start Bank Data Import");

    ConfigurableApplicationContext context = prepareEnvironment(HistoryInitialization.USE_CONFIG_FILE);
    try {
        XmiImportService xmiDeserializer = context.getBean("xmiImportService", XmiImportService.class);

        Resource importFile = new ClassPathResource("de/iteratec/iteraplan/xmi/iteraplanData.xmi");
        xmiDeserializer.importXmi(importFile.getInputStream());

        LOGGER.info("XMI data imported successfuly");
    } finally {
        context.close();
    }
}

From source file:org.springframework.cloud.function.adapter.aws.SpringFunctionInitializer.java

@SuppressWarnings("unchecked")
protected void initialize() {
    if (!this.initialized.compareAndSet(false, true)) {
        return;/*  w ww  . j a v  a 2 s . co  m*/
    }
    logger.info("Initializing: " + configurationClass);
    SpringApplicationBuilder builder = new SpringApplicationBuilder(configurationClass);
    ConfigurableApplicationContext context = builder.web(false).run();
    context.getAutowireCapableBeanFactory().autowireBean(this);
    String name = context.getEnvironment().getProperty("function.name");
    boolean defaultName = false;
    if (name == null) {
        name = "function";
        defaultName = true;
    }
    if (this.catalog == null) {
        this.function = context.getBean(name, Function.class);
    } else {
        this.function = this.catalog.lookupFunction(name);
        this.name = name;
        if (this.function == null) {
            if (defaultName) {
                name = "consumer";
            }
            this.consumer = this.catalog.lookupConsumer(name);
            this.name = name;
            if (this.consumer == null) {
                if (defaultName) {
                    name = "supplier";
                }
                this.supplier = this.catalog.lookupSupplier(name);
                this.name = name;
            }
        }
    }
    this.context = context;
}

From source file:org.springframework.integration.history.MessageHistoryIntegrationTests.java

@Test
public void testMessageHistoryWithHistoryWriter() {
    ConfigurableApplicationContext ac = new ClassPathXmlApplicationContext(
            "messageHistoryWithHistoryWriter.xml", MessageHistoryIntegrationTests.class);
    SampleGateway gateway = ac.getBean("sampleGateway", SampleGateway.class);
    DirectChannel endOfThePipeChannel = ac.getBean("endOfThePipeChannel", DirectChannel.class);
    MessageHandler handler = Mockito.spy(new MessageHandler() {
        @Override//  ww w  . j av  a2  s.c o m
        public void handleMessage(Message<?> message) {
            Iterator<Properties> historyIterator = message.getHeaders()
                    .get(MessageHistory.HEADER_NAME, MessageHistory.class).iterator();

            Properties event = historyIterator.next();
            assertEquals("sampleGateway", event.getProperty(MessageHistory.NAME_PROPERTY));
            assertEquals("gateway", event.getProperty(MessageHistory.TYPE_PROPERTY));

            event = historyIterator.next();
            assertEquals("bridgeInChannel", event.getProperty(MessageHistory.NAME_PROPERTY));
            assertEquals("channel", event.getProperty(MessageHistory.TYPE_PROPERTY));

            event = historyIterator.next();
            assertEquals("testBridge", event.getProperty(MessageHistory.NAME_PROPERTY));
            assertEquals("bridge", event.getProperty(MessageHistory.TYPE_PROPERTY));

            event = historyIterator.next();
            assertEquals("headerEnricherChannel", event.getProperty(MessageHistory.NAME_PROPERTY));
            assertEquals("channel", event.getProperty(MessageHistory.TYPE_PROPERTY));

            event = historyIterator.next();
            assertEquals("testHeaderEnricher", event.getProperty(MessageHistory.NAME_PROPERTY));
            assertEquals("transformer", event.getProperty(MessageHistory.TYPE_PROPERTY));

            event = historyIterator.next();
            assertEquals("chainChannel", event.getProperty(MessageHistory.NAME_PROPERTY));
            assertEquals("channel", event.getProperty(MessageHistory.TYPE_PROPERTY));

            event = historyIterator.next();
            assertEquals("sampleChain", event.getProperty(MessageHistory.NAME_PROPERTY));
            assertEquals("chain", event.getProperty(MessageHistory.TYPE_PROPERTY));

            event = historyIterator.next();
            assertEquals("sampleChain$child.service-activator-within-chain",
                    event.getProperty(MessageHistory.NAME_PROPERTY));
            assertEquals("service-activator", event.getProperty(MessageHistory.TYPE_PROPERTY));

            event = historyIterator.next();
            assertEquals("filterChannel", event.getProperty(MessageHistory.NAME_PROPERTY));
            assertEquals("channel", event.getProperty(MessageHistory.TYPE_PROPERTY));

            event = historyIterator.next();
            assertEquals("testFilter", event.getProperty(MessageHistory.NAME_PROPERTY));
            assertEquals("filter", event.getProperty(MessageHistory.TYPE_PROPERTY));

            event = historyIterator.next();
            assertEquals("splitterChannel", event.getProperty(MessageHistory.NAME_PROPERTY));
            assertEquals("channel", event.getProperty(MessageHistory.TYPE_PROPERTY));

            event = historyIterator.next();
            assertEquals("testSplitter", event.getProperty(MessageHistory.NAME_PROPERTY));
            assertEquals("splitter", event.getProperty(MessageHistory.TYPE_PROPERTY));

            event = historyIterator.next();
            assertEquals("aggregatorChannel", event.getProperty(MessageHistory.NAME_PROPERTY));
            assertEquals("channel", event.getProperty(MessageHistory.TYPE_PROPERTY));

            event = historyIterator.next();
            assertEquals("testAggregator", event.getProperty(MessageHistory.NAME_PROPERTY));
            assertEquals("aggregator", event.getProperty(MessageHistory.TYPE_PROPERTY));

            event = historyIterator.next();
            assertEquals("endOfThePipeChannel", event.getProperty(MessageHistory.NAME_PROPERTY));
            assertEquals("channel", event.getProperty(MessageHistory.TYPE_PROPERTY));

            MessageChannel replyChannel = (MessageChannel) message.getHeaders().getReplyChannel();
            replyChannel.send(message);
        }
    });
    endOfThePipeChannel.subscribe(handler);
    Message<?> result = gateway.echo("hello");
    Mockito.verify(handler, Mockito.times(1)).handleMessage(Mockito.any(Message.class));
    assertNotNull(result);
    //assertEquals("hello", result);
    ac.close();
}

From source file:org.springframework.integration.history.MessageHistoryIntegrationTests.java

@Test
public void testMessageHistoryWithoutHistoryWriter() {
    ConfigurableApplicationContext ac = new ClassPathXmlApplicationContext(
            "messageHistoryWithoutHistoryWriter.xml", MessageHistoryIntegrationTests.class);
    SampleGateway gateway = ac.getBean("sampleGateway", SampleGateway.class);
    DirectChannel endOfThePipeChannel = ac.getBean("endOfThePipeChannel", DirectChannel.class);
    MessageHandler handler = Mockito.spy(new MessageHandler() {
        @Override/*from  w  ww .j a va  2s .c  o  m*/
        public void handleMessage(Message<?> message) {
            assertNull(message.getHeaders().get(MessageHistory.HEADER_NAME, MessageHistory.class));
            MessageChannel replyChannel = (MessageChannel) message.getHeaders().getReplyChannel();
            replyChannel.send(message);
        }
    });
    endOfThePipeChannel.subscribe(handler);
    gateway.echo("hello");
    Mockito.verify(handler, Mockito.times(1)).handleMessage(Mockito.any(Message.class));
    ac.close();
}

From source file:org.springframework.integration.history.MessageHistoryIntegrationTests.java

@Test
public void testMessageHistoryParser() {
    ConfigurableApplicationContext ac = new ClassPathXmlApplicationContext(
            "messageHistoryWithHistoryWriterNamespace.xml", MessageHistoryIntegrationTests.class);
    SampleGateway gateway = ac.getBean("sampleGateway", SampleGateway.class);
    DirectChannel endOfThePipeChannel = ac.getBean("endOfThePipeChannel", DirectChannel.class);
    MessageHandler handler = Mockito.spy(new MessageHandler() {
        @Override/*from  ww  w.j  av  a 2s.co  m*/
        public void handleMessage(Message<?> message) {
            Iterator<Properties> historyIterator = message.getHeaders()
                    .get(MessageHistory.HEADER_NAME, MessageHistory.class).iterator();
            assertTrue(historyIterator.hasNext());
            MessageChannel replyChannel = (MessageChannel) message.getHeaders().getReplyChannel();
            replyChannel.send(message);
        }
    });
    endOfThePipeChannel.subscribe(handler);
    gateway.echo("hello");
    Mockito.verify(handler, Mockito.times(1)).handleMessage(Mockito.any(Message.class));
    ac.close();
}

From source file:org.springframework.integration.history.MessageHistoryIntegrationTests.java

@Test
public void testMessageHistoryParserWithNamePatterns() {
    ConfigurableApplicationContext ac = new ClassPathXmlApplicationContext(
            "messageHistoryWithHistoryWriterNamespaceAndPatterns.xml", MessageHistoryIntegrationTests.class);
    SampleGateway gateway = ac.getBean("sampleGateway", SampleGateway.class);
    DirectChannel endOfThePipeChannel = ac.getBean("endOfThePipeChannel", DirectChannel.class);
    MessageHandler handler = Mockito.spy(new MessageHandler() {
        @Override//from  ww w .j  a  va  2 s.  c o m
        public void handleMessage(Message<?> message) {
            Iterator<Properties> historyIterator = message.getHeaders()
                    .get(MessageHistory.HEADER_NAME, MessageHistory.class).iterator();
            assertTrue(historyIterator.hasNext());
            Properties gatewayHistory = historyIterator.next();
            assertEquals("sampleGateway", gatewayHistory.get("name"));
            assertTrue(historyIterator.hasNext());
            Properties chainHistory = historyIterator.next();
            assertEquals("sampleChain", chainHistory.get("name"));
            assertFalse(historyIterator.hasNext());
            MessageChannel replyChannel = (MessageChannel) message.getHeaders().getReplyChannel();
            replyChannel.send(message);
        }
    });
    endOfThePipeChannel.subscribe(handler);
    gateway.echo("hello");
    Mockito.verify(handler, Mockito.times(1)).handleMessage(Mockito.any(Message.class));
    ac.close();
}

From source file:org.springframework.integration.history.MessageHistoryIntegrationTests.java

@Test
@Ignore/*from w w w  .j a  v a2  s  .c  o  m*/
public void testMessageHistoryWithHistoryPerformance() {
    ConfigurableApplicationContext acWithHistory = new ClassPathXmlApplicationContext(
            "perfWithMessageHistory.xml", MessageHistoryIntegrationTests.class);
    ConfigurableApplicationContext acWithoutHistory = new ClassPathXmlApplicationContext(
            "perfWithoutMessageHistory.xml", MessageHistoryIntegrationTests.class);

    SampleGateway gatewayHistory = acWithHistory.getBean("sampleGateway", SampleGateway.class);
    DirectChannel endOfThePipeChannelHistory = acWithHistory.getBean("endOfThePipeChannel",
            DirectChannel.class);
    endOfThePipeChannelHistory.subscribe(message -> {
        MessageChannel replyChannel = (MessageChannel) message.getHeaders().getReplyChannel();
        replyChannel.send(message);
    });

    SampleGateway gateway = acWithoutHistory.getBean("sampleGateway", SampleGateway.class);
    DirectChannel endOfThePipeChannel = acWithoutHistory.getBean("endOfThePipeChannel", DirectChannel.class);
    endOfThePipeChannel.subscribe(message -> {
        MessageChannel replyChannel = (MessageChannel) message.getHeaders().getReplyChannel();
        replyChannel.send(message);
    });

    StopWatch stopWatch = new StopWatch();
    stopWatch.start();
    for (int i = 0; i < 10000; i++) {
        gatewayHistory.echo("hello");
    }
    stopWatch.stop();
    logger.info("Elapsed time with history 10000 calls: " + stopWatch.getTotalTimeSeconds());
    stopWatch = new StopWatch();
    stopWatch.start();
    for (int i = 0; i < 10000; i++) {
        gateway.echo("hello");
    }
    stopWatch.stop();
    logger.info("Elapsed time without history 10000 calls: " + stopWatch.getTotalTimeSeconds());
    acWithHistory.close();
    acWithoutHistory.close();
}

From source file:org.springframework.integration.mail.ImapMailReceiverTests.java

@SuppressWarnings("resource")
@Test/*from w w  w  . java 2s  .  c o  m*/
@Ignore
public void testMessageHistory() throws Exception {
    ConfigurableApplicationContext context = new ClassPathXmlApplicationContext(
            "ImapIdleChannelAdapterParserTests-context.xml", ImapIdleChannelAdapterParserTests.class);
    ImapIdleChannelAdapter adapter = context.getBean("simpleAdapter", ImapIdleChannelAdapter.class);

    AbstractMailReceiver receiver = new ImapMailReceiver();
    receiver = spy(receiver);
    receiver.setBeanFactory(mock(BeanFactory.class));
    receiver.afterPropertiesSet();

    DirectFieldAccessor adapterAccessor = new DirectFieldAccessor(adapter);
    adapterAccessor.setPropertyValue("mailReceiver", receiver);

    MimeMessage mailMessage = mock(MimeMessage.class);
    Flags flags = mock(Flags.class);
    given(mailMessage.getFlags()).willReturn(flags);
    final Message[] messages = new Message[] { mailMessage };

    willAnswer(invocation -> {
        DirectFieldAccessor accessor = new DirectFieldAccessor((invocation.getMock()));
        IMAPFolder folder = mock(IMAPFolder.class);
        accessor.setPropertyValue("folder", folder);
        given(folder.hasNewMessages()).willReturn(true);
        return null;
    }).given(receiver).openFolder();

    willAnswer(invocation -> messages).given(receiver).searchForNewMessages();

    willAnswer(invocation -> null).given(receiver).fetchMessages(messages);

    PollableChannel channel = context.getBean("channel", PollableChannel.class);

    adapter.start();
    org.springframework.messaging.Message<?> replMessage = channel.receive(10000);
    MessageHistory history = MessageHistory.read(replMessage);
    assertNotNull(history);
    Properties componentHistoryRecord = TestUtils.locateComponentInHistory(history, "simpleAdapter", 0);
    assertNotNull(componentHistoryRecord);
    assertEquals("mail:imap-idle-channel-adapter", componentHistoryRecord.get("type"));
    adapter.stop();
    context.close();
}

From source file:org.springframework.integration.mail.ImapMailReceiverTests.java

@Test
public void testIdleChannelAdapterException() throws Exception {
    ConfigurableApplicationContext context = new ClassPathXmlApplicationContext(
            "ImapIdleChannelAdapterParserTests-context.xml", ImapIdleChannelAdapterParserTests.class);
    ImapIdleChannelAdapter adapter = context.getBean("simpleAdapter", ImapIdleChannelAdapter.class);

    //ImapMailReceiver receiver = (ImapMailReceiver) TestUtils.getPropertyValue(adapter, "mailReceiver");

    DirectChannel channel = new DirectChannel();
    channel.subscribe(new AbstractReplyProducingMessageHandler() {

        @Override/*  w  ww. j  a  v  a2  s .c  o  m*/
        protected Object handleRequestMessage(org.springframework.messaging.Message<?> requestMessage) {
            throw new RuntimeException("Failed");
        }
    });
    adapter.setOutputChannel(channel);
    QueueChannel errorChannel = new QueueChannel();
    adapter.setErrorChannel(errorChannel);

    AbstractMailReceiver receiver = new ImapMailReceiver();
    receiver = spy(receiver);
    receiver.setBeanFactory(mock(BeanFactory.class));
    receiver.afterPropertiesSet();

    Field folderField = AbstractMailReceiver.class.getDeclaredField("folder");
    folderField.setAccessible(true);
    Folder folder = mock(IMAPFolder.class);
    given(folder.getPermanentFlags()).willReturn(new Flags(Flags.Flag.USER));
    folderField.set(receiver, folder);

    willAnswer(invocation -> true).given(folder).isOpen();

    willAnswer(invocation -> null).given(receiver).openFolder();

    DirectFieldAccessor adapterAccessor = new DirectFieldAccessor(adapter);
    adapterAccessor.setPropertyValue("mailReceiver", receiver);

    MimeMessage mailMessage = mock(MimeMessage.class);
    Flags flags = mock(Flags.class);
    given(mailMessage.getFlags()).willReturn(flags);
    final Message[] messages = new Message[] { mailMessage };

    willAnswer(invocation -> messages).given(receiver).searchForNewMessages();

    willAnswer(invocation -> null).given(receiver).fetchMessages(messages);

    adapter.start();
    org.springframework.messaging.Message<?> replMessage = errorChannel.receive(10000);
    assertNotNull(replMessage);
    assertEquals("Failed", ((Exception) replMessage.getPayload()).getCause().getMessage());
    adapter.stop();
    context.close();
}

From source file:org.springframework.integration.mail.ImapMailReceiverTests.java

@SuppressWarnings("resource")
@Test/*from w  w  w . j  ava  2 s  .c o m*/
public void testNoInitialIdleDelayWhenRecentNotSupported() throws Exception {
    ConfigurableApplicationContext context = new ClassPathXmlApplicationContext(
            "ImapIdleChannelAdapterParserTests-context.xml", ImapIdleChannelAdapterParserTests.class);
    ImapIdleChannelAdapter adapter = context.getBean("simpleAdapter", ImapIdleChannelAdapter.class);

    QueueChannel channel = new QueueChannel();
    adapter.setOutputChannel(channel);

    ImapMailReceiver receiver = new ImapMailReceiver("imap:foo");
    receiver = spy(receiver);
    receiver.setBeanFactory(mock(BeanFactory.class));
    receiver.afterPropertiesSet();

    final IMAPFolder folder = mock(IMAPFolder.class);
    given(folder.getPermanentFlags()).willReturn(new Flags(Flags.Flag.USER));
    given(folder.isOpen()).willReturn(false).willReturn(true);
    given(folder.exists()).willReturn(true);

    DirectFieldAccessor adapterAccessor = new DirectFieldAccessor(adapter);
    adapterAccessor.setPropertyValue("mailReceiver", receiver);

    Field storeField = AbstractMailReceiver.class.getDeclaredField("store");
    storeField.setAccessible(true);
    Store store = mock(Store.class);
    given(store.isConnected()).willReturn(true);
    given(store.getFolder(Mockito.any(URLName.class))).willReturn(folder);
    storeField.set(receiver, store);

    willAnswer(invocation -> folder).given(receiver).getFolder();

    MimeMessage mailMessage = mock(MimeMessage.class);
    Flags flags = mock(Flags.class);
    given(mailMessage.getFlags()).willReturn(flags);
    final Message[] messages = new Message[] { mailMessage };

    final AtomicInteger shouldFindMessagesCounter = new AtomicInteger(2);
    willAnswer(invocation -> {
        /*
         * Return the message from first invocation of waitForMessages()
         * and in receive(); then return false in the next call to
         * waitForMessages() so we enter idle(); counter will be reset
         * to 1 in the mocked idle().
         */
        if (shouldFindMessagesCounter.decrementAndGet() >= 0) {
            return messages;
        } else {
            return new Message[0];
        }
    }).given(receiver).searchForNewMessages();

    willAnswer(invocation -> null).given(receiver).fetchMessages(messages);

    willAnswer(invocation -> {
        Thread.sleep(5000);
        shouldFindMessagesCounter.set(1);
        return null;
    }).given(folder).idle();

    adapter.start();

    /*
     * Idle takes 5 seconds; if all is well, we should receive the first message
     * before then.
     */
    assertNotNull(channel.receive(3000));
    // We should not receive any more until the next idle elapses
    assertNull(channel.receive(3000));
    assertNotNull(channel.receive(6000));
    adapter.stop();
    context.close();
}