castle.windsor 2.1.0.0 → 2.5.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. data/docs/BreakingChanges.txt +229 -0
  2. data/docs/{ReleaseNotes/Changes.txt → Changes.txt} +240 -63
  3. data/docs/releaseNotes.txt +5 -0
  4. data/lib/Silverlight3/BreakingChanges.txt +229 -0
  5. data/lib/Silverlight3/Castle.Windsor.dll +0 -0
  6. data/lib/Silverlight3/Castle.Windsor.pdb +0 -0
  7. data/lib/{net-3.5/Castle.MicroKernel.xml → Silverlight3/Castle.Windsor.xml} +4967 -3001
  8. data/lib/Silverlight4/BreakingChanges.txt +229 -0
  9. data/lib/Silverlight4/Castle.Windsor.dll +0 -0
  10. data/lib/Silverlight4/Castle.Windsor.pdb +0 -0
  11. data/lib/{sl-3.0/Castle.MicroKernel.xml → Silverlight4/Castle.Windsor.xml} +5006 -2772
  12. data/lib/dotNet35/BreakingChanges.txt +229 -0
  13. data/lib/dotNet35/Castle.Windsor.dll +0 -0
  14. data/lib/dotNet35/Castle.Windsor.pdb +0 -0
  15. data/lib/dotNet35/Castle.Windsor.xml +8635 -0
  16. data/lib/dotNet35/loggingFacility/Castle.Facilities.Logging.dll +0 -0
  17. data/lib/dotNet35/loggingFacility/Castle.Facilities.Logging.pdb +0 -0
  18. data/lib/{net-3.5 → dotNet35/loggingFacility}/Castle.Facilities.Logging.xml +11 -6
  19. data/lib/dotNet35/synchronizeFacility/Castle.Facilities.Synchronize.dll +0 -0
  20. data/lib/dotNet35/synchronizeFacility/Castle.Facilities.Synchronize.pdb +0 -0
  21. data/lib/dotNet40/BreakingChanges.txt +229 -0
  22. data/lib/dotNet40/Castle.Windsor.dll +0 -0
  23. data/lib/dotNet40/Castle.Windsor.pdb +0 -0
  24. data/lib/dotNet40/Castle.Windsor.xml +8635 -0
  25. data/lib/dotNet40/loggingFacility/Castle.Facilities.Logging.dll +0 -0
  26. data/lib/dotNet40/loggingFacility/Castle.Facilities.Logging.pdb +0 -0
  27. data/lib/dotNet40/loggingFacility/Castle.Facilities.Logging.xml +80 -0
  28. data/lib/dotNet40/synchronizeFacility/Castle.Facilities.Synchronize.dll +0 -0
  29. data/lib/dotNet40/synchronizeFacility/Castle.Facilities.Synchronize.pdb +0 -0
  30. data/lib/dotNet40ClientProfile/BreakingChanges.txt +229 -0
  31. data/lib/dotNet40ClientProfile/Castle.Windsor.dll +0 -0
  32. data/lib/dotNet40ClientProfile/Castle.Windsor.pdb +0 -0
  33. data/lib/dotNet40ClientProfile/Castle.Windsor.xml +8587 -0
  34. data/lib/dotNet40ClientProfile/synchronizeFacility/Castle.Facilities.Synchronize.dll +0 -0
  35. data/lib/dotNet40ClientProfile/synchronizeFacility/Castle.Facilities.Synchronize.pdb +0 -0
  36. metadata +42 -35
  37. data/lib/net-3.5/Castle.Facilities.Logging.dll +0 -0
  38. data/lib/net-3.5/Castle.MicroKernel.dll +0 -0
  39. data/lib/net-3.5/Castle.Windsor.dll +0 -0
  40. data/lib/net-3.5/Castle.Windsor.xml +0 -1571
  41. data/lib/sl-3.0/Castle.MicroKernel.dll +0 -0
  42. data/lib/sl-3.0/Castle.Windsor.dll +0 -0
  43. data/lib/sl-3.0/Castle.Windsor.xml +0 -1157
@@ -0,0 +1,229 @@
1
+ ================================================================================================
2
+ change - ILazyComponentLoader.Load now accepts a third argument for additional arguments.
3
+
4
+ impact - medium
5
+ fixability - easy
6
+ revision -
7
+
8
+ description - To allow maximum flexibility and usage with Resolve, any additional arguments
9
+ are now passed to the lazy loader.
10
+ ================================================================================================
11
+ change - LifecycleStepCollection class was removed. Instaed LifecycleConcernsCollection class
12
+ was introduced. ILifecycleConcern has now two innerited interfaces for commission and
13
+ decommission. LifecycleSteps property of ComponentModel was renamed to Lifecycle.
14
+ LifecycleStepType type was removed.
15
+
16
+ impact - medium
17
+ fixability - easy
18
+ revision -
19
+
20
+ description - To improve strongly typed nature and decrease probability of mistake and improve
21
+ general usability of the type LifecycleStepCollection was removed. In it place similar type
22
+ was introduced - LifecycleConcernsCollection. Instead of using untyped Objects and enums
23
+ it works with two new interfaces : ICommissionConcern and IDecommissionConcern.
24
+
25
+ fix - have your lifecycle steps implement one of the new lifecycle interfaces. Use appropriate
26
+ overload of Add/AddFirst to add them.
27
+ ================================================================================================
28
+ change - Typed Factories will not implicitly pick default ITypedFactoryComponentSelector
29
+ registered in the container anymore
30
+
31
+ impact - low
32
+ fixability - easy
33
+ revision -
34
+
35
+ description - In version 2.1 where ITypedFactoryComponentSelectors were introduced, when you had
36
+ a selector registered in the container that selector would be implicitly picked for every
37
+ factory you had. Since the behavior of a selector tends to be fine grained and targetet for
38
+ a specific factories, this behavior was removed. You have to explicitly associate the selector
39
+ with a factory (using .AsFactory(f => f.SelectUsing("MySelector")); or via xml configuration)
40
+ to override selection behavior.
41
+
42
+ fix - using either fluent API .AsFactory(f => f.SelectUsing("MySelector")), or XML configuration
43
+ selector="${MySelector}" specify the selector explicitly for each of your factories.
44
+ ================================================================================================
45
+ change - ServiceSelector delegate (used in WithService.Select calls) changed signature
46
+
47
+ impact - low
48
+ fixability - easy
49
+ revision -
50
+
51
+ description - To fix a bug which would occur if type implemented multiple closed version of base
52
+ open generic interface the signature of the delegate was changed from
53
+ public delegate IEnumerable<Type> ServiceSelector(Type type, Type baseType);
54
+ to
55
+ public delegate IEnumerable<Type> ServiceSelector(Type type, Type[] baseTypes);
56
+ so that multiple base types are possible (they would be closed versions of the same open
57
+ generic interface)
58
+
59
+ fix - depending on the scenario. You would either ignore it, or wrap your current method's body
60
+ in foreach(var baseType in baseTypes)
61
+ ================================================================================================
62
+ change - moved IWindsorInstaller to Castle.MicroKernel.Registration namespace
63
+
64
+ impact - very low
65
+ fixability - easy
66
+ revision -
67
+
68
+ description -In order to improve developer experience when writing installers the interface
69
+ was moved so that Component and AllTypes entry types for registration are already in scope.
70
+
71
+ fix - add using Castle.MicroKernel.Registration directive.
72
+ ================================================================================================
73
+ change - Added two new overloads to ITypeConverter.PerformConversion
74
+
75
+ impact - very low
76
+ fixability - easy
77
+ revision -
78
+
79
+ description - To reduce casting in the most common scenario where converted value is casted to
80
+ the type it's been converted to, ITypeConverter.PerformConversion has now generic overloads
81
+ for handling this case.
82
+
83
+ fix - If you're implementing ITypeConverter via AbstractTypeConverter you don't have to do
84
+ anything as the base class will handle the conversion for you. Otherwise implement it like
85
+ in AbstractTypeConverter.
86
+
87
+ ================================================================================================
88
+ change - AddCustomComponent method were moved from IKernel to IKernelInternal interface
89
+
90
+ impact - very low
91
+ fixability - easy
92
+ revision -
93
+
94
+ description - This method constitute internally used contract of kernel and is not intended
95
+ for external usage. As such it was moved to internal interface to declutter public
96
+ interface of IKernel.
97
+
98
+ fix - You should not have been using this method so it should not affect you in any way. If
99
+ you did, cast the IKernel to IKernelInternal to invoke the method.
100
+
101
+ ================================================================================================
102
+ change - IModelInterceptorsSelector.SelectInterceptors method changed its signature and how it
103
+ is used.
104
+
105
+ impact - medium
106
+ fixability - medium
107
+ revision -
108
+
109
+ description - To accomodate additional scenarios that were impossible (or hard to achieve
110
+ with previous design the method now has additional parameter, an array of references to
111
+ interceptors, which contains either default interceptors for the component, or interceptors
112
+ selected by previous interceptors in line). Also, Windsor will now never call
113
+ IModelInterceptorsSelector.SelectInterceptors without calling
114
+ IModelInterceptorsSelector.HasInterceptors before it, or when the latter returns false.
115
+
116
+ fix - When adjusting your implementation remember that model's interceptors are the default value
117
+ passed as methods second parameter, so you don't need to merge them again manually (otherwise
118
+ they'll be invoked twice).
119
+
120
+ ================================================================================================
121
+ change - CreateComponentActivator, RaiseHandlerRegistered, RaiseHandlersChanged and
122
+ RegisterHandlerForwarding methods were moved from IKernel to IKernelInternal interface
123
+
124
+ impact - very low
125
+ fixability - easy
126
+ revision -
127
+
128
+ description - These methods constitute internally used contract of kernel and are not intended
129
+ for external usage. As such they were moved to internal interface to declutter public
130
+ interface of IKernel.
131
+
132
+ fix - You should not have been using these methods so it should not affect you in any way. If
133
+ you did, cast the IKernel to IKernelInternal to invoke the methods.
134
+
135
+ ================================================================================================
136
+ change - IProxyHook interface was removed
137
+
138
+ impact - very low
139
+ fixability - easy
140
+ revision -
141
+
142
+ description - Since MicroKernel was merged with Windsor and now depends on DynamicProxy directly
143
+ there's no need to provide additional abstraction on top of IProxyGenerationHook.
144
+
145
+ fix - Make types that were implementing IProxyHook to implement IProxyGenerationHook. Change all
146
+ usages of IProxyHook to IProxyGenerationHook.
147
+
148
+ ================================================================================================
149
+ change - AddInstallerConfiguration and GetComponents methods were added to IConfigurationStore.
150
+
151
+ impact - very low
152
+ fixability - easy
153
+ revision - 3bf716cc6fc218601dab92a6dd75fe269bcb63d0
154
+
155
+ description - To enable installers to be exposed via configuration the interface has been
156
+ extended by addition of the two methods.
157
+
158
+ fix - Implement the methods accordingly to your situation.
159
+
160
+ ================================================================================================
161
+ change - Multiple types were moved between namespaces
162
+
163
+ impact - low
164
+ fixability - trivial
165
+ revision - 3bf716cc6fc218601dab92a6dd75fe269bcb63d0
166
+
167
+ description - To improve the internal structure several types were moved to other namespaces.
168
+
169
+ fix - When compilation error occurs adjust namespace imports as suggested by Visual Studio
170
+
171
+ ================================================================================================
172
+ change - Assembly Castle.MicroKernel.dll was merged into Castle.Windsor.dll
173
+
174
+ impact - high
175
+ fixability - easy
176
+ revision - 730b202b0ed23a6b42258a6ffd6a3e63f89501fc
177
+
178
+ description - Since vast majority of users used Windsor, as opposed to bare MicroKernel it was
179
+ decided it didn't make sense to maintain two containers. As result of that their assemblies
180
+ were merged, as first step of integration between Windsor and MicroKernel.
181
+
182
+ fix - In your projects remove reference to Castle.MicroKernel.dll. If you weren't using Windsor
183
+ add reference to Castle.Windsor.dll
184
+ In all places where your were referencing types from Castle.MicroKernel.dll via string
185
+ (like xml configuration when registering facilities, or <httpModules> section on your
186
+ web.config) update references from Castle.MicroKernel to Castle.Windsor.
187
+
188
+ ================================================================================================
189
+ change - ComponentRegistration<S>.Startable public method has been removed.
190
+ ComponentRegistration<S>.StartUsingMethod public method was moved to extension method.
191
+ ComponentRegistration<S>.StopUsingMethod public method was moved to extension method.
192
+
193
+ impact - low
194
+ fixability - trivial
195
+ revision - 6710
196
+
197
+ description - StartUsingMethod/StopUsingMethod belong to StartableFacility and do not make sense
198
+ as part of generic API. Startable method was superfluous.
199
+
200
+ fix - Remove calls to Startable(). Import namespace Castle.Facilities.Startable to use
201
+ StartUsingMethod and StopUsingMethod as extension methods.
202
+
203
+ ================================================================================================
204
+ change - DefaultProxyFactory.CreateProxyGenerationOptionsFrom protected method and
205
+ DefaultProxyFactory.CustomizeProxy protected virtual method have changed signature
206
+
207
+ impact - very low
208
+ fixability - easy
209
+ revision - 6691
210
+
211
+ description - the methods now also takes IKernel and CreationContext, to be used by IReferences
212
+ to do resolution of components they reference
213
+
214
+ fix - pass required parameters to the methods.
215
+
216
+ ================================================================================================
217
+ change - ProxyOption's properties changed types:
218
+ Selector, from IInterceptorSelector to IReference<IInterceptorSelector>
219
+ Hook from IProxyHook to IReference<IProxyHook>
220
+ MixIns from object[] to IEnumerable<IReference<object>>
221
+
222
+ impact - very low
223
+ fixability - easy
224
+ revision - 6691
225
+
226
+ description - the properties now use IReferences instead of live objects to allow for
227
+ resolution of their values from the container, as required in case of usage from xml.
228
+
229
+ fix - wherever used, adjust types appropriately. To obtain actual objects, use Resolve method.
@@ -1,3 +1,180 @@
1
+ 2.5.0 (2010-08-21)
2
+
3
+ - debugger view support has been extracted to a separate subsystem (IContainerDebuggerExtensionHost) and can be extended by users code via IContainerDebuggerExtension and IComponentDebuggerExtension
4
+
5
+ - calling IHandler.TryStart will no longer silently ignore all the exceptions.
6
+
7
+ - added CollectionResolver which is a more general version of ArrayResolver and ListResolver and supports in addition ICollection<Foo> and IEnumerable<Foo>
8
+
9
+ - fixed issue where dependencies would not be cleaned up when component creation failed
10
+
11
+ - fixed issue where startable component would be created twice when property dependency could not be resolved
12
+
13
+ - passing arguments to ILazyComponentLoader (see breakingchanges.txt)
14
+
15
+ - fixed bug that caused exception when proxied component and it's proxied property dependency shared interceptor
16
+
17
+ 2.5.0 beta2 (2010-07-21)
18
+ ==================
19
+
20
+ - added support for selecting components based on custom attributes and their properties. See Component.HasAttribute<T>() methods
21
+
22
+ - added WithService.DefaultInterface() to fluent API.IT matches Foo to IFoo, SuperFooExtended to IFoo and IFooExtended etc
23
+
24
+ - added support for CastleComponentAttribute in fluent Api. Also added helper filter method Component.IsCastleComponent
25
+
26
+ - added ability to specify interceptors selector as a service, not just as instance
27
+
28
+ - added ability to specify proxy hook in fluent API:
29
+
30
+ - indexers on IKernel are now obsolete.
31
+
32
+ - added WithAppConfig() method to logging facility to point to loging configuration in AppDomain's config file (web.config or app.config)
33
+
34
+ - Restructured lifecycle concerns - introduced ICommissionConcern and IDecommissionConcern and favors them over old enum driven style.
35
+
36
+ - Fixed how contextual arguments are handled. Null is no longer considered a valid value (That would cause an exception later on, now it's ignored).
37
+
38
+ - Changed method DeferredStart on StartableFacility. It now does not take a bool parameter. A DeferredTryStart() method was introduced instead.
39
+
40
+ 2.5.0 beta1 (2010-07-05)
41
+ ==================
42
+ - Typed Factories will not implicitly pick default ITypedFactoryComponentSelector registered in the container anymore
43
+
44
+ - Obsoleted all the AddComponent* methods in favor of using Installers and fluent registration API
45
+
46
+ - ServiceSelector delegate (used in WithService.Select calls) changed signature to fix a bug: http://3.ly/eP5Q
47
+
48
+ - moved IWindsorInstaller to Castle.MicroKernel.Registration namespace
49
+
50
+ - typed factories will now obey container release policy, that is if the container does not track the component, so won't the factory.
51
+
52
+ - added helper methods to fluently configure logging facility using: container.AddFacility<LoggingFacility>( f = > f.Fluent().Magic().Here() );
53
+
54
+ - added overload for UsingFactoryMethod which exposees ComponentModel of component to the factory
55
+
56
+ - added generic overloads for ITypeConverter.PerformConversion to reduce casting.
57
+
58
+ - it is now possible to call WithService.Foo().WithService.Bar() and both services will be used. Also more methods were added: WithService.Self() and WithService.AllInterfaces()
59
+
60
+ - added simple debugger visualizer to help diagnosing misconfigured components.
61
+
62
+ - added optimized mode to StartableFacility for Single-call-to-Install scenario that won't start anything before the end of Install (at which point the container is assumed to be completely configured and all components should be there) and it will throw if it can't resolve and start the component.
63
+
64
+ - added OptimizeDependencyResolution around calls to Install
65
+
66
+ - Component.IsInNamespace and its sister methods have now overload that let you include components from subnamespaces as well.
67
+
68
+ - added ability to load assemblies from designated directory (with fair bit of optional filtering using new AssemblyFilter class). It works in three places:
69
+ - AllTypes.FromAssemblyInDirectory() - picks assemblies for registration
70
+ - FromAssembly.InDirectory() - installs installers from assemblies in the directory
71
+ - <install directory="" /> - installs installers from assemblies in directory via XML
72
+
73
+ - TypedFactoryFacility - added ability to configure factory inline: Component.For<IFooFactory>().AsFactory(f => f.SelectedWith("selectorKey"))
74
+
75
+ - Changed IModelInterceptorSelector's signature and behavior (see breakingChanges.txt for details)
76
+
77
+ - removed IProxyHook interface (see breakingchanges.txt)
78
+
79
+ - added support for specifying typed factory component selectors on a per-factory basis
80
+
81
+ - added support for using services as mixins
82
+
83
+ - added autogenerated delegate-based factories. Taking dependency on Func<IFoo> and calling the delegate will return IFoo from the container
84
+
85
+ - implemented IOC-ISSUE-203 - Add to fluent API scanning assemblies for IWindsorInstallers and installing them
86
+
87
+ - added fluent API for EventWiringFacility
88
+
89
+ - added ability to specify assemblies that will be scanned for types when shorthened type name is using via XML using the following syntax:
90
+ <using assembly="Assembly name or path to file.dll" />
91
+
92
+ - added ability to specify installers (IWindsorInstaller) via XML using either of the following:
93
+ <installers>
94
+ <install type="Castle.Windsor.Tests.Installers.CustomerInstaller"/>
95
+ <install assembly="Castle.Windsor.Tests"/>
96
+ </installers>
97
+ installers must be public and have default constructor.
98
+
99
+ - Xml config does not require assembly qualified type name any more - specifying just type name, or typename+namespace should be enough. Works only for types in already loaded assemblies.
100
+
101
+ - ResolveAll will now resolve components that are not in Valid state when inline/dynamic arguments are provided
102
+
103
+ - TypedFactoryFacility: TypedFactoryComponent will now fallback to resolving by type if no component with designated name can be found
104
+
105
+ - fixed issue with per-web-request components not being released properly in some cases
106
+
107
+ - fixed IOC-ISSUE-199 - NamingPartsSubSystem broken when RegisterHandlerForwarding is used
108
+
109
+ - TypedFactoryFacility: added ability to resolve multiple components
110
+
111
+ - TypedFactoryFacility: added ability to put custom resolving logic
112
+
113
+ - fixed another case of IoC-168 where a component with two constructors of different parameter length couldn't be resolved when the fewer parameter constructor was not satisfied
114
+
115
+ - If and Unless functions on fluent registration API are now cumulative - it is legal to call them multiple times and all conditions will be checked. This is a minor breaking change from previous behavior where last call would win.
116
+
117
+ - added typed arguments (specified by type rather than by name).
118
+ It works for:
119
+ - call site (Resolve with Dictionary, specifying System.Type as value of key. A helper class 'Arguments' should be used for this.)
120
+ - DynamicParameters - there's an extension method Insert that should make using it nicer
121
+ - fluent Api (DependsOn(Property.ForKey<string>().Eq("typed"))
122
+
123
+ - added 'Insert' extension method on IDictionary, specifically so simplify usage in DynamicParameters method and similar situations. It behaves like IDictionary's indexer setter
124
+
125
+ - added 'Arguments' class to carry inline arguments (typed or named) for components. It is recommended to use this class rather than Hashtable or Dictionary<>
126
+
127
+ - added strongly typed overloads for StartUsingMethod and StopUsingMethod from startable facility's registration API. It is now possible to call .StartUsingMethod(x => x.Start).StopUsingMethod(x => x.Stop)
128
+
129
+ - moved StartUsingMethod/StopUsingMethod to extension methods in StartableFacility's namespace. Startable() method was removed as superfluous.
130
+
131
+ - changed the UsingFactoryMethod (and UsingFactory) methods in fluent registration API to not rely on FactorySupportFacility. They now work even if facility is not used.
132
+
133
+ - fixed IOC-ISSUE-190 - "Resolve with argumentsAsAnonymousType overload is now case sensitive".
134
+ This fixed a regression bug introduced in v2.1, and brings the behavior back to what it was in v2.0.
135
+
136
+ - added support for specifying interceptorsSelector, proxyHook and mixins from config (see new tests for example). This also means some small impact breaking changes:
137
+ - DefaultProxyFactory.CreateProxyGenerationOptionsFrom protected method has changed signature - it now also takes IKernel and CreationContext, to be used by IReferences to do resolve (see below)
138
+ - DefaultProxyFactory.CustomizeProxy protected virtual method has changed signature, for the same reason as above
139
+ - ProxyOption's properties changed types:
140
+ Selector, from IInterceptorSelector to IReference<IInterceptorSelector>
141
+ Hook from IProxyHook to IReference<IProxyHook>
142
+ MixIns from object[] to IEnumerable<IReference<object>>
143
+ IReference abstraction allows to use components resolved from the container, similar to InterceptorReferences.
144
+
145
+ - Moved several types from Core:
146
+ ComponentActivatorAttribute
147
+ ComponentProxyBehaviorAttribute
148
+ CustomLifestyleAttribute
149
+ DoNotWireAttribute
150
+ InterceptorAttribute
151
+ LifestyleAttribute
152
+ PooledAttribute
153
+ TransientAttribute
154
+ GraphNode
155
+ IVertex
156
+ IRecyclable
157
+ IStartable
158
+ ComponentModel
159
+ ConstructorCandidate
160
+ ConstructorCandidateCollection
161
+ DependencyModel
162
+ DependencyModelCollection
163
+ InterceptorReference
164
+ InterceptorReferenceCollection
165
+ LifecycleStepCollection
166
+ MethodMetaModel
167
+ MethodMetaModelCollection
168
+ ParameterModel
169
+ ParameterModelCollection
170
+ PropertySet
171
+ PropertySetCollection
172
+ TopologicalSortAlgo
173
+ IOnBehalfAware
174
+ GraphSets
175
+ GraphTestCase
176
+
177
+
1
178
  2.1.1 (2010-01-13)
2
179
  ==================
3
180
  - Reverted factory support facility changes in r6595, r6596 and r6653 which fixed IOC-ISSUE-153, however caused other bugs
@@ -7,11 +184,11 @@
7
184
  ==================
8
185
  - Moved the logging facility project into the Windsor project:
9
186
  - Applied Tom Allard's patch fixing FACILITIES-93
10
- "Extra constructors on LoggingFacility"
187
+ "Extra constructors on LoggingFacility"
11
188
  - Added test case supplied by chris ortman
12
189
  - Register base logger and factory when using extended logger.
13
190
  - Fixed FACILITIES-77
14
- "ILoggerFactory instance creation requires constructor with one argument"
191
+ "ILoggerFactory instance creation requires constructor with one argument"
15
192
 
16
193
  - simplified API for attaching interceptors.
17
194
 
@@ -270,27 +447,27 @@ RC 4
270
447
  -- Introduces the KeySearchNamingSubSystem
271
448
 
272
449
  -- Allows you to associate a custom component activator using
273
- 1. componentActivatorType on component node
274
- 2. ComponentActivatorAttribute
450
+ 1. componentActivatorType on component node
451
+ 2. ComponentActivatorAttribute
275
452
 
276
453
  -- Allows you to create and configure child containers
277
454
  through the configuration, using
278
455
 
279
456
  <configuration>
280
- <containers>
281
- <container name="child1">
282
- <configuration>
283
- <facilities>
457
+ <containers>
458
+ <container name="child1">
459
+ <configuration>
460
+ <facilities>
284
461
  ...
285
- </facilities>
286
-
287
- <components>
462
+ </facilities>
463
+
464
+ <components>
288
465
  ...
289
- </components>
290
-
291
- </configuration>
292
- </container>
293
- </containers>
466
+ </components>
467
+
468
+ </configuration>
469
+ </container>
470
+ </containers>
294
471
  </configuration>
295
472
 
296
473
  - Applied AndyD's patch fixing IOC-52
@@ -375,7 +552,7 @@ RC 3
375
552
  an object per web request. To use it you must add the following http module
376
553
 
377
554
  <httpModules>
378
- ...
555
+ ...
379
556
  <add name="PerWebRequest" type="Castle.MicroKernel.Lifestyle.PerWebRequestLifestyleManager , Castle.MicroKernel,Version=0.0.1.7, Culture=neutral, PublicKeyToken=407dd0808d44fbdc"/>
380
557
 
381
558
  <httpModules>
@@ -390,7 +567,7 @@ RC 3
390
567
 
391
568
  - None: No properties inspection should happen
392
569
  - All: All properties will be inspected and collected (on the class and on the superclasses).
393
- This is the default behavior
570
+ This is the default behavior
394
571
  - DeclaredOnly: Only properties specified on type are checked (superclasses will be ignored)
395
572
 
396
573
  - Added overload to ITypeConvertor that accept the current node configuration as well as the type in CanHandleType()
@@ -419,14 +596,14 @@ RC 3
419
596
 
420
597
 
421
598
  - Applied patch by Alex Henderson <webmaster@bittercoder.com> adding
422
- IWindsorContainer.RemoveChildContainer(IWindsorContainer childContainer)
423
- and IKernel.RemoveChildKernel(IKernel kernel)
599
+ IWindsorContainer.RemoveChildContainer(IWindsorContainer childContainer)
600
+ and IKernel.RemoveChildKernel(IKernel kernel)
424
601
 
425
602
  - Applied fix by Ahmed. Now defines can be used on properties nodes like
426
603
 
427
604
  <properties>
428
605
  <?if DEBUG?>
429
- <item>x</item>
606
+ <item>x</item>
430
607
  <?end?>
431
608
  </properties>
432
609
 
@@ -442,38 +619,38 @@ using #{propertyName} syntax.(Patch from Ahmed)
442
619
  Example:
443
620
 
444
621
  <configuration>
445
- <properties>
446
- <MyComponentParams>
447
- <user>Joe</user>
448
- <pwd>Doe</pwd>
449
- </MyComponentParams>
450
- </properties>
451
- <components id=??Component
452
- <parameters>#{ MyComponentParams }</parameters>
453
- </components>
622
+ <properties>
623
+ <MyComponentParams>
624
+ <user>Joe</user>
625
+ <pwd>Doe</pwd>
626
+ </MyComponentParams>
627
+ </properties>
628
+ <components id=??Component
629
+ <parameters>#{ MyComponentParams }</parameters>
630
+ </components>
454
631
  </configuration>
455
632
 
456
633
  Will result in
457
634
 
458
- <components id=??Component
459
- <parameters>
460
- <user>Joe</user>
461
- <pwd>Doe</pwd>
462
- </parameters>
463
- </components>
635
+ <components id=??Component
636
+ <parameters>
637
+ <user>Joe</user>
638
+ <pwd>Doe</pwd>
639
+ </parameters>
640
+ </components>
464
641
 
465
642
  - Type converter for kernel components. This allows a usage like this:
466
643
 
467
644
  <component id="mycomp">
468
645
 
469
- <parameters>
470
- <servicelist>
471
- <list type="IMyService, MyAssembly">
472
- <item>${keytocomponent1}</item>
473
- <item>${keytocomponent2}</item>
474
- </list>
475
- </servicelist>
476
- </parameters>
646
+ <parameters>
647
+ <servicelist>
648
+ <list type="IMyService, MyAssembly">
649
+ <item>${keytocomponent1}</item>
650
+ <item>${keytocomponent2}</item>
651
+ </list>
652
+ </servicelist>
653
+ </parameters>
477
654
 
478
655
  - Removed support for MethodMeta on ComponentModel. The design decision here
479
656
  is to make the facilities interested on it to extend MethodMetaInspector
@@ -518,9 +695,9 @@ RC 2
518
695
  - Support for custom lifestyle through configuration (kudos to Bawer Dagdeviren):
519
696
 
520
697
  <component id="my.component"
521
- type="MyLib.MyComponent, MyLib"
522
- lifestyle="custom"
523
- customLifestyleType="MyLib.MyCustomLifestyle, MyLib" />
698
+ type="MyLib.MyComponent, MyLib"
699
+ lifestyle="custom"
700
+ customLifestyleType="MyLib.MyCustomLifestyle, MyLib" />
524
701
 
525
702
  - Added Type converter for enums
526
703
 
@@ -548,21 +725,21 @@ RC 2
548
725
  which are accessible through Uris:
549
726
 
550
727
  - FileResource:
551
- file://pathtofile
552
- (For example: file://c:\mydir\file.txt)
728
+ file://pathtofile
729
+ (For example: file://c:\mydir\file.txt)
553
730
 
554
731
  - AssemblyResource:
555
- assembly://AssemblyName/ExtendingNamespace/filename
556
- (For example: assembly://Castle.Windsor.Tests/Configuration2/include1.xml)
732
+ assembly://AssemblyName/ExtendingNamespace/filename
733
+ (For example: assembly://Castle.Windsor.Tests/Configuration2/include1.xml)
557
734
 
558
735
  - ConfigResource:
559
- config://sectioname
560
- (For example: config://castle will fetch the
561
- <configuration><castle> entry in the configuration)
736
+ config://sectioname
737
+ (For example: config://castle will fetch the
738
+ <configuration><castle> entry in the configuration)
562
739
 
563
740
  - UncResource:
564
- \\server\file
565
- (For example: \\mysharedplace\myconfig.xml)
741
+ \\server\file
742
+ (For example: \\mysharedplace\myconfig.xml)
566
743
 
567
744
  - IResource, IResourceFactory and IResourceSubSystem introduced
568
745
 
@@ -639,13 +816,13 @@ Beta 1 - 21/jan/2005
639
816
  - Added: support for dictionaries, lists and arrays on the configuration file.
640
817
 
641
818
  <component>
642
- <parameters>
643
- <properties>
644
- <dictionary>
645
- <item key="mykey">value</item>
646
- </dictionary>
647
- </properties>
648
- </parameters>
819
+ <parameters>
820
+ <properties>
821
+ <dictionary>
822
+ <item key="mykey">value</item>
823
+ </dictionary>
824
+ </properties>
825
+ </parameters>
649
826
  </component>
650
827
 
651
828
  - Added: Component Graph (used by the Remove method and to dispose the components)