castle.windsor 2.0.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/docs/ASL - Apache Software Foundation License.txt +57 -0
- data/docs/Committers.txt +76 -0
- data/docs/Geting the source.txt +11 -0
- data/docs/ReleaseNotes/Core Release Notes.txt +85 -0
- data/docs/ReleaseNotes/DynamicProxy Release Notes.txt +163 -0
- data/docs/ReleaseNotes/InversionOfControl Release Notes.txt +623 -0
- data/docs/ReleaseNotes/License.txt +14 -0
- data/lib/Castle.MicroKernel.dll +0 -0
- data/lib/Castle.MicroKernel.xml +5484 -0
- data/lib/Castle.Windsor.dll +0 -0
- data/lib/Castle.Windsor.xml +1571 -0
- metadata +132 -0
@@ -0,0 +1,57 @@
|
|
1
|
+
Apache License, Version 2.0
|
2
|
+
|
3
|
+
Apache License
|
4
|
+
Version 2.0, January 2004
|
5
|
+
http://www.apache.org/licenses/
|
6
|
+
|
7
|
+
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
8
|
+
|
9
|
+
1. Definitions.
|
10
|
+
|
11
|
+
"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
|
12
|
+
|
13
|
+
"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
|
14
|
+
|
15
|
+
"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
|
16
|
+
|
17
|
+
"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
|
18
|
+
|
19
|
+
"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
|
20
|
+
|
21
|
+
"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
|
22
|
+
|
23
|
+
"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
|
24
|
+
|
25
|
+
"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
|
26
|
+
|
27
|
+
"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
|
28
|
+
|
29
|
+
"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
|
30
|
+
|
31
|
+
2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
|
32
|
+
|
33
|
+
3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
|
34
|
+
|
35
|
+
4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
|
36
|
+
|
37
|
+
1. You must give any other recipients of the Work or Derivative Works a copy of this License; and
|
38
|
+
|
39
|
+
2. You must cause any modified files to carry prominent notices stating that You changed the files; and
|
40
|
+
|
41
|
+
3. You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
|
42
|
+
|
43
|
+
4. If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.
|
44
|
+
|
45
|
+
You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
|
46
|
+
|
47
|
+
5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
|
48
|
+
|
49
|
+
6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
|
50
|
+
|
51
|
+
7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
|
52
|
+
|
53
|
+
8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
|
54
|
+
|
55
|
+
9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
|
56
|
+
|
57
|
+
END OF TERMS AND CONDITIONS
|
data/docs/Committers.txt
ADDED
@@ -0,0 +1,76 @@
|
|
1
|
+
This file names who's behind the Castle Team. You can find more about us at http://www.castleproject.org/community/team.html
|
2
|
+
|
3
|
+
Committers
|
4
|
+
==========
|
5
|
+
(ordered by the date when joined the project)
|
6
|
+
|
7
|
+
- hammett/Hamilton Verissimo
|
8
|
+
- Henry Concei��o
|
9
|
+
- Kevin Williams
|
10
|
+
- Craig Neuwirt
|
11
|
+
- Gilles Bayon
|
12
|
+
- Andrew Hallock
|
13
|
+
- Jason Nelson
|
14
|
+
- Dru Sellers
|
15
|
+
- John Morales
|
16
|
+
- CobraLord
|
17
|
+
- Dan
|
18
|
+
- Tatham Oddie
|
19
|
+
- Fabio David Batista
|
20
|
+
- Chad Humphries
|
21
|
+
- Ayende Rahien
|
22
|
+
- G. Richard Bellamy
|
23
|
+
- Roelof Blom
|
24
|
+
- Ahmed Ghandour
|
25
|
+
- Josh Robb
|
26
|
+
- Ernst Naezer
|
27
|
+
- Marc-Andre Cournoyer
|
28
|
+
- Fabian Schmied
|
29
|
+
- Dave Godfrey
|
30
|
+
- Markus Zywitza
|
31
|
+
- Lee Henson
|
32
|
+
- Ken Egozi
|
33
|
+
- Chris Ortman
|
34
|
+
- Jonathon Rossi
|
35
|
+
- Tuna Toks�z
|
36
|
+
|
37
|
+
Managers
|
38
|
+
========
|
39
|
+
|
40
|
+
Patch Manager
|
41
|
+
-------------
|
42
|
+
|
43
|
+
- Josh Robb
|
44
|
+
|
45
|
+
Documentation Manager
|
46
|
+
---------------------
|
47
|
+
|
48
|
+
-
|
49
|
+
|
50
|
+
|
51
|
+
PMC Members
|
52
|
+
===========
|
53
|
+
(ordered by the date when joined the PMC)
|
54
|
+
|
55
|
+
- hammett/Hamilton Verissimo (Chair)
|
56
|
+
- Henry Concei��o
|
57
|
+
- Kevin Williams
|
58
|
+
- Craig Neuwirt
|
59
|
+
- Gilles Bayon
|
60
|
+
- Chad Humphries
|
61
|
+
- Ayende Rahien
|
62
|
+
- Fabio David Batista
|
63
|
+
- Roelof Blom
|
64
|
+
- Josh Robb
|
65
|
+
|
66
|
+
Emeritus
|
67
|
+
========
|
68
|
+
(no longer active committers)
|
69
|
+
|
70
|
+
- Gilles Bayon
|
71
|
+
- Dan
|
72
|
+
- Andrew Hallock
|
73
|
+
- John Morales
|
74
|
+
- CobraLord
|
75
|
+
- Tatham Oddie
|
76
|
+
- Ahmed Ghandour
|
@@ -0,0 +1,11 @@
|
|
1
|
+
The source for this release can be downloaded from the Subversion repository at the following addresses:
|
2
|
+
|
3
|
+
Tagged release:
|
4
|
+
https://svn.castleproject.org/svn/castle/tags/Windsor-2.0
|
5
|
+
|
6
|
+
Release branch:
|
7
|
+
https://svn.castleproject.org/svn/castle/branches/windsor-2.x
|
8
|
+
|
9
|
+
Trunk version: r5654
|
10
|
+
|
11
|
+
To get the source from Subversion, you need to make use of a subversion client, such as TortoiseSvn or the svn command line client.
|
@@ -0,0 +1,85 @@
|
|
1
|
+
1.1.0 (2009-05-04)
|
2
|
+
==================
|
3
|
+
|
4
|
+
- Applied Eric Hauser's patch fixing CORE-ISSUE-22
|
5
|
+
"Support for environment variables in resource URI"
|
6
|
+
|
7
|
+
- Applied Gauthier Segay's patch fixing CORE-ISSUE-20
|
8
|
+
"Castle.Core.Tests won't build via nant because it use TraceContext without referencing System.Web.dll"
|
9
|
+
|
10
|
+
- Added simple interface to ComponentModel to make optional properties required.
|
11
|
+
|
12
|
+
- Applied Mark's -- <mwatts42@gmail.com> -- patch that changes
|
13
|
+
the Core to support being compiled for Silverlight 2
|
14
|
+
|
15
|
+
- Applied Louis DeJardin's patch adding TraceLogger as a new logger implementation
|
16
|
+
|
17
|
+
- Applied Chris Bilson's patch fixing CORE-15
|
18
|
+
"WebLogger Throws When Logging Outside of an HttpContext"
|
19
|
+
|
20
|
+
Release Candidate 3
|
21
|
+
===================
|
22
|
+
|
23
|
+
- Added IServiceProviderEx which extends IServiceProvider
|
24
|
+
|
25
|
+
- Added Pair<T,S> class.
|
26
|
+
|
27
|
+
- Applied Bill Pierce's patch fixing CORE-9
|
28
|
+
"Allow CastleComponent Attribute to Specify Lifestyle in Constructor"
|
29
|
+
|
30
|
+
- Added UseSingleInterfaceProxy to CompomentModel to control the proxying
|
31
|
+
behavior while maintaining backward compatibility.
|
32
|
+
Added the corresponding ComponentProxyBehaviorAttribute.
|
33
|
+
|
34
|
+
- Made NullLogger and IExtnededLogger
|
35
|
+
|
36
|
+
- Enabled a new format on ILogger interface, with 6 overloads for each method:
|
37
|
+
Debug(string)
|
38
|
+
Debug(string, Exception)
|
39
|
+
Debug(string, params object[])
|
40
|
+
DebugFormat(string, params object[])
|
41
|
+
DebugFormat(Exception, string, params object[])
|
42
|
+
DebugFormat(IFormatProvider, string, params object[])
|
43
|
+
DebugFormat(IFormatProvider, Exception, string, params object[])
|
44
|
+
|
45
|
+
The "FatalError" overloads where marked as [Obsolete], replaced by "Fatal" and "FatalFormat".
|
46
|
+
|
47
|
+
0.0.1.0
|
48
|
+
=======
|
49
|
+
|
50
|
+
- Included IProxyTargetAccessor
|
51
|
+
|
52
|
+
- Removed IMethodInterceptor and IMethodInvocation, that have been replaced
|
53
|
+
by IInterceptor and IInvocation
|
54
|
+
|
55
|
+
- Added FindByPropertyInfo to PropertySetCollection
|
56
|
+
|
57
|
+
- Made the DependencyModel.IsOptional property writable
|
58
|
+
|
59
|
+
- Applied Curtis Schlak's patch fixing IOC-27
|
60
|
+
"assembly resource format only works for resources where the assemblies name and default namespace are the same."
|
61
|
+
|
62
|
+
Quoting:
|
63
|
+
|
64
|
+
"I chose to preserve backwards compatibility by implementing the code in the
|
65
|
+
reverse order as suggested by the reporter. Given the following URI for a resource:
|
66
|
+
|
67
|
+
assembly://my.cool.assembly/context/moo/file.xml
|
68
|
+
|
69
|
+
It will initially look for an embedded resource with the manifest name of
|
70
|
+
"my.cool.assembly.context.moo.file.xml" in the loaded assembly my.cool.assembly.dll.
|
71
|
+
If it does not find it, then it looks for the embedded resource with the manifest name
|
72
|
+
of "context.moo.file.xml".
|
73
|
+
|
74
|
+
- IServiceEnabledComponent Introduced to be used across the project as
|
75
|
+
a standard way to have access to common services, for example, logger factories
|
76
|
+
|
77
|
+
- Added missing log factories
|
78
|
+
|
79
|
+
- Refactor StreamLogger and DiagnosticLogger to be more consistent behavior-wise
|
80
|
+
|
81
|
+
- Refactored WebLogger to extend LevelFilteredLogger (removed duplication)
|
82
|
+
|
83
|
+
- Refactored LoggerLevel order
|
84
|
+
|
85
|
+
- Project started
|
@@ -0,0 +1,163 @@
|
|
1
|
+
Unreleased Changes
|
2
|
+
==================
|
3
|
+
- N/A
|
4
|
+
|
5
|
+
2.1.0 (2009-05-04)
|
6
|
+
==================
|
7
|
+
- Fixed DYNPROXY-87: "Mixin takes precedence over target object"
|
8
|
+
changed DP to throw exceptions when two mixins implement the same interface or a mixin implements the same interface as its target class/object
|
9
|
+
|
10
|
+
- Applied Krzysztof Kozmic's patch improving the XML documentation of IInterceptorSelector
|
11
|
+
and IProxyGenerationHook.
|
12
|
+
|
13
|
+
2.1.0 RC1 (2009-03-10)
|
14
|
+
======================
|
15
|
+
- Applied Krzysztof Kozmic's patch improving the XML documentation and parameter names of IProxyBuilder, DefaultProxyBuilder and ProxyGenerator.
|
16
|
+
|
17
|
+
- Applied Krzysztof Kozmic's patch heavily improving the XML documentation of ProxyGenerator.
|
18
|
+
|
19
|
+
- Fixed DYNPROXY-ISSUE-84: "UseSingleInterfaceProxy on ProxyGenerationOptions is never used and should be removed"
|
20
|
+
|
21
|
+
- Fixed DYNPROXY-ISSUE-58/DYNPROXY-ISSUE-77: "Inherited interface seems not to work"
|
22
|
+
using Dimitri Goethals' test case and Ayende Rahien/Andrey Shchekin's patch.
|
23
|
+
|
24
|
+
- Fixed DYNPROXY-ISSUE-52: "DynamicProxy 1.1.5 doesn't work on Medium Trust"
|
25
|
+
uses the assembly's fullname instead of calling GetName()
|
26
|
+
|
27
|
+
- Fixed DYNPROXY-ISSUE-82: "Not allow generics & NoGeneric methods with same signature"
|
28
|
+
using Fabio Maulo's test case and Krzysztof Kozmic patch.
|
29
|
+
|
30
|
+
- Applied Neil Bourgeois's patch fixing DYNPROXY-ISSUE-78
|
31
|
+
"Custom attributes of virtual properties absent on proxy"
|
32
|
+
|
33
|
+
- Applied Craig Vermeer's patch fixing an issue with generating default constructors for DYNPROXY-ISSUE-81
|
34
|
+
"No Default Constructor in generated Class Proxy"
|
35
|
+
|
36
|
+
- Added support for IInterceptorSelector (patch provided by Krzysztof Kozmic).
|
37
|
+
- Removed ProxyGenerationOptions.UseSelector.
|
38
|
+
|
39
|
+
- Added support for generic methods when specifying additional interfaces to CreateInterfaceProxyWithoutTarget (reported by Craig Neuwirth, cause
|
40
|
+
found by Krzysztof Kozmic)
|
41
|
+
|
42
|
+
- Added support for provide additional interfaces for target interface proxies.
|
43
|
+
|
44
|
+
- Added workarounds for dictionary deserialization scenarios (reported by Gr�gory C�let)
|
45
|
+
|
46
|
+
- Fixed mixin-related bug with serialization (per Rogelio again)
|
47
|
+
- Made interface proxies without target and with target interface support mixins
|
48
|
+
|
49
|
+
- Fixed ProxyGenerationOptions equality issues with ordering and different instances of the same mixin types (thanks for finding
|
50
|
+
the bug, Rogelio)
|
51
|
+
|
52
|
+
- Readded mixin support (via Rogelio J. Baucells)
|
53
|
+
|
54
|
+
- ClassEmitter now supports emitting fields with specific attributes
|
55
|
+
|
56
|
+
- Added a load API to ModuleScope
|
57
|
+
- SaveAssembly now serializes the cache keys together with the generated types
|
58
|
+
|
59
|
+
- Fixed test issue - PEVerify is now called with a quoted assembly path (to allow for spaces in the path)
|
60
|
+
- Fixed test annoyance - PEVerify is now not called in a separate window
|
61
|
+
- Changed PersistentProxyBuilder behavior - SaveAssembly is not called by the class generators any more, instead PersistentProxyBuilder.SaveAssemblies
|
62
|
+
must be used. This allows the proxy builder to save multiple proxies at the same time. Test cases have been adapted.
|
63
|
+
|
64
|
+
- Fixed issues with CacheKey.Equals and ProxyGenerationOptions.Equals/GetHashCode
|
65
|
+
- Added a way to set and retrieve the ModuleScope used by ProxyObjectReference for proxy deserialization; proxies can now be deserialized with
|
66
|
+
the same ModuleScope used by the application (DYNPROXY-71)
|
67
|
+
|
68
|
+
- Made BasePEVerifyTestCase only check those assemblies that were actually generated in the test case, see DYNPROXY-68
|
69
|
+
- Fixed bug with protected internal constructors, see DYNPROXY-66/DYNPROXY-67
|
70
|
+
- Fixed test cases not using the ProxyGenerator supplied by BasePEVerifyTestCase, see DYNPROXY-69
|
71
|
+
|
72
|
+
- Added StrongNameUtil, which provides methods for checking whether an assembly is signed/a type comes from a signed assembly
|
73
|
+
- Added an additional constructor overload to ClassEmitter, allowing to force it to use an unsigned assembly
|
74
|
+
|
75
|
+
- Fixed a bug in ModuleScope: SaveAssembly tried to delete from the current directory if a file with a matching name existed, not from the target
|
76
|
+
directory
|
77
|
+
|
78
|
+
- Applied Pawel Pabich's suggestion fixing DYNPROXY-65
|
79
|
+
"OpCodeUtil.GetUnderlyingTypeOfEnum doesn't handle unsigned integers"
|
80
|
+
|
81
|
+
- Fixed bug in ArgumentReference occurring when emitting static methods
|
82
|
+
|
83
|
+
- Removed ClsCompliant(false) from all the public types in DynamicProxy
|
84
|
+
|
85
|
+
- Added constructors to ClassEmitter, removed "serializable" ctor parameter, it wasn't used
|
86
|
+
|
87
|
+
- Fixed bug in ModuleScope, see DYNPROXY-64
|
88
|
+
|
89
|
+
- Fixed bug in LoadArrayElementExpression, see DYNPROXY-57
|
90
|
+
|
91
|
+
- Changed signing behavior for generated assembly, assembly is now only signed if all involved types (base type, interfaces) are also signed
|
92
|
+
|
93
|
+
- Documented ModuleScope, added friendlier API for saving assemblies, added tests for ModuleScope, see DYNPROXY-55
|
94
|
+
|
95
|
+
- Applied Adam Tybor's patch fixing DYNPROXY-63
|
96
|
+
"ProxyType not included in CacheKey"
|
97
|
+
|
98
|
+
- Reimplemented serialization of ProxyGenerationOptions, see revision 3803, DYNPROXY-59
|
99
|
+
|
100
|
+
- Added method signature filtering to MethodFinder (see MethodSignatureComparer) because there were
|
101
|
+
still cases triggering duplicate methods
|
102
|
+
|
103
|
+
- Reimplemented serialization without default constructors, see revision 3725, DYNPROXY-53
|
104
|
+
- Reimplemented serialization with delegates/events, see revision 3751, DYNPROXY-56
|
105
|
+
|
106
|
+
- Renamed InterfaceProxyGeneratorWithoutTarget to InterfaceProxyWithoutTargetGenerator
|
107
|
+
|
108
|
+
- Fixed DYNPROXY-62
|
109
|
+
"Some tests in MethodFinderTestCase failed because of culture specific exception messages"
|
110
|
+
|
111
|
+
- Implemented cache for System.Type.GetMethods() in order to avoid triggering the duplicate methods bug
|
112
|
+
|
113
|
+
- Applied Adam Tybor's patch fixing DYNPROXY-61
|
114
|
+
"Need GetInterceptors from IProxyTargetAccessor back for NHibernate Trunk"
|
115
|
+
|
116
|
+
- Disabled replication of internal constructors on class proxies.
|
117
|
+
|
118
|
+
- Moved the UseSingleInterfaceProxy from Core.ComponentModel to ProxyGeneratorOptions.
|
119
|
+
|
120
|
+
- Applied Lee Henson's patch fixing generic parameter definitions
|
121
|
+
|
122
|
+
- Applied Jacob Lewallen's patch that introduces ProxyInterfaceWithTargetInterface
|
123
|
+
Quoting
|
124
|
+
|
125
|
+
"I've introduced a new "mode" that is
|
126
|
+
ProxyInterfaceWithTargetInterface, that uses the given interface as
|
127
|
+
the target type, rather than the type of the target (it asserts the
|
128
|
+
target implements the interface) All other modes should remain the
|
129
|
+
same.
|
130
|
+
|
131
|
+
"In this scenario, the IInvocation will also implement
|
132
|
+
IChangeProxyTarget, which can then be used to change the proxy target
|
133
|
+
to another implementation of the target interface."
|
134
|
+
|
135
|
+
- Added support for events
|
136
|
+
|
137
|
+
- Fixed DYNPROXY-43
|
138
|
+
"DP2 : Missing ParameterInfo 'Name' for Proxied methods"
|
139
|
+
|
140
|
+
- Fixed DYNPROXY-41
|
141
|
+
"Invalid state exception on DP2"
|
142
|
+
|
143
|
+
- Fixed DYNPROXY-39
|
144
|
+
"Deadlock in DynamicProxy2"
|
145
|
+
|
146
|
+
- Fixed DYNPROXY-28
|
147
|
+
"Virtual methods calls from constructors are not working"
|
148
|
+
|
149
|
+
- Fixed DYNPROXY-27
|
150
|
+
"Support for non-parameterless constructors"
|
151
|
+
|
152
|
+
- Fixed DYNPROXY-25
|
153
|
+
"Chars returns are not properly configured"
|
154
|
+
|
155
|
+
- Fixed DYNPROXY-24
|
156
|
+
"DynamicProxy2: missing locks"
|
157
|
+
|
158
|
+
- Fixed DYNPROXY-34
|
159
|
+
"Cant proxy generic interfaces"
|
160
|
+
|
161
|
+
Alpha Version 1.0.0.0
|
162
|
+
=====================
|
163
|
+
- First release
|
@@ -0,0 +1,623 @@
|
|
1
|
+
2.0
|
2
|
+
====
|
3
|
+
|
4
|
+
- Fluent interface for factory support
|
5
|
+
|
6
|
+
- Fixed an issue with of not considering unregistered service dependencies in arrays
|
7
|
+
|
8
|
+
- Will not try to convert values that are already a match to the parameter type
|
9
|
+
|
10
|
+
- XmlProcessor now properly dispose of the stream reader
|
11
|
+
|
12
|
+
- The kernel will now check if trying to register null types
|
13
|
+
|
14
|
+
RC 4
|
15
|
+
====
|
16
|
+
|
17
|
+
- Update FromInterface Registration policy to only consider toplevel interfaces
|
18
|
+
and allow multiple services.
|
19
|
+
|
20
|
+
- Fixed bug in AllComponentsReleasePolicy in which burden not properly handled
|
21
|
+
on dispose.
|
22
|
+
|
23
|
+
- Applied patch from Joao Braganca to allow abstract types in DefaultComponentActivator if proxied.
|
24
|
+
|
25
|
+
- Added additional AddFacility overrides to improve fluent configuration of facilities.
|
26
|
+
|
27
|
+
- Moved DefaultComponentActivator check for abstract so it can be better overriden.
|
28
|
+
|
29
|
+
- Added Attribute to Component Registration fluent interface.
|
30
|
+
|
31
|
+
- Add ability to use Configure components based on implementation type when
|
32
|
+
using AllTypesOf.
|
33
|
+
|
34
|
+
- Do not return forward handlers in ResolveAll since you will get duplicate services.
|
35
|
+
|
36
|
+
- Applied patch (with mods) from Martin Nllsson to select registration interface from
|
37
|
+
containing interface.
|
38
|
+
|
39
|
+
- Added shortcut to AllTypes to accept a where.
|
40
|
+
|
41
|
+
- Added ability to include non-public types in registration.
|
42
|
+
|
43
|
+
- Updated registration to support providing multiple service types.
|
44
|
+
|
45
|
+
- Add registration support for mixins.
|
46
|
+
|
47
|
+
- Do not allow registering components with the same name in fluent interface.
|
48
|
+
|
49
|
+
- Applied Ayendes patch to introduce component service type forwarding to
|
50
|
+
support multiple service interfaces for a component.
|
51
|
+
Extended the Component Registration interface to support service forwarding.
|
52
|
+
|
53
|
+
- Avoid to register abstract component via IKernel.AddComponent, now throws when trying to add instead of while resolving component
|
54
|
+
|
55
|
+
- Removed sealed qualifier from CreationContext and made ISubDependencyResolver
|
56
|
+
methods virtual so they can be overriden.
|
57
|
+
|
58
|
+
- Made IKernel.AddFacility fluent.
|
59
|
+
|
60
|
+
- Added StartMethod/StartMethod to ComponentRegistration.
|
61
|
+
|
62
|
+
- Add if/unless support for ComponentRegistration.
|
63
|
+
|
64
|
+
- Applied Daniel Jins patch to not proxy internal interfaces.
|
65
|
+
|
66
|
+
- Fixed IOC-126
|
67
|
+
"PoolableLifestyleManager creates pool in constructor"
|
68
|
+
|
69
|
+
- Fixed IOC-125
|
70
|
+
"DefaultGenericHandler does not properly handle proxied generic components"
|
71
|
+
|
72
|
+
- Updated AllTypes strategy to support types based on generic type definitions.
|
73
|
+
|
74
|
+
- Updated AllTypes strategy to support multiple registrations from a single set of types.
|
75
|
+
|
76
|
+
- Collection handlers from parent container for GetAssignableHandlers.
|
77
|
+
|
78
|
+
- Added ability to change invocation target to DefaultProxyFactory.
|
79
|
+
|
80
|
+
- Fixed bug with ComponentRegistration.Instance in which the instance type was not assigned as the ComponentModel implementation.
|
81
|
+
|
82
|
+
- Replaced AllTypesOf<T> syntax with AllTypes.Of<T> so a non-generic version can be consistently provided.
|
83
|
+
|
84
|
+
- Added generic AddFacility methods to kernel.
|
85
|
+
|
86
|
+
- Added generalized configuration support to ComponentRegistration.
|
87
|
+
|
88
|
+
- Added IWindsorInstaller interface to enhance Windsor component installation.
|
89
|
+
|
90
|
+
- Added AllTypesOf registration stratgey to simplify custom registration
|
91
|
+
scenarios.
|
92
|
+
|
93
|
+
- Added IRegistration interface to allow alternate registration mechanisms.
|
94
|
+
|
95
|
+
- Fixed CORE-16 (Should be Facilities)
|
96
|
+
"The FactorySupportFacility does not create proxies if interceptors are present"
|
97
|
+
|
98
|
+
- Added support for list service overrides using the fluent registration interface.
|
99
|
+
Added support for specifying configuration parameters using the fluent interface to allow any complex
|
100
|
+
registration scenarios.
|
101
|
+
|
102
|
+
- Restructured the registration fluent interface to be a little more readable,
|
103
|
+
better support component registrations and prevent errors resulting from
|
104
|
+
forgetting to call ComponentRegistration.Register
|
105
|
+
|
106
|
+
- Fixed Facilities-97
|
107
|
+
"EventWiring Facility fails to create some components"
|
108
|
+
|
109
|
+
- Added support for non-generic usage of fluent-interface. Needed for dynamic registrations scenarios (Binsor)
|
110
|
+
Automatically register the component between consecutive AddComponentEx (Saves a few strokes).
|
111
|
+
|
112
|
+
- Initial version of MicroKernel/Windsor fluent interface IOC-99
|
113
|
+
|
114
|
+
- Applied patch from Jacob Lewallen improving the locking performance in the DefaultNamingSubsystem under high load.
|
115
|
+
|
116
|
+
- Applied Philippe Tremblay's patch fixing IOC-94
|
117
|
+
"Copy LifeStyle from generic interface"
|
118
|
+
|
119
|
+
- Added support for copying interceptors defined on the geneirc interface handler.
|
120
|
+
|
121
|
+
- Fixed IOC-80
|
122
|
+
"StartableFacility erroneously tries to start a component before
|
123
|
+
RegisterCustomDependency can be called"
|
124
|
+
|
125
|
+
- Added ComponentModelConverter to utilize System.ComponentModel TypeConverters
|
126
|
+
Very useful for converting things like Fonts and Colors
|
127
|
+
|
128
|
+
- Updated DefaultComplexConverter to support interfaces and derived types
|
129
|
+
|
130
|
+
- Fixed IOC-96
|
131
|
+
"FactorySupport fails to create components if the factory instance is a proxy"
|
132
|
+
|
133
|
+
- Fixed IOC-93
|
134
|
+
"GenericListConverter does not handle service overrides properly"
|
135
|
+
|
136
|
+
- Fixed IOC-91
|
137
|
+
"ContextBoundObject's context is not bound when object is created by MicroKernel"
|
138
|
+
|
139
|
+
- Fixed build from IContainerAccessor change
|
140
|
+
|
141
|
+
- Applied Ron Grabowski's patch fixing IOC-89
|
142
|
+
"Make DefaultKernel implement IServiceProvider"
|
143
|
+
|
144
|
+
- Check for required Properties before determining the Handlers initial state
|
145
|
+
|
146
|
+
- Fixed IoC-87
|
147
|
+
"DefaultComplextConverter does not properly handle nested components"
|
148
|
+
|
149
|
+
- Applied Lee Henson's patch fixing IOC-86
|
150
|
+
"Additional generic AddComponent overloads"
|
151
|
+
|
152
|
+
- Applied Ido Samuelson patch fixing IOC-85
|
153
|
+
"IKernel to support generics to add/resolve components."
|
154
|
+
|
155
|
+
- Refactored proxy options support. Now you can use the attribute 'marshalByRefProxy'
|
156
|
+
on the external configuration, or the ComponentProxyBehaviorAttribute
|
157
|
+
|
158
|
+
- Fixed IOC-79
|
159
|
+
"Kernel.GetHandlers(Type) does not consider generic handlers when satisfying the type"
|
160
|
+
|
161
|
+
- Updated StartableFacilityTestCase to correctly demonstrate the facility and
|
162
|
+
added a unit test to demonstrate IOC-80
|
163
|
+
|
164
|
+
- Applied Alex Henderson's patch that makes the ComponentModel available
|
165
|
+
to the ILifestyleManager
|
166
|
+
|
167
|
+
- Applied Adam Mills's patch fixing IOC-74
|
168
|
+
"BinaryComponentName VisitNode null check"
|
169
|
+
|
170
|
+
- Fixed IOC-67
|
171
|
+
"RemoveComponent needs to unwire handlers and remove them"
|
172
|
+
|
173
|
+
- Fixed IOC-59
|
174
|
+
"Child component unable to correctly resolve parent service added after the component"
|
175
|
+
|
176
|
+
- Fixed IOC-47
|
177
|
+
"Components created by FactoryActivator have their dependencies checked"
|
178
|
+
|
179
|
+
- Applied Marcus Widerberg's patch fixing FACILITIES-84
|
180
|
+
"FactorySupport - Allow parameters to factory method to be set at resolvetime"
|
181
|
+
|
182
|
+
- Applied Marcus Widerberg's patch fixing FACILITIES-82
|
183
|
+
"Programmatic configuration for FactorySupport"
|
184
|
+
|
185
|
+
- Reverted by Henry -> Apply patch from Sam Camp that fixes problems with Remoting Facility Sample and RecoverableComponent.
|
186
|
+
|
187
|
+
- Updated TypedFactoryFacility to not require a target instance
|
188
|
+
when proxying.
|
189
|
+
|
190
|
+
- Added Windsor proxy support to create proxies without targets.
|
191
|
+
|
192
|
+
- Removed relationship between ProxyOptions and ProxyGeneration options
|
193
|
+
and moved ProxyOptions into the MicroKernel. ProxyGeneration options
|
194
|
+
are created from the ProxyOptions and will probably need to be updated
|
195
|
+
as facilities demand more proxy generation customizations.
|
196
|
+
|
197
|
+
- Added ProxyOptions to allow facilities to easily add proxy interfaces
|
198
|
+
without having to create custom proxy factories. The ProxyOptions
|
199
|
+
are obtained via the ProxyUtil.
|
200
|
+
|
201
|
+
- Fixed IOC-65
|
202
|
+
"DictionaryConverter should use the alternate overload of the
|
203
|
+
PerformConversion method in order to support dictionaries that contain
|
204
|
+
custom types"
|
205
|
+
|
206
|
+
- Moved ProxyComponentInspector from Castle.MicroKernel to here and added
|
207
|
+
support to supply ProxyGenerationOptions on a ComponentModel basis. This
|
208
|
+
provides the needed ability to provide proxy options in facilities.
|
209
|
+
|
210
|
+
- Fixed IOC-69 - DefaultDependencyResolver issue with Service Overrides.
|
211
|
+
|
212
|
+
- Added ComponentProxyBehaviorAttribute and ComponentProxyInspector
|
213
|
+
to control the creation of component proxies.
|
214
|
+
|
215
|
+
- Added eval support to configuration. Currently it only supports
|
216
|
+
BaseDirectory as a content to evaluate
|
217
|
+
|
218
|
+
<?eval $BaseDirectory ?>
|
219
|
+
|
220
|
+
- Added IEnvironmentInfo in an attempt to solve complex
|
221
|
+
configuration/environment issues.
|
222
|
+
|
223
|
+
- Fixing IOC-63 - source order of constructors should not matter
|
224
|
+
|
225
|
+
- Fixed IOC-62
|
226
|
+
"Interceptors don't work properly on generic components"
|
227
|
+
|
228
|
+
- Applied Norbert Wagner's patch fixing IOC-55
|
229
|
+
"Generic Type Converters: Set default entry types to generic arguments of property type"
|
230
|
+
|
231
|
+
- Applied Jeff Brown's patch fixing IOC-54
|
232
|
+
"Empty component parameter values cause runtime exception during component resolution."
|
233
|
+
|
234
|
+
- Applied patch by Bill Pierce that
|
235
|
+
|
236
|
+
-- Introduces the WebUserControlComponentActivator
|
237
|
+
|
238
|
+
-- Introduces the KeySearchNamingSubSystem
|
239
|
+
|
240
|
+
-- Allows you to associate a custom component activator using
|
241
|
+
1. componentActivatorType on component node
|
242
|
+
2. ComponentActivatorAttribute
|
243
|
+
|
244
|
+
-- Allows you to create and configure child containers
|
245
|
+
through the configuration, using
|
246
|
+
|
247
|
+
<configuration>
|
248
|
+
<containers>
|
249
|
+
<container name="child1">
|
250
|
+
<configuration>
|
251
|
+
<facilities>
|
252
|
+
...
|
253
|
+
</facilities>
|
254
|
+
|
255
|
+
<components>
|
256
|
+
...
|
257
|
+
</components>
|
258
|
+
|
259
|
+
</configuration>
|
260
|
+
</container>
|
261
|
+
</containers>
|
262
|
+
</configuration>
|
263
|
+
|
264
|
+
- Applied AndyD's patch fixing IOC-52
|
265
|
+
"Remote access to generic components"
|
266
|
+
|
267
|
+
- Fixed IOC-45
|
268
|
+
"Proxying a component that has an interface that is extended from another interface throws an exception"
|
269
|
+
|
270
|
+
- Applied patch by Ernst Naezer fixing IOC-37
|
271
|
+
"Resolving with arguments in Windsor"
|
272
|
+
|
273
|
+
- Fixed IOC-43
|
274
|
+
"Creation of an Attribute in the Kernel that allows one property to be ignored by the dependency builder"
|
275
|
+
|
276
|
+
Introduced DoNotWireAttribute that marks a property and prevents it
|
277
|
+
from being considered by the container
|
278
|
+
|
279
|
+
- Changed Windsor to use DynamicProxy 2
|
280
|
+
|
281
|
+
- Applied patch by Adam Mills fixing IOC-42
|
282
|
+
"ResolveServices", new method added to IKernel
|
283
|
+
|
284
|
+
- Applied patch by Adam Mills fixing IOC-41
|
285
|
+
"Bug Fix BinaryTreeComponentName - Assumed Lesser nodes went to left"
|
286
|
+
|
287
|
+
- Applied patch by Adam Mills fixing IOC-40
|
288
|
+
"Provided an Implementation for BinaryTreeComponentName.Remove"
|
289
|
+
|
290
|
+
- Applied patch by Adam Mills fixing IOC-39
|
291
|
+
"Fix for Null Reference when accessing empty BinaryTreeComponentName"
|
292
|
+
|
293
|
+
- Fixed IOC-35
|
294
|
+
"Add bootstrap section to configuration file"
|
295
|
+
|
296
|
+
- Fixed issue where KeyAlreadyAdded exception would be throw for
|
297
|
+
components accepting two parameters of the same type, without overrides
|
298
|
+
|
299
|
+
- Fixed IOC-36
|
300
|
+
"Transient components with multliple constructors throw
|
301
|
+
unresolved dependency exceptions."
|
302
|
+
|
303
|
+
Removed best candidate reference, as the kernel is dynamic it should
|
304
|
+
not cache best constructors as components can be added or removed
|
305
|
+
at any time
|
306
|
+
|
307
|
+
Removed Points from candidates, as in a multithreaded scenario
|
308
|
+
this would lead to failures
|
309
|
+
|
310
|
+
|
311
|
+
- Fixed IOC-34
|
312
|
+
"Cannot use types having their own base type as constructor argument"
|
313
|
+
|
314
|
+
See revision r2787
|
315
|
+
|
316
|
+
- IOC-32, Support generic collections.
|
317
|
+
Supported collections are: ICollection<T>, IList<T>, List<T>, IDictionary<K,V>, Dictionary<K,V>, IEnumerable<T>
|
318
|
+
|
319
|
+
RC 3
|
320
|
+
====
|
321
|
+
|
322
|
+
- Applied patch by William C. Pierce <wcpierce@gmail.com> adding PerWebRequestAttribute
|
323
|
+
|
324
|
+
- Added setter to ReleasePolicy property
|
325
|
+
|
326
|
+
- Applied Curtis Schlak's patch fixing IOC-30
|
327
|
+
"Add overload to Windsor AddComponent to specify the Lifestyle"
|
328
|
+
|
329
|
+
- Refactored AbstractHandler to use IDependencyResolver
|
330
|
+
|
331
|
+
- Dependencies can be resolved now in three levels:
|
332
|
+
|
333
|
+
* CreationContext (which now implements ISubDependencyResolver)
|
334
|
+
* IHandler (which now implements ISubDependencyResolver)
|
335
|
+
* IKernel which is the normal flow
|
336
|
+
|
337
|
+
- Implemented IoC-29 using a different approach
|
338
|
+
|
339
|
+
- Renamed IKernel.AddComponentWithProperties to AddComponentExtendedProperties.
|
340
|
+
The old method name misled the programmer about its purpose.
|
341
|
+
|
342
|
+
- Added a PerWebRequestLifestyleManager which creates at most one instance of
|
343
|
+
an object per web request. To use it you must add the following http module
|
344
|
+
|
345
|
+
<httpModules>
|
346
|
+
...
|
347
|
+
<add name="PerWebRequest" type="Castle.MicroKernel.Lifestyle.PerWebRequestLifestyleManager , Castle.MicroKernel,Version=0.0.1.7, Culture=neutral, PublicKeyToken=407dd0808d44fbdc"/>
|
348
|
+
|
349
|
+
<httpModules>
|
350
|
+
|
351
|
+
The strong name could be omitted if not in the GAC
|
352
|
+
|
353
|
+
- Added checks to handle cycles in dependencies graphs and avoid deadly Stack Overflow Exceptions.
|
354
|
+
|
355
|
+
- Fixed IOC-24: "Allow user to provide an attribute which will customize how to inspect properties (PropertiesDependenciesModelInspector)"
|
356
|
+
Now users can add an 'inspectionBehavior' attribute to the component node that defines
|
357
|
+
the inspection strategy. Possible values are
|
358
|
+
|
359
|
+
- None: No properties inspection should happen
|
360
|
+
- All: All properties will be inspected and collected (on the class and on the superclasses).
|
361
|
+
This is the default behavior
|
362
|
+
- DeclaredOnly: Only properties specified on type are checked (superclasses will be ignored)
|
363
|
+
|
364
|
+
- Added overload to ITypeConvertor that accept the current node configuration as well as the type in CanHandleType()
|
365
|
+
|
366
|
+
- Change: Better error message when there's an exception
|
367
|
+
setting up properties
|
368
|
+
|
369
|
+
- Fixed IOC-25: Overrides on the configuration should be considered a non-optional dependency
|
370
|
+
|
371
|
+
This fix changes a little the MicroKernel behavior. Now if you specify an service override
|
372
|
+
through external configuration, it will be considered a _non-optional_ dependency
|
373
|
+
|
374
|
+
- Uri usage replaced by CustomUri which, differently than MS' Uri class, has the same
|
375
|
+
behavior on net-1.1, net-2.0 and mono
|
376
|
+
|
377
|
+
- EventWiring Facility: now when a publisher is requested, the subscribers
|
378
|
+
are automatically started.
|
379
|
+
|
380
|
+
The side effects are:
|
381
|
+
|
382
|
+
- when a subscriber is requested it won't be wired automatically.
|
383
|
+
- There no much sense in having a subscriber with a lifestyle other than singleton
|
384
|
+
|
385
|
+
I'm still evaluating this idea. Sometimes wiring only when the subscriber is requested
|
386
|
+
might make sense, but supporting both approaches is kinda hard.
|
387
|
+
|
388
|
+
|
389
|
+
- Applied patch by Alex Henderson <webmaster@bittercoder.com> adding
|
390
|
+
IWindsorContainer.RemoveChildContainer(IWindsorContainer childContainer)
|
391
|
+
and IKernel.RemoveChildKernel(IKernel kernel)
|
392
|
+
|
393
|
+
- Applied fix by Ahmed. Now defines can be used on properties nodes like
|
394
|
+
|
395
|
+
<properties>
|
396
|
+
<?if DEBUG?>
|
397
|
+
<item>x</item>
|
398
|
+
<?end?>
|
399
|
+
</properties>
|
400
|
+
|
401
|
+
- Now with DictionaryConverter you can specify the keyType and valueType on each entry (kudos to Ahmed)
|
402
|
+
|
403
|
+
- xmlinterpreter will throw an exception if a property is not defined but referenced
|
404
|
+
using #{propertyName} syntax.(Patch from Ahmed)
|
405
|
+
|
406
|
+
- XmlProcessor refactored from XmlInterpreter (kudos to Ahmed)
|
407
|
+
Now PI are also supported (don't forget to document this on the wiki)
|
408
|
+
|
409
|
+
- Support for nested nodes on the properties. (kudos to Ahmed)
|
410
|
+
Example:
|
411
|
+
|
412
|
+
<configuration>
|
413
|
+
<properties>
|
414
|
+
<MyComponentParams>
|
415
|
+
<user>Joe</user>
|
416
|
+
<pwd>Doe</pwd>
|
417
|
+
</MyComponentParams>
|
418
|
+
</properties>
|
419
|
+
<components id=??Component
|
420
|
+
<parameters>#{ MyComponentParams }</parameters>
|
421
|
+
</components>
|
422
|
+
</configuration>
|
423
|
+
|
424
|
+
Will result in
|
425
|
+
|
426
|
+
<components id=??Component
|
427
|
+
<parameters>
|
428
|
+
<user>Joe</user>
|
429
|
+
<pwd>Doe</pwd>
|
430
|
+
</parameters>
|
431
|
+
</components>
|
432
|
+
|
433
|
+
- Type converter for kernel components. This allows a usage like this:
|
434
|
+
|
435
|
+
<component id="mycomp">
|
436
|
+
|
437
|
+
<parameters>
|
438
|
+
<servicelist>
|
439
|
+
<list type="IMyService, MyAssembly">
|
440
|
+
<item>${keytocomponent1}</item>
|
441
|
+
<item>${keytocomponent2}</item>
|
442
|
+
</list>
|
443
|
+
</servicelist>
|
444
|
+
</parameters>
|
445
|
+
|
446
|
+
- Removed support for MethodMeta on ComponentModel. The design decision here
|
447
|
+
is to make the facilities interested on it to extend MethodMetaInspector
|
448
|
+
reading from a specific node.
|
449
|
+
|
450
|
+
RC 2
|
451
|
+
====
|
452
|
+
|
453
|
+
- AsyncInitializationContainer introduced. Special container flavor that installs the
|
454
|
+
facilities and components using a background thread.
|
455
|
+
|
456
|
+
- Support for evaluation of expressions within the xml configuration (kudos to Ahmed)
|
457
|
+
The following "statements" are supported:
|
458
|
+
|
459
|
+
<define flag="DEBUG" />
|
460
|
+
<undef flag="DEBUG"/>
|
461
|
+
|
462
|
+
<if defined="DEBUG">
|
463
|
+
component/facility nodes
|
464
|
+
</if>
|
465
|
+
|
466
|
+
<choose>
|
467
|
+
<when defined="DEBUG">
|
468
|
+
<component id="debug"/>
|
469
|
+
</when>
|
470
|
+
<when defined="Qa">
|
471
|
+
<component id="qa"/>
|
472
|
+
</when>
|
473
|
+
<when defined="Prod">
|
474
|
+
<component id="prod"/>
|
475
|
+
</when>
|
476
|
+
<otherwise>
|
477
|
+
<component id="default"/>
|
478
|
+
</otherwise>
|
479
|
+
</choose>
|
480
|
+
|
481
|
+
- Startable facility: support to specify the attribute startable=true on the configuration
|
482
|
+
|
483
|
+
- Better error messages: now the components waiting for dependencies will recursively
|
484
|
+
report what they are waiting for.
|
485
|
+
|
486
|
+
- Support for custom lifestyle through configuration (kudos to Bawer Dagdeviren):
|
487
|
+
|
488
|
+
<component id="my.component"
|
489
|
+
type="MyLib.MyComponent, MyLib"
|
490
|
+
lifestyle="custom"
|
491
|
+
customLifestyleType="MyLib.MyCustomLifestyle, MyLib" />
|
492
|
+
|
493
|
+
- Added Type converter for enums
|
494
|
+
|
495
|
+
- Support to associate configuration nodes to methods. Usage:
|
496
|
+
|
497
|
+
<component>
|
498
|
+
<methods>
|
499
|
+
<save />
|
500
|
+
<save signature="System.String, mscorlib" />
|
501
|
+
<save signature="System.String, mscorlib;System.Int32, mscorlib" />
|
502
|
+
</methods>
|
503
|
+
</component>
|
504
|
+
|
505
|
+
Which is equivalent to
|
506
|
+
|
507
|
+
<component>
|
508
|
+
<methods>
|
509
|
+
<method name="save" />
|
510
|
+
<method name="save" signature="System.String, mscorlib" />
|
511
|
+
<method name="save" signature="System.String, mscorlib;System.Int32, mscorlib" />
|
512
|
+
</methods>
|
513
|
+
</component>
|
514
|
+
|
515
|
+
- IResource introduced (FileResource, AssemblyResource, ConfigResource and UncResource)
|
516
|
+
which are accessible through Uris:
|
517
|
+
|
518
|
+
- FileResource:
|
519
|
+
file://pathtofile
|
520
|
+
(For example: file://c:\mydir\file.txt)
|
521
|
+
|
522
|
+
- AssemblyResource:
|
523
|
+
assembly://AssemblyName/ExtendingNamespace/filename
|
524
|
+
(For example: assembly://Castle.Windsor.Tests/Configuration2/include1.xml)
|
525
|
+
|
526
|
+
- ConfigResource:
|
527
|
+
config://sectioname
|
528
|
+
(For example: config://castle will fetch the
|
529
|
+
<configuration><castle> entry in the configuration)
|
530
|
+
|
531
|
+
- UncResource:
|
532
|
+
\\server\file
|
533
|
+
(For example: \\mysharedplace\myconfig.xml)
|
534
|
+
|
535
|
+
- IResource, IResourceFactory and IResourceSubSystem introduced
|
536
|
+
|
537
|
+
- Ability to use <properties> in configuration files. Usage
|
538
|
+
|
539
|
+
<properties>
|
540
|
+
<prop1>prop1 value</prop1>
|
541
|
+
<prop2>prop2 value</prop2>
|
542
|
+
</properties>
|
543
|
+
|
544
|
+
<facilities>
|
545
|
+
|
546
|
+
<facility id="testidengine" >
|
547
|
+
<item>#{prop1}</item>
|
548
|
+
</facility>
|
549
|
+
|
550
|
+
<facility id="testidengine2" >
|
551
|
+
<item value="#{prop2}"/>
|
552
|
+
</facility>
|
553
|
+
|
554
|
+
</facilities>
|
555
|
+
|
556
|
+
|
557
|
+
- Ability to use <include> in configuration files. Usage
|
558
|
+
|
559
|
+
Main file:
|
560
|
+
|
561
|
+
<configuration>
|
562
|
+
|
563
|
+
<include uri="file://include1.xml"/>
|
564
|
+
|
565
|
+
</configuration>
|
566
|
+
|
567
|
+
include1.xml:
|
568
|
+
|
569
|
+
<configuration>
|
570
|
+
|
571
|
+
<components>
|
572
|
+
|
573
|
+
<component id="testidcomponent1">
|
574
|
+
</component>
|
575
|
+
|
576
|
+
<component id="testidcomponent2">
|
577
|
+
</component>
|
578
|
+
|
579
|
+
</components>
|
580
|
+
|
581
|
+
</configuration>
|
582
|
+
|
583
|
+
|
584
|
+
Beta 3
|
585
|
+
======
|
586
|
+
|
587
|
+
- Bug in dependency resolution (when chained) fixed
|
588
|
+
- Better message description on exceptions related to unresolved dependencies.
|
589
|
+
- Fixed bug in AddComponentWithProperties
|
590
|
+
|
591
|
+
Beta 2 - 10/apr/2005
|
592
|
+
======
|
593
|
+
|
594
|
+
- Bug fixes
|
595
|
+
|
596
|
+
- Configuration object model separated into interpreters and sources
|
597
|
+
|
598
|
+
- AbstractFacility added
|
599
|
+
|
600
|
+
|
601
|
+
Beta 1 - 21/jan/2005
|
602
|
+
======
|
603
|
+
|
604
|
+
- Changed: from #{} to ${} - way of referencing to another component
|
605
|
+
on the configuration.
|
606
|
+
|
607
|
+
- Added: support for dictionaries, lists and arrays on the configuration file.
|
608
|
+
|
609
|
+
<component>
|
610
|
+
<parameters>
|
611
|
+
<properties>
|
612
|
+
<dictionary>
|
613
|
+
<item key="mykey">value</item>
|
614
|
+
</dictionary>
|
615
|
+
</properties>
|
616
|
+
</parameters>
|
617
|
+
</component>
|
618
|
+
|
619
|
+
- Added: Component Graph (used by the Remove method and to dispose the components)
|
620
|
+
|
621
|
+
- Fixed: Remove method
|
622
|
+
|
623
|
+
- Fixed: Windsor: Proxy for components with (service != impl)
|