2008-01-12 Sebastien Pouliot <sebastien@ximian.com>
[mono.git] / mcs / class / System.Configuration / System.Configuration / ChangeLog
index 7f2f76847bc9680d0465015d1462ea184e24b585..2147d85aee288042513fdd897bf1a426ca1daccf 100644 (file)
@@ -1,3 +1,474 @@
+2008-01-12  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * ConfigurationLocationCollection.cs: Avoid infinite recursion. 
+       Found using Gendarme.
+
+2007-12-25  Konstantin Triger <kostat@mainsoft.com>
+
+       * KeyValueInternalCollection.cs: properly override NameValueCollection
+               to support interop with it.
+
+2007-12-25  Konstantin Triger <kostat@mainsoft.com>
+
+       * ConfigurationElement.cs:
+               1. typo - pass the correct property to Attribute.GetCustomAttribute.
+               2. Pass oroginal exception as inner.
+
+2007-12-05  Marek Habersack  <mhabersack@novell.com>
+
+       * ConfigurationElement.cs: some property values may be null
+       objects in GetHashCode.
+
+2007-11-23  Marek Habersack  <mhabersack@novell.com>
+
+       * ConfigurationElementCollection.cs: ThrowOnDuplicate returns true
+       if the collection is one of the AddRemoveClearMap or
+       AddRemoveClearMapAlternate types.
+
+2007-11-15  Atsushi Enomoto  <atsushi@ximian.com>
+
+       Part of fix for bug #323708.
+       * ConfigurationSection.cs : in GetRuntimeObject(), take parent
+         section instance into consideration.
+       * SectionInformation.cs : to make it possible, GetParentSection()
+         should be implemented.
+       * Configuration.cs : to make it possible, GetSectionInstance()
+         should set parent section on its SectionInformation. It used to
+         just steal parent's xml when its own xml does not exist, but
+         it now blocks correct configuration retrieval.
+
+2007-11-15  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * SectionGroupInfo.cs : remove extra StringBuilder creation.
+
+2007-11-14  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * Configuration.cs : (Save) when the given file path is relative
+         it failed to create directory. Fixed standalone test t25/t26.
+       * InternalConfigurationHost.cs : pass userLevel to create a host
+         instance.
+
+2007-10-04  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * InternalConfigurationHost.cs : when the streamName is for
+         machine.config, try get_bundled_machine_config() icall first.
+         This hopefully implements the requested feature in bug #325022.
+       * Configuration.cs : added comment.
+
+2007-08-31  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * ConfigurationManager.cs: Fixed line endings. Avoid warning by
+       changing accessibility of ChangeConfigurationSystem to internal.
+       * Configuration.cs: Fixed compiler warnings.
+       * DpapiProtectedConfigurationProvider.cs: Fixed line endings.
+
+2007-08-21  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * ConfigurationManager.cs : To open exe configuration, use 
+         GetEntryAssembly() first, and GetCallingAssembly() only when
+         it was not found. Should fix bug #82071.
+
+2007-06-21  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * Configuration.cs, InternalConfigurationHost.cs :
+         configuration file to write might be given as an absolute path,
+         where the ancestor directories may not exist.
+
+2007-06-20  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * ConfigurationManager.cs : in OpenExeConfiguration() and
+         OpenMappedExeConfiguration(), take userLevel into consideration.
+       * InternalConfigurationHost.cs : consider ConfigurationUserLevel and
+         use correct config map file in InitForConfiguration().
+
+2007-06-18  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * ClientConfigurationSystem.cs : do not asume GetEntryAssembly()
+         returns non-null. Patch by Patrick Perry.
+
+2007-06-13  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * ConfigurationElement.cs : SerializeToXmlElement() should be
+         called regardless of HasValues() return value, especially since
+         it could be overriden (e.g. in SettingsValueElement).
+
+2007-06-13  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * ConfigurationSectionGroup.cs
+         Configuration.cs : ConfigurationSectionGroup must be initialized
+         at least when being added to a collection.
+
+2007-06-12  Vladimir Krasnov  <vladimirk@mainsoft.com>
+
+       * ConfigurationElement.cs: refactored GetKeyProperties and
+       GetDefaultCollection methods, map should not be used here, Properties
+       will do instead. Refactored ElementMap class
+       * ConfigurationElementCollection.cs: fixed InitFromProperty, GetMap()
+       should not be called here
+       * ElementInformation.cs: fixed Properties, moved to ctor to be thread
+       safe
+       * PropertyInformation.cs: members assigned readonly modifier
+
+2007-05-30  Marek Habersack  <mhabersack@novell.com>
+
+       * SectionGroupInfo.cs: <location> elements are case-insensitive
+       and the same 'path' attribute may be used only once.
+
+       * ConfigurationLocationCollection.cs: Find should be
+       case-insensitive for all targets, not just TARGET_JVM.
+
+2007-05-17 Igor Zelmanovich <igorz@mainsoft.com>
+
+       * Configuration.cs: FilePath implemented according to MSDN:
+       If the value for this FilePath property represents a merged view and 
+       no actual file exists for the application, the path to the parent 
+       configuration file is returned.
+
+2007-05-15 Igor Zelmanovich <igorz@mainsoft.com>
+
+       * Configuration.cs:
+       * ConfigurationLocation.cs:
+       implemented EvaluationContext property.         
+
+2007-05-15 Igor Zelmanovich <igorz@mainsoft.com>
+
+       * ConfigurationLocationCollection.cs: for TARGET_JVM only:
+       location path is case-insensitive.
+               
+2007-05-15  Marek Habersack  <mhabersack@novell.com>
+
+       * ConfigurationElement.cs: added value validation on
+       deserialization from the config file.
+
+2007-05-14 Igor Zelmanovich <igorz@mainsoft.com>
+
+       * ConfigurationElement.cs: when attribute value cannot be parsed,
+       ConfigurationErrorException is thrown.
+               
+2007-05-09 Igor Zelmanovich <igorz@mainsoft.com>
+
+       * ConfigurationManager.cs:
+       added MonoLimitation attribute for TARGATE_JVM. 
+               
+2007-05-08 Igor Zelmanovich <igorz@mainsoft.com>
+
+       * ConnectionStringSettingsCollection.cs: removed 'new' keyword, cause 
+       property doesn't hide any inherit property.
+
+2007-04-24  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * InternalConfigurationHost.cs : machine configuration covers all
+         ConfigurationAllowDefinition values.
+
+2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * ConfigurationSectionCollection.cs : GetEnumerator() should return
+         IEnumerator for the items, not keys.
+       * ConfigurationProperty.cs : more helpful type mismatch message.
+
+2007-04-16  Marek Habersack  <mhabersack@novell.com>
+
+       * SectionGroupInfo.cs: another (and final, hopefully) fix for bug
+       #81321 and several other related issues that were discovered by
+       the way. Thanks to Atsushi for help with XmlReader!
+
+2007-04-15  Marek Habersack  <mhabersack@novell.com>
+
+       * SectionGroupInfo.cs: another incarnation of the fix for bug
+       #81321.
+
+2007-04-12  Marek Habersack  <mhabersack@novell.com>
+
+       * SectionGroupInfo.cs: a better fix for #81321
+
+2007-04-10  Marek Habersack  <mhabersack@novell.com>
+
+       * SectionGroupInfo.cs: make sure empty sections with the
+       short-circuit tag ends (<section/>) don't make the process loop
+       endlessly. Fixes bug #81321.
+
+2007-03-22  Konstantin Triger <kostat@mainsoft.com>
+
+       * ConfigInfo.cs: should be able instantiate types with private ctors.
+
+2007-03-19  Vladimir Krasnov  <vladimirk@mainsoft.com>
+
+       * ConfigurationSectionCollection.cs,
+       * ConfigurationSectionGroupCollection.cs,
+       * PropertyInformationCollection.cs, 
+       * SectionGroupInfo.cs: used StringComparer.Ordinal instead of
+       OrdinalComparer
+
+2007-03-15  Vladimir Krasnov  <vladimirk@mainsoft.com>
+
+       * ConfigurationSectionCollection.cs,
+       * ConfigurationSectionGroupCollection.cs,
+       * PropertyInformationCollection.cs, 
+       * SectionGroupInfo.cs: these collections should be based on case
+       insensitive NameObjectCollectionBase
+       * added OrdinalComparer.cs for use in NameObjectCollectionBase
+
+2007-02-07  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * SectionInfo.cs : don't stop at restartOnExternalChanges attribute.
+
+2007-01-16  Konstantin Triger <kostat@mainsoft.com>
+
+       * ConfigurationElement.cs: ignore properties with null or empty name.
+
+2007-01-16  Konstantin Triger <kostat@mainsoft.com>
+
+       * ConfigurationElement.cs: Try to deserilalize an unrecognized element by
+               current element, and only if failed delegate to default collection.
+
+2006-12-27  Vladimir Krasnov  <vladimirk@mainsoft.com>
+
+       * ConfigurationElementCollection.cs: fixed BaseAdd, looking for
+       identical element when collection type is not alternate
+
+2006-12-27  Vladimir Krasnov  <vladimirk@mainsoft.com>
+
+       * ConnectionStringSettingsCollection.cs: made connection string key
+       case insensitive
+
+2006-12-27  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * ConfigurationElementCollection.cs : fixed BaseAdd() with
+         throwIfExists to not raise an error for identical element
+         but for different element which shares the same key. Fix by
+         Konstantin Triger.
+
+2006-12-21  Vladimir Krasnov  <vladimirk@mainsoft.com>
+
+       * ConfigurationProperty.cs: fixed DefaultValue of type Enum
+
+2006-12-10  Konstantin Triger <kostat@mainsoft.com>
+
+       * ConfigurationElement.cs: Delegate parameter checking and default
+               assigning to Configuratin property.
+       * ConfigurationProperty.cs:
+               Ensure the TypeConvert and Validator always exist.
+               Ensure the primitive types are properly initialized.
+
+2006-12-09  Vladimir Krasnov  <vladimirk@mainsoft.com>
+
+       * ConfigurationElementCollection.cs
+       * ConfigurationRemoveElement.cs: fixed key for <remove> element in
+       ConfigurationRemoveElement class
+
+2006-11-28  Marek Habersack  <grendello@gmail.com>
+
+       * SectionGroupInfo.cs: Implement merging of section groups with
+       the same names and parents.
+
+       * ConfigInfo.cs: Add an abstract method for merging sections.
+
+       * SectionInfo.cs: Add implementation of an abstract base method
+
+2006-08-23  Konstantin Triger <kostat@mainsoft.com>
+
+       * SectionInfo.cs: refactoring - remove unneeded bool? usage.
+       
+2006-11-05  Vladimir Krasnov  <vladimirk@mainsoft.com>
+
+       * added: ConfigurationRemoveElement.cs, common element for <remove>
+       * ConnectionStringSettingsCollection.cs: reverted last fix for
+       <remove> element
+       * ConfigurationElementCollection.cs: fixed the way that
+       OnDeserializeUnrecognizedElement method handles <remove> element
+
+2006-11-02  Vladimir Krasnov  <vladimirk@mainsoft.com>
+
+       * ConfigurationElement.cs: typo in DefaultCollectionProperty
+       method
+
+2006-10-30  Joel Reed <joel.reed@ddiworld.com>
+
+       * NameValueConfigurationCollection.cs: Implement the Properties
+       property. 
+
+2006-08-23  Konstantin Triger <kostat@mainsoft.com>
+
+       * ConfigurationLocation.cs: do not read root element, correctly close stream.
+       * Configuration.cs: use ReadData for nested content to throw if location
+               elements are encounterd.
+               In constructor taking parent Configurqation: do not call Init and so avoid
+               rereading config file.
+
+2006-09-05  Vladimir Krasnov  <vladimirk@mainsoft.com>
+
+       * NameValueConfigurationElement.cs: fixed functionality
+       * ConfigurationElementCollection.cs,
+       ConnectionStringSettingsCollection.cs: fixed <remove> element in
+       connectionStrings section
+
+2006-08-23  Konstantin Triger <kostat@mainsoft.com>
+
+       * ConfigurationSection.cs: for net 1.1 SectionHandlers: return null in case
+               RawXml is null, as net 1.1 does.
+
+2006-08-17  Vladimir Krasnov  <vladimirk@mainsoft.com>
+
+       * ConfigurationFileMap.cs: added TARGET_JVM on not supported members
+       in grasshopper
+
+2006-07-07  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * ConfigurationManager.cs : OpenExeConfiguration(null) should still
+         work. This is required for embedded scenario.
+
+2006-06-10  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * SectionGroupInfo.cs : skip <dllmap> in configuration.
+
+2006-05-14  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * ConfigurationManager.cs: since ConfigurationSystem is different
+         for web.config, cast from ConfigurationSection to runtime object
+         should be done at GetSection().
+         This really fixed bug #78372.
+
+2006-05-12  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * Configuration.cs : configPath is null for machine.config, so don't
+         use it. Use streamName instead. To my understanding, this should
+         fix bug #78372.
+
+2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * ConnectionStringSettings.cs : it seems that "name" property
+         could be null i.e. there is no StringValidator.
+       * StringValidator.cs : allow null.
+
+2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * ConfigurationManager.cs : use GetCallingAssembly() instead of
+         GetEntryAssembly() which possibly returns null (e.g. nunit) in
+         OpenExeConfiguration(). Several nunit test failures are gone.
+
+2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * ConnectionStringSettings.cs : oops, this API fix broke standalone
+         test.
+
+2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * ConfigurationElement.cs,
+         ConfigurationErrorsException.cs,
+         ConfigurationUserLevel.cs,
+         ConfigurationPropertyOptions.cs,
+         ConnectionStringSettings.cs : assorted minor corcompare fixes.
+
+2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * Configuration.cs : some kind of refactoring is absolutely needed
+         here. Reuse RawXml from parentSection when data was not available
+         on current section. This should fix bug #78353.
+
+2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * ConfigurationElement.cs,
+         DefaultSection.cs :
+         in some cases RawXml was set null string, so skip such cases.
+       * Configuration.cs : support IConfigurationSectionHandler here.
+       * ConfigurationManager.cs : GetSection() now returns name value
+         collection, not a section.
+       * ConfigurationSection.cs : added SectionHandler for
+         IConfigurationSectionHandler support, and use its Create() in
+         GetRuntimeObject().
+       * ClientConfigurationSystem.cs :
+         use GetRuntimeObject() in GetSection(). Thus now
+         ConfigurationManager.GetSection() returns a runtime object.
+         Fixed bug #78337.
+
+2006-04-28  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * SectionGroupInfo.cs :
+         sections which are defined in sectionGroups could be directly
+         referenced, so search corresponding section recursively.
+       * DefaultSection.cs : It does not reject unrecognized contents.
+
+2006-04-26  Chris Toshok  <toshok@ximian.com>
+
+       * SectionInformation.cs (.ctor): add MonoTODO about the default
+       value for require_permission.
+       (RequirePermission): implement the getter/setter for this so
+       Atsushi's previous commit doesn't break everything :)
+
+2006-04-26  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * Configuration.cs,
+         SectionInfo.cs : added support for "requirePermission" attribute
+         in "section" element. This fixes bug #77957.
+
+2006-04-25  Chris Toshok  <toshok@ximian.com>
+
+       * ConfigurationElementCollection.cs (Reset): it makes no sense to
+       pass the typename to CreateNewElementInternal.  the argument is
+       the elementname. pass null instead.
+       (Unmerge): same.
+
+2006-02-01  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * ConfigurationElement.cs : ListErrors() and SetPropertyValue()
+         are protected.
+       * ConfigurationSection.cs : the .ctor() is protected.
+       * ConfigurationElementCollection.cs : CollectionType is public.
+         Count and BaseAdd() are not virtual.
+       * ConfigurationPropertyCollection.cs : Count is not virtual.
+
+2006-02-01  Chris Toshok  <toshok@ximian.com>
+
+       * ConfigurationElement.cs: revert the patch that stores and writes
+       out xmlns attributes for all elements.
+
+       * ClientConfigurationSystem.cs: SupportsUserConfig == false.
+
+       * AppSettingsSection.cs (GetRuntimeObject): call col.SetReadOnly()
+       only if SupportsUserConfig != true.
+
+       * ConfigurationManager.cs (ConfigurationSystem): add a property
+       like ConfigurationFactory, and use it instead of the private field
+       throughout.
+
+2006-01-26  Chris Toshok  <toshok@ximian.com>
+
+       * SectionGroupInfo.cs (ReadContent): handle "location" (seemingly)
+       correctly.
+
+       * InternalConfigurationRoot.cs: misc logical additions.  still
+       isn't useful.
+
+       * ConfigurationManager.cs (OpenExeConfigurationInternal): throw an
+       exception if both calling_assembly and exePath are null.  Allow
+       the exePath to be a path to a config file as well, checking to see
+       if it ends in .config before appending.
+       (OpenExeConfiguration): stop blindly passing
+       Assembly.GetCallingAssembly.  I'm assuming this will likely break
+       .dll.config usage.  need to investigate that (and write more unit
+       tests.)
+       (GetSection): call configSystem.GetSection.
+       (RefreshSection): call configSystem.RefreshSection.
+       (ChangeConfigurationSystem): modeled after the
+       ConfigurationSettings System.Web hack - allow
+       WebConfigurationManager to replace the current
+       IInternalConfigSystem.
+
+       * InternalConfigurationHost.cs (InternalConfigurationHost): make
+       abstract, and remove all the NotImplenmentedException's.
+
+       * ConfigurationElement.cs (DeserializeElement): store off the xml
+       namespace if there is one.
+       (SerializeElement): write out the namespace if there was one.
+
+       * ClientConfigurationSystem.cs: new class, based on some stack
+       traces I've seen in tests.  Kinda (well, not *kinda*..) hacky.
+
+       * Configuration.cs (NamespaceDeclared): implement.
+       (Load): don't swallow all exceptions, just the ones raised when we
+       open the stream for reading.
+       (ReadConfigFile): handle xmlns.
+
 2006-01-25  Chris Toshok  <toshok@ximian.com>
 
        * ConfigInfo.cs (ThrowException): throw a
        TimeSpanConfigurationProperty.cs, TimeSpanPropertyFlags.cs
        TimeSpanSerializedFormat.cs:
 
-       Moved from the System assembly.
\ No newline at end of file
+       Moved from the System assembly.