[SYNCOPE-1335] Missing statements added
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/e03d47ef Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/e03d47ef Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/e03d47ef Branch: refs/heads/master Commit: e03d47ef56fbbaf2ff1e2f95b24a877ed040d52a Parents: 6c104df Author: Francesco Chicchiriccò <ilgro...@apache.org> Authored: Wed Jul 11 12:15:07 2018 +0200 Committer: Francesco Chicchiriccò <ilgro...@apache.org> Committed: Wed Jul 11 12:15:16 2018 +0200 ---------------------------------------------------------------------- .../core/upgrade/GenerateUpgradeSQL.java | 76 +++++++++++++++++++- 1 file changed, 74 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/syncope/blob/e03d47ef/core/upgrade/src/main/java/org/apache/syncope/core/upgrade/GenerateUpgradeSQL.java ---------------------------------------------------------------------- diff --git a/core/upgrade/src/main/java/org/apache/syncope/core/upgrade/GenerateUpgradeSQL.java b/core/upgrade/src/main/java/org/apache/syncope/core/upgrade/GenerateUpgradeSQL.java index 6f69d72..01554f3 100644 --- a/core/upgrade/src/main/java/org/apache/syncope/core/upgrade/GenerateUpgradeSQL.java +++ b/core/upgrade/src/main/java/org/apache/syncope/core/upgrade/GenerateUpgradeSQL.java @@ -91,10 +91,41 @@ public final class GenerateUpgradeSQL { schemaTool.run(); // now proceed with manual update statements... + Connection conn = jdbcConf.getDataSource2(null).getConnection(); + + // User + OUT.write("UPDATE SyncopeUser SET mustChangePassword=0 WHERE mustChangePassword IS NULL;\n"); + + // VirSchema + OUT.write("UPDATE VirSchema SET readonly=0 WHERE readonly IS NULL;\n"); + + // ExternalResource + OUT.write("UPDATE ExternalResource SET overrideCapabilities=0 WHERE overrideCapabilities IS NULL;\n"); + // OrgUnit OUT.write("UPDATE OrgUnit SET ignoreCaseMatch=0;\n"); - Connection conn = jdbcConf.getDataSource2(null).getConnection(); + // OrgUnitItemTransformer + try (Statement stmt = conn.createStatement(); + ResultSet rs = stmt.executeQuery( + "SELECT orgUnitItem_id,transformerClassName FROM OrgUnitItem_Transformer")) { + + while (rs.next()) { + String itemId = rs.getString(1); + String transformerClassName = rs.getString(2); + + String implementationId = "OrgUnitItemTransformer_" + itemId; + OUT.write("INSERT INTO Implementation(id,type,engine,body) VALUES(" + + "'" + implementationId + "'," + + "'ITEM_TRANSFORMER'," + + "'JAVA'," + + "'" + transformerClassName + "');\n"); + OUT.write("INSERT INTO OrgUnitItemTransformer(item_id,implementation_id) VALUES(" + + "'" + itemId + "'," + + "'" + implementationId + "');\n"); + } + } + OUT.write("DROP TABLE OrgUnitItem_Transformer;\n"); // PlainSchema try (Statement stmt = conn.createStatement(); @@ -210,6 +241,7 @@ public final class GenerateUpgradeSQL { // Task OUT.write("UPDATE Task SET remediation=0;\n"); + OUT.write("UPDATE Task SET active=0 WHERE active IS NULL;\n"); OUT.write("INSERT INTO Implementation(id,type,engine,body) VALUES(" + "'PullJobDelegate'," @@ -375,12 +407,52 @@ public final class GenerateUpgradeSQL { } } OUT.write("DROP TABLE ReportletConfInstance;\n"); + + // MappingItemTransformer + try (Statement stmt = conn.createStatement(); + ResultSet rs = stmt.executeQuery( + "SELECT mappingItem_id,transformerClassName FROM MappingItem_Transformer")) { + + while (rs.next()) { + String itemId = rs.getString(1); + String transformerClassName = rs.getString(2); + + String implementationId = "MappingItemTransformer_" + itemId; + OUT.write("INSERT INTO Implementation(id,type,engine,body) VALUES(" + + "'" + implementationId + "'," + + "'ITEM_TRANSFORMER'," + + "'JAVA'," + + "'" + transformerClassName + "');\n"); + OUT.write("INSERT INTO MappingItemTransformer(item_id,implementation_id) VALUES(" + + "'" + itemId + "'," + + "'" + implementationId + "');\n"); + } + } + OUT.write("DROP TABLE MappingItem_Transformer;\n"); + + // Notification + try (Statement stmt = conn.createStatement(); + ResultSet rs = stmt.executeQuery( + "SELECT DISTINCT recipientsProviderClassName " + + "FROM Notification WHERE recipientsProviderClassName IS NOT NULL")) { + + while (rs.next()) { + String recipientsProviderClassName = rs.getString(1); + OUT.write("INSERT INTO Implementation(id,type,engine,body) VALUES(" + + "'" + recipientsProviderClassName + "'," + + "'RECIPIENTS_PROVIDER'," + + "'JAVA'," + + "'" + recipientsProviderClassName + "');\n"); + } + } + OUT.write("UPDATE Notification SET recipientsProvider_id=recipientsProviderClassName;\n"); + OUT.write("ALTER TABLE Notification DROP COLUMN recipientsProviderClassName;\n"); } finally { OUT.flush(); OUT.close(); } } - + private GenerateUpgradeSQL() { // private constructor }