1 2006-11-28 Marek Habersack <grendello@gmail.com>
3 * SectionGroupInfo.cs: Implement merging of section groups with
4 the same names and parents.
6 * ConfigInfo.cs: Add an abstract method for merging sections.
8 * SectionInfo.cs: Add implementation of an abstract base method
10 2006-08-23 Konstantin Triger <kostat@mainsoft.com>
12 * SectionInfo.cs: refactoring - remove unneeded bool? usage.
14 2006-11-05 Vladimir Krasnov <vladimirk@mainsoft.com>
16 * added: ConfigurationRemoveElement.cs, common element for <remove>
17 * ConnectionStringSettingsCollection.cs: reverted last fix for
19 * ConfigurationElementCollection.cs: fixed the way that
20 OnDeserializeUnrecognizedElement method handles <remove> element
22 2006-11-02 Vladimir Krasnov <vladimirk@mainsoft.com>
24 * ConfigurationElement.cs: typo in DefaultCollectionProperty
27 2006-10-30 Joel Reed <joel.reed@ddiworld.com>
29 * NameValueConfigurationCollection.cs: Implement the Properties
32 2006-08-23 Konstantin Triger <kostat@mainsoft.com>
34 * ConfigurationLocation.cs: do not read root element, correctly close stream.
35 * Configuration.cs: use ReadData for nested content to throw if location
36 elements are encounterd.
37 In constructor taking parent Configurqation: do not call Init and so avoid
38 rereading config file.
40 2006-09-05 Vladimir Krasnov <vladimirk@mainsoft.com>
42 * NameValueConfigurationElement.cs: fixed functionality
43 * ConfigurationElementCollection.cs,
44 ConnectionStringSettingsCollection.cs: fixed <remove> element in
45 connectionStrings section
47 2006-08-23 Konstantin Triger <kostat@mainsoft.com>
49 * ConfigurationSection.cs: for net 1.1 SectionHandlers: return null in case
50 RawXml is null, as net 1.1 does.
52 2006-08-17 Vladimir Krasnov <vladimirk@mainsoft.com>
54 * ConfigurationFileMap.cs: added TARGET_JVM on not supported members
57 2006-07-07 Atsushi Enomoto <atsushi@ximian.com>
59 * ConfigurationManager.cs : OpenExeConfiguration(null) should still
60 work. This is required for embedded scenario.
62 2006-06-10 Atsushi Enomoto <atsushi@ximian.com>
64 * SectionGroupInfo.cs : skip <dllmap> in configuration.
66 2006-05-14 Atsushi Enomoto <atsushi@ximian.com>
68 * ConfigurationManager.cs: since ConfigurationSystem is different
69 for web.config, cast from ConfigurationSection to runtime object
70 should be done at GetSection().
71 This really fixed bug #78372.
73 2006-05-12 Atsushi Enomoto <atsushi@ximian.com>
75 * Configuration.cs : configPath is null for machine.config, so don't
76 use it. Use streamName instead. To my understanding, this should
79 2006-05-10 Atsushi Enomoto <atsushi@ximian.com>
81 * ConnectionStringSettings.cs : it seems that "name" property
82 could be null i.e. there is no StringValidator.
83 * StringValidator.cs : allow null.
85 2006-05-10 Atsushi Enomoto <atsushi@ximian.com>
87 * ConfigurationManager.cs : use GetCallingAssembly() instead of
88 GetEntryAssembly() which possibly returns null (e.g. nunit) in
89 OpenExeConfiguration(). Several nunit test failures are gone.
91 2006-05-10 Atsushi Enomoto <atsushi@ximian.com>
93 * ConnectionStringSettings.cs : oops, this API fix broke standalone
96 2006-05-10 Atsushi Enomoto <atsushi@ximian.com>
98 * ConfigurationElement.cs,
99 ConfigurationErrorsException.cs,
100 ConfigurationUserLevel.cs,
101 ConfigurationPropertyOptions.cs,
102 ConnectionStringSettings.cs : assorted minor corcompare fixes.
104 2006-05-10 Atsushi Enomoto <atsushi@ximian.com>
106 * Configuration.cs : some kind of refactoring is absolutely needed
107 here. Reuse RawXml from parentSection when data was not available
108 on current section. This should fix bug #78353.
110 2006-05-10 Atsushi Enomoto <atsushi@ximian.com>
112 * ConfigurationElement.cs,
114 in some cases RawXml was set null string, so skip such cases.
115 * Configuration.cs : support IConfigurationSectionHandler here.
116 * ConfigurationManager.cs : GetSection() now returns name value
117 collection, not a section.
118 * ConfigurationSection.cs : added SectionHandler for
119 IConfigurationSectionHandler support, and use its Create() in
121 * ClientConfigurationSystem.cs :
122 use GetRuntimeObject() in GetSection(). Thus now
123 ConfigurationManager.GetSection() returns a runtime object.
126 2006-04-28 Atsushi Enomoto <atsushi@ximian.com>
128 * SectionGroupInfo.cs :
129 sections which are defined in sectionGroups could be directly
130 referenced, so search corresponding section recursively.
131 * DefaultSection.cs : It does not reject unrecognized contents.
133 2006-04-26 Chris Toshok <toshok@ximian.com>
135 * SectionInformation.cs (.ctor): add MonoTODO about the default
136 value for require_permission.
137 (RequirePermission): implement the getter/setter for this so
138 Atsushi's previous commit doesn't break everything :)
140 2006-04-26 Atsushi Enomoto <atsushi@ximian.com>
143 SectionInfo.cs : added support for "requirePermission" attribute
144 in "section" element. This fixes bug #77957.
146 2006-04-25 Chris Toshok <toshok@ximian.com>
148 * ConfigurationElementCollection.cs (Reset): it makes no sense to
149 pass the typename to CreateNewElementInternal. the argument is
150 the elementname. pass null instead.
153 2006-02-01 Atsushi Enomoto <atsushi@ximian.com>
155 * ConfigurationElement.cs : ListErrors() and SetPropertyValue()
157 * ConfigurationSection.cs : the .ctor() is protected.
158 * ConfigurationElementCollection.cs : CollectionType is public.
159 Count and BaseAdd() are not virtual.
160 * ConfigurationPropertyCollection.cs : Count is not virtual.
162 2006-02-01 Chris Toshok <toshok@ximian.com>
164 * ConfigurationElement.cs: revert the patch that stores and writes
165 out xmlns attributes for all elements.
167 * ClientConfigurationSystem.cs: SupportsUserConfig == false.
169 * AppSettingsSection.cs (GetRuntimeObject): call col.SetReadOnly()
170 only if SupportsUserConfig != true.
172 * ConfigurationManager.cs (ConfigurationSystem): add a property
173 like ConfigurationFactory, and use it instead of the private field
176 2006-01-26 Chris Toshok <toshok@ximian.com>
178 * SectionGroupInfo.cs (ReadContent): handle "location" (seemingly)
181 * InternalConfigurationRoot.cs: misc logical additions. still
184 * ConfigurationManager.cs (OpenExeConfigurationInternal): throw an
185 exception if both calling_assembly and exePath are null. Allow
186 the exePath to be a path to a config file as well, checking to see
187 if it ends in .config before appending.
188 (OpenExeConfiguration): stop blindly passing
189 Assembly.GetCallingAssembly. I'm assuming this will likely break
190 .dll.config usage. need to investigate that (and write more unit
192 (GetSection): call configSystem.GetSection.
193 (RefreshSection): call configSystem.RefreshSection.
194 (ChangeConfigurationSystem): modeled after the
195 ConfigurationSettings System.Web hack - allow
196 WebConfigurationManager to replace the current
197 IInternalConfigSystem.
199 * InternalConfigurationHost.cs (InternalConfigurationHost): make
200 abstract, and remove all the NotImplenmentedException's.
202 * ConfigurationElement.cs (DeserializeElement): store off the xml
203 namespace if there is one.
204 (SerializeElement): write out the namespace if there was one.
206 * ClientConfigurationSystem.cs: new class, based on some stack
207 traces I've seen in tests. Kinda (well, not *kinda*..) hacky.
209 * Configuration.cs (NamespaceDeclared): implement.
210 (Load): don't swallow all exceptions, just the ones raised when we
211 open the stream for reading.
212 (ReadConfigFile): handle xmlns.
214 2006-01-25 Chris Toshok <toshok@ximian.com>
216 * ConfigInfo.cs (ThrowException): throw a
217 ConfigurationErrorsException, not a ConfigurationException.
219 * SectionGroupInfo.cs (ReadContent): throw an exception
220 unconditionally if we see a <location>. they aren't valid in
223 2006-01-25 Chris Toshok <toshok@ximian.com>
225 * KeyValueInternalCollection.cs: don't use a nested collection,
226 just defer to our base class. This fixes usage of
227 ConfigurationManager.AppSettings.Keys.
229 2006-01-13 Chris Toshok <toshok@ximian.com>
231 * AppSettingsSection.cs (GetRuntimeObject): only access
232 Settings[key] once per iteration.
234 2006-01-09 Chris Toshok <toshok@ximian.com>
236 * ConfigurationManager.cs (AppSettings): just return
237 AppSettingsSection.GetRuntimeObject() here.
239 * AppSettingsSection.cs: fix the "file" property to match dumper
241 (GetRuntimeObject): this returns a KeyValueInternalCollection in
244 2006-01-09 Chris Toshok <toshok@ximian.com>
246 * ElementInformation.cs (Validator): if propertyInfo == null,
247 return a DefaultValidator instance.
249 2006-01-09 Chris Toshok <toshok@ximian.com>
251 * AppSettingsSection.cs (.cctor): specify null for
254 * ProtectedProviderSettings.cs (.cctor): specify null for
257 2006-01-03 Chris Toshok <toshok@ximian.com>
259 * Configuration.cs (SaveAs): open with FileMode.OpenOrCreate so we
260 can save to a new file.
261 (CreateSection): don't bother to set the section information's
262 Name here. we'll do it in SectionInfo.CreateInstance.
264 * ProtectedConfiguration.cs (Section): new static property so we
265 can remove all the GetSection calls.
266 (GetProvider): load a named provider, optionally throwing an
267 exception if it's not found.
269 * InternalConfigurationHost.cs (EncryptSection, DecryptSection):
270 make these private interface implementations, and call
271 protectedSection.{EncryptSection,DecryptSection}.
273 * ProtectedConfigurationSection.cs (EncryptSection,
274 DecryptSection): add these two calls. They really shouldn't be
275 here, but I saw them in an MS stack trace and thought "why not?".
277 * ConfigurationSection.cs (SectionInformation): don't set
278 attributes here, that's done in SectionInfo.CreateInstance.
279 (DeserializeSection): shoehorn in the decryption stuff here. It
280 doesn't belong here, and I've added a MonoTODO about it. It
281 should live someplace like SectionInfo.ReadData (which would make
282 it similar to the encryption stuff in .WriteData).
284 * SectionInformation.cs (IsProtected): remove the special flag,
285 just return true if we have a non-null protection_provider.
286 (ProtectSection): do nothing but try to instantiate the named
288 (UnprotectSection): null out protection_provider.
290 * DpapiProtectedConfigurationProvider.cs: move the
291 NotSupportedExceptions to Decrypt/Encrypt so we don't bomb out
292 when parsing our machine.config file.
294 * RsaProtectedConfigurationProvider.cs: initial implementation.
295 much is missing (OAEP support, key importing, adding/deleting
296 keys), but it can be used.
298 2006-01-02 Chris Toshok <toshok@ximian.com>
300 * RsaProtectedConfigurationProvider.cs: implement the
301 CspProviderName and UseOAEP properties..
303 2006-01-02 Chris Toshok <toshok@ximian.com>
305 * ProtectedConfigurationSection.cs: flesh this out (and add logic
306 to instantiate providers, based on some of the standalone test
307 exception stack traces.)
309 * ProtectedConfiguration.cs: new implementation.
311 * ProtectedConfigurationProviderCollection.cs: new
314 * ProtectedProviderSettings.cs: new implementation.
316 * ProtectedConfigurationProvider.cs: trim the superclass's name.
318 * RsaProtectedConfigurationProvider.cs: stubbed, unimplemented.
320 * DpapiProtectedConfigurationProvider.cs: add stubbed
321 implementation that throws NotSupportedException telling people
322 they should be using RsaProtectedConfigurationProvider.
324 2006-01-02 Chris Toshok <toshok@ximian.com>
326 * DefaultSection.cs (Properties): implement.
328 * IgnoreSection.cs: move from lazily creating the properties
329 collection to sharing a single one across all instances.
331 * ConfigurationLockCollection.cs (IsReadOnly): fix compiler warning.
333 * ConfigurationElementCollection.cs (BaseAdd) remove logic to
334 remove an old matching element.
335 (BaseGetKey): throw an exception if @index is out of range.
337 * SectionInformation.cs (SectionName): just return name, like Name
338 does.. redundant, but it matches tests.
339 (GetRawXml): implement.
340 (SetRawXml): implement.
342 * ConfigurationSection.cs (SectionInformation): fill in
343 sectionInformation.Type before returning.
344 (DeserializeSection): save off the raw xml to our
347 * ConfigurationElement.cs (LockItem): implement.
348 (DeserializeElement): add support for the "lockItem" attribute.
350 2005-12-16 Chris Toshok <toshok@ximian.com>
352 * ConfigurationLockCollection.cs (Add): only add the name if it's
354 (IsReadOnly): always return false for the time being, in the
355 non-exceptional case.
357 2005-12-15 Chris Toshok <toshok@ximian.com>
359 * ConfigurationElement.cs (LockAllAttributesExcept): implement.
360 (LockAllElementsExcept): implement.
361 (DeserializeElement): handle the built-in attributes (lock* for
364 2005-12-15 Chris Toshok <toshok@ximian.com>
366 * ConfigurationLockCollection.cs (..ctor): don't call Populate.
368 (CheckName): make sure the passes in name is valid for this type
370 (Add): call CheckName, and set is_modified to true.
371 (Clear): set is_modified.
372 (IsReadOnly): add plausable implementation, including exception in
373 the case where the name isn't found.
374 (Remove): set is_modified.
375 (SetFromList): implement.
376 (get_AttributeList): implement.
377 (set_IsModified): add internal setter so we can clear the modified
380 2005-12-12 Chris Toshok <toshok@ximian.com>
382 * AppSettingsSection.cs (DeserializeElement): provide rather naive
383 version of the file="" handling. It's enough to make our tests
386 2005-12-11 Chris Toshok <toshok@ximian.com>
388 * ConnectionStringsSection.cs (..cctor): use "" instead of null
389 for the name of the default collection.
391 * AppSettingsSection.cs (..cctor): create a property for the
393 (DeserializeElement): call base.DeserializeElement.
394 (File): index off the property, not the name.
395 (Settings): don't use an private variable here, use
398 * ConfigurationManager.cs (GetSection): GetEntryAssembly returns
399 null for new app domains. so deal with this by calling
400 GetCallingAssembly if it's null. This is probably still wrong but
401 it doesn't NRE in xsp2.
402 (AppSettings): remove MonoTODO.
404 * KeyValueConfigurationElement.cs (..ctor): new method, create the
405 ConfigurationProperty's and the collection here.
406 (.ctor): add internal arg-less ctor.
407 (Key): use keyProp instead of "key".
408 (Value): use vlaueProp instead of "value".
409 (Properties): return our class's properties.
411 * KeyValueConfigurationCollection.cs (CreateNewElement): use the
413 (GetElementKey): re-enable the BaseIndexOf test.
415 2005-12-02 Chris Toshok <toshok@ximian.com>
417 * Configuration.cs (Save): call WriteStartDocument.
419 * ConnectionStringSettingsCollection.cs (CreateNewElement): use
420 parameter-less ctor to keep from generating exceptions when using
423 2005-12-02 Chris Toshok <toshok@ximian.com>
425 * ConnectionStringSettings.cs: tabify, fix default values, and add
426 a string validator for "name".
428 2005-12-02 Chris Toshok <toshok@ximian.com>
430 * CommaDelimitedStringCollectionConverter.cs (ConvertTo): change
431 the type check away from an exact check for
432 CommaDelimitedStringCollection to an assignable test from
433 StringCollection. This is due to the fact that AuthorizationRule
434 doesn't create CommaDelimitedStringCollections, for some odd
435 reason. It uses StringCollections.
437 * PropertyInformation.cs (Value): remove the case for
438 IsDefaultCollection - it's not necessary, as the property is an
441 * ConnectionStringSettings.cs: fix formatting and remove some
444 * ConnectionStringSettingsCollection.cs: same.
446 * ConnectionStringsSection.cs: same.
448 * ConfigurationElement.cs (SerializeToXmlElement): don't write the
449 enclosing start/end elements if the elementName is null or "".
450 this fixes the case for the DefaultCollections (at least in the
451 case of connectionStrings).
453 * IgnoreSection.cs (Properties): remove the MonoTODO.
455 * SectionInfo.cs (WriteData): remove the "<!-- dd -->" output.
457 2005-11-28 Chris Toshok <toshok@ximian.com>
459 * ProviderSettings.cs: use ConfigurationProperty's to implement
462 2005-11-24 Chris Toshok <toshok@ximian.com>
464 * ConfigurationProperty.cs (Validate): add internal method.
466 2005-11-24 Chris Toshok <toshok@ximian.com>
468 * ConfigurationElement.cs (ElementProperty): make this protected
469 internal virtual instead of public.
470 (SetPropertyValue): add a validator call and a blurb about the
471 code based on information gleaned from tests.
472 (set_Item (string)): call SetPropertyValue in the setter.
474 2005-11-14 Chris Toshok <toshok@ximian.com>
476 * CommaDelimitedStringCollection.cs: reformat things a bit, and
477 flag ToString() as override.
479 * DefaultSection.cs: new stubbed out implementation.
481 * CommaDelimitedStringCollectionConverter.cs: new implementation.
483 2005-11-10 Chris Toshok <toshok@ximian.com>
485 * AppSettingsSection.cs (DeserializeElement): stop explicitly
486 calling Settings.DeserializeElement, as the DefaultCollection
489 * ConfigurationElement.cs (DeserializeElement): rework the loop
490 here so that we actually loop over all the content elements.
492 2005-11-09 Chris Toshok <toshok@ximian.com>
494 * ConfigurationElement.cs: Add support for DefaultCollection
497 * PropertyInformation.cs (PropertyInformation.Value): add case for
500 * SectionGroupInfo.cs (SectionGroupInfo.ReadConfig): when we read
501 a "type" attribute, make sure the cached System.Type is cleared.
503 2005-10-25 Chris Toshok <toshok@ximian.com>
505 * InfiniteTimeSpanConverter.cs: new implementation.
507 * InfiniteIntConverter.cs: new implementation.
509 * GenericEnumConverter.cs: new implementation.
511 * Configuration.cs: we don't need to check with "is" after we use
512 "as".. just check for null-ness.
514 * KeyValueConfigurationCollection.cs: GetElementKey should throw
515 NRE if element == null.
517 * CommaDelimitedStringCollection.cs: raise the correct exceptions
518 in the read only case, and return null from ToString if there are
521 2005-10-25 Chris Toshok <toshok@ximian.com>
523 * PositiveTimeSpanValidatorAttribute.cs: new implementation.
525 * PositiveTimeSpanValidator.cs: new implementation.
527 2005-10-24 Chris Toshok <toshok@ximian.com>
529 * TimeSpanSecondsOrInfiniteConverter.cs: new implementation.
531 * TypeNameConverter.cs: new implementation.
533 * WhiteSpaceTrimStringConverter.cs: new implementation.
535 2005-10-24 Chris Toshok <toshok@ximian.com>
537 * AppSettingsSection.cs (DeserializeElement, SerializeSection):
538 split the behavior based on if File == "". If it is, we do the
539 default. otherwise we throw NIE.
541 * ConnectionStringsSection.cs (DeserializeElement): we shouldn't
542 need this, but we do until the IsDefaultCollection stuff is fixed.
544 * ConfigurationElementCollection.cs
545 (OnDeserializeUnrecognizedElement): for clearElementName, make
546 sure we have no attributes.
548 * ConnectionStringSettingsCollection.cs (get_Properties): for now
549 just chain up to base.Properties.
551 * ConfigurationElement.cs (ReflectProperties): do the default
552 value/property type check in a more robust way, using
555 2005-10-24 Chris Toshok <toshok@ximian.com>
557 * ConfigurationElement.cs: treat
558 ConfigurationProperty.NoDefaultValue the same as null when we're
559 checking the default value's type. this fixes t13 and 14.
561 * ConnectionStringsSection.cs (ConnectionStrings): fix the
562 DefaultValue in the ConfigurationPropertyAttribute.
564 2005-10-24 Chris Toshok <toshok@ximian.com>
566 * KeyValueConfigurationCollection.cs (GetElementKey): sacrifice
567 one test to get another working. Return a valid key even if the
568 element is not in this collection.
569 (get_ThrowOnDuplicate): return false.
571 * ConfigurationElementCollection.cs (BaseAdd): if we're adding an
572 element with the same key, overwrite the old one (remove the old
573 one after inserting the new one). Also, re-enable the throwing of
574 exceptions if ThrowOnDuplicate == true.
576 2005-10-24 Chris Toshok <toshok@ximian.com>
578 * AppSettingsSection.cs (Settings): fix ConfigurationProperty
581 * ProtectedConfigurationSection.cs (Providers): same.
583 2005-10-12 Chris Toshok <toshok@ximian.com>
585 * ConfigurationPermission.cs: flesh out as per tests.
587 2005-10-11 Chris Toshok <toshok@ximian.com>
589 * ConfigurationProperty.cs: don't use null to mean no default
590 value, use NoDefaultValue.
592 2005-10-11 Chris Toshok <toshok@ximian.com>
594 * KeyValueConfigurationCollection.cs (GetElementKey): duh.
595 BaseGet calls GetElementKey, so we were hitting an infinite
596 recursion here. Use BaseIndexOf instead.
598 2005-10-07 Chris Toshok <toshok@ximian.com>
600 * InternalConfigurationHost.cs: some interface work, adding in the
603 * ConfigurationProperty.cs: remove debug spew.
605 * Configuration.cs: add NIE'd NamespaceDeclared property.
607 * ElementInformation.cs: add NIE'd Errors property.
609 * PropertyInformationCollection.cs: add NIE'd GetObjectData().
611 * ConfigurationManager.cs: quite a bit of new work here. Some
612 definie TODO's still though.
614 2005-10-07 Chris Toshok <toshok@ximian.com>
616 * ConfigurationErrorsException.cs (.ctor): for the (string)
617 overload, chain up to the base (string) ctor.
619 2005-10-07 Chris Toshok <toshok@ximian.com>
621 * ConfigurationElement.cs (ElementMap.ReflectProperties): make
622 sure the type of the default value is compatible with that of the
623 property itself, and throw ConfigurationErrorsException if they
624 don't match. Fixes t12.
626 2005-10-07 Chris Toshok <toshok@ximian.com>
628 * ConfigHelper.cs: remove some unused code.
630 * ConfigurationProperty.cs: disambiguate the ctor we chain to.
632 * ConfigurationElement.cs (ElementProperty): implement.
633 (ElementMap.ReflectProperties): make DefaultValidator the default
636 2005-10-06 Chris Toshok <toshok@ximian.com>
638 * KeyValueConfigurationElement.cs: uncomment out some stuff.
639 (Properties): just return base.Properties. Not sure why they
640 override this, as the base class's implementation passes our test.
642 * KeyValueConfigurationCollection.cs (Add): for the keyValue
643 overload, call keyValue.Init as the unit test stack traces
644 indicates that'9s where it's called. For the string,string
645 overload, just call the keyValue overload instead of calling
647 (CreateNewElement): just use the name/value ctor, and specify ""
649 (GetElementKey): this function always returns "" for elements that
650 haven't been added to the collection. Once theyre added, it seems
651 to always return keyValue.Key.
652 (Properties): the unit tests show this returns a 0 length
655 2005-10-05 Chris Toshok <toshok@ximian.com>
657 * ConfigurationPermissionAttribute.cs: stub out.
659 2005-10-05 Chris Toshok <toshok@ximian.com>
661 * TimeSpanMinutesOrInfiniteConverter.cs: fill in the
664 2005-10-05 Chris Toshok <toshok@ximian.com>
666 * TimeSpanSecondsConverter.cs: new implementation.
668 2005-10-05 Chris Toshok <toshok@ximian.com>
670 * TimeSpanMinutesConverter.cs: flesh out implementation.
672 * ConfigurationConverterBase.cs: make all subclasses work with
673 strings only, since that's what seems to manifest itself in the
676 2005-10-05 Chris Toshok <toshok@ximian.com>
678 * ConfigurationLockCollection.cs: add NIE'd AttributeList
681 * ConfigurationConverterBase.cs: add MonoTODO'd CanConvertFrom and
682 CanConvertTo methods.
684 * ConfigurationSectionGroup.cs: add NIE'd IsDeclared property.
686 * ProtectedConfigurationSection.cs: add NIE'd properties.
688 * ConfigurationElementCollection.cs: add MonoTODO'd IsReadOnly
689 and SetReadOnly methods, and have then chain up to the base class.
691 * KeyValueConfigurationCollection.cs: add the class level
692 ConfigurationCollectionAttribute, and add a NIE'ed Properties
695 * ProviderSettingsCollection.cs: add the class level
696 ConfigurationCollectionAttribute, and add a "new" keyword to the
697 this property. Also, nuke the Provider's property.
699 * SectionInformation.cs: add some NEI'd properties.
701 * ConfigurationSection.cs (ResetModified): leave the MonoTODO, but
702 chain up to base class's method instead of throwing NIE.
704 * ConnectionStringSettingsCollection.cs: add the class-level
705 ConfigurationCollectionAttribute, and add the unimplemented
708 * ConfigurationErrorsException.cs: flesh this out, and add a
709 pragma to disable the obsolete warnings from our base class.
711 * ProviderSettings.cs: add unimplemented Properties property.
713 * ConfigurationElement.cs: remove unnecessary
714 EvaluationInformation.
716 * InternalConfigurationRoot.cs: add unimplemented IsDesignTime
719 * ConfigurationProperty.cs: add a missing ctor.
721 * AppSettingsSection.cs: add missing "override" keyword.
723 * ConnectionStringsSection.cs: remove override.
725 * ConfigurationSectionCollection.cs: AllKeys -> Keys, and add
726 unimplemented GetObjectData override.
728 * ConfigurationSectionGroupCollection.cs: same.
730 * ConfigurationCollectionAttribute.cs: add missing CollectionType
733 2005-10-05 Chris Toshok <toshok@ximian.com>
735 * ConfigurationPermission.cs: new implementation.
737 * IgnoreSection.cs: new implementation.
739 2005-10-05 Chris Toshok <toshok@ximian.com>
741 * CommaDelimitedStringCollection.cs: new implementation.
743 2005-10-05 Chris Toshok <toshok@ximian.com>
745 * NameValueConfigurationCollection.cs: new implementation.
747 * NameValueConfigurationElement.cs: new implementation.
749 2005-10-05 Chris Toshok <toshok@ximian.com>
751 * ValidatorCallback.cs: new implementation.
753 * SubclassTypeValidator.cs, SubclassTypeValidatorAttribute.cs: new
756 * CallbackValidator.cs, CallbackValidatorAttribute.cs: new
759 * RegexStringValidator.cs, RegexStringValidatorAttribute.cs: new
762 * LongValidator.cs, LongValidatorAttribute.cs: new implementation.
764 * IntegerValidator.cs, IntegerValidatorAttribute.cs: new
767 * DefaultValidator.cs: new implementation.
769 2005-09-28 Chris Toshok <toshok@ximian.com>
771 * ConfigurationElementCollection.cs: more work on the "<clear />"
772 handling - just skip the element for now. this causes a failure
773 in one test ('<clear hi="bye" />' doesn't throw an exception when
774 it should), but it succeeds for collections that have required
777 * ConnectionStringSettings.cs: providerName isn't a required
780 * AppSettingsSection.cs (.cctor): initialize our "file" Property.
783 (GetRuntimeObject): call the base class method instead of just
786 * ConnectionStringsSection.cs: Add a hacky DeserializeElement
787 method here (that isn't in MS's) for the time being so we actually
788 deserialize our collection.
790 2005-09-28 Chris Toshok <toshok@ximian.com>
792 * KeyValueInternalCollection.cs: found this by way of a stack
793 trace in one of the tests. A NameValueCollection that wraps a
794 KeyValueConfigurationCollection.
796 * Configuration.cs (Init): save off configPath.
797 (EvaluationContext): new, mostly implemented.
798 (GetSectionInstance): use IgnoreSection instead of
800 (Load): don't fail when we can't load a file.
802 * IgnoreSection.cs: replace RuntimeOnlySection with this new
805 * RuntimeOnlySection.cs: nuke.
807 2005-09-27 Chris Toshok <toshok@ximian.com>
809 * TimeSpanMinutesOrInfiniteConverter.cs: this is sealed.
811 2005-09-27 Chris Toshok <toshok@ximian.com>
813 * ConfigurationProperty.cs: add IsDefaultCollection property.
815 2005-09-27 Chris Toshok <toshok@ximian.com>
817 * ConfigurationElementProperty.cs: new file.
819 * ConfigurationLockCollection.cs: new file.
821 * ConfigurationElementCollection.cs
822 (OnDeserializeUnrecognizedElement): make sure we consume the
823 <clear /> element so we don't into an endless loop.
825 * ConfigurationElement.cs: add a bunch of NIE's properties.
827 * ContextInformation.cs: Add NIE'ed IsMachineLevel property.
829 2005-09-23 Chris Toshok <toshok@ximian.com>
831 * AppSettingsSection.cs: fix build and add a couple of TODO'ed
834 2005-09-23 Chris Toshok <toshok@ximian.com>
836 * ProviderSettings.cs (Unmerge): track change to
837 ConfigurationElement.Unmerge.
839 * ConfigurationSection.cs: add functions nuked from
840 ConfigurationElement here.
842 * ConfigurationElementCollection.cs: add DebuggerDisplay attribute
844 (BaseGetAllKeys): returns object[], not string[].
845 (BaseGetKey): returns object, not string.
846 (Unmerge): track change to ConfigurationElement.Unmerge signature.
848 * ConfigurationElement.cs (ConfigurationElement.Unmerge): fix
849 signature (drop the serializeCollectionKey parameter).
852 2005-09-23 Chris Toshok <toshok@ximian.com>
854 * StringValidator.cs: throw ArgumentException instead of
855 ConfigurationErrorsException.
857 2005-09-23 Chris Toshok <toshok@ximian.com>
859 * ConnectionStringsSection.cs: track change to
860 ConfigurationPropertyOptions.
862 * ConfigurationPropertyAttribute.cs, ConfigurationProperty.cs,
863 ProviderSettings.cs: track change to ConfigurationPropertyOptions.
865 * ConnectionStringSettings.cs: track change to
866 ConfigurationProprertyOptions, and add some ConfigurationProperty
869 * ConfigurationPropertyOptions.cs: DefaultCollection ->
870 IsDefaultCollection, Required -> IsRequired.
872 2005-09-22 Chris Toshok <toshok@ximian.com>
874 * PositiveTimeSpanValidator.cs: this lives in
875 System.Web.Configuration, not System.Configuration.
877 2005-09-22 Chris Toshok <toshok@ximian.com>
879 * TimeSpanValidator.cs: change to ArgumentException and alter the
882 2005-09-22 Chris Toshok <toshok@ximian.com>
884 * ExeConfigurationFileMap.cs (ctor): init all the strings to "".
886 2005-07-01 Lluis Sanchez Gual <lluis@novell.com>
888 * ProviderSettings.cs: Implemented properties using property attributes.
889 * ConfigurationElement.cs: Implemented ElementInformation property and
890 moved there all value management.
891 * ProtectedConfigurationProvider.cs: Set the correct base class.
892 * SectionInformation.cs: Added missing AllowExeDefinition property.
893 * TimeSpanValidatorAttribute.cs: Implemented.
894 * StringValidator.cs: Implemented.
895 * ProviderSettingsCollection.cs: Added missing class attribute.
896 * ConfigurationSaveMode.cs: Fix enum values.
897 * ConfigurationElementCollection.cs: Added Init method for initializing
898 elements from properties.
899 * StringValidatorAttribute.cs: Implemented.
900 * ConfigurationLocation.cs: Added support for allowOverride flag.
901 * TimeSpanMinutesOrInfiniteConverter.cs: Created skeleton class.
902 * PositiveTimeSpanValidator.cs: Implemented.
903 * TimeSpanMinutesConverter.cs: Created skeleton class.
904 * SectionInfo.cs: Properly read, store and check the values of AllowLocation,
905 AllowDefinition and AllowExeDefinition.
906 * TimeSpanValidator.cs: Implemented.
907 * ConfigurationConverterBase.cs: Created skeleton class.
908 * InternalConfigurationHost.cs: Implemented IsDefinitionAllowed and
909 VerifyDefinitionAllowed.
910 * ConfigurationManager.cs: That class must be static.
911 * PropertyInformationCollection.cs: Implemented.
912 * Configuration.cs: Added some checks for AllowLocation, AllowDefinition and
913 so on. In Save(), don't forget to save location elements.
914 * ConfigurationProperty.cs: Keep track of collection attributes.
915 * ConfigInfo.cs: Support overrideAllowed flag.
916 * KeyValueConfigurationElement.cs: Define properties using attributes.
917 * PropertyValueOrigin.cs: implemented.
918 * PropertyInformation.cs: Mostly implemented.
919 * SectionGroupInfo.cs: Properly propagate the overrideAllowed flag.
920 * ElementInformation.cs: Mostly implemented.
921 * ConfigurationPropertyAttribute.cs: Set the correct default value.
922 * ConfigurationCollectionAttribute.cs: Implemented.
924 2005-06-23 Lluis Sanchez Gual <lluis@novell.com>
926 * SectionInfo.cs: Set the config host when loading the section.
927 * InternalConfigurationHost.cs: Implemented some basic methods.
928 * Configuration.cs: Find the correct parent for the configuration,
929 taking into accound locations and such. Use Host functions to get
931 * ConfigurationLocationCollection.cs: Added find method.
932 * ConfigInfo.cs: Added Host property.
933 * InternalConfigurationFactory.cs: The InitForConfiguration calls
934 are now done in each correspoding configuration.
935 * SectionGroupInfo.cs: When reading a location element, create
936 a Configuration object for each path specified in the location.
937 * ConfigurationElementCollection.cs: Added the CreateNewElementInternal
938 method, which properly initializes the created element.
939 * ConfigurationLocation.cs: OpenConfiguration now has to read the
940 xml contents. It also has to find the correct parent configuration,
941 if it has not been specified.
943 2005-06-17 Lluis Sanchez Gual <lluis@novell.com>
945 * SectionInfo.cs, ConfigInfo.cs, SectionGroupInfo.cs: Minor api fixes.
946 * ConfigurationPropertyCollection.cs: Added Clear method.
947 * ContextInformation.cs: Implemented.
948 * ConfigurationManager.cs: Implemented some missing methods.
949 Configuration objects are now created through the ConfigurationFactory.
950 * InternalConfigurationHost.cs: Implementation of IInternalConfigHost
951 to be used for exe files and machine.config.
952 * ConfigurationFileMap.cs: Implemented.
953 * Configuration.cs: Read and write config files using the methods that
954 IInternalConfigHost provides.
955 * InternalConfigurationRoot.cs: IInternalConfigRoot stub.
956 * ExeContext.cs: Implemented.
957 * AppSettingsSection.cs: Use the KeyValueConfigurationCollection
958 collection to store values.
959 * KeyValueConfigurationElement.cs: Implemented.
960 * KeyValueConfigurationCollection.cs: Implemented.
961 * InternalConfigurationFactory.cs: An implementation of
962 IInternalConfigConfigurationFactory.
963 * ConfigurationPropertyAttribute.cs: Added missing attributes.
964 * ExeConfigurationFileMap.cs: Implemented.
966 2005-06-15 Lluis Sanchez Gual <lluis@novell.com>
968 * ConfigurationElement.cs, ConfigurationErrorsException.cs
969 SectionInfo.cs, ConnectionStringSettingsCollection.cs,
970 ConfigurationPropertyCollection.cs, ProtectedConfigurationProvider.cs,
971 ConfigurationSection.cs, NonEmptyStringConfigurationProperty.cs,
972 ConfigurationElementCollectionType.cs, Configuration.cs,
973 ConnectionStringSettings.cs, ConfigurationProperty.cs,
974 ConfigurationLocationCollection.cs, TimeSpanConfigurationProperty.cs,
975 ConfigurationAllowDefinition.cs, ConfigInfo.cs,
976 ConfigurationSectionGroupCollection.cs, AppSettingsSection.cs,
977 ProviderSettingsCollection.cs, IntegerConfigurationProperty.cs,
978 SectionGroupInfo.cs, ConfigurationUserLevel.cs,
979 ConnectionStringsSection.cs, ConfigurationPropertyAttribute.cs,
980 ConfigurationLocation.cs, ConfigurationSectionCollection.cs,
981 ConfigurationSectionGroup.cs, RuntimeOnlySection.cs,
985 * ConfigurationElementCollection.cs: Implemented support for Basic
986 collection type. Other fixes.
988 * ConfigurationPropertyFlags.cs: Renamed to ConfigurationPropertyOptions.
989 * ConfigurationUpdateMode.cs: Renamed to ConfigurationSaveMode.
991 * SectionInformation.cs, ConfigurationAllowExeDefinition.cs
992 ConfigurationManager.cs, ConfigurationSaveMode.cs,
993 ConfigurationValidatorAttribute.cs, ProtectedConfigurationSection.cs,
994 ConfigurationValidatorBase.cs, ConfigurationPropertyOptions.cs:
997 * ConfigurationValidationAttribute.cs: Removed.
999 * ProviderBase.cs: Moved to System.dll.
1001 2005-06-14 Lluis Sanchez Gual <lluis@novell.com>
1003 * AppSettingsSection.cs, ConfigInfo.cs, Configuration.cs
1004 ConfigurationAllowDefinition.cs, ConfigurationElement.cs
1005 ConfigurationElementCollection.cs, ConfigurationElementCollectionType.cs
1006 ConfigurationLocation.cs, ConfigurationLocationCollection.cs
1007 ConfigurationProperty.cs, ConfigurationPropertyAttribute.cs
1008 ConfigurationPropertyCollection.cs, ConfigurationPropertyFlags.cs
1009 ConfigurationSection.cs, ConfigurationSectionCollection.cs
1010 ConfigurationSectionGroup.cs, ConfigurationSectionGroupCollection.cs
1011 ConfigurationUpdateMode.cs, ConfigurationUserLevel.cs
1012 ConfigurationValidationAttribute.cs, ConnectionStringsSection.cs
1013 ConnectionStringSettingsCollection.cs, ConnectionStringSettings.cs
1014 IntegerConfigurationProperty.cs, NonEmptyStringConfigurationProperty.cs
1015 NonEmptyStringFlags.cs, PathLevel.cs, ProtectedConfigurationProvider.cs
1016 ProviderBase.cs, ProviderSettings.cs, ProviderSettingsCollection.cs
1017 RuntimeOnlySection.cs, SectionInfo.cs, SectionGroupInfo.cs
1018 TimeSpanConfigurationProperty.cs, TimeSpanPropertyFlags.cs
1019 TimeSpanSerializedFormat.cs:
1021 Moved from the System assembly.