You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2020/03/30 08:31:03 UTC

[syncope] 01/02: Replacing Hibernate Validator with Apache BVal (#169)

This is an automated email from the ASF dual-hosted git repository.

ilgrosso pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/syncope.git

commit 901608cce1e49223a538551de718402a7734334a
Author: Francesco Chicchiriccò <il...@users.noreply.github.com>
AuthorDate: Mon Mar 30 08:38:33 2020 +0200

    Replacing Hibernate Validator with Apache BVal (#169)
---
 core/idm/logic/pom.xml                             |  5 ----
 .../syncope/core/rest/cxf/RESTCXFContext.java      | 12 +-------
 core/persistence-jpa/pom.xml                       | 16 +++--------
 core/provisioning-java/pom.xml                     |  5 ----
 .../syncope/ext/scimv2/cxf/RESTSCIMCXFContext.java |  4 +--
 .../self/keymaster/cxf/SelfKeymasterContext.java   |  6 +---
 fit/core-reference/pom.xml                         | 13 +++++++--
 fit/core-reference/src/main/resources/log4j2.xml   |  4 +++
 .../src/main/webapp/WEB-INF/glassfish-web.xml      |  3 +-
 pom.xml                                            | 15 ++++------
 .../systemadministration/javaeecontainer.adoc      | 32 ++++++++++++++++++++--
 src/site/xdoc/building.xml                         |  5 ----
 12 files changed, 58 insertions(+), 62 deletions(-)

diff --git a/core/idm/logic/pom.xml b/core/idm/logic/pom.xml
index baf271c..02c3def 100644
--- a/core/idm/logic/pom.xml
+++ b/core/idm/logic/pom.xml
@@ -61,11 +61,6 @@ under the License.
       <scope>test</scope>
     </dependency>
     <dependency>
-      <groupId>javax.el</groupId>
-      <artifactId>javax.el-api</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
       <groupId>org.apache.syncope.core</groupId>
       <artifactId>syncope-core-persistence-jpa</artifactId>
       <version>${project.version}</version>
diff --git a/core/idrepo/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/RESTCXFContext.java b/core/idrepo/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/RESTCXFContext.java
index 545fde2..9affd05 100644
--- a/core/idrepo/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/RESTCXFContext.java
+++ b/core/idrepo/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/RESTCXFContext.java
@@ -38,7 +38,6 @@ import org.apache.cxf.jaxrs.openapi.OpenApiFeature;
 import org.apache.cxf.jaxrs.provider.JAXBElementProvider;
 import org.apache.cxf.jaxrs.spring.JAXRSServerFactoryBeanDefinitionParser.SpringJAXRSServerFactoryBean;
 import org.apache.cxf.jaxrs.validation.JAXRSBeanValidationInInterceptor;
-import org.apache.cxf.jaxrs.validation.JAXRSBeanValidationOutInterceptor;
 import org.apache.cxf.staxutils.DocumentDepthProperties;
 import org.apache.cxf.transport.common.gzip.GZIPInInterceptor;
 import org.apache.cxf.transport.common.gzip.GZIPOutInterceptor;
@@ -123,13 +122,6 @@ public class RESTCXFContext {
     }
 
     @Bean
-    public JAXRSBeanValidationOutInterceptor validationOutInterceptor() {
-        JAXRSBeanValidationOutInterceptor validationOutInterceptor = new JAXRSBeanValidationOutInterceptor();
-        validationOutInterceptor.setProvider(validationProvider());
-        return validationOutInterceptor;
-    }
-
-    @Bean
     public GZIPInInterceptor gzipInInterceptor() {
         return new GZIPInInterceptor();
     }
@@ -245,9 +237,7 @@ public class RESTCXFContext {
                 gzipInInterceptor(),
                 validationInInterceptor()));
 
-        restContainer.setOutInterceptors(List.of(
-                gzipOutInterceptor(),
-                validationOutInterceptor()));
+        restContainer.setOutInterceptors(List.of(gzipOutInterceptor()));
 
         restContainer.setFeatures(List.of(openapiFeature()));
 
diff --git a/core/persistence-jpa/pom.xml b/core/persistence-jpa/pom.xml
index 2fef5e8..6f5114e 100644
--- a/core/persistence-jpa/pom.xml
+++ b/core/persistence-jpa/pom.xml
@@ -42,10 +42,6 @@ under the License.
       <groupId>javax.persistence</groupId>
       <artifactId>javax.persistence-api</artifactId>
     </dependency>
-    <dependency>
-      <groupId>javax.el</groupId>
-      <artifactId>javax.el-api</artifactId>
-    </dependency>
       
     <dependency>
       <groupId>org.apache.openjpa</groupId>
@@ -62,14 +58,10 @@ under the License.
     </dependency>
       
     <dependency>
-      <groupId>org.hibernate.validator</groupId>
-      <artifactId>hibernate-validator</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.glassfish</groupId>
-      <artifactId>javax.el</artifactId>
-    </dependency>
-      
+      <groupId>org.apache.bval</groupId>
+      <artifactId>bval-jsr</artifactId>
+    </dependency>      
+
     <dependency>
       <groupId>org.springframework</groupId>
       <artifactId>spring-tx</artifactId>
diff --git a/core/provisioning-java/pom.xml b/core/provisioning-java/pom.xml
index a2c7067..5a2211e 100644
--- a/core/provisioning-java/pom.xml
+++ b/core/provisioning-java/pom.xml
@@ -115,11 +115,6 @@ under the License.
       <scope>test</scope>
     </dependency>
     <dependency>
-      <groupId>javax.el</groupId>
-      <artifactId>javax.el-api</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
       <groupId>org.apache.syncope.core</groupId>
       <artifactId>syncope-core-persistence-jpa</artifactId>
       <version>${project.version}</version>
diff --git a/ext/scimv2/scim-rest-cxf/src/main/java/org/apache/syncope/ext/scimv2/cxf/RESTSCIMCXFContext.java b/ext/scimv2/scim-rest-cxf/src/main/java/org/apache/syncope/ext/scimv2/cxf/RESTSCIMCXFContext.java
index 4f8e2f5..0120754 100644
--- a/ext/scimv2/scim-rest-cxf/src/main/java/org/apache/syncope/ext/scimv2/cxf/RESTSCIMCXFContext.java
+++ b/ext/scimv2/scim-rest-cxf/src/main/java/org/apache/syncope/ext/scimv2/cxf/RESTSCIMCXFContext.java
@@ -27,7 +27,6 @@ import org.apache.cxf.endpoint.Server;
 import org.apache.cxf.jaxrs.model.wadl.WadlGenerator;
 import org.apache.cxf.jaxrs.spring.JAXRSServerFactoryBeanDefinitionParser.SpringJAXRSServerFactoryBean;
 import org.apache.cxf.jaxrs.validation.JAXRSBeanValidationInInterceptor;
-import org.apache.cxf.jaxrs.validation.JAXRSBeanValidationOutInterceptor;
 import org.apache.cxf.transport.common.gzip.GZIPInInterceptor;
 import org.apache.cxf.transport.common.gzip.GZIPOutInterceptor;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -94,8 +93,7 @@ public class RESTSCIMCXFContext {
                 ctx.getBean(JAXRSBeanValidationInInterceptor.class)));
 
         scimv2Container.setOutInterceptors(List.of(
-                ctx.getBean(GZIPOutInterceptor.class),
-                ctx.getBean(JAXRSBeanValidationOutInterceptor.class)));
+                ctx.getBean(GZIPOutInterceptor.class)));
 
         scimv2Container.setProviders(List.of(
                 scimJacksonJsonProvider(),
diff --git a/ext/self-keymaster/rest-cxf/src/main/java/org/apache/syncope/ext/self/keymaster/cxf/SelfKeymasterContext.java b/ext/self-keymaster/rest-cxf/src/main/java/org/apache/syncope/ext/self/keymaster/cxf/SelfKeymasterContext.java
index 7a2dbeb..bc6976a 100644
--- a/ext/self-keymaster/rest-cxf/src/main/java/org/apache/syncope/ext/self/keymaster/cxf/SelfKeymasterContext.java
+++ b/ext/self-keymaster/rest-cxf/src/main/java/org/apache/syncope/ext/self/keymaster/cxf/SelfKeymasterContext.java
@@ -19,17 +19,14 @@
 package org.apache.syncope.ext.self.keymaster.cxf;
 
 import com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider;
-
 import java.util.List;
 import java.util.Map;
-
 import javax.annotation.Resource;
 import org.apache.cxf.Bus;
 import org.apache.cxf.endpoint.Server;
 import org.apache.cxf.jaxrs.model.wadl.WadlGenerator;
 import org.apache.cxf.jaxrs.spring.JAXRSServerFactoryBeanDefinitionParser.SpringJAXRSServerFactoryBean;
 import org.apache.cxf.jaxrs.validation.JAXRSBeanValidationInInterceptor;
-import org.apache.cxf.jaxrs.validation.JAXRSBeanValidationOutInterceptor;
 import org.apache.cxf.transport.common.gzip.GZIPInInterceptor;
 import org.apache.cxf.transport.common.gzip.GZIPOutInterceptor;
 import org.apache.syncope.common.keymaster.client.api.ConfParamOps;
@@ -98,8 +95,7 @@ public class SelfKeymasterContext {
                 ctx.getBean(JAXRSBeanValidationInInterceptor.class)));
 
         selfKeymasterContainer.setOutInterceptors(List.of(
-                ctx.getBean(GZIPOutInterceptor.class),
-                ctx.getBean(JAXRSBeanValidationOutInterceptor.class)));
+                ctx.getBean(GZIPOutInterceptor.class)));
 
         selfKeymasterContainer.setProviders(List.of(
                 ctx.getBean(RestServiceExceptionMapper.class),
diff --git a/fit/core-reference/pom.xml b/fit/core-reference/pom.xml
index 508dbc0..a0d338f 100644
--- a/fit/core-reference/pom.xml
+++ b/fit/core-reference/pom.xml
@@ -1477,9 +1477,15 @@ under the License.
 
       <dependencies>
         <dependency>
-          <groupId>org.glassfish</groupId>
-          <artifactId>javax.faces</artifactId>
-          <version>${javax.faces.version}</version>
+          <groupId>org.apache.syncope.core</groupId>
+          <artifactId>syncope-core-persistence-jpa</artifactId>
+          <version>${project.version}</version>
+          <exclusions>
+            <exclusion>
+              <groupId>org.apache.bval</groupId>
+              <artifactId>bval-jsr</artifactId>
+            </exclusion>
+          </exclusions>
         </dependency>
 
         <dependency>
@@ -1515,6 +1521,7 @@ under the License.
               </container>
               <configuration>
                 <properties>
+                  <cargo.glassfish.removeDefaultDatasource>false</cargo.glassfish.removeDefaultDatasource>
                   <cargo.jvmargs>-Dspring.profiles.active=embedded
                     -XX:+CMSClassUnloadingEnabled -XX:+UseG1GC -Xmx2048m -Xms1024m</cargo.jvmargs>
                 </properties>
diff --git a/fit/core-reference/src/main/resources/log4j2.xml b/fit/core-reference/src/main/resources/log4j2.xml
index 6bc339c..d0ddcbb 100644
--- a/fit/core-reference/src/main/resources/log4j2.xml
+++ b/fit/core-reference/src/main/resources/log4j2.xml
@@ -176,6 +176,10 @@ under the License.
       <appender-ref ref="mainFile"/>
       <appender-ref ref="main"/>
     </asyncLogger>
+    <asyncLogger name="org.apache.bval" additivity="false" level="ERROR">
+      <appender-ref ref="mainFile"/>
+      <appender-ref ref="main"/>
+    </asyncLogger>
     <asyncLogger name="org.opensaml" additivity="false" level="ERROR">
       <appender-ref ref="mainFile"/>
       <appender-ref ref="main"/>
diff --git a/fit/core-reference/src/main/webapp/WEB-INF/glassfish-web.xml b/fit/core-reference/src/main/webapp/WEB-INF/glassfish-web.xml
index 2578cf5..2eea12b 100644
--- a/fit/core-reference/src/main/webapp/WEB-INF/glassfish-web.xml
+++ b/fit/core-reference/src/main/webapp/WEB-INF/glassfish-web.xml
@@ -27,7 +27,8 @@ GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/gla
     <jndi-name>jdbc/syncopeMasterDataSource</jndi-name>
   </resource-ref>-->
   <class-loader delegate="false"/>
+  <scanning-exclude>*</scanning-exclude>
   <jsp-config>
     <property name="httpMethods" value="GET,POST,HEAD,PUT,DELETE"/>
   </jsp-config>
-</glassfish-web-app>
\ No newline at end of file
+</glassfish-web-app>
diff --git a/pom.xml b/pom.xml
index 03eb41b..071cc99 100644
--- a/pom.xml
+++ b/pom.xml
@@ -415,7 +415,7 @@ under the License.
 
     <openjpa.version>3.1.1</openjpa.version>
     <hikaricp.version>3.4.2</hikaricp.version>
-    <hibernate-validator.version>6.1.2.Final</hibernate-validator.version>
+    <bval.version>2.0.3</bval.version>
 
     <jasypt.version>1.9.3</jasypt.version>
 
@@ -515,7 +515,7 @@ under the License.
 
     <tomcat.version>9.0.33</tomcat.version>
     <wildfly.version>19.0.0.Final</wildfly.version>
-    <payara.version>5.194</payara.version>
+    <payara.version>5.201</payara.version>
     <javax.faces.version>2.4.0</javax.faces.version>
 
     <docker.postgresql.version>12</docker.postgresql.version>
@@ -909,14 +909,9 @@ under the License.
       </dependency>
 
       <dependency>
-        <groupId>org.hibernate.validator</groupId>
-        <artifactId>hibernate-validator</artifactId>
-        <version>${hibernate-validator.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish</groupId>
-        <artifactId>javax.el</artifactId>
-        <version>3.0.1-b09</version>
+        <groupId>org.apache.bval</groupId>
+        <artifactId>bval-jsr</artifactId>
+        <version>${bval.version}</version>
       </dependency>
 
       <dependency>
diff --git a/src/main/asciidoc/reference-guide/workingwithapachesyncope/systemadministration/javaeecontainer.adoc b/src/main/asciidoc/reference-guide/workingwithapachesyncope/systemadministration/javaeecontainer.adoc
index b0f2d6a..55ede1e 100644
--- a/src/main/asciidoc/reference-guide/workingwithapachesyncope/systemadministration/javaeecontainer.adoc
+++ b/src/main/asciidoc/reference-guide/workingwithapachesyncope/systemadministration/javaeecontainer.adoc
@@ -102,6 +102,34 @@ Add
 
 to `core/pom.xml`, `console/pom.xml` and `enduser/pom.xml`.
 
+then replace
+
+[source,xml]
+....
+    <dependency>
+      <groupId>org.apache.syncope.core</groupId>
+      <artifactId>syncope-core-persistence-jpa</artifactId>
+    </dependency>
+....
+
+with
+
+[source,xml]
+....
+    <dependency>
+      <groupId>org.apache.syncope.core</groupId>
+      <artifactId>syncope-core-persistence-jpa</artifactId>
+      <exclusions>
+        <exclusion>
+          <groupId>org.apache.bval</groupId>
+          <artifactId>bval-jsr</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+....
+
+in `core/pom.xml`.
+
 When using a datasource for internal storage, be sure to add
 
 [source,xml]
@@ -112,8 +140,8 @@ When using a datasource for internal storage, be sure to add
 </resource-ref>
 ....
 
-right after `</context-root>` in `core/src/main/webapp/WEB-INF/glassfish-web.xml`, assuming that your Payara Server instance
-provides a datasource named `jdbc/syncopeMasterDataSource`.
+right after `</context-root>` in `core/src/main/webapp/WEB-INF/glassfish-web.xml`, assuming that your Payara Server
+instance provides a datasource named `jdbc/syncopeMasterDataSource`.
 
 [TIP]
 ====
diff --git a/src/site/xdoc/building.xml b/src/site/xdoc/building.xml
index 3981a83..d61d6a4 100644
--- a/src/site/xdoc/building.xml
+++ b/src/site/xdoc/building.xml
@@ -186,11 +186,6 @@ under the License.
 
         <h4>Java EE containers</h4>
 
-        <h5>Glassfish</h5>
-        Perform the full test suite by deploying Syncope core in 
-        <a href="https://glassfish.java.net/">Glassfish</a> via
-        <source>$ mvn -Pglassfish-it</source>
-
         <h5>Payara</h5>
         Perform the full test suite by deploying Syncope core in 
         <a href="http://www.payara.fish/">Payara</a> via