[
https://issues.apache.org/jira/browse/PLUTO-794?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Neil Griffin reopened PLUTO-794:
--------------------------------
> Downgrade to hibernate-validator-5.4.3.Final and validation-api-1.1.0.Final
> in order to conform to Java EE 7
> ------------------------------------------------------------------------------------------------------------
>
> Key: PLUTO-794
> URL: https://issues.apache.org/jira/browse/PLUTO-794
> Project: Pluto
> Issue Type: Task
> Components: build system, demo portlets, maven archetypes
> Reporter: Neil Griffin
> Assignee: Neil Griffin
> Priority: Major
> Fix For: 3.1.1
>
> Attachments: stacktrace.txt
>
>
> Section 1.8 of the Portlet 3.0 Specification titled "Relationship to Java
> Enterprise Edition" states:
> {quote}The Portlet API v3.0 is based on the Java Standard Edition 7.0 and
> Java Enterprise Edition v7.0. Portlet containers should at least meet the
> requirements described by the Java EE 7.0 specification for executing in a
> Java EE environment.{quote}
> Pluto 3.x implements the Portlet 3.0 API and [targets Java EE 7, which
> includes the CDI 1.2 API and the Bean Validation 1.1
> API|https://en.wikipedia.org/wiki/Jakarta_EE#Web_profile]. . As such, it
> relies on JBoss Weld 2.3.1.Final (which implements the CDI 1.2 API).
> When trying to upgrade to hibernate-validator-6.0.20.Final via PLUTO-791, the
> attached [^stacktrace.txt] started happening when trying to onblur out of the
> "Postal Code" field of the applicant-mvcbean-cdi-jsp-portlet demo. This
> revealed that hibernate-validator-6.0.20.Final was attempting to call the
> [javax.enterprise.inject.spi.BeanManager.createInstance()|https://javaee.github.io/javaee-spec/javadocs/javax/enterprise/inject/spi/BeanManager.html#createInstance--]
> method, which the Javadoc indicates was introduced in CDI 2.0.
> Upon closer examination, the [Hibernate Validator Releases
> page|https://hibernate.org/validator/releases/6.0/] states that version 6.0
> targets Bean Validation 2.0, which explains why the Hibernate Validator
> implementation of the Bean Validation API would be permitted to call version
> 2.0 method signatures in the Bean Validation API.
> The [Hibernate Validator FAQ
> page|https://hibernate.org/validator/faq/#whats-the-difference-between-hibernate-validator-3-4-and-5]
> states that Hibernate Validator 5.x is the reference implementation of Bean
> Validation 1.1 (JSR 349). In addition, the project's main
> [pom.xml|https://github.com/hibernate/hibernate-validator/blob/5.4/pom.xml#L133]
> descriptor corroborates the FAQ. Therefore, in order to be compatible with
> CDI 1.2 and Bean Validation 1.1 (Java EE 7), it is necessary to downgrade to
> the newest version of Hibernate Validator 5.x (which is
> hibernate-validator-5.4.3.Final at the time of this writing) and
> validation-api-1.1.0.Final
> This task involves downgrading from the following dependency versions:
> {code:xml|title=pom.xml (before)}
> <dependency>
> <groupId>javax.validation</groupId>
> <artifactId>validation-api</artifactId>
> <version>2.0.1.Final</version>
> <scope>provided</scope>
> </dependency>
> <dependency>
> <groupId>org.hibernate</groupId>
> <artifactId>hibernate-validator</artifactId>
> <version>6.0.14.Final</version>
> <exclusions>
> <exclusion>
> <groupId>javax.validation</groupId>
> <artifactId>validation-api</artifactId>
> </exclusion>
> </exclusions>
> </dependency>
> <dependency>
> <groupId>org.hibernate</groupId>
> <artifactId>hibernate-validator-cdi</artifactId>
> <version>6.0.14.Final</version>
> </dependency>
> {code}
> {code:xml|title=pom.xml (after)}
> <dependency>
> <groupId>javax.validation</groupId>
> <artifactId>validation-api</artifactId>
> <version>1.1.0.Final</version>
> <scope>provided</scope>
> </dependency>
> <dependency>
> <groupId>org.hibernate</groupId>
> <artifactId>hibernate-validator</artifactId>
> <version>5.4.3.Final</version>
> <exclusions>
> <exclusion>
> <groupId>javax.validation</groupId>
> <artifactId>validation-api</artifactId>
> </exclusion>
> </exclusions>
> </dependency>
> <dependency>
> <groupId>org.hibernate</groupId>
> <artifactId>hibernate-validator-cdi</artifactId>
> <version>5.4.3.Final</version>
> </dependency>
> {code}
> In addition, since the demo and archetypes use Bean Validation 2.0
> annotations such as:
> -
> @[javax.validation.constraints.NotBlank|https://javaee.github.io/javaee-spec/javadocs/javax/validation/constraints/NotBlank.html]
> -
> @[javax.validation.constraints.Email|https://javaee.github.io/javaee-spec/javadocs/javax/validation/constraints/Email.html]
> -
> @[javax.validation.constraints.Positive|https://javaee.github.io/javaee-spec/javadocs/javax/validation/constraints/Positive.html]
> ... it will be necessary to use their Bean Validation 1.2 counterparts, which
> are vendor-specific to Hibernate Validator:
> -
> @[org.hibernate.validator.constraints.NotBlank|https://docs.jboss.org/hibernate/validator/5.1/api/org/hibernate/validator/constraints/NotBlank.html]
> -
> @[org.hibernate.validator.constraints.Email|https://docs.jboss.org/hibernate/validator/5.1/api/org/hibernate/validator/constraints/Email.html]
> -
> @[org.hibernate.validator.constraints.Range|https://docs.jboss.org/hibernate/validator/5.1/api/org/hibernate/validator/constraints/Range.html]
--
This message was sent by Atlassian Jira
(v8.20.1#820001)