Example usage for org.springframework.aop.aspectj.annotation SingletonMetadataAwareAspectInstanceFactory SingletonMetadataAwareAspectInstanceFactory

List of usage examples for org.springframework.aop.aspectj.annotation SingletonMetadataAwareAspectInstanceFactory SingletonMetadataAwareAspectInstanceFactory

Introduction

In this page you can find the example usage for org.springframework.aop.aspectj.annotation SingletonMetadataAwareAspectInstanceFactory SingletonMetadataAwareAspectInstanceFactory.

Prototype

public SingletonMetadataAwareAspectInstanceFactory(Object aspectInstance, String aspectName) 

Source Link

Document

Create a new SingletonMetadataAwareAspectInstanceFactory for the given aspect.

Usage

From source file:aop.DeclareMixinAspectJAdvisorFactoryTest.java

@Test
public void testDeclareMixin() {
    NotTargetAware notTargetAware = new NotTargetAware();
    DeclareMixinAspectJAdvisorFactory factory = new DeclareMixinAspectJAdvisorFactory();

    TargetAware targetAware = (TargetAware) createProxy(notTargetAware, factory.getAdvisors(
            new SingletonMetadataAwareAspectInstanceFactory(new DeclareMixinMakeTargetAware(), "someBean")),
            NotTargetAware.class);

    Assert.assertEquals(targetAware, targetAware.getTarget());
}

From source file:im.tym.wraop.impl.AspectJWrapperFactorySpi.java

@Override
public synchronized boolean addAspect(Object aspect) {
    if (super.addAspect(aspect)) {
        return true;
    }/*from  w  w w. j  a  v a2s  . c o m*/
    if (!aspect.getClass().isAnnotationPresent(Aspect.class)) {
        return false;
    }
    Class aspectClass = aspect.getClass();
    String aspectName = aspectClass.getName();
    AspectMetadata am = createAspectMetadata(aspectClass, aspectName);
    if (am == null) {
        return false;
    }
    if (am.getAjType().getPerClause().getKind() != PerClauseKind.SINGLETON) {
        throw new IllegalArgumentException(
                "Aspect class [" + aspectClass.getName() + "] does not define a singleton aspect");
    }
    return addAdvisorsFromAspectInstanceFactory(
            new SingletonMetadataAwareAspectInstanceFactory(aspect, aspectName));
}