AspectJ Cookbook

   
book cover
  
• Table of Contents
• Index
• Reviews
• Reader Reviews
• Errata
• Academic
AspectJ Cookbook
By Russell Miles
 
Publisher: O'Reilly
Pub Date: December 2004
ISBN: 0-596-00654-3
Pages: 354
   


This hands-on book shows readers why and how common Java development problems can be solved by using new Aspect-oriented programming (AOP) techniques. With a wide variety of code recipes for solving day-to-day design and coding problems using AOP's unique approach, AspectJ Cookbook demonstrates that AOP is more than just a concept; it's a development process that will benefit users in an immediate and visible manner.


   
book cover
  
• Table of Contents
• Index
• Reviews
• Reader Reviews
• Errata
• Academic
AspectJ Cookbook
By Russell Miles
 
Publisher: O'Reilly
Pub Date: December 2004
ISBN: 0-596-00654-3
Pages: 354
   


   Copyright
   Preface
      Audience
      About This Book
      Assumptions This Book Makes
      Conventions Used in This Book
      Using the Code Examples
      We'd Like to Hear from You
      Safari Enabled
      Acknowledgments
        Chapter 1.  Aspect Orientation Overview
      Section 1.1.  A Brief History of Aspect Orientation
      Section 1.2.  AspectJ
      Section 1.3.  A Definition of Aspect Orientation
      Section 1.4.  Where to Go for More Information
        Chapter 2.  Getting Started with AspectJ
      Introduction
      Recipe 2.1.  Installing AspectJ
      Recipe 2.2.  Developing a Simple Aspect
      Recipe 2.3.  Compiling an Aspect and Multiple Java Files
      Recipe 2.4.  Weaving Aspects into Jars
      Recipe 2.5.  Weaving Aspects at Load Time
      Recipe 2.6.  Generating Javadoc Documentation
      Recipe 2.7.  Compiling an AspectJ Project Using Eclipse
      Recipe 2.8.  Selecting the Aspects That Are Woven in a Build Within Eclipse
      Recipe 2.9.  Building an AspectJ Project Using Ant
        Chapter 3.  Deploying AspectJ Applications
      Introduction
      Recipe 3.1.  Deploying a Command-Line AspectJ Application
      Recipe 3.2.  Deploying an AspectJ Application as a Fully Contained Executable JAR File
      Recipe 3.3.  Deploying a Java Servlet That Uses AspectJ
      Recipe 3.4.  Deploying a JSP That Uses AspectJ
      Recipe 3.5.  Deploying an Axis Web Service That Uses AspectJ
        Chapter 4.  Capturing Joing Points on Methods
      Introduction
      Recipe 4.1.  Capturing a Method Call
      Recipe 4.2.  Capturing the Parameter Values Passed on a Method Call
      Recipe 4.3.  Capturing the Target of a Method Call
      Recipe 4.4.  Capturing a Method When It Is Executing
      Recipe 4.5.  Capturing the Value of the this Reference When a Method Is Executing
        Chapter 5.  Capturing Join Points on Exception Handling
      Introduction
      Recipe 5.1.  Capturing When an Exception Is Caught
      Recipe 5.2.  Capturing the Thrown Exception
      Recipe 5.3.  Capturing the Object Handling the Exception
        Chapter 6.  Capturing Join Points on Advice
      Introduction
      Recipe 6.1.  Capturing When Advice Is Executing
      Recipe 6.2.  Excluding Join Points That Are a Result of Advice Execution
      Recipe 6.3.  Exposing the Original Join Point When Advice Is Being Advised
        Chapter 7.  Capturing Join Points on Class Object Construction
      Introduction
      Recipe 7.1.  Capturing a Call to a Constructor
      Recipe 7.2.  Capturing a Constructor When It Is Executing
      Recipe 7.3.  Capturing When an Object Is Initialized
      Recipe 7.4.  Capturing When an Object Is About to Be Initialized
      Recipe 7.5.  Capturing When a Class Is Initialized
        Chapter 8.  Capturing Join Points on Attributes
      Introduction
      Recipe 8.1.  Capturing When an Object's Attribute Is Accessed
      Recipe 8.2.  Capturing the Value of the Field Being Accessed
      Recipe 8.3.  Capturing When an Object's Field Is Modified
      Recipe 8.4.  Capturing the Value of a Field When It Is Modified
        Chapter 9.  Capturing Join Points Within Programmatic Scope
      Introduction
      Recipe 9.1.  Capturing All Join Points Within a Particular Class
      Recipe 9.2.  Capturing All Join Points Within a Particular Package
      Recipe 9.3.  Capturing All Join Points Within a Particular Method
        Chapter 10.  Capturing Join Points Based on Control Flow
      Introduction
      Recipe 10.1.  Capturing All Join Points Within a Program's Control Flow Initiated by an Initial Join Point
      Recipe 10.2.  Capturing All Join Points Within a Program's Control Flow, Excluding the Initial Join Point
        Chapter 11.  Capturing Join Points Based on Object Type
      Introduction
      Recipe 11.1.  Capturing When the this Reference Is a Specific Type
      Recipe 11.2.  Capturing When a Join Point's Target Object Is a Specific Type
      Recipe 11.3.  Capturing When the Arguments to a Join Point Are a Certain Number, Type, and Ordering
        Chapter 12.  Capturing Join Points Based on a Boolean or Combined Expression
      Introduction
      Recipe 12.1.  Capturing When a Runtime Condition Evaluates to True on a Join Point
      Recipe 12.2.  Combining Pointcuts Using a Logical AND (&&)
      Recipe 12.3.  Combining Pointcuts Using a Logical OR (||)
      Recipe 12.4.  Capturing All Join Points NOT Specified by a Pointcut Declaration
      Recipe 12.5.  Declaring Anonymous Pointcuts
      Recipe 12.6.  Reusing Pointcuts
        Chapter 13.  Defining Advice
      Introduction
      Recipe 13.1.  Accessing Class Members
      Recipe 13.2.  Accessing the Join Point Context
      Recipe 13.3.  Executing Advice Before a Join Point
      Recipe 13.4.  Executing Advice Around a Join Point
      Recipe 13.5.  Executing Advice Unconditionally After a Join Point
      Recipe 13.6.  Executing Advice Only After a Normal Return from a Join Point
      Recipe 13.7.  Executing Advice Only After an Exception Has Been Raised in a Join Point
      Recipe 13.8.  Controlling Advice Precedence
      Recipe 13.9.  Advising Aspects
        Chapter 14.  Defining Aspect Instantiation
      Introduction
      Recipe 14.1.  Defining Singleton Aspects
      Recipe 14.2.  Defining an Aspect per Instance
      Recipe 14.3.  Defining an Aspect per Control Flow
        Chapter 15.  Defining Aspect Relationships
      Introduction
      Recipe 15.1.  Inheriting Pointcut Definitions
      Recipe 15.2.  Implementing Abstract Pointcuts
      Recipe 15.3.  Inheriting Classes into Aspects
      Recipe 15.4.  Declaring Aspects Inside Classes
        Chapter 16.  Enhancing Classes and the Compiler
      Introduction
      Recipe 16.1.  Extending an Existing Class
      Recipe 16.2.  Declaring Inheritance Between Classes
      Recipe 16.3.  Implementing Interfaces Using Aspects
      Recipe 16.4.  Declaring a Default Interface Implementation
      Recipe 16.5.  Softening Exceptions
      Recipe 16.6.  Extending Compilation
        Chapter 17.  Implementing Creational Object-Oriented Design Patterns
      Introduction
      Recipe 17.1.  Implementing the Singleton Pattern
      Recipe 17.2.  Implementing the Prototype Pattern
      Recipe 17.3.  Implementing the Abstract Factory Pattern
      Recipe 17.4.  Implementing the Factory Method Pattern
      Recipe 17.5.  Implementing the Builder Pattern
        Chapter 18.  Implementing Structural Object-Oriented Design Patterns
      Introduction
      Recipe 18.1.  Implementing the Composite Pattern
      Recipe 18.2.  Implementing the Flyweight Pattern
      Recipe 18.3.  Implementing the Adapter Pattern
      Recipe 18.4.  Implementing the Bridge Pattern
      Recipe 18.5.  Implementing the Decorator Pattern
      Recipe 18.6.  Implementing the Proxy Pattern
        Chapter 19.  Implementing Behavioral Object-Oriented Design Patterns
      Introduction
      Recipe 19.1.  Implementing the Observer Pattern
      Recipe 19.2.  Implementing the Command Pattern
      Recipe 19.3.  Implementing the Iterator Pattern
      Recipe 19.4.  Implementing the Mediator Pattern
      Recipe 19.5.  Implementing the Chain of Responsibility Pattern
      Recipe 19.6.  Implementing the Memento Pattern
      Recipe 19.7.  Implementing the Strategy Pattern
      Recipe 19.8.  Implementing the Visitor Pattern
      Recipe 19.9.  Implementing the Template Method Pattern
      Recipe 19.10.  Implementing the State Pattern
      Recipe 19.11.  Implementing the Interpreter Pattern
        Chapter 20.  Applying Class and Component Scale Aspects
      Introduction
      Recipe 20.1.  Validating Parameters Passed to a Method
      Recipe 20.2.  Overriding the Class Instantiated on a Call to a Constructor
      Recipe 20.3.  Adding Persistence to a Class
      Recipe 20.4.  Applying Mock Components to Support Unit Testing
        Chapter 21.  Applying Application Scale Aspects
      Introduction
      Recipe 21.1.  Applying Aspect-Oriented Tracing
      Recipe 21.2.  Applying Aspect-Oriented Logging
      Recipe 21.3.  Applying Lazy Loading
      Recipe 21.4.  Managing Application Properties
        Chapter 22.  Applying Enterprise Scale Aspects
      Introduction
      Recipe 22.1.  Applying Development Guidelines and Rules
      Recipe 22.2.  Applying Transactions
      Recipe 22.3.  Applying Resource Pooling
      Recipe 22.4.  Remoting a Class Transparently Using RMI
      Recipe 22.5.  Applying a Security Policy
        Chapter 23.  Applying Aspect-Oriented Design Patterns
      Introduction
      Recipe 23.1.  Applying the Cuckoo's Egg Design Pattern
      Recipe 23.2.  Applying the Director Design Pattern
      Recipe 23.3.  Applying the Border Control Design Pattern
      Recipe 23.4.  Applying the Policy Design Pattern
        Appendix A.  The AspectJ Runtime API
      Section A.1.  org.aspectj.lang
      Section A.2.  Signature
      Section A.3.  org.aspectj.lang.reflect
      Section A.4.  The SoftException Class
      Section A.5.  The NoAspectBoundException Class
   Colophon
   Index