In a November 2001 Java Pro magazine article, noted Java pundit Daniel Savarese states, "The days of Object-Oriented Programming may be numbered, One day we may all be using Aspect-Oriented Programming ." While this may be hyperbole, the AOP bring certain needed improvements to the OOP. AspectJ is a Java-based tool that allows developers to apply standard Java syntax to AOP principles, much as C++ allowed C programmers to use C syntax in an object-oriented manner. There are AspectJ add-ons available for Borland's JBuilder, Sun's Forte for Java and for the EMACS text editor. Aspect-Oriented Programming with AspectJ introduces AOP and the AspectJ tool. The book also shows how, by using existing Java programming knowledge, the developer can use AOP in meaningful development work.
(NOTE: Each chapter concludes with a Summary.)
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.