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

Object getBean(String name) throws BeansException;

Source Link

Document

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

Usage

From source file:org.springframework.cloud.stream.metrics.ApplicationMetricsExporterTests.java

@Test
public void usingPrefix() throws Exception {
    ConfigurableApplicationContext applicationContext = SpringApplication.run(BinderExporterApplication.class,
            "--server.port=0", "--spring.jmx.enabled=false", "--spring.metrics.export.delay-millis=500",
            "--spring.cloud.stream.metrics.prefix=foo",
            "--spring.cloud.stream.bindings." + Emitter.APPLICATION_METRICS + ".destination=foo");
    Emitter emitterSource = applicationContext.getBean(Emitter.class);
    MessageCollector collector = applicationContext.getBean(MessageCollector.class);
    Message<?> message = collector.forChannel(emitterSource.applicationMetrics()).poll(10, TimeUnit.SECONDS);
    Assert.assertNotNull(message);//from  w  w w .jav a  2  s  .c o  m
    ObjectMapper mapper = applicationContext.getBean(ObjectMapper.class);
    ApplicationMetrics applicationMetrics = mapper.readValue((String) message.getPayload(),
            ApplicationMetrics.class);
    Assert.assertTrue(
            contains("integration.channel.errorChannel.errorRate.mean", applicationMetrics.getMetrics()));
    Assert.assertTrue(contains("mem", applicationMetrics.getMetrics()));
    Assert.assertEquals("foo.application", applicationMetrics.getName());
    Assert.assertTrue(CollectionUtils.isEmpty(applicationMetrics.getProperties()));
    applicationContext.close();
}

From source file:org.springframework.cloud.stream.metrics.ApplicationMetricsExporterTests.java

@Test
public void includesExcludesDefaultConfig() throws Exception {
    ConfigurableApplicationContext applicationContext = SpringApplication.run(BinderExporterApplication.class,
            "--server.port=0", "--spring.jmx.enabled=false", "--spring.metrics.export.delay-millis=500",
            "--spring.cloud.stream.bindings." + Emitter.APPLICATION_METRICS + ".destination=foo",
            "--spring.metrics.export.includes=mem**", "--spring.metrics.export.excludes=integration**");
    Emitter emitterSource = applicationContext.getBean(Emitter.class);
    MessageCollector collector = applicationContext.getBean(MessageCollector.class);
    Message<?> message = collector.forChannel(emitterSource.applicationMetrics()).poll(10, TimeUnit.SECONDS);
    Assert.assertNotNull(message);//from   ww  w .  j  av a 2  s .co m
    ObjectMapper mapper = applicationContext.getBean(ObjectMapper.class);
    ApplicationMetrics applicationMetrics = mapper.readValue((String) message.getPayload(),
            ApplicationMetrics.class);
    Assert.assertFalse(
            contains("integration.channel.errorChannel.errorRate.mean", applicationMetrics.getMetrics()));
    Assert.assertTrue(contains("mem", applicationMetrics.getMetrics()));
    Assert.assertTrue(CollectionUtils.isEmpty(applicationMetrics.getProperties()));
    applicationContext.close();
}

From source file:org.springframework.cloud.stream.metrics.ApplicationMetricsExporterTests.java

@Test
public void includesExcludesWithApplicationMetricsConfiguration() throws Exception {
    ConfigurableApplicationContext applicationContext = SpringApplication.run(BinderExporterApplication.class,
            "--server.port=0", "--spring.jmx.enabled=false",
            "--spring.metrics.export.triggers.application.delay-millis=500",
            "--spring.cloud.stream.bindings." + Emitter.APPLICATION_METRICS + ".destination=foo",
            "--spring.metrics.export.triggers.application.includes=mem**",
            "--spring.metrics.export.triggers.application.excludes=integration**");
    Emitter emitterSource = applicationContext.getBean(Emitter.class);
    MessageCollector collector = applicationContext.getBean(MessageCollector.class);
    Message<?> message = collector.forChannel(emitterSource.applicationMetrics()).poll(10, TimeUnit.SECONDS);
    Assert.assertNotNull(message);//from w  w w .  ja  va2  s . co  m
    ObjectMapper mapper = applicationContext.getBean(ObjectMapper.class);
    ApplicationMetrics applicationMetrics = mapper.readValue((String) message.getPayload(),
            ApplicationMetrics.class);
    Assert.assertFalse(
            contains("integration.channel.errorChannel.errorRate.mean", applicationMetrics.getMetrics()));
    Assert.assertTrue(contains("mem", applicationMetrics.getMetrics()));
    Assert.assertTrue(CollectionUtils.isEmpty(applicationMetrics.getProperties()));
    applicationContext.close();
}

From source file:org.springframework.cloud.stream.metrics.ApplicationMetricsExporterTests.java

@Test
public void includesExcludesWithProperties() throws Exception {
    ConfigurableApplicationContext applicationContext = SpringApplication.run(BinderExporterApplication.class,
            "--server.port=0", "--spring.jmx.enabled=false", "--spring.metrics.export.delay-millis=500",
            "--spring.cloud.stream.bindings." + Emitter.APPLICATION_METRICS + ".destination=foo",
            "--spring.metrics.export.includes=integration**",
            "--spring.cloud.stream.metrics.properties=java**,spring.test.env**");
    Emitter emitterSource = applicationContext.getBean(Emitter.class);
    MessageCollector collector = applicationContext.getBean(MessageCollector.class);
    Message<?> message = collector.forChannel(emitterSource.applicationMetrics()).poll(10, TimeUnit.SECONDS);
    Assert.assertNotNull(message);//w w w  . j  a  va 2s .c o m
    ObjectMapper mapper = applicationContext.getBean(ObjectMapper.class);
    ApplicationMetrics applicationMetrics = mapper.readValue((String) message.getPayload(),
            ApplicationMetrics.class);
    Assert.assertFalse(contains("mem", applicationMetrics.getMetrics()));
    Assert.assertTrue(
            contains("integration.channel.errorChannel.errorRate.mean", applicationMetrics.getMetrics()));
    Assert.assertFalse(CollectionUtils.isEmpty(applicationMetrics.getProperties()));
    Assert.assertTrue(applicationMetrics.getProperties().get("spring.test.env.syntax").equals("testing"));
    applicationContext.close();
}

From source file:org.springframework.cloud.stream.metrics.ApplicationMetricsExporterTests.java

@Test
public void propertiesWithPlaceholdersAndExpressions() throws Exception {
    ConfigurableApplicationContext applicationContext = SpringApplication.run(BinderExporterApplication.class,
            "--server.port=0", "--spring.jmx.enabled=false", "--PLATFORM_APP_NAME=123-name-foo",
            "--PLATFORM_APP_ID=123-id-bar",
            "--spring.cloud.application.guid=${PLATFORM_APP_NAME}.${PLATFORM_APP_ID}",
            "--spring.cloud.application.guid.expression=#{'${PLATFORM_APP_NAME}' + '..' + '${PLATFORM_APP_ID}'}",
            "--spring.cloud.application.guid.default.prop=${app.name.not.found:time-source}",
            "--spring.cloud.application.guid.default.env=${APP_NAME_NOT_FOUND:time-source}",
            "--spring.metrics.export.delay-millis=500",
            "--spring.cloud.stream.bindings." + Emitter.APPLICATION_METRICS + ".destination=foo",
            "--spring.metrics.export.includes=integration**",
            "--spring.cloud.stream.metrics.properties=spring**");
    Emitter emitterSource = applicationContext.getBean(Emitter.class);
    MessageCollector collector = applicationContext.getBean(MessageCollector.class);
    Message<?> message = collector.forChannel(emitterSource.applicationMetrics()).poll(10, TimeUnit.SECONDS);
    Assert.assertNotNull(message);//  w ww  .  j ava  2 s .  c o m
    ObjectMapper mapper = applicationContext.getBean(ObjectMapper.class);
    ApplicationMetrics applicationMetrics = mapper.readValue((String) message.getPayload(),
            ApplicationMetrics.class);
    Assert.assertTrue(
            contains("integration.channel.errorChannel.errorRate.mean", applicationMetrics.getMetrics()));
    Assertions.assertThat(applicationMetrics.getProperties().get("spring.cloud.application.guid"))
            .isEqualTo("123-name-foo.123-id-bar");
    Assertions.assertThat(applicationMetrics.getProperties().get("spring.cloud.application.guid.expression"))
            .isEqualTo("123-name-foo..123-id-bar");
    Assertions.assertThat(applicationMetrics.getProperties().get("spring.cloud.application.guid.default.prop"))
            .isEqualTo("time-source");
    Assertions.assertThat(applicationMetrics.getProperties().get("spring.cloud.application.guid.default.env"))
            .isEqualTo("time-source");
    Assert.assertFalse(CollectionUtils.isEmpty(applicationMetrics.getProperties()));
    Assert.assertTrue(applicationMetrics.getProperties().get("spring.test.env.syntax").equals("testing"));
    applicationContext.close();
}

From source file:org.springframework.cloud.stream.metrics.ApplicationMetricsExporterTests.java

@Test
public void propertiesFromLowerPrioritySourcesOverridden() throws Exception {
    System.setProperty("spring.cloud.application.guid.test.metrics", "lowPriority");
    try {/*w  w  w.j  a va  2  s .c  o m*/
        ConfigurableApplicationContext applicationContext = SpringApplication.run(
                BinderExporterApplication.class, "--server.port=0", "--spring.jmx.enabled=false",
                "--spring.cloud.application.guid.test.metrics=highPriority",
                "--spring.metrics.export.delay-millis=500",
                "--spring.cloud.stream.bindings." + Emitter.APPLICATION_METRICS + ".destination=foo",
                "--spring.metrics.export.includes=integration**",
                "--spring.cloud.stream.metrics.properties=spring**");
        Emitter emitterSource = applicationContext.getBean(Emitter.class);
        MessageCollector collector = applicationContext.getBean(MessageCollector.class);
        Message<?> message = collector.forChannel(emitterSource.applicationMetrics()).poll(10,
                TimeUnit.SECONDS);
        Assert.assertNotNull(message);
        ObjectMapper mapper = applicationContext.getBean(ObjectMapper.class);
        ApplicationMetrics applicationMetrics = mapper.readValue((String) message.getPayload(),
                ApplicationMetrics.class);
        Assert.assertTrue(
                contains("integration.channel.errorChannel.errorRate.mean", applicationMetrics.getMetrics()));
        Assertions
                .assertThat(
                        applicationMetrics.getProperties().get("spring.cloud.application.guid.test.metrics"))
                .isEqualTo("highPriority");
        applicationContext.close();
    } finally {
        System.clearProperty("spring.cloud.application.guid.test.metrics");
    }
}

From source file:org.springframework.cloud.stream.metrics.ApplicationMetricsExporterTests.java

@Test
public void overrideAppName() throws Exception {
    ConfigurableApplicationContext applicationContext = SpringApplication.run(BinderExporterApplication.class,
            "--server.port=0", "--spring.jmx.enabled=false", "--spring.metrics.export.delay-millis=500",
            "--spring.application.name=foo",
            "--spring.cloud.stream.bindings." + Emitter.APPLICATION_METRICS + ".destination=foo",
            "--spring.cloud.stream.metrics.key=foobarfoo");
    Emitter emitterSource = applicationContext.getBean(Emitter.class);
    MessageCollector collector = applicationContext.getBean(MessageCollector.class);
    Message<?> message = collector.forChannel(emitterSource.applicationMetrics()).poll(10, TimeUnit.SECONDS);
    Assert.assertNotNull(message);/*  w  w w  .j  av  a2 s . c o  m*/
    ObjectMapper mapper = applicationContext.getBean(ObjectMapper.class);
    ApplicationMetrics applicationMetrics = mapper.readValue((String) message.getPayload(),
            ApplicationMetrics.class);
    Assert.assertTrue(
            contains("integration.channel.errorChannel.errorRate.mean", applicationMetrics.getMetrics()));
    Assert.assertTrue(contains("mem", applicationMetrics.getMetrics()));
    Assert.assertEquals("foobarfoo", applicationMetrics.getName());
    Assert.assertTrue(CollectionUtils.isEmpty(applicationMetrics.getProperties()));
    applicationContext.close();
}

From source file:org.springframework.data.hadoop.admin.workflow.support.FileSystemApplicationContextFactoryTest.java

/**
 * Test method for {@link org.springframework.data.hadoop.admin.workflow.support.FileSystemApplicationContextFactory#createApplicationContext()}.
 * @throws SpringHadoopAdminWorkflowException 
 * @throws ConfigurationException //from www  .j ava 2s .c om
 */
@Test
public void testCreateApplicationContext() throws ConfigurationException, SpringHadoopAdminWorkflowException {
    ApplicationContext rootContext = null;
    try {
        rootContext = new ClassPathXmlApplicationContext(
                new String[] { "classpath:org/springframework/data/hadoop/admin/env-context.xml",
                        "classpath:org/springframework/data/hadoop/admin/data-source-context.xml",
                        "classpath:org/springframework/data/hadoop/admin/execution-context.xml", });
    } catch (Exception e) {
        Assert.fail("test create root application context failed." + e.getMessage());
    }
    try {
        JobRepository jobRepository = rootContext.getBean("jobRepository", JobRepository.class);
        if (jobRepository == null) {
            Assert.fail("test get JobRepository is null");
        }
    } catch (Exception e) {
        Assert.fail("test get JobRepository failed." + e.getMessage());
    }
    contextFactory.setApplicationContext(rootContext);
    File descriptor = new File(
            "src/test/resources/org/springframework/data/hadoop/admin/workflow/support/context.xml");
    File folder = descriptor.getParentFile();
    HadoopWorkflowUtils.processUploadedFile(folder);
    ClassLoader loader = HadoopWorkflowUtils.getWorkflowClassLoader(folder);
    contextFactory.setBeanClassLoader(loader);
    contextFactory.setResource(new FileSystemResource(
            "src/test/resources/org/springframework/data/hadoop/admin/workflow/support/context.xml"));
    ConfigurableApplicationContext newContext = contextFactory.createApplicationContext();
    logger.info("new context:" + newContext.toString());
    Object obj = newContext.getBean("wordcount-withscript-job");
    Assert.assertNotNull(obj);
}

From source file:org.springframework.data.hadoop.admin.workflow.support.FileSystemApplicationContextFactoryTest.java

@Test(expected = NoSuchBeanDefinitionException.class)
public void testCreateApplicationContext_withourResource() {
    ApplicationContext rootContext = new ClassPathXmlApplicationContext(
            new String[] { "classpath:org/springframework/data/hadoop/admin/env-context.xml",
                    "classpath:org/springframework/data/hadoop/admin/data-source-context.xml",
                    "classpath:org/springframework/data/hadoop/admin/execution-context.xml", });
    contextFactory.setApplicationContext(rootContext);
    File folder = new File("src/test/resources/org/springframework/data/hadoop/admin/workflow/support");
    ClassLoader loader = HadoopWorkflowUtils.getWorkflowClassLoader(folder);
    contextFactory.setBeanClassLoader(loader);
    ConfigurableApplicationContext newContext = contextFactory.createApplicationContext();
    Object obj = newContext.getBean("wordcount-withscript-job");
    Assert.assertNull(obj);/*from w  w  w  . ja va  2 s . c o  m*/
}

From source file:org.springframework.data.hadoop.examples.CommonMain.java

public static void main(String args[]) {

    ConfigurableApplicationContext context = null;

    try {/*from  w  w w.ja va 2s. c  o  m*/
        System.out.println("Running example");
        context = new ClassPathXmlApplicationContext("application-context.xml");
        JobRunner runner = (JobRunner) context.getBean("runner");
        runner.call();
        System.out.println("Complete example");
    } catch (Throwable e) {
        log.error("Error in main method", e);
    } finally {
        if (context != null) {
            context.close();
        }
    }

}