1. managed system
    1. Traditional
      1. monolithic design
      2. main() new to inititantiate other objects
      3. unmanaged system
        1. desktop applicatoin
    2. web application
      1. container managed
      2. lifycycle control
      3. just configure
      4. more complex
        1. multithreading
  2. New
    1. rigidly coupled with concrete type
  3. Service Advice
    1. intercept method invocations
  4. Tapestry 5 Request Process
    1. Tapestry 5 Filter
      1. HttpServletRequestHandler
        1. ComponentRequestFilter
          1. ComponentRequestHandler
          2. ComponentEventRequestFilter
          3. ComponentEventRequestHanler
          4. PageRenderRequestFilter
          5. PageRenderRequestHandler
  5. Methodologies
    1. Inside Tapestry
    2. practice
    3. reading and summary
      1. learn
    4. Diagrams
      1. Logical View
    5. Take Notes
    6. Look into tapestry 5 classes, learn the mechanisms
  6. 浮動主題
    1. @LoginRequired
      1. LoginRequiredFilter.class
        1. configuration.add("LoginRequired", LoginRequiredFilter.class
    2. ComponentRequestHandler.class
      1. @UsesOrderdeConfiguration(ComponentRequestFilter.class)
  7. 浮動主題
  8. Services
    1. Service Interface
      1. Uniquely Identified Service ID
      2. best practices
      3. proxies
    2. Service Implementation
    3. Configuration
      1. Map
      2. Ordered List
      3. Collection
    4. Features
      1. instantiated as needed
      2. invoked on the proxy
      3. thread-safe
    5. Service Realization
      1. Instantiating a service
      2. injecting dependencies
      3. decorating the service
      4. a service transitions from virtual (just a proxy) to real (fully instantiated and ready to operate).
    6. Scope
      1. Default:Singleton
    7. Service Dependencies
      1. injected into a service builder
      2. collaborators
    8. point of Injection
      1. annotations
  9. Module
    1. Module Class
      1. Plain Java class
        1. Bind Service Interfaces to Service Implementation classes
        2. Contribute Configuration Data into Service Configurations
        3. Decorate Services with interceptors
        4. Provide explicit code for building service
        5. Set Default Marker for all Services
    2. Static or Instance Methods
      1. Define Services
        1. instantiating the service implementation
          1. service builder methods
      2. Decorate Services
        1. create interceptor objects
          1. adding behaviors
          2. implement the same service interface
      3. Contribute Configuration
        1. invoked to contribute objects into configurations
      4. registry
    3. Service Builder Methods
      1. triditional way to define services
    4. Auto Build
    5. Marker
    6. Configuration
  10. IoC Concepts
    1. Goal: Simplicity, Power, reusable, robust, No XML
    2. ideas from C/C++ pointer
    3. container managed objects
      1. lifecycle
        1. shared objects
        2. user state
        3. multi-threads
    4. Specification
      1. house built
        1. local services
      2. programming
        1. ioc services
          1. IoC Container proivdes local services
    5. Unit Test
      1. EasyMock
    6. Simple is Beautiful
      1. Small Objects with simple responsibilities
      2. Collaborate among each other
    7. IoC Container
      1. IoC Registry
        1. Tapestry Ioc Module
        2. Tapestry Module
      2. Lifecycle
        1. Lazy
          1. when requires
          2. defined
          3. registered
          4. virtual
          5. some objects repy on it
          6. depends
          7. ready to use
          8. Shutdown
          9. consumers do not need to care all lifecycle
      3. Service
        1. like a proxy object
    8. Principles of Responsibilities
  11. T5 Dependency Injection
    1. important parts of realization
    2. injection by constructors
      1. pass parameters to service constructor methods
        1. match parameter type
      2. direct injection into fields
      3. thread safety
      4. parameter annotations
  12. Basic Tapestry Unit is Service