Example usage for org.springframework.aop.framework ProxyFactory getProxy

List of usage examples for org.springframework.aop.framework ProxyFactory getProxy

Introduction

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

Prototype

public static Object getProxy(TargetSource targetSource) 

Source Link

Document

Create a proxy for the specified TargetSource that extends the target class of the TargetSource .

Usage

From source file:org.jdal.aop.SerializableProxyUtils.java

/**
 * Create a new Serializable proxy for the given target.
 * @param target target to proxy//from   w  w w . ja v a 2 s .c o m
 * @param reference serializable reference 
 * @return a new serializable proxy
 */
private static Object createSerializableProxy(Object target, SerializableReference reference) {
    ProxyFactory pf = new ProxyFactory(target);
    pf.setExposeProxy(true);
    pf.setProxyTargetClass(reference.isProxyTargetClass());
    pf.addInterface(SerializableObject.class);
    pf.addAdvice(new SerializableIntroductionInterceptor(reference));

    return pf.getProxy(reference.getBeanFactory().getBeanClassLoader());
}

From source file:org.jdal.remoting.caucho.HessianProxyFactoryBean.java

@Override
public void afterPropertiesSet() {
    super.afterPropertiesSet();
    ProxyFactory pf = new ProxyFactory(new Class[] { getServiceInterface(), RemoteClient.class });
    pf.addAdvisor(new RemoteClientAdvisor(this));
    pf.addAdvice(this);
    this.serviceProxy = pf.getProxy(getBeanClassLoader());
}

From source file:org.jdal.remoting.caucho.BurlapProxyFactoryBean.java

@Override
public void afterPropertiesSet() {
    super.afterPropertiesSet();
    ProxyFactory pf = new ProxyFactory(new Class[] { getServiceInterface(), RemoteClient.class });
    pf.addAdvisor(new RemoteClientAdvisor(getRemoteReference()));
    pf.addAdvice(this);
    this.serviceProxy = pf.getProxy(getBeanClassLoader());
}

From source file:org.jdal.remoting.httpinvoker.HttpInvokerProxyFactoryBean.java

@Override
public void afterPropertiesSet() {
    super.afterPropertiesSet();
    if (getServiceInterface() == null) {
        throw new IllegalArgumentException("Property 'serviceInterface' is required");
    }/*from  ww w . j  ava 2  s .c  om*/
    ProxyFactory pf = new ProxyFactory(new Class[] { getServiceInterface(), RemoteClient.class });
    pf.addAdvisor(new RemoteClientAdvisor(getRemoteReference()));
    pf.addAdvice(this);

    this.serviceProxy = pf.getProxy(getBeanClassLoader());
}

From source file:net.alpha.velocity.view.EmbeddedVelocityToolboxView.java

private ServletContext getToolboxConfigFileAwareServletContext() {
    ProxyFactory factory = new ProxyFactory();
    factory.setTarget(getServletContext());
    factory.addAdvice(new GetResourceMethodInterceptor(getToolboxConfigLocation()));
    return (ServletContext) factory.getProxy(getClass().getClassLoader());
}

From source file:com.payu.ratel.client.ContextAnnotationAutowireCandidateResolver.java

protected Object buildLazyResolutionProxy(final DependencyDescriptor descriptor, final String beanName) {
    Assert.state(getBeanFactory() instanceof DefaultListableBeanFactory,
            "BeanFactory needs to be a DefaultListableBeanFactory");
    final DefaultListableBeanFactory beanFactory = (DefaultListableBeanFactory) getBeanFactory();
    TargetSource ts = new TargetSource() {
        @Override//  w  w w  .  java 2s. c  o  m
        public Class<?> getTargetClass() {
            return descriptor.getDependencyType();
        }

        @Override
        public boolean isStatic() {
            return false;
        }

        @Override
        public Object getTarget() {
            return beanFactory.doResolveDependency(descriptor, beanName, null, null);
        }

        @Override
        public void releaseTarget(Object target) {
        }
    };
    ProxyFactory pf = new ProxyFactory();
    pf.setTargetSource(ts);
    Class<?> dependencyType = descriptor.getDependencyType();
    if (dependencyType.isInterface()) {
        pf.addInterface(dependencyType);
    }
    return pf.getProxy(beanFactory.getBeanClassLoader());
}

From source file:com.ryantenney.metrics.spring.AdvisingBeanPostProcessor.java

@Override
public Object postProcessAfterInitialization(Object bean, String beanName) {
    if (bean instanceof AopInfrastructureBean) {
        return bean;
    }//  ww  w .  j av  a2  s .c  o  m

    final Class<?> targetClass = AopUtils.getTargetClass(bean);

    if (AopUtils.canApply(pointcut, targetClass)) {
        final Advice advice = adviceFactory.getAdvice(bean, targetClass);
        final Advisor advisor = new DefaultPointcutAdvisor(pointcut, advice);

        if (bean instanceof Advised) {
            LOG.debug("Bean {} is already proxied, adding Advisor to existing proxy", beanName);

            ((Advised) bean).addAdvisor(0, advisor);

            return bean;
        } else {
            LOG.debug("Proxying bean {} of type {}", beanName, targetClass.getCanonicalName());

            final ProxyFactory proxyFactory = new ProxyFactory(bean);
            if (proxyConfig != null) {
                proxyFactory.copyFrom(proxyConfig);
            }
            proxyFactory.addAdvisor(advisor);

            final Object proxy = proxyFactory.getProxy(this.beanClassLoader);

            return proxy;
        }
    }

    return bean;
}

From source file:prospring3.ch5.beanpostprocessor.DeassociateBeanPostProcessor.java

public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
    if (bean instanceof AopInfrastructureBean) {
        // Ignore AOP infrastructure such as scoped proxies.
        return bean;
    }// w w w  .java  2s  .  co  m
    Class<?> targetClass = AopUtils.getTargetClass(bean);
    if (AopUtils.canApply(this.deassociatePointcutAdvisor, targetClass)) {
        if (bean instanceof Advised) {
            ((Advised) bean).addAdvisor(this.deassociatePointcutAdvisor);
            return bean;
        } else {
            ProxyFactory proxyFactory = new ProxyFactory(bean);
            // Copy our properties (proxyTargetClass etc) inherited from ProxyConfig.
            proxyFactory.copyFrom(this);
            proxyFactory.addAdvisor(this.deassociatePointcutAdvisor);
            return proxyFactory.getProxy(this.classLoader);
        }
    } else {
        // This is not a repository.
        return bean;
    }

}

From source file:org.pshow.ecm.security.MethodAuditPostProcessor.java

@Override
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
    if (bean instanceof AopInfrastructureBean) {
        // Ignore AOP infrastructure such as scoped proxies.
        return bean;
    }//  w ww .  j ava2 s. c o m
    Class<?> targetClass = AopUtils.getTargetClass(bean);
    if (AopUtils.canApply(this.advisor, targetClass)) {
        if (bean instanceof Advised) {
            ((Advised) bean).addAdvisor(this.advisor);
            return bean;
        } else {
            ProxyFactory proxyFactory = new ProxyFactory(bean);
            // Copy our properties (proxyTargetClass etc) inherited from
            // ProxyConfig.
            proxyFactory.copyFrom(this);
            proxyFactory.addAdvisor(this.advisor);
            return proxyFactory.getProxy(this.beanClassLoader);
        }
    } else {
        // This is not a repository.
        return bean;
    }
}

From source file:flex.contrib.factories.config.SecurityExceptionTranslationPostProcessor.java

public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
    Class<?> targetClass = (bean instanceof Advised ? ((Advised) bean).getTargetSource().getTargetClass()
            : bean.getClass());/*from   www.  ja  v  a  2s  . c o  m*/
    if (targetClass == null) {
        // Can't do much here
        return bean;
    }

    if (AopUtils.canApply(this.securityExceptionTranslationAdvisor, targetClass)) {
        if (bean instanceof Advised) {
            ((Advised) bean).addAdvisor(this.securityExceptionTranslationAdvisor);
            return bean;
        } else {
            ProxyFactory proxyFactory = new ProxyFactory(bean);
            // Copy our properties (proxyTargetClass etc) inherited from ProxyConfig.
            proxyFactory.copyFrom(this);
            proxyFactory.addAdvisor(this.securityExceptionTranslationAdvisor);
            return proxyFactory.getProxy(this.beanClassLoader);
        }
    } else {
        // This is not a repository.
        return bean;
    }
}