Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix for GRAILS-4621: Validation errors not read from message bundle for POJO domain entities #7

Closed
wants to merge 3 commits into from

Conversation

beskow
Copy link

@beskow beskow commented Sep 27, 2010

Validation error messages are not read from message bundle when using POJO (EJB3-annotated) domain entities, since their validator lacks a messageSource reference. Hence all validation error messages always use the default messages in english. In a I18n-enabled application, that is not acceptable.

This commit fixes the problem by

  • modifying GrailsHibernateDomainClass to have a grailsApplication injected in its constructor, and use it to retrieve a messageSource
  • modifying GrailsHibernateUtils to pass the grailsApplication instance to GrailsHibernateDomainClasses

In JpaMappedDomainTests, a test is added to verify that GrailsHibernateDomainClass' verifier has a messageSource.

In order for the unit tests in JpaMappedDomainTests to run clean, the AbstractGrailsHibernateTests is fixed to correctly set the mainContext property of the grailsApplication.

…or POJO domain entities

- Corrected AbstractGrailsHibernateTests to set mainContext for grailsApplication
- Added unit test to verify a GrailsHibernateDomainClass' verifier has a messageSource
- Modified GrailsHibernateDomainClass to have a grailsApplication injected in its constructor, and use it to retrieve the messageSource
- Modified GrailsHibernateUtils to pass the grailsApplication instance to GrailsHibernateDomainClasses
@graemerocher
Copy link
Member

Could you update:

MessageSource messageSource = (MessageSource) application.getMainContext().getBean("messageSource");

To be:

MessageSource messageSource = application.getMainContext().getBean(MessageSource.class);

Which is better as it doesn't depend on the bean name.

@beskow
Copy link
Author

beskow commented Oct 7, 2010

Good point, Graeme. Updated and pushed as 601b5cf.

@graemerocher
Copy link
Member

Applied. Thanks.

jdaugherty pushed a commit to jdaugherty/grails-core that referenced this pull request Jan 7, 2025
jdaugherty pushed a commit to jdaugherty/grails-core that referenced this pull request Jan 9, 2025
jdaugherty pushed a commit to jdaugherty/grails-core that referenced this pull request Feb 9, 2025
This pull request was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants