mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2026-02-09 09:16:41 +08:00
Populating initial tree
--HG-- extra : convert_revision : svn%3A5ff7c347-ad56-4c35-b696-ccb81de16e03/trunk%4038902
This commit is contained in:
@@ -0,0 +1,85 @@
|
||||
1.1.0 (2009-05-04)
|
||||
==================
|
||||
|
||||
- Applied Eric Hauser's patch fixing CORE-ISSUE-22
|
||||
"Support for environment variables in resource URI"
|
||||
|
||||
- Applied Gauthier Segay's patch fixing CORE-ISSUE-20
|
||||
"Castle.Core.Tests won't build via nant because it use TraceContext without referencing System.Web.dll"
|
||||
|
||||
- Added simple interface to ComponentModel to make optional properties required.
|
||||
|
||||
- Applied Mark's -- <mwatts42@gmail.com> -- patch that changes
|
||||
the Core to support being compiled for Silverlight 2
|
||||
|
||||
- Applied Louis DeJardin's patch adding TraceLogger as a new logger implementation
|
||||
|
||||
- Applied Chris Bilson's patch fixing CORE-15
|
||||
"WebLogger Throws When Logging Outside of an HttpContext"
|
||||
|
||||
Release Candidate 3
|
||||
===================
|
||||
|
||||
- Added IServiceProviderEx which extends IServiceProvider
|
||||
|
||||
- Added Pair<T,S> class.
|
||||
|
||||
- Applied Bill Pierce's patch fixing CORE-9
|
||||
"Allow CastleComponent Attribute to Specify Lifestyle in Constructor"
|
||||
|
||||
- Added UseSingleInterfaceProxy to CompomentModel to control the proxying
|
||||
behavior while maintaining backward compatibility.
|
||||
Added the corresponding ComponentProxyBehaviorAttribute.
|
||||
|
||||
- Made NullLogger and IExtnededLogger
|
||||
|
||||
- Enabled a new format on ILogger interface, with 6 overloads for each method:
|
||||
Debug(string)
|
||||
Debug(string, Exception)
|
||||
Debug(string, params object[])
|
||||
DebugFormat(string, params object[])
|
||||
DebugFormat(Exception, string, params object[])
|
||||
DebugFormat(IFormatProvider, string, params object[])
|
||||
DebugFormat(IFormatProvider, Exception, string, params object[])
|
||||
|
||||
The "FatalError" overloads where marked as [Obsolete], replaced by "Fatal" and "FatalFormat".
|
||||
|
||||
0.0.1.0
|
||||
=======
|
||||
|
||||
- Included IProxyTargetAccessor
|
||||
|
||||
- Removed IMethodInterceptor and IMethodInvocation, that have been replaced
|
||||
by IInterceptor and IInvocation
|
||||
|
||||
- Added FindByPropertyInfo to PropertySetCollection
|
||||
|
||||
- Made the DependencyModel.IsOptional property writable
|
||||
|
||||
- Applied Curtis Schlak's patch fixing IOC-27
|
||||
"assembly resource format only works for resources where the assemblies name and default namespace are the same."
|
||||
|
||||
Quoting:
|
||||
|
||||
"I chose to preserve backwards compatibility by implementing the code in the
|
||||
reverse order as suggested by the reporter. Given the following URI for a resource:
|
||||
|
||||
assembly://my.cool.assembly/context/moo/file.xml
|
||||
|
||||
It will initially look for an embedded resource with the manifest name of
|
||||
"my.cool.assembly.context.moo.file.xml" in the loaded assembly my.cool.assembly.dll.
|
||||
If it does not find it, then it looks for the embedded resource with the manifest name
|
||||
of "context.moo.file.xml".
|
||||
|
||||
- IServiceEnabledComponent Introduced to be used across the project as
|
||||
a standard way to have access to common services, for example, logger factories
|
||||
|
||||
- Added missing log factories
|
||||
|
||||
- Refactor StreamLogger and DiagnosticLogger to be more consistent behavior-wise
|
||||
|
||||
- Refactored WebLogger to extend LevelFilteredLogger (removed duplication)
|
||||
|
||||
- Refactored LoggerLevel order
|
||||
|
||||
- Project started
|
||||
@@ -0,0 +1,163 @@
|
||||
Unreleased Changes
|
||||
==================
|
||||
- N/A
|
||||
|
||||
2.1.0 (2009-05-04)
|
||||
==================
|
||||
- Fixed DYNPROXY-87: "Mixin takes precedence over target object"
|
||||
changed DP to throw exceptions when two mixins implement the same interface or a mixin implements the same interface as its target class/object
|
||||
|
||||
- Applied Krzysztof Kozmic's patch improving the XML documentation of IInterceptorSelector
|
||||
and IProxyGenerationHook.
|
||||
|
||||
2.1.0 RC1 (2009-03-10)
|
||||
======================
|
||||
- Applied Krzysztof Kozmic's patch improving the XML documentation and parameter names of IProxyBuilder, DefaultProxyBuilder and ProxyGenerator.
|
||||
|
||||
- Applied Krzysztof Kozmic's patch heavily improving the XML documentation of ProxyGenerator.
|
||||
|
||||
- Fixed DYNPROXY-ISSUE-84: "UseSingleInterfaceProxy on ProxyGenerationOptions is never used and should be removed"
|
||||
|
||||
- Fixed DYNPROXY-ISSUE-58/DYNPROXY-ISSUE-77: "Inherited interface seems not to work"
|
||||
using Dimitri Goethals' test case and Ayende Rahien/Andrey Shchekin's patch.
|
||||
|
||||
- Fixed DYNPROXY-ISSUE-52: "DynamicProxy 1.1.5 doesn't work on Medium Trust"
|
||||
uses the assembly's fullname instead of calling GetName()
|
||||
|
||||
- Fixed DYNPROXY-ISSUE-82: "Not allow generics & NoGeneric methods with same signature"
|
||||
using Fabio Maulo's test case and Krzysztof Kozmic patch.
|
||||
|
||||
- Applied Neil Bourgeois's patch fixing DYNPROXY-ISSUE-78
|
||||
"Custom attributes of virtual properties absent on proxy"
|
||||
|
||||
- Applied Craig Vermeer's patch fixing an issue with generating default constructors for DYNPROXY-ISSUE-81
|
||||
"No Default Constructor in generated Class Proxy"
|
||||
|
||||
- Added support for IInterceptorSelector (patch provided by Krzysztof Kozmic).
|
||||
- Removed ProxyGenerationOptions.UseSelector.
|
||||
|
||||
- Added support for generic methods when specifying additional interfaces to CreateInterfaceProxyWithoutTarget (reported by Craig Neuwirth, cause
|
||||
found by Krzysztof Kozmic)
|
||||
|
||||
- Added support for provide additional interfaces for target interface proxies.
|
||||
|
||||
- Added workarounds for dictionary deserialization scenarios (reported by Grégory Célet)
|
||||
|
||||
- Fixed mixin-related bug with serialization (per Rogelio again)
|
||||
- Made interface proxies without target and with target interface support mixins
|
||||
|
||||
- Fixed ProxyGenerationOptions equality issues with ordering and different instances of the same mixin types (thanks for finding
|
||||
the bug, Rogelio)
|
||||
|
||||
- Readded mixin support (via Rogelio J. Baucells)
|
||||
|
||||
- ClassEmitter now supports emitting fields with specific attributes
|
||||
|
||||
- Added a load API to ModuleScope
|
||||
- SaveAssembly now serializes the cache keys together with the generated types
|
||||
|
||||
- Fixed test issue - PEVerify is now called with a quoted assembly path (to allow for spaces in the path)
|
||||
- Fixed test annoyance - PEVerify is now not called in a separate window
|
||||
- Changed PersistentProxyBuilder behavior - SaveAssembly is not called by the class generators any more, instead PersistentProxyBuilder.SaveAssemblies
|
||||
must be used. This allows the proxy builder to save multiple proxies at the same time. Test cases have been adapted.
|
||||
|
||||
- Fixed issues with CacheKey.Equals and ProxyGenerationOptions.Equals/GetHashCode
|
||||
- Added a way to set and retrieve the ModuleScope used by ProxyObjectReference for proxy deserialization; proxies can now be deserialized with
|
||||
the same ModuleScope used by the application (DYNPROXY-71)
|
||||
|
||||
- Made BasePEVerifyTestCase only check those assemblies that were actually generated in the test case, see DYNPROXY-68
|
||||
- Fixed bug with protected internal constructors, see DYNPROXY-66/DYNPROXY-67
|
||||
- Fixed test cases not using the ProxyGenerator supplied by BasePEVerifyTestCase, see DYNPROXY-69
|
||||
|
||||
- Added StrongNameUtil, which provides methods for checking whether an assembly is signed/a type comes from a signed assembly
|
||||
- Added an additional constructor overload to ClassEmitter, allowing to force it to use an unsigned assembly
|
||||
|
||||
- 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
|
||||
directory
|
||||
|
||||
- Applied Pawel Pabich's suggestion fixing DYNPROXY-65
|
||||
"OpCodeUtil.GetUnderlyingTypeOfEnum doesn't handle unsigned integers"
|
||||
|
||||
- Fixed bug in ArgumentReference occurring when emitting static methods
|
||||
|
||||
- Removed ClsCompliant(false) from all the public types in DynamicProxy
|
||||
|
||||
- Added constructors to ClassEmitter, removed "serializable" ctor parameter, it wasn't used
|
||||
|
||||
- Fixed bug in ModuleScope, see DYNPROXY-64
|
||||
|
||||
- Fixed bug in LoadArrayElementExpression, see DYNPROXY-57
|
||||
|
||||
- Changed signing behavior for generated assembly, assembly is now only signed if all involved types (base type, interfaces) are also signed
|
||||
|
||||
- Documented ModuleScope, added friendlier API for saving assemblies, added tests for ModuleScope, see DYNPROXY-55
|
||||
|
||||
- Applied Adam Tybor's patch fixing DYNPROXY-63
|
||||
"ProxyType not included in CacheKey"
|
||||
|
||||
- Reimplemented serialization of ProxyGenerationOptions, see revision 3803, DYNPROXY-59
|
||||
|
||||
- Added method signature filtering to MethodFinder (see MethodSignatureComparer) because there were
|
||||
still cases triggering duplicate methods
|
||||
|
||||
- Reimplemented serialization without default constructors, see revision 3725, DYNPROXY-53
|
||||
- Reimplemented serialization with delegates/events, see revision 3751, DYNPROXY-56
|
||||
|
||||
- Renamed InterfaceProxyGeneratorWithoutTarget to InterfaceProxyWithoutTargetGenerator
|
||||
|
||||
- Fixed DYNPROXY-62
|
||||
"Some tests in MethodFinderTestCase failed because of culture specific exception messages"
|
||||
|
||||
- Implemented cache for System.Type.GetMethods() in order to avoid triggering the duplicate methods bug
|
||||
|
||||
- Applied Adam Tybor's patch fixing DYNPROXY-61
|
||||
"Need GetInterceptors from IProxyTargetAccessor back for NHibernate Trunk"
|
||||
|
||||
- Disabled replication of internal constructors on class proxies.
|
||||
|
||||
- Moved the UseSingleInterfaceProxy from Core.ComponentModel to ProxyGeneratorOptions.
|
||||
|
||||
- Applied Lee Henson's patch fixing generic parameter definitions
|
||||
|
||||
- Applied Jacob Lewallen's patch that introduces ProxyInterfaceWithTargetInterface
|
||||
Quoting
|
||||
|
||||
"I've introduced a new "mode" that is
|
||||
ProxyInterfaceWithTargetInterface, that uses the given interface as
|
||||
the target type, rather than the type of the target (it asserts the
|
||||
target implements the interface) All other modes should remain the
|
||||
same.
|
||||
|
||||
"In this scenario, the IInvocation will also implement
|
||||
IChangeProxyTarget, which can then be used to change the proxy target
|
||||
to another implementation of the target interface."
|
||||
|
||||
- Added support for events
|
||||
|
||||
- Fixed DYNPROXY-43
|
||||
"DP2 : Missing ParameterInfo 'Name' for Proxied methods"
|
||||
|
||||
- Fixed DYNPROXY-41
|
||||
"Invalid state exception on DP2"
|
||||
|
||||
- Fixed DYNPROXY-39
|
||||
"Deadlock in DynamicProxy2"
|
||||
|
||||
- Fixed DYNPROXY-28
|
||||
"Virtual methods calls from constructors are not working"
|
||||
|
||||
- Fixed DYNPROXY-27
|
||||
"Support for non-parameterless constructors"
|
||||
|
||||
- Fixed DYNPROXY-25
|
||||
"Chars returns are not properly configured"
|
||||
|
||||
- Fixed DYNPROXY-24
|
||||
"DynamicProxy2: missing locks"
|
||||
|
||||
- Fixed DYNPROXY-34
|
||||
"Cant proxy generic interfaces"
|
||||
|
||||
Alpha Version 1.0.0.0
|
||||
=====================
|
||||
- First release
|
||||
@@ -0,0 +1,623 @@
|
||||
2.0
|
||||
====
|
||||
|
||||
- Fluent interface for factory support
|
||||
|
||||
- Fixed an issue with of not considering unregistered service dependencies in arrays
|
||||
|
||||
- Will not try to convert values that are already a match to the parameter type
|
||||
|
||||
- XmlProcessor now properly dispose of the stream reader
|
||||
|
||||
- The kernel will now check if trying to register null types
|
||||
|
||||
RC 4
|
||||
====
|
||||
|
||||
- Update FromInterface Registration policy to only consider toplevel interfaces
|
||||
and allow multiple services.
|
||||
|
||||
- Fixed bug in AllComponentsReleasePolicy in which burden not properly handled
|
||||
on dispose.
|
||||
|
||||
- Applied patch from Joao Braganca to allow abstract types in DefaultComponentActivator if proxied.
|
||||
|
||||
- Added additional AddFacility overrides to improve fluent configuration of facilities.
|
||||
|
||||
- Moved DefaultComponentActivator check for abstract so it can be better overriden.
|
||||
|
||||
- Added Attribute to Component Registration fluent interface.
|
||||
|
||||
- Add ability to use Configure components based on implementation type when
|
||||
using AllTypesOf.
|
||||
|
||||
- Do not return forward handlers in ResolveAll since you will get duplicate services.
|
||||
|
||||
- Applied patch (with mods) from Martin Nllsson to select registration interface from
|
||||
containing interface.
|
||||
|
||||
- Added shortcut to AllTypes to accept a where.
|
||||
|
||||
- Added ability to include non-public types in registration.
|
||||
|
||||
- Updated registration to support providing multiple service types.
|
||||
|
||||
- Add registration support for mixins.
|
||||
|
||||
- Do not allow registering components with the same name in fluent interface.
|
||||
|
||||
- Applied Ayendes patch to introduce component service type forwarding to
|
||||
support multiple service interfaces for a component.
|
||||
Extended the Component Registration interface to support service forwarding.
|
||||
|
||||
- Avoid to register abstract component via IKernel.AddComponent, now throws when trying to add instead of while resolving component
|
||||
|
||||
- Removed sealed qualifier from CreationContext and made ISubDependencyResolver
|
||||
methods virtual so they can be overriden.
|
||||
|
||||
- Made IKernel.AddFacility fluent.
|
||||
|
||||
- Added StartMethod/StartMethod to ComponentRegistration.
|
||||
|
||||
- Add if/unless support for ComponentRegistration.
|
||||
|
||||
- Applied Daniel Jins patch to not proxy internal interfaces.
|
||||
|
||||
- Fixed IOC-126
|
||||
"PoolableLifestyleManager creates pool in constructor"
|
||||
|
||||
- Fixed IOC-125
|
||||
"DefaultGenericHandler does not properly handle proxied generic components"
|
||||
|
||||
- Updated AllTypes strategy to support types based on generic type definitions.
|
||||
|
||||
- Updated AllTypes strategy to support multiple registrations from a single set of types.
|
||||
|
||||
- Collection handlers from parent container for GetAssignableHandlers.
|
||||
|
||||
- Added ability to change invocation target to DefaultProxyFactory.
|
||||
|
||||
- Fixed bug with ComponentRegistration.Instance in which the instance type was not assigned as the ComponentModel implementation.
|
||||
|
||||
- Replaced AllTypesOf<T> syntax with AllTypes.Of<T> so a non-generic version can be consistently provided.
|
||||
|
||||
- Added generic AddFacility methods to kernel.
|
||||
|
||||
- Added generalized configuration support to ComponentRegistration.
|
||||
|
||||
- Added IWindsorInstaller interface to enhance Windsor component installation.
|
||||
|
||||
- Added AllTypesOf registration stratgey to simplify custom registration
|
||||
scenarios.
|
||||
|
||||
- Added IRegistration interface to allow alternate registration mechanisms.
|
||||
|
||||
- Fixed CORE-16 (Should be Facilities)
|
||||
"The FactorySupportFacility does not create proxies if interceptors are present"
|
||||
|
||||
- Added support for list service overrides using the fluent registration interface.
|
||||
Added support for specifying configuration parameters using the fluent interface to allow any complex
|
||||
registration scenarios.
|
||||
|
||||
- Restructured the registration fluent interface to be a little more readable,
|
||||
better support component registrations and prevent errors resulting from
|
||||
forgetting to call ComponentRegistration.Register
|
||||
|
||||
- Fixed Facilities-97
|
||||
"EventWiring Facility fails to create some components"
|
||||
|
||||
- Added support for non-generic usage of fluent-interface. Needed for dynamic registrations scenarios (Binsor)
|
||||
Automatically register the component between consecutive AddComponentEx (Saves a few strokes).
|
||||
|
||||
- Initial version of MicroKernel/Windsor fluent interface IOC-99
|
||||
|
||||
- Applied patch from Jacob Lewallen improving the locking performance in the DefaultNamingSubsystem under high load.
|
||||
|
||||
- Applied Philippe Tremblay's patch fixing IOC-94
|
||||
"Copy LifeStyle from generic interface"
|
||||
|
||||
- Added support for copying interceptors defined on the geneirc interface handler.
|
||||
|
||||
- Fixed IOC-80
|
||||
"StartableFacility erroneously tries to start a component before
|
||||
RegisterCustomDependency can be called"
|
||||
|
||||
- Added ComponentModelConverter to utilize System.ComponentModel TypeConverters
|
||||
Very useful for converting things like Fonts and Colors
|
||||
|
||||
- Updated DefaultComplexConverter to support interfaces and derived types
|
||||
|
||||
- Fixed IOC-96
|
||||
"FactorySupport fails to create components if the factory instance is a proxy"
|
||||
|
||||
- Fixed IOC-93
|
||||
"GenericListConverter does not handle service overrides properly"
|
||||
|
||||
- Fixed IOC-91
|
||||
"ContextBoundObject's context is not bound when object is created by MicroKernel"
|
||||
|
||||
- Fixed build from IContainerAccessor change
|
||||
|
||||
- Applied Ron Grabowski's patch fixing IOC-89
|
||||
"Make DefaultKernel implement IServiceProvider"
|
||||
|
||||
- Check for required Properties before determining the Handlers initial state
|
||||
|
||||
- Fixed IoC-87
|
||||
"DefaultComplextConverter does not properly handle nested components"
|
||||
|
||||
- Applied Lee Henson's patch fixing IOC-86
|
||||
"Additional generic AddComponent overloads"
|
||||
|
||||
- Applied Ido Samuelson patch fixing IOC-85
|
||||
"IKernel to support generics to add/resolve components."
|
||||
|
||||
- Refactored proxy options support. Now you can use the attribute 'marshalByRefProxy'
|
||||
on the external configuration, or the ComponentProxyBehaviorAttribute
|
||||
|
||||
- Fixed IOC-79
|
||||
"Kernel.GetHandlers(Type) does not consider generic handlers when satisfying the type"
|
||||
|
||||
- Updated StartableFacilityTestCase to correctly demonstrate the facility and
|
||||
added a unit test to demonstrate IOC-80
|
||||
|
||||
- Applied Alex Henderson's patch that makes the ComponentModel available
|
||||
to the ILifestyleManager
|
||||
|
||||
- Applied Adam Mills's patch fixing IOC-74
|
||||
"BinaryComponentName VisitNode null check"
|
||||
|
||||
- Fixed IOC-67
|
||||
"RemoveComponent needs to unwire handlers and remove them"
|
||||
|
||||
- Fixed IOC-59
|
||||
"Child component unable to correctly resolve parent service added after the component"
|
||||
|
||||
- Fixed IOC-47
|
||||
"Components created by FactoryActivator have their dependencies checked"
|
||||
|
||||
- Applied Marcus Widerberg's patch fixing FACILITIES-84
|
||||
"FactorySupport - Allow parameters to factory method to be set at resolvetime"
|
||||
|
||||
- Applied Marcus Widerberg's patch fixing FACILITIES-82
|
||||
"Programmatic configuration for FactorySupport"
|
||||
|
||||
- Reverted by Henry -> Apply patch from Sam Camp that fixes problems with Remoting Facility Sample and RecoverableComponent.
|
||||
|
||||
- Updated TypedFactoryFacility to not require a target instance
|
||||
when proxying.
|
||||
|
||||
- Added Windsor proxy support to create proxies without targets.
|
||||
|
||||
- Removed relationship between ProxyOptions and ProxyGeneration options
|
||||
and moved ProxyOptions into the MicroKernel. ProxyGeneration options
|
||||
are created from the ProxyOptions and will probably need to be updated
|
||||
as facilities demand more proxy generation customizations.
|
||||
|
||||
- Added ProxyOptions to allow facilities to easily add proxy interfaces
|
||||
without having to create custom proxy factories. The ProxyOptions
|
||||
are obtained via the ProxyUtil.
|
||||
|
||||
- Fixed IOC-65
|
||||
"DictionaryConverter should use the alternate overload of the
|
||||
PerformConversion method in order to support dictionaries that contain
|
||||
custom types"
|
||||
|
||||
- Moved ProxyComponentInspector from Castle.MicroKernel to here and added
|
||||
support to supply ProxyGenerationOptions on a ComponentModel basis. This
|
||||
provides the needed ability to provide proxy options in facilities.
|
||||
|
||||
- Fixed IOC-69 - DefaultDependencyResolver issue with Service Overrides.
|
||||
|
||||
- Added ComponentProxyBehaviorAttribute and ComponentProxyInspector
|
||||
to control the creation of component proxies.
|
||||
|
||||
- Added eval support to configuration. Currently it only supports
|
||||
BaseDirectory as a content to evaluate
|
||||
|
||||
<?eval $BaseDirectory ?>
|
||||
|
||||
- Added IEnvironmentInfo in an attempt to solve complex
|
||||
configuration/environment issues.
|
||||
|
||||
- Fixing IOC-63 - source order of constructors should not matter
|
||||
|
||||
- Fixed IOC-62
|
||||
"Interceptors don't work properly on generic components"
|
||||
|
||||
- Applied Norbert Wagner's patch fixing IOC-55
|
||||
"Generic Type Converters: Set default entry types to generic arguments of property type"
|
||||
|
||||
- Applied Jeff Brown's patch fixing IOC-54
|
||||
"Empty component parameter values cause runtime exception during component resolution."
|
||||
|
||||
- Applied patch by Bill Pierce that
|
||||
|
||||
-- Introduces the WebUserControlComponentActivator
|
||||
|
||||
-- Introduces the KeySearchNamingSubSystem
|
||||
|
||||
-- Allows you to associate a custom component activator using
|
||||
1. componentActivatorType on component node
|
||||
2. ComponentActivatorAttribute
|
||||
|
||||
-- Allows you to create and configure child containers
|
||||
through the configuration, using
|
||||
|
||||
<configuration>
|
||||
<containers>
|
||||
<container name="child1">
|
||||
<configuration>
|
||||
<facilities>
|
||||
...
|
||||
</facilities>
|
||||
|
||||
<components>
|
||||
...
|
||||
</components>
|
||||
|
||||
</configuration>
|
||||
</container>
|
||||
</containers>
|
||||
</configuration>
|
||||
|
||||
- Applied AndyD's patch fixing IOC-52
|
||||
"Remote access to generic components"
|
||||
|
||||
- Fixed IOC-45
|
||||
"Proxying a component that has an interface that is extended from another interface throws an exception"
|
||||
|
||||
- Applied patch by Ernst Naezer fixing IOC-37
|
||||
"Resolving with arguments in Windsor"
|
||||
|
||||
- Fixed IOC-43
|
||||
"Creation of an Attribute in the Kernel that allows one property to be ignored by the dependency builder"
|
||||
|
||||
Introduced DoNotWireAttribute that marks a property and prevents it
|
||||
from being considered by the container
|
||||
|
||||
- Changed Windsor to use DynamicProxy 2
|
||||
|
||||
- Applied patch by Adam Mills fixing IOC-42
|
||||
"ResolveServices", new method added to IKernel
|
||||
|
||||
- Applied patch by Adam Mills fixing IOC-41
|
||||
"Bug Fix BinaryTreeComponentName - Assumed Lesser nodes went to left"
|
||||
|
||||
- Applied patch by Adam Mills fixing IOC-40
|
||||
"Provided an Implementation for BinaryTreeComponentName.Remove"
|
||||
|
||||
- Applied patch by Adam Mills fixing IOC-39
|
||||
"Fix for Null Reference when accessing empty BinaryTreeComponentName"
|
||||
|
||||
- Fixed IOC-35
|
||||
"Add bootstrap section to configuration file"
|
||||
|
||||
- Fixed issue where KeyAlreadyAdded exception would be throw for
|
||||
components accepting two parameters of the same type, without overrides
|
||||
|
||||
- Fixed IOC-36
|
||||
"Transient components with multliple constructors throw
|
||||
unresolved dependency exceptions."
|
||||
|
||||
Removed best candidate reference, as the kernel is dynamic it should
|
||||
not cache best constructors as components can be added or removed
|
||||
at any time
|
||||
|
||||
Removed Points from candidates, as in a multithreaded scenario
|
||||
this would lead to failures
|
||||
|
||||
|
||||
- Fixed IOC-34
|
||||
"Cannot use types having their own base type as constructor argument"
|
||||
|
||||
See revision r2787
|
||||
|
||||
- IOC-32, Support generic collections.
|
||||
Supported collections are: ICollection<T>, IList<T>, List<T>, IDictionary<K,V>, Dictionary<K,V>, IEnumerable<T>
|
||||
|
||||
RC 3
|
||||
====
|
||||
|
||||
- Applied patch by William C. Pierce <wcpierce@gmail.com> adding PerWebRequestAttribute
|
||||
|
||||
- Added setter to ReleasePolicy property
|
||||
|
||||
- Applied Curtis Schlak's patch fixing IOC-30
|
||||
"Add overload to Windsor AddComponent to specify the Lifestyle"
|
||||
|
||||
- Refactored AbstractHandler to use IDependencyResolver
|
||||
|
||||
- Dependencies can be resolved now in three levels:
|
||||
|
||||
* CreationContext (which now implements ISubDependencyResolver)
|
||||
* IHandler (which now implements ISubDependencyResolver)
|
||||
* IKernel which is the normal flow
|
||||
|
||||
- Implemented IoC-29 using a different approach
|
||||
|
||||
- Renamed IKernel.AddComponentWithProperties to AddComponentExtendedProperties.
|
||||
The old method name misled the programmer about its purpose.
|
||||
|
||||
- Added a PerWebRequestLifestyleManager which creates at most one instance of
|
||||
an object per web request. To use it you must add the following http module
|
||||
|
||||
<httpModules>
|
||||
...
|
||||
<add name="PerWebRequest" type="Castle.MicroKernel.Lifestyle.PerWebRequestLifestyleManager , Castle.MicroKernel,Version=0.0.1.7, Culture=neutral, PublicKeyToken=407dd0808d44fbdc"/>
|
||||
|
||||
<httpModules>
|
||||
|
||||
The strong name could be omitted if not in the GAC
|
||||
|
||||
- Added checks to handle cycles in dependencies graphs and avoid deadly Stack Overflow Exceptions.
|
||||
|
||||
- Fixed IOC-24: "Allow user to provide an attribute which will customize how to inspect properties (PropertiesDependenciesModelInspector)"
|
||||
Now users can add an 'inspectionBehavior' attribute to the component node that defines
|
||||
the inspection strategy. Possible values are
|
||||
|
||||
- None: No properties inspection should happen
|
||||
- All: All properties will be inspected and collected (on the class and on the superclasses).
|
||||
This is the default behavior
|
||||
- DeclaredOnly: Only properties specified on type are checked (superclasses will be ignored)
|
||||
|
||||
- Added overload to ITypeConvertor that accept the current node configuration as well as the type in CanHandleType()
|
||||
|
||||
- Change: Better error message when there's an exception
|
||||
setting up properties
|
||||
|
||||
- Fixed IOC-25: Overrides on the configuration should be considered a non-optional dependency
|
||||
|
||||
This fix changes a little the MicroKernel behavior. Now if you specify an service override
|
||||
through external configuration, it will be considered a _non-optional_ dependency
|
||||
|
||||
- Uri usage replaced by CustomUri which, differently than MS' Uri class, has the same
|
||||
behavior on net-1.1, net-2.0 and mono
|
||||
|
||||
- EventWiring Facility: now when a publisher is requested, the subscribers
|
||||
are automatically started.
|
||||
|
||||
The side effects are:
|
||||
|
||||
- when a subscriber is requested it won't be wired automatically.
|
||||
- There no much sense in having a subscriber with a lifestyle other than singleton
|
||||
|
||||
I'm still evaluating this idea. Sometimes wiring only when the subscriber is requested
|
||||
might make sense, but supporting both approaches is kinda hard.
|
||||
|
||||
|
||||
- Applied patch by Alex Henderson <webmaster@bittercoder.com> adding
|
||||
IWindsorContainer.RemoveChildContainer(IWindsorContainer childContainer)
|
||||
and IKernel.RemoveChildKernel(IKernel kernel)
|
||||
|
||||
- Applied fix by Ahmed. Now defines can be used on properties nodes like
|
||||
|
||||
<properties>
|
||||
<?if DEBUG?>
|
||||
<item>x</item>
|
||||
<?end?>
|
||||
</properties>
|
||||
|
||||
- Now with DictionaryConverter you can specify the keyType and valueType on each entry (kudos to Ahmed)
|
||||
|
||||
- xmlinterpreter will throw an exception if a property is not defined but referenced
|
||||
using #{propertyName} syntax.(Patch from Ahmed)
|
||||
|
||||
- XmlProcessor refactored from XmlInterpreter (kudos to Ahmed)
|
||||
Now PI are also supported (don't forget to document this on the wiki)
|
||||
|
||||
- Support for nested nodes on the properties. (kudos to Ahmed)
|
||||
Example:
|
||||
|
||||
<configuration>
|
||||
<properties>
|
||||
<MyComponentParams>
|
||||
<user>Joe</user>
|
||||
<pwd>Doe</pwd>
|
||||
</MyComponentParams>
|
||||
</properties>
|
||||
<components id=??Component
|
||||
<parameters>#{ MyComponentParams }</parameters>
|
||||
</components>
|
||||
</configuration>
|
||||
|
||||
Will result in
|
||||
|
||||
<components id=??Component
|
||||
<parameters>
|
||||
<user>Joe</user>
|
||||
<pwd>Doe</pwd>
|
||||
</parameters>
|
||||
</components>
|
||||
|
||||
- Type converter for kernel components. This allows a usage like this:
|
||||
|
||||
<component id="mycomp">
|
||||
|
||||
<parameters>
|
||||
<servicelist>
|
||||
<list type="IMyService, MyAssembly">
|
||||
<item>${keytocomponent1}</item>
|
||||
<item>${keytocomponent2}</item>
|
||||
</list>
|
||||
</servicelist>
|
||||
</parameters>
|
||||
|
||||
- Removed support for MethodMeta on ComponentModel. The design decision here
|
||||
is to make the facilities interested on it to extend MethodMetaInspector
|
||||
reading from a specific node.
|
||||
|
||||
RC 2
|
||||
====
|
||||
|
||||
- AsyncInitializationContainer introduced. Special container flavor that installs the
|
||||
facilities and components using a background thread.
|
||||
|
||||
- Support for evaluation of expressions within the xml configuration (kudos to Ahmed)
|
||||
The following "statements" are supported:
|
||||
|
||||
<define flag="DEBUG" />
|
||||
<undef flag="DEBUG"/>
|
||||
|
||||
<if defined="DEBUG">
|
||||
component/facility nodes
|
||||
</if>
|
||||
|
||||
<choose>
|
||||
<when defined="DEBUG">
|
||||
<component id="debug"/>
|
||||
</when>
|
||||
<when defined="Qa">
|
||||
<component id="qa"/>
|
||||
</when>
|
||||
<when defined="Prod">
|
||||
<component id="prod"/>
|
||||
</when>
|
||||
<otherwise>
|
||||
<component id="default"/>
|
||||
</otherwise>
|
||||
</choose>
|
||||
|
||||
- Startable facility: support to specify the attribute startable=true on the configuration
|
||||
|
||||
- Better error messages: now the components waiting for dependencies will recursively
|
||||
report what they are waiting for.
|
||||
|
||||
- Support for custom lifestyle through configuration (kudos to Bawer Dagdeviren):
|
||||
|
||||
<component id="my.component"
|
||||
type="MyLib.MyComponent, MyLib"
|
||||
lifestyle="custom"
|
||||
customLifestyleType="MyLib.MyCustomLifestyle, MyLib" />
|
||||
|
||||
- Added Type converter for enums
|
||||
|
||||
- Support to associate configuration nodes to methods. Usage:
|
||||
|
||||
<component>
|
||||
<methods>
|
||||
<save />
|
||||
<save signature="System.String, mscorlib" />
|
||||
<save signature="System.String, mscorlib;System.Int32, mscorlib" />
|
||||
</methods>
|
||||
</component>
|
||||
|
||||
Which is equivalent to
|
||||
|
||||
<component>
|
||||
<methods>
|
||||
<method name="save" />
|
||||
<method name="save" signature="System.String, mscorlib" />
|
||||
<method name="save" signature="System.String, mscorlib;System.Int32, mscorlib" />
|
||||
</methods>
|
||||
</component>
|
||||
|
||||
- IResource introduced (FileResource, AssemblyResource, ConfigResource and UncResource)
|
||||
which are accessible through Uris:
|
||||
|
||||
- FileResource:
|
||||
file://pathtofile
|
||||
(For example: file://c:\mydir\file.txt)
|
||||
|
||||
- AssemblyResource:
|
||||
assembly://AssemblyName/ExtendingNamespace/filename
|
||||
(For example: assembly://Castle.Windsor.Tests/Configuration2/include1.xml)
|
||||
|
||||
- ConfigResource:
|
||||
config://sectioname
|
||||
(For example: config://castle will fetch the
|
||||
<configuration><castle> entry in the configuration)
|
||||
|
||||
- UncResource:
|
||||
\\server\file
|
||||
(For example: \\mysharedplace\myconfig.xml)
|
||||
|
||||
- IResource, IResourceFactory and IResourceSubSystem introduced
|
||||
|
||||
- Ability to use <properties> in configuration files. Usage
|
||||
|
||||
<properties>
|
||||
<prop1>prop1 value</prop1>
|
||||
<prop2>prop2 value</prop2>
|
||||
</properties>
|
||||
|
||||
<facilities>
|
||||
|
||||
<facility id="testidengine" >
|
||||
<item>#{prop1}</item>
|
||||
</facility>
|
||||
|
||||
<facility id="testidengine2" >
|
||||
<item value="#{prop2}"/>
|
||||
</facility>
|
||||
|
||||
</facilities>
|
||||
|
||||
|
||||
- Ability to use <include> in configuration files. Usage
|
||||
|
||||
Main file:
|
||||
|
||||
<configuration>
|
||||
|
||||
<include uri="file://include1.xml"/>
|
||||
|
||||
</configuration>
|
||||
|
||||
include1.xml:
|
||||
|
||||
<configuration>
|
||||
|
||||
<components>
|
||||
|
||||
<component id="testidcomponent1">
|
||||
</component>
|
||||
|
||||
<component id="testidcomponent2">
|
||||
</component>
|
||||
|
||||
</components>
|
||||
|
||||
</configuration>
|
||||
|
||||
|
||||
Beta 3
|
||||
======
|
||||
|
||||
- Bug in dependency resolution (when chained) fixed
|
||||
- Better message description on exceptions related to unresolved dependencies.
|
||||
- Fixed bug in AddComponentWithProperties
|
||||
|
||||
Beta 2 - 10/apr/2005
|
||||
======
|
||||
|
||||
- Bug fixes
|
||||
|
||||
- Configuration object model separated into interpreters and sources
|
||||
|
||||
- AbstractFacility added
|
||||
|
||||
|
||||
Beta 1 - 21/jan/2005
|
||||
======
|
||||
|
||||
- Changed: from #{} to ${} - way of referencing to another component
|
||||
on the configuration.
|
||||
|
||||
- Added: support for dictionaries, lists and arrays on the configuration file.
|
||||
|
||||
<component>
|
||||
<parameters>
|
||||
<properties>
|
||||
<dictionary>
|
||||
<item key="mykey">value</item>
|
||||
</dictionary>
|
||||
</properties>
|
||||
</parameters>
|
||||
</component>
|
||||
|
||||
- Added: Component Graph (used by the Remove method and to dispose the components)
|
||||
|
||||
- Fixed: Remove method
|
||||
|
||||
- Fixed: Windsor: Proxy for components with (service != impl)
|
||||
@@ -0,0 +1,14 @@
|
||||
Copyright 2004-2005 Castle Project - http://www.castleproject.org/
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
|
||||
Reference in New Issue
Block a user