Add a bunch of configuration types.
authoratsushieno <atsushi@ximian.com>
Fri, 30 Jul 2010 14:20:32 +0000 (23:20 +0900)
committeratsushieno <atsushi@ximian.com>
Fri, 30 Jul 2010 14:20:32 +0000 (23:20 +0900)
25 files changed:
mcs/class/System.ServiceModel.Discovery/ChangeLog
mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/AnnouncementChannelEndpointElementCollection.cs [new file with mode: 0644]
mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/AnnouncementEndpointCollectionElement.cs [new file with mode: 0644]
mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/AnnouncementEndpointElement.cs [new file with mode: 0644]
mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/ChangeLog [new file with mode: 0644]
mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/ContractTypeNameElement.cs [new file with mode: 0644]
mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/ContractTypeNameElementCollection.cs [new file with mode: 0644]
mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/DiscoveryClientElement.cs [new file with mode: 0644]
mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/DiscoveryClientSettingsElement.cs [new file with mode: 0644]
mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/DiscoveryEndpointCollectionElement.cs [new file with mode: 0644]
mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/DiscoveryEndpointElement.cs [new file with mode: 0644]
mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/DiscoveryVersionConverter.cs [new file with mode: 0644]
mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/DynamicEndpointCollectionElement.cs [new file with mode: 0644]
mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/DynamicEndpointElement.cs [new file with mode: 0644]
mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/EndpointDiscoveryElement.cs [new file with mode: 0644]
mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/FindCriteriaElement.cs [new file with mode: 0644]
mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/ScopeElement.cs [new file with mode: 0644]
mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/ScopeElementCollection.cs [new file with mode: 0644]
mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/ServiceDiscoveryElement.cs [new file with mode: 0644]
mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/UdpAnnouncementEndpointCollectionElement.cs [new file with mode: 0644]
mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/UdpAnnouncementEndpointElement.cs [new file with mode: 0644]
mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/UdpDiscoveryEndpointCollectionElement.cs [new file with mode: 0644]
mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/UdpDiscoveryEndpointElement.cs [new file with mode: 0644]
mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/UdpTransportSettingsElement.cs [new file with mode: 0644]
mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.dll.sources

index ce289a8a77db2231a4c1cec2c04ead81f4b34c56..9764b195f34f09531a0221e5d8d8a2210f8bb0f6 100644 (file)
@@ -1,3 +1,9 @@
+2010-07-30  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * System.ServiceModel.Discovery.dll.soures : add config types. NOTE:
+         this somehow breaks compilation. To get working build, remove those
+         config types.
+
 2010-03-19  Atsushi Enomoto  <atsushi@ximian.com>
 
        * : initial checkin (mostly stubs).
diff --git a/mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/AnnouncementChannelEndpointElementCollection.cs b/mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/AnnouncementChannelEndpointElementCollection.cs
new file mode 100644 (file)
index 0000000..fd6eaed
--- /dev/null
@@ -0,0 +1,16 @@
+using System;
+using System.ComponentModel;
+using System.Configuration;
+using System.ServiceModel.Configuration;
+
+namespace System.ServiceModel.Discovery.Configuration
+{
+       [ConfigurationCollection (typeof (ChannelEndpointElement), AddItemName = "endpoint")]
+       public sealed class AnnouncementChannelEndpointElementCollection : ServiceModelConfigurationElementCollection<ChannelEndpointElement>
+       {
+               public AnnouncementChannelEndpointElementCollection ()
+               {
+               }
+       }
+}
+
diff --git a/mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/AnnouncementEndpointCollectionElement.cs b/mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/AnnouncementEndpointCollectionElement.cs
new file mode 100644 (file)
index 0000000..b61ee48
--- /dev/null
@@ -0,0 +1,15 @@
+using System;
+using System.ComponentModel;
+using System.Configuration;
+using System.ServiceModel.Configuration;
+
+namespace System.ServiceModel.Discovery.Configuration
+{
+       public class AnnouncementEndpointCollectionElement : StandardEndpointCollectionElement<AnnouncementEndpoint, AnnouncementEndpointElement>
+       {
+               public AnnouncementEndpointCollectionElement ()
+               {
+               }
+       }
+}
+
diff --git a/mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/AnnouncementEndpointElement.cs b/mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/AnnouncementEndpointElement.cs
new file mode 100644 (file)
index 0000000..16b847f
--- /dev/null
@@ -0,0 +1,76 @@
+using System;
+using System.ComponentModel;
+using System.Configuration;
+using System.ServiceModel.Configuration;
+using System.ServiceModel.Description;
+
+namespace System.ServiceModel.Discovery.Configuration
+{
+       public class AnnouncementEndpointElement : StandardEndpointElement
+       {
+               static ConfigurationPropertyCollection properties;
+               static ConfigurationProperty discovery_version, max_announcement_delay;
+               
+               static AnnouncementEndpointElement ()
+               {
+                       discovery_version = new ConfigurationProperty ("discoveryVersion", typeof (DiscoveryVersion), "WSDiscovery11", new DiscoveryVersionConverter (), null, ConfigurationPropertyOptions.None);
+                       max_announcement_delay = new ConfigurationProperty ("maxAnnouncementDelay", typeof (TimeSpan), "00:00:00", new TimeSpanConverter (), null, ConfigurationPropertyOptions.None);
+                       properties = new ConfigurationPropertyCollection ();
+                       properties.Add (discovery_version);
+                       properties.Add (max_announcement_delay);
+               }
+               
+               public AnnouncementEndpointElement ()
+               {
+               }
+
+               [TypeConverter (typeof (DiscoveryVersionConverter))]
+               [ConfigurationProperty ("discoveryVersion", DefaultValue = "WSDiscovery11")]
+               public DiscoveryVersion DiscoveryVersion {
+                       get { return (DiscoveryVersion) base [discovery_version]; }
+                       set { base [discovery_version] = value; }
+               }
+
+               protected override Type EndpointType {
+                       get { return typeof (AnnouncementEndpoint); }
+               }
+               
+               [TypeConverter (typeof (TimeSpanConverter))]
+               [ConfigurationProperty ("maxAnnouncementDelay", DefaultValue = "00:00:00")]
+               public TimeSpan MaxAnnouncementDelay {
+                       get { return (TimeSpan) base [max_announcement_delay]; }
+                       set { base [max_announcement_delay] = value; }
+               }
+               
+               protected override ServiceEndpoint CreateServiceEndpoint (ContractDescription contractDescription)
+               {
+                       throw new NotImplementedException ();
+               }
+               
+               protected override void InitializeFrom (ServiceEndpoint endpoint)
+               {
+                       throw new NotImplementedException ();
+               }
+               
+               protected override void OnApplyConfiguration (ServiceEndpoint endpoint, ChannelEndpointElement serviceEndpointElement)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               protected override void OnApplyConfiguration (ServiceEndpoint endpoint, ServiceEndpointElement serviceEndpointElement)
+               {
+                       throw new NotImplementedException ();
+               }
+               
+               protected override void OnInitializeAndValidate (ChannelEndpointElement channelEndpointElement)
+               {
+                       throw new NotImplementedException ();
+               }
+               
+               protected override void OnInitializeAndValidate (ServiceEndpointElement serviceEndpointElement)
+               {
+                       throw new NotImplementedException ();
+               }
+       }
+}
+
diff --git a/mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/ChangeLog b/mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/ChangeLog
new file mode 100644 (file)
index 0000000..71d1eee
--- /dev/null
@@ -0,0 +1,3 @@
+2010-07-30  Atsushi Enomoto  <atsushi@ximian.com>
+
+       *.cs : initial checkin.
diff --git a/mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/ContractTypeNameElement.cs b/mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/ContractTypeNameElement.cs
new file mode 100644 (file)
index 0000000..1402a9c
--- /dev/null
@@ -0,0 +1,50 @@
+using System;
+using System.ComponentModel;
+using System.Configuration;
+using System.ServiceModel.Configuration;
+
+namespace System.ServiceModel.Discovery.Configuration
+{
+       public sealed class ContractTypeNameElement : ConfigurationElement
+       {
+               static ConfigurationPropertyCollection properties;
+               static ConfigurationProperty name, @namespace;
+               
+               static ContractTypeNameElement ()
+               {
+                       name = new ConfigurationProperty ("name", typeof (string), null, null, new StringValidator (0), ConfigurationPropertyOptions.IsRequired | ConfigurationPropertyOptions.IsKey);
+                       @namespace = new ConfigurationProperty ("namespace", typeof (string), "http://tempuri.org/", null, null, ConfigurationPropertyOptions.IsKey);
+                       properties = new ConfigurationPropertyCollection ();
+                       properties.Add (name);
+                       properties.Add (@namespace);
+               }
+               
+               public ContractTypeNameElement ()
+               {
+               }
+               
+               public ContractTypeNameElement (string name, string ns)
+               {
+                       Name = name;
+                       Namespace = ns;
+               }
+               
+               [ConfigurationProperty ("name", Options = ConfigurationPropertyOptions.IsRequired | ConfigurationPropertyOptions.IsKey)]
+               [StringValidator (MinLength = 0)]
+               public string Name {
+                       get { return (string) Properties [name]; }
+                       set { Properties [name] = value; }
+               }
+
+               [ConfigurationProperty ("namespace", DefaultValue = "http://tempuri.org/", Options = ConfigurationPropertyOptions.IsKey)]
+               public string Namespace {
+                       get { return (string) Properties [@namespace]; }
+                       set { Properties [@namespace] = value; }
+               }
+               
+               protected override ConfigurationPropertyCollection Properties {
+                       get { return properties; }
+               }
+       }
+}
+
diff --git a/mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/ContractTypeNameElementCollection.cs b/mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/ContractTypeNameElementCollection.cs
new file mode 100644 (file)
index 0000000..4c47951
--- /dev/null
@@ -0,0 +1,16 @@
+using System;
+using System.ComponentModel;
+using System.Configuration;
+using System.ServiceModel.Configuration;
+
+namespace System.ServiceModel.Discovery.Configuration
+{
+       [ConfigurationCollection (typeof(ContractTypeNameElement))]
+       public sealed class ContractTypeNameElementCollection : ServiceModelConfigurationElementCollection<ContractTypeNameElement>
+       {
+               public ContractTypeNameElementCollection ()
+               {
+               }
+       }
+}
+
diff --git a/mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/DiscoveryClientElement.cs b/mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/DiscoveryClientElement.cs
new file mode 100644 (file)
index 0000000..0a9169b
--- /dev/null
@@ -0,0 +1,41 @@
+using System;
+using System.ComponentModel;
+using System.Configuration;
+using System.ServiceModel.Configuration;
+
+namespace System.ServiceModel.Discovery.Configuration
+{
+       public sealed class DiscoveryClientElement : BindingElementExtensionElement
+       {
+               static ConfigurationPropertyCollection properties;
+               static ConfigurationProperty endpoint, find_criteria;
+               
+               static DiscoveryClientElement ()
+               {
+                       endpoint = new ConfigurationProperty ("endpoint", typeof (ChannelEndpointElement), null, null, null, ConfigurationPropertyOptions.None);
+                       find_criteria = new ConfigurationProperty ("findCriteria", typeof (FindCriteriaElement), null, null, null, ConfigurationPropertyOptions.None);
+                       properties = new ConfigurationPropertyCollection ();
+                       properties.Add (endpoint);
+                       properties.Add (find_criteria);
+               }
+
+               public DiscoveryClientElement ()
+               {
+               }
+               
+               public override Type BindingElementType {
+                       get { return typeof (DiscoveryClientBindingElement); }
+               }
+
+               [ConfigurationProperty ("endpoint")]
+               public ChannelEndpointElement DiscoveryEndpoint {
+                       get { return (ChannelEndpointElement) Properties [endpoint]; }
+               }
+
+               [ConfigurationProperty ("findCriteria")]
+               public FindCriteriaElement FindCriteria {
+                       get { return (FindCriteriaElement) Properties [find_criteria]; }
+               }
+       }
+}
+
diff --git a/mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/DiscoveryClientSettingsElement.cs b/mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/DiscoveryClientSettingsElement.cs
new file mode 100644 (file)
index 0000000..6cbf91d
--- /dev/null
@@ -0,0 +1,37 @@
+using System;
+using System.ComponentModel;
+using System.Configuration;
+using System.ServiceModel.Configuration;
+
+namespace System.ServiceModel.Discovery.Configuration
+{
+       public sealed class DiscoveryClientSettingsElement : ConfigurationElement
+       {
+               static ConfigurationPropertyCollection properties;
+               static ConfigurationProperty endpoint, find_criteria;
+               
+               static DiscoveryClientSettingsElement ()
+               {
+                       endpoint = new ConfigurationProperty ("endpoint", typeof (ChannelEndpointElement), null, null, null, ConfigurationPropertyOptions.None);
+                       find_criteria = new ConfigurationProperty ("findCriteria", typeof (FindCriteriaElement), null, null, null, ConfigurationPropertyOptions.None);
+                       properties = new ConfigurationPropertyCollection ();
+                       properties.Add (endpoint);
+                       properties.Add (find_criteria);
+               }
+               
+               public DiscoveryClientSettingsElement ()
+               {
+               }
+               
+               [ConfigurationProperty ("endpoint")]
+               public ChannelEndpointElement DiscoveryEndpoint {
+                       get { return (ChannelEndpointElement) Properties [discovery_element]; }
+               }
+               
+               [ConfigurationProperty ("findCriteria")]
+               public FindCriteriaElement FindCriteria {
+                       get { return (FindCriteriaElement) Properties [find_criteria]; }
+               }
+       }
+}
+
diff --git a/mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/DiscoveryEndpointCollectionElement.cs b/mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/DiscoveryEndpointCollectionElement.cs
new file mode 100644 (file)
index 0000000..50cd30a
--- /dev/null
@@ -0,0 +1,15 @@
+using System;
+using System.ComponentModel;
+using System.Configuration;
+using System.ServiceModel.Configuration;
+
+namespace System.ServiceModel.Discovery.Configuration
+{
+       public class DiscoveryEndpointCollectionElement : StandardEndpointCollectionElement<DiscoveryEndpoint, DiscoveryEndpointElement>
+       {
+               public DiscoveryEndpointCollectionElement ()
+               {
+               }
+       }
+}
+
diff --git a/mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/DiscoveryEndpointElement.cs b/mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/DiscoveryEndpointElement.cs
new file mode 100644 (file)
index 0000000..533f80c
--- /dev/null
@@ -0,0 +1,46 @@
+using System;
+using System.ComponentModel;
+using System.Configuration;
+using System.ServiceModel.Configuration;
+using System.ServiceModel.Description;
+
+namespace System.ServiceModel.Discovery.Configuration
+{
+       public class DiscoveryEndpointElement : StandardEndpointElement
+       {
+               public DiscoveryEndpointElement ()
+               {
+               }
+
+               protected override ServiceEndpoint CreateServiceEndpoint (ContractDescription contractDescription)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               protected override void InitializeFrom (ServiceEndpoint endpoint)
+               {
+                       throw new NotImplementedException ();
+               }
+               
+               protected override void OnApplyConfiguration (ServiceEndpoint endpoint, ChannelEndpointElement serviceEndpointElement)
+               {
+                       throw new NotImplementedException ();
+               }
+               
+               protected override void OnApplyConfiguration (ServiceEndpoint endpoint, ServiceEndpointElement serviceEndpointElement)
+               {
+                       throw new NotImplementedException ();
+               }
+               
+               protected override void OnInitializeAndValidate (ChannelEndpointElement channelEndpointElement)
+               {
+                       throw new NotImplementedException ();
+               }
+               
+               protected override void OnInitializeAndValidate (ServiceEndpointElement channelEndpointElement)
+               {
+                       throw new NotImplementedException ();
+               }
+       }
+}
+
diff --git a/mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/DiscoveryVersionConverter.cs b/mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/DiscoveryVersionConverter.cs
new file mode 100644 (file)
index 0000000..eef51ce
--- /dev/null
@@ -0,0 +1,35 @@
+using System;
+using System.ComponentModel;
+using System.Configuration;
+using System.Globalization;
+
+namespace System.ServiceModel.Discovery.Configuration
+{
+       public class DiscoveryVersionConverter : TypeConverter
+       {
+               public DiscoveryVersionConverter ()
+               {
+               }
+               
+               public override bool CanConvertFrom (ITypeDescriptorContext context, Type sourceType)
+               {
+                       throw new NotImplementedException ();
+               }
+               
+               public override bool CanConvertTo (ITypeDescriptorContext context, Type destinationType)
+               {
+                       throw new NotImplementedException ();
+               }
+               
+               public override object ConvertFrom (ITypeDescriptorContext context, CultureInfo culture, object value)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public override object ConvertTo (ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType)
+               {
+                       throw new NotImplementedException ();
+               }
+       }
+}
+
diff --git a/mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/DynamicEndpointCollectionElement.cs b/mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/DynamicEndpointCollectionElement.cs
new file mode 100644 (file)
index 0000000..9462cd4
--- /dev/null
@@ -0,0 +1,15 @@
+using System;
+using System.ComponentModel;
+using System.Configuration;
+using System.ServiceModel.Configuration;
+
+namespace System.ServiceModel.Discovery.Configuration
+{
+       public class DynamicEndpointCollectionElement : StandardEndpointCollectionElement<DynamicEndpoint, DynamicEndpointElement>
+       {
+               public DynamicEndpointCollectionElement ()
+               {
+               }
+       }
+}
+
diff --git a/mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/DynamicEndpointElement.cs b/mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/DynamicEndpointElement.cs
new file mode 100644 (file)
index 0000000..35faba0
--- /dev/null
@@ -0,0 +1,30 @@
+using System;
+using System.ComponentModel;
+using System.Configuration;
+using System.ServiceModel.Configuration;
+
+namespace System.ServiceModel.Discovery.Configuration
+{
+       public sealed class DynamicEndpointElement : StandardEndpointElement
+       {
+               static ConfigurationPropertyCollection properties;
+               static ConfigurationProperty discovery_client_settings;
+               
+               static DynamicEndpointElement ()
+               {
+                       discovery_client_settings = new ConfigurationProperty ("discoveryClientSettings", typeof (DiscoveryClientSettingsElement), null, null, null, ConfigurationPropertyOptions.None);
+                       properties = new ConfigurationPropertyCollection ();
+                       properties.Add (discovery_client_settings);
+               }
+               
+               public DynamicEndpointElement ()
+               {
+               }
+
+               [ConfigurationProperty ("discoveryClientSettings")]
+               public DiscoveryClientSettingsElement DiscoveryClientSettings {
+                       get { return (DiscoveryClientSettingsElement) Prperties [discovery_client_settings]; }
+               }
+       }
+}
+
diff --git a/mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/EndpointDiscoveryElement.cs b/mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/EndpointDiscoveryElement.cs
new file mode 100644 (file)
index 0000000..75bb62e
--- /dev/null
@@ -0,0 +1,56 @@
+using System;
+using System.ComponentModel;
+using System.Configuration;
+using System.ServiceModel.Configuration;
+
+namespace System.ServiceModel.Discovery.Configuration
+{
+       public sealed class EndpointDiscoveryElement : BehaviorExtensionElement
+       {
+               static ConfigurationPropertyCollection properties;
+               static ConfigurationProperty types, enabled, extensions, scopes;
+               
+               static EndpointDiscoveryElement ()
+               {
+                       types = new ConfigurationProperty ("types", typeof (ContractTypeNameElementCollection), null, null, null, ConfigurationPropertyOptions.None);
+                       enabled = new ConfigurationProperty ("enabled", typeof (bool), null, null, null, ConfigurationPropertyOptions.None);
+                       extensions = new ConfigurationProperty ("extensions", typeof (XmlElementElementCollection), null, null, null, ConfigurationPropertyOptions.None);
+                       scopes = new ConfigurationProperty ("scopes", typeof (ScopeElementCollection), null, null, null, ConfigurationPropertyOptions.None);
+                       properties = new ConfigurationPropertyCollection ();
+                       properties.Add (types);
+                       properties.Add (enabled);
+                       properties.Add (extensions);
+                       properties.Add (scopes);
+               }
+
+               public EndpointDiscoveryElement ()
+               {
+               }
+               
+               public override Type BehaviorType {
+                       get { return typeof (EndpointDiscoveryBehavior); }
+               }
+
+               [ConfigurationProperty ("types")]
+               public ContractTypeNameElementCollection ContractTypeNames {
+                       get { return (ContractTypeNameElementCollection) Properties [types]; }
+               }
+               
+               [ConfigurationPropertyAttribute("enabled", DefaultValue = true)]
+               public bool Enabled {
+                       get { return (bool) Properties [enabled]; }
+                       set { Properties [enabled] = value; }
+               }
+               
+               [ConfigurationPropertyAttribute("extensions")]
+               public XmlElementElementCollection Extensions {
+                       get { return (XmlElementElementCollection) Properties [extensions]; }
+               }
+               
+               [ConfigurationPropertyAttribute("scopes")]
+               public ScopeElementCollection Scopes {
+                       get { return (ScopeElementCollection) Properties [scopes]; }
+               }
+       }
+}
+
diff --git a/mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/FindCriteriaElement.cs b/mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/FindCriteriaElement.cs
new file mode 100644 (file)
index 0000000..f5a4a9c
--- /dev/null
@@ -0,0 +1,71 @@
+using System;
+using System.ComponentModel;
+using System.Configuration;
+using System.ServiceModel.Configuration;
+
+namespace System.ServiceModel.Discovery.Configuration
+{
+       public sealed class FindCriteriaElement : ConfigurationElement
+       {
+               static ConfigurationPropertyCollection properties;
+               static ConfigurationProperty types, duration, extensions, max_results, scope_match_by, scopes;
+               
+               static FindCriteriaElement ()
+               {
+                       types = new ConfigurationProperty ("types", typeof (ContractTypeNameElementCollection), null, null, null, ConfigurationPropertyOptions.None);
+                       duration = new ConfigurationProperty ("duration", typeof (TimeSpan), "00:00:20", new TimeSpanconverter (), null, ConfigurationPropertyOptions.None);
+                       extensions = new ConfigurationProperty ("extensions", typeof (XmlElementElementCollection), null, null, null, ConfigurationPropertyOptions.None);
+                       max_results = new ConfigurationProperty ("maxResults", typeof (TimeSpan), "00:00:20", new TimeSpanconverter (), null, ConfigurationPropertyOptions.None);
+                       scope_match_by = new ConfigurationProperty ("scopeMatchBy", typeof (Uri), null, null, null, ConfigurationPropertyOptions.None);
+                       scopes = new ConfigurationProperty ("scopes", typeof (ScopeElementCollection), null, null, null, ConfigurationPropertyOptions.None);
+                       properties = new ConfigurationPropertyCollection ();
+                       properties.Add (types);
+                       properties.Add (duration);
+                       properties.Add (extensions);
+                       properties.Add (max_results);
+                       properties.Add (scope_match_by);
+                       properties.Add (scopes);
+               }
+
+               public FindCriteriaElement ()
+               {
+               }
+
+               [ConfigurationProperty ("types")]
+               public ContractTypeNameElementCollection ContractTypeNames {
+                       get { return (ContractTypeNameElementCollection) Properties [types]; }
+               }
+               
+               [ConfigurationProperty ("duration", DefaultValue = "00:00:20")]
+               [TypeConverter (typeof (TimeSpanConverter))]
+               public TimeSpan Duration {
+                       get { return (TimeSpan) Properties [duration]; }
+                       set { Properties [duration] = value; }
+               }
+               
+               [ConfigurationProperty ("extensions")]
+               public XmlElementElementCollection Extensions {
+                       get { return (XmlElementElementCollection) Properties [extensions]; }
+               }
+               
+               [ConfigurationProperty ("maxResults", DefaultValue = 0)]
+               [IntegerValidator (0, int.MaxValue)]
+               public int MaxResults  {
+                       get { return (int) Properties [max_results]; }
+                       set { Properties [max_results] = value; }
+               }
+               
+               [ConfigurationProperty ("scopeMatchBy")]
+               [TypeConverter (typeof (UriTypeConverter))]
+               public Uri ScopeMatchBy {
+                       get { return (Uri) Properties [scope_match_by]; }
+                       set { Properties [scope_match_by] = value; }
+               }
+               
+               [ConfigurationProperty ("scopes")]
+               public ScopeElementCollection Scopes {
+                       get { return (ScopeElementCollection) Properties [scopes]; }
+               }
+       }
+}
+
diff --git a/mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/ScopeElement.cs b/mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/ScopeElement.cs
new file mode 100644 (file)
index 0000000..ba6bf25
--- /dev/null
@@ -0,0 +1,34 @@
+using System;
+using System.ComponentModel;
+using System.Configuration;
+using System.ServiceModel.Configuration;
+
+
+namespace System.ServiceModel.Discovery.Configuration
+{
+       public sealed class ScopeElement : ConfigurationElement
+       {
+               static ConfigurationPropertyCollection properties;
+               static ConfigurationProperty scope;
+               
+               static ScopeElement ()
+               {
+                       scope = new ConfigurationProperty ("scopes", typeof (Uri), null, new CallbackValidator (typeof (ScopeElement), null/*FIXME: fill it*/), null, ConfigurationPropertyOptions.IsRequired | ConfigurationPropertyOptions.IsKey);
+                       properties = new ConfigurationPropertyCollection ();
+                       properties.Add (scope);
+               }
+
+               public ScopeElement ()
+               {
+               }
+               
+               [MonoTODO]
+               [ConfigurationProperty ("scope", Options = ConfigurationPropertyOptions.IsRequired | ConfigurationPropertyOptions.IsKey)]
+               [CallbackValidator (CallbackMethodName = "ScopeValidatorCallback", Type = typeof (ScopeElement))]
+               public Uri Scope {
+                       get { return (Uri) Properties [scope]; }
+                       set { Properties [scope] = value; }
+               }
+       }
+}
+
diff --git a/mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/ScopeElementCollection.cs b/mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/ScopeElementCollection.cs
new file mode 100644 (file)
index 0000000..1896a46
--- /dev/null
@@ -0,0 +1,16 @@
+using System;
+using System.ComponentModel;
+using System.Configuration;
+using System.ServiceModel.Configuration;
+
+namespace System.ServiceModel.Discovery.Configuration
+{
+       [ConfigurationCollection (typeof (ScopeElement))]
+       public sealed class ScopeElementCollection : ServiceModelConfigurationElementCollection<ScopeElement>
+       {
+               public ScopeElementCollection ()
+               {
+               }
+       }
+}
+
diff --git a/mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/ServiceDiscoveryElement.cs b/mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/ServiceDiscoveryElement.cs
new file mode 100644 (file)
index 0000000..68e8f44
--- /dev/null
@@ -0,0 +1,34 @@
+using System;
+using System.ComponentModel;
+using System.Configuration;
+using System.ServiceModel.Configuration;
+using System.ServiceModel.Description;
+
+namespace System.ServiceModel.Discovery.Configuration
+{
+       public sealed class ServiceDiscoveryElement : BehaviorExtensionElement
+       {
+               static ConfigurationPropertyCollection properties;
+               static ConfigurationProperty announcement_endpoints;
+               
+               static ServiceDiscoveryElement ()
+               {
+                       announcement_endpoints = new ConfigurationProperty ("announcementEndpoints", typeof (AnnouncementChannelEndpointElementCollection), null, null, null, ConfigurationPropertyOptions.None);
+                       properties = new ConfigurationPropertyCollection ();
+                       properties.Add (announcement_endpoints);
+               }
+
+               public ServiceDiscoveryElement ()
+               {
+               }
+
+               [ConfigurationProperty ("announcementEndpoints")]
+               public AnnouncementChannelEndpointElementCollection AnnouncementEndpoints {
+                       get { return Properties [announcement_endpoints]; }
+               }
+               public override Type BehaviorType {
+                       get { return typeof (ServiceDiscoveryBehavior); }
+               }
+       }
+}
+
diff --git a/mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/UdpAnnouncementEndpointCollectionElement.cs b/mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/UdpAnnouncementEndpointCollectionElement.cs
new file mode 100644 (file)
index 0000000..66d31c5
--- /dev/null
@@ -0,0 +1,15 @@
+using System;
+using System.ComponentModel;
+using System.Configuration;
+using System.ServiceModel.Configuration;
+
+namespace System.ServiceModel.Discovery.Configuration
+{
+       public class UdpAnnouncementEndpointCollectionElement : StandardEndpointCollectionElement<UdpAnnouncementEndpoint, UdpAnnouncementEndpointElement>
+       {
+               public UdpAnnouncementEndpointCollectionElement ()
+               {
+               }
+       }
+}
+
diff --git a/mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/UdpAnnouncementEndpointElement.cs b/mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/UdpAnnouncementEndpointElement.cs
new file mode 100644 (file)
index 0000000..ddcd976
--- /dev/null
@@ -0,0 +1,53 @@
+using System;
+using System.ComponentModel;
+using System.Configuration;
+using System.ServiceModel.Configuration;
+using System.ServiceModel.Description;
+
+namespace System.ServiceModel.Discovery.Configuration
+{
+       public class UdpAnnouncementEndpointElement : AnnouncementEndpointElement
+       {
+               static ConfigurationPropertyCollection properties;
+               static ConfigurationProperty max_announcement_delay, multicast_address, transport_settings;
+               
+               static UdpAnnouncementEndpointElement ()
+               {
+                       max_announcement_delay = new ConfigurationProperty ("maxAnnouncementDelay", typeof (TimeSpan), "00:00:00.500", new TimeSpanConverter (), null, ConfigurationPropertyOptions.None);
+                       multicast_address = new ConfigurationProperty ("multicastAddress", typeof (Uri), "soap.udp://239.255.255.250:3702", new UriTypeConverter (), null, ConfigurationPropertyOptions.None);
+                       transport_settings = new ConfigurationProperty ("transportSettings", typeof (UdpTransportSettingsElement), null, null, null, ConfigurationPropertyOptions.None);
+                       properties = new ConfigurationPropertyCollection ();
+                       properties.Add (max_announcement_delay);
+                       properties.Add (multicast_address);
+                       properties.Add (transport_settings);
+               }
+               
+               public UdpAnnouncementEndpointElement ()
+               {
+               }
+               
+               protected override Type EndpointType {
+                       get { return typeof (UdpAnnouncementEndpoint); }
+               }
+               
+               [TypeConverter (typeof (TimeSpanConverter))]
+               [ConfigurationPropertyAttribute("maxAnnouncementDelay", DefaultValue = "00:00:00.500")]
+               public TimeSpan MaxAnnouncementDelay {
+                       get { return Properties [max_announcement_delay]; }
+                       set { Properties [max_announcement_delay] = value; }
+               }
+               
+               [TypeConverter (typeof (UriTypeConverter))]
+               [ConfigurationPropertyAttribute("multicastAddress", DefaultValue = "soap.udp://239.255.255.250:3702")]
+               public Uri MulticastAddress {
+                       get { return Properties [multicast_address]; }
+                       set { Properties [multicast_address] = value; }
+               }
+               
+               [ConfigurationPropertyAttribute("transportSettings")]
+               public UdpTransportSettingsElement TransportSettings {
+                       get { return Properties [transport_settings]; }
+               }
+       }
+}
+
diff --git a/mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/UdpDiscoveryEndpointCollectionElement.cs b/mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/UdpDiscoveryEndpointCollectionElement.cs
new file mode 100644 (file)
index 0000000..5c526f6
--- /dev/null
@@ -0,0 +1,15 @@
+using System;
+using System.ComponentModel;
+using System.Configuration;
+using System.ServiceModel.Configuration;
+
+namespace System.ServiceModel.Discovery.Configuration
+{
+       public class UdpDiscoveryEndpointCollectionElement : StandardEndpointCollectionElement<UdpDiscoveryEndpoint, UdpDiscoveryEndpointElement>
+       {
+               public UdpDiscoveryEndpointCollectionElement ()
+               {
+               }
+       }
+}
+
diff --git a/mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/UdpDiscoveryEndpointElement.cs b/mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/UdpDiscoveryEndpointElement.cs
new file mode 100644 (file)
index 0000000..b085d14
--- /dev/null
@@ -0,0 +1,84 @@
+using System;
+using System.ComponentModel;
+using System.Configuration;
+using System.ServiceModel.Configuration;
+using System.ServiceModel.Description;
+
+namespace System.ServiceModel.Discovery.Configuration
+{
+       public class UdpDiscoveryEndpointElement : DiscoveryEndpointElement
+       {
+               static ConfigurationPropertyCollection properties;
+               static ConfigurationProperty discovery_mode, max_response_delay, multicast_address, transport_settings;
+               
+               static UdpDiscoveryEndpointElement ()
+               {
+                       discovery_mode = new ConfigurationProperty ("discoveryMode", typeof (ServiceDiscoveryMode), ServiceDiscoveryMode.Adhoc, null, null, ConfigurationPropertyOptions.None);
+                       max_response_delay = new ConfigurationProperty ("maxResponseDelay", typeof (TimeSpan), "00:00:00.500", new TimeSpanConverter (), null, ConfigurationPropertyOptions.None);
+                       multicast_address = new ConfigurationProperty ("multicastAddress", typeof (Uri), "soap.udp://239.255.255.250:3702", new UriTypeConverter (), null, ConfigurationPropertyOptions.None);
+                       transport_settings = new ConfigurationProperty ("transportSettings", typeof (UdpTransportSettingsElement), null, null, null, ConfigurationPropertyOptions.None);
+                       properties = new ConfigurationPropertyCollection ();
+                       properties.Add (discovery_mode);
+                       properties.Add (max_response_delay);
+                       properties.Add (multicast_address);
+                       properties.Add (transport_settings);
+               }
+
+               public UdpDiscoveryEndpointElement ()
+               {
+               }
+
+               [ConfigurationProperty ("discoveryMode", DefaultValue = ServiceDiscoveryMode.Adhoc)]
+               public ServiceDiscoveryMode DiscoveryMode {
+                       get { return (ServiceDiscoveryMode) Propperties [discovery_mode]; }
+                       set { Properties [discovery_mode] = value; }
+               }
+
+               protected override Type EndpointType {
+                       get { return typeof (UdpDiscoveryEndpoint); }
+               }
+
+               [ConfigurationProperty ("maxResponseDelay", DefaultValue = "00:00:00.500")]
+               public TimeSpan MaxResponseDelay {
+                       get { return (TimeSpan) Propperties [max_response_delay]; }
+                       set { Properties [max_response_delay] = value; }
+               }
+
+               [ConfigurationProperty ("multicastAddress", DefaultValue = "soap.udp://239.255.255.250:3702")]
+               public Uri MulticastAddress {
+                       get { return (Uri) Propperties [multicast_address]; }
+                       set { Properties [multicast_address] = value; }
+               }
+
+               [ConfigurationProperty ("transportSettings")]
+               public UdpTransportSettingsElement TransportSettings {
+                       get { return (UdpTransportSettingsElement) Propperties [transport_settings]; }
+               }
+                       
+               protected override ServiceEndpoint CreateServiceEndpoint (ContractDescription contractDescription)
+               {
+                       throw new NotImplementedException ();
+               }
+               protected override void InitializeFrom (ServiceEndpoint endpoint)
+               {
+                       throw new NotImplementedException ();
+               }
+               protected override void OnApplyConfiguration (ServiceEndpoint endpoint, ChannelEndpointElement serviceEndpointElement)
+               {
+                       throw new NotImplementedException ();
+               }
+               protected override void OnApplyConfiguration (ServiceEndpoint endpoint, ServiceEndpointElement serviceEndpointElement)
+               {
+                       throw new NotImplementedException ();
+               }
+               protected override void OnInitializeAndValidate (ChannelEndpointElement channelEndpointElement)
+               {
+                       throw new NotImplementedException ();
+               }
+               protected override void OnInitializeAndValidate (ServiceEndpointElement channelEndpointElement)
+               {
+                       throw new NotImplementedException ();
+               }
+       }
+}
+
diff --git a/mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/UdpTransportSettingsElement.cs b/mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Configuration/UdpTransportSettingsElement.cs
new file mode 100644 (file)
index 0000000..425ce54
--- /dev/null
@@ -0,0 +1,15 @@
+using System;
+using System.ComponentModel;
+using System.Configuration;
+using System.ServiceModel.Configuration;
+
+namespace System.ServiceModel.Discovery.Configuration
+{
+       public sealed class UdpTransportSettingsElement : ConfigurationElement
+       {
+               public UdpTransportSettingsElement ()
+               {
+               }
+       }
+}
+
index 480500485d2fcb4b424bde858ae28e780044a770..c24404981426cb2c4f5262aeec974c97c188044f 100644 (file)
@@ -2,6 +2,28 @@
 ../../build/common/Locale.cs
 ../../build/common/MonoTODOAttribute.cs
 Assembly/AssemblyInfo.cs
+System.ServiceModel.Discovery.Configuration/AnnouncementChannelEndpointElementCollection.cs
+System.ServiceModel.Discovery.Configuration/AnnouncementEndpointCollectionElement.cs
+System.ServiceModel.Discovery.Configuration/AnnouncementEndpointElement.cs
+System.ServiceModel.Discovery.Configuration/ContractTypeNameElement.cs
+System.ServiceModel.Discovery.Configuration/ContractTypeNameElementCollection.cs
+System.ServiceModel.Discovery.Configuration/DiscoveryClientElement.cs
+System.ServiceModel.Discovery.Configuration/DiscoveryClientSettingsElement.cs
+System.ServiceModel.Discovery.Configuration/DiscoveryEndpointCollectionElement.cs
+System.ServiceModel.Discovery.Configuration/DiscoveryEndpointElement.cs
+System.ServiceModel.Discovery.Configuration/DiscoveryVersionConverter.cs
+System.ServiceModel.Discovery.Configuration/DynamicEndpointCollectionElement.cs
+System.ServiceModel.Discovery.Configuration/DynamicEndpointElement.cs
+System.ServiceModel.Discovery.Configuration/EndpointDiscoveryElement.cs
+System.ServiceModel.Discovery.Configuration/FindCriteriaElement.cs
+System.ServiceModel.Discovery.Configuration/ScopeElement.cs
+System.ServiceModel.Discovery.Configuration/ScopeElementCollection.cs
+System.ServiceModel.Discovery.Configuration/ServiceDiscoveryElement.cs
+System.ServiceModel.Discovery.Configuration/UdpAnnouncementEndpointCollectionElement.cs
+System.ServiceModel.Discovery.Configuration/UdpAnnouncementEndpointElement.cs
+System.ServiceModel.Discovery.Configuration/UdpDiscoveryEndpointCollectionElement.cs
+System.ServiceModel.Discovery.Configuration/UdpDiscoveryEndpointElement.cs
+System.ServiceModel.Discovery.Configuration/UdpTransportSettingsElement.cs
 System.ServiceModel.Discovery.VersionApril2005/DiscoveryMessageSequenceApril2005.cs
 System.ServiceModel.Discovery.VersionApril2005/EndpointDiscoveryMetadataApril2005.cs
 System.ServiceModel.Discovery.VersionApril2005/FindCriteriaApril2005.cs