1 2006-12-27 Atsushi Enomoto <atsushi@ximian.com>
3 * ConfigurationElementCollection.cs : fixed BaseAdd() with
4 throwIfExists to not raise an error for identical element
5 but for different element which shares the same key. Fix by
8 2006-12-21 Vladimir Krasnov <vladimirk@mainsoft.com>
10 * ConfigurationProperty.cs: fixed DefaultValue of type Enum
12 2006-12-10 Konstantin Triger <kostat@mainsoft.com>
14 * ConfigurationElement.cs: Delegate parameter checking and default
15 assigning to Configuratin property.
16 * ConfigurationProperty.cs:
17 Ensure the TypeConvert and Validator always exist.
18 Ensure the primitive types are properly initialized.
20 2006-12-09 Vladimir Krasnov <vladimirk@mainsoft.com>
22 * ConfigurationElementCollection.cs
23 * ConfigurationRemoveElement.cs: fixed key for <remove> element in
24 ConfigurationRemoveElement class
26 2006-11-28 Marek Habersack <grendello@gmail.com>
28 * SectionGroupInfo.cs: Implement merging of section groups with
29 the same names and parents.
31 * ConfigInfo.cs: Add an abstract method for merging sections.
33 * SectionInfo.cs: Add implementation of an abstract base method
35 2006-08-23 Konstantin Triger <kostat@mainsoft.com>
37 * SectionInfo.cs: refactoring - remove unneeded bool? usage.
39 2006-11-05 Vladimir Krasnov <vladimirk@mainsoft.com>
41 * added: ConfigurationRemoveElement.cs, common element for <remove>
42 * ConnectionStringSettingsCollection.cs: reverted last fix for
44 * ConfigurationElementCollection.cs: fixed the way that
45 OnDeserializeUnrecognizedElement method handles <remove> element
47 2006-11-02 Vladimir Krasnov <vladimirk@mainsoft.com>
49 * ConfigurationElement.cs: typo in DefaultCollectionProperty
52 2006-10-30 Joel Reed <joel.reed@ddiworld.com>
54 * NameValueConfigurationCollection.cs: Implement the Properties
57 2006-08-23 Konstantin Triger <kostat@mainsoft.com>
59 * ConfigurationLocation.cs: do not read root element, correctly close stream.
60 * Configuration.cs: use ReadData for nested content to throw if location
61 elements are encounterd.
62 In constructor taking parent Configurqation: do not call Init and so avoid
63 rereading config file.
65 2006-09-05 Vladimir Krasnov <vladimirk@mainsoft.com>
67 * NameValueConfigurationElement.cs: fixed functionality
68 * ConfigurationElementCollection.cs,
69 ConnectionStringSettingsCollection.cs: fixed <remove> element in
70 connectionStrings section
72 2006-08-23 Konstantin Triger <kostat@mainsoft.com>
74 * ConfigurationSection.cs: for net 1.1 SectionHandlers: return null in case
75 RawXml is null, as net 1.1 does.
77 2006-08-17 Vladimir Krasnov <vladimirk@mainsoft.com>
79 * ConfigurationFileMap.cs: added TARGET_JVM on not supported members
82 2006-07-07 Atsushi Enomoto <atsushi@ximian.com>
84 * ConfigurationManager.cs : OpenExeConfiguration(null) should still
85 work. This is required for embedded scenario.
87 2006-06-10 Atsushi Enomoto <atsushi@ximian.com>
89 * SectionGroupInfo.cs : skip <dllmap> in configuration.
91 2006-05-14 Atsushi Enomoto <atsushi@ximian.com>
93 * ConfigurationManager.cs: since ConfigurationSystem is different
94 for web.config, cast from ConfigurationSection to runtime object
95 should be done at GetSection().
96 This really fixed bug #78372.
98 2006-05-12 Atsushi Enomoto <atsushi@ximian.com>
100 * Configuration.cs : configPath is null for machine.config, so don't
101 use it. Use streamName instead. To my understanding, this should
104 2006-05-10 Atsushi Enomoto <atsushi@ximian.com>
106 * ConnectionStringSettings.cs : it seems that "name" property
107 could be null i.e. there is no StringValidator.
108 * StringValidator.cs : allow null.
110 2006-05-10 Atsushi Enomoto <atsushi@ximian.com>
112 * ConfigurationManager.cs : use GetCallingAssembly() instead of
113 GetEntryAssembly() which possibly returns null (e.g. nunit) in
114 OpenExeConfiguration(). Several nunit test failures are gone.
116 2006-05-10 Atsushi Enomoto <atsushi@ximian.com>
118 * ConnectionStringSettings.cs : oops, this API fix broke standalone
121 2006-05-10 Atsushi Enomoto <atsushi@ximian.com>
123 * ConfigurationElement.cs,
124 ConfigurationErrorsException.cs,
125 ConfigurationUserLevel.cs,
126 ConfigurationPropertyOptions.cs,
127 ConnectionStringSettings.cs : assorted minor corcompare fixes.
129 2006-05-10 Atsushi Enomoto <atsushi@ximian.com>
131 * Configuration.cs : some kind of refactoring is absolutely needed
132 here. Reuse RawXml from parentSection when data was not available
133 on current section. This should fix bug #78353.
135 2006-05-10 Atsushi Enomoto <atsushi@ximian.com>
137 * ConfigurationElement.cs,
139 in some cases RawXml was set null string, so skip such cases.
140 * Configuration.cs : support IConfigurationSectionHandler here.
141 * ConfigurationManager.cs : GetSection() now returns name value
142 collection, not a section.
143 * ConfigurationSection.cs : added SectionHandler for
144 IConfigurationSectionHandler support, and use its Create() in
146 * ClientConfigurationSystem.cs :
147 use GetRuntimeObject() in GetSection(). Thus now
148 ConfigurationManager.GetSection() returns a runtime object.
151 2006-04-28 Atsushi Enomoto <atsushi@ximian.com>
153 * SectionGroupInfo.cs :
154 sections which are defined in sectionGroups could be directly
155 referenced, so search corresponding section recursively.
156 * DefaultSection.cs : It does not reject unrecognized contents.
158 2006-04-26 Chris Toshok <toshok@ximian.com>
160 * SectionInformation.cs (.ctor): add MonoTODO about the default
161 value for require_permission.
162 (RequirePermission): implement the getter/setter for this so
163 Atsushi's previous commit doesn't break everything :)
165 2006-04-26 Atsushi Enomoto <atsushi@ximian.com>
168 SectionInfo.cs : added support for "requirePermission" attribute
169 in "section" element. This fixes bug #77957.
171 2006-04-25 Chris Toshok <toshok@ximian.com>
173 * ConfigurationElementCollection.cs (Reset): it makes no sense to
174 pass the typename to CreateNewElementInternal. the argument is
175 the elementname. pass null instead.
178 2006-02-01 Atsushi Enomoto <atsushi@ximian.com>
180 * ConfigurationElement.cs : ListErrors() and SetPropertyValue()
182 * ConfigurationSection.cs : the .ctor() is protected.
183 * ConfigurationElementCollection.cs : CollectionType is public.
184 Count and BaseAdd() are not virtual.
185 * ConfigurationPropertyCollection.cs : Count is not virtual.
187 2006-02-01 Chris Toshok <toshok@ximian.com>
189 * ConfigurationElement.cs: revert the patch that stores and writes
190 out xmlns attributes for all elements.
192 * ClientConfigurationSystem.cs: SupportsUserConfig == false.
194 * AppSettingsSection.cs (GetRuntimeObject): call col.SetReadOnly()
195 only if SupportsUserConfig != true.
197 * ConfigurationManager.cs (ConfigurationSystem): add a property
198 like ConfigurationFactory, and use it instead of the private field
201 2006-01-26 Chris Toshok <toshok@ximian.com>
203 * SectionGroupInfo.cs (ReadContent): handle "location" (seemingly)
206 * InternalConfigurationRoot.cs: misc logical additions. still
209 * ConfigurationManager.cs (OpenExeConfigurationInternal): throw an
210 exception if both calling_assembly and exePath are null. Allow
211 the exePath to be a path to a config file as well, checking to see
212 if it ends in .config before appending.
213 (OpenExeConfiguration): stop blindly passing
214 Assembly.GetCallingAssembly. I'm assuming this will likely break
215 .dll.config usage. need to investigate that (and write more unit
217 (GetSection): call configSystem.GetSection.
218 (RefreshSection): call configSystem.RefreshSection.
219 (ChangeConfigurationSystem): modeled after the
220 ConfigurationSettings System.Web hack - allow
221 WebConfigurationManager to replace the current
222 IInternalConfigSystem.
224 * InternalConfigurationHost.cs (InternalConfigurationHost): make
225 abstract, and remove all the NotImplenmentedException's.
227 * ConfigurationElement.cs (DeserializeElement): store off the xml
228 namespace if there is one.
229 (SerializeElement): write out the namespace if there was one.
231 * ClientConfigurationSystem.cs: new class, based on some stack
232 traces I've seen in tests. Kinda (well, not *kinda*..) hacky.
234 * Configuration.cs (NamespaceDeclared): implement.
235 (Load): don't swallow all exceptions, just the ones raised when we
236 open the stream for reading.
237 (ReadConfigFile): handle xmlns.
239 2006-01-25 Chris Toshok <toshok@ximian.com>
241 * ConfigInfo.cs (ThrowException): throw a
242 ConfigurationErrorsException, not a ConfigurationException.
244 * SectionGroupInfo.cs (ReadContent): throw an exception
245 unconditionally if we see a <location>. they aren't valid in
248 2006-01-25 Chris Toshok <toshok@ximian.com>
250 * KeyValueInternalCollection.cs: don't use a nested collection,
251 just defer to our base class. This fixes usage of
252 ConfigurationManager.AppSettings.Keys.
254 2006-01-13 Chris Toshok <toshok@ximian.com>
256 * AppSettingsSection.cs (GetRuntimeObject): only access
257 Settings[key] once per iteration.
259 2006-01-09 Chris Toshok <toshok@ximian.com>
261 * ConfigurationManager.cs (AppSettings): just return
262 AppSettingsSection.GetRuntimeObject() here.
264 * AppSettingsSection.cs: fix the "file" property to match dumper
266 (GetRuntimeObject): this returns a KeyValueInternalCollection in
269 2006-01-09 Chris Toshok <toshok@ximian.com>
271 * ElementInformation.cs (Validator): if propertyInfo == null,
272 return a DefaultValidator instance.
274 2006-01-09 Chris Toshok <toshok@ximian.com>
276 * AppSettingsSection.cs (.cctor): specify null for
279 * ProtectedProviderSettings.cs (.cctor): specify null for
282 2006-01-03 Chris Toshok <toshok@ximian.com>
284 * Configuration.cs (SaveAs): open with FileMode.OpenOrCreate so we
285 can save to a new file.
286 (CreateSection): don't bother to set the section information's
287 Name here. we'll do it in SectionInfo.CreateInstance.
289 * ProtectedConfiguration.cs (Section): new static property so we
290 can remove all the GetSection calls.
291 (GetProvider): load a named provider, optionally throwing an
292 exception if it's not found.
294 * InternalConfigurationHost.cs (EncryptSection, DecryptSection):
295 make these private interface implementations, and call
296 protectedSection.{EncryptSection,DecryptSection}.
298 * ProtectedConfigurationSection.cs (EncryptSection,
299 DecryptSection): add these two calls. They really shouldn't be
300 here, but I saw them in an MS stack trace and thought "why not?".
302 * ConfigurationSection.cs (SectionInformation): don't set
303 attributes here, that's done in SectionInfo.CreateInstance.
304 (DeserializeSection): shoehorn in the decryption stuff here. It
305 doesn't belong here, and I've added a MonoTODO about it. It
306 should live someplace like SectionInfo.ReadData (which would make
307 it similar to the encryption stuff in .WriteData).
309 * SectionInformation.cs (IsProtected): remove the special flag,
310 just return true if we have a non-null protection_provider.
311 (ProtectSection): do nothing but try to instantiate the named
313 (UnprotectSection): null out protection_provider.
315 * DpapiProtectedConfigurationProvider.cs: move the
316 NotSupportedExceptions to Decrypt/Encrypt so we don't bomb out
317 when parsing our machine.config file.
319 * RsaProtectedConfigurationProvider.cs: initial implementation.
320 much is missing (OAEP support, key importing, adding/deleting
321 keys), but it can be used.
323 2006-01-02 Chris Toshok <toshok@ximian.com>
325 * RsaProtectedConfigurationProvider.cs: implement the
326 CspProviderName and UseOAEP properties..
328 2006-01-02 Chris Toshok <toshok@ximian.com>
330 * ProtectedConfigurationSection.cs: flesh this out (and add logic
331 to instantiate providers, based on some of the standalone test
332 exception stack traces.)
334 * ProtectedConfiguration.cs: new implementation.
336 * ProtectedConfigurationProviderCollection.cs: new
339 * ProtectedProviderSettings.cs: new implementation.
341 * ProtectedConfigurationProvider.cs: trim the superclass's name.
343 * RsaProtectedConfigurationProvider.cs: stubbed, unimplemented.
345 * DpapiProtectedConfigurationProvider.cs: add stubbed
346 implementation that throws NotSupportedException telling people
347 they should be using RsaProtectedConfigurationProvider.
349 2006-01-02 Chris Toshok <toshok@ximian.com>
351 * DefaultSection.cs (Properties): implement.
353 * IgnoreSection.cs: move from lazily creating the properties
354 collection to sharing a single one across all instances.
356 * ConfigurationLockCollection.cs (IsReadOnly): fix compiler warning.
358 * ConfigurationElementCollection.cs (BaseAdd) remove logic to
359 remove an old matching element.
360 (BaseGetKey): throw an exception if @index is out of range.
362 * SectionInformation.cs (SectionName): just return name, like Name
363 does.. redundant, but it matches tests.
364 (GetRawXml): implement.
365 (SetRawXml): implement.
367 * ConfigurationSection.cs (SectionInformation): fill in
368 sectionInformation.Type before returning.
369 (DeserializeSection): save off the raw xml to our
372 * ConfigurationElement.cs (LockItem): implement.
373 (DeserializeElement): add support for the "lockItem" attribute.
375 2005-12-16 Chris Toshok <toshok@ximian.com>
377 * ConfigurationLockCollection.cs (Add): only add the name if it's
379 (IsReadOnly): always return false for the time being, in the
380 non-exceptional case.
382 2005-12-15 Chris Toshok <toshok@ximian.com>
384 * ConfigurationElement.cs (LockAllAttributesExcept): implement.
385 (LockAllElementsExcept): implement.
386 (DeserializeElement): handle the built-in attributes (lock* for
389 2005-12-15 Chris Toshok <toshok@ximian.com>
391 * ConfigurationLockCollection.cs (..ctor): don't call Populate.
393 (CheckName): make sure the passes in name is valid for this type
395 (Add): call CheckName, and set is_modified to true.
396 (Clear): set is_modified.
397 (IsReadOnly): add plausable implementation, including exception in
398 the case where the name isn't found.
399 (Remove): set is_modified.
400 (SetFromList): implement.
401 (get_AttributeList): implement.
402 (set_IsModified): add internal setter so we can clear the modified
405 2005-12-12 Chris Toshok <toshok@ximian.com>
407 * AppSettingsSection.cs (DeserializeElement): provide rather naive
408 version of the file="" handling. It's enough to make our tests
411 2005-12-11 Chris Toshok <toshok@ximian.com>
413 * ConnectionStringsSection.cs (..cctor): use "" instead of null
414 for the name of the default collection.
416 * AppSettingsSection.cs (..cctor): create a property for the
418 (DeserializeElement): call base.DeserializeElement.
419 (File): index off the property, not the name.
420 (Settings): don't use an private variable here, use
423 * ConfigurationManager.cs (GetSection): GetEntryAssembly returns
424 null for new app domains. so deal with this by calling
425 GetCallingAssembly if it's null. This is probably still wrong but
426 it doesn't NRE in xsp2.
427 (AppSettings): remove MonoTODO.
429 * KeyValueConfigurationElement.cs (..ctor): new method, create the
430 ConfigurationProperty's and the collection here.
431 (.ctor): add internal arg-less ctor.
432 (Key): use keyProp instead of "key".
433 (Value): use vlaueProp instead of "value".
434 (Properties): return our class's properties.
436 * KeyValueConfigurationCollection.cs (CreateNewElement): use the
438 (GetElementKey): re-enable the BaseIndexOf test.
440 2005-12-02 Chris Toshok <toshok@ximian.com>
442 * Configuration.cs (Save): call WriteStartDocument.
444 * ConnectionStringSettingsCollection.cs (CreateNewElement): use
445 parameter-less ctor to keep from generating exceptions when using
448 2005-12-02 Chris Toshok <toshok@ximian.com>
450 * ConnectionStringSettings.cs: tabify, fix default values, and add
451 a string validator for "name".
453 2005-12-02 Chris Toshok <toshok@ximian.com>
455 * CommaDelimitedStringCollectionConverter.cs (ConvertTo): change
456 the type check away from an exact check for
457 CommaDelimitedStringCollection to an assignable test from
458 StringCollection. This is due to the fact that AuthorizationRule
459 doesn't create CommaDelimitedStringCollections, for some odd
460 reason. It uses StringCollections.
462 * PropertyInformation.cs (Value): remove the case for
463 IsDefaultCollection - it's not necessary, as the property is an
466 * ConnectionStringSettings.cs: fix formatting and remove some
469 * ConnectionStringSettingsCollection.cs: same.
471 * ConnectionStringsSection.cs: same.
473 * ConfigurationElement.cs (SerializeToXmlElement): don't write the
474 enclosing start/end elements if the elementName is null or "".
475 this fixes the case for the DefaultCollections (at least in the
476 case of connectionStrings).
478 * IgnoreSection.cs (Properties): remove the MonoTODO.
480 * SectionInfo.cs (WriteData): remove the "<!-- dd -->" output.
482 2005-11-28 Chris Toshok <toshok@ximian.com>
484 * ProviderSettings.cs: use ConfigurationProperty's to implement
487 2005-11-24 Chris Toshok <toshok@ximian.com>
489 * ConfigurationProperty.cs (Validate): add internal method.
491 2005-11-24 Chris Toshok <toshok@ximian.com>
493 * ConfigurationElement.cs (ElementProperty): make this protected
494 internal virtual instead of public.
495 (SetPropertyValue): add a validator call and a blurb about the
496 code based on information gleaned from tests.
497 (set_Item (string)): call SetPropertyValue in the setter.
499 2005-11-14 Chris Toshok <toshok@ximian.com>
501 * CommaDelimitedStringCollection.cs: reformat things a bit, and
502 flag ToString() as override.
504 * DefaultSection.cs: new stubbed out implementation.
506 * CommaDelimitedStringCollectionConverter.cs: new implementation.
508 2005-11-10 Chris Toshok <toshok@ximian.com>
510 * AppSettingsSection.cs (DeserializeElement): stop explicitly
511 calling Settings.DeserializeElement, as the DefaultCollection
514 * ConfigurationElement.cs (DeserializeElement): rework the loop
515 here so that we actually loop over all the content elements.
517 2005-11-09 Chris Toshok <toshok@ximian.com>
519 * ConfigurationElement.cs: Add support for DefaultCollection
522 * PropertyInformation.cs (PropertyInformation.Value): add case for
525 * SectionGroupInfo.cs (SectionGroupInfo.ReadConfig): when we read
526 a "type" attribute, make sure the cached System.Type is cleared.
528 2005-10-25 Chris Toshok <toshok@ximian.com>
530 * InfiniteTimeSpanConverter.cs: new implementation.
532 * InfiniteIntConverter.cs: new implementation.
534 * GenericEnumConverter.cs: new implementation.
536 * Configuration.cs: we don't need to check with "is" after we use
537 "as".. just check for null-ness.
539 * KeyValueConfigurationCollection.cs: GetElementKey should throw
540 NRE if element == null.
542 * CommaDelimitedStringCollection.cs: raise the correct exceptions
543 in the read only case, and return null from ToString if there are
546 2005-10-25 Chris Toshok <toshok@ximian.com>
548 * PositiveTimeSpanValidatorAttribute.cs: new implementation.
550 * PositiveTimeSpanValidator.cs: new implementation.
552 2005-10-24 Chris Toshok <toshok@ximian.com>
554 * TimeSpanSecondsOrInfiniteConverter.cs: new implementation.
556 * TypeNameConverter.cs: new implementation.
558 * WhiteSpaceTrimStringConverter.cs: new implementation.
560 2005-10-24 Chris Toshok <toshok@ximian.com>
562 * AppSettingsSection.cs (DeserializeElement, SerializeSection):
563 split the behavior based on if File == "". If it is, we do the
564 default. otherwise we throw NIE.
566 * ConnectionStringsSection.cs (DeserializeElement): we shouldn't
567 need this, but we do until the IsDefaultCollection stuff is fixed.
569 * ConfigurationElementCollection.cs
570 (OnDeserializeUnrecognizedElement): for clearElementName, make
571 sure we have no attributes.
573 * ConnectionStringSettingsCollection.cs (get_Properties): for now
574 just chain up to base.Properties.
576 * ConfigurationElement.cs (ReflectProperties): do the default
577 value/property type check in a more robust way, using
580 2005-10-24 Chris Toshok <toshok@ximian.com>
582 * ConfigurationElement.cs: treat
583 ConfigurationProperty.NoDefaultValue the same as null when we're
584 checking the default value's type. this fixes t13 and 14.
586 * ConnectionStringsSection.cs (ConnectionStrings): fix the
587 DefaultValue in the ConfigurationPropertyAttribute.
589 2005-10-24 Chris Toshok <toshok@ximian.com>
591 * KeyValueConfigurationCollection.cs (GetElementKey): sacrifice
592 one test to get another working. Return a valid key even if the
593 element is not in this collection.
594 (get_ThrowOnDuplicate): return false.
596 * ConfigurationElementCollection.cs (BaseAdd): if we're adding an
597 element with the same key, overwrite the old one (remove the old
598 one after inserting the new one). Also, re-enable the throwing of
599 exceptions if ThrowOnDuplicate == true.
601 2005-10-24 Chris Toshok <toshok@ximian.com>
603 * AppSettingsSection.cs (Settings): fix ConfigurationProperty
606 * ProtectedConfigurationSection.cs (Providers): same.
608 2005-10-12 Chris Toshok <toshok@ximian.com>
610 * ConfigurationPermission.cs: flesh out as per tests.
612 2005-10-11 Chris Toshok <toshok@ximian.com>
614 * ConfigurationProperty.cs: don't use null to mean no default
615 value, use NoDefaultValue.
617 2005-10-11 Chris Toshok <toshok@ximian.com>
619 * KeyValueConfigurationCollection.cs (GetElementKey): duh.
620 BaseGet calls GetElementKey, so we were hitting an infinite
621 recursion here. Use BaseIndexOf instead.
623 2005-10-07 Chris Toshok <toshok@ximian.com>
625 * InternalConfigurationHost.cs: some interface work, adding in the
628 * ConfigurationProperty.cs: remove debug spew.
630 * Configuration.cs: add NIE'd NamespaceDeclared property.
632 * ElementInformation.cs: add NIE'd Errors property.
634 * PropertyInformationCollection.cs: add NIE'd GetObjectData().
636 * ConfigurationManager.cs: quite a bit of new work here. Some
637 definie TODO's still though.
639 2005-10-07 Chris Toshok <toshok@ximian.com>
641 * ConfigurationErrorsException.cs (.ctor): for the (string)
642 overload, chain up to the base (string) ctor.
644 2005-10-07 Chris Toshok <toshok@ximian.com>
646 * ConfigurationElement.cs (ElementMap.ReflectProperties): make
647 sure the type of the default value is compatible with that of the
648 property itself, and throw ConfigurationErrorsException if they
649 don't match. Fixes t12.
651 2005-10-07 Chris Toshok <toshok@ximian.com>
653 * ConfigHelper.cs: remove some unused code.
655 * ConfigurationProperty.cs: disambiguate the ctor we chain to.
657 * ConfigurationElement.cs (ElementProperty): implement.
658 (ElementMap.ReflectProperties): make DefaultValidator the default
661 2005-10-06 Chris Toshok <toshok@ximian.com>
663 * KeyValueConfigurationElement.cs: uncomment out some stuff.
664 (Properties): just return base.Properties. Not sure why they
665 override this, as the base class's implementation passes our test.
667 * KeyValueConfigurationCollection.cs (Add): for the keyValue
668 overload, call keyValue.Init as the unit test stack traces
669 indicates that'9s where it's called. For the string,string
670 overload, just call the keyValue overload instead of calling
672 (CreateNewElement): just use the name/value ctor, and specify ""
674 (GetElementKey): this function always returns "" for elements that
675 haven't been added to the collection. Once theyre added, it seems
676 to always return keyValue.Key.
677 (Properties): the unit tests show this returns a 0 length
680 2005-10-05 Chris Toshok <toshok@ximian.com>
682 * ConfigurationPermissionAttribute.cs: stub out.
684 2005-10-05 Chris Toshok <toshok@ximian.com>
686 * TimeSpanMinutesOrInfiniteConverter.cs: fill in the
689 2005-10-05 Chris Toshok <toshok@ximian.com>
691 * TimeSpanSecondsConverter.cs: new implementation.
693 2005-10-05 Chris Toshok <toshok@ximian.com>
695 * TimeSpanMinutesConverter.cs: flesh out implementation.
697 * ConfigurationConverterBase.cs: make all subclasses work with
698 strings only, since that's what seems to manifest itself in the
701 2005-10-05 Chris Toshok <toshok@ximian.com>
703 * ConfigurationLockCollection.cs: add NIE'd AttributeList
706 * ConfigurationConverterBase.cs: add MonoTODO'd CanConvertFrom and
707 CanConvertTo methods.
709 * ConfigurationSectionGroup.cs: add NIE'd IsDeclared property.
711 * ProtectedConfigurationSection.cs: add NIE'd properties.
713 * ConfigurationElementCollection.cs: add MonoTODO'd IsReadOnly
714 and SetReadOnly methods, and have then chain up to the base class.
716 * KeyValueConfigurationCollection.cs: add the class level
717 ConfigurationCollectionAttribute, and add a NIE'ed Properties
720 * ProviderSettingsCollection.cs: add the class level
721 ConfigurationCollectionAttribute, and add a "new" keyword to the
722 this property. Also, nuke the Provider's property.
724 * SectionInformation.cs: add some NEI'd properties.
726 * ConfigurationSection.cs (ResetModified): leave the MonoTODO, but
727 chain up to base class's method instead of throwing NIE.
729 * ConnectionStringSettingsCollection.cs: add the class-level
730 ConfigurationCollectionAttribute, and add the unimplemented
733 * ConfigurationErrorsException.cs: flesh this out, and add a
734 pragma to disable the obsolete warnings from our base class.
736 * ProviderSettings.cs: add unimplemented Properties property.
738 * ConfigurationElement.cs: remove unnecessary
739 EvaluationInformation.
741 * InternalConfigurationRoot.cs: add unimplemented IsDesignTime
744 * ConfigurationProperty.cs: add a missing ctor.
746 * AppSettingsSection.cs: add missing "override" keyword.
748 * ConnectionStringsSection.cs: remove override.
750 * ConfigurationSectionCollection.cs: AllKeys -> Keys, and add
751 unimplemented GetObjectData override.
753 * ConfigurationSectionGroupCollection.cs: same.
755 * ConfigurationCollectionAttribute.cs: add missing CollectionType
758 2005-10-05 Chris Toshok <toshok@ximian.com>
760 * ConfigurationPermission.cs: new implementation.
762 * IgnoreSection.cs: new implementation.
764 2005-10-05 Chris Toshok <toshok@ximian.com>
766 * CommaDelimitedStringCollection.cs: new implementation.
768 2005-10-05 Chris Toshok <toshok@ximian.com>
770 * NameValueConfigurationCollection.cs: new implementation.
772 * NameValueConfigurationElement.cs: new implementation.
774 2005-10-05 Chris Toshok <toshok@ximian.com>
776 * ValidatorCallback.cs: new implementation.
778 * SubclassTypeValidator.cs, SubclassTypeValidatorAttribute.cs: new
781 * CallbackValidator.cs, CallbackValidatorAttribute.cs: new
784 * RegexStringValidator.cs, RegexStringValidatorAttribute.cs: new
787 * LongValidator.cs, LongValidatorAttribute.cs: new implementation.
789 * IntegerValidator.cs, IntegerValidatorAttribute.cs: new
792 * DefaultValidator.cs: new implementation.
794 2005-09-28 Chris Toshok <toshok@ximian.com>
796 * ConfigurationElementCollection.cs: more work on the "<clear />"
797 handling - just skip the element for now. this causes a failure
798 in one test ('<clear hi="bye" />' doesn't throw an exception when
799 it should), but it succeeds for collections that have required
802 * ConnectionStringSettings.cs: providerName isn't a required
805 * AppSettingsSection.cs (.cctor): initialize our "file" Property.
808 (GetRuntimeObject): call the base class method instead of just
811 * ConnectionStringsSection.cs: Add a hacky DeserializeElement
812 method here (that isn't in MS's) for the time being so we actually
813 deserialize our collection.
815 2005-09-28 Chris Toshok <toshok@ximian.com>
817 * KeyValueInternalCollection.cs: found this by way of a stack
818 trace in one of the tests. A NameValueCollection that wraps a
819 KeyValueConfigurationCollection.
821 * Configuration.cs (Init): save off configPath.
822 (EvaluationContext): new, mostly implemented.
823 (GetSectionInstance): use IgnoreSection instead of
825 (Load): don't fail when we can't load a file.
827 * IgnoreSection.cs: replace RuntimeOnlySection with this new
830 * RuntimeOnlySection.cs: nuke.
832 2005-09-27 Chris Toshok <toshok@ximian.com>
834 * TimeSpanMinutesOrInfiniteConverter.cs: this is sealed.
836 2005-09-27 Chris Toshok <toshok@ximian.com>
838 * ConfigurationProperty.cs: add IsDefaultCollection property.
840 2005-09-27 Chris Toshok <toshok@ximian.com>
842 * ConfigurationElementProperty.cs: new file.
844 * ConfigurationLockCollection.cs: new file.
846 * ConfigurationElementCollection.cs
847 (OnDeserializeUnrecognizedElement): make sure we consume the
848 <clear /> element so we don't into an endless loop.
850 * ConfigurationElement.cs: add a bunch of NIE's properties.
852 * ContextInformation.cs: Add NIE'ed IsMachineLevel property.
854 2005-09-23 Chris Toshok <toshok@ximian.com>
856 * AppSettingsSection.cs: fix build and add a couple of TODO'ed
859 2005-09-23 Chris Toshok <toshok@ximian.com>
861 * ProviderSettings.cs (Unmerge): track change to
862 ConfigurationElement.Unmerge.
864 * ConfigurationSection.cs: add functions nuked from
865 ConfigurationElement here.
867 * ConfigurationElementCollection.cs: add DebuggerDisplay attribute
869 (BaseGetAllKeys): returns object[], not string[].
870 (BaseGetKey): returns object, not string.
871 (Unmerge): track change to ConfigurationElement.Unmerge signature.
873 * ConfigurationElement.cs (ConfigurationElement.Unmerge): fix
874 signature (drop the serializeCollectionKey parameter).
877 2005-09-23 Chris Toshok <toshok@ximian.com>
879 * StringValidator.cs: throw ArgumentException instead of
880 ConfigurationErrorsException.
882 2005-09-23 Chris Toshok <toshok@ximian.com>
884 * ConnectionStringsSection.cs: track change to
885 ConfigurationPropertyOptions.
887 * ConfigurationPropertyAttribute.cs, ConfigurationProperty.cs,
888 ProviderSettings.cs: track change to ConfigurationPropertyOptions.
890 * ConnectionStringSettings.cs: track change to
891 ConfigurationProprertyOptions, and add some ConfigurationProperty
894 * ConfigurationPropertyOptions.cs: DefaultCollection ->
895 IsDefaultCollection, Required -> IsRequired.
897 2005-09-22 Chris Toshok <toshok@ximian.com>
899 * PositiveTimeSpanValidator.cs: this lives in
900 System.Web.Configuration, not System.Configuration.
902 2005-09-22 Chris Toshok <toshok@ximian.com>
904 * TimeSpanValidator.cs: change to ArgumentException and alter the
907 2005-09-22 Chris Toshok <toshok@ximian.com>
909 * ExeConfigurationFileMap.cs (ctor): init all the strings to "".
911 2005-07-01 Lluis Sanchez Gual <lluis@novell.com>
913 * ProviderSettings.cs: Implemented properties using property attributes.
914 * ConfigurationElement.cs: Implemented ElementInformation property and
915 moved there all value management.
916 * ProtectedConfigurationProvider.cs: Set the correct base class.
917 * SectionInformation.cs: Added missing AllowExeDefinition property.
918 * TimeSpanValidatorAttribute.cs: Implemented.
919 * StringValidator.cs: Implemented.
920 * ProviderSettingsCollection.cs: Added missing class attribute.
921 * ConfigurationSaveMode.cs: Fix enum values.
922 * ConfigurationElementCollection.cs: Added Init method for initializing
923 elements from properties.
924 * StringValidatorAttribute.cs: Implemented.
925 * ConfigurationLocation.cs: Added support for allowOverride flag.
926 * TimeSpanMinutesOrInfiniteConverter.cs: Created skeleton class.
927 * PositiveTimeSpanValidator.cs: Implemented.
928 * TimeSpanMinutesConverter.cs: Created skeleton class.
929 * SectionInfo.cs: Properly read, store and check the values of AllowLocation,
930 AllowDefinition and AllowExeDefinition.
931 * TimeSpanValidator.cs: Implemented.
932 * ConfigurationConverterBase.cs: Created skeleton class.
933 * InternalConfigurationHost.cs: Implemented IsDefinitionAllowed and
934 VerifyDefinitionAllowed.
935 * ConfigurationManager.cs: That class must be static.
936 * PropertyInformationCollection.cs: Implemented.
937 * Configuration.cs: Added some checks for AllowLocation, AllowDefinition and
938 so on. In Save(), don't forget to save location elements.
939 * ConfigurationProperty.cs: Keep track of collection attributes.
940 * ConfigInfo.cs: Support overrideAllowed flag.
941 * KeyValueConfigurationElement.cs: Define properties using attributes.
942 * PropertyValueOrigin.cs: implemented.
943 * PropertyInformation.cs: Mostly implemented.
944 * SectionGroupInfo.cs: Properly propagate the overrideAllowed flag.
945 * ElementInformation.cs: Mostly implemented.
946 * ConfigurationPropertyAttribute.cs: Set the correct default value.
947 * ConfigurationCollectionAttribute.cs: Implemented.
949 2005-06-23 Lluis Sanchez Gual <lluis@novell.com>
951 * SectionInfo.cs: Set the config host when loading the section.
952 * InternalConfigurationHost.cs: Implemented some basic methods.
953 * Configuration.cs: Find the correct parent for the configuration,
954 taking into accound locations and such. Use Host functions to get
956 * ConfigurationLocationCollection.cs: Added find method.
957 * ConfigInfo.cs: Added Host property.
958 * InternalConfigurationFactory.cs: The InitForConfiguration calls
959 are now done in each correspoding configuration.
960 * SectionGroupInfo.cs: When reading a location element, create
961 a Configuration object for each path specified in the location.
962 * ConfigurationElementCollection.cs: Added the CreateNewElementInternal
963 method, which properly initializes the created element.
964 * ConfigurationLocation.cs: OpenConfiguration now has to read the
965 xml contents. It also has to find the correct parent configuration,
966 if it has not been specified.
968 2005-06-17 Lluis Sanchez Gual <lluis@novell.com>
970 * SectionInfo.cs, ConfigInfo.cs, SectionGroupInfo.cs: Minor api fixes.
971 * ConfigurationPropertyCollection.cs: Added Clear method.
972 * ContextInformation.cs: Implemented.
973 * ConfigurationManager.cs: Implemented some missing methods.
974 Configuration objects are now created through the ConfigurationFactory.
975 * InternalConfigurationHost.cs: Implementation of IInternalConfigHost
976 to be used for exe files and machine.config.
977 * ConfigurationFileMap.cs: Implemented.
978 * Configuration.cs: Read and write config files using the methods that
979 IInternalConfigHost provides.
980 * InternalConfigurationRoot.cs: IInternalConfigRoot stub.
981 * ExeContext.cs: Implemented.
982 * AppSettingsSection.cs: Use the KeyValueConfigurationCollection
983 collection to store values.
984 * KeyValueConfigurationElement.cs: Implemented.
985 * KeyValueConfigurationCollection.cs: Implemented.
986 * InternalConfigurationFactory.cs: An implementation of
987 IInternalConfigConfigurationFactory.
988 * ConfigurationPropertyAttribute.cs: Added missing attributes.
989 * ExeConfigurationFileMap.cs: Implemented.
991 2005-06-15 Lluis Sanchez Gual <lluis@novell.com>
993 * ConfigurationElement.cs, ConfigurationErrorsException.cs
994 SectionInfo.cs, ConnectionStringSettingsCollection.cs,
995 ConfigurationPropertyCollection.cs, ProtectedConfigurationProvider.cs,
996 ConfigurationSection.cs, NonEmptyStringConfigurationProperty.cs,
997 ConfigurationElementCollectionType.cs, Configuration.cs,
998 ConnectionStringSettings.cs, ConfigurationProperty.cs,
999 ConfigurationLocationCollection.cs, TimeSpanConfigurationProperty.cs,
1000 ConfigurationAllowDefinition.cs, ConfigInfo.cs,
1001 ConfigurationSectionGroupCollection.cs, AppSettingsSection.cs,
1002 ProviderSettingsCollection.cs, IntegerConfigurationProperty.cs,
1003 SectionGroupInfo.cs, ConfigurationUserLevel.cs,
1004 ConnectionStringsSection.cs, ConfigurationPropertyAttribute.cs,
1005 ConfigurationLocation.cs, ConfigurationSectionCollection.cs,
1006 ConfigurationSectionGroup.cs, RuntimeOnlySection.cs,
1007 ProviderSettings.cs:
1010 * ConfigurationElementCollection.cs: Implemented support for Basic
1011 collection type. Other fixes.
1013 * ConfigurationPropertyFlags.cs: Renamed to ConfigurationPropertyOptions.
1014 * ConfigurationUpdateMode.cs: Renamed to ConfigurationSaveMode.
1016 * SectionInformation.cs, ConfigurationAllowExeDefinition.cs
1017 ConfigurationManager.cs, ConfigurationSaveMode.cs,
1018 ConfigurationValidatorAttribute.cs, ProtectedConfigurationSection.cs,
1019 ConfigurationValidatorBase.cs, ConfigurationPropertyOptions.cs:
1022 * ConfigurationValidationAttribute.cs: Removed.
1024 * ProviderBase.cs: Moved to System.dll.
1026 2005-06-14 Lluis Sanchez Gual <lluis@novell.com>
1028 * AppSettingsSection.cs, ConfigInfo.cs, Configuration.cs
1029 ConfigurationAllowDefinition.cs, ConfigurationElement.cs
1030 ConfigurationElementCollection.cs, ConfigurationElementCollectionType.cs
1031 ConfigurationLocation.cs, ConfigurationLocationCollection.cs
1032 ConfigurationProperty.cs, ConfigurationPropertyAttribute.cs
1033 ConfigurationPropertyCollection.cs, ConfigurationPropertyFlags.cs
1034 ConfigurationSection.cs, ConfigurationSectionCollection.cs
1035 ConfigurationSectionGroup.cs, ConfigurationSectionGroupCollection.cs
1036 ConfigurationUpdateMode.cs, ConfigurationUserLevel.cs
1037 ConfigurationValidationAttribute.cs, ConnectionStringsSection.cs
1038 ConnectionStringSettingsCollection.cs, ConnectionStringSettings.cs
1039 IntegerConfigurationProperty.cs, NonEmptyStringConfigurationProperty.cs
1040 NonEmptyStringFlags.cs, PathLevel.cs, ProtectedConfigurationProvider.cs
1041 ProviderBase.cs, ProviderSettings.cs, ProviderSettingsCollection.cs
1042 RuntimeOnlySection.cs, SectionInfo.cs, SectionGroupInfo.cs
1043 TimeSpanConfigurationProperty.cs, TimeSpanPropertyFlags.cs
1044 TimeSpanSerializedFormat.cs:
1046 Moved from the System assembly.