hi

i've tried to google for the contributor and didn't come up with much
- i also grepped the castle svn dir but that didn't do much either.

here's what i tried:

<code file='castle.config'>

<components>
    <component id="ReportingIdealConfigurationContributor"
type="Ideal.Reporting.Domain.IdealConfigurationContributor,
Ideal.Reporting.Domain"/>
    <component id="RttmIdealConfigurationContributor"
type="Ideal.Rttm.Domain.IdealConfigurationContributor,
Ideal.Rttm.Domain"/>
</components>

<facilities>
    <facility id="nhibernatefaciltity"
              isWeb="true"
 
type="Castle.Facilities.NHibernateIntegration.NHibernateFacility,
Castle.Facilities.NHibernateIntegration"
 
configurationBuilder="Ideal.Rttm.Web.FluentNHibernateConfigurationBuilder,
Ideal.Rttm.Web">
      <factory id="sessionFactory1">
        <settings>
          <item key="show_sql">true</item>
          <item
key="connection.provider">NHibernate.Connection.DriverConnectionProvider</
item>
          <item
key="connection.driver_class">NHibernate.Driver.SqlClientDriver</item>
          <item key="connection.connection_string">Data
Source=.;Initial Catalog=reporting2;Integrated Security=SSPI;</item>
          <item key="dialect">NHibernate.Dialect.MsSql2005Dialect</
item>
          <item
key="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory,
NHibernate.ByteCode.Castle</item>
        </settings>
        <assemblies>
          <assembly>Ideal.Reporting.Model</assembly>
        </assemblies>
        <!--<contributors>
          <contributor key="ReportingIdealConfigurationContributor"/>
        </contributors>-->
      </factory>

      <factory id="sessionFactory2" alias="rttm">
        <settings>
          <item key="show_sql">true</item>
          <item
key="connection.provider">NHibernate.Connection.DriverConnectionProvider</
item>
          <item
key="connection.driver_class">NHibernate.Driver.SqlClientDriver</item>
          <item key="connection.connection_string">Data
Source=.;Initial Catalog=reporting3;Integrated Security=SSPI;</item>
          <item key="dialect">NHibernate.Dialect.MsSql2005Dialect</
item>
          <item
key="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory,
NHibernate.ByteCode.Castle</item>
        </settings>
        <assemblies>
          <assembly>Ideal.Rttm.Model</assembly>
        </assemblies>

      </factory>
      <!--<contributors>
        <contributor key="RttmIdealConfigurationContributor"/>
      </contributors>-->
    </facility>

</code>


and an example contributor:

<code>

 public class IdealConfigurationContributor :
IConfigurationContributor
    {
        public void Process(string name, Configuration config)
        {
            var models = new PersistenceModel();

            models.AddMappingsFromAssembly(typeof(Provider).Assembly);

            models.Conventions.Add(typeof
(ForeignKeyConventionOverride));
            models.Configure(config);

            if (AppSettings.GetConfigurationBoolean("RebuildDb",
false))
            {
                var export = new SchemaExport(config);
                var sb = new StringBuilder();
                TextWriter output = new StringWriter(sb);
                export.Drop(true, true);
                export.Execute(true, false, false, null, output);
                export.Create(true, true);
            }


        }
    }

</code>

i did find a conversation discussing the creation of the contributor -
which hinted at registering them and then associating them via the
following:

<contributors>
        <contributor key="RttmIdealConfigurationContributor"/>
</contributors>

but contributors isn't an expected node name :(

can anyone shed some light on this for me?

cheers

w://




On 19 Oct, 11:40, Wayne Douglas <[email protected]> wrote:
> thanks for the poiinter :)
>
> how do i register more than one IConfigurationBuilder with the
> facility config tho?
>
>
>
>
>
> On Mon, Oct 19, 2009 at 11:16 AM, Valeriu Caraulean <[email protected]> 
> wrote:
>
> > So, you want to use FluentNHibernate to configure factories built via
> > NHIntegration facility.
>
> > What I would try to do:
>
> >  1. Create a IConfigurationContributor for each of your domains.
> >  2. Check in contributors the name/factory-id to modify only the right
> > configuration
> >  3. Modify the configuration with FluentNHibernate.
>
> > This is just one way to achieve it.
>
> > On Mon, Oct 19, 2009 at 11:49 AM, Wayne Douglas <[email protected]> 
> > wrote:
>
> >> hey - cheers for looking at this with me.
>
> >> not very experienced with nhib - i thought the assembly definition in
> >> the xml would point the factory to one assembly so it would only push
> >> the resulting sql creation scripts to that one db. i thought the one
> >> in the c# was just there to bootstrap it all.
>
> >> so i need to have 2 separate config builders?
>
> >> how do i wire one up with one factory configuration and the other with
> >> the other configuration?
>
> >> On Sun, Oct 18, 2009 at 12:22 PM, Valeriu Caraulean <[email protected]> 
> >> wrote:
>
> >>> You have specified assemblies related to each session factory in XML
> >>> configuration. Why you do that again in code?
>
> >>> Your configuration builder adds two assemblies. Are those assemblies
> >>> each for different domain? Then why you're adding them both to
> >>> configuration?
>
> >>> On Sat, Oct 17, 2009 at 12:53 PM, Wayne Douglas <[email protected]> 
> >>> wrote:
>
> >>>> very strange :s
>
> >>>> here is my config builder:
>
> >>>> <code>
>
> >>>> public class FluentNHibernateConfigurationBuilder : IConfigurationBuilder
> >>>>   {
> >>>>       #region IConfigurationBuilder Members
>
> >>>>       public Configuration GetConfiguration(IConfiguration
> >>>> facilityConfiguration)
> >>>>       {
> >>>>           var defaultConfigurationBuilder = new 
> >>>> DefaultConfigurationBuilder();
> >>>>           Configuration configuration =
> >>>> defaultConfigurationBuilder.GetConfiguration(facilityConfiguration);
>
> >>>>           var models = new PersistenceModel();
> >>>>           models.AddMappingsFromAssembly(typeof(Provider).Assembly);
> >>>>           models.AddMappingsFromAssembly(typeof(Report).Assembly);
> >>>>           models.Conventions.Add(typeof(ForeignKeyConventionOverride));
> >>>>           models.Configure(configuration);
>
> >>>>           if (AppSettings.GetConfigurationBoolean("RebuildDb", false))
> >>>>           {
> >>>>               var export = new SchemaExport(configuration);
> >>>>               var sb = new StringBuilder();
> >>>>               TextWriter output = new StringWriter(sb);
> >>>>               export.Drop(true, true);
> >>>>               export.Execute(true, false, false, null, output);
> >>>>               export.Create(true, true);
> >>>>           }
>
> >>>>           return configuration;
> >>>>       }
>
> >>>>       #endregion
> >>>>   }
>
> >>>> </code>
>
> >>>> any help?
>
> >>>> obv the classes Provider and Report come from 2 seperate assemblies
> >>>> and this config builder lives inside my web project which has
> >>>> references to both.
>
> >>>> w://
>
> >>>> On Fri, Oct 16, 2009 at 11:08 PM, Valeriu Caraulean 
> >>>> <[email protected]> wrote:
>
> >>>>> The config looks ok.
> >>>>> Are you sure your code is correct?
>
> >>>>> On Fri, Oct 16, 2009 at 10:06 PM, Wayne Douglas <[email protected]> 
> >>>>> wrote:
>
> >>>>>> so... still not got this working :(
>
> >>>>>> here is the actual config i'm using:
>
> >>>>>> <code>
>
> >>>>>> <castle>
> >>>>>>  <components>
> >>>>>>   <component id="GenericRepository" type="Ideal.Web.Repository`1, 
> >>>>>> Ideal.Web"/>
> >>>>>>  </components>
> >>>>>>  <facilities>
> >>>>>>   <facility id="nhibernate"
> >>>>>>             isWeb="true"
> >>>>>>             
> >>>>>> type="Castle.Facilities.NHibernateIntegration.NHibernateFacility,
> >>>>>>  Castle.Facilities.NHibernateIntegration"
> >>>>>>             
> >>>>>> configurationBuilder="Ideal.Rttm.Web.FluentNHibernateConfigurationBuilder,
> >>>>>> Ideal.Rttm.Web">
>
> >>>>>>     <factory id="nhibernate.factory.session1">
> >>>>>>       <settings>
> >>>>>>         <item key="show_sql">true</item>
> >>>>>>         <item key="connection.provider">
> >>>>>>           NHibernate.Connection.DriverConnectionProvider
> >>>>>>         </item>
> >>>>>>         <item key="connection.driver_class">
> >>>>>>           NHibernate.Driver.SqlClientDriver
> >>>>>>         </item>
> >>>>>>         <item key="connection.connection_string">
> >>>>>>           Data Source=.;Initial Catalog=Reporting1;User 
> >>>>>> Id=sa;Password=xxx;
> >>>>>>         </item>
> >>>>>>         <item key="dialect">
> >>>>>>           NHibernate.Dialect.MsSql2005Dialect
> >>>>>>         </item>
> >>>>>>         <item key="proxyfactory.factory_class">
> >>>>>>           NHibernate.ByteCode.Castle.ProxyFactoryFactory,
> >>>>>> NHibernate.ByteCode.Castle
> >>>>>>         </item>
> >>>>>>       </settings>
> >>>>>>       <assemblies>
> >>>>>>         <assembly>Ideal.Rttm.Model</assembly>
> >>>>>>       </assemblies>
> >>>>>>     </factory>
>
> >>>>>>     <factory id="nhibernate.factory.session2" alias="reporting">
> >>>>>>       <settings>
> >>>>>>         <item key="show_sql">true</item>
> >>>>>>         <item key="connection.provider">
> >>>>>>           NHibernate.Connection.DriverConnectionProvider
> >>>>>>         </item>
> >>>>>>         <item key="connection.driver_class">
> >>>>>>           NHibernate.Driver.SqlClientDriver
> >>>>>>         </item>
> >>>>>>         <item key="connection.connection_string">
> >>>>>>           Data Source=.;Initial Catalog=Reporting2;User 
> >>>>>> Id=sa;Password=xxx;
> >>>>>>         </item>
> >>>>>>         <item key="dialect">
> >>>>>>           NHibernate.Dialect.MsSql2005Dialect
> >>>>>>         </item>
> >>>>>>         <item key="proxyfactory.factory_class">
> >>>>>>           NHibernate.ByteCode.Castle.ProxyFactoryFactory,
> >>>>>> NHibernate.ByteCode.Castle
> >>>>>>         </item>
> >>>>>>       </settings>
> >>>>>>       <assemblies>
> >>>>>>         <assembly>Ideal.Reporting.Model</assembly>
> >>>>>>       </assemblies>
> >>>>>>     </factory>
>
> >>>>>>   </facility>
> >>>>>>   <facility id="atm"
> >>>>>> type="Castle.Facilities.AutomaticTransactionManagement.TransactionFacility,
> >>>>>> Castle.Facilities.AutomaticTransactionManagement" />
> >>>>>>  </facilities>
> >>>>>> </castle>
>
> >>>>>> </code>
>
> >>>>>> has anyone used the nh facility to do this?
>
> >>>>>> On Thu, Oct 15, 2009 at 3:48 PM, Valeriu Caraulean 
> >>>>>> <[email protected]> wrote:
>
> >>>>>>> Different connection strings?
> >>>>>>> I mean, are they different?
>
> >>>>>>> On Thu, Oct 15, 2009 at 11:49 AM, Wayne Douglas 
> >>>>>>> <[email protected]> wrote:
>
> >>>>>>>> Hi
>
> >>>>>>>> I'm using the nh facility to configure the following setup:
>
> >>>>>>>> i have 1 database which stores generic report configuration.
> >>>>>>>> and another which stores the actual report data.
>
> >>>>>>>> i also have 1 project for interacting with the report configuration
> >>>>>>>> database (entities and mappings etc)
> >>>>>>>> and another for interacting with the report data database  (entities
> >>>>>>>> and mappings etc).
>
> >>>>>>>> i've used the following to create 2 factories:
>
> >>>>>>>> <code>
>
> >>>>>>>> <facilities>
> >>>>>>>>  <facility id="nhibernate">
> >>>>>>>>    <factory id="nhibernate.factory.session1">
> >>>>>>>>      ...
> >>>>>>>>      <assemblies>
> >>>>>>>>        <assembly>ReportData.Model</assembly>
> >>>>>>>>      </assemblies>
> >>>>>>>>    </factory>
>
> >>>>>>>>    <factory id="nhibernate.factory.session2" alias="reporting">
> >>>>>>>>      ...
> >>>>>>>>      <assemblies>
> >>>>>>>>        <assembly>Reporting.Model</assembly>
> >>>>>>>>      </assemblies>
> >>>>>>>>    </factory>
> >>>>>>>>  </facility>
> >>>>>>>> </facilities>
>
> >>>>>>>> <code>
>
> >>>>>>>> the problem is is that even though nhibernate.factory.session1 and
> >>>>>>>> nhibernate.factory.session2 are looking at different databases and
> >>>>>>>> have different assemblies configured it always seems to create the
> >>>>>>>> tables for both models in both DBs?
>
> >>>>>>>> how do i tell nhibernate.factory.session1 to look at db1 and model1
> >>>>>>>> and nhibernate.factory.session2 to look at db2 and model2?
>
> >>>>>>>> --
> >>>>>>>> Cheers,
>
> >>>>>>>> w://
>
> >>>>>> --
> >>>>>> Cheers,
>
> >>>>>> w://
>
> >>>> --
> >>>> Cheers,
>
> >>>> w://
>
> >> --
> >> Cheers,
>
> >> w://
>
> --
> Cheers,
>
> w://

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Castle Project Users" 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-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to