(
NOTE: Each chapter concludes with a Summary.)
Introduction. I. INTRODUCTION TO PROGRAMMING WITH ASPECTJ.
1. Why Aspect-Oriented Programming? Complexity Management. From OO to Aspects. Aspect-Oriented Programming. Meet AspectJ.
2. A First Look at AspectJ. Quick Setup Guide. Introduction to the Language. How It All Works.
II. STRATEGIES FOR A REAL APPLICATION.
3. Application Description. Business Requirements and Usage. Architecture. Tools. File Layout. Build Process.
4. Implementation Details. Presentation Layer. Configuration and Initialization. Database Operations.
5. Crosscutting by Design. Security. Design by Contract and Other Coding Improvements. Clean Exception Handling.
6. Development Aids. Logging. Tracing. Profiling.
7. Runtime Improvements. Buffering. Pooling. Caching.
8. Coping with Change. New Logging. New Levels of Service.
9. Transition to Deployment. Catalog of Aspects. Performance of the Aspects. Documentation and Packaging.
III. LANGUAGE DETAILS.
10. Aspects. Extension. Instantiation. Domination.
11. Picking Join Points: Pointcuts. Join Points and Pointcuts. Wild Cards. Test Case. call Pointcut. execution Pointcut. get Pointcut. set Pointcut. handler Pointcut. Initialization. staticinitialization Pointcut. within Pointcut. withincode Pointcut. cflow Pointcut. cflowbelow Pointcut. this Pointcut. target Pointcut. args Pointcut. if Pointcut. PointcutId Pointcut. The ! Operation. The && Operation. The || Operation. Using Parentheses. Context.
12. Advices. Introductory Notes. The before Advice. The after Advice. The around Advice. Precedence Rules.
13. Static Crosscutting. Test Case. Field Introduction. Method Introduction. Constructor Introduction. Access Rules and Privileged Aspects. Extension. Implementation. Warnings and Errors. Softened Exceptions.
IV. CONCLUSION.
14. Use Patterns. Shooting Yourself in the Tail. We Want It All. Following the Recursion Path. Getting in Synch. Hyper-Cutting. A Word of Caution.
V. APPENDIXES.
Appendix A. AspectJ API. Interfaces JoinPoint and JoinPoint.StaticPart. Interface Signature and Its Subinterfaces. Interface SourceLocation. Exceptions. An Example.
Appendix B. AspectJ Command-Line Tools. The ajc Tool. Ajdoc.
Appendix C. Auxiliary Tools. Tomcat. MySQL Database. Ant.
Appendix D. Quick Language Reference. Aspect. Aspect Association. Type Patterns. Advice. Pointcut Designators. Introduction.
Appendix E. AspectJ Project. Project at PARC. Contact Information. Community Participation and Support.
Appendix F. References. Chapter G. Glossary. Index.