Package org.springframework.aop.framework

Examples of org.springframework.aop.framework.Lockable


    assertEquals("introductionUsingJdk", tb.getName());

    ITestBean tb2 = (ITestBean) beanFactory.getBean("second-introductionUsingJdk");

    // Check two per-instance mixins were distinct
    Lockable lockable1 = (Lockable) tb;
    Lockable lockable2 = (Lockable) tb2;
    assertFalse(lockable1.locked());
    assertFalse(lockable2.locked());
    tb.setAge(65);
    assertEquals(65, tb.getAge());
    lockable1.lock();
    assertTrue(lockable1.locked());
    // Shouldn't affect second
    assertFalse(lockable2.locked());
    // Can still mod second object
    tb2.setAge(12);
    // But can't mod first
    try {
      tb.setAge(6);
View Full Code Here


    assertEquals(3, nop.getCount());   
 
    ITestBean tb2 = (ITestBean) beanFactory.getBean("second-introductionUsingJdk");
     
    // Check two per-instance mixins were distinct
    Lockable lockable1 = (Lockable) tb;
    Lockable lockable2 = (Lockable) tb2;
    assertFalse(lockable1.locked());
    assertFalse(lockable2.locked());
    tb.setAge(65);
    assertEquals(65, tb.getAge());
    lockable1.lock();
    assertTrue(lockable1.locked());
    // Shouldn't affect second
    assertFalse(lockable2.locked());
    // Can still mod second object
    tb2.setAge(12);
    // But can't mod first
    try {
      tb.setAge(6);
View Full Code Here

  // on the introduction, in which case this would not be a problem.
  public void testLockingWorks() {
    Object introductionObject = applicationContext.getBean("introduction");
    assertFalse("Introduction should not be proxied", AopUtils.isAopProxy(introductionObject));

    Lockable lockable = (Lockable) testBeanProxy;
    assertFalse(lockable.locked());

    // Invoke a non-advised method
    testBeanProxy.getAge();

    testBeanProxy.setName("");
    lockable.lock();
    try {
      testBeanProxy.setName(" ");
      fail("Should be locked");
    }
    catch (IllegalStateException ex) {
View Full Code Here

  public void testCommonInterceptorAndAdvisor() throws Exception {
    BeanFactory bf = new ClassPathXmlApplicationContext("/org/springframework/aop/framework/autoproxy/advisorAutoProxyCreatorWithCommonInterceptors.xml");
    ITestBean test1 = (ITestBean) bf.getBean("test1");
    assertTrue(AopUtils.isAopProxy(test1));

    Lockable lockable1 = (Lockable) test1;
    NopInterceptor nop = (NopInterceptor) bf.getBean("nopInterceptor");
    assertEquals(0, nop.getCount());

    ITestBean test2 = (ITestBean) bf.getBean("test2");
    Lockable lockable2 = (Lockable) test2;
   
    // Locking should be independent; nop is shared
    assertFalse(lockable1.locked());
    assertFalse(lockable2.locked());
    // equals 2 calls on shared nop, because it's first
    // and sees calls against the Lockable interface introduced
    // by the specific advisor
    assertEquals(2, nop.getCount());
    lockable1.lock();
    assertTrue(lockable1.locked());
    assertFalse(lockable2.locked());
    assertEquals(5, nop.getCount());
  }
View Full Code Here

    NotLockable notLockable1 = (NotLockable) createProxy(notLockableTarget,
        getFixture().getAdvisors(
            new SingletonMetadataAwareAspectInstanceFactory(new MakeLockable(),"someBean")),
        NotLockable.class);
    assertTrue(notLockable1 instanceof Lockable);
    Lockable lockable = (Lockable) notLockable1;
    assertFalse(lockable.locked());
    lockable.lock();
    assertTrue(lockable.locked());
   
    NotLockable notLockable2Target = new NotLockable();
    NotLockable notLockable2 = (NotLockable) createProxy(notLockable2Target,
        getFixture().getAdvisors(
            new SingletonMetadataAwareAspectInstanceFactory(new MakeLockable(),"someBean")),
        NotLockable.class);
    assertTrue(notLockable2 instanceof Lockable);
    Lockable lockable2 = (Lockable) notLockable2;
    assertFalse(lockable2.locked());
    notLockable2.setIntValue(1);
    lockable2.lock();
    try {
      notLockable2.setIntValue(32);
      fail();
    }
    catch (IllegalStateException ex) {
    }
    assertTrue(lockable2.locked());
  }
View Full Code Here

  }
 
  @SuppressWarnings("unchecked")
  public void testIntroductionOnTargetImplementingInterface() {
    CannotBeUnlocked target = new CannotBeUnlocked();
    Lockable proxy = (Lockable) createProxy(target,
        // Ensure that we exclude
        AopUtils.findAdvisorsThatCanApply(
            getFixture().getAdvisors(
                new SingletonMetadataAwareAspectInstanceFactory(new MakeLockable(), "someBean")),
            CannotBeUnlocked.class
        ),
        CannotBeUnlocked.class);
    assertTrue(proxy instanceof Lockable);
    Lockable lockable = (Lockable) proxy;
    assertTrue("Already locked", lockable.locked());
    lockable.lock();
    assertTrue("Real target ignores locking", lockable.locked());
    try {
      lockable.unlock();
      fail();
    }
    catch (UnsupportedOperationException ex) {
      // Ok
    }
View Full Code Here

   
    Modifiable modifiable = (Modifiable) createProxy(target,
        advisors,
        ITestBean.class);
    assertTrue(modifiable instanceof Modifiable);
    Lockable lockable = (Lockable) modifiable;
    assertFalse(lockable.locked());
   
    ITestBean itb = (ITestBean) modifiable;
    assertFalse(modifiable.isModified());
    int oldAge = itb.getAge();
    itb.setAge(oldAge + 1);
    assertTrue(modifiable.isModified());
    modifiable.acceptChanges();
    assertFalse(modifiable.isModified());
    itb.setAge(itb.getAge());
    assertFalse("Setting same value does not modify", modifiable.isModified());
    itb.setName("And now for something completely different");
    assertTrue(modifiable.isModified());
   
    lockable.lock();
    assertTrue(lockable.locked());
    try {
      itb.setName("Else");
      fail("Should be locked");
    }
    catch (IllegalStateException ex) {
      // Ok
    }
    lockable.unlock();
    itb.setName("Tony");
  }
View Full Code Here

TOP

Related Classes of org.springframework.aop.framework.Lockable

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.