Package org.jboss.aop.advice

Examples of org.jboss.aop.advice.AdviceBinding


   }

   public void testMethodExecutionWithInstanceAdvisorAccess() throws Exception
   {
      System.out.println("TEST METHOD WITH INSTANCEADVISOR ACCESS");
      AdviceBinding binding = new AdviceBinding("execution(* org.jboss.test.aop.dynamicgenadvisor.POJO->someMethod(..))", null);
      binding.addInterceptor(MetadataInterceptor.class);
      AspectManager.instance().addBinding(binding);

      POJO pojo = new POJO();
      MetadataInterceptor.clear();
      pojo.someMethod(123);
      assertTrue(MetadataInterceptor.intercepted);
     
      MetadataInterceptor.clear();
      AspectManager.instance().removeBinding(binding.getName());
      pojo.someMethod(123);
      assertFalse(MetadataInterceptor.intercepted);
   }
View Full Code Here


   }

   public void testFields() throws Exception
   {
      System.out.println("TEST FIELDS");
      AdviceBinding binding = new AdviceBinding("set(* org.jboss.test.aop.dynamicgenadvisor.POJO->i)", null);
      String name = binding.getName();
      binding.addInterceptor(MyInterceptor.class);
      AspectManager.instance().addBinding(binding);
     
      Interceptions.clear();
      POJO pojo = new POJO();
      pojo.i = 5;
      assertEquals(5, pojo.i);
      POJO.j = 0;
      assertEquals(0, POJO.j);
      assertEquals(1, Interceptions.size());
      assertEquals(Interceptions.getFieldWriteName("MyInterceptor", "POJO", "i"), Interceptions.get(0));

      AdviceBinding binding2 = new AdviceBinding("get(* org.jboss.test.aop.dynamicgenadvisor.POJO->i)", null);
      String name2 = binding2.getName();
      binding2.addInterceptor(MyInterceptor.class);
      AspectManager.instance().addBinding(binding2);
     
      Interceptions.clear();
      pojo.i = 5;
      assertEquals(5, pojo.i);
      POJO.j++;
      assertEquals(2, Interceptions.size());
      assertEquals(Interceptions.getFieldWriteName("MyInterceptor", "POJO", "i"), Interceptions.get(0));
      assertEquals(Interceptions.getFieldReadName("MyInterceptor", "POJO", "i"), Interceptions.get(1));

      AdviceBinding binding3 = new AdviceBinding("field(* org.jboss.test.aop.dynamicgenadvisor.POJO->i)", null);
      String name3 = binding3.getName();
      AspectDefinition myAspect = AspectManager.instance().getAspectDefinition("org.jboss.test.aop.dynamicgenadvisor.MyAspect");
      binding3.addInterceptorFactory(new AdviceFactory(myAspect, "intercept"));
      binding3.addInterceptor(MyInterceptor.class);
      AspectManager.instance().addBinding(binding3);
     
      Interceptions.clear();
      pojo.i = 20;
      assertEquals(3, Interceptions.size());
      assertEquals(Interceptions.getFieldWriteName("MyInterceptor", "POJO", "i"), Interceptions.get(0));
      assertEquals(Interceptions.getFieldWriteName("MyAspect", "POJO", "i"), Interceptions.get(1));
      assertEquals(Interceptions.getFieldWriteName("MyInterceptor", "POJO", "i"), Interceptions.get(2));
     
      Interceptions.clear();
      assertEquals(20, pojo.i);
      assertEquals(3, Interceptions.size());
      assertEquals(Interceptions.getFieldReadName("MyInterceptor", "POJO", "i"), Interceptions.get(0));
      assertEquals(Interceptions.getFieldReadName("MyAspect", "POJO", "i"), Interceptions.get(1));
      assertEquals(Interceptions.getFieldReadName("MyInterceptor", "POJO", "i"), Interceptions.get(2));
     
      AspectManager.instance().removeBinding(name);
      AspectManager.instance().removeBinding(name2);

      AdviceBinding binding4 = new AdviceBinding("field(static * org.jboss.test.aop.dynamicgenadvisor.POJO->j)", null);
      String name4 = binding4.getName();
      binding4.addInterceptor(MyInterceptor.class);
      AspectManager.instance().addBinding(binding4);
     
      Interceptions.clear();
      pojo.i=15;
      assertEquals(15, pojo.i);
View Full Code Here

   {
      System.out.println("TEST SIMPLE INSTANCE USING DOMAIN FOR METHOD");
      POJO pojo1 = new POJO();
      POJO pojo2 = new POJO();
     
      AdviceBinding binding = new AdviceBinding("execution(* org.jboss.test.aop.dynamicgenadvisor.POJO->someMethod(..))", null);
      String name = binding.getName();
      binding.addInterceptor(MyInterceptor.class);
      getInstanceDomain(pojo2).addBinding(binding);
     
      Interceptions.clear();
      pojo1.someMethod(123);
      assertTrue(Interceptions.isEmpty());
View Full Code Here

   {
      String nameTopA = null, nameTopB = null;
      try
      {
         System.out.println("TEST INSTANCE USING DOMAIN FOR METHOD");
         AdviceBinding bindingTopA = new AdviceBinding("execution(* org.jboss.test.aop.dynamicgenadvisor.POJO->someMethod(..))", null);
         nameTopA = bindingTopA.getName();
         bindingTopA.addInterceptor(MyInterceptor.class);
         AspectManager.instance().addBinding(bindingTopA);
        
         POJO pojo1 = new POJO();
         POJO pojo2 = new POJO();
        
         Interceptions.clear();
         pojo1.someMethod(123);
         pojo2.someMethod(123);
         assertEquals(2, Interceptions.size());
         assertEquals(Interceptions.getMethodName("MyInterceptor", "POJO", "someMethod"), Interceptions.get(0));
         assertEquals(Interceptions.getMethodName("MyInterceptor", "POJO", "someMethod"), Interceptions.get(1));
        
         //Add instance advices
         AdviceBinding bindingA = new AdviceBinding("execution(* org.jboss.test.aop.dynamicgenadvisor.POJO->someMethod(..))", null);
         String nameA = bindingA.getName();
         bindingA.addInterceptor(MyInterceptor.class);
         getInstanceDomain(pojo1).addBinding(bindingA);
        
         AdviceBinding bindingB = new AdviceBinding("execution(* org.jboss.test.aop.dynamicgenadvisor.POJO->someMethod(..))", null);
         String nameB = bindingB.getName();
         AspectDefinition myAspect = AspectManager.instance().getAspectDefinition("org.jboss.test.aop.dynamicgenadvisor.MyAspect");
         bindingB.addInterceptorFactory(new AdviceFactory(myAspect, "intercept"));
         getInstanceDomain(pojo2).addBinding(bindingB);
        
         System.out.println("Added instance advices");
         Interceptions.clear();
         pojo1.someMethod(123);
         assertEquals(2, Interceptions.size());
         assertEquals(Interceptions.getMethodName("MyInterceptor", "POJO", "someMethod"), Interceptions.get(0));
         assertEquals(Interceptions.getMethodName("MyInterceptor", "POJO", "someMethod"), Interceptions.get(1));
        
        
         Interceptions.clear();
         pojo2.someMethod(123);
         assertEquals(2, Interceptions.size());
         assertEquals(Interceptions.getMethodName("MyInterceptor", "POJO", "someMethod"), Interceptions.get(0));
         assertEquals(Interceptions.getMethodName("MyAspect", "POJO", "someMethod"), Interceptions.get(1));
       
         //Add top level advice
         POJO pojo3 = new POJO();
         AdviceBinding bindingTopB = new AdviceBinding("execution(* org.jboss.test.aop.dynamicgenadvisor.POJO->someMethod(..))", null);
         nameTopB = bindingTopB.getName();
         bindingTopB.addInterceptor(YourInterceptor.class);
         AspectManager.instance().addBinding(bindingTopB);
        
         System.out.println("Added top level advice");
        
         Interceptions.clear();
View Full Code Here

   {
      System.out.println("TEST SIMPLE INSTANCE USING DOMAIN FOR FIELD");
      POJO pojo1 = new POJO();
      POJO pojo2 = new POJO();
     
      AdviceBinding binding = new AdviceBinding("set(* org.jboss.test.aop.dynamicgenadvisor.POJO->i)", null);
      String name = binding.getName();
      AspectDefinition myAspect = AspectManager.instance().getAspectDefinition("org.jboss.test.aop.dynamicgenadvisor.MyAspect");
      binding.addInterceptorFactory(new AdviceFactory(myAspect, "intercept"));
      getInstanceDomain(pojo2).addBinding(binding);
     
      Interceptions.clear();
      pojo1.i = 10;
      assertEquals(10, pojo1.i);
      assertTrue(Interceptions.isEmpty());
     
      Interceptions.clear();
      pojo2.i = 20;
      assertEquals(20, pojo2.i);
      assertEquals(1, Interceptions.size());
      assertEquals(Interceptions.getFieldWriteName("MyAspect", "POJO", "i"), Interceptions.get(0));

      AdviceBinding binding2 = new AdviceBinding("get(* org.jboss.test.aop.dynamicgenadvisor.POJO->i)", null);
      String name2 = binding2.getName();
      binding2.addInterceptor(MyInterceptor.class);
      getInstanceDomain(pojo2).addBinding(binding2);
     
      Interceptions.clear();
      pojo2.i = 30;
      assertEquals(30, pojo2.i);
View Full Code Here

      String nameTopA = null;
      String nameTopB = null;
      try
      {
         System.out.println("TEST INSTANCE USING DOMAIN FOR FIELD");
         AdviceBinding bindingTopA = new AdviceBinding("field(* org.jboss.test.aop.dynamicgenadvisor.POJO->i)", null);
         nameTopA = bindingTopA.getName();
         bindingTopA.addInterceptor(MyInterceptor.class);
         AspectManager.instance().addBinding(bindingTopA);
        
         POJO pojo1 = new POJO();
         POJO pojo2 = new POJO();
        
         Interceptions.clear();
         pojo1.i = 10;
         pojo2.i=20;
         assertEquals(10, pojo1.i);
         assertEquals(20, pojo2.i);
         assertEquals(4, Interceptions.size());
         assertEquals(Interceptions.getFieldWriteName("MyInterceptor", "POJO", "i"), Interceptions.get(0));
         assertEquals(Interceptions.getFieldWriteName("MyInterceptor", "POJO", "i"), Interceptions.get(1));
         assertEquals(Interceptions.getFieldReadName("MyInterceptor", "POJO", "i"), Interceptions.get(2));
         assertEquals(Interceptions.getFieldReadName("MyInterceptor", "POJO", "i"), Interceptions.get(3));
        
         //Add instance advices
         AdviceBinding bindingA = new AdviceBinding("set(* org.jboss.test.aop.dynamicgenadvisor.POJO->i)", null);
         String nameA = bindingA.getName();
         bindingA.addInterceptor(MyInterceptor.class);
         getInstanceDomain(pojo1).addBinding(bindingA);
        
         AdviceBinding bindingB = new AdviceBinding("get(* org.jboss.test.aop.dynamicgenadvisor.POJO->i)", null);
         String nameB = bindingB.getName();
         AspectDefinition myAspect = AspectManager.instance().getAspectDefinition("org.jboss.test.aop.dynamicgenadvisor.MyAspect");
         bindingB.addInterceptorFactory(new AdviceFactory(myAspect, "intercept"));
         getInstanceDomain(pojo2).addBinding(bindingB);
        
         System.out.println("Added instance advices");
         Interceptions.clear();
         pojo1.i = 50;
         assertEquals(50, pojo1.i);
         assertEquals(3, Interceptions.size());
         assertEquals(Interceptions.getFieldWriteName("MyInterceptor", "POJO", "i"), Interceptions.get(0));
         assertEquals(Interceptions.getFieldWriteName("MyInterceptor", "POJO", "i"), Interceptions.get(1));
         assertEquals(Interceptions.getFieldReadName("MyInterceptor", "POJO", "i"), Interceptions.get(2));
        
         Interceptions.clear();
         pojo2.i = 100;
         assertEquals(100, pojo2.i);
         assertEquals(3, Interceptions.size());
         assertEquals(Interceptions.getFieldWriteName("MyInterceptor", "POJO", "i"), Interceptions.get(0));
         assertEquals(Interceptions.getFieldReadName("MyInterceptor", "POJO", "i"), Interceptions.get(1));
         assertEquals(Interceptions.getFieldReadName("MyAspect", "POJO", "i"), Interceptions.get(2));
       
         //Add top level advice
         POJO pojo3 = new POJO();
         AdviceBinding bindingTopB = new AdviceBinding("field(* org.jboss.test.aop.dynamicgenadvisor.POJO->i)", null);
         nameTopB = bindingTopB.getName();
         bindingTopB.addInterceptor(YourInterceptor.class);
         AspectManager.instance().addBinding(bindingTopB);
        
         System.out.println("Added top level advice");
        
         Interceptions.clear();
View Full Code Here

  
   public void testInstanceUsingOldApiForMethod() throws Exception
   {
      System.out.println("TEST INSTANCE USING OLD API FOR METHOD");
      POJO pojo1 = new POJO();
      AdviceBinding bindingTopA = new AdviceBinding("execution(* org.jboss.test.aop.dynamicgenadvisor.*POJO->someMethod*(..))", null);
      String nameTopA = bindingTopA.getName();
      try
      {
         AspectDefinition myAspect = AspectManager.instance().getAspectDefinition("org.jboss.test.aop.dynamicgenadvisor.MyAspect");
         bindingTopA.addInterceptorFactory(new AdviceFactory(myAspect, "intercept"));
         AspectManager.instance().addBinding(bindingTopA);

         Interceptions.clear();
         pojo1.someMethod(123);
         assertEquals(1, Interceptions.size());
View Full Code Here

      AnnotationIntroduction intro1 = AnnotationIntroduction.createClassAnnotationIntroduction(
            "org.jboss.test.aop.dynamicgenadvisor.POJO",
            "@org.jboss.test.aop.dynamicgenadvisor.MyAnnotation",
            true);
      getInstanceDomain(pojo1).addAnnotationOverride(intro1);
      AdviceBinding binding1 = new AdviceBinding("execution(* @org.jboss.test.aop.dynamicgenadvisor.MyAnnotation->someMethod*(..))", null);
      binding1.addInterceptor(MyInterceptor.class);
      getInstanceDomain(pojo1).addBinding(binding1);

      AnnotationIntroduction intro2 = AnnotationIntroduction.createFieldAnnotationIntroduction(
            "int org.jboss.test.aop.dynamicgenadvisor.POJO->i",
            "@org.jboss.test.aop.dynamicgenadvisor.MyAnnotation",
            true);
      getInstanceDomain(pojo2).addAnnotationOverride(intro2);
      AdviceBinding binding2 = new AdviceBinding("field(* org.jboss.test.aop.dynamicgenadvisor.POJO->@org.jboss.test.aop.dynamicgenadvisor.MyAnnotation)", null);
      binding2.addInterceptor(MyInterceptor.class);
      getInstanceDomain(pojo2).addBinding(binding2);

      AnnotationIntroduction intro3 = AnnotationIntroduction.createMethodAnnotationIntroduction(
            "* org.jboss.test.aop.dynamicgenadvisor.POJO->someMethod(..)",
            "@org.jboss.test.aop.dynamicgenadvisor.MyAnnotation",
            true);
      getInstanceDomain(pojo3).addAnnotationOverride(intro3);
      AdviceBinding binding3 = new AdviceBinding("execution(* org.jboss.test.aop.dynamicgenadvisor.POJO->@org.jboss.test.aop.dynamicgenadvisor.MyAnnotation(..))", null);
      binding3.addInterceptor(MyInterceptor.class);
      getInstanceDomain(pojo3).addBinding(binding3);

     
      System.out.println("--- POJO1");
      Interceptions.clear();
View Full Code Here

   }
  
  
   public void testAddClassMetadata()throws Exception
   {
      AdviceBinding binding = null;
      try
      {
         System.out.println("TEST ADD CLASS METADATA");
  
         DynamicSimpleClassMetadataLoader loader = new DynamicSimpleClassMetadataLoader(
               "T1", "TEST", "org.jboss.test.aop.dynamicgenadvisor.POJO");
         loader.addDefaultMetaData("default", "default");
         loader.addClassMetaData("class", "class");
         loader.addMethodMetaData("* someMethod(..)", "fm", "someMethod");
         loader.addFieldMetaData("i", "fm", "i");
         AspectManager.instance().addClassMetaData(loader.getClassMetaDataBinding());
        
         binding = new AdviceBinding("all(org.jboss.test.aop.dynamicgenadvisor.POJO)", null);
         binding.addInterceptor(MetadataInterceptor.class);
         AspectManager.instance().addBinding(binding);
        
         POJO pojo = new POJO();
        
         MetadataInterceptor.clear();
         pojo.someMethod(123);
         pojo.i = 100;
         pojo.notPrepared();
         assertTrue(MetadataInterceptor.intercepted);
         assertEquals(2, MetadataInterceptor.lastDefaultMetadata.size());
         assertEquals(2, MetadataInterceptor.lastClassMetadata.size());
         assertEquals(1, MetadataInterceptor.lastMethodMetadata.size());
         assertEquals(1, MetadataInterceptor.lastFieldMetadata.size());
        
         //Make sure we get the metadata expected
         assertEquals("default", MetadataInterceptor.lastDefaultMetadata.get(0));
         assertEquals("default", MetadataInterceptor.lastDefaultMetadata.get(1));
        
         assertEquals("class", MetadataInterceptor.lastClassMetadata.get(0));
         assertEquals("class", MetadataInterceptor.lastClassMetadata.get(1));
        
         assertEquals("someMethod", MetadataInterceptor.lastMethodMetadata.get(0));
        
         assertEquals("i", MetadataInterceptor.lastFieldMetadata.get(0));
        
         AspectManager.instance().removeClassMetaData(loader.getClassMetaDataBinding().getName());
  
         MetadataInterceptor.clear();
         pojo.someMethod(123);
         pojo.i = 100;
         pojo.notPrepared();
         assertEquals(0, MetadataInterceptor.lastDefaultMetadata.size());
         assertEquals(0, MetadataInterceptor.lastClassMetadata.size());
         assertEquals(0, MetadataInterceptor.lastMethodMetadata.size());
         assertEquals(0, MetadataInterceptor.lastFieldMetadata.size());
        
         //Try adding metadata again now that instance already exists
         AspectManager.instance().addClassMetaData(loader.getClassMetaDataBinding());
  
         MetadataInterceptor.clear();
         pojo.someMethod(123);
         pojo.i = 100;
         pojo.notPrepared();
         assertEquals(2, MetadataInterceptor.lastDefaultMetadata.size());
         assertEquals(2, MetadataInterceptor.lastClassMetadata.size());
         assertEquals(1, MetadataInterceptor.lastMethodMetadata.size());
         assertEquals(1, MetadataInterceptor.lastFieldMetadata.size());
        
         //Make sure we get the metadata expected
         assertEquals("default", MetadataInterceptor.lastDefaultMetadata.get(0));
         assertEquals("default", MetadataInterceptor.lastDefaultMetadata.get(1));
        
         assertEquals("class", MetadataInterceptor.lastClassMetadata.get(0));
         assertEquals("class", MetadataInterceptor.lastClassMetadata.get(1));
        
         assertEquals("someMethod", MetadataInterceptor.lastMethodMetadata.get(0));
        
         assertEquals("i", MetadataInterceptor.lastFieldMetadata.get(0));
        
         AspectManager.instance().removeClassMetaData(loader.getClassMetaDataBinding().getName());
  
         MetadataInterceptor.clear();
         pojo.someMethod(123);
         pojo.i = 100;
         pojo.notPrepared();
         assertEquals(0, MetadataInterceptor.lastDefaultMetadata.size());
         assertEquals(0, MetadataInterceptor.lastClassMetadata.size());
         assertEquals(0, MetadataInterceptor.lastMethodMetadata.size());
         assertEquals(0, MetadataInterceptor.lastFieldMetadata.size());
        
         AspectManager.instance().removeBinding(binding.getName());
         MetadataInterceptor.clear();
         pojo.someMethod(123);
         assertFalse(MetadataInterceptor.intercepted);
      }
      finally
      {
         if (binding != null)
         {
            AspectManager.instance().removeBinding(binding.getName());
         }
      }
   }
View Full Code Here

      }
   }

   public void testBindingsUpdatedWhenAddMetadata() throws Exception
   {
      AdviceBinding binding = null;
      try
      {
         System.out.println("TEST BINDINGS UPDATED WHEN ADD METADATA");
        
         binding = new AdviceBinding("all(@TEST)", null);
         binding.addInterceptor(MetadataInterceptor.class);
         AspectManager.instance().addBinding(binding);
        
         MetadataInterceptor.clear();
         POJO pojox = new POJO();
         pojox.someMethod(123);
         assertFalse(MetadataInterceptor.intercepted);
        
         //Add metadata so binding takes effect
         DynamicSimpleClassMetadataLoader loader = new DynamicSimpleClassMetadataLoader(
               "DA", "TEST", "org.jboss.test.aop.dynamicgenadvisor.POJO");
               loader.addDefaultMetaData("default", "default");
               loader.addClassMetaData("class", "class");
               loader.addMethodMetaData("* someMethod(..)", "fm", "someMethod");
               loader.addFieldMetaData("i", "fm", "i");
               AspectManager.instance().addClassMetaData(loader.getClassMetaDataBinding());
              
         MetadataInterceptor.clear();
         POJO pojo = new POJO();
         pojo.someMethod(123);
         int i = pojo.i;
         assertTrue(MetadataInterceptor.intercepted);
         assertEquals(3, MetadataInterceptor.lastDefaultMetadata.size());
         assertEquals(3, MetadataInterceptor.lastClassMetadata.size());
         assertEquals(1, MetadataInterceptor.lastMethodMetadata.size());
         assertEquals(1, MetadataInterceptor.lastFieldMetadata.size());
        
         assertEquals("default", MetadataInterceptor.lastDefaultMetadata.get(0));
         assertEquals("default", MetadataInterceptor.lastDefaultMetadata.get(1));
         assertEquals("default", MetadataInterceptor.lastDefaultMetadata.get(2));
        
         assertEquals("class", MetadataInterceptor.lastClassMetadata.get(0));
         assertEquals("class", MetadataInterceptor.lastClassMetadata.get(1));
         assertEquals("class", MetadataInterceptor.lastClassMetadata.get(2));
        
         assertEquals("someMethod", MetadataInterceptor.lastMethodMetadata.get(0));
        
         assertEquals("i", MetadataInterceptor.lastFieldMetadata.get(0));
        
         MetadataInterceptor.clear();
         pojox.someMethod(123);
         assertTrue(MetadataInterceptor.intercepted);
        
         AspectManager.instance().removeClassMetaData("DA");
         MetadataInterceptor.clear();
         pojo.someMethod(123);
         pojo.i = 100;
         assertFalse(MetadataInterceptor.intercepted);
        
         //Add metadata to instance domain so binding takes effect
         getInstanceDomain(pojo).addClassMetaData(loader.getClassMetaDataBinding());
         MetadataInterceptor.clear();
         pojo.someMethod(123);
         i = pojo.i;
         assertTrue(MetadataInterceptor.intercepted);
         assertEquals(2, MetadataInterceptor.lastDefaultMetadata.size());
         assertEquals(2, MetadataInterceptor.lastClassMetadata.size());
         assertEquals(1, MetadataInterceptor.lastMethodMetadata.size());
         assertEquals(1, MetadataInterceptor.lastFieldMetadata.size());
        
         assertEquals("default", MetadataInterceptor.lastDefaultMetadata.get(0));
         assertEquals("default", MetadataInterceptor.lastDefaultMetadata.get(1));
        
         assertEquals("class", MetadataInterceptor.lastClassMetadata.get(0));
         assertEquals("class", MetadataInterceptor.lastClassMetadata.get(1));
        
         assertEquals("someMethod", MetadataInterceptor.lastMethodMetadata.get(0));
        
         assertEquals("i", MetadataInterceptor.lastFieldMetadata.get(0));
        
         //Clean up
         getInstanceDomain(pojo).removeClassMetaData(loader.getClassMetaDataBinding().getName());
         AspectManager.instance().removeBinding(binding.getName());
         MetadataInterceptor.clear();
         pojo.someMethod(123);
         assertFalse(MetadataInterceptor.intercepted);
      }
      finally
      {
         if (binding != null)
         {
            AspectManager.instance().removeBinding(binding.getName());
         }
      }
   }
View Full Code Here

TOP

Related Classes of org.jboss.aop.advice.AdviceBinding

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.