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 b1613d756a6bf2368525e9460d719cedb2f07914
Author: Francesco Chicchiriccò <[email protected]>
AuthorDate: Mon Dec 21 12:05:06 2020 +0100

    Re-enabling JDK 16 compatibility and build with dedicated temporary
    profile
---
 .travis.yml                                        | 14 ++---
 .../common/lib/types/SRARouteFilterFactory.java    |  1 -
 .../jpa/content/XMLContentExporter.java            | 21 +++----
 pom.xml                                            | 66 +++++++++++++++++-----
 sra/pom.xml                                        |  4 --
 .../java/org/apache/syncope/sra/RouteProvider.java | 14 -----
 .../org/apache/syncope/sra/RouteProviderTest.java  | 41 ++------------
 wa/starter/pom.xml                                 | 22 ++++++++
 8 files changed, 94 insertions(+), 89 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index e3c1076..b2359a8 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -63,13 +63,13 @@ jobs:
       - export JAVA_HOME=~/openjdk14
       - export PATH="$JAVA_HOME/bin:$PATH"
       - eval $TestCommand
-      #- stage: test
-      #name: "Unit Tests via JDK 16"
-      #script:
-      #- ~/install-jdk.sh --target "/home/travis/openjdk16" --workspace 
"/home/travis/.cache/install-jdk" --feature "16" --license "GPLv2+CE" --cacerts
-      #- export JAVA_HOME=~/openjdk16
-      #- export PATH="$JAVA_HOME/bin:$PATH"
-      #- eval $TestCommand
+    - stage: test
+      name: "Unit Tests via JDK 16"
+      script:
+      - ~/install-jdk.sh --target "/home/travis/openjdk16" --workspace 
"/home/travis/.cache/install-jdk" --feature "16" --license "GPLv2+CE" --cacerts
+      - export JAVA_HOME=~/openjdk16
+      - export PATH="$JAVA_HOME/bin:$PATH"
+      - eval $TestCommand
     - stage: test
       name: "Persistence Unit Tests via JDK 11: PostgreSQL (JSONB)"
       script: mvn -f core/persistence-jpa-json/pom.xml -P postgres 
-Dinvoker.streamLogs=true -Dmodernizer.skip=true -Dianal.skip=true 
-Drat.skip=true -Dcheckstyle.skip=true -Dsass.skip=true
diff --git 
a/common/am/lib/src/main/java/org/apache/syncope/common/lib/types/SRARouteFilterFactory.java
 
b/common/am/lib/src/main/java/org/apache/syncope/common/lib/types/SRARouteFilterFactory.java
index da3614e..70b4469 100644
--- 
a/common/am/lib/src/main/java/org/apache/syncope/common/lib/types/SRARouteFilterFactory.java
+++ 
b/common/am/lib/src/main/java/org/apache/syncope/common/lib/types/SRARouteFilterFactory.java
@@ -23,7 +23,6 @@ public enum SRARouteFilterFactory {
     ADD_REQUEST_PARAMETER,
     ADD_RESPONSE_HEADER,
     DEDUPE_RESPONSE_HEADER,
-    HYSTRIX,
     FALLBACK_HEADERS,
     MAP_REQUEST_HEADER,
     PREFIX_PATH,
diff --git 
a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/XMLContentExporter.java
 
b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/XMLContentExporter.java
index ac8dbf5..538821f 100644
--- 
a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/XMLContentExporter.java
+++ 
b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/XMLContentExporter.java
@@ -64,11 +64,10 @@ import 
javax.xml.transform.TransformerConfigurationException;
 import javax.xml.transform.sax.SAXTransformerFactory;
 import javax.xml.transform.sax.TransformerHandler;
 import javax.xml.transform.stream.StreamResult;
-import org.apache.commons.collections4.BidiMap;
-import org.apache.commons.collections4.bidimap.DualHashBidiMap;
-import org.apache.commons.collections4.SetUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.tuple.Pair;
+import org.apache.openjpa.lib.util.collections.BidiMap;
+import org.apache.openjpa.lib.util.collections.DualHashBidiMap;
 import org.apache.syncope.core.persistence.api.DomainHolder;
 import org.apache.syncope.core.provisioning.api.utils.FormatUtils;
 import org.apache.syncope.core.persistence.api.content.ContentExporter;
@@ -109,13 +108,13 @@ public class XMLContentExporter implements 
ContentExporter {
 
     private static final Logger LOG = 
LoggerFactory.getLogger(XMLContentExporter.class);
 
-    private static final Set<String> TABLE_PREFIXES_TO_BE_EXCLUDED = 
SetUtils.hashSet(
+    private static final Set<String> TABLE_PREFIXES_TO_BE_EXCLUDED = Stream.of(
             "QRTZ_", "LOGGING", "NotificationTask_recipients", 
LoggerDAO.AUDIT_TABLE, JPAReportExec.TABLE,
             JPATaskExec.TABLE, JPAUser.TABLE, JPAUPlainAttr.TABLE, 
JPAUPlainAttrValue.TABLE,
             JPAUPlainAttrUniqueValue.TABLE, JPAURelationship.TABLE, 
JPAUMembership.TABLE,
             JPAAnyObject.TABLE, JPAAPlainAttr.TABLE, JPAAPlainAttrValue.TABLE, 
JPAAPlainAttrUniqueValue.TABLE,
             JPAARelationship.TABLE, JPAAMembership.TABLE, JPAAccessToken.TABLE
-    );
+    ).collect(Collectors.toCollection(HashSet::new));
 
     private static final Map<String, String> TABLES_TO_BE_FILTERED =
             Map.of("TASK", "DTYPE <> 'PropagationTask' AND DTYPE <> 
'NotificationTask'");
@@ -215,14 +214,14 @@ public class XMLContentExporter implements 
ContentExporter {
                 case Types.BINARY:
                 case Types.VARBINARY:
                 case Types.LONGVARBINARY:
-                    final InputStream is = rs.getBinaryStream(columnName);
+                    InputStream is = rs.getBinaryStream(columnName);
                     if (is != null) {
                         res = 
DatatypeConverter.printHexBinary(IOUtils.toByteArray(is));
                     }
                     break;
 
                 case Types.BLOB:
-                    final Blob blob = rs.getBlob(columnName);
+                    Blob blob = rs.getBlob(columnName);
                     if (blob != null) {
                         res = 
DatatypeConverter.printHexBinary(IOUtils.toByteArray(blob.getBinaryStream()));
                     }
@@ -230,17 +229,13 @@ public class XMLContentExporter implements 
ContentExporter {
 
                 case Types.BIT:
                 case Types.BOOLEAN:
-                    if (rs.getBoolean(columnName)) {
-                        res = "1";
-                    } else {
-                        res = "0";
-                    }
+                    res = rs.getBoolean(columnName) ? "1" : "0";
                     break;
 
                 case Types.DATE:
                 case Types.TIME:
                 case Types.TIMESTAMP:
-                    final Timestamp timestamp = rs.getTimestamp(columnName);
+                    Timestamp timestamp = rs.getTimestamp(columnName);
                     if (timestamp != null) {
                         res = FormatUtils.format(new 
Date(timestamp.getTime()));
                     }
diff --git a/pom.xml b/pom.xml
index a7b07f9..412c45c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -414,7 +414,7 @@ under the License.
     <spring-boot.version>2.3.7.RELEASE</spring-boot.version>
     <spring-cloud-gateway.version>2.2.6.RELEASE</spring-cloud-gateway.version>
 
-    <openjpa.version>3.1.2</openjpa.version>
+    <openjpa.version>3.1.3-SNAPSHOT</openjpa.version>
     <hikaricp.version>3.4.5</hikaricp.version>
     <bval.version>2.0.5</bval.version>
 
@@ -972,11 +972,6 @@ under the License.
         <artifactId>spring-cloud-starter-gateway</artifactId>
         <version>${spring-cloud-gateway.version}</version>
       </dependency>
-      <dependency>
-        <groupId>org.springframework.cloud</groupId>
-        <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
-        <version>${spring-cloud-gateway.version}</version>
-      </dependency>
 
       <dependency>
         <groupId>org.springframework</groupId>
@@ -2965,20 +2960,61 @@ under the License.
       </activation>
 
       <properties>
+        <spring.version>5.3.2</spring.version>
+        <spring-boot.version>2.4.1</spring-boot.version>
+        <spring-cloud-gateway.version>3.0.0-RC1</spring-cloud-gateway.version>
+
         <argLine>-Xms512m -Xmx1024m -Xss256k 
-Dnet.bytebuddy.experimental=true</argLine>
       </properties>
 
       <build>
-        <plugins>
-          <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-surefire-plugin</artifactId>
-            <configuration>
-              <argLine>--add-opens=java.base/java.lang=ALL-UNNAMED</argLine>
-            </configuration>
-          </plugin>
-        </plugins>
+        <pluginManagement>
+          <plugins>
+            <plugin>
+              <groupId>org.apache.maven.plugins</groupId>
+              <artifactId>maven-compiler-plugin</artifactId>
+              <configuration>
+                <release>16</release>
+                <fork>true</fork>
+                <compilerArgs>
+                  
<arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED</arg>
+                  
<arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED</arg>
+                  
<arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED</arg>
+                  
<arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED</arg>
+                  
<arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED</arg>
+                  
<arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED</arg>
+                  
<arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED</arg>
+                  
<arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED</arg>
+                  
<arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED</arg>
+                  
<arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.jvm=ALL-UNNAMED</arg>
+                </compilerArgs>
+                <annotationProcessorPaths>
+                  <path>
+                    <groupId>org.projectlombok</groupId>
+                    <artifactId>lombok</artifactId>
+                    <version>1.18.16</version>
+                  </path>
+                </annotationProcessorPaths>
+              </configuration>
+            </plugin>
+          </plugins>
+        </pluginManagement>
       </build>
+
+      <repositories>
+        <repository>
+          <id>repository.spring.milestone</id>
+          <name>Spring Milestone Repository</name>
+          <url>https://repo.spring.io/milestone</url>
+        </repository>
+      </repositories>
+      <pluginRepositories>
+        <pluginRepository>
+          <id>repository.spring.milestone</id>
+          <name>Spring Milestone Repository</name>
+          <url>https://repo.spring.io/milestone</url>
+        </pluginRepository>
+      </pluginRepositories>
     </profile>
   </profiles>
 
diff --git a/sra/pom.xml b/sra/pom.xml
index 183b170..9c78820 100644
--- a/sra/pom.xml
+++ b/sra/pom.xml
@@ -42,10 +42,6 @@ under the License.
       <groupId>org.springframework.cloud</groupId>
       <artifactId>spring-cloud-starter-gateway</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.springframework.cloud</groupId>
-      <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
-    </dependency>
 
     <dependency>
       <groupId>org.springframework.boot</groupId>
diff --git a/sra/src/main/java/org/apache/syncope/sra/RouteProvider.java 
b/sra/src/main/java/org/apache/syncope/sra/RouteProvider.java
index 7a9eec9..4fe80f5 100644
--- a/sra/src/main/java/org/apache/syncope/sra/RouteProvider.java
+++ b/sra/src/main/java/org/apache/syncope/sra/RouteProvider.java
@@ -52,7 +52,6 @@ import 
org.springframework.cloud.gateway.filter.factory.AddRequestHeaderGatewayF
 import 
org.springframework.cloud.gateway.filter.factory.AddRequestParameterGatewayFilterFactory;
 import 
org.springframework.cloud.gateway.filter.factory.AddResponseHeaderGatewayFilterFactory;
 import 
org.springframework.cloud.gateway.filter.factory.FallbackHeadersGatewayFilterFactory;
-import 
org.springframework.cloud.gateway.filter.factory.HystrixGatewayFilterFactory;
 import 
org.springframework.cloud.gateway.filter.factory.PrefixPathGatewayFilterFactory;
 import 
org.springframework.cloud.gateway.filter.factory.PreserveHostHeaderGatewayFilterFactory;
 import 
org.springframework.cloud.gateway.filter.factory.RedirectToGatewayFilterFactory;
@@ -163,19 +162,6 @@ public class RouteProvider {
                         });
                 break;
 
-            case HYSTRIX:
-                String[] hystrixArgs = gwfilter.getArgs().split(",");
-                filter = ctx.getBean(HystrixGatewayFilterFactory.class).
-                        apply(route.getKey(), c -> {
-                            if (StringUtils.isNotBlank(hystrixArgs[0])) {
-                                c.setName(hystrixArgs[0].trim());
-                            }
-                            if (StringUtils.isNotBlank(hystrixArgs[1])) {
-                                c.setFallbackUri(hystrixArgs[1].trim());
-                            }
-                        });
-                break;
-
             case FALLBACK_HEADERS:
                 String[] fallbackHeadersArgs = gwfilter.getArgs().split(",");
                 filter = 
ctx.getBean(FallbackHeadersGatewayFilterFactory.class).
diff --git a/sra/src/test/java/org/apache/syncope/sra/RouteProviderTest.java 
b/sra/src/test/java/org/apache/syncope/sra/RouteProviderTest.java
index 2cdc822..42f24bd 100644
--- a/sra/src/test/java/org/apache/syncope/sra/RouteProviderTest.java
+++ b/sra/src/test/java/org/apache/syncope/sra/RouteProviderTest.java
@@ -26,7 +26,6 @@ import static 
com.github.tomakehurst.wiremock.client.WireMock.post;
 import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;
 import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo;
 import static com.github.tomakehurst.wiremock.client.WireMock.verify;
-import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.junit.jupiter.api.Assertions.fail;
 import static org.mockito.ArgumentMatchers.anyString;
@@ -96,7 +95,8 @@ public class RouteProviderTest extends AbstractTest {
         route.getPredicates().add(new SRARoutePredicate.Builder().
                 factory(SRARoutePredicateFactory.METHOD).args("GET").build());
         route.getPredicates().add(new SRARoutePredicate.Builder().
-                
factory(SRARoutePredicateFactory.PATH).args("/addResponseHeader").cond(SRARoutePredicateCond.AND).build());
+                
factory(SRARoutePredicateFactory.PATH).args("/addResponseHeader").cond(SRARoutePredicateCond.AND).
+                build());
         route.getFilters().add(new SRARouteFilter.Builder().
                 
factory(SRARouteFilterFactory.ADD_RESPONSE_HEADER).args("Hello,World").build());
 
@@ -179,37 +179,6 @@ public class RouteProviderTest extends AbstractTest {
     }
 
     @Test
-    public void hystrix() {
-        webClient.get().uri("/fallback").exchange().
-                expectStatus().isOk().
-                expectBody().
-                consumeWith(response -> 
assertThat(response.getResponseBody()).isEqualTo("fallback".getBytes()));
-
-        stubFor(get(urlEqualTo("/delay/3")).
-                willReturn(aResponse().
-                        withBody("no fallback").
-                        withFixedDelay(3000)));
-
-        SRARouteTO route = new SRARouteTO();
-        route.setKey("hystrix");
-        route.setTarget(URI.create("http://localhost:"; + wiremockPort));
-        route.getPredicates().add(new SRARoutePredicate.Builder().
-                
factory(SRARoutePredicateFactory.HOST).args("*.hystrix.com").build());
-        route.getFilters().add(new SRARouteFilter.Builder().
-                
factory(SRARouteFilterFactory.HYSTRIX).args("fallbackcmd,forward:/fallback").build());
-
-        SyncopeCoreTestingServer.ROUTES.put(route.getKey(), route);
-        routeRefresher.refresh();
-
-        webClient.get().uri("/delay/3").
-                header(HttpHeaders.HOST, "www.hystrix.com").
-                exchange().
-                expectStatus().isOk().
-                expectBody().
-                consumeWith(response -> 
assertThat(response.getResponseBody()).isEqualTo("fallback".getBytes()));
-    }
-
-    @Test
     public void requestHeaderToRequestUri() {
         
webClient.get().uri("/requestHeaderToRequestUri").exchange().expectStatus().isNotFound();
 
@@ -391,7 +360,8 @@ public class RouteProviderTest extends AbstractTest {
         webClient.get().uri("/redirect").exchange().expectStatus().isOk();
 
         route.getFilters().clear();
-        route.getFilters().add(new 
SRARouteFilter.Builder().factory(SRARouteFilterFactory.SET_STATUS).args("404").build());
+        route.getFilters().add(new 
SRARouteFilter.Builder().factory(SRARouteFilterFactory.SET_STATUS).args("404").
+                build());
 
         SyncopeCoreTestingServer.ROUTES.put(route.getKey(), route);
         routeRefresher.refresh();
@@ -443,7 +413,8 @@ public class RouteProviderTest extends AbstractTest {
 
         route.getPredicates().clear();
         route.getPredicates().add(new SRARoutePredicate.Builder().
-                
factory(SRARoutePredicateFactory.BEFORE).negate().args(ZonedDateTime.now().minusYears(1).toString()).build());
+                
factory(SRARoutePredicateFactory.BEFORE).negate().args(ZonedDateTime.now().minusYears(1).toString()).
+                build());
 
         SyncopeCoreTestingServer.ROUTES.put(route.getKey(), route);
         routeRefresher.refresh();
diff --git a/wa/starter/pom.xml b/wa/starter/pom.xml
index 230847d..5098891 100644
--- a/wa/starter/pom.xml
+++ b/wa/starter/pom.xml
@@ -418,5 +418,27 @@ under the License.
         </resources>
       </build>
     </profile>
+
+    <profile>
+      <id>jdk16-plus</id>
+
+      <activation>
+        <jdk>[16,)</jdk>
+      </activation>
+      
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-surefire-plugin</artifactId>
+            <configuration>
+              <includes>
+                <include>**/SyncopeWASAML2*.java</include>
+              </includes>            
+            </configuration>
+          </plugin>          
+        </plugins>
+      </build>
+    </profile>
   </profiles>
 </project>

Reply via email to