200 likes | 322 Views
1. aspectj tools overview. 3. tool support for large systems. 2. comparison of tool approaches. CasCon 2004. 3..20. The role of tool support. IDE tools make code easy to navigateReference structure embedded In the codeDeclaration lookupStructured searchBut inheritance structure can be hard to e
E N D
1. CasCon 2004 1..20
2. 1. aspectj tools overview 3. tool support for large systems
3. CasCon 2004 3..20 The role of tool support IDE tools make code easy to navigate
Reference structure embedded In the code
Declaration lookup
Structured search
But inheritance structure can be hard to extract by reading code alone
Especially in large systems
E.g. who overrides this method?
4. CasCon 2004 4..20 AOP is all about crosscutting structure Key idea is dynamic join points
method & constructor execution
method & constructor call
field get & set
exception handler execution
static & dynamic initialization
…
Demo…
5. 1. aspectj tools overview 3. tool support for large systems
6. CasCon 2004 6..20 Getting started with AOP Things to consider
AOP language
Tool support
Platform integration
Hardened Java2 approaches to choose from
AspectJ
AspectWerkz
JBoss AOP
Spring
Let’s contrast what an aspect looks like in each…
7. CasCon 2004 7..20 AspectJ
8. CasCon 2004 8..20 AspectWerkz (annotation style) Offline interception allows an entire set of classes to be changed once, making runtime execution more efficient, at the cost of making the development cycle less efficient (you've have to manipulate a class file every time you recompiled the Java source). Online interception makes application execution less efficient (because the class must be modified while the program is running), but eliminates the extra step of changing the class file on every compile.
http://aspectwerkz.codehaus.org/introduction.htmlOffline interception allows an entire set of classes to be changed once, making runtime execution more efficient, at the cost of making the development cycle less efficient (you've have to manipulate a class file every time you recompiled the Java source). Online interception makes application execution less efficient (because the class must be modified while the program is running), but eliminates the extra step of changing the class file on every compile.
http://aspectwerkz.codehaus.org/introduction.html
9. CasCon 2004 9..20 AspectWerkz (XML style) Offline interception allows an entire set of classes to be changed once, making runtime execution more efficient, at the cost of making the development cycle less efficient (you've have to manipulate a class file every time you recompiled the Java source). Online interception makes application execution less efficient (because the class must be modified while the program is running), but eliminates the extra step of changing the class file on every compile.
http://aspectwerkz.codehaus.org/introduction.htmlOffline interception allows an entire set of classes to be changed once, making runtime execution more efficient, at the cost of making the development cycle less efficient (you've have to manipulate a class file every time you recompiled the Java source). Online interception makes application execution less efficient (because the class must be modified while the program is running), but eliminates the extra step of changing the class file on every compile.
http://aspectwerkz.codehaus.org/introduction.html
10. CasCon 2004 10..20 Spring Offline interception allows an entire set of classes to be changed once, making runtime execution more efficient, at the cost of making the development cycle less efficient (you've have to manipulate a class file every time you recompiled the Java source). Online interception makes application execution less efficient (because the class must be modified while the program is running), but eliminates the extra step of changing the class file on every compile.
http://aspectwerkz.codehaus.org/introduction.htmlOffline interception allows an entire set of classes to be changed once, making runtime execution more efficient, at the cost of making the development cycle less efficient (you've have to manipulate a class file every time you recompiled the Java source). Online interception makes application execution less efficient (because the class must be modified while the program is running), but eliminates the extra step of changing the class file on every compile.
http://aspectwerkz.codehaus.org/introduction.html
11. CasCon 2004 11..20 Language semantics
12. CasCon 2004 12..20 Language syntax
13. CasCon 2004 13..20 Platform integration
14. CasCon 2004 14..20 Tool support
15. 1. aspectj tools overview 3. tool support for large systems
16. CasCon 2004 16..20 Making do without AOP support You’re already working with crosscutting structure
J2EE’s XML descriptors, generative programming
Structured search and refactoring tools can help
But it’s not explicit
17. CasCon 2004 17..20 Exposing crosscutting structure AOP languages express crosscutting directly
Direct semantics enable good tool support
Crosscutting structure is explicit
Editor, views, documentation, …
Demo: build configurations, views…
18. CasCon 2004 18..20 AOP reduces system complexity Aspects are a new language mechanism, so there is a learning curve
But with good tool support AOP programs are easier to understand than their OO counterparts
19. CasCon 2004 19..20 What’s next? Java 5 support
Refactoring
Java refactorings will update aspects
AspectJ refactorings
Aspect-oriented refactorings will help with migration and evolution
Structure views
Everywhere you seeOO structure you see the correspondingAO structure
20. CasCon 2004 20..20 AspectJ credits Versions 0.1-1.1 developed at PARC
Eclipse.org Technology project
AspectJ committers
Adrian Colyer, Andy Clement,
Erik Hilsdale, Wes Isberg and Mik Kersten
AJDT committers
Adrian Colyer, Matt Chapman,Andy Clement, Mik Kersten and Julie Waterhouse
http://eclipse.org/aspectj
http://eclipse.org/ajdt