1 2005-12-02 Chris Toshok <toshok@ximian.com>
3 * ConnectionStringSettings.cs: tabify, fix default values, and add
4 a string validator for "name".
6 2005-12-02 Chris Toshok <toshok@ximian.com>
8 * CommaDelimitedStringCollectionConverter.cs (ConvertTo): change
9 the type check away from an exact check for
10 CommaDelimitedStringCollection to an assignable test from
11 StringCollection. This is due to the fact that AuthorizationRule
12 doesn't create CommaDelimitedStringCollections, for some odd
13 reason. It uses StringCollections.
15 * PropertyInformation.cs (Value): remove the case for
16 IsDefaultCollection - it's not necessary, as the property is an
19 * ConnectionStringSettings.cs: fix formatting and remove some
22 * ConnectionStringSettingsCollection.cs: same.
24 * ConnectionStringsSection.cs: same.
26 * ConfigurationElement.cs (SerializeToXmlElement): don't write the
27 enclosing start/end elements if the elementName is null or "".
28 this fixes the case for the DefaultCollections (at least in the
29 case of connectionStrings).
31 * IgnoreSection.cs (Properties): remove the MonoTODO.
33 * SectionInfo.cs (WriteData): remove the "<!-- dd -->" output.
35 2005-11-28 Chris Toshok <toshok@ximian.com>
37 * ProviderSettings.cs: use ConfigurationProperty's to implement
40 2005-11-24 Chris Toshok <toshok@ximian.com>
42 * ConfigurationProperty.cs (Validate): add internal method.
44 2005-11-24 Chris Toshok <toshok@ximian.com>
46 * ConfigurationElement.cs (ElementProperty): make this protected
47 internal virtual instead of public.
48 (SetPropertyValue): add a validator call and a blurb about the
49 code based on information gleaned from tests.
50 (set_Item (string)): call SetPropertyValue in the setter.
52 2005-11-14 Chris Toshok <toshok@ximian.com>
54 * CommaDelimitedStringCollection.cs: reformat things a bit, and
55 flag ToString() as override.
57 * DefaultSection.cs: new stubbed out implementation.
59 * CommaDelimitedStringCollectionConverter.cs: new implementation.
61 2005-11-10 Chris Toshok <toshok@ximian.com>
63 * AppSettingsSection.cs (DeserializeElement): stop explicitly
64 calling Settings.DeserializeElement, as the DefaultCollection
67 * ConfigurationElement.cs (DeserializeElement): rework the loop
68 here so that we actually loop over all the content elements.
70 2005-11-09 Chris Toshok <toshok@ximian.com>
72 * ConfigurationElement.cs: Add support for DefaultCollection
75 * PropertyInformation.cs (PropertyInformation.Value): add case for
78 * SectionGroupInfo.cs (SectionGroupInfo.ReadConfig): when we read
79 a "type" attribute, make sure the cached System.Type is cleared.
81 2005-10-25 Chris Toshok <toshok@ximian.com>
83 * InfiniteTimeSpanConverter.cs: new implementation.
85 * InfiniteIntConverter.cs: new implementation.
87 * GenericEnumConverter.cs: new implementation.
89 * Configuration.cs: we don't need to check with "is" after we use
90 "as".. just check for null-ness.
92 * KeyValueConfigurationCollection.cs: GetElementKey should throw
93 NRE if element == null.
95 * CommaDelimitedStringCollection.cs: raise the correct exceptions
96 in the read only case, and return null from ToString if there are
99 2005-10-25 Chris Toshok <toshok@ximian.com>
101 * PositiveTimeSpanValidatorAttribute.cs: new implementation.
103 * PositiveTimeSpanValidator.cs: new implementation.
105 2005-10-24 Chris Toshok <toshok@ximian.com>
107 * TimeSpanSecondsOrInfiniteConverter.cs: new implementation.
109 * TypeNameConverter.cs: new implementation.
111 * WhiteSpaceTrimStringConverter.cs: new implementation.
113 2005-10-24 Chris Toshok <toshok@ximian.com>
115 * AppSettingsSection.cs (DeserializeElement, SerializeSection):
116 split the behavior based on if File == "". If it is, we do the
117 default. otherwise we throw NIE.
119 * ConnectionStringsSection.cs (DeserializeElement): we shouldn't
120 need this, but we do until the IsDefaultCollection stuff is fixed.
122 * ConfigurationElementCollection.cs
123 (OnDeserializeUnrecognizedElement): for clearElementName, make
124 sure we have no attributes.
126 * ConnectionStringSettingsCollection.cs (get_Properties): for now
127 just chain up to base.Properties.
129 * ConfigurationElement.cs (ReflectProperties): do the default
130 value/property type check in a more robust way, using
133 2005-10-24 Chris Toshok <toshok@ximian.com>
135 * ConfigurationElement.cs: treat
136 ConfigurationProperty.NoDefaultValue the same as null when we're
137 checking the default value's type. this fixes t13 and 14.
139 * ConnectionStringsSection.cs (ConnectionStrings): fix the
140 DefaultValue in the ConfigurationPropertyAttribute.
142 2005-10-24 Chris Toshok <toshok@ximian.com>
144 * KeyValueConfigurationCollection.cs (GetElementKey): sacrifice
145 one test to get another working. Return a valid key even if the
146 element is not in this collection.
147 (get_ThrowOnDuplicate): return false.
149 * ConfigurationElementCollection.cs (BaseAdd): if we're adding an
150 element with the same key, overwrite the old one (remove the old
151 one after inserting the new one). Also, re-enable the throwing of
152 exceptions if ThrowOnDuplicate == true.
154 2005-10-24 Chris Toshok <toshok@ximian.com>
156 * AppSettingsSection.cs (Settings): fix ConfigurationProperty
159 * ProtectedConfigurationSection.cs (Providers): same.
161 2005-10-12 Chris Toshok <toshok@ximian.com>
163 * ConfigurationPermission.cs: flesh out as per tests.
165 2005-10-11 Chris Toshok <toshok@ximian.com>
167 * ConfigurationProperty.cs: don't use null to mean no default
168 value, use NoDefaultValue.
170 2005-10-11 Chris Toshok <toshok@ximian.com>
172 * KeyValueConfigurationCollection.cs (GetElementKey): duh.
173 BaseGet calls GetElementKey, so we were hitting an infinite
174 recursion here. Use BaseIndexOf instead.
176 2005-10-07 Chris Toshok <toshok@ximian.com>
178 * InternalConfigurationHost.cs: some interface work, adding in the
181 * ConfigurationProperty.cs: remove debug spew.
183 * Configuration.cs: add NIE'd NamespaceDeclared property.
185 * ElementInformation.cs: add NIE'd Errors property.
187 * PropertyInformationCollection.cs: add NIE'd GetObjectData().
189 * ConfigurationManager.cs: quite a bit of new work here. Some
190 definie TODO's still though.
192 2005-10-07 Chris Toshok <toshok@ximian.com>
194 * ConfigurationErrorsException.cs (.ctor): for the (string)
195 overload, chain up to the base (string) ctor.
197 2005-10-07 Chris Toshok <toshok@ximian.com>
199 * ConfigurationElement.cs (ElementMap.ReflectProperties): make
200 sure the type of the default value is compatible with that of the
201 property itself, and throw ConfigurationErrorsException if they
202 don't match. Fixes t12.
204 2005-10-07 Chris Toshok <toshok@ximian.com>
206 * ConfigHelper.cs: remove some unused code.
208 * ConfigurationProperty.cs: disambiguate the ctor we chain to.
210 * ConfigurationElement.cs (ElementProperty): implement.
211 (ElementMap.ReflectProperties): make DefaultValidator the default
214 2005-10-06 Chris Toshok <toshok@ximian.com>
216 * KeyValueConfigurationElement.cs: uncomment out some stuff.
217 (Properties): just return base.Properties. Not sure why they
218 override this, as the base class's implementation passes our test.
220 * KeyValueConfigurationCollection.cs (Add): for the keyValue
221 overload, call keyValue.Init as the unit test stack traces
222 indicates that'9s where it's called. For the string,string
223 overload, just call the keyValue overload instead of calling
225 (CreateNewElement): just use the name/value ctor, and specify ""
227 (GetElementKey): this function always returns "" for elements that
228 haven't been added to the collection. Once theyre added, it seems
229 to always return keyValue.Key.
230 (Properties): the unit tests show this returns a 0 length
233 2005-10-05 Chris Toshok <toshok@ximian.com>
235 * ConfigurationPermissionAttribute.cs: stub out.
237 2005-10-05 Chris Toshok <toshok@ximian.com>
239 * TimeSpanMinutesOrInfiniteConverter.cs: fill in the
242 2005-10-05 Chris Toshok <toshok@ximian.com>
244 * TimeSpanSecondsConverter.cs: new implementation.
246 2005-10-05 Chris Toshok <toshok@ximian.com>
248 * TimeSpanMinutesConverter.cs: flesh out implementation.
250 * ConfigurationConverterBase.cs: make all subclasses work with
251 strings only, since that's what seems to manifest itself in the
254 2005-10-05 Chris Toshok <toshok@ximian.com>
256 * ConfigurationLockCollection.cs: add NIE'd AttributeList
259 * ConfigurationConverterBase.cs: add MonoTODO'd CanConvertFrom and
260 CanConvertTo methods.
262 * ConfigurationSectionGroup.cs: add NIE'd IsDeclared property.
264 * ProtectedConfigurationSection.cs: add NIE'd properties.
266 * ConfigurationElementCollection.cs: add MonoTODO'd IsReadOnly
267 and SetReadOnly methods, and have then chain up to the base class.
269 * KeyValueConfigurationCollection.cs: add the class level
270 ConfigurationCollectionAttribute, and add a NIE'ed Properties
273 * ProviderSettingsCollection.cs: add the class level
274 ConfigurationCollectionAttribute, and add a "new" keyword to the
275 this property. Also, nuke the Provider's property.
277 * SectionInformation.cs: add some NEI'd properties.
279 * ConfigurationSection.cs (ResetModified): leave the MonoTODO, but
280 chain up to base class's method instead of throwing NIE.
282 * ConnectionStringSettingsCollection.cs: add the class-level
283 ConfigurationCollectionAttribute, and add the unimplemented
286 * ConfigurationErrorsException.cs: flesh this out, and add a
287 pragma to disable the obsolete warnings from our base class.
289 * ProviderSettings.cs: add unimplemented Properties property.
291 * ConfigurationElement.cs: remove unnecessary
292 EvaluationInformation.
294 * InternalConfigurationRoot.cs: add unimplemented IsDesignTime
297 * ConfigurationProperty.cs: add a missing ctor.
299 * AppSettingsSection.cs: add missing "override" keyword.
301 * ConnectionStringsSection.cs: remove override.
303 * ConfigurationSectionCollection.cs: AllKeys -> Keys, and add
304 unimplemented GetObjectData override.
306 * ConfigurationSectionGroupCollection.cs: same.
308 * ConfigurationCollectionAttribute.cs: add missing CollectionType
311 2005-10-05 Chris Toshok <toshok@ximian.com>
313 * ConfigurationPermission.cs: new implementation.
315 * IgnoreSection.cs: new implementation.
317 2005-10-05 Chris Toshok <toshok@ximian.com>
319 * CommaDelimitedStringCollection.cs: new implementation.
321 2005-10-05 Chris Toshok <toshok@ximian.com>
323 * NameValueConfigurationCollection.cs: new implementation.
325 * NameValueConfigurationElement.cs: new implementation.
327 2005-10-05 Chris Toshok <toshok@ximian.com>
329 * ValidatorCallback.cs: new implementation.
331 * SubclassTypeValidator.cs, SubclassTypeValidatorAttribute.cs: new
334 * CallbackValidator.cs, CallbackValidatorAttribute.cs: new
337 * RegexStringValidator.cs, RegexStringValidatorAttribute.cs: new
340 * LongValidator.cs, LongValidatorAttribute.cs: new implementation.
342 * IntegerValidator.cs, IntegerValidatorAttribute.cs: new
345 * DefaultValidator.cs: new implementation.
347 2005-09-28 Chris Toshok <toshok@ximian.com>
349 * ConfigurationElementCollection.cs: more work on the "<clear />"
350 handling - just skip the element for now. this causes a failure
351 in one test ('<clear hi="bye" />' doesn't throw an exception when
352 it should), but it succeeds for collections that have required
355 * ConnectionStringSettings.cs: providerName isn't a required
358 * AppSettingsSection.cs (.cctor): initialize our "file" Property.
361 (GetRuntimeObject): call the base class method instead of just
364 * ConnectionStringsSection.cs: Add a hacky DeserializeElement
365 method here (that isn't in MS's) for the time being so we actually
366 deserialize our collection.
368 2005-09-28 Chris Toshok <toshok@ximian.com>
370 * KeyValueInternalCollection.cs: found this by way of a stack
371 trace in one of the tests. A NameValueCollection that wraps a
372 KeyValueConfigurationCollection.
374 * Configuration.cs (Init): save off configPath.
375 (EvaluationContext): new, mostly implemented.
376 (GetSectionInstance): use IgnoreSection instead of
378 (Load): don't fail when we can't load a file.
380 * IgnoreSection.cs: replace RuntimeOnlySection with this new
383 * RuntimeOnlySection.cs: nuke.
385 2005-09-27 Chris Toshok <toshok@ximian.com>
387 * TimeSpanMinutesOrInfiniteConverter.cs: this is sealed.
389 2005-09-27 Chris Toshok <toshok@ximian.com>
391 * ConfigurationProperty.cs: add IsDefaultCollection property.
393 2005-09-27 Chris Toshok <toshok@ximian.com>
395 * ConfigurationElementProperty.cs: new file.
397 * ConfigurationLockCollection.cs: new file.
399 * ConfigurationElementCollection.cs
400 (OnDeserializeUnrecognizedElement): make sure we consume the
401 <clear /> element so we don't into an endless loop.
403 * ConfigurationElement.cs: add a bunch of NIE's properties.
405 * ContextInformation.cs: Add NIE'ed IsMachineLevel property.
407 2005-09-23 Chris Toshok <toshok@ximian.com>
409 * AppSettingsSection.cs: fix build and add a couple of TODO'ed
412 2005-09-23 Chris Toshok <toshok@ximian.com>
414 * ProviderSettings.cs (Unmerge): track change to
415 ConfigurationElement.Unmerge.
417 * ConfigurationSection.cs: add functions nuked from
418 ConfigurationElement here.
420 * ConfigurationElementCollection.cs: add DebuggerDisplay attribute
422 (BaseGetAllKeys): returns object[], not string[].
423 (BaseGetKey): returns object, not string.
424 (Unmerge): track change to ConfigurationElement.Unmerge signature.
426 * ConfigurationElement.cs (ConfigurationElement.Unmerge): fix
427 signature (drop the serializeCollectionKey parameter).
430 2005-09-23 Chris Toshok <toshok@ximian.com>
432 * StringValidator.cs: throw ArgumentException instead of
433 ConfigurationErrorsException.
435 2005-09-23 Chris Toshok <toshok@ximian.com>
437 * ConnectionStringsSection.cs: track change to
438 ConfigurationPropertyOptions.
440 * ConfigurationPropertyAttribute.cs, ConfigurationProperty.cs,
441 ProviderSettings.cs: track change to ConfigurationPropertyOptions.
443 * ConnectionStringSettings.cs: track change to
444 ConfigurationProprertyOptions, and add some ConfigurationProperty
447 * ConfigurationPropertyOptions.cs: DefaultCollection ->
448 IsDefaultCollection, Required -> IsRequired.
450 2005-09-22 Chris Toshok <toshok@ximian.com>
452 * PositiveTimeSpanValidator.cs: this lives in
453 System.Web.Configuration, not System.Configuration.
455 2005-09-22 Chris Toshok <toshok@ximian.com>
457 * TimeSpanValidator.cs: change to ArgumentException and alter the
460 2005-09-22 Chris Toshok <toshok@ximian.com>
462 * ExeConfigurationFileMap.cs (ctor): init all the strings to "".
464 2005-07-01 Lluis Sanchez Gual <lluis@novell.com>
466 * ProviderSettings.cs: Implemented properties using property attributes.
467 * ConfigurationElement.cs: Implemented ElementInformation property and
468 moved there all value management.
469 * ProtectedConfigurationProvider.cs: Set the correct base class.
470 * SectionInformation.cs: Added missing AllowExeDefinition property.
471 * TimeSpanValidatorAttribute.cs: Implemented.
472 * StringValidator.cs: Implemented.
473 * ProviderSettingsCollection.cs: Added missing class attribute.
474 * ConfigurationSaveMode.cs: Fix enum values.
475 * ConfigurationElementCollection.cs: Added Init method for initializing
476 elements from properties.
477 * StringValidatorAttribute.cs: Implemented.
478 * ConfigurationLocation.cs: Added support for allowOverride flag.
479 * TimeSpanMinutesOrInfiniteConverter.cs: Created skeleton class.
480 * PositiveTimeSpanValidator.cs: Implemented.
481 * TimeSpanMinutesConverter.cs: Created skeleton class.
482 * SectionInfo.cs: Properly read, store and check the values of AllowLocation,
483 AllowDefinition and AllowExeDefinition.
484 * TimeSpanValidator.cs: Implemented.
485 * ConfigurationConverterBase.cs: Created skeleton class.
486 * InternalConfigurationHost.cs: Implemented IsDefinitionAllowed and
487 VerifyDefinitionAllowed.
488 * ConfigurationManager.cs: That class must be static.
489 * PropertyInformationCollection.cs: Implemented.
490 * Configuration.cs: Added some checks for AllowLocation, AllowDefinition and
491 so on. In Save(), don't forget to save location elements.
492 * ConfigurationProperty.cs: Keep track of collection attributes.
493 * ConfigInfo.cs: Support overrideAllowed flag.
494 * KeyValueConfigurationElement.cs: Define properties using attributes.
495 * PropertyValueOrigin.cs: implemented.
496 * PropertyInformation.cs: Mostly implemented.
497 * SectionGroupInfo.cs: Properly propagate the overrideAllowed flag.
498 * ElementInformation.cs: Mostly implemented.
499 * ConfigurationPropertyAttribute.cs: Set the correct default value.
500 * ConfigurationCollectionAttribute.cs: Implemented.
502 2005-06-23 Lluis Sanchez Gual <lluis@novell.com>
504 * SectionInfo.cs: Set the config host when loading the section.
505 * InternalConfigurationHost.cs: Implemented some basic methods.
506 * Configuration.cs: Find the correct parent for the configuration,
507 taking into accound locations and such. Use Host functions to get
509 * ConfigurationLocationCollection.cs: Added find method.
510 * ConfigInfo.cs: Added Host property.
511 * InternalConfigurationFactory.cs: The InitForConfiguration calls
512 are now done in each correspoding configuration.
513 * SectionGroupInfo.cs: When reading a location element, create
514 a Configuration object for each path specified in the location.
515 * ConfigurationElementCollection.cs: Added the CreateNewElementInternal
516 method, which properly initializes the created element.
517 * ConfigurationLocation.cs: OpenConfiguration now has to read the
518 xml contents. It also has to find the correct parent configuration,
519 if it has not been specified.
521 2005-06-17 Lluis Sanchez Gual <lluis@novell.com>
523 * SectionInfo.cs, ConfigInfo.cs, SectionGroupInfo.cs: Minor api fixes.
524 * ConfigurationPropertyCollection.cs: Added Clear method.
525 * ContextInformation.cs: Implemented.
526 * ConfigurationManager.cs: Implemented some missing methods.
527 Configuration objects are now created through the ConfigurationFactory.
528 * InternalConfigurationHost.cs: Implementation of IInternalConfigHost
529 to be used for exe files and machine.config.
530 * ConfigurationFileMap.cs: Implemented.
531 * Configuration.cs: Read and write config files using the methods that
532 IInternalConfigHost provides.
533 * InternalConfigurationRoot.cs: IInternalConfigRoot stub.
534 * ExeContext.cs: Implemented.
535 * AppSettingsSection.cs: Use the KeyValueConfigurationCollection
536 collection to store values.
537 * KeyValueConfigurationElement.cs: Implemented.
538 * KeyValueConfigurationCollection.cs: Implemented.
539 * InternalConfigurationFactory.cs: An implementation of
540 IInternalConfigConfigurationFactory.
541 * ConfigurationPropertyAttribute.cs: Added missing attributes.
542 * ExeConfigurationFileMap.cs: Implemented.
544 2005-06-15 Lluis Sanchez Gual <lluis@novell.com>
546 * ConfigurationElement.cs, ConfigurationErrorsException.cs
547 SectionInfo.cs, ConnectionStringSettingsCollection.cs,
548 ConfigurationPropertyCollection.cs, ProtectedConfigurationProvider.cs,
549 ConfigurationSection.cs, NonEmptyStringConfigurationProperty.cs,
550 ConfigurationElementCollectionType.cs, Configuration.cs,
551 ConnectionStringSettings.cs, ConfigurationProperty.cs,
552 ConfigurationLocationCollection.cs, TimeSpanConfigurationProperty.cs,
553 ConfigurationAllowDefinition.cs, ConfigInfo.cs,
554 ConfigurationSectionGroupCollection.cs, AppSettingsSection.cs,
555 ProviderSettingsCollection.cs, IntegerConfigurationProperty.cs,
556 SectionGroupInfo.cs, ConfigurationUserLevel.cs,
557 ConnectionStringsSection.cs, ConfigurationPropertyAttribute.cs,
558 ConfigurationLocation.cs, ConfigurationSectionCollection.cs,
559 ConfigurationSectionGroup.cs, RuntimeOnlySection.cs,
563 * ConfigurationElementCollection.cs: Implemented support for Basic
564 collection type. Other fixes.
566 * ConfigurationPropertyFlags.cs: Renamed to ConfigurationPropertyOptions.
567 * ConfigurationUpdateMode.cs: Renamed to ConfigurationSaveMode.
569 * SectionInformation.cs, ConfigurationAllowExeDefinition.cs
570 ConfigurationManager.cs, ConfigurationSaveMode.cs,
571 ConfigurationValidatorAttribute.cs, ProtectedConfigurationSection.cs,
572 ConfigurationValidatorBase.cs, ConfigurationPropertyOptions.cs:
575 * ConfigurationValidationAttribute.cs: Removed.
577 * ProviderBase.cs: Moved to System.dll.
579 2005-06-14 Lluis Sanchez Gual <lluis@novell.com>
581 * AppSettingsSection.cs, ConfigInfo.cs, Configuration.cs
582 ConfigurationAllowDefinition.cs, ConfigurationElement.cs
583 ConfigurationElementCollection.cs, ConfigurationElementCollectionType.cs
584 ConfigurationLocation.cs, ConfigurationLocationCollection.cs
585 ConfigurationProperty.cs, ConfigurationPropertyAttribute.cs
586 ConfigurationPropertyCollection.cs, ConfigurationPropertyFlags.cs
587 ConfigurationSection.cs, ConfigurationSectionCollection.cs
588 ConfigurationSectionGroup.cs, ConfigurationSectionGroupCollection.cs
589 ConfigurationUpdateMode.cs, ConfigurationUserLevel.cs
590 ConfigurationValidationAttribute.cs, ConnectionStringsSection.cs
591 ConnectionStringSettingsCollection.cs, ConnectionStringSettings.cs
592 IntegerConfigurationProperty.cs, NonEmptyStringConfigurationProperty.cs
593 NonEmptyStringFlags.cs, PathLevel.cs, ProtectedConfigurationProvider.cs
594 ProviderBase.cs, ProviderSettings.cs, ProviderSettingsCollection.cs
595 RuntimeOnlySection.cs, SectionInfo.cs, SectionGroupInfo.cs
596 TimeSpanConfigurationProperty.cs, TimeSpanPropertyFlags.cs
597 TimeSpanSerializedFormat.cs:
599 Moved from the System assembly.