1Revision history for Perl extension IOC.
2
30.29 Thurs. April 26, 2007
4    * IOC::Service::Parameterized
5        - added docs and tests for this
6
7    * IOC::Registry
8        - &locateService accepts additional args now
9          to support the parameterized containers
10
11    * IOC::Container
12        - &find and &get accepts additional args now
13          to support the parameterized containers
14
15    * IOC::Visitor::ServiceLocator
16        - supports additional args now for
17          the parameterized containers
18
190.28 Wed May 4 2005
20    * IOC::Proxy
21    * IOC::Proxy::Interfaces
22        - fixed a bug with newer perls and @_
23
240.27 Wed Apr 13 2005
25    * IOC::Config::XML
26        - added some more documentation
27
28    * IOC::Config::SAX::Handler
29        - code refactor (no functional changes)
30        - added some more documentation
31
320.26 Thurs Mar 31 2005
33    ~ removed XML::Simple dependency
34    - added XML::SAX dependency
35
36    * IOC::Config::XML
37        - changed this to use the XML::SAX module
38          and the IOC::Config::XML::SAX::Handler
39          instead of XML::Simple
40
41    + Added IOC::Config::XML::SAX::Handler
42        - adapted tests from IOC::Config::XML
43          (not many changes actually most things
44          stayed the same)
45
460.25 Sat Feb 26 2005
47    - fixed an accidentatel dependency created in
48      the 060_IOC_Config_XML_test.t test file. It
49      was looking for DBI, and specificall DBD::Mock.
50      I removed this and created a dummy package in
51      the test file as a substitute. It should work
52      fine now.
53
540.24 Mon Feb 21 2004
55    * IOC::Service::ConstructorInjection
56    * IOC::Service::SetterInjection
57        - improved the handling for loading
58          classes automatically
59
60    + Added IOC::Config::XML
61        - added tests and documentation for this
62        - added XML::Simple as a dependency
63
64    * IOC::Exceptions
65        - added some expecptions for IOC::Config::XML
66            ~ IOC::ConfigurationError
67
680.23 Fri Jan 14 2005
69    * IOC::Registry
70        - added aliasService() method so that you
71          can alias one service path for another
72            - added tests for this
73            - added docs for this
74
750.22 Mon Dec 27 2004
76    * IOC::Service::ConstructorInjection
77    * IOC::Service::SetterInjection
78        - fixed class loading error in both, these
79          services will load your class if it is not
80          loaded already, and they were not doing
81          it correctly.
82            - added tests to confirm fixes
83
840.21 Sat Dec 25 2004 (Merry Christmas)
85    + Added IOC::Service::Literal
86        - this is an optimization to allow for literal
87          values to be held as services without them
88          needing to be wrapped in subroutines.
89        - added documentation for this
90        - added tests for this
91
92    * IOC::Container
93        - optmized this for IOC::Service::Literal objects
94          since they cannot have dependencies, and therefore
95          cannot have circular references there is no need to
96          fuss with them (lock, deferred, etc).
97
980.20 Thurs Dec 23 2004
99    * IOC::Service::ConstructorInjection
100        - added support for getting constructor args
101          which are outside of the current container
102          and can be located with find()
103            - added tests for this
104            - added to the docs for this
105
106    * IOC::Service::SetterInjection
107        - added support for getting setter args
108          which are outside of the current container
109          and can be located with find()
110            - added tests for this
111            - added to the docs for this
112
1130.19 Thurs Dec 23 2004
114    * IOC::Proxy
115        - fixed an issue with how overloaded
116          objects were handled. We no longer
117          copy the '()' method. This will help
118          to deal with overloaded object in
119          a more consistent manner.
120
1210.18 Fri Dec 17 2004
122    * IOC::Container
123        - improved some diagnostic messages
124
125    * IOC::Visitor::ServiceLocator
126        - improved some diagnostic messages
127            - added tests for these
128
129    * IOC::Exceptions
130        ~ added IOC::UnableToLocateService to help improve
131          the diagnostics in IOC::Visitor::ServiceLocator
132
1330.17 Wed Dec 15 2004
134    * IOC::Container
135        - added code to make sure that proxied instances
136          do not get re-proxied when they are retrieved
137          with get() again.
138            - added tests for this
139
1400.16 Fri Nov 26 2004
141    * IOC::Service
142        - added the deferred() method, which will
143          return an IOC::Service::Deferred wrapper
144          around the given service instance.
145
146    * IOC::Container
147        - removed the direct reference to the
148          IOC::Service::Deferred class, and it
149          now calls the deferred() method on
150          the IOC::Service instance itself.
151
1520.15 Sat Nov 20 2004
153    * IOC::Container
154        - adjusted how cyclical dependencies are
155          handled, so that they are now possible,
156          although still somewhat in their early
157          stages.
158            - added tests for this
159
160    * IOC::Service
161        - adjusted how cyclical dependencies are
162          handled, and created a sub-package called
163          IOC::Service::Deferred to facilitate this
164            - added tests for this
165
1660.14 Thurs Nov 18 2004
167    > now using Scalar::Util::blessed() instead of
168      the convoluted UNIVERSAL::isa() stuff. This
169      change affects a number of packages.
170      - added Scalar::Util as a dependency
171
1720.13 Wed Nov 17 2004
173    * IOC::Service::Prototype
174        - removed any reference to the prototypical
175          instance, so that complete lifecycle control
176          is given to the consumer of the service
177            ~ added tests and documentation for this
178
1790.12 Tues Nov 16 2004
180    + Added IOC::Proxy::Interfaces
181        - added tests and documentation for this
182
183    * IOC::Proxy
184        - broke out some more methods, so that subclasses
185          can really affect things on a granular level
186
1870.11 Thurs Nov 11 2004
188    * IOC
189        - added the IOC::Proxy module to the module
190          which get pre-loaded with this module
191
192    * IOC::Proxy
193        - broke the main methods down into small methods
194          (in Strategy pattern fashion) to allow for
195          variance of functionality in subclasses
196
197    * IOC::Container
198        - now detects a cyclical relationship and will
199          throw an IOC::IllegalOperation exception if it
200          is found. I am currently working on how to
201          allow for these types of relationships to exists
202          so this is really just a temporary solution.
203
2040.10 Tues Nov 9 2004
205    * IOC::Proxy
206        ~ fixed a warning about subroutine redefinition
207          when we add the auto-stringification
208          functionality to an object
209
2100.09 Mon Nov 8 2004
211    + added IOC::Proxy
212        - added tests and documentation for this
213
214    * IOC::Exceptions
215        - added the IOC::OperationFailed exception
216
217    * IOC::Container
218        - added the proxy related functions and all
219          the code to handle it
220            ~ added tests and documentation
221              for this functionality
222
2230.08 Fri Nov 5 2004
224	* IOC::Container
225        - added the 'unregister' method to remove
226          allow a IOC::Service to be removed
227            ~ added tests and documentation
228
229    * IOC::Service
230        - added the 'removeContainer' method to
231          facilitate the IOC::Container->unregister
232          method
233            ~ added tests and documentation
234
2350.07 Thurs Oct 21 2004
236    > Improved documentation for all classes, however
237      I still have more to write
238
239    + added IOC::Service::Prototype
240    + added IOC::Service::Prototype::ConstructorInjection
241    + added IOC::Service::Prototype::SetterInjection
242        - this allows services to dispense prototypes
243          rather then just singleton instances
244            ~ added tests for these new classes
245
246    * IOC::Exceptions
247        ~ added IOC::NotFound exception to handle
248          general cases
249
250    * IOC::Container
251        ~ added findRootContainer method
252
253    * IOC::Container::MethodResolution
254        - now handles auto-finding of sub-containers
255          as well, and introduces a new pseduo-method
256          'root' which will allow you to go back to the
257          root of the container hierarchy.
258
259    * IOC::Service::ConstructorInjection
260        - fixed parameter handling so it works
261          with the Prototype:: classes
262
263    * IOC::Visitor::ServiceLocator
264        - now uses findRootContainer method
265
266    * IOC::Visitor::SearchForContainer
267        - removed redundant code (thanks Devel::Cover :)
268
2690.06 Tues Oct 19 2004
270    << NOTE: Some API Changes >>
271
272    * IOC::Registry
273        - changed names of methods, anything with
274          the word 'Root' in it has now been changed
275          to 'Registered'.
276        - added unregisterContainer method
277        - added locateService method
278        - added locateContainer method
279        - added getRegisteredContainerList method
280        - added hasRegisteredContainer method
281        - added DESTORY method
282            ~ added tests and documentation for all new methods
283
284    * IOC::Service
285        ~ removed optional $container argument to constructor
286
287    * IOC::Service::ConstructorInjection
288        ~ removed optional $container argument to constructor
289
290    * IOC::Service::SetterInjection
291        ~ removed optional $container argument to constructor
292
2930.05 Tues Oct 19 2004
294    + added IOC::Registry
295        ~ created dependency with Class::StrongSingleton
296        ~ added tests for this
297    + added IOC::VisitorSearchForService
298        ~ added tests for this
299    + added IOC::VisitorSearchForContainer
300        ~ added tests for this
301
302    * IOC::Container
303        > added hasSubContainer method
304        > added hasService method
305
3060.04 Tues Oct 19 2004
307    < No CODE changes>
308        - forgot to add Class::Interfaces to the dependency list
309        - forgot to include this changelog
310
3110.03 Mon Oct 18 2004
312    + added IOC::Interfaces
313        ~ created dependency with Class::Interfaces
314    + added IOC::Visitor::ServiceLocator
315        ~ added tests for this
316
317    * IOC::Exceptions
318        > changed few names again, but I got it right now
319
320    * IOC::Container
321        > added visitor support
322            - made IOC::Container inherit from the
323              IOC::Visitable interface (see IOC::Interfaces)
324                ~ added tests for this
325                ~ added documentation for this
326        > added support for sub-containers
327            - added example of this to SYNOPSIS
328            - added a number of methods to deal with
329              sub-containers and parent containers
330                ~ added tests for all these
331                ~ added documentation for all these
332        > added 'find' method which utilizes a Visitor
333          to locate a given service through a path-like syntax
334          (see the IOC::Visitor::ServiceLocator for more)
335        > changed names of exceptions
336            ~ IOC::DuplicateServiceException to IOC::ServiceAlreadyExists
337
338
3390.02 Fri Oct 15 2004
340    + added IOC::Container::MethodResultion
341        ~ added tests for this
342    + added IOC::Service::ConstructorInjection
343        ~ added tests for this
344    + added IOC::Service::SetterInjection
345        ~ added tests for this
346
347    * IOC::Exceptions
348        > added a few more exceptions to IOC::Exceptions
349          and changed the names of a few as well
350
351    * IOC::Container
352        > changed names of exceptions
353            ~ IOC::MissingService to IOC::ServiceNotFound
354
355    * IOC::Service
356        > when a container is passed to the IOC::Service
357          constructor, it will now cause the service to
358          be officially registered with the container
359
360
3610.01 Thu Oct 14 20:03:20 2004
362    - module created
363
364