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 2022/10/21 13:40:58 UTC
[syncope] branch master updated: Upgrading Spring Boot
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
The following commit(s) were added to refs/heads/master by this push:
new 2502355999 Upgrading Spring Boot
2502355999 is described below
commit 2502355999da7292f15327ef568978123a9c5189
Author: Francesco Chicchiriccò <il...@apache.org>
AuthorDate: Thu Oct 20 16:29:11 2022 +0200
Upgrading Spring Boot
---
.../client/console/panels/DomainWizardBuilder.java | 6 ++++--
core/persistence-jpa-json/pom.xml | 4 ++--
.../src/main/resources/audit/audit_ojson.sql | 4 ++++
.../src/main/resources/core-myjson.properties | 2 +-
.../jpa/validation/entity/JPAPlainAttrValidator.java | 4 ++--
docker/core/pom.xml | 6 +++---
docker/core/src/main/resources/core-myjson.properties | 2 +-
docker/core/src/main/resources/core-mysql.properties | 2 +-
fit/core-reference/pom.xml | 16 ++++++++--------
.../src/main/resources/core-myjson.properties | 2 +-
.../src/main/resources/core-mysql.properties | 2 +-
pom.xml | 4 ++--
.../asciidoc/reference-guide/configuration/dbms.adoc | 6 +++---
src/main/asciidoc/reference-guide/howto/upgrade.adoc | 19 +++++++++++++++++--
14 files changed, 50 insertions(+), 29 deletions(-)
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DomainWizardBuilder.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DomainWizardBuilder.java
index 5fb42f66a8..afb235e854 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DomainWizardBuilder.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DomainWizardBuilder.java
@@ -55,8 +55,10 @@ public class DomainWizardBuilder extends BaseAjaxWizardBuilder<Domain> {
private static final List<String> DATABASE_PLATFORMS = List.of(
"org.apache.openjpa.jdbc.sql.PostgresDictionary",
- "org.apache.openjpa.jdbc.sql.MySQLDictionary(blobTypeName=LONGBLOB,dateFractionDigits=3)",
- "org.apache.openjpa.jdbc.sql.MariaDBDictionary(blobTypeName=LONGBLOB,dateFractionDigits=3)",
+ "org.apache.openjpa.jdbc.sql.MySQLDictionary"
+ + "(blobTypeName=LONGBLOB,dateFractionDigits=3,useSetStringForClobs=true)",
+ "org.apache.openjpa.jdbc.sql.MariaDBDictionary"
+ + "(blobTypeName=LONGBLOB,dateFractionDigits=3)",
"org.apache.openjpa.jdbc.sql.SQLServerDictionary",
"org.apache.openjpa.jdbc.sql.OracleDictionary",
"org.apache.openjpa.jdbc.sql.H2Dictionary");
diff --git a/core/persistence-jpa-json/pom.xml b/core/persistence-jpa-json/pom.xml
index 71350950c1..ef63d64992 100644
--- a/core/persistence-jpa-json/pom.xml
+++ b/core/persistence-jpa-json/pom.xml
@@ -340,8 +340,8 @@ under the License.
<dependencies>
<dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
+ <groupId>com.mysql</groupId>
+ <artifactId>mysql-connector-j</artifactId>
<version>${jdbc.mysql.version}</version>
<scope>test</scope>
</dependency>
diff --git a/core/persistence-jpa-json/src/main/resources/audit/audit_ojson.sql b/core/persistence-jpa-json/src/main/resources/audit/audit_ojson.sql
index d4e39395f5..7e3c953d7d 100644
--- a/core/persistence-jpa-json/src/main/resources/audit/audit_ojson.sql
+++ b/core/persistence-jpa-json/src/main/resources/audit/audit_ojson.sql
@@ -22,3 +22,7 @@ CREATE TABLE AuditEntry (
MESSAGE CLOB CHECK (MESSAGE IS JSON) NOT NULL,
THROWABLE CLOB
);
+
+-- The following index require Oracle TEXT to be installed on the given Oracle database:
+-- http://dbaflavours.blogspot.com/2012/09/ora-29833-indextype-does-not-exist_18.html
+CREATE SEARCH INDEX AuditEntry_MESSAGE_Index ON AuditEntry(MESSAGE) FOR JSON;
diff --git a/core/persistence-jpa-json/src/main/resources/core-myjson.properties b/core/persistence-jpa-json/src/main/resources/core-myjson.properties
index 997eaedb16..2d526fdab6 100644
--- a/core/persistence-jpa-json/src/main/resources/core-myjson.properties
+++ b/core/persistence-jpa-json/src/main/resources/core-myjson.properties
@@ -23,7 +23,7 @@ persistence.domain[0].jdbcDriver=com.mysql.cj.jdbc.Driver
persistence.domain[0].jdbcURL=jdbc:mysql://localhost:3306/syncope?useSSL=false&allowPublicKeyRetrieval=true&characterEncoding=UTF-8
persistence.domain[0].dbUsername=syncope
persistence.domain[0].dbPassword=syncope
-persistence.domain[0].databasePlatform=org.apache.openjpa.jdbc.sql.MySQLDictionary(blobTypeName=LONGBLOB,dateFractionDigits=3)
+persistence.domain[0].databasePlatform=org.apache.openjpa.jdbc.sql.MySQLDictionary(blobTypeName=LONGBLOB,dateFractionDigits=3,useSetStringForClobs=true)
persistence.domain[0].orm=META-INF/spring-orm-myjson.xml
persistence.domain[0].auditSql=audit_myjson.sql
persistence.domain[0].poolMaxActive=10
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/JPAPlainAttrValidator.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/JPAPlainAttrValidator.java
index 1a66833a0f..066b31fcfb 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/JPAPlainAttrValidator.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/JPAPlainAttrValidator.java
@@ -43,8 +43,8 @@ public class JPAPlainAttrValidator extends AbstractValidator<PlainAttrCheck, Pla
}
if (!isValid) {
- LOG.error("Invalid values for attribute " + attr + ": "
- + "schema=" + attr.getSchema().getKey() + ", values={}", attr.getValuesAsStrings());
+ LOG.error("Invalid values for attribute schema={}, values={}",
+ attr.getSchema().getKey(), attr.getValuesAsStrings());
context.buildConstraintViolationWithTemplate(
getTemplate(EntityViolationType.InvalidValueList,
diff --git a/docker/core/pom.xml b/docker/core/pom.xml
index 3801c7418f..becb132879 100644
--- a/docker/core/pom.xml
+++ b/docker/core/pom.xml
@@ -124,8 +124,8 @@ under the License.
<scope>test</scope>
</dependency>
<dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
+ <groupId>com.mysql</groupId>
+ <artifactId>mysql-connector-j</artifactId>
<version>${jdbc.mysql.version}</version>
<scope>test</scope>
</dependency>
@@ -180,7 +180,7 @@ under the License.
<configuration>
<target>
<copy file="${settings.localRepository}/org/postgresql/postgresql/${jdbc.postgresql.version}/postgresql-${jdbc.postgresql.version}.jar" todir="${project.build.outputDirectory}/lib" overwrite="true"/>
- <copy file="${settings.localRepository}/mysql/mysql-connector-java/${jdbc.mysql.version}/mysql-connector-java-${jdbc.mysql.version}.jar" todir="${project.build.outputDirectory}/lib" overwrite="true"/>
+ <copy file="${settings.localRepository}/com/mysql/mysql-connector-j/${jdbc.mysql.version}/mysql-connector-j-${jdbc.mysql.version}.jar" todir="${project.build.outputDirectory}/lib" overwrite="true"/>
<copy file="${settings.localRepository}/org/mariadb/jdbc/mariadb-java-client/${jdbc.mariadb.version}/mariadb-java-client-${jdbc.mariadb.version}.jar" todir="${project.build.outputDirectory}/lib" overwrite="true"/>
<copy file="${settings.localRepository}/com/microsoft/sqlserver/mssql-jdbc/${jdbc.mssql.version}11/mssql-jdbc-${jdbc.mssql.version}11.jar" todir="${project.build.outputDirectory}/lib" overwrite="true"/>
<copy file="${settings.localRepository}/com/oracle/database/jdbc/ojdbc11/${jdbc.oracle.version}/ojdbc11-${jdbc.oracle.version}.jar" todir="${project.build.outputDirectory}/lib" overwrite="true"/>
diff --git a/docker/core/src/main/resources/core-myjson.properties b/docker/core/src/main/resources/core-myjson.properties
index d0e470f4d2..a8bbea0634 100644
--- a/docker/core/src/main/resources/core-myjson.properties
+++ b/docker/core/src/main/resources/core-myjson.properties
@@ -24,7 +24,7 @@ persistence.domain[0].jdbcDriver=com.mysql.cj.jdbc.Driver
persistence.domain[0].jdbcURL=${DB_URL}
persistence.domain[0].dbUsername=${DB_USER}
persistence.domain[0].dbPassword=${DB_PASSWORD}
-persistence.domain[0].databasePlatform=org.apache.openjpa.jdbc.sql.MySQLDictionary(blobTypeName=LONGBLOB,dateFractionDigits=3)
+persistence.domain[0].databasePlatform=org.apache.openjpa.jdbc.sql.MySQLDictionary(blobTypeName=LONGBLOB,dateFractionDigits=3,useSetStringForClobs=true)
persistence.domain[0].orm=META-INF/spring-orm-myjson.xml
persistence.domain[0].auditSql=audit_myjson.sql
persistence.domain[0].poolMaxActive=${DB_POOL_MAX}
diff --git a/docker/core/src/main/resources/core-mysql.properties b/docker/core/src/main/resources/core-mysql.properties
index 12b2f297b4..f268bc84c5 100644
--- a/docker/core/src/main/resources/core-mysql.properties
+++ b/docker/core/src/main/resources/core-mysql.properties
@@ -19,7 +19,7 @@ persistence.domain[0].jdbcDriver=com.mysql.cj.jdbc.Driver
persistence.domain[0].jdbcURL=${DB_URL}
persistence.domain[0].dbUsername=${DB_USER}
persistence.domain[0].dbPassword=${DB_PASSWORD}
-persistence.domain[0].databasePlatform=org.apache.openjpa.jdbc.sql.MySQLDictionary(blobTypeName=LONGBLOB,dateFractionDigits=3)
+persistence.domain[0].databasePlatform=org.apache.openjpa.jdbc.sql.MySQLDictionary(blobTypeName=LONGBLOB,dateFractionDigits=3,useSetStringForClobs=true)
persistence.domain[0].auditSql=audit_mysql_innodb.sql
persistence.domain[0].poolMaxActive=${DB_POOL_MAX}
persistence.domain[0].poolMinIdle=${DB_POOL_MIN}
diff --git a/fit/core-reference/pom.xml b/fit/core-reference/pom.xml
index 571a6f2f93..336c390c2d 100644
--- a/fit/core-reference/pom.xml
+++ b/fit/core-reference/pom.xml
@@ -817,8 +817,8 @@ under the License.
<id>myjson-it</id>
<properties>
- <jdbcdriver.groupId>mysql</jdbcdriver.groupId>
- <jdbcdriver.artifactId>mysql-connector-java</jdbcdriver.artifactId>
+ <jdbcdriver.groupId>com.mysql</jdbcdriver.groupId>
+ <jdbcdriver.artifactId>mysql-connector-j</jdbcdriver.artifactId>
<spring.profiles.active>embedded,myjson</spring.profiles.active>
</properties>
@@ -831,8 +831,8 @@ under the License.
</dependency>
<dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
+ <groupId>com.mysql</groupId>
+ <artifactId>mysql-connector-j</artifactId>
<version>${jdbc.mysql.version}</version>
<scope>test</scope>
</dependency>
@@ -935,16 +935,16 @@ under the License.
<id>mysql-it</id>
<properties>
- <jdbcdriver.groupId>mysql</jdbcdriver.groupId>
- <jdbcdriver.artifactId>mysql-connector-java</jdbcdriver.artifactId>
+ <jdbcdriver.groupId>com.mysql</jdbcdriver.groupId>
+ <jdbcdriver.artifactId>mysql-connector-j</jdbcdriver.artifactId>
<spring.profiles.active>embedded,mysql</spring.profiles.active>
</properties>
<dependencies>
<dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
+ <groupId>com.mysql</groupId>
+ <artifactId>mysql-connector-j</artifactId>
<version>${jdbc.mysql.version}</version>
<scope>test</scope>
</dependency>
diff --git a/fit/core-reference/src/main/resources/core-myjson.properties b/fit/core-reference/src/main/resources/core-myjson.properties
index 0feee5f156..9d3fd6e381 100644
--- a/fit/core-reference/src/main/resources/core-myjson.properties
+++ b/fit/core-reference/src/main/resources/core-myjson.properties
@@ -23,7 +23,7 @@ persistence.domain[0].jdbcDriver=com.mysql.cj.jdbc.Driver
persistence.domain[0].jdbcURL=jdbc:mysql://${DB_CONTAINER_IP}:3306/syncope?useSSL=false&allowPublicKeyRetrieval=true&characterEncoding=UTF-8
persistence.domain[0].dbUsername=syncope
persistence.domain[0].dbPassword=syncope
-persistence.domain[0].databasePlatform=org.apache.openjpa.jdbc.sql.MySQLDictionary(blobTypeName=LONGBLOB,dateFractionDigits=3)
+persistence.domain[0].databasePlatform=org.apache.openjpa.jdbc.sql.MySQLDictionary(blobTypeName=LONGBLOB,dateFractionDigits=3,useSetStringForClobs=true)
persistence.domain[0].orm=META-INF/spring-orm-myjson.xml
persistence.domain[0].auditSql=audit_myjson.sql
persistence.domain[0].poolMaxActive=10
diff --git a/fit/core-reference/src/main/resources/core-mysql.properties b/fit/core-reference/src/main/resources/core-mysql.properties
index 404b457b5b..218f52efa4 100644
--- a/fit/core-reference/src/main/resources/core-mysql.properties
+++ b/fit/core-reference/src/main/resources/core-mysql.properties
@@ -20,7 +20,7 @@ persistence.domain[0].jdbcDriver=com.mysql.cj.jdbc.Driver
persistence.domain[0].jdbcURL=jdbc:mysql://${DB_CONTAINER_IP}:3306/syncope?useSSL=false&allowPublicKeyRetrieval=true&characterEncoding=UTF-8
persistence.domain[0].dbUsername=syncope
persistence.domain[0].dbPassword=syncope
-persistence.domain[0].databasePlatform=org.apache.openjpa.jdbc.sql.MySQLDictionary(blobTypeName=LONGBLOB,dateFractionDigits=3)
+persistence.domain[0].databasePlatform=org.apache.openjpa.jdbc.sql.MySQLDictionary(blobTypeName=LONGBLOB,dateFractionDigits=3,useSetStringForClobs=true)
persistence.domain[0].auditSql=audit_mysql_innodb.sql
persistence.domain[0].poolMaxActive=10
persistence.domain[0].poolMinIdle=2
diff --git a/pom.xml b/pom.xml
index 93081efb1f..150998db5e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -417,7 +417,7 @@ under the License.
<jackson.version>2.14.0-rc2</jackson.version>
- <spring-boot.version>2.7.4</spring-boot.version>
+ <spring-boot.version>2.7.5</spring-boot.version>
<spring-cloud-gateway.version>3.1.4</spring-cloud-gateway.version>
<openjpa.version>3.2.2</openjpa.version>
@@ -513,7 +513,7 @@ under the License.
<docker.mariadb.version>10</docker.mariadb.version>
<jdbc.postgresql.version>42.5.0</jdbc.postgresql.version>
- <jdbc.mysql.version>8.0.28</jdbc.mysql.version>
+ <jdbc.mysql.version>8.0.31</jdbc.mysql.version>
<jdbc.mariadb.version>3.0.8</jdbc.mariadb.version>
<jdbc.mssql.version>11.2.1.jre</jdbc.mssql.version>
<jdbc.oracle.version>21.7.0.0</jdbc.oracle.version>
diff --git a/src/main/asciidoc/reference-guide/configuration/dbms.adoc b/src/main/asciidoc/reference-guide/configuration/dbms.adoc
index 0f91d2ffc3..490003257b 100644
--- a/src/main/asciidoc/reference-guide/configuration/dbms.adoc
+++ b/src/main/asciidoc/reference-guide/configuration/dbms.adoc
@@ -117,7 +117,7 @@ persistence.domain[0].jdbcDriver=com.mysql.cj.jdbc.Driver
persistence.domain[0].jdbcURL=jdbc:mysql://localhost:3306/syncope?useSSL=false&allowPublicKeyRetrieval=true&characterEncoding=UTF-8
persistence.domain[0].dbUsername=syncope
persistence.domain[0].dbPassword=syncope
-persistence.domain[0].databasePlatform=org.apache.openjpa.jdbc.sql.MySQLDictionary(blobTypeName=LONGBLOB,dateFractionDigits=3)
+persistence.domain[0].databasePlatform=org.apache.openjpa.jdbc.sql.MySQLDictionary(blobTypeName=LONGBLOB,dateFractionDigits=3,useSetStringForClobs=true)
persistence.domain[0].auditSql=audit_mysql_innodb.sql
persistence.domain[0].poolMaxActive=10
persistence.domain[0].poolMinIdle=2
@@ -175,7 +175,7 @@ persistence.domain[0].jdbcDriver=com.mysql.cj.jdbc.Driver
persistence.domain[0].jdbcURL=jdbc:mysql://localhost:3306/syncope?useSSL=false&allowPublicKeyRetrieval=true&characterEncoding=UTF-8
persistence.domain[0].dbUsername=syncope
persistence.domain[0].dbPassword=syncope
-persistence.domain[0].databasePlatform=org.apache.openjpa.jdbc.sql.MySQLDictionary(blobTypeName=LONGBLOB,dateFractionDigits=3)
+persistence.domain[0].databasePlatform=org.apache.openjpa.jdbc.sql.MySQLDictionary(blobTypeName=LONGBLOB,dateFractionDigits=3,useSetStringForClobs=true)
persistence.domain[0].orm=META-INF/spring-orm-myjson.xml
persistence.domain[0].auditSql=audit_myjson.sql
persistence.domain[0].poolMaxActive=10
@@ -215,7 +215,7 @@ persistence.domain[0].jdbcDriver=org.mariadb.jdbc.Driver
persistence.domain[0].jdbcURL=jdbc:mariadb://localhost:3306/syncope?characterEncoding=UTF-8
persistence.domain[0].dbUsername=syncope
persistence.domain[0].dbPassword=syncope
-persistence.domain[0].databasePlatform=org.apache.openjpa.jdbc.sql.MariaDBDictionary(blobTypeName=LONGBLOB,dateFractionDigits=3)
+persistence.domain[0].databasePlatform=org.apache.openjpa.jdbc.sql.MariaDBDictionary(blobTypeName=LONGBLOB,dateFractionDigits=3,useSetStringForClobs=true)
persistence.domain[0].auditSql=audit_mariadb.sql
persistence.domain[0].poolMaxActive=10
persistence.domain[0].poolMinIdle=2
diff --git a/src/main/asciidoc/reference-guide/howto/upgrade.adoc b/src/main/asciidoc/reference-guide/howto/upgrade.adoc
index 48de4bcb58..9ae8633620 100644
--- a/src/main/asciidoc/reference-guide/howto/upgrade.adoc
+++ b/src/main/asciidoc/reference-guide/howto/upgrade.adoc
@@ -18,5 +18,20 @@
//
=== Upgrade from 2.1
-[WARNING]
-TODO
+The distance between earlier releases and Syncope 3.0 Maggiore is relevant under different aspects: architecture,
+technology, project organization and naturally internal data representation.
+
+For this reason [.underline]#there is no practical way to migrate an old project# to Syncope 3.0.
+
+It is possible, however, to setup a new Syncope 3.0 project, replicate configurations and finally migrate the existing
+data. Here is the outlined approach:
+
+. create a new Maven project based on Syncope 3.0
+. update code customization and extensions made from your previous Syncope project to the new classes and interfaces
+provided by Syncope 3.0
+. with both projects up and running:
+ .. download relevant configurations - especially connectors and resources - via REST from your previous Syncope
+project
+ .. upload via REST to the new Syncope 3.0 project
+ .. configure a new REST resource in the new Syncope 3.0 project to pull users, groups and any objects from your
+previous Syncope project