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

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

Introduction

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

Prototype

public AspectMetadata(Class<?> aspectClass, String aspectName) 

Source Link

Document

Create a new AspectMetadata instance for the given aspect class.

Usage

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

/**
 * Create an {@link AspectMetadata} instance for the supplied aspect type.
 *///ww w . j a v a 2s  . c  om
private AspectMetadata createAspectMetadata(Class aspectClass, String aspectName) {
    AspectMetadata am = new AspectMetadata(aspectClass, aspectName);
    if (!am.getAjType().isAspect()) {
        return null;
    }
    return am;
}

From source file:org.springframework.aop.aspectj.autoproxy.AspectJAutoProxyCreatorTests.java

@Test
public void testPerTargetAspect() throws SecurityException, NoSuchMethodException {
    ClassPathXmlApplicationContext bf = newContext("pertarget.xml");

    ITestBean adrian1 = (ITestBean) bf.getBean("adrian");
    assertTrue(AopUtils.isAopProxy(adrian1));

    // Does not trigger advice or count
    int explicitlySetAge = 25;
    adrian1.setAge(explicitlySetAge);/* ww w  . j ava  2 s  . co m*/

    assertEquals("Setter does not initiate advice", explicitlySetAge, adrian1.getAge());
    // Fire aspect

    AspectMetadata am = new AspectMetadata(PerTargetAspect.class, "someBean");
    assertTrue(
            am.getPerClausePointcut().getMethodMatcher().matches(TestBean.class.getMethod("getSpouse"), null));

    adrian1.getSpouse();

    assertEquals("Advice has now been instantiated", 0, adrian1.getAge());
    adrian1.setAge(11);
    assertEquals("Any int setter increments", 2, adrian1.getAge());
    adrian1.setName("Adrian");
    //assertEquals("Any other setter does not increment", 2, adrian1.getAge());

    ITestBean adrian2 = (ITestBean) bf.getBean("adrian");
    assertNotSame(adrian1, adrian2);
    assertTrue(AopUtils.isAopProxy(adrian1));
    assertEquals(34, adrian2.getAge());
    adrian2.getSpouse();
    assertEquals("Aspect now fired", 0, adrian2.getAge());
    assertEquals(1, adrian2.getAge());
    assertEquals(2, adrian2.getAge());
    assertEquals(3, adrian1.getAge());
}