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.
- data/docs/BreakingChanges.txt +229 -0
- data/docs/{ReleaseNotes/Changes.txt → Changes.txt} +240 -63
- data/docs/releaseNotes.txt +5 -0
- data/lib/Silverlight3/BreakingChanges.txt +229 -0
- data/lib/Silverlight3/Castle.Windsor.dll +0 -0
- data/lib/Silverlight3/Castle.Windsor.pdb +0 -0
- data/lib/{net-3.5/Castle.MicroKernel.xml → Silverlight3/Castle.Windsor.xml} +4967 -3001
- data/lib/Silverlight4/BreakingChanges.txt +229 -0
- data/lib/Silverlight4/Castle.Windsor.dll +0 -0
- data/lib/Silverlight4/Castle.Windsor.pdb +0 -0
- data/lib/{sl-3.0/Castle.MicroKernel.xml → Silverlight4/Castle.Windsor.xml} +5006 -2772
- data/lib/dotNet35/BreakingChanges.txt +229 -0
- data/lib/dotNet35/Castle.Windsor.dll +0 -0
- data/lib/dotNet35/Castle.Windsor.pdb +0 -0
- data/lib/dotNet35/Castle.Windsor.xml +8635 -0
- data/lib/dotNet35/loggingFacility/Castle.Facilities.Logging.dll +0 -0
- data/lib/dotNet35/loggingFacility/Castle.Facilities.Logging.pdb +0 -0
- data/lib/{net-3.5 → dotNet35/loggingFacility}/Castle.Facilities.Logging.xml +11 -6
- data/lib/dotNet35/synchronizeFacility/Castle.Facilities.Synchronize.dll +0 -0
- data/lib/dotNet35/synchronizeFacility/Castle.Facilities.Synchronize.pdb +0 -0
- data/lib/dotNet40/BreakingChanges.txt +229 -0
- data/lib/dotNet40/Castle.Windsor.dll +0 -0
- data/lib/dotNet40/Castle.Windsor.pdb +0 -0
- data/lib/dotNet40/Castle.Windsor.xml +8635 -0
- data/lib/dotNet40/loggingFacility/Castle.Facilities.Logging.dll +0 -0
- data/lib/dotNet40/loggingFacility/Castle.Facilities.Logging.pdb +0 -0
- data/lib/dotNet40/loggingFacility/Castle.Facilities.Logging.xml +80 -0
- data/lib/dotNet40/synchronizeFacility/Castle.Facilities.Synchronize.dll +0 -0
- data/lib/dotNet40/synchronizeFacility/Castle.Facilities.Synchronize.pdb +0 -0
- data/lib/dotNet40ClientProfile/BreakingChanges.txt +229 -0
- data/lib/dotNet40ClientProfile/Castle.Windsor.dll +0 -0
- data/lib/dotNet40ClientProfile/Castle.Windsor.pdb +0 -0
- data/lib/dotNet40ClientProfile/Castle.Windsor.xml +8587 -0
- data/lib/dotNet40ClientProfile/synchronizeFacility/Castle.Facilities.Synchronize.dll +0 -0
- data/lib/dotNet40ClientProfile/synchronizeFacility/Castle.Facilities.Synchronize.pdb +0 -0
- metadata +42 -35
- data/lib/net-3.5/Castle.Facilities.Logging.dll +0 -0
- data/lib/net-3.5/Castle.MicroKernel.dll +0 -0
- data/lib/net-3.5/Castle.Windsor.dll +0 -0
- data/lib/net-3.5/Castle.Windsor.xml +0 -1571
- data/lib/sl-3.0/Castle.MicroKernel.dll +0 -0
- data/lib/sl-3.0/Castle.Windsor.dll +0 -0
- 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
|
-
|
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
|
-
|
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
|
-
|
274
|
-
|
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
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
457
|
+
<containers>
|
458
|
+
<container name="child1">
|
459
|
+
<configuration>
|
460
|
+
<facilities>
|
284
461
|
...
|
285
|
-
|
286
|
-
|
287
|
-
|
462
|
+
</facilities>
|
463
|
+
|
464
|
+
<components>
|
288
465
|
...
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
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
|
-
|
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
|
-
|
423
|
-
|
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
|
-
|
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
|
-
|
446
|
-
|
447
|
-
|
448
|
-
|
449
|
-
|
450
|
-
|
451
|
-
|
452
|
-
|
453
|
-
|
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
|
-
|
459
|
-
|
460
|
-
|
461
|
-
|
462
|
-
|
463
|
-
|
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
|
-
|
470
|
-
|
471
|
-
|
472
|
-
|
473
|
-
|
474
|
-
|
475
|
-
|
476
|
-
|
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
|
-
|
522
|
-
|
523
|
-
|
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
|
-
|
552
|
-
|
728
|
+
file://pathtofile
|
729
|
+
(For example: file://c:\mydir\file.txt)
|
553
730
|
|
554
731
|
- AssemblyResource:
|
555
|
-
|
556
|
-
|
732
|
+
assembly://AssemblyName/ExtendingNamespace/filename
|
733
|
+
(For example: assembly://Castle.Windsor.Tests/Configuration2/include1.xml)
|
557
734
|
|
558
735
|
- ConfigResource:
|
559
|
-
|
560
|
-
|
561
|
-
|
736
|
+
config://sectioname
|
737
|
+
(For example: config://castle will fetch the
|
738
|
+
<configuration><castle> entry in the configuration)
|
562
739
|
|
563
740
|
- UncResource:
|
564
|
-
|
565
|
-
|
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
|
-
|
643
|
-
|
644
|
-
|
645
|
-
|
646
|
-
|
647
|
-
|
648
|
-
|
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)
|