You are not initializing the ValidatorEngine that is your problem. validatorEngine.Configure(nhvConfiguration );
You can use various way to configure NHV... the common way is the applicantion config file. 2009/2/16 knut <[email protected]> > > I think I finally have a solution to my problem. Initially I thought > that ValidatorInitializer.Initialize(configuration, engine); would > make my custom IMessageInterpolator the default interpolator. After > inspecting the source of ValidatorInitializer I realized that it is > related to the NHibernate events PreInsert and PreUpdate. Then I found > this code: > > if (Environment.SharedEngineProvider != null) > { > Engine = Environment.SharedEngineProvider.GetEngine(); > } > > Then I realized that I need to set a SharedEngineProvider like this: > > ... > NHVConfiguration nhvConfiguration = new NHVConfiguration(); > nhvConfiguration.Properties[Environment.ValidatorMode] = > "UseAttribute"; > nhvConfiguration.Properties[Environment.MessageInterpolatorClass] = > typeof(EntityMessageInterpolator).AssemblyQualifiedName; > nhvConfiguration.Mappings.Add(new > MappingConfiguration(GetEntityAssemblyName(), null)); > Environment.SharedEngineProvider = > new NHibernateSharedEngineProvider(); > Environment.SharedEngineProvider. > GetEngine().Configure(nhvConfiguration); > ValidatorInitializer.Initialize(configuration); > ... > > Am I assuming everything correctly now? > > Anyway, know I get my expected "Hello World!" messages :-) > > On 16 Feb, 16:51, Fabio Maulo <[email protected]> wrote: > > We have a specific test about Interpolator usage...Please try to recreate > > your problem and if you can recreate it with the last released version, > > please create a new JIRA ticket attaching the test. > > Thanks. > > > > 2009/2/16 Gustavo Ringel <[email protected]> > > > > > > > > > > > > > Can you open a JIRA with a failing test which fails with the trunk? > Follow > > > Fabio's link to the JIRA > > > > > On Mon, Feb 16, 2009 at 10:28 AM, Gustavo Ringel < > [email protected] > > > > wrote: > > > > >> Which version of NHV are you using? > > > > >> On Mon, Feb 16, 2009 at 9:30 AM, knut <[email protected]> wrote: > > > > >>> In my previous reply I showed you that I have implemented my own > > >>> IMessageInterpolator. My implementation of the IMessageInterpolator > > >>> (EntityMessageInterpolator) is supposed to return "Hello World!" for > > >>> all interpolations. I have also configured NHV to use my > > >>> EntityMessageInterpolator as you can see in my pasted code. The > > >>> problem is that I never see the validation message "Hello World!". > > > > >>> - What am I doing wrong? > > >>> - Do you know of any documentation regarding the interpolation > > >>> mechanism? I have not been able to find any. > > >>> - Should I take a look at the Java version to learn how it is > > >>> supposed to be done? > > > > >>> On 16 Feb, 01:07, Fabio Maulo <[email protected]> wrote: > > >>> > This is the example I'm talking about public class > > >>> > PrefixMessageInterpolator : IMessageInterpolator > > >>> > { > > >>> > public string Interpolate(string message, IValidator validator, > > >>> > IMessageInterpolator defaultInterpolator) > > >>> > { > > >>> > return "prefix_" + defaultInterpolator.Interpolate(message, > validator, > > >>> > defaultInterpolator); > > > > >>> > } > > >>> > } > > > > >>> > The JIRA is thishttp://jira.nhforge.org/ > > > > >>> > 2009/2/15 knut <[email protected]> > > > > >>> > > I tried to use a custom interpolator: > > > > >>> > > ... > > >>> > > public class EntityMessageInterpolator : IMessageInterpolator > > >>> > > { > > >>> > > public string Interpolate(string message, IValidator > > >>> > > validator, > > >>> > > IMessageInterpolator defaultInterpolator) > > >>> > > { > > >>> > > return "Hello World!"; > > >>> > > } > > >>> > > } > > >>> > > ... > > >>> > > ... > > >>> > > // NHibernate Validation... > > >>> > > NHVConfiguration nhvConfiguration = new > > >>> > > NHVConfiguration(); > > >>> > > nhvConfiguration.Properties.Add( > > > > >>> > > NHibernate.Validator.Cfg.Environment.ValidatorMode, > > >>> > > "UseAttribute"); > > >>> > > nhvConfiguration.Properties.Add > > >>> > > (NHibernate.Validator.Cfg. > > >>> > > Environment.MessageInterpolatorClass, > > >>> > > typeof(EntityMessageInterpolator). > > >>> > > AssemblyQualifiedName); > > >>> > > nhvConfiguration.Mappings.Add(new > > >>> > > > MappingConfiguration(GetEntityAssemblyName(), > > >>> > > null)); > > >>> > > ValidatorEngine engine = new > ValidatorEngine(); > > >>> > > engine.Configure(nhvConfiguration); > > >>> > > ValidatorInitializer.Initialize(configuration, > > >>> > > engine); > > >>> > > ... > > > > >>> > > Questions: > > > > >>> > > 1) I was expecting to get the validation message "Hello World!" > for > > >>> > > all validations, but I get the default ones. What am I missing? > > >>> > > 2) What do you mean by "use our JIRABTW NHV accept custom > > >>> > > ResourceManager"? > > >>> > > 3) I want to use different validation messages for the same type > of > > >>> > > validation in different entitites. Example: For the Name property > in > > >>> a > > >>> > > Person class with a NotNullNotEmpty constraint I would like to > say: > > >>> > > "You need to specify a name for the person...". For the Name > property > > >>> > > in a Employee class with a NotNullNotEmpty constraint I would > like to > > >>> > > say: "The employee needs a name...". Is this possible with the > > >>> > > ResourceManager approach? > > > > >>> > > <span style="color:gray;font-size:80%;">Need to know if HTML is > > >>> > > enabled…</span> > > > > >>> > > On 15 Feb, 22:30, Fabio Maulo <[email protected]> wrote: > > >>> > > > 1) in theory you don't need to do nothing because we are > hosting > > >>> > > translation > > >>> > > > for various languages; if you have a new one use our JIRABTW > NHV > > >>> accept > > >>> > > > custom ResourceManager... we only need to add a configuration > > >>> property > > > > >>> > > > 2) an example of a simple custom interpolator is in our tests > > >>> > > > (see PrefixMessageInterpolator). The Message interpolator can > be > > >>> > > configured > > >>> > > > (is one of the properties of NHV configuration) > > > > >>> > > > 2009/2/15 knut <[email protected]> > > > > >>> > > > > I want to be able to read validation messages from resource > > >>> files. I > > >>> > > > > think I need to choose one of these solutions: > > > > >>> > > > > "Alternatively you can provide a ResourceManager while > checking > > >>> > > > > programmatically the validation rules on a bean or if you > want a > > >>> > > > > completly different interpolation mechanism, you can provide > an > > >>> > > > > implementation of > > >>> NHibernate.Validator.Engine.IMessageInterpolator." > > >>> > > > > ---http://nhforge.org/doc/nhv/en/:3.3. Error messages > > > > >>> > > > > The problem is that I don't know how to do what has been > > >>> suggested. > > > > >>> > > > > 1) How do I provide a new ResourceManager? > > >>> > > > > 2) How do I provide an implementation of > > >>> > > > > NHibernate.Validator.Engine.IMessageInterpolator > > > > >>> > > > > Best regards! > > >>> > > > > Knut > > > > >>> > > > -- > > >>> > > > Fabio Maulo > > > > >>> > -- > > >>> > Fabio Maulo > > > > -- > > Fabio Maulo > > > -- Fabio Maulo --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "nhusers" 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/nhusers?hl=en -~----------~----~----~----~------~----~------~--~---
