Revision history for Perl extension IOC.
0.29 Thurs. April 26, 2007
* IOC::Service::Parameterized
- added docs and tests for this
* IOC::Registry
- &locateService accepts additional args now
to support the parameterized containers
* IOC::Container
- &find and &get accepts additional args now
to support the parameterized containers
* IOC::Visitor::ServiceLocator
- supports additional args now for
the parameterized containers
0.28 Wed May 4 2005
* IOC::Proxy
* IOC::Proxy::Interfaces
- fixed a bug with newer perls and @_
0.27 Wed Apr 13 2005
* IOC::Config::XML
- added some more documentation
* IOC::Config::SAX::Handler
- code refactor (no functional changes)
- added some more documentation
0.26 Thurs Mar 31 2005
~ removed XML::Simple dependency
- added XML::SAX dependency
* IOC::Config::XML
- changed this to use the XML::SAX module
and the IOC::Config::XML::SAX::Handler
instead of XML::Simple
+ Added IOC::Config::XML::SAX::Handler
- adapted tests from IOC::Config::XML
(not many changes actually most things
stayed the same)
0.25 Sat Feb 26 2005
- fixed an accidentatel dependency created in
the 060_IOC_Config_XML_test.t test file. It
was looking for DBI, and specificall DBD::Mock.
I removed this and created a dummy package in
the test file as a substitute. It should work
fine now.
0.24 Mon Feb 21 2004
* IOC::Service::ConstructorInjection
* IOC::Service::SetterInjection
- improved the handling for loading
classes automatically
+ Added IOC::Config::XML
- added tests and documentation for this
- added XML::Simple as a dependency
* IOC::Exceptions
- added some expecptions for IOC::Config::XML
~ IOC::ConfigurationError
0.23 Fri Jan 14 2005
* IOC::Registry
- added aliasService() method so that you
can alias one service path for another
- added tests for this
- added docs for this
0.22 Mon Dec 27 2004
* IOC::Service::ConstructorInjection
* IOC::Service::SetterInjection
- fixed class loading error in both, these
services will load your class if it is not
loaded already, and they were not doing
it correctly.
- added tests to confirm fixes
0.21 Sat Dec 25 2004 (Merry Christmas)
+ Added IOC::Service::Literal
- this is an optimization to allow for literal
values to be held as services without them
needing to be wrapped in subroutines.
- added documentation for this
- added tests for this
* IOC::Container
- optmized this for IOC::Service::Literal objects
since they cannot have dependencies, and therefore
cannot have circular references there is no need to
fuss with them (lock, deferred, etc).
0.20 Thurs Dec 23 2004
* IOC::Service::ConstructorInjection
- added support for getting constructor args
which are outside of the current container
and can be located with find()
- added tests for this
- added to the docs for this
* IOC::Service::SetterInjection
- added support for getting setter args
which are outside of the current container
and can be located with find()
- added tests for this
- added to the docs for this
0.19 Thurs Dec 23 2004
* IOC::Proxy
- fixed an issue with how overloaded
objects were handled. We no longer
copy the '()' method. This will help
to deal with overloaded object in
a more consistent manner.
0.18 Fri Dec 17 2004
* IOC::Container
- improved some diagnostic messages
* IOC::Visitor::ServiceLocator
- improved some diagnostic messages
- added tests for these
* IOC::Exceptions
~ added IOC::UnableToLocateService to help improve
the diagnostics in IOC::Visitor::ServiceLocator
0.17 Wed Dec 15 2004
* IOC::Container
- added code to make sure that proxied instances
do not get re-proxied when they are retrieved
with get() again.
- added tests for this
0.16 Fri Nov 26 2004
* IOC::Service
- added the deferred() method, which will
return an IOC::Service::Deferred wrapper
around the given service instance.
* IOC::Container
- removed the direct reference to the
IOC::Service::Deferred class, and it
now calls the deferred() method on
the IOC::Service instance itself.
0.15 Sat Nov 20 2004
* IOC::Container
- adjusted how cyclical dependencies are
handled, so that they are now possible,
although still somewhat in their early
stages.
- added tests for this
* IOC::Service
- adjusted how cyclical dependencies are
handled, and created a sub-package called
IOC::Service::Deferred to facilitate this
- added tests for this
0.14 Thurs Nov 18 2004
> now using Scalar::Util::blessed() instead of
the convoluted UNIVERSAL::isa() stuff. This
change affects a number of packages.
- added Scalar::Util as a dependency
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