Example usage for org.springframework.aop.framework ProxyConfig ProxyConfig

List of usage examples for org.springframework.aop.framework ProxyConfig ProxyConfig

Introduction

In this page you can find the example usage for org.springframework.aop.framework ProxyConfig ProxyConfig.

Prototype

ProxyConfig

Source Link

Usage

From source file:com.ryantenney.metrics.spring.config.annotation.MetricsConfigurationSupport.java

@Override
public void setImportMetadata(AnnotationMetadata importMetadata) {
    final AnnotationAttributes enableMetrics = AnnotationAttributes
            .fromMap(importMetadata.getAnnotationAttributes(EnableMetrics.class.getName(), false));
    Assert.notNull(enableMetrics, "@" + EnableMetrics.class.getSimpleName()
            + " is not present on importing class " + importMetadata.getClassName());

    this.proxyConfig = new ProxyConfig();
    this.proxyConfig.setExposeProxy(enableMetrics.getBoolean("exposeProxy"));
    this.proxyConfig.setProxyTargetClass(enableMetrics.getBoolean("proxyTargetClass"));
}

From source file:com.ryantenney.metrics.spring.config.AnnotationDrivenBeanDefinitionParser.java

@Override
public BeanDefinition parse(Element element, ParserContext parserContext) {
    final Object source = parserContext.extractSource(element);

    final CompositeComponentDefinition compDefinition = new CompositeComponentDefinition(element.getTagName(),
            source);//from  w  ww.  j  a  v a 2s  . c  o m
    parserContext.pushContainingComponent(compDefinition);

    String metricsBeanName = element.getAttribute("metric-registry");
    if (!StringUtils.hasText(metricsBeanName)) {
        metricsBeanName = registerComponent(parserContext,
                build(MetricRegistry.class, source, ROLE_APPLICATION));
    }

    String healthCheckBeanName = element.getAttribute("health-check-registry");
    if (!StringUtils.hasText(healthCheckBeanName)) {
        healthCheckBeanName = registerComponent(parserContext,
                build(HealthCheckRegistry.class, source, ROLE_APPLICATION));
    }

    final ProxyConfig proxyConfig = new ProxyConfig();

    if (StringUtils.hasText(element.getAttribute("expose-proxy"))) {
        proxyConfig.setExposeProxy(Boolean.valueOf(element.getAttribute("expose-proxy")));
    }

    if (StringUtils.hasText(element.getAttribute("proxy-target-class"))) {
        proxyConfig.setProxyTargetClass(Boolean.valueOf(element.getAttribute("proxy-target-class")));
    }

    //@formatter:off

    registerComponent(parserContext,
            build(MetricsBeanPostProcessorFactory.class, source, ROLE_INFRASTRUCTURE)
                    .setFactoryMethod("exceptionMetered").addConstructorArgReference(metricsBeanName)
                    .addConstructorArgValue(proxyConfig));

    registerComponent(parserContext,
            build(MetricsBeanPostProcessorFactory.class, source, ROLE_INFRASTRUCTURE)
                    .setFactoryMethod("metered").addConstructorArgReference(metricsBeanName)
                    .addConstructorArgValue(proxyConfig));

    registerComponent(parserContext,
            build(MetricsBeanPostProcessorFactory.class, source, ROLE_INFRASTRUCTURE).setFactoryMethod("timed")
                    .addConstructorArgReference(metricsBeanName).addConstructorArgValue(proxyConfig));

    registerComponent(parserContext, build(MetricsBeanPostProcessorFactory.class, source, ROLE_INFRASTRUCTURE)
            .setFactoryMethod("gauge").addConstructorArgReference(metricsBeanName));

    registerComponent(parserContext, build(MetricsBeanPostProcessorFactory.class, source, ROLE_INFRASTRUCTURE)
            .setFactoryMethod("injectMetric").addConstructorArgReference(metricsBeanName));

    registerComponent(parserContext, build(MetricsBeanPostProcessorFactory.class, source, ROLE_INFRASTRUCTURE)
            .setFactoryMethod("healthCheck").addConstructorArgReference(healthCheckBeanName));

    //@formatter:on

    parserContext.popAndRegisterContainingComponent();

    return null;
}