Darren, This looks really nice. A few questions on Spring AOP replacement.
1) Spring AOP is proxy-based, the reason we ended up of using customized AOP is mainly due to that inside existing CloudStack codebase, we have many places that are doing run-time type-casting, the code in these places assumes a real object that implements all interfaces in the semantics context. At the time when I initially converted to Spring, I couldn't ensure that switching to proxy-based AOP can have 100% coverage for these run-time cases. What is your approach to address this run-time type-casting issue? 2) We've run into a huge-memory footprint issue that may be caused by conflicts of CGLIB usage in Spring AOP and the CGLIB usage in CloudStack Dao layer. Do you have a chance to run a memory analysis in the heap after management server is started. I might be good to run BVT test on the branch before the merge, could someone initiate the effort? kelven On 10/2/13 3:48 PM, "Darren Shepherd" <darren.s.sheph...@gmail.com> wrote: >Not sure how this works... I would like to merge in the new >modularized Spring setup to master. There is info on the wiki about it >[1] [2] [3]. The primary change is to break apart the monolithic >applicationContext.xml and componentContext.xml files such that each >plugin can maintain and contribute its own configuration. > >In addition to breaking up the configuration we no longer use ACS >custom AOP and it is now fully Spring AOP. > >Now adding/removing a plug-in is a matter of just adding a jar to the >classpath (exception being commands.properties, I'll address that in a >different thread). Unfortunately this branch does not have the >changes to package things in different RPMs. So it would be great if >somebody could take up the packaging effort to split out all the >plugins into different RPMs. > >Darren > >[1] >https://cwiki.apache.org/confluence/display/CLOUDSTACK/Modularize+Spring >[2] >https://cwiki.apache.org/confluence/display/CLOUDSTACK/Plug-ins%2C+Modules >%2C+and+Extensions >[3] https://cwiki.apache.org/confluence/display/CLOUDSTACK/Extensions