Sorry for the delay; you may have heard about a tornado outbreak in my
area, and it has me quite backed up here at work.

I believe that I have send that pull request.  I'm new to Git, so it
took me a little while to figure out how to get everything going to
send the request.

I included a test that somewhat verifies that the service host is
setup correctly, which is really the only thing that this code adds
over the base classes.  Like I said, I'm now backed up at work, so it
didn't make business sense to spend time duplicating existing tests
that basically cover the base classes for the DataService* classes.

Please let me know if you need anything else from me, and I'll try to
squeeze it in if I can.

Thanks!



On Apr 28, 7:23 am, Craig Neuwirt <[email protected]> wrote:
> Yes, please create a fork and pull request and I'll incorporate your changes. 
>  As Krzysztof, please include some tests too.
>
> thanks,
>   craig
>
> On Apr 27, 2011, at 6:34 PM, Krzysztof Koźmic wrote:
>
>
>
>
>
>
>
> > Hi there,
>
> > I think the preferred way of working with Git would be to fork the facility 
> > on github and provide a pull request.
>
> > I'm not seeing any tests too, perhaps it would be useful to provide some.
>
> > You can find the following useful:
> >http://docs.castleproject.org/How-to-submit-a-fix-to-any-Castle-Proje...
> >http://docs.castleproject.org/Castle-Coding-Standards.ashx
>
> > cheers,
> > Krzysztof
>
> > On 28/04/2011 2:35 AM, FancyFred wrote:
> >> I added support for WCF Data Services to the WCF Facility.  There is a
> >> DataServiceHostFactory (and related types) that can be used the same
> >> way as the DefaultServiceHostFactory is used.
>
> >> Please let me know if I should provide this patch to someone specific
> >> or deliver it differently.
>
> >> Thanks!
>
> >> ---------------------------------------------------------------------------
> >>  -----
>
> >> From 7847d52664848f064762782b0583d10db7940d3d Mon Sep 17 00:00:00 2001
> >> From: unknown<Fred@.(none)>
> >> Date: Wed, 27 Apr 2011 11:26:12 -0500
> >> Subject: [PATCH] Added convenient support for WCF Data Services by
> >> providing a DataServiceHostFactory and other related types.
>
> >> ---
> >>  .../Castle.Facilities.WcfIntegration.csproj        |    5 +++
> >>  .../Service/Data/DataServiceHost.cs                |   11 +++++++
> >>  .../Service/Data/DataServiceHostBuilder.cs         |   30 ++++++++++++
> >> ++++++++
> >>  .../Service/Data/DataServiceHostFactory.cs         |   16 ++++++++++
> >>  .../Service/Data/DataServiceModel.cs               |   25 ++++++++++++
> >> ++++
> >>  .../Service/WcfServiceExtension.cs                 |    2 +
> >>  6 files changed, 89 insertions(+), 0 deletions(-)
> >>  create mode 100644 src/Castle.Facilities.WcfIntegration/Service/Data/
> >> DataServiceHost.cs
> >>  create mode 100644 src/Castle.Facilities.WcfIntegration/Service/Data/
> >> DataServiceHostBuilder.cs
> >>  create mode 100644 src/Castle.Facilities.WcfIntegration/Service/Data/
> >> DataServiceHostFactory.cs
> >>  create mode 100644 src/Castle.Facilities.WcfIntegration/Service/Data/
> >> DataServiceModel.cs
>
> >> diff --git a/src/Castle.Facilities.WcfIntegration/
> >> Castle.Facilities.WcfIntegration.csproj b/src/
> >> Castle.Facilities.WcfIntegration/
> >> Castle.Facilities.WcfIntegration.csproj
> >> index eba8875..aa3ca5e 100644
> >> --- a/src/Castle.Facilities.WcfIntegration/
> >> Castle.Facilities.WcfIntegration.csproj
> >> +++ b/src/Castle.Facilities.WcfIntegration/
> >> Castle.Facilities.WcfIntegration.csproj
> >> @@ -64,6 +64,7 @@
> >>        <RequiredTargetFramework>3.5</RequiredTargetFramework>
> >>      </Reference>
> >>      <Reference Include="System.Data" />
> >> +<Reference Include="System.Data.Services" />
> >>      <Reference Include="System.IdentityModel" />
> >>      <Reference Include="System.Runtime.Serialization">
> >>        <RequiredTargetFramework>3.0</RequiredTargetFramework>
> >> @@ -100,6 +101,10 @@
> >>      <Compile Include="IWcfChannelExtension.cs" />
> >>      <Compile Include="IWcfEndpointExtension.cs" />
> >>      <Compile Include="IWcfServiceExtension.cs" />
> >> +<Compile Include="Service\Data\DataServiceHost.cs" />
> >> +<Compile Include="Service\Data\DataServiceHostBuilder.cs" />
> >> +<Compile Include="Service\Data\DataServiceHostFactory.cs" />
> >> +<Compile Include="Service\Data\DataServiceModel.cs" />
> >>      <Compile Include="Service\Discovery
> >> \AdHocServiceCatalogDiscovery.cs" />
> >>      <Compile Include="Service\Discovery\InMemoryServiceCatalog.cs" />
> >>      <Compile Include="Service\Discovery\IServiceCatalog.cs" />
> >> diff --git a/src/Castle.Facilities.WcfIntegration/Service/Data/
> >> DataServiceHost.cs b/src/Castle.Facilities.WcfIntegration/Service/Data/
> >> DataServiceHost.cs
> >> new file mode 100644
> >> index 0000000..7016205
> >> --- /dev/null
> >> +++ b/src/Castle.Facilities.WcfIntegration/Service/Data/
> >> DataServiceHost.cs
> >> @@ -0,0 +1,11 @@
> >> +namespace Castle.Facilities.WcfIntegration.Data
> >> +{
> >> +    using System;
> >> +
> >> +    public class DataServiceHost :
> >> System.Data.Services.DataServiceHost
> >> +    {
> >> +        public DataServiceHost(Type serviceType, params Uri[]
> >> baseAddresses) : base(serviceType, baseAddresses)
> >> +        {
> >> +        }
> >> +    }
> >> +}
> >> \ No newline at end of file
> >> diff --git a/src/Castle.Facilities.WcfIntegration/Service/Data/
> >> DataServiceHostBuilder.cs b/src/Castle.Facilities.WcfIntegration/
> >> Service/Data/DataServiceHostBuilder.cs
> >> new file mode 100644
> >> index 0000000..41ab084
> >> --- /dev/null
> >> +++ b/src/Castle.Facilities.WcfIntegration/Service/Data/
> >> DataServiceHostBuilder.cs
> >> @@ -0,0 +1,30 @@
> >> +namespace Castle.Facilities.WcfIntegration.Data
> >> +{
> >> +    using System;
> >> +    using System.ServiceModel;
> >> +
> >> +    using Castle.Core;
> >> +    using Castle.MicroKernel;
> >> +
> >> +    public class DataServiceHostBuilder :
> >> AbstractServiceHostBuilder<DataServiceModel>
> >> +    {
> >> +        public DataServiceHostBuilder(IKernel kernel) : base(kernel)
> >> +        {
> >> +        }
> >> +
> >> +        protected override ServiceHost
> >> CreateServiceHost(ComponentModel model, DataServiceModel serviceModel,
> >> params Uri[] baseAddresses)
> >> +        {
> >> +            return CreateServiceHost(model.Implementation,
> >> GetEffectiveBaseAddresses(serviceModel, baseAddresses));
> >> +        }
> >> +
> >> +        protected override ServiceHost
> >> CreateServiceHost(ComponentModel model, Uri[] baseAddresses)
> >> +        {
> >> +            return CreateServiceHost(model.Implementation,
> >> baseAddresses);
> >> +        }
> >> +
> >> +        protected override ServiceHost CreateServiceHost(Type
> >> serviceType, Uri[] baseAddresses)
> >> +        {
> >> +            return new DataServiceHost(serviceType, baseAddresses);
> >> +        }
> >> +    }
> >> +}
> >> \ No newline at end of file
> >> diff --git a/src/Castle.Facilities.WcfIntegration/Service/Data/
> >> DataServiceHostFactory.cs b/src/Castle.Facilities.WcfIntegration/
> >> Service/Data/DataServiceHostFactory.cs
> >> new file mode 100644
> >> index 0000000..021cebd
> >> --- /dev/null
> >> +++ b/src/Castle.Facilities.WcfIntegration/Service/Data/
> >> DataServiceHostFactory.cs
> >> @@ -0,0 +1,16 @@
> >> +namespace Castle.Facilities.WcfIntegration
> >> +{
> >> +    using Castle.Facilities.WcfIntegration.Data;
> >> +    using Castle.MicroKernel;
> >> +
> >> +    public class DataServiceHostFactory :
> >> WindsorServiceHostFactory<DataServiceModel>
> >> +    {
> >> +        public DataServiceHostFactory()
> >> +        {
> >> +        }
> >> +
> >> +        public DataServiceHostFactory(IKernel kernel) : base(kernel)
> >> +        {
> >> +        }
> >> +    }
> >> +}
> >> \ No newline at end of file
> >> diff --git a/src/Castle.Facilities.WcfIntegration/Service/Data/
> >> DataServiceModel.cs b/src/Castle.Facilities.WcfIntegration/Service/
> >> Data/DataServiceModel.cs
> >> new file mode 100644
> >> index 0000000..14279b4
> >> --- /dev/null
> >> +++ b/src/Castle.Facilities.WcfIntegration/Service/Data/
> >> DataServiceModel.cs
> >> @@ -0,0 +1,25 @@
> >> +namespace Castle.Facilities.WcfIntegration.Data
> >> +{
> >> +    using System;
> >> +
> >> +    public class DataServiceModel : WcfServiceModel<DataServiceModel>
> >> +    {
> >> +        public DataServiceModel()
> >> +        {
> >> +        }
> >> +
> >> +        public DataServiceModel(string baseAddress)
> >> +        {
> >> +            AddBaseAddresses(baseAddress);
> >> +        }
> >> +
> >> +        public DataServiceModel(Uri baseAddress)
> >> +        {
> >> +            AddBaseAddresses(baseAddress);
> >> +        }
> >> +
> >> +        public DataServiceModel(IWcfEndpoint endpoint) :
> >> base(endpoint)
> >> +        {
> >> +        }
> >> +    }
> >> +}
> >> \ No newline at end of file
> >> diff --git a/src/Castle.Facilities.WcfIntegration/Service/
> >> WcfServiceExtension.cs b/src/Castle.Facilities.WcfIntegration/Service/
> >> WcfServiceExtension.cs
> >> index a7584c3..b1d8519 100644
> >> --- a/src/Castle.Facilities.WcfIntegration/Service/
> >> WcfServiceExtension.cs
> >> +++ b/src/Castle.Facilities.WcfIntegration/Service/
> >> WcfServiceExtension.cs
> >> @@ -11,6 +11,7 @@ namespace Castle.Facilities.WcfIntegration
> >>        using System.ServiceModel.Activation;
> >>        using System.ServiceModel.Channels;
> >>        using Castle.Core;
> >> +      using Castle.Facilities.WcfIntegration.Data;
> >>        using Castle.Facilities.WcfIntegration.Internal;
> >>        using Castle.Facilities.WcfIntegration.Rest;
> >>        using Castle.MicroKernel;
> >> @@ -170,6 +171,7 @@ namespace Castle.Facilities.WcfIntegration
> >>                private void AddDefaultServiceHostBuilders()
> >>                {
> >>                        
> >> AddServiceHostBuilder(typeof(DefaultServiceHostBuilder), false);
> >> +                      
> >> AddServiceHostBuilder(typeof(DataServiceHostBuilder), false);
> >>                        
> >> AddServiceHostBuilder(typeof(RestServiceHostBuilder), false);
> >>                }
>
> >> --
> >> 1.7.4.msysgit.0
>
> > --
> > You received this message because you are subscribed to the Google Groups 
> > "Castle Project Development List" group.
> > To post to this group, send email to [email protected].
> > To unsubscribe from this group, send email to 
> > [email protected].
> > For more options, visit this group 
> > athttp://groups.google.com/group/castle-project-devel?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
"Castle Project Development List" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/castle-project-devel?hl=en.

Reply via email to