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