The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.
Revision history for Perl extension IOC.

0.13 Wed Nov 17 2004
    * IOC::Service::Prototype
        - removed any reference to the prototypical
          instance, so that complete lifecycle control
          is given to the consumer of the service
            ~ added tests and documentation for this

0.12 Tues Nov 16 2004
    + Added IOC::Proxy::Interfaces
        - added tests and documentation for this 
        
    * IOC::Proxy
        - broke out some more methods, so that subclasses
          can really affect things on a granular level

0.11 Thurs Nov 11 2004   
    * IOC
        - added the IOC::Proxy module to the module 
          which get pre-loaded with this module
        
    * IOC::Proxy
        - broke the main methods down into small methods
          (in Strategy pattern fashion) to allow for 
          variance of functionality in subclasses
           
    * IOC::Container
        - now detects a cyclical relationship and will
          throw an IOC::IllegalOperation exception if it
          is found. I am currently working on how to 
          allow for these types of relationships to exists
          so this is really just a temporary solution.

0.10 Tues Nov 9 2004
    * IOC::Proxy
        ~ fixed a warning about subroutine redefinition
          when we add the auto-stringification 
          functionality to an object

0.09 Mon Nov 8 2004
    + added IOC::Proxy
        - added tests and documentation for this 
    
    * IOC::Exceptions
        - added the IOC::OperationFailed exception
        
    * IOC::Container
        - added the proxy related functions and all
          the code to handle it
            ~ added tests and documentation 
              for this functionality

0.08 Fri Nov 5 2004
	* IOC::Container
        - added the 'unregister' method to remove 
          allow a IOC::Service to be removed
            ~ added tests and documentation
                      
    * IOC::Service
        - added the 'removeContainer' method to 
          facilitate the IOC::Container->unregister
          method
            ~ added tests and documentation

0.07 Thurs Oct 21 2004
    > Improved documentation for all classes, however
      I still have more to write

    + added IOC::Service::Prototype
    + added IOC::Service::Prototype::ConstructorInjection
    + added IOC::Service::Prototype::SetterInjection 
        - this allows services to dispense prototypes
          rather then just singleton instances
            ~ added tests for these new classes

    * IOC::Exceptions
        ~ added IOC::NotFound exception to handle
          general cases

    * IOC::Container
        ~ added findRootContainer method
          
    * IOC::Container::MethodResolution
        - now handles auto-finding of sub-containers
          as well, and introduces a new pseduo-method
          'root' which will allow you to go back to the
          root of the container hierarchy.

    * IOC::Service::ConstructorInjection
        - fixed parameter handling so it works
          with the Prototype:: classes 

    * IOC::Visitor::ServiceLocator
        - now uses findRootContainer method
        
    * IOC::Visitor::SearchForContainer
        - removed redundant code (thanks Devel::Cover :)

0.06 Tues Oct 19 2004
    << NOTE: Some API Changes >>

    * IOC::Registry
        - changed names of methods, anything with 
          the word 'Root' in it has now been changed
          to 'Registered'.
        - added unregisterContainer method
        - added locateService method
        - added locateContainer method
        - added getRegisteredContainerList method
        - added hasRegisteredContainer method
        - added DESTORY method
            ~ added tests and documentation for all new methods
        
    * IOC::Service
        ~ removed optional $container argument to constructor
        
    * IOC::Service::ConstructorInjection
        ~ removed optional $container argument to constructor
        
    * IOC::Service::SetterInjection
        ~ removed optional $container argument to constructor 

0.05 Tues Oct 19 2004
    + added IOC::Registry
        ~ created dependency with Class::StrongSingleton
        ~ added tests for this
    + added IOC::VisitorSearchForService
        ~ added tests for this
    + added IOC::VisitorSearchForContainer
        ~ added tests for this

    * IOC::Container
        > added hasSubContainer method
        > added hasService method

0.04 Tues Oct 19 2004 
    < No CODE changes>
        - forgot to add Class::Interfaces to the dependency list
        - forgot to include this changelog

0.03 Mon Oct 18 2004
    + added IOC::Interfaces
        ~ created dependency with Class::Interfaces
    + added IOC::Visitor::ServiceLocator
        ~ added tests for this
    
    * IOC::Exceptions
        > changed few names again, but I got it right now
        
    * IOC::Container
        > added visitor support
            - made IOC::Container inherit from the 
              IOC::Visitable interface (see IOC::Interfaces) 
                ~ added tests for this
                ~ added documentation for this
        > added support for sub-containers
            - added example of this to SYNOPSIS
            - added a number of methods to deal with
              sub-containers and parent containers
                ~ added tests for all these
                ~ added documentation for all these
        > added 'find' method which utilizes a Visitor
          to locate a given service through a path-like syntax
          (see the IOC::Visitor::ServiceLocator for more)
        > changed names of exceptions 
            ~ IOC::DuplicateServiceException to IOC::ServiceAlreadyExists
        

0.02 Fri Oct 15 2004
    + added IOC::Container::MethodResultion
        ~ added tests for this
    + added IOC::Service::ConstructorInjection
        ~ added tests for this
    + added IOC::Service::SetterInjection
        ~ added tests for this
        
    * IOC::Exceptions
        > added a few more exceptions to IOC::Exceptions
          and changed the names of a few as well
      
    * IOC::Container
        > changed names of exceptions 
            ~ IOC::MissingService to IOC::ServiceNotFound
            
    * IOC::Service
        > when a container is passed to the IOC::Service
          constructor, it will now cause the service to
          be officially registered with the container


0.01 Thu Oct 14 20:03:20 2004
    - module created