+2010-07-27 Atsushi Enomoto <atsushi@ximian.com>
+
+ * ConfigurationPropertyCollection.cs, PropertyInformation.cs:
+ add null check to detect bogus configuration early.
+
+2010-01-09 Marek Habersack <mhabersack@novell.com>
+
+ * ConfigurationLocation.cs: trailing / characters are removed from
+ the path.
+
+ * Configuration.cs: instances created for locations inherit
+ ConfigPath from their containing document.
+ Host.GetConfigPathFromLocationSubPath must be called with current
+ instance's configPath, not LocationConfigPath.
+ Locations are sought for using paths relative to the current
+ instance's configPath, not to the root path.
+ All of the above is part of fix for bug #568441
+
+2009-12-14 Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+ * SectionInformation.cs: ConfigSource should never be null, but empty.
+ Also, the Type property should throw an argument exception if the
+ new value is null or empty.
+ Fixes #458185.
+
+2009-10-23 Gonzalo Paniagua Javier <gonzalo@novell.com>
+
+ * Configuration.cs: make this work again with bundled configuration
+ files. Fixes bug #495957. Patch from Tor Lillqvist.
+
+2009-07-17 Gonzalo Paniagua Javier <gonzalo@novell.com>
+
+ * ConfigurationElement.cs: don't skip xml nodes when reading 2
+ ConfigurationElement in a row. Patch by Greg Smolyn that fixes bug
+ #521231.
+
+2009-07-15 Marek Habersack <mhabersack@novell.com>
+
+ * Configuration.cs: explicitly flush the stream when writing XML
+ data. Part of fix for bug #522017
+
+2009-07-14 Marek Habersack <mhabersack@novell.com>
+
+ * ConfigurationSaveEventArgs.cs, ConfigurationSaveEventHandler.cs:
+ added
+
+ * Configuration.cs: added two internal events - SaveStart and
+ SaveEnd. They are used by System.Web's configuration system to
+ suppress application reloads when configuration is modified and
+ saved from within a web application. It is necessary to use events
+ since there is no guarantee the web application will use
+ WebConfigurationManager (and thus WebConfigurationHost) for
+ writing.
+
+2009-06-08 Marek Habersack <mhabersack@novell.com>
+
+ * ConfigurationLocation.cs: if the path passed to constructor
+ starts with any of ' ' '.' '/' or '\', throw an exception. Fixes
+ bug #510735
+
+2008-12-22 Gonzalo Paniagua Javier <gonzalo@novell.com>
+
+ * Configuration.cs: don't try to open the file if we know it does not
+ exist. Also, don't hide the actual exception in case there's a problem
+ opening the configuration file.
+
+2008-11-15 Gonzalo Paniagua Javier <gonzalo@novell.com>
+
+ * ConfigurationManager.cs: the config file name is arbitrary.
+ (Standalone test t46)
+
+2008-11-10 Gonzalo Paniagua Javier <gonzalo@novell.com>
+
+ * ConfigurationManager.cs: when we're dealing with an EXE hosted
+ application, the configuration file is the one for the AppDomain,
+ otherwise we might try to get a config file for a dll. Fixes the
+ regression in 2.0 sys.config.
+
+2008-07-09 Marek Habersack <mhabersack@novell.com>
+
+ * ConfigurationManager.cs: implemented a work-around for
+ OpenExeConfiguration ("") not working with ASP.NET apps properly.
+
+2008-07-07 Rodrigo Kumpera <rkumpera@novell.com>
+
+ * ConfigurationManager.cs: Return the right path if the calling assembly is
+ not null. This happens when ConfigurationSession::GetRuntimeObject() is
+ called, SectionHandler != null and the handler itself calls
+ OpenExeConfigurationInternal ("").
+
+2008-07-07 Rodrigo Kumpera <rkumpera@novell.com>
+
+ * ClientConfigurationSystem.cs:
+ * ConfigurationManager.cs: Reaply the patch from Gert.
+ This change doesn't contain any fix to to not clutter
+ the commit history.
+
+2008-07-07 Rodrigo Kumpera <rkumpera@novell.com>
+
+ * ClientConfigurationSystem.cs:
+ * ConfigurationManager.cs: The previous patch since it
+ causes a regression. It will remain reverted until we figure
+ out what's wrong and how to fix it.
+
+2008-07-02 Gert Driesen <drieseng@users.sourceforge.net>
+
+ * ClientConfigurationSystem.cs: Moved logic for defaulting to
+ configuration file of AppDomain to OpenExeConfigurationInternal.
+ * ConfigurationManager.cs (OpenExeConfigurationInternal):
+ Allow calling_assembly and exePath to be null. When userLevel is None,
+ default to configuration file of AppDomain if exePath is null or empty.
+ When exePath is specified, resolve it to absolute path and throw
+ ConfigurationErrorsException if exePath does not exist and add
+ .config extension to get config file name if exePath does exist.
+
+2008-06-27 Atsushi Enomoto <atsushi@ximian.com>
+
+ * SectionInfo.cs, Configuration.cs, ConfigInfo.cs,
+ SectionGroupInfo.cs :
+ eliminate XmlTextReader, first stage.
+
+2008-06-27 Atsushi Enomoto <atsushi@ximian.com>
+
+ * ConfigurationErrorsException.cs : recover from
+ silly change that tries to prevent debuggin by
+ decreasing error location information.
+
+2008-06-26 Gert Driesen <drieseng@users.sourceforge.net>
+
+ * ConfigurationElement.cs: Use ConfigurationErrorsException instead of
+ ConfigurationException, and pass reader to ConfigurationErrorsException
+ ctor to allow for file/linenumber info in exception message.
+ * ConfigurationErrorsException.cs: Removed local bareMessage field, and
+ use base.BareMessage field instead. Fixed Message property to only add
+ filename if not null or zero-length string, and only add line if not
+ zero. In GetFilename/GetLineNumber overloads, only try to get info if
+ node/reader implements IConfigErrorInfo.
+ * ConfigurationSection.cs: Use ConfigXmlTextReader instead of
+ XmlTextReader to allow for file/linenumber info in exception messages.
+ * ConfigXmlTextReader.cs: Added XmlTextReader that implements
+ IConfigErrorInfo.
+ * ConfigurationLocation.cs: Use ConfigXmlTextReader instead of
+ XmlTextReader to allow for file/linenumber info in exception messages.
+ * ClientConfigurationSystem.cs: Perform lazy initialization and
+ wrap exceptions in ConfigurationErrorsException. Fixes standalone test
+ t28.
+ * Configuration.cs: Use ConfigXmlTextReader instead of XmlTextReader
+ to allow for file/linenumber info in exception messages.
+ * ConfigInfo.cs: Fixed ThrowException to use file/number info available
+ in XmlTextReader for exception message.
+ * AppSettingsSection.cs: Use ConfigXmlTextReader instead of
+ XmlTextReader to allow for file/linenumber info in exception messages.
+
+2008-06-19 Jb Evain <jbevain@novell.com>
+
+ * ConfigurationPermissionAttribute.cs (CreatePermission): implement.
+
+2008-05-28 Marek Habersack <mhabersack@novell.com>
+
+ * Configuration.cs: set the ConfigContext when getting
+ and instance of a section. Fix for bug #325128.
+
+ * ConfigurationSection.cs: added an internal property -
+ ConfigContext used to supply the HttpContext to the Create
+ method of SectionHandler when called from GetRuntimeObject.
+ Fix for bug #325128.
+
+ * InternalConfiguationHost.cs: changed CreateDeprecatedConfigContext
+ to return null rather than throwing a NotImplementedException.
+ Fix for bug #325128.
+
+ * All patches above contributed by James Fitzsimons <james.fitzsimons@gmail.com>,
+ thanks!
+
+2008-05-18 Sebastien Pouliot <sebastien@ximian.com>
+
+ * SectionGroupInfo.cs: Use String.IsNullOrEmpty inside 2.0 code.
+ [Found using Gendarme]
+
+2008-05-11 Roei Erez <roeie@mainsoft.com>
+
+ * SectionGroupInfo.cs: fix loading a SectionGroup without sections as childern.
+
+2008-05-05 Gonzalo Paniagua Javier <gonzalo.mono@gmail.com>
+
+ * ConfigurationElement.cs: don't fail when a mandatory property is a
+ configuration element itself.
+
+2008-04-30 Marek Habersack <mhabersack@novell.com>
+
+ * ConfigurationElement.cs: HasLocalModifications considers a
+ property modifed locally if its origin is SetHere and it's been
+ marked as modified.
+
+2008-03-20 Igor Zelmanovich <igorz@mainsoft.com>
+
+ * Configuration.cs:
+ * ConfigurationElement.cs:
+ implement EvaluationContext property.
+
+2008-03-01 Marek Habersack <mhabersack@novell.com>
+
+ * SectionInformation.cs: added an internal property -
+ ConfigFilePath, used when deserializing a section in
+ ConfigurationSection.GetRuntimeObject.
+
+ * Configuration.cs: set SectionInformation.ConfigFilePath when
+ getting an instance of a section.
+
+ * ConfigurationSection.cs: support the 'configSource' attribute
+ when section is read through GetRuntimeObject.
+
+2008-02-21 Marek Habersack <mhabersack@novell.com>
+
+ * Configuration.cs: if the section being deserialized uses the
+ configSource attribute, call the section's DeserializeConfigSource
+ method.
+
+ * SectionInfo.cs: WriteData takes care of writing the section data
+ to the configSource file, if any.
+
+ * ConfigurationSection.cs: moved reading of the configSource
+ external data file to a separate internal method,
+ DeserializeConfigSource. Section's source config file path is now
+ used to find the configSource.
+ SerializeSection now doesn't write the section content to the
+ passed writer if configSource was used. Writing of the section
+ data is now done in SectionInfo.
+
+ * ConfigurationElement.cs: added a new method -
+ HasLocalModifications which returns true of any of the element
+ properties have been set locally on that element.
+
+2008-02-20 Marek Habersack <mhabersack@novell.com>
+
+ * ConfigurationSection.cs: support the "configSource" attribute
+ when deserializing a section. Contents of the file (if it exists)
+ replaces the previous section contents.
+
+ * ConfigurationElement.cs: ignore the "configSource" attribute if we're a
+ ConfigurationSection instance.
+ HasValues () returns true only if any of the properties has the
+ origin set to SetHere.
+
+2008-02-07 Konstantin Triger <kostat@mainsoft.com>
+
+ * ClientConfigurationSystem.cs: performance: refactor out the Configuration
+ object construction from GetSection() to the ctor.
+
+2008-01-16 Zoltan Varga <vargaz@gmail.com>
+
+ * ConfigurationElement.cs: Allow non-public constructors. Fixes #353554.
+
+ * PropertyInformation.cs: Allow non-public constructors. Fixes #353557.
+
+ * ConfigurationElement.cs: Consider non-public properties as well. Fixes
+ #353553.
+
+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