This works absolutely fine without fluent. Bit gutted that it's so  
hard (impossible?) to use it with fnh, proper happy I got it working.  
Thanks for all the help :)

-----------------------------
e-wayne <at> isit.gd
t-07525 424 882

On 25 Oct 2009, at 12:06 PM, Valeriu Caraulean <[email protected]>  
wrote:

>
> Your contributors should be registered in container under
> IConfigurationContributor interface. Then, the NHIntegration Facility
> will do container.ResolveAll<IConfigurationContributor>() and will
> call Process() on all of them.
>
> As I suggested already, your contributors should be filtered by
> factory alias in order to not be applied for your both domains.
>
> For further details please look at the sources of NHIntegration  
> Facility.
>
> On Sat, Oct 24, 2009 at 7:20 PM, wayne <[email protected]>  
> wrote:
>>
>> 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