7 Replies Latest reply on Apr 18, 2007 4:59 PM by kabirkhan

    Woven class compatibility

    kabirkhan

      Regarding http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4031144#4031144

      I've added a test target to the aop 2.0.0 testsuite to ensure that code woven with the "ClassicInstrumentor" in JBoss AOP 1.5.5.GA works when run with AOP 2.0.0.alphax. It runs the "basic" test.

      Clebert, do you have any examples of things not working across versions?

        • 1. Re: Woven class compatibility
          clebert.suconic

          hummm... not really!


          nothing besides the argument list == null.

          But I got some other funny failures before... I have to retest after my changes.

          • 2. Re: Woven class compatibility
            clebert.suconic

            I think my other failures with AOP were something that happened on my environment that time.. I can't replicate it any more... and also as JbossMessaging is running fine.. I would say we don't have any other compatibility problems besides the array list size vs null argument.

            • 3. Re: Woven class compatibility
              kabirkhan

              I am in the process of optimizing the AOP 2.0 weaving model, and now is as good time as any to point out that the woven code in the next AOP 2.0 release will be **completely incompatible** with the woven code from the previous releases.

              Note that this only applies to the new AOP 2.0 weaving (generated advisor), and not to the 1.5.x woven code unless you used the following when aopc'ing with AOP 1.5.x:

               <aopc ...>
               ...
               <sysproperty key="jboss.aop.instrumentor" value="org.jboss.aop.instrument.GeneratedAdvisorInstrumentor"/>
               </aopc>
              


              The default weaving mode for 1.5.x is ClassicInstrumentor and the default for 2.0 is GeneratedAdvisorInstrumentor. 1.5.5 woven with the default ClassicInstrumentor remains runnable on AOP 2.0

              • 4. Re: Woven class compatibility
                kabirkhan

                "next AOP 2.0 release will be **completely incompatible** with the woven code from the previous releases."
                =>
                next AOP 2.0 ALPHA release will be **completely incompatible** with the woven code from the previous ALPHA releases.

                Once we have a AOP 2.0.0.CR we will add the backwards compatibility tests to the 2.0.0 branch

                • 5. Re: Woven class compatibility
                  kabirkhan

                  I have tested the AOP 1.5.5.GA tests against classes woven with 1.5.2.GA, and it is MOSTLY compatible. Areas of failure are:

                  * Introductions handled by interceptors
                  * MethodByConstructor pointcuts
                  * ConstructorByConstructor pointcuts
                  * Some corner cases for inherited fields - these tests did not exist in 1.5.2.GA, so this was functionality added later

                  • 6. Re: Woven class compatibility
                    kabirkhan

                    Code woven with 1.5.3.GA and run with 1.5.5.GA has the following failures

                    * Introductions handled by interceptors (same as when woven with 1.5.2.GA)
                    * Some corner cases for inherited fields (same as when woven with 1.5.2.GA)

                    The caller pointcuts failing when woven with 1.5.2.GA pass when woven with 1.5.3.GA.

                    • 7. Re: Woven class compatibility
                      kabirkhan

                      Code woven with 1.5.4.GA and run with 1.5.5.GA has the following failures

                      * Introductions handled by interceptors (same as when woven with 1.5.2.GA and 1.5.3.GA)

                      The caller pointcuts failing when woven with 1.5.2.GA pass when woven with 1.5.3.GA. The corner cases for inherited fields failing with 1.5.2.GA and 1.5.3.GA pass when woven with 1.5.4.GA.