diff --git a/NEWS b/NEWS index f509603864f..b50af66ead3 100644 --- a/NEWS +++ b/NEWS @@ -1,22 +1,55 @@ -midPoint 3.7 "Darwin" +midPoint 3.8 "Watt" ---------------------------------- -Release 3.7 is a twenty third midPoint release code-named Darwin. -The 3.7 release brings new deployment model and numerous gradual improvements. -There are improvements of identity governance features, improvements of user -interface and internal improvements. +Release 3.8 is a twenty sixth midPoint release code-named Watt. +The 3.8 release brings major performance and scalability improvements. +There are also provisioning, security and user interface improvements. -Release date: 18th December 2017 +Release date: 13th June 2018 -Changes with respect to version 3.6.1: - Stand-alone deployment based on Spring Boot +Changes with respect to version 3.7: User interface improvements - Governance improvements - Expression, mapping and bulk action improvements + User-friendly policy selection + User-friendly entitlement association management + GUI support for more complex data in object extension (containers), improved GUI customization (experimental) + Simple GUI pages for cases (internal midPoint tickets) contributed by Exclamation Labs + Support for custom static web content in midpoint home directory + Support for experimental annotation + Ability to override experimental and deprecated annotations + Minor user experience improvements + Data model improvements + Full implementation of subType property + Properties locality, costCenter, preferredLanguage, locale, timezone, emailAddress and telephoneNumber moved up from UserType to FocusType. + Customizable PolyString normalization Security improvements - Task improvements + Password Policy: prohibited projection values + Negative item enumeration in authorizations (exceptItem) + Expression code requires just execution-phase authorizations, it does not need request-phase authorizations any more + Improved password metadata + Provisioning + Provisioning Propagation + Ad-hoc provisioning script execution + Improved error handling, especially criticality of ITSM errors + Provisioning dependencies may use filter in dependency specification + Performance and scalability improvements + Optimized database schema for better performance and scalability + Autoincrement field for audit record storage + Multi-node, partitioned and stateful tasks + Audit delta and operation result compression + Repository layer cache Miscellaneous improvements + Improved handling of function library updates + Minor mapping improvements + Basic data protection features (experimental) + Improved SMS gateway support (HTTP POST method) + Support for configuration variable in inbound mappings + Start scripts for ninja tool (ninja.sh, ninja.bat) + Improved documentation + Connectors + CSV connector supports script execution + Active Directory connector supports CredSSP version 5 and 6 (see CVE-2018-0886) -Java 7 environment is no longer supported. -XPath2 scripting is no longer supported. -CSVFile Connector is no longer supported. +Oracle database 11g is no longer supported. It is replaced by Oracle 12c database support. +Support for PostgreSQL 9.4 and earlier is deprecated. PostgreSQL 8.4.x and earlier is no longer supported. +MySQL 5.6 and earlier is no longer supported. +Microsoft SQL 2008 and 2008 R2 are no longer supported. Microsoft SQL Server 2012 support is deprecated. diff --git a/README b/README index 76c1a69da06..89878250c07 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -MidPoint 3.8 development branch +MidPoint 3.9 development branch ------------------------------------ General information: @@ -26,6 +26,7 @@ The most important features of midPoint are: - Support for ConnId and OpenICF connectors - Provisioning consistency and error handling - Support for security auditing and reporting + - Data protection (experimental) - Workflow - Reporting - Notifications diff --git a/README.md b/README.md index 88659fd7135..a6cb3536231 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ Status: [![Build Status](https://travis-ci.org/Evolveum/midpoint.svg?branch=master)](https://travis-ci.org/Evolveum/midpoint) -MidPoint 3.8 development branch +MidPoint 3.9 development branch ------------------------------------ General information: @@ -32,6 +32,7 @@ Other features: - Entitlements - Support for ConnId and OpenICF connectors - Provisioning consistency and error handling +- Data protection (experimental) - Reporting - Notifications - Local Java APIs, Remote web service interface (SOAP), REST API diff --git a/RELEASE-NOTES b/RELEASE-NOTES index f8a6e3aa739..5a6d2fd9f7a 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -1,4 +1,4 @@ To see actual releases notes please go to: -https://wiki.evolveum.com/display/midPoint/Release+3.7 +https://wiki.evolveum.com/display/midPoint/Release+3.8 diff --git a/build-system/pom.xml b/build-system/pom.xml index 1487512a375..0367ec837d0 100644 --- a/build-system/pom.xml +++ b/build-system/pom.xml @@ -25,7 +25,7 @@ com.evolveum.midpoint midpoint - 3.8-SNAPSHOT + 3.9-SNAPSHOT @@ -63,10 +63,10 @@ 1.0.1 1.7.25 1.2.3 - 1.5.8.e1 - 4.3.14.RELEASE - 4.2.4.RELEASE + 5.0.6.RELEASE + 5.0.6.RELEASE 3.5.0 6.8.8 1.2 @@ -75,6 +75,7 @@ 5.2.12.Final 1.4.193 42.2.2 + 6.4.0.jre8 1.5.5 6.0.6 7.10.0 @@ -87,7 +88,7 @@ 6.5.0 10.11.1.1 1.8.0 - 2.8.9 + 2.9.5 1.15 2.20.1 0.9.11 @@ -830,6 +831,11 @@ spring-aop ${spring.version} + + org.springframework + spring-jcl + ${spring.version} + org.springframework.security spring-security-config @@ -885,6 +891,11 @@ postgresql ${jdbc.postgres} + + com.microsoft.sqlserver + mssql-jdbc + ${jdbc.sqlserver} + org.mariadb.jdbc mariadb-java-client @@ -1470,13 +1481,9 @@ - /opt/jenkins_db_configs/mssqljdbc4.jar /opt/jenkins_db_configs/ojdbc7.jar - c:\midpoint\jdbc-drivers\sqljdbc42.jar c:\midpoint\jdbc-drivers\ojdbc7.jar - c:\Program Files\Microsoft JDBC DRIVER - 4.0 for SQL Server\sqljdbc_4.0\enu\sqljdbc4.jar diff --git a/config/initial-objects/020-system-configuration.xml b/config/initial-objects/000-system-configuration.xml similarity index 97% rename from config/initial-objects/020-system-configuration.xml rename to config/initial-objects/000-system-configuration.xml index 23912656e43..99454dcd4d1 100644 --- a/config/initial-objects/020-system-configuration.xml +++ b/config/initial-objects/000-system-configuration.xml @@ -49,6 +49,11 @@ WARN org.hibernate.engine.jdbc.batch.internal.AbstractBatchImpl + + + OFF + org.hibernate.internal.ExceptionMapperStandardImpl + OFF diff --git a/config/initial-objects/030-role-superuser.xml b/config/initial-objects/030-role-superuser.xml index c5212cc6548..ecef9e6baba 100644 --- a/config/initial-objects/030-role-superuser.xml +++ b/config/initial-objects/030-role-superuser.xml @@ -1,6 +1,6 @@ + + + + States + + + open + + + + closed + + + + diff --git a/config/sql/_all/mysql-upgrade-3.7-3.8.sql b/config/sql/_all/h2-3.9-all.sql similarity index 75% rename from config/sql/_all/mysql-upgrade-3.7-3.8.sql rename to config/sql/_all/h2-3.9-all.sql index 65070f50e13..4ede186d505 100644 --- a/config/sql/_all/mysql-upgrade-3.7-3.8.sql +++ b/config/sql/_all/h2-3.9-all.sql @@ -1,95 +1,12 @@ -DROP TABLE m_acc_cert_definition; -DROP TABLE m_acc_cert_wi_reference; -DROP TABLE m_acc_cert_wi; -DROP TABLE m_acc_cert_case; -DROP TABLE m_acc_cert_campaign; -DROP TABLE m_assignment_ext_boolean; -DROP TABLE m_assignment_ext_date; -DROP TABLE m_assignment_ext_long; -DROP TABLE m_assignment_ext_poly; -DROP TABLE m_assignment_ext_reference; -DROP TABLE m_assignment_ext_string; -DROP TABLE m_assignment_extension; -DROP TABLE m_assignment_policy_situation; -DROP TABLE m_assignment_reference; -DROP TABLE m_assignment; --- Don't touch audit tables --- DROP TABLE m_audit_delta; --- DROP TABLE m_audit_item; --- DROP TABLE m_audit_prop_value; --- DROP TABLE m_audit_ref_value; --- DROP TABLE m_audit_event; -DROP TABLE m_case; -DROP TABLE m_connector_host; -DROP TABLE m_connector_target_system; -DROP TABLE m_connector; -DROP TABLE m_exclusion; -DROP TABLE m_focus_photo; -DROP TABLE m_focus_policy_situation; -DROP TABLE m_form; -DROP TABLE m_function_library; -DROP TABLE m_generic_object; -DROP TABLE m_lookup_table_row; -DROP TABLE m_lookup_table; -DROP TABLE m_node; -DROP TABLE m_object_ext_boolean; -DROP TABLE m_object_ext_date; -DROP TABLE m_object_ext_long; -DROP TABLE m_object_ext_poly; -DROP TABLE m_object_ext_reference; -DROP TABLE m_object_ext_string; -DROP TABLE m_object_template; -DROP TABLE m_object_text_info; -DROP TABLE m_operation_execution; -DROP TABLE m_org_closure; -DROP TABLE m_org_org_type; -DROP TABLE m_org; -DROP TABLE m_reference; -DROP TABLE m_report; -DROP TABLE m_report_output; -DROP TABLE m_resource; -DROP TABLE m_role; -DROP TABLE m_security_policy; -DROP TABLE m_sequence; -DROP TABLE m_service_type; -DROP TABLE m_service; -DROP TABLE m_abstract_role; -DROP TABLE m_shadow; -DROP TABLE m_system_configuration; -DROP TABLE m_task_dependent; -DROP TABLE m_task; -DROP TABLE m_trigger; -DROP TABLE m_user_employee_type; -DROP TABLE m_user_organization; -DROP TABLE m_user_organizational_unit; -DROP TABLE m_value_policy; -DROP TABLE m_user; -DROP TABLE m_focus; -DROP TABLE m_object; - -SET FOREIGN_KEY_CHECKS = 0; - -ALTER TABLE m_audit_event - MODIFY COLUMN id BIGINT NOT NULL AUTO_INCREMENT; -ALTER TABLE m_audit_prop_value - MODIFY COLUMN id BIGINT NOT NULL AUTO_INCREMENT; -ALTER TABLE m_audit_ref_value - MODIFY COLUMN id BIGINT NOT NULL AUTO_INCREMENT; - -SET FOREIGN_KEY_CHECKS = 1; - -ALTER TABLE m_audit_delta - MODIFY COLUMN delta LONGBLOB, - MODIFY COLUMN fullResult LONGBLOB; - -ALTER TABLE m_audit_event - ADD COLUMN targetOwnerType INTEGER; +-- It's no use putting Quartz and Activiti in the same DB as midPoint data. (They need different modes of db opening.) +-- So, contrary to all the other databases, this file contains only midPoint-related scripts. +-- If you want to add Quartz and Activiti-related tables, please use files from quartz and activiti directories, respectively. CREATE TABLE m_acc_cert_campaign ( definitionRef_relation VARCHAR(157), definitionRef_targetOid VARCHAR(36), definitionRef_type INTEGER, - endTimestamp DATETIME(6), + endTimestamp TIMESTAMP, handlerUri VARCHAR(255), name_norm VARCHAR(255), name_orig VARCHAR(255), @@ -97,29 +14,26 @@ CREATE TABLE m_acc_cert_campaign ( ownerRef_targetOid VARCHAR(36), ownerRef_type INTEGER, stageNumber INTEGER, - startTimestamp DATETIME(6), + startTimestamp TIMESTAMP, state INTEGER, oid VARCHAR(36) NOT NULL, PRIMARY KEY (oid) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_acc_cert_case ( id INTEGER NOT NULL, owner_oid VARCHAR(36) NOT NULL, administrativeStatus INTEGER, - archiveTimestamp DATETIME(6), + archiveTimestamp TIMESTAMP, disableReason VARCHAR(255), - disableTimestamp DATETIME(6), + disableTimestamp TIMESTAMP, effectiveStatus INTEGER, - enableTimestamp DATETIME(6), - validFrom DATETIME(6), - validTo DATETIME(6), - validityChangeTimestamp DATETIME(6), + enableTimestamp TIMESTAMP, + validFrom TIMESTAMP, + validTo TIMESTAMP, + validityChangeTimestamp TIMESTAMP, validityStatus INTEGER, currentStageOutcome VARCHAR(255), - fullObject LONGBLOB, + fullObject BLOB, objectRef_relation VARCHAR(157), objectRef_targetOid VARCHAR(36), objectRef_type INTEGER, @@ -127,9 +41,9 @@ CREATE TABLE m_acc_cert_case ( orgRef_targetOid VARCHAR(36), orgRef_type INTEGER, outcome VARCHAR(255), - remediedTimestamp DATETIME(6), - reviewDeadline DATETIME(6), - reviewRequestedTimestamp DATETIME(6), + remediedTimestamp TIMESTAMP, + reviewDeadline TIMESTAMP, + reviewRequestedTimestamp TIMESTAMP, stageNumber INTEGER, targetRef_relation VARCHAR(157), targetRef_targetOid VARCHAR(36), @@ -138,14 +52,11 @@ CREATE TABLE m_acc_cert_case ( tenantRef_targetOid VARCHAR(36), tenantRef_type INTEGER, PRIMARY KEY (owner_oid, id) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_acc_cert_definition ( handlerUri VARCHAR(255), - lastCampaignClosedTimestamp DATETIME(6), - lastCampaignStartedTimestamp DATETIME(6), + lastCampaignClosedTimestamp TIMESTAMP, + lastCampaignStartedTimestamp TIMESTAMP, name_norm VARCHAR(255), name_orig VARCHAR(255), ownerRef_relation VARCHAR(157), @@ -153,26 +64,20 @@ CREATE TABLE m_acc_cert_definition ( ownerRef_type INTEGER, oid VARCHAR(36) NOT NULL, PRIMARY KEY (oid) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_acc_cert_wi ( id INTEGER NOT NULL, owner_id INTEGER NOT NULL, owner_owner_oid VARCHAR(36) NOT NULL, - closeTimestamp DATETIME(6), + closeTimestamp TIMESTAMP, outcome VARCHAR(255), - outputChangeTimestamp DATETIME(6), + outputChangeTimestamp TIMESTAMP, performerRef_relation VARCHAR(157), performerRef_targetOid VARCHAR(36), performerRef_type INTEGER, stageNumber INTEGER, PRIMARY KEY (owner_owner_oid, owner_id, id) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_acc_cert_wi_reference ( owner_id INTEGER NOT NULL, owner_owner_id INTEGER NOT NULL, @@ -181,26 +86,23 @@ CREATE TABLE m_acc_cert_wi_reference ( targetOid VARCHAR(36) NOT NULL, targetType INTEGER, PRIMARY KEY (owner_owner_owner_oid, owner_owner_id, owner_id, relation, targetOid) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_assignment ( id INTEGER NOT NULL, owner_oid VARCHAR(36) NOT NULL, administrativeStatus INTEGER, - archiveTimestamp DATETIME(6), + archiveTimestamp TIMESTAMP, disableReason VARCHAR(255), - disableTimestamp DATETIME(6), + disableTimestamp TIMESTAMP, effectiveStatus INTEGER, - enableTimestamp DATETIME(6), - validFrom DATETIME(6), - validTo DATETIME(6), - validityChangeTimestamp DATETIME(6), + enableTimestamp TIMESTAMP, + validFrom TIMESTAMP, + validTo TIMESTAMP, + validityChangeTimestamp TIMESTAMP, validityStatus INTEGER, assignmentOwner INTEGER, createChannel VARCHAR(255), - createTimestamp DATETIME(6), + createTimestamp TIMESTAMP, creatorRef_relation VARCHAR(157), creatorRef_targetOid VARCHAR(36), creatorRef_type INTEGER, @@ -209,7 +111,7 @@ CREATE TABLE m_assignment ( modifierRef_targetOid VARCHAR(36), modifierRef_type INTEGER, modifyChannel VARCHAR(255), - modifyTimestamp DATETIME(6), + modifyTimestamp TIMESTAMP, orderValue INTEGER, orgRef_relation VARCHAR(157), orgRef_targetOid VARCHAR(36), @@ -226,40 +128,28 @@ CREATE TABLE m_assignment ( extId INTEGER, extOid VARCHAR(36), PRIMARY KEY (owner_oid, id) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_assignment_ext_boolean ( item_id INTEGER NOT NULL, anyContainer_owner_id INTEGER NOT NULL, anyContainer_owner_owner_oid VARCHAR(36) NOT NULL, - booleanValue BIT NOT NULL, + booleanValue BOOLEAN NOT NULL, PRIMARY KEY (anyContainer_owner_owner_oid, anyContainer_owner_id, item_id, booleanValue) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_assignment_ext_date ( item_id INTEGER NOT NULL, anyContainer_owner_id INTEGER NOT NULL, anyContainer_owner_owner_oid VARCHAR(36) NOT NULL, - dateValue DATETIME(6) NOT NULL, + dateValue TIMESTAMP NOT NULL, PRIMARY KEY (anyContainer_owner_owner_oid, anyContainer_owner_id, item_id, dateValue) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_assignment_ext_long ( item_id INTEGER NOT NULL, anyContainer_owner_id INTEGER NOT NULL, anyContainer_owner_owner_oid VARCHAR(36) NOT NULL, longValue BIGINT NOT NULL, PRIMARY KEY (anyContainer_owner_owner_oid, anyContainer_owner_id, item_id, longValue) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_assignment_ext_poly ( item_id INTEGER NOT NULL, anyContainer_owner_id INTEGER NOT NULL, @@ -267,10 +157,7 @@ CREATE TABLE m_assignment_ext_poly ( orig VARCHAR(255) NOT NULL, norm VARCHAR(255), PRIMARY KEY (anyContainer_owner_owner_oid, anyContainer_owner_id, item_id, orig) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_assignment_ext_reference ( item_id INTEGER NOT NULL, anyContainer_owner_id INTEGER NOT NULL, @@ -279,20 +166,14 @@ CREATE TABLE m_assignment_ext_reference ( relation VARCHAR(157), targetType INTEGER, PRIMARY KEY (anyContainer_owner_owner_oid, anyContainer_owner_id, item_id, targetoid) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_assignment_ext_string ( item_id INTEGER NOT NULL, anyContainer_owner_id INTEGER NOT NULL, anyContainer_owner_owner_oid VARCHAR(36) NOT NULL, stringValue VARCHAR(255) NOT NULL, PRIMARY KEY (anyContainer_owner_owner_oid, anyContainer_owner_id, item_id, stringValue) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_assignment_extension ( owner_id INTEGER NOT NULL, owner_owner_oid VARCHAR(36) NOT NULL, @@ -303,18 +184,12 @@ CREATE TABLE m_assignment_extension ( referencesCount SMALLINT, stringsCount SMALLINT, PRIMARY KEY (owner_owner_oid, owner_id) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_assignment_policy_situation ( assignment_id INTEGER NOT NULL, assignment_oid VARCHAR(36) NOT NULL, policySituation VARCHAR(255) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_assignment_reference ( owner_id INTEGER NOT NULL, owner_owner_oid VARCHAR(36) NOT NULL, @@ -323,15 +198,79 @@ CREATE TABLE m_assignment_reference ( targetOid VARCHAR(36) NOT NULL, targetType INTEGER, PRIMARY KEY (owner_owner_oid, owner_id, reference_type, relation, targetOid) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); +CREATE TABLE m_audit_delta ( + checksum VARCHAR(32) NOT NULL, + record_id BIGINT NOT NULL, + delta BLOB, + deltaOid VARCHAR(36), + deltaType INTEGER, + fullResult BLOB, + objectName_norm VARCHAR(255), + objectName_orig VARCHAR(255), + resourceName_norm VARCHAR(255), + resourceName_orig VARCHAR(255), + resourceOid VARCHAR(36), + status INTEGER, + PRIMARY KEY (record_id, checksum) +); +CREATE TABLE m_audit_event ( + id BIGINT GENERATED BY DEFAULT AS IDENTITY, + attorneyName VARCHAR(255), + attorneyOid VARCHAR(36), + channel VARCHAR(255), + eventIdentifier VARCHAR(255), + eventStage INTEGER, + eventType INTEGER, + hostIdentifier VARCHAR(255), + initiatorName VARCHAR(255), + initiatorOid VARCHAR(36), + initiatorType INTEGER, + message VARCHAR(1024), + nodeIdentifier VARCHAR(255), + outcome INTEGER, + parameter VARCHAR(255), + remoteHostAddress VARCHAR(255), + result VARCHAR(255), + sessionIdentifier VARCHAR(255), + targetName VARCHAR(255), + targetOid VARCHAR(36), + targetOwnerName VARCHAR(255), + targetOwnerOid VARCHAR(36), + targetOwnerType INTEGER, + targetType INTEGER, + taskIdentifier VARCHAR(255), + taskOID VARCHAR(255), + timestampValue TIMESTAMP, + PRIMARY KEY (id) +); +CREATE TABLE m_audit_item ( + changedItemPath VARCHAR(255) NOT NULL, + record_id BIGINT NOT NULL, + PRIMARY KEY (record_id, changedItemPath) +); +CREATE TABLE m_audit_prop_value ( + id BIGINT GENERATED BY DEFAULT AS IDENTITY, + name VARCHAR(255), + record_id BIGINT, + value VARCHAR(1024), + PRIMARY KEY (id) +); +CREATE TABLE m_audit_ref_value ( + id BIGINT GENERATED BY DEFAULT AS IDENTITY, + name VARCHAR(255), + oid VARCHAR(36), + record_id BIGINT, + targetName_norm VARCHAR(255), + targetName_orig VARCHAR(255), + type VARCHAR(255), + PRIMARY KEY (id) +); CREATE TABLE m_case_wi ( id INTEGER NOT NULL, owner_oid VARCHAR(36) NOT NULL, - closeTimestamp DATETIME(6), - deadline DATETIME(6), + closeTimestamp TIMESTAMP, + deadline TIMESTAMP, originalAssigneeRef_relation VARCHAR(157), originalAssigneeRef_targetOid VARCHAR(36), originalAssigneeRef_type INTEGER, @@ -341,10 +280,7 @@ CREATE TABLE m_case_wi ( performerRef_type INTEGER, stageNumber INTEGER, PRIMARY KEY (owner_oid, id) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_case_wi_reference ( owner_id INTEGER NOT NULL, owner_owner_oid VARCHAR(36) NOT NULL, @@ -352,59 +288,44 @@ CREATE TABLE m_case_wi_reference ( targetOid VARCHAR(36) NOT NULL, targetType INTEGER, PRIMARY KEY (owner_owner_oid, owner_id, targetOid, relation) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_connector_target_system ( connector_oid VARCHAR(36) NOT NULL, targetSystemType VARCHAR(255) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_ext_item ( - id INTEGER NOT NULL AUTO_INCREMENT, + id INTEGER GENERATED BY DEFAULT AS IDENTITY, kind INTEGER, itemName VARCHAR(157), itemType VARCHAR(157), PRIMARY KEY (id) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_focus_photo ( owner_oid VARCHAR(36) NOT NULL, - photo LONGBLOB, + photo BLOB, PRIMARY KEY (owner_oid) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_focus_policy_situation ( focus_oid VARCHAR(36) NOT NULL, policySituation VARCHAR(255) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_object ( oid VARCHAR(36) NOT NULL, booleansCount SMALLINT, createChannel VARCHAR(255), - createTimestamp DATETIME(6), + createTimestamp TIMESTAMP, creatorRef_relation VARCHAR(157), creatorRef_targetOid VARCHAR(36), creatorRef_type INTEGER, datesCount SMALLINT, - fullObject LONGBLOB, + fullObject BLOB, lifecycleState VARCHAR(255), longsCount SMALLINT, modifierRef_relation VARCHAR(157), modifierRef_targetOid VARCHAR(36), modifierRef_type INTEGER, modifyChannel VARCHAR(255), - modifyTimestamp DATETIME(6), + modifyTimestamp TIMESTAMP, name_norm VARCHAR(255), name_orig VARCHAR(255), objectTypeClass INTEGER, @@ -416,40 +337,28 @@ CREATE TABLE m_object ( tenantRef_type INTEGER, version INTEGER NOT NULL, PRIMARY KEY (oid) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_object_ext_boolean ( item_id INTEGER NOT NULL, owner_oid VARCHAR(36) NOT NULL, ownerType INTEGER NOT NULL, - booleanValue BIT NOT NULL, + booleanValue BOOLEAN NOT NULL, PRIMARY KEY (owner_oid, ownerType, item_id, booleanValue) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_object_ext_date ( item_id INTEGER NOT NULL, owner_oid VARCHAR(36) NOT NULL, ownerType INTEGER NOT NULL, - dateValue DATETIME(6) NOT NULL, + dateValue TIMESTAMP NOT NULL, PRIMARY KEY (owner_oid, ownerType, item_id, dateValue) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_object_ext_long ( item_id INTEGER NOT NULL, owner_oid VARCHAR(36) NOT NULL, ownerType INTEGER NOT NULL, longValue BIGINT NOT NULL, PRIMARY KEY (owner_oid, ownerType, item_id, longValue) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_object_ext_poly ( item_id INTEGER NOT NULL, owner_oid VARCHAR(36) NOT NULL, @@ -457,10 +366,7 @@ CREATE TABLE m_object_ext_poly ( orig VARCHAR(255) NOT NULL, norm VARCHAR(255), PRIMARY KEY (owner_oid, ownerType, item_id, orig) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_object_ext_reference ( item_id INTEGER NOT NULL, owner_oid VARCHAR(36) NOT NULL, @@ -469,35 +375,23 @@ CREATE TABLE m_object_ext_reference ( relation VARCHAR(157), targetType INTEGER, PRIMARY KEY (owner_oid, ownerType, item_id, targetoid) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_object_ext_string ( item_id INTEGER NOT NULL, owner_oid VARCHAR(36) NOT NULL, ownerType INTEGER NOT NULL, stringValue VARCHAR(255) NOT NULL, PRIMARY KEY (owner_oid, ownerType, item_id, stringValue) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_object_subtype ( object_oid VARCHAR(36) NOT NULL, subtype VARCHAR(255) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_object_text_info ( owner_oid VARCHAR(36) NOT NULL, text VARCHAR(255) NOT NULL, PRIMARY KEY (owner_oid, text) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_operation_execution ( id INTEGER NOT NULL, owner_oid VARCHAR(36) NOT NULL, @@ -508,28 +402,19 @@ CREATE TABLE m_operation_execution ( taskRef_relation VARCHAR(157), taskRef_targetOid VARCHAR(36), taskRef_type INTEGER, - timestampValue DATETIME(6), + timestampValue TIMESTAMP, PRIMARY KEY (owner_oid, id) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_org_closure ( ancestor_oid VARCHAR(36) NOT NULL, descendant_oid VARCHAR(36) NOT NULL, val INTEGER, PRIMARY KEY (ancestor_oid, descendant_oid) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_org_org_type ( org_oid VARCHAR(36) NOT NULL, orgType VARCHAR(255) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_reference ( owner_oid VARCHAR(36) NOT NULL, reference_type INTEGER NOT NULL, @@ -537,23 +422,17 @@ CREATE TABLE m_reference ( targetOid VARCHAR(36) NOT NULL, targetType INTEGER, PRIMARY KEY (owner_oid, reference_type, relation, targetOid) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_service_type ( service_oid VARCHAR(36) NOT NULL, serviceType VARCHAR(255) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_shadow ( attemptNumber INTEGER, - dead BIT, - exist BIT, + dead BOOLEAN, + exist BOOLEAN, failedOperationType INTEGER, - fullSynchronizationTimestamp DATETIME(6), + fullSynchronizationTimestamp TIMESTAMP, intent VARCHAR(255), kind INTEGER, name_norm VARCHAR(255), @@ -565,23 +444,20 @@ CREATE TABLE m_shadow ( resourceRef_type INTEGER, status INTEGER, synchronizationSituation INTEGER, - synchronizationTimestamp DATETIME(6), + synchronizationTimestamp TIMESTAMP, oid VARCHAR(36) NOT NULL, PRIMARY KEY (oid) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_task ( binding INTEGER, canRunOnNode VARCHAR(255), category VARCHAR(255), - completionTimestamp DATETIME(6), + completionTimestamp TIMESTAMP, executionStatus INTEGER, - fullResult LONGBLOB, + fullResult BLOB, handlerUri VARCHAR(255), - lastRunFinishTimestamp DATETIME(6), - lastRunStartTimestamp DATETIME(6), + lastRunFinishTimestamp TIMESTAMP, + lastRunStartTimestamp TIMESTAMP, name_norm VARCHAR(255), name_orig VARCHAR(255), node VARCHAR(255), @@ -597,7 +473,7 @@ CREATE TABLE m_task ( taskIdentifier VARCHAR(255), threadStopAction INTEGER, waitingReason INTEGER, - wfEndTimestamp DATETIME(6), + wfEndTimestamp TIMESTAMP, wfObjectRef_relation VARCHAR(157), wfObjectRef_targetOid VARCHAR(36), wfObjectRef_type INTEGER, @@ -605,63 +481,45 @@ CREATE TABLE m_task ( wfRequesterRef_relation VARCHAR(157), wfRequesterRef_targetOid VARCHAR(36), wfRequesterRef_type INTEGER, - wfStartTimestamp DATETIME(6), + wfStartTimestamp TIMESTAMP, wfTargetRef_relation VARCHAR(157), wfTargetRef_targetOid VARCHAR(36), wfTargetRef_type INTEGER, oid VARCHAR(36) NOT NULL, PRIMARY KEY (oid) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_task_dependent ( task_oid VARCHAR(36) NOT NULL, dependent VARCHAR(255) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_user_employee_type ( user_oid VARCHAR(36) NOT NULL, employeeType VARCHAR(255) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_user_organization ( user_oid VARCHAR(36) NOT NULL, norm VARCHAR(255), orig VARCHAR(255) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_user_organizational_unit ( user_oid VARCHAR(36) NOT NULL, norm VARCHAR(255), orig VARCHAR(255) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_abstract_role ( approvalProcess VARCHAR(255), - autoassign_enabled BIT, + autoassign_enabled BOOLEAN, displayName_norm VARCHAR(255), displayName_orig VARCHAR(255), identifier VARCHAR(255), ownerRef_relation VARCHAR(157), ownerRef_targetOid VARCHAR(36), ownerRef_type INTEGER, - requestable BIT, + requestable BOOLEAN, riskLevel VARCHAR(255), oid VARCHAR(36) NOT NULL, PRIMARY KEY (oid) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_case ( name_norm VARCHAR(255), name_orig VARCHAR(255), @@ -671,10 +529,7 @@ CREATE TABLE m_case ( state VARCHAR(255), oid VARCHAR(36) NOT NULL, PRIMARY KEY (oid) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_connector ( connectorBundle VARCHAR(255), connectorHostRef_relation VARCHAR(157), @@ -687,10 +542,7 @@ CREATE TABLE m_connector ( name_orig VARCHAR(255), oid VARCHAR(36) NOT NULL, PRIMARY KEY (oid) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_connector_host ( hostname VARCHAR(255), name_norm VARCHAR(255), @@ -698,130 +550,103 @@ CREATE TABLE m_connector_host ( port VARCHAR(255), oid VARCHAR(36) NOT NULL, PRIMARY KEY (oid) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_focus ( administrativeStatus INTEGER, - archiveTimestamp DATETIME(6), + archiveTimestamp TIMESTAMP, disableReason VARCHAR(255), - disableTimestamp DATETIME(6), + disableTimestamp TIMESTAMP, effectiveStatus INTEGER, - enableTimestamp DATETIME(6), - validFrom DATETIME(6), - validTo DATETIME(6), - validityChangeTimestamp DATETIME(6), + enableTimestamp TIMESTAMP, + validFrom TIMESTAMP, + validTo TIMESTAMP, + validityChangeTimestamp TIMESTAMP, validityStatus INTEGER, costCenter VARCHAR(255), emailAddress VARCHAR(255), - hasPhoto BIT DEFAULT FALSE NOT NULL, + hasPhoto BOOLEAN DEFAULT FALSE NOT NULL, locale VARCHAR(255), locality_norm VARCHAR(255), locality_orig VARCHAR(255), preferredLanguage VARCHAR(255), telephoneNumber VARCHAR(255), timezone VARCHAR(255), - oid VARCHAR(36) NOT NULL, + oid VARCHAR(36) NOT NULL, PRIMARY KEY (oid) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_form ( name_norm VARCHAR(255), name_orig VARCHAR(255), oid VARCHAR(36) NOT NULL, PRIMARY KEY (oid) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_function_library ( name_norm VARCHAR(255), name_orig VARCHAR(255), oid VARCHAR(36) NOT NULL, PRIMARY KEY (oid) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_generic_object ( name_norm VARCHAR(255), name_orig VARCHAR(255), objectType VARCHAR(255), oid VARCHAR(36) NOT NULL, PRIMARY KEY (oid) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_lookup_table ( name_norm VARCHAR(255), name_orig VARCHAR(255), oid VARCHAR(36) NOT NULL, PRIMARY KEY (oid) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_lookup_table_row ( id INTEGER NOT NULL, owner_oid VARCHAR(36) NOT NULL, row_key VARCHAR(255), label_norm VARCHAR(255), label_orig VARCHAR(255), - lastChangeTimestamp DATETIME(6), + lastChangeTimestamp TIMESTAMP, row_value VARCHAR(255), PRIMARY KEY (owner_oid, id) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_node ( name_norm VARCHAR(255), name_orig VARCHAR(255), nodeIdentifier VARCHAR(255), oid VARCHAR(36) NOT NULL, PRIMARY KEY (oid) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); +CREATE TABLE m_object_collection ( + name_norm VARCHAR(255), + name_orig VARCHAR(255), + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +); CREATE TABLE m_object_template ( name_norm VARCHAR(255), name_orig VARCHAR(255), type INTEGER, oid VARCHAR(36) NOT NULL, PRIMARY KEY (oid) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_org ( displayOrder INTEGER, name_norm VARCHAR(255), name_orig VARCHAR(255), - tenant BIT, + tenant BOOLEAN, oid VARCHAR(36) NOT NULL, PRIMARY KEY (oid) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_report ( export INTEGER, name_norm VARCHAR(255), name_orig VARCHAR(255), orientation INTEGER, - parent BIT, - useHibernateSession BIT, + parent BOOLEAN, + useHibernateSession BOOLEAN, oid VARCHAR(36) NOT NULL, PRIMARY KEY (oid) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_report_output ( name_norm VARCHAR(255), name_orig VARCHAR(255), @@ -830,10 +655,7 @@ CREATE TABLE m_report_output ( reportRef_type INTEGER, oid VARCHAR(36) NOT NULL, PRIMARY KEY (oid) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_resource ( administrativeState INTEGER, connectorRef_relation VARCHAR(157), @@ -844,67 +666,46 @@ CREATE TABLE m_resource ( o16_lastAvailabilityStatus INTEGER, oid VARCHAR(36) NOT NULL, PRIMARY KEY (oid) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_role ( name_norm VARCHAR(255), name_orig VARCHAR(255), roleType VARCHAR(255), oid VARCHAR(36) NOT NULL, PRIMARY KEY (oid) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_security_policy ( name_norm VARCHAR(255), name_orig VARCHAR(255), oid VARCHAR(36) NOT NULL, PRIMARY KEY (oid) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_sequence ( name_norm VARCHAR(255), name_orig VARCHAR(255), oid VARCHAR(36) NOT NULL, PRIMARY KEY (oid) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_service ( displayOrder INTEGER, name_norm VARCHAR(255), name_orig VARCHAR(255), oid VARCHAR(36) NOT NULL, PRIMARY KEY (oid) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_system_configuration ( name_norm VARCHAR(255), name_orig VARCHAR(255), oid VARCHAR(36) NOT NULL, PRIMARY KEY (oid) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_trigger ( id INTEGER NOT NULL, owner_oid VARCHAR(36) NOT NULL, handlerUri VARCHAR(255), - timestampValue DATETIME(6), + timestampValue TIMESTAMP, PRIMARY KEY (owner_oid, id) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_user ( additionalName_norm VARCHAR(255), additionalName_orig VARCHAR(255), @@ -927,19 +728,13 @@ CREATE TABLE m_user ( title_orig VARCHAR(255), oid VARCHAR(36) NOT NULL, PRIMARY KEY (oid) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE TABLE m_value_policy ( name_norm VARCHAR(255), name_orig VARCHAR(255), oid VARCHAR(36) NOT NULL, PRIMARY KEY (oid) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; +); CREATE INDEX iCertCampaignNameOrig ON m_acc_cert_campaign (name_orig); ALTER TABLE m_acc_cert_campaign @@ -990,13 +785,22 @@ CREATE INDEX iAssignmentReferenceTargetOid ON m_assignment_reference (targetOid); CREATE INDEX iAuditDeltaRecordId ON m_audit_delta (record_id); +CREATE INDEX iTimestampValue + ON m_audit_event (timestampValue); +CREATE INDEX iChangedItemPath + ON m_audit_item (changedItemPath); CREATE INDEX iAuditItemRecordId ON m_audit_item (record_id); +CREATE INDEX iAuditPropValRecordId + ON m_audit_prop_value (record_id); +CREATE INDEX iAuditRefValRecordId + ON m_audit_ref_value (record_id); CREATE INDEX iCaseWorkItemRefTargetOid ON m_case_wi_reference (targetOid); ALTER TABLE m_ext_item ADD CONSTRAINT iExtItemDefinition UNIQUE (itemName, itemType, kind); + CREATE INDEX iObjectNameOrig ON m_object (name_orig); CREATE INDEX iObjectNameNorm @@ -1027,8 +831,10 @@ CREATE INDEX iOpExecStatus ON m_operation_execution (status); CREATE INDEX iOpExecOwnerOid ON m_operation_execution (owner_oid); --- create index iAncestor on m_org_closure (ancestor_oid); --- create index iDescendant on m_org_closure (descendant_oid); +CREATE INDEX iAncestor + ON m_org_closure (ancestor_oid); +CREATE INDEX iDescendant + ON m_org_closure (descendant_oid); CREATE INDEX iDescendantAncestor ON m_org_closure (descendant_oid, ancestor_oid); CREATE INDEX iReferenceTargetTypeRelation @@ -1121,6 +927,10 @@ CREATE INDEX iNodeNameOrig ON m_node (name_orig); ALTER TABLE m_node ADD CONSTRAINT uc_node_name UNIQUE (name_norm); +CREATE INDEX iObjectCollectionNameOrig + ON m_object_collection (name_orig); +ALTER TABLE m_object_collection + ADD CONSTRAINT uc_object_collection_name UNIQUE (name_norm); CREATE INDEX iObjectTemplateNameOrig ON m_object_template (name_orig); ALTER TABLE m_object_template @@ -1184,154 +994,164 @@ CREATE INDEX iValuePolicyNameOrig ALTER TABLE m_value_policy ADD CONSTRAINT uc_value_policy_name UNIQUE (name_norm); ALTER TABLE m_acc_cert_campaign - ADD CONSTRAINT fk_acc_cert_campaign FOREIGN KEY (oid) REFERENCES m_object (oid); + ADD CONSTRAINT fk_acc_cert_campaign FOREIGN KEY (oid) REFERENCES m_object; ALTER TABLE m_acc_cert_case - ADD CONSTRAINT fk_acc_cert_case_owner FOREIGN KEY (owner_oid) REFERENCES m_acc_cert_campaign (oid); + ADD CONSTRAINT fk_acc_cert_case_owner FOREIGN KEY (owner_oid) REFERENCES m_acc_cert_campaign; ALTER TABLE m_acc_cert_definition - ADD CONSTRAINT fk_acc_cert_definition FOREIGN KEY (oid) REFERENCES m_object (oid); + ADD CONSTRAINT fk_acc_cert_definition FOREIGN KEY (oid) REFERENCES m_object; ALTER TABLE m_acc_cert_wi - ADD CONSTRAINT fk_acc_cert_wi_owner FOREIGN KEY (owner_owner_oid, owner_id) REFERENCES m_acc_cert_case (owner_oid, id); + ADD CONSTRAINT fk_acc_cert_wi_owner FOREIGN KEY (owner_owner_oid, owner_id) REFERENCES m_acc_cert_case; ALTER TABLE m_acc_cert_wi_reference - ADD CONSTRAINT fk_acc_cert_wi_ref_owner FOREIGN KEY (owner_owner_owner_oid, owner_owner_id, owner_id) REFERENCES m_acc_cert_wi (owner_owner_oid, owner_id, id); + ADD CONSTRAINT fk_acc_cert_wi_ref_owner FOREIGN KEY (owner_owner_owner_oid, owner_owner_id, owner_id) REFERENCES m_acc_cert_wi; ALTER TABLE m_assignment - ADD CONSTRAINT fk_assignment_owner FOREIGN KEY (owner_oid) REFERENCES m_object (oid); + ADD CONSTRAINT fk_assignment_owner FOREIGN KEY (owner_oid) REFERENCES m_object; ALTER TABLE m_assignment_ext_boolean - ADD CONSTRAINT fk_a_ext_boolean_owner FOREIGN KEY (anyContainer_owner_owner_oid, anyContainer_owner_id) REFERENCES m_assignment_extension (owner_owner_oid, owner_id); + ADD CONSTRAINT fk_a_ext_boolean_owner FOREIGN KEY (anyContainer_owner_owner_oid, anyContainer_owner_id) REFERENCES m_assignment_extension; ALTER TABLE m_assignment_ext_boolean - ADD CONSTRAINT fk_a_ext_boolean_item FOREIGN KEY (item_id) REFERENCES m_ext_item (id); + ADD CONSTRAINT fk_a_ext_boolean_item FOREIGN KEY (item_id) REFERENCES m_ext_item; ALTER TABLE m_assignment_ext_date - ADD CONSTRAINT fk_a_ext_date_owner FOREIGN KEY (anyContainer_owner_owner_oid, anyContainer_owner_id) REFERENCES m_assignment_extension (owner_owner_oid, owner_id); + ADD CONSTRAINT fk_a_ext_date_owner FOREIGN KEY (anyContainer_owner_owner_oid, anyContainer_owner_id) REFERENCES m_assignment_extension; ALTER TABLE m_assignment_ext_date - ADD CONSTRAINT fk_a_ext_date_item FOREIGN KEY (item_id) REFERENCES m_ext_item (id); + ADD CONSTRAINT fk_a_ext_date_item FOREIGN KEY (item_id) REFERENCES m_ext_item; ALTER TABLE m_assignment_ext_long - ADD CONSTRAINT fk_a_ext_long_owner FOREIGN KEY (anyContainer_owner_owner_oid, anyContainer_owner_id) REFERENCES m_assignment_extension (owner_owner_oid, owner_id); + ADD CONSTRAINT fk_a_ext_long_owner FOREIGN KEY (anyContainer_owner_owner_oid, anyContainer_owner_id) REFERENCES m_assignment_extension; ALTER TABLE m_assignment_ext_long - ADD CONSTRAINT fk_a_ext_long_item FOREIGN KEY (item_id) REFERENCES m_ext_item (id); + ADD CONSTRAINT fk_a_ext_long_item FOREIGN KEY (item_id) REFERENCES m_ext_item; ALTER TABLE m_assignment_ext_poly - ADD CONSTRAINT fk_a_ext_poly_owner FOREIGN KEY (anyContainer_owner_owner_oid, anyContainer_owner_id) REFERENCES m_assignment_extension (owner_owner_oid, owner_id); + ADD CONSTRAINT fk_a_ext_poly_owner FOREIGN KEY (anyContainer_owner_owner_oid, anyContainer_owner_id) REFERENCES m_assignment_extension; ALTER TABLE m_assignment_ext_poly - ADD CONSTRAINT fk_a_ext_poly_item FOREIGN KEY (item_id) REFERENCES m_ext_item (id); + ADD CONSTRAINT fk_a_ext_poly_item FOREIGN KEY (item_id) REFERENCES m_ext_item; ALTER TABLE m_assignment_ext_reference - ADD CONSTRAINT fk_a_ext_reference_owner FOREIGN KEY (anyContainer_owner_owner_oid, anyContainer_owner_id) REFERENCES m_assignment_extension (owner_owner_oid, owner_id); + ADD CONSTRAINT fk_a_ext_reference_owner FOREIGN KEY (anyContainer_owner_owner_oid, anyContainer_owner_id) REFERENCES m_assignment_extension; ALTER TABLE m_assignment_ext_reference - ADD CONSTRAINT fk_a_ext_boolean_reference FOREIGN KEY (item_id) REFERENCES m_ext_item (id); + ADD CONSTRAINT fk_a_ext_boolean_reference FOREIGN KEY (item_id) REFERENCES m_ext_item; ALTER TABLE m_assignment_ext_string - ADD CONSTRAINT fk_a_ext_string_owner FOREIGN KEY (anyContainer_owner_owner_oid, anyContainer_owner_id) REFERENCES m_assignment_extension (owner_owner_oid, owner_id); + ADD CONSTRAINT fk_a_ext_string_owner FOREIGN KEY (anyContainer_owner_owner_oid, anyContainer_owner_id) REFERENCES m_assignment_extension; ALTER TABLE m_assignment_ext_string - ADD CONSTRAINT fk_a_ext_string_item FOREIGN KEY (item_id) REFERENCES m_ext_item (id); + ADD CONSTRAINT fk_a_ext_string_item FOREIGN KEY (item_id) REFERENCES m_ext_item; ALTER TABLE m_assignment_policy_situation - ADD CONSTRAINT fk_assignment_policy_situation FOREIGN KEY (assignment_oid, assignment_id) REFERENCES m_assignment (owner_oid, id); + ADD CONSTRAINT fk_assignment_policy_situation FOREIGN KEY (assignment_oid, assignment_id) REFERENCES m_assignment; ALTER TABLE m_assignment_reference - ADD CONSTRAINT fk_assignment_reference FOREIGN KEY (owner_owner_oid, owner_id) REFERENCES m_assignment (owner_oid, id); + ADD CONSTRAINT fk_assignment_reference FOREIGN KEY (owner_owner_oid, owner_id) REFERENCES m_assignment; +ALTER TABLE m_audit_delta + ADD CONSTRAINT fk_audit_delta FOREIGN KEY (record_id) REFERENCES m_audit_event; +ALTER TABLE m_audit_item + ADD CONSTRAINT fk_audit_item FOREIGN KEY (record_id) REFERENCES m_audit_event; +ALTER TABLE m_audit_prop_value + ADD CONSTRAINT fk_audit_prop_value FOREIGN KEY (record_id) REFERENCES m_audit_event; +ALTER TABLE m_audit_ref_value + ADD CONSTRAINT fk_audit_ref_value FOREIGN KEY (record_id) REFERENCES m_audit_event; ALTER TABLE m_case_wi - ADD CONSTRAINT fk_case_wi_owner FOREIGN KEY (owner_oid) REFERENCES m_case (oid); + ADD CONSTRAINT fk_case_wi_owner FOREIGN KEY (owner_oid) REFERENCES m_case; ALTER TABLE m_case_wi_reference - ADD CONSTRAINT fk_case_wi_reference_owner FOREIGN KEY (owner_owner_oid, owner_id) REFERENCES m_case_wi (owner_oid, id); + ADD CONSTRAINT fk_case_wi_reference_owner FOREIGN KEY (owner_owner_oid, owner_id) REFERENCES m_case_wi; ALTER TABLE m_connector_target_system - ADD CONSTRAINT fk_connector_target_system FOREIGN KEY (connector_oid) REFERENCES m_connector (oid); + ADD CONSTRAINT fk_connector_target_system FOREIGN KEY (connector_oid) REFERENCES m_connector; ALTER TABLE m_focus_photo - ADD CONSTRAINT fk_focus_photo FOREIGN KEY (owner_oid) REFERENCES m_focus (oid); + ADD CONSTRAINT fk_focus_photo FOREIGN KEY (owner_oid) REFERENCES m_focus; ALTER TABLE m_focus_policy_situation - ADD CONSTRAINT fk_focus_policy_situation FOREIGN KEY (focus_oid) REFERENCES m_focus (oid); + ADD CONSTRAINT fk_focus_policy_situation FOREIGN KEY (focus_oid) REFERENCES m_focus; ALTER TABLE m_object_ext_boolean - ADD CONSTRAINT fk_o_ext_boolean_owner FOREIGN KEY (owner_oid) REFERENCES m_object (oid); + ADD CONSTRAINT fk_o_ext_boolean_owner FOREIGN KEY (owner_oid) REFERENCES m_object; ALTER TABLE m_object_ext_boolean - ADD CONSTRAINT fk_o_ext_boolean_item FOREIGN KEY (item_id) REFERENCES m_ext_item (id); + ADD CONSTRAINT fk_o_ext_boolean_item FOREIGN KEY (item_id) REFERENCES m_ext_item; ALTER TABLE m_object_ext_date - ADD CONSTRAINT fk_o_ext_date_owner FOREIGN KEY (owner_oid) REFERENCES m_object (oid); + ADD CONSTRAINT fk_o_ext_date_owner FOREIGN KEY (owner_oid) REFERENCES m_object; ALTER TABLE m_object_ext_date - ADD CONSTRAINT fk_o_ext_date_item FOREIGN KEY (item_id) REFERENCES m_ext_item (id); + ADD CONSTRAINT fk_o_ext_date_item FOREIGN KEY (item_id) REFERENCES m_ext_item; ALTER TABLE m_object_ext_long - ADD CONSTRAINT fk_object_ext_long FOREIGN KEY (owner_oid) REFERENCES m_object (oid); + ADD CONSTRAINT fk_object_ext_long FOREIGN KEY (owner_oid) REFERENCES m_object; ALTER TABLE m_object_ext_long - ADD CONSTRAINT fk_o_ext_long_item FOREIGN KEY (item_id) REFERENCES m_ext_item (id); + ADD CONSTRAINT fk_o_ext_long_item FOREIGN KEY (item_id) REFERENCES m_ext_item; ALTER TABLE m_object_ext_poly - ADD CONSTRAINT fk_o_ext_poly_owner FOREIGN KEY (owner_oid) REFERENCES m_object (oid); + ADD CONSTRAINT fk_o_ext_poly_owner FOREIGN KEY (owner_oid) REFERENCES m_object; ALTER TABLE m_object_ext_poly - ADD CONSTRAINT fk_o_ext_poly_item FOREIGN KEY (item_id) REFERENCES m_ext_item (id); + ADD CONSTRAINT fk_o_ext_poly_item FOREIGN KEY (item_id) REFERENCES m_ext_item; ALTER TABLE m_object_ext_reference - ADD CONSTRAINT fk_o_ext_reference_owner FOREIGN KEY (owner_oid) REFERENCES m_object (oid); + ADD CONSTRAINT fk_o_ext_reference_owner FOREIGN KEY (owner_oid) REFERENCES m_object; ALTER TABLE m_object_ext_reference - ADD CONSTRAINT fk_o_ext_reference_item FOREIGN KEY (item_id) REFERENCES m_ext_item (id); + ADD CONSTRAINT fk_o_ext_reference_item FOREIGN KEY (item_id) REFERENCES m_ext_item; ALTER TABLE m_object_ext_string - ADD CONSTRAINT fk_object_ext_string FOREIGN KEY (owner_oid) REFERENCES m_object (oid); + ADD CONSTRAINT fk_object_ext_string FOREIGN KEY (owner_oid) REFERENCES m_object; ALTER TABLE m_object_ext_string - ADD CONSTRAINT fk_o_ext_string_item FOREIGN KEY (item_id) REFERENCES m_ext_item (id); + ADD CONSTRAINT fk_o_ext_string_item FOREIGN KEY (item_id) REFERENCES m_ext_item; ALTER TABLE m_object_subtype - ADD CONSTRAINT fk_object_subtype FOREIGN KEY (object_oid) REFERENCES m_object (oid); + ADD CONSTRAINT fk_object_subtype FOREIGN KEY (object_oid) REFERENCES m_object; ALTER TABLE m_object_text_info - ADD CONSTRAINT fk_object_text_info_owner FOREIGN KEY (owner_oid) REFERENCES m_object (oid); + ADD CONSTRAINT fk_object_text_info_owner FOREIGN KEY (owner_oid) REFERENCES m_object; ALTER TABLE m_operation_execution - ADD CONSTRAINT fk_op_exec_owner FOREIGN KEY (owner_oid) REFERENCES m_object (oid); + ADD CONSTRAINT fk_op_exec_owner FOREIGN KEY (owner_oid) REFERENCES m_object; ALTER TABLE m_org_closure - ADD CONSTRAINT fk_ancestor FOREIGN KEY (ancestor_oid) REFERENCES m_object (oid); + ADD CONSTRAINT fk_ancestor FOREIGN KEY (ancestor_oid) REFERENCES m_object; ALTER TABLE m_org_closure - ADD CONSTRAINT fk_descendant FOREIGN KEY (descendant_oid) REFERENCES m_object (oid); + ADD CONSTRAINT fk_descendant FOREIGN KEY (descendant_oid) REFERENCES m_object; ALTER TABLE m_org_org_type - ADD CONSTRAINT fk_org_org_type FOREIGN KEY (org_oid) REFERENCES m_org (oid); + ADD CONSTRAINT fk_org_org_type FOREIGN KEY (org_oid) REFERENCES m_org; ALTER TABLE m_reference - ADD CONSTRAINT fk_reference_owner FOREIGN KEY (owner_oid) REFERENCES m_object (oid); + ADD CONSTRAINT fk_reference_owner FOREIGN KEY (owner_oid) REFERENCES m_object; ALTER TABLE m_service_type - ADD CONSTRAINT fk_service_type FOREIGN KEY (service_oid) REFERENCES m_service (oid); + ADD CONSTRAINT fk_service_type FOREIGN KEY (service_oid) REFERENCES m_service; ALTER TABLE m_shadow - ADD CONSTRAINT fk_shadow FOREIGN KEY (oid) REFERENCES m_object (oid); + ADD CONSTRAINT fk_shadow FOREIGN KEY (oid) REFERENCES m_object; ALTER TABLE m_task - ADD CONSTRAINT fk_task FOREIGN KEY (oid) REFERENCES m_object (oid); + ADD CONSTRAINT fk_task FOREIGN KEY (oid) REFERENCES m_object; ALTER TABLE m_task_dependent - ADD CONSTRAINT fk_task_dependent FOREIGN KEY (task_oid) REFERENCES m_task (oid); + ADD CONSTRAINT fk_task_dependent FOREIGN KEY (task_oid) REFERENCES m_task; ALTER TABLE m_user_employee_type - ADD CONSTRAINT fk_user_employee_type FOREIGN KEY (user_oid) REFERENCES m_user (oid); + ADD CONSTRAINT fk_user_employee_type FOREIGN KEY (user_oid) REFERENCES m_user; ALTER TABLE m_user_organization - ADD CONSTRAINT fk_user_organization FOREIGN KEY (user_oid) REFERENCES m_user (oid); + ADD CONSTRAINT fk_user_organization FOREIGN KEY (user_oid) REFERENCES m_user; ALTER TABLE m_user_organizational_unit - ADD CONSTRAINT fk_user_org_unit FOREIGN KEY (user_oid) REFERENCES m_user (oid); + ADD CONSTRAINT fk_user_org_unit FOREIGN KEY (user_oid) REFERENCES m_user; ALTER TABLE m_abstract_role - ADD CONSTRAINT fk_abstract_role FOREIGN KEY (oid) REFERENCES m_focus (oid); + ADD CONSTRAINT fk_abstract_role FOREIGN KEY (oid) REFERENCES m_focus; ALTER TABLE m_case - ADD CONSTRAINT fk_case FOREIGN KEY (oid) REFERENCES m_object (oid); + ADD CONSTRAINT fk_case FOREIGN KEY (oid) REFERENCES m_object; ALTER TABLE m_connector - ADD CONSTRAINT fk_connector FOREIGN KEY (oid) REFERENCES m_object (oid); + ADD CONSTRAINT fk_connector FOREIGN KEY (oid) REFERENCES m_object; ALTER TABLE m_connector_host - ADD CONSTRAINT fk_connector_host FOREIGN KEY (oid) REFERENCES m_object (oid); + ADD CONSTRAINT fk_connector_host FOREIGN KEY (oid) REFERENCES m_object; ALTER TABLE m_focus - ADD CONSTRAINT fk_focus FOREIGN KEY (oid) REFERENCES m_object (oid); + ADD CONSTRAINT fk_focus FOREIGN KEY (oid) REFERENCES m_object; ALTER TABLE m_form - ADD CONSTRAINT fk_form FOREIGN KEY (oid) REFERENCES m_object (oid); + ADD CONSTRAINT fk_form FOREIGN KEY (oid) REFERENCES m_object; ALTER TABLE m_function_library - ADD CONSTRAINT fk_function_library FOREIGN KEY (oid) REFERENCES m_object (oid); + ADD CONSTRAINT fk_function_library FOREIGN KEY (oid) REFERENCES m_object; ALTER TABLE m_generic_object - ADD CONSTRAINT fk_generic_object FOREIGN KEY (oid) REFERENCES m_object (oid); + ADD CONSTRAINT fk_generic_object FOREIGN KEY (oid) REFERENCES m_object; ALTER TABLE m_lookup_table - ADD CONSTRAINT fk_lookup_table FOREIGN KEY (oid) REFERENCES m_object (oid); + ADD CONSTRAINT fk_lookup_table FOREIGN KEY (oid) REFERENCES m_object; ALTER TABLE m_lookup_table_row - ADD CONSTRAINT fk_lookup_table_owner FOREIGN KEY (owner_oid) REFERENCES m_lookup_table (oid); + ADD CONSTRAINT fk_lookup_table_owner FOREIGN KEY (owner_oid) REFERENCES m_lookup_table; ALTER TABLE m_node - ADD CONSTRAINT fk_node FOREIGN KEY (oid) REFERENCES m_object (oid); + ADD CONSTRAINT fk_node FOREIGN KEY (oid) REFERENCES m_object; +ALTER TABLE m_object_collection + ADD CONSTRAINT fk_object_collection FOREIGN KEY (oid) REFERENCES m_object; ALTER TABLE m_object_template - ADD CONSTRAINT fk_object_template FOREIGN KEY (oid) REFERENCES m_object (oid); + ADD CONSTRAINT fk_object_template FOREIGN KEY (oid) REFERENCES m_object; ALTER TABLE m_org - ADD CONSTRAINT fk_org FOREIGN KEY (oid) REFERENCES m_abstract_role (oid); + ADD CONSTRAINT fk_org FOREIGN KEY (oid) REFERENCES m_abstract_role; ALTER TABLE m_report - ADD CONSTRAINT fk_report FOREIGN KEY (oid) REFERENCES m_object (oid); + ADD CONSTRAINT fk_report FOREIGN KEY (oid) REFERENCES m_object; ALTER TABLE m_report_output - ADD CONSTRAINT fk_report_output FOREIGN KEY (oid) REFERENCES m_object (oid); + ADD CONSTRAINT fk_report_output FOREIGN KEY (oid) REFERENCES m_object; ALTER TABLE m_resource - ADD CONSTRAINT fk_resource FOREIGN KEY (oid) REFERENCES m_object (oid); + ADD CONSTRAINT fk_resource FOREIGN KEY (oid) REFERENCES m_object; ALTER TABLE m_role - ADD CONSTRAINT fk_role FOREIGN KEY (oid) REFERENCES m_abstract_role (oid); + ADD CONSTRAINT fk_role FOREIGN KEY (oid) REFERENCES m_abstract_role; ALTER TABLE m_security_policy - ADD CONSTRAINT fk_security_policy FOREIGN KEY (oid) REFERENCES m_object (oid); + ADD CONSTRAINT fk_security_policy FOREIGN KEY (oid) REFERENCES m_object; ALTER TABLE m_sequence - ADD CONSTRAINT fk_sequence FOREIGN KEY (oid) REFERENCES m_object (oid); + ADD CONSTRAINT fk_sequence FOREIGN KEY (oid) REFERENCES m_object; ALTER TABLE m_service - ADD CONSTRAINT fk_service FOREIGN KEY (oid) REFERENCES m_abstract_role (oid); + ADD CONSTRAINT fk_service FOREIGN KEY (oid) REFERENCES m_abstract_role; ALTER TABLE m_system_configuration - ADD CONSTRAINT fk_system_configuration FOREIGN KEY (oid) REFERENCES m_object (oid); + ADD CONSTRAINT fk_system_configuration FOREIGN KEY (oid) REFERENCES m_object; ALTER TABLE m_trigger - ADD CONSTRAINT fk_trigger_owner FOREIGN KEY (owner_oid) REFERENCES m_object (oid); + ADD CONSTRAINT fk_trigger_owner FOREIGN KEY (owner_oid) REFERENCES m_object; ALTER TABLE m_user - ADD CONSTRAINT fk_user FOREIGN KEY (oid) REFERENCES m_focus (oid); + ADD CONSTRAINT fk_user FOREIGN KEY (oid) REFERENCES m_focus; ALTER TABLE m_value_policy - ADD CONSTRAINT fk_value_policy FOREIGN KEY (oid) REFERENCES m_object (oid); + ADD CONSTRAINT fk_value_policy FOREIGN KEY (oid) REFERENCES m_object; -commit; \ No newline at end of file +COMMIT; diff --git a/config/sql/_all/h2-upgrade-3.7-3.8.sql b/config/sql/_all/h2-upgrade-3.7-3.8.sql deleted file mode 100644 index 1cdde2c3b66..00000000000 --- a/config/sql/_all/h2-upgrade-3.7-3.8.sql +++ /dev/null @@ -1,8 +0,0 @@ -ALTER TABLE m_audit_event - ALTER COLUMN id BIGINT AUTO_INCREMENT; -ALTER TABLE m_audit_prop_value - ALTER COLUMN id BIGINT AUTO_INCREMENT; -ALTER TABLE m_audit_ref_value - ALTER COLUMN id BIGINT AUTO_INCREMENT; - -DROP TABLE m_exclusion; \ No newline at end of file diff --git a/config/sql/_all/h2-upgrade-3.8-3.9.sql b/config/sql/_all/h2-upgrade-3.8-3.9.sql new file mode 100644 index 00000000000..9206a030de1 --- /dev/null +++ b/config/sql/_all/h2-upgrade-3.8-3.9.sql @@ -0,0 +1,14 @@ +CREATE TABLE m_object_collection ( + name_norm VARCHAR(255), + name_orig VARCHAR(255), + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +); + +CREATE INDEX iObjectCollectionNameOrig + ON m_object_collection (name_orig); +ALTER TABLE m_object_collection + ADD CONSTRAINT uc_object_collection_name UNIQUE (name_norm); + +ALTER TABLE m_object_collection + ADD CONSTRAINT fk_object_collection FOREIGN KEY (oid) REFERENCES m_object; diff --git a/config/sql/_all/mysql-upgrade-3.7-3.8-utf8mb4.sql b/config/sql/_all/mysql-3.9-all-utf8mb4.sql similarity index 63% rename from config/sql/_all/mysql-upgrade-3.7-3.8-utf8mb4.sql rename to config/sql/_all/mysql-3.9-all-utf8mb4.sql index 876d35027dd..47043ca019e 100644 --- a/config/sql/_all/mysql-upgrade-3.7-3.8-utf8mb4.sql +++ b/config/sql/_all/mysql-3.9-all-utf8mb4.sql @@ -1,89 +1,4 @@ -DROP TABLE m_acc_cert_definition; -DROP TABLE m_acc_cert_wi_reference; -DROP TABLE m_acc_cert_wi; -DROP TABLE m_acc_cert_case; -DROP TABLE m_acc_cert_campaign; -DROP TABLE m_assignment_ext_boolean; -DROP TABLE m_assignment_ext_date; -DROP TABLE m_assignment_ext_long; -DROP TABLE m_assignment_ext_poly; -DROP TABLE m_assignment_ext_reference; -DROP TABLE m_assignment_ext_string; -DROP TABLE m_assignment_extension; -DROP TABLE m_assignment_policy_situation; -DROP TABLE m_assignment_reference; -DROP TABLE m_assignment; --- Don't touch audit tables --- DROP TABLE m_audit_delta; --- DROP TABLE m_audit_item; --- DROP TABLE m_audit_prop_value; --- DROP TABLE m_audit_ref_value; --- DROP TABLE m_audit_event; -DROP TABLE m_case; -DROP TABLE m_connector_host; -DROP TABLE m_connector_target_system; -DROP TABLE m_connector; -DROP TABLE m_exclusion; -DROP TABLE m_focus_photo; -DROP TABLE m_focus_policy_situation; -DROP TABLE m_form; -DROP TABLE m_function_library; -DROP TABLE m_generic_object; -DROP TABLE m_lookup_table_row; -DROP TABLE m_lookup_table; -DROP TABLE m_node; -DROP TABLE m_object_ext_boolean; -DROP TABLE m_object_ext_date; -DROP TABLE m_object_ext_long; -DROP TABLE m_object_ext_poly; -DROP TABLE m_object_ext_reference; -DROP TABLE m_object_ext_string; -DROP TABLE m_object_template; -DROP TABLE m_object_text_info; -DROP TABLE m_operation_execution; -DROP TABLE m_org_closure; -DROP TABLE m_org_org_type; -DROP TABLE m_org; -DROP TABLE m_reference; -DROP TABLE m_report; -DROP TABLE m_report_output; -DROP TABLE m_resource; -DROP TABLE m_role; -DROP TABLE m_security_policy; -DROP TABLE m_sequence; -DROP TABLE m_service_type; -DROP TABLE m_service; -DROP TABLE m_abstract_role; -DROP TABLE m_shadow; -DROP TABLE m_system_configuration; -DROP TABLE m_task_dependent; -DROP TABLE m_task; -DROP TABLE m_trigger; -DROP TABLE m_user_employee_type; -DROP TABLE m_user_organization; -DROP TABLE m_user_organizational_unit; -DROP TABLE m_value_policy; -DROP TABLE m_user; -DROP TABLE m_focus; -DROP TABLE m_object; - -SET FOREIGN_KEY_CHECKS = 0; - -ALTER TABLE m_audit_event - MODIFY COLUMN id BIGINT NOT NULL AUTO_INCREMENT; -ALTER TABLE m_audit_prop_value - MODIFY COLUMN id BIGINT NOT NULL AUTO_INCREMENT; -ALTER TABLE m_audit_ref_value - MODIFY COLUMN id BIGINT NOT NULL AUTO_INCREMENT; - -SET FOREIGN_KEY_CHECKS = 1; - -ALTER TABLE m_audit_delta - MODIFY COLUMN delta LONGBLOB, - MODIFY COLUMN fullResult LONGBLOB; - -ALTER TABLE m_audit_event - ADD COLUMN targetOwnerType INTEGER; +-- remove iAncestor and iDescendant index, they are the same as FK for that fields CREATE TABLE m_acc_cert_campaign ( definitionRef_relation VARCHAR(157), @@ -327,6 +242,88 @@ CREATE TABLE m_assignment_reference ( DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin ENGINE = InnoDB; +CREATE TABLE m_audit_delta ( + checksum VARCHAR(32) NOT NULL, + record_id BIGINT NOT NULL, + delta LONGBLOB, + deltaOid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin , + deltaType INTEGER, + fullResult LONGBLOB, + objectName_norm VARCHAR(255), + objectName_orig VARCHAR(255), + resourceName_norm VARCHAR(255), + resourceName_orig VARCHAR(255), + resourceOid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin , + status INTEGER, + PRIMARY KEY (record_id, checksum) +) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; +CREATE TABLE m_audit_event ( + id BIGINT NOT NULL AUTO_INCREMENT, + attorneyName VARCHAR(255), + attorneyOid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin , + channel VARCHAR(255), + eventIdentifier VARCHAR(255), + eventStage INTEGER, + eventType INTEGER, + hostIdentifier VARCHAR(255), + initiatorName VARCHAR(255), + initiatorOid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin , + initiatorType INTEGER, + message VARCHAR(1024), + nodeIdentifier VARCHAR(255), + outcome INTEGER, + parameter VARCHAR(255), + remoteHostAddress VARCHAR(255), + result VARCHAR(255), + sessionIdentifier VARCHAR(255), + targetName VARCHAR(255), + targetOid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin , + targetOwnerName VARCHAR(255), + targetOwnerOid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin , + targetOwnerType INTEGER, + targetType INTEGER, + taskIdentifier VARCHAR(255), + taskOID VARCHAR(255) CHARSET utf8 COLLATE utf8_bin , + timestampValue DATETIME(6), + PRIMARY KEY (id) +) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; +CREATE TABLE m_audit_item ( + changedItemPath VARCHAR(255) CHARSET utf8 COLLATE utf8_bin NOT NULL, + record_id BIGINT NOT NULL, + PRIMARY KEY (record_id, changedItemPath) +) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; +CREATE TABLE m_audit_prop_value ( + id BIGINT NOT NULL AUTO_INCREMENT, + name VARCHAR(255), + record_id BIGINT, + value VARCHAR(1024), + PRIMARY KEY (id) +) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; +CREATE TABLE m_audit_ref_value ( + id BIGINT NOT NULL AUTO_INCREMENT, + name VARCHAR(255), + oid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin , + record_id BIGINT, + targetName_norm VARCHAR(255), + targetName_orig VARCHAR(255), + type VARCHAR(255), + PRIMARY KEY (id) +) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; CREATE TABLE m_case_wi ( id INTEGER NOT NULL, owner_oid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin NOT NULL, @@ -788,6 +785,15 @@ CREATE TABLE m_node ( DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin ENGINE = InnoDB; +CREATE TABLE m_object_collection ( + name_norm VARCHAR(191), + name_orig VARCHAR(191), + oid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin NOT NULL, + PRIMARY KEY (oid) +) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; CREATE TABLE m_object_template ( name_norm VARCHAR(191), name_orig VARCHAR(191), @@ -990,8 +996,16 @@ CREATE INDEX iAssignmentReferenceTargetOid ON m_assignment_reference (targetOid); CREATE INDEX iAuditDeltaRecordId ON m_audit_delta (record_id); +CREATE INDEX iTimestampValue + ON m_audit_event (timestampValue); +CREATE INDEX iChangedItemPath + ON m_audit_item (changedItemPath); CREATE INDEX iAuditItemRecordId ON m_audit_item (record_id); +CREATE INDEX iAuditPropValRecordId + ON m_audit_prop_value (record_id); +CREATE INDEX iAuditRefValRecordId + ON m_audit_ref_value (record_id); CREATE INDEX iCaseWorkItemRefTargetOid ON m_case_wi_reference (targetOid); @@ -1121,6 +1135,10 @@ CREATE INDEX iNodeNameOrig ON m_node (name_orig); ALTER TABLE m_node ADD CONSTRAINT uc_node_name UNIQUE (name_norm); +CREATE INDEX iObjectCollectionNameOrig + ON m_object_collection (name_orig); +ALTER TABLE m_object_collection + ADD CONSTRAINT uc_object_collection_name UNIQUE (name_norm); CREATE INDEX iObjectTemplateNameOrig ON m_object_template (name_orig); ALTER TABLE m_object_template @@ -1223,6 +1241,14 @@ ALTER TABLE m_assignment_policy_situation ADD CONSTRAINT fk_assignment_policy_situation FOREIGN KEY (assignment_oid, assignment_id) REFERENCES m_assignment (owner_oid, id); ALTER TABLE m_assignment_reference ADD CONSTRAINT fk_assignment_reference FOREIGN KEY (owner_owner_oid, owner_id) REFERENCES m_assignment (owner_oid, id); +ALTER TABLE m_audit_delta + ADD CONSTRAINT fk_audit_delta FOREIGN KEY (record_id) REFERENCES m_audit_event (id); +ALTER TABLE m_audit_item + ADD CONSTRAINT fk_audit_item FOREIGN KEY (record_id) REFERENCES m_audit_event (id); +ALTER TABLE m_audit_prop_value + ADD CONSTRAINT fk_audit_prop_value FOREIGN KEY (record_id) REFERENCES m_audit_event (id); +ALTER TABLE m_audit_ref_value + ADD CONSTRAINT fk_audit_ref_value FOREIGN KEY (record_id) REFERENCES m_audit_event (id); ALTER TABLE m_case_wi ADD CONSTRAINT fk_case_wi_owner FOREIGN KEY (owner_oid) REFERENCES m_case (oid); ALTER TABLE m_case_wi_reference @@ -1307,6 +1333,8 @@ ALTER TABLE m_lookup_table_row ADD CONSTRAINT fk_lookup_table_owner FOREIGN KEY (owner_oid) REFERENCES m_lookup_table (oid); ALTER TABLE m_node ADD CONSTRAINT fk_node FOREIGN KEY (oid) REFERENCES m_object (oid); +ALTER TABLE m_object_collection + ADD CONSTRAINT fk_object_collection FOREIGN KEY (oid) REFERENCES m_object (oid); ALTER TABLE m_object_template ADD CONSTRAINT fk_object_template FOREIGN KEY (oid) REFERENCES m_object (oid); ALTER TABLE m_org @@ -1334,4 +1362,778 @@ ALTER TABLE m_user ALTER TABLE m_value_policy ADD CONSTRAINT fk_value_policy FOREIGN KEY (oid) REFERENCES m_object (oid); +# By: Ron Cordell - roncordell +# I didn't see this anywhere, so I thought I'd post it here. This is the script from Quartz to create the tables in a MySQL database, modified to use INNODB instead of MYISAM. + +DROP TABLE IF EXISTS QRTZ_FIRED_TRIGGERS; +DROP TABLE IF EXISTS QRTZ_PAUSED_TRIGGER_GRPS; +DROP TABLE IF EXISTS QRTZ_SCHEDULER_STATE; +DROP TABLE IF EXISTS QRTZ_LOCKS; +DROP TABLE IF EXISTS QRTZ_SIMPLE_TRIGGERS; +DROP TABLE IF EXISTS QRTZ_SIMPROP_TRIGGERS; +DROP TABLE IF EXISTS QRTZ_CRON_TRIGGERS; +DROP TABLE IF EXISTS QRTZ_BLOB_TRIGGERS; +DROP TABLE IF EXISTS QRTZ_TRIGGERS; +DROP TABLE IF EXISTS QRTZ_JOB_DETAILS; +DROP TABLE IF EXISTS QRTZ_CALENDARS; + +CREATE TABLE QRTZ_JOB_DETAILS( + SCHED_NAME VARCHAR(120) NOT NULL, + JOB_NAME VARCHAR(191) NOT NULL, + JOB_GROUP VARCHAR(191) NOT NULL, + DESCRIPTION VARCHAR(250) NULL, + JOB_CLASS_NAME VARCHAR(250) NOT NULL, + IS_DURABLE VARCHAR(1) NOT NULL, + IS_NONCONCURRENT VARCHAR(1) NOT NULL, + IS_UPDATE_DATA VARCHAR(1) NOT NULL, + REQUESTS_RECOVERY VARCHAR(1) NOT NULL, + JOB_DATA BLOB NULL, + PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP)) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; + +CREATE TABLE QRTZ_TRIGGERS ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(191) NOT NULL, + TRIGGER_GROUP VARCHAR(191) NOT NULL, + JOB_NAME VARCHAR(191) NOT NULL, + JOB_GROUP VARCHAR(191) NOT NULL, + DESCRIPTION VARCHAR(250) NULL, + NEXT_FIRE_TIME BIGINT(13) NULL, + PREV_FIRE_TIME BIGINT(13) NULL, + PRIORITY INTEGER NULL, + EXECUTION_GROUP VARCHAR(200) NULL, + TRIGGER_STATE VARCHAR(16) NOT NULL, + TRIGGER_TYPE VARCHAR(8) NOT NULL, + START_TIME BIGINT(13) NOT NULL, + END_TIME BIGINT(13) NULL, + CALENDAR_NAME VARCHAR(191) NULL, + MISFIRE_INSTR SMALLINT(2) NULL, + JOB_DATA BLOB NULL, + PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP) + REFERENCES QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP)) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; + +CREATE TABLE QRTZ_SIMPLE_TRIGGERS ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(191) NOT NULL, + TRIGGER_GROUP VARCHAR(191) NOT NULL, + REPEAT_COUNT BIGINT(7) NOT NULL, + REPEAT_INTERVAL BIGINT(12) NOT NULL, + TIMES_TRIGGERED BIGINT(10) NOT NULL, + PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; + +CREATE TABLE QRTZ_CRON_TRIGGERS ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(191) NOT NULL, + TRIGGER_GROUP VARCHAR(191) NOT NULL, + CRON_EXPRESSION VARCHAR(120) NOT NULL, + TIME_ZONE_ID VARCHAR(80), + PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; + +CREATE TABLE QRTZ_SIMPROP_TRIGGERS +( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(191) NOT NULL, + TRIGGER_GROUP VARCHAR(191) NOT NULL, + STR_PROP_1 VARCHAR(512) NULL, + STR_PROP_2 VARCHAR(512) NULL, + STR_PROP_3 VARCHAR(512) NULL, + INT_PROP_1 INT NULL, + INT_PROP_2 INT NULL, + LONG_PROP_1 BIGINT NULL, + LONG_PROP_2 BIGINT NULL, + DEC_PROP_1 NUMERIC(13,4) NULL, + DEC_PROP_2 NUMERIC(13,4) NULL, + BOOL_PROP_1 VARCHAR(1) NULL, + BOOL_PROP_2 VARCHAR(1) NULL, + PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; + +CREATE TABLE QRTZ_BLOB_TRIGGERS ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(191) NOT NULL, + TRIGGER_GROUP VARCHAR(191) NOT NULL, + BLOB_DATA BLOB NULL, + PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + INDEX (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; + +CREATE TABLE QRTZ_CALENDARS ( + SCHED_NAME VARCHAR(120) NOT NULL, + CALENDAR_NAME VARCHAR(191) NOT NULL, + CALENDAR BLOB NOT NULL, + PRIMARY KEY (SCHED_NAME,CALENDAR_NAME)) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; + +CREATE TABLE QRTZ_PAUSED_TRIGGER_GRPS ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_GROUP VARCHAR(191) NOT NULL, + PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP)) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; + +CREATE TABLE QRTZ_FIRED_TRIGGERS ( + SCHED_NAME VARCHAR(120) NOT NULL, + ENTRY_ID VARCHAR(95) NOT NULL, + TRIGGER_NAME VARCHAR(191) NOT NULL, + TRIGGER_GROUP VARCHAR(191) NOT NULL, + INSTANCE_NAME VARCHAR(191) NOT NULL, + FIRED_TIME BIGINT(13) NOT NULL, + SCHED_TIME BIGINT(13) NOT NULL, + PRIORITY INTEGER NOT NULL, + EXECUTION_GROUP VARCHAR(200) NULL, + STATE VARCHAR(16) NOT NULL, + JOB_NAME VARCHAR(191) NULL, + JOB_GROUP VARCHAR(191) NULL, + IS_NONCONCURRENT VARCHAR(1) NULL, + REQUESTS_RECOVERY VARCHAR(1) NULL, + PRIMARY KEY (SCHED_NAME,ENTRY_ID)) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; + +CREATE TABLE QRTZ_SCHEDULER_STATE ( + SCHED_NAME VARCHAR(120) NOT NULL, + INSTANCE_NAME VARCHAR(191) NOT NULL, + LAST_CHECKIN_TIME BIGINT(13) NOT NULL, + CHECKIN_INTERVAL BIGINT(13) NOT NULL, + PRIMARY KEY (SCHED_NAME,INSTANCE_NAME)) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; + +CREATE TABLE QRTZ_LOCKS ( + SCHED_NAME VARCHAR(120) NOT NULL, + LOCK_NAME VARCHAR(40) NOT NULL, + PRIMARY KEY (SCHED_NAME,LOCK_NAME)) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; + +CREATE INDEX IDX_QRTZ_J_REQ_RECOVERY ON QRTZ_JOB_DETAILS(SCHED_NAME,REQUESTS_RECOVERY); +CREATE INDEX IDX_QRTZ_J_GRP ON QRTZ_JOB_DETAILS(SCHED_NAME,JOB_GROUP); + +CREATE INDEX IDX_QRTZ_T_J ON QRTZ_TRIGGERS(SCHED_NAME,JOB_NAME,JOB_GROUP); +CREATE INDEX IDX_QRTZ_T_JG ON QRTZ_TRIGGERS(SCHED_NAME,JOB_GROUP); +CREATE INDEX IDX_QRTZ_T_C ON QRTZ_TRIGGERS(SCHED_NAME,CALENDAR_NAME); +CREATE INDEX IDX_QRTZ_T_G ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_GROUP); +CREATE INDEX IDX_QRTZ_T_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_STATE); +CREATE INDEX IDX_QRTZ_T_N_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP,TRIGGER_STATE); +CREATE INDEX IDX_QRTZ_T_N_G_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_GROUP,TRIGGER_STATE); +CREATE INDEX IDX_QRTZ_T_NEXT_FIRE_TIME ON QRTZ_TRIGGERS(SCHED_NAME,NEXT_FIRE_TIME); +CREATE INDEX IDX_QRTZ_T_NFT_ST ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_STATE,NEXT_FIRE_TIME); +CREATE INDEX IDX_QRTZ_T_NFT_MISFIRE ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME); +CREATE INDEX IDX_QRTZ_T_NFT_ST_MISFIRE ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_STATE); +CREATE INDEX IDX_QRTZ_T_NFT_ST_MISFIRE_GRP ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_GROUP,TRIGGER_STATE); + +CREATE INDEX IDX_QRTZ_FT_TRIG_INST_NAME ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,INSTANCE_NAME); +CREATE INDEX IDX_QRTZ_FT_INST_JOB_REQ_RCVRY ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,INSTANCE_NAME,REQUESTS_RECOVERY); +CREATE INDEX IDX_QRTZ_FT_J_G ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,JOB_NAME,JOB_GROUP); +CREATE INDEX IDX_QRTZ_FT_JG ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,JOB_GROUP); +CREATE INDEX IDX_QRTZ_FT_T_G ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP); +CREATE INDEX IDX_QRTZ_FT_TG ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,TRIGGER_GROUP); + +create table ACT_GE_PROPERTY ( + NAME_ varchar(64), + VALUE_ varchar(300), + REV_ integer, + primary key (NAME_) +) DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; + +insert into ACT_GE_PROPERTY +values ('schema.version', '5.22.0.0', 1); + +insert into ACT_GE_PROPERTY +values ('schema.history', 'create(5.22.0.0)', 1); + +insert into ACT_GE_PROPERTY +values ('next.dbid', '1', 1); + +create table ACT_GE_BYTEARRAY ( + ID_ varchar(64), + REV_ integer, + NAME_ varchar(255), + DEPLOYMENT_ID_ varchar(64), + BYTES_ LONGBLOB, + GENERATED_ TINYINT, + primary key (ID_) +) DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; + +create table ACT_RE_DEPLOYMENT ( + ID_ varchar(64), + NAME_ varchar(255), + CATEGORY_ varchar(255), + TENANT_ID_ varchar(255) default '', + DEPLOY_TIME_ timestamp(3) NULL, + primary key (ID_) +) DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; + +create table ACT_RE_MODEL ( + ID_ varchar(64) not null, + REV_ integer, + NAME_ varchar(255), + KEY_ varchar(255), + CATEGORY_ varchar(255), + CREATE_TIME_ timestamp(3) null, + LAST_UPDATE_TIME_ timestamp(3) null, + VERSION_ integer, + META_INFO_ varchar(4000), + DEPLOYMENT_ID_ varchar(64), + EDITOR_SOURCE_VALUE_ID_ varchar(64), + EDITOR_SOURCE_EXTRA_VALUE_ID_ varchar(64), + TENANT_ID_ varchar(255) default '', + primary key (ID_) +) DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; + +create table ACT_RU_EXECUTION ( + ID_ varchar(64), + REV_ integer, + PROC_INST_ID_ varchar(64), + BUSINESS_KEY_ varchar(191), + PARENT_ID_ varchar(64), + PROC_DEF_ID_ varchar(64), + SUPER_EXEC_ varchar(64), + ACT_ID_ varchar(255), + IS_ACTIVE_ TINYINT, + IS_CONCURRENT_ TINYINT, + IS_SCOPE_ TINYINT, + IS_EVENT_SCOPE_ TINYINT, + SUSPENSION_STATE_ integer, + CACHED_ENT_STATE_ integer, + TENANT_ID_ varchar(255) default '', + NAME_ varchar(255), + LOCK_TIME_ timestamp(3) NULL, + primary key (ID_) +) DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; + +create table ACT_RU_JOB ( + ID_ varchar(64) NOT NULL, + REV_ integer, + TYPE_ varchar(255) NOT NULL, + LOCK_EXP_TIME_ timestamp(3) NULL, + LOCK_OWNER_ varchar(255), + EXCLUSIVE_ boolean, + EXECUTION_ID_ varchar(64), + PROCESS_INSTANCE_ID_ varchar(64), + PROC_DEF_ID_ varchar(64), + RETRIES_ integer, + EXCEPTION_STACK_ID_ varchar(64), + EXCEPTION_MSG_ varchar(4000), + DUEDATE_ timestamp(3) NULL, + REPEAT_ varchar(255), + HANDLER_TYPE_ varchar(255), + HANDLER_CFG_ varchar(4000), + TENANT_ID_ varchar(255) default '', + primary key (ID_) +) DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; + +create table ACT_RE_PROCDEF ( + ID_ varchar(64) not null, + REV_ integer, + CATEGORY_ varchar(255), + NAME_ varchar(255), + KEY_ varchar(191) not null, + VERSION_ integer not null, + DEPLOYMENT_ID_ varchar(64), + RESOURCE_NAME_ varchar(4000), + DGRM_RESOURCE_NAME_ varchar(4000), + DESCRIPTION_ varchar(4000), + HAS_START_FORM_KEY_ TINYINT, + HAS_GRAPHICAL_NOTATION_ TINYINT, + SUSPENSION_STATE_ integer, + TENANT_ID_ varchar(191) default '', + primary key (ID_) +) DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; + +create table ACT_RU_TASK ( + ID_ varchar(64), + REV_ integer, + EXECUTION_ID_ varchar(64), + PROC_INST_ID_ varchar(64), + PROC_DEF_ID_ varchar(64), + NAME_ varchar(255), + PARENT_TASK_ID_ varchar(64), + DESCRIPTION_ varchar(4000), + TASK_DEF_KEY_ varchar(255), + OWNER_ varchar(255), + ASSIGNEE_ varchar(255), + DELEGATION_ varchar(64), + PRIORITY_ integer, + CREATE_TIME_ timestamp(3) NULL, + DUE_DATE_ datetime(3), + CATEGORY_ varchar(255), + SUSPENSION_STATE_ integer, + TENANT_ID_ varchar(255) default '', + FORM_KEY_ varchar(255), + primary key (ID_) +) DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; + +create table ACT_RU_IDENTITYLINK ( + ID_ varchar(64), + REV_ integer, + GROUP_ID_ varchar(191), + TYPE_ varchar(255), + USER_ID_ varchar(191), + TASK_ID_ varchar(64), + PROC_INST_ID_ varchar(64), + PROC_DEF_ID_ varchar(64), + primary key (ID_) +) DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; + +create table ACT_RU_VARIABLE ( + ID_ varchar(64) not null, + REV_ integer, + TYPE_ varchar(255) not null, + NAME_ varchar(255) not null, + EXECUTION_ID_ varchar(64), + PROC_INST_ID_ varchar(64), + TASK_ID_ varchar(64), + BYTEARRAY_ID_ varchar(64), + DOUBLE_ double, + LONG_ bigint, + TEXT_ varchar(4000), + TEXT2_ varchar(4000), + primary key (ID_) +) DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; + +create table ACT_RU_EVENT_SUBSCR ( + ID_ varchar(64) not null, + REV_ integer, + EVENT_TYPE_ varchar(255) not null, + EVENT_NAME_ varchar(255), + EXECUTION_ID_ varchar(64), + PROC_INST_ID_ varchar(64), + ACTIVITY_ID_ varchar(64), + CONFIGURATION_ varchar(191), + CREATED_ timestamp(3) not null DEFAULT CURRENT_TIMESTAMP(3), + PROC_DEF_ID_ varchar(64), + TENANT_ID_ varchar(255) default '', + primary key (ID_) +) DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; + +create table ACT_EVT_LOG ( + LOG_NR_ bigint auto_increment, + TYPE_ varchar(64), + PROC_DEF_ID_ varchar(64), + PROC_INST_ID_ varchar(64), + EXECUTION_ID_ varchar(64), + TASK_ID_ varchar(64), + TIME_STAMP_ timestamp(3) not null, + USER_ID_ varchar(255), + DATA_ LONGBLOB, + LOCK_OWNER_ varchar(255), + LOCK_TIME_ timestamp(3) null, + IS_PROCESSED_ tinyint default 0, + primary key (LOG_NR_) +) DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; + +create table ACT_PROCDEF_INFO ( + ID_ varchar(64) not null, + PROC_DEF_ID_ varchar(64) not null, + REV_ integer, + INFO_JSON_ID_ varchar(64), + primary key (ID_) +) DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; + +create index ACT_IDX_EXEC_BUSKEY on ACT_RU_EXECUTION(BUSINESS_KEY_); +create index ACT_IDX_TASK_CREATE on ACT_RU_TASK(CREATE_TIME_); +create index ACT_IDX_IDENT_LNK_USER on ACT_RU_IDENTITYLINK(USER_ID_); +create index ACT_IDX_IDENT_LNK_GROUP on ACT_RU_IDENTITYLINK(GROUP_ID_); +create index ACT_IDX_EVENT_SUBSCR_CONFIG_ on ACT_RU_EVENT_SUBSCR(CONFIGURATION_); +create index ACT_IDX_VARIABLE_TASK_ID on ACT_RU_VARIABLE(TASK_ID_); +create index ACT_IDX_ATHRZ_PROCEDEF on ACT_RU_IDENTITYLINK(PROC_DEF_ID_); +create index ACT_IDX_INFO_PROCDEF on ACT_PROCDEF_INFO(PROC_DEF_ID_); + +alter table ACT_GE_BYTEARRAY + add constraint ACT_FK_BYTEARR_DEPL +foreign key (DEPLOYMENT_ID_) +references ACT_RE_DEPLOYMENT (ID_); + +alter table ACT_RE_PROCDEF + add constraint ACT_UNIQ_PROCDEF +unique (KEY_,VERSION_, TENANT_ID_); + +alter table ACT_RU_EXECUTION + add constraint ACT_FK_EXE_PROCINST +foreign key (PROC_INST_ID_) +references ACT_RU_EXECUTION (ID_) on delete cascade on update cascade; + +alter table ACT_RU_EXECUTION + add constraint ACT_FK_EXE_PARENT +foreign key (PARENT_ID_) +references ACT_RU_EXECUTION (ID_); + +alter table ACT_RU_EXECUTION + add constraint ACT_FK_EXE_SUPER +foreign key (SUPER_EXEC_) +references ACT_RU_EXECUTION (ID_); + +alter table ACT_RU_EXECUTION + add constraint ACT_FK_EXE_PROCDEF +foreign key (PROC_DEF_ID_) +references ACT_RE_PROCDEF (ID_); + +alter table ACT_RU_IDENTITYLINK + add constraint ACT_FK_TSKASS_TASK +foreign key (TASK_ID_) +references ACT_RU_TASK (ID_); + +alter table ACT_RU_IDENTITYLINK + add constraint ACT_FK_ATHRZ_PROCEDEF +foreign key (PROC_DEF_ID_) +references ACT_RE_PROCDEF(ID_); + +alter table ACT_RU_IDENTITYLINK + add constraint ACT_FK_IDL_PROCINST +foreign key (PROC_INST_ID_) +references ACT_RU_EXECUTION (ID_); + +alter table ACT_RU_TASK + add constraint ACT_FK_TASK_EXE +foreign key (EXECUTION_ID_) +references ACT_RU_EXECUTION (ID_); + +alter table ACT_RU_TASK + add constraint ACT_FK_TASK_PROCINST +foreign key (PROC_INST_ID_) +references ACT_RU_EXECUTION (ID_); + +alter table ACT_RU_TASK + add constraint ACT_FK_TASK_PROCDEF +foreign key (PROC_DEF_ID_) +references ACT_RE_PROCDEF (ID_); + +alter table ACT_RU_VARIABLE + add constraint ACT_FK_VAR_EXE +foreign key (EXECUTION_ID_) +references ACT_RU_EXECUTION (ID_); + +alter table ACT_RU_VARIABLE + add constraint ACT_FK_VAR_PROCINST +foreign key (PROC_INST_ID_) +references ACT_RU_EXECUTION(ID_); + +alter table ACT_RU_VARIABLE + add constraint ACT_FK_VAR_BYTEARRAY +foreign key (BYTEARRAY_ID_) +references ACT_GE_BYTEARRAY (ID_); + +alter table ACT_RU_JOB + add constraint ACT_FK_JOB_EXCEPTION +foreign key (EXCEPTION_STACK_ID_) +references ACT_GE_BYTEARRAY (ID_); + +alter table ACT_RU_EVENT_SUBSCR + add constraint ACT_FK_EVENT_EXEC +foreign key (EXECUTION_ID_) +references ACT_RU_EXECUTION(ID_); + +alter table ACT_RE_MODEL + add constraint ACT_FK_MODEL_SOURCE +foreign key (EDITOR_SOURCE_VALUE_ID_) +references ACT_GE_BYTEARRAY (ID_); + +alter table ACT_RE_MODEL + add constraint ACT_FK_MODEL_SOURCE_EXTRA +foreign key (EDITOR_SOURCE_EXTRA_VALUE_ID_) +references ACT_GE_BYTEARRAY (ID_); + +alter table ACT_RE_MODEL + add constraint ACT_FK_MODEL_DEPLOYMENT +foreign key (DEPLOYMENT_ID_) +references ACT_RE_DEPLOYMENT (ID_); + +alter table ACT_PROCDEF_INFO + add constraint ACT_FK_INFO_JSON_BA +foreign key (INFO_JSON_ID_) +references ACT_GE_BYTEARRAY (ID_); + +alter table ACT_PROCDEF_INFO + add constraint ACT_FK_INFO_PROCDEF +foreign key (PROC_DEF_ID_) +references ACT_RE_PROCDEF (ID_); + +alter table ACT_PROCDEF_INFO + add constraint ACT_UNIQ_INFO_PROCDEF +unique (PROC_DEF_ID_); + +create table ACT_HI_PROCINST ( + ID_ varchar(64) not null, + PROC_INST_ID_ varchar(64) not null, + BUSINESS_KEY_ varchar(191), + PROC_DEF_ID_ varchar(64) not null, + START_TIME_ datetime(3) not null, + END_TIME_ datetime(3), + DURATION_ bigint, + START_USER_ID_ varchar(255), + START_ACT_ID_ varchar(255), + END_ACT_ID_ varchar(255), + SUPER_PROCESS_INSTANCE_ID_ varchar(64), + DELETE_REASON_ varchar(4000), + TENANT_ID_ varchar(255) default '', + NAME_ varchar(255), + primary key (ID_), + unique (PROC_INST_ID_) +) DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; + +create table ACT_HI_ACTINST ( + ID_ varchar(64) not null, + PROC_DEF_ID_ varchar(64) not null, + PROC_INST_ID_ varchar(64) not null, + EXECUTION_ID_ varchar(64) not null, + ACT_ID_ varchar(191) not null, + TASK_ID_ varchar(64), + CALL_PROC_INST_ID_ varchar(64), + ACT_NAME_ varchar(255), + ACT_TYPE_ varchar(255) not null, + ASSIGNEE_ varchar(255), + START_TIME_ datetime(3) not null, + END_TIME_ datetime(3), + DURATION_ bigint, + TENANT_ID_ varchar(255) default '', + primary key (ID_) +) DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; + +create table ACT_HI_TASKINST ( + ID_ varchar(64) not null, + PROC_DEF_ID_ varchar(64), + TASK_DEF_KEY_ varchar(255), + PROC_INST_ID_ varchar(64), + EXECUTION_ID_ varchar(64), + NAME_ varchar(255), + PARENT_TASK_ID_ varchar(64), + DESCRIPTION_ varchar(4000), + OWNER_ varchar(255), + ASSIGNEE_ varchar(255), + START_TIME_ datetime(3) not null, + CLAIM_TIME_ datetime(3), + END_TIME_ datetime(3), + DURATION_ bigint, + DELETE_REASON_ varchar(4000), + PRIORITY_ integer, + DUE_DATE_ datetime(3), + FORM_KEY_ varchar(255), + CATEGORY_ varchar(255), + TENANT_ID_ varchar(255) default '', + primary key (ID_) +) DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; + +create table ACT_HI_VARINST ( + ID_ varchar(64) not null, + PROC_INST_ID_ varchar(64), + EXECUTION_ID_ varchar(64), + TASK_ID_ varchar(64), + NAME_ varchar(191) not null, + VAR_TYPE_ varchar(100), + REV_ integer, + BYTEARRAY_ID_ varchar(64), + DOUBLE_ double, + LONG_ bigint, + TEXT_ varchar(4000), + TEXT2_ varchar(4000), + CREATE_TIME_ datetime(3), + LAST_UPDATED_TIME_ datetime(3), + primary key (ID_) +) DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; + +create table ACT_HI_DETAIL ( + ID_ varchar(64) not null, + TYPE_ varchar(255) not null, + PROC_INST_ID_ varchar(64), + EXECUTION_ID_ varchar(64), + TASK_ID_ varchar(64), + ACT_INST_ID_ varchar(64), + NAME_ varchar(191) not null, + VAR_TYPE_ varchar(255), + REV_ integer, + TIME_ datetime(3) not null, + BYTEARRAY_ID_ varchar(64), + DOUBLE_ double, + LONG_ bigint, + TEXT_ varchar(4000), + TEXT2_ varchar(4000), + primary key (ID_) +) DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; + +create table ACT_HI_COMMENT ( + ID_ varchar(64) not null, + TYPE_ varchar(255), + TIME_ datetime(3) not null, + USER_ID_ varchar(255), + TASK_ID_ varchar(64), + PROC_INST_ID_ varchar(64), + ACTION_ varchar(255), + MESSAGE_ varchar(4000), + FULL_MSG_ LONGBLOB, + primary key (ID_) +) DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; + +create table ACT_HI_ATTACHMENT ( + ID_ varchar(64) not null, + REV_ integer, + USER_ID_ varchar(255), + NAME_ varchar(255), + DESCRIPTION_ varchar(4000), + TYPE_ varchar(255), + TASK_ID_ varchar(64), + PROC_INST_ID_ varchar(64), + URL_ varchar(4000), + CONTENT_ID_ varchar(64), + TIME_ datetime(3), + primary key (ID_) +) DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; + +create table ACT_HI_IDENTITYLINK ( + ID_ varchar(64), + GROUP_ID_ varchar(255), + TYPE_ varchar(255), + USER_ID_ varchar(191), + TASK_ID_ varchar(64), + PROC_INST_ID_ varchar(64), + primary key (ID_) +) DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; + + +create index ACT_IDX_HI_PRO_INST_END on ACT_HI_PROCINST(END_TIME_); +create index ACT_IDX_HI_PRO_I_BUSKEY on ACT_HI_PROCINST(BUSINESS_KEY_); +create index ACT_IDX_HI_ACT_INST_START on ACT_HI_ACTINST(START_TIME_); +create index ACT_IDX_HI_ACT_INST_END on ACT_HI_ACTINST(END_TIME_); +create index ACT_IDX_HI_DETAIL_PROC_INST on ACT_HI_DETAIL(PROC_INST_ID_); +create index ACT_IDX_HI_DETAIL_ACT_INST on ACT_HI_DETAIL(ACT_INST_ID_); +create index ACT_IDX_HI_DETAIL_TIME on ACT_HI_DETAIL(TIME_); +create index ACT_IDX_HI_DETAIL_NAME on ACT_HI_DETAIL(NAME_); +create index ACT_IDX_HI_DETAIL_TASK_ID on ACT_HI_DETAIL(TASK_ID_); +create index ACT_IDX_HI_PROCVAR_PROC_INST on ACT_HI_VARINST(PROC_INST_ID_); +create index ACT_IDX_HI_PROCVAR_NAME_TYPE on ACT_HI_VARINST(NAME_, VAR_TYPE_); +create index ACT_IDX_HI_PROCVAR_TASK_ID on ACT_HI_VARINST(TASK_ID_); +create index ACT_IDX_HI_ACT_INST_PROCINST on ACT_HI_ACTINST(PROC_INST_ID_, ACT_ID_); +create index ACT_IDX_HI_ACT_INST_EXEC on ACT_HI_ACTINST(EXECUTION_ID_, ACT_ID_); +create index ACT_IDX_HI_IDENT_LNK_USER on ACT_HI_IDENTITYLINK(USER_ID_); +create index ACT_IDX_HI_IDENT_LNK_TASK on ACT_HI_IDENTITYLINK(TASK_ID_); +create index ACT_IDX_HI_IDENT_LNK_PROCINST on ACT_HI_IDENTITYLINK(PROC_INST_ID_); +create index ACT_IDX_HI_TASK_INST_PROCINST on ACT_HI_TASKINST(PROC_INST_ID_); + +create table ACT_ID_GROUP ( + ID_ varchar(64), + REV_ integer, + NAME_ varchar(255), + TYPE_ varchar(255), + primary key (ID_) +) DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; + +create table ACT_ID_MEMBERSHIP ( + USER_ID_ varchar(64), + GROUP_ID_ varchar(64), + primary key (USER_ID_, GROUP_ID_) +) DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; + +create table ACT_ID_USER ( + ID_ varchar(64), + REV_ integer, + FIRST_ varchar(255), + LAST_ varchar(255), + EMAIL_ varchar(255), + PWD_ varchar(255), + PICTURE_ID_ varchar(64), + primary key (ID_) +) DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; + +create table ACT_ID_INFO ( + ID_ varchar(64), + REV_ integer, + USER_ID_ varchar(64), + TYPE_ varchar(64), + KEY_ varchar(255), + VALUE_ varchar(255), + PASSWORD_ LONGBLOB, + PARENT_ID_ varchar(255), + primary key (ID_) +) DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; + +alter table ACT_ID_MEMBERSHIP + add constraint ACT_FK_MEMB_GROUP +foreign key (GROUP_ID_) +references ACT_ID_GROUP (ID_); + +alter table ACT_ID_MEMBERSHIP + add constraint ACT_FK_MEMB_USER +foreign key (USER_ID_) +references ACT_ID_USER (ID_); + commit; diff --git a/config/sql/_all/mysql-3.9-all.sql b/config/sql/_all/mysql-3.9-all.sql new file mode 100644 index 00000000000..c1c35d9376d --- /dev/null +++ b/config/sql/_all/mysql-3.9-all.sql @@ -0,0 +1,2067 @@ +-- remove iAncestor and iDescendant index, they are the same as FK for that fields + +CREATE TABLE m_acc_cert_campaign ( + definitionRef_relation VARCHAR(157), + definitionRef_targetOid VARCHAR(36), + definitionRef_type INTEGER, + endTimestamp DATETIME(6), + handlerUri VARCHAR(255), + name_norm VARCHAR(255), + name_orig VARCHAR(255), + ownerRef_relation VARCHAR(157), + ownerRef_targetOid VARCHAR(36), + ownerRef_type INTEGER, + stageNumber INTEGER, + startTimestamp DATETIME(6), + state INTEGER, + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_acc_cert_case ( + id INTEGER NOT NULL, + owner_oid VARCHAR(36) NOT NULL, + administrativeStatus INTEGER, + archiveTimestamp DATETIME(6), + disableReason VARCHAR(255), + disableTimestamp DATETIME(6), + effectiveStatus INTEGER, + enableTimestamp DATETIME(6), + validFrom DATETIME(6), + validTo DATETIME(6), + validityChangeTimestamp DATETIME(6), + validityStatus INTEGER, + currentStageOutcome VARCHAR(255), + fullObject LONGBLOB, + objectRef_relation VARCHAR(157), + objectRef_targetOid VARCHAR(36), + objectRef_type INTEGER, + orgRef_relation VARCHAR(157), + orgRef_targetOid VARCHAR(36), + orgRef_type INTEGER, + outcome VARCHAR(255), + remediedTimestamp DATETIME(6), + reviewDeadline DATETIME(6), + reviewRequestedTimestamp DATETIME(6), + stageNumber INTEGER, + targetRef_relation VARCHAR(157), + targetRef_targetOid VARCHAR(36), + targetRef_type INTEGER, + tenantRef_relation VARCHAR(157), + tenantRef_targetOid VARCHAR(36), + tenantRef_type INTEGER, + PRIMARY KEY (owner_oid, id) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_acc_cert_definition ( + handlerUri VARCHAR(255), + lastCampaignClosedTimestamp DATETIME(6), + lastCampaignStartedTimestamp DATETIME(6), + name_norm VARCHAR(255), + name_orig VARCHAR(255), + ownerRef_relation VARCHAR(157), + ownerRef_targetOid VARCHAR(36), + ownerRef_type INTEGER, + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_acc_cert_wi ( + id INTEGER NOT NULL, + owner_id INTEGER NOT NULL, + owner_owner_oid VARCHAR(36) NOT NULL, + closeTimestamp DATETIME(6), + outcome VARCHAR(255), + outputChangeTimestamp DATETIME(6), + performerRef_relation VARCHAR(157), + performerRef_targetOid VARCHAR(36), + performerRef_type INTEGER, + stageNumber INTEGER, + PRIMARY KEY (owner_owner_oid, owner_id, id) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_acc_cert_wi_reference ( + owner_id INTEGER NOT NULL, + owner_owner_id INTEGER NOT NULL, + owner_owner_owner_oid VARCHAR(36) NOT NULL, + relation VARCHAR(157) NOT NULL, + targetOid VARCHAR(36) NOT NULL, + targetType INTEGER, + PRIMARY KEY (owner_owner_owner_oid, owner_owner_id, owner_id, relation, targetOid) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_assignment ( + id INTEGER NOT NULL, + owner_oid VARCHAR(36) NOT NULL, + administrativeStatus INTEGER, + archiveTimestamp DATETIME(6), + disableReason VARCHAR(255), + disableTimestamp DATETIME(6), + effectiveStatus INTEGER, + enableTimestamp DATETIME(6), + validFrom DATETIME(6), + validTo DATETIME(6), + validityChangeTimestamp DATETIME(6), + validityStatus INTEGER, + assignmentOwner INTEGER, + createChannel VARCHAR(255), + createTimestamp DATETIME(6), + creatorRef_relation VARCHAR(157), + creatorRef_targetOid VARCHAR(36), + creatorRef_type INTEGER, + lifecycleState VARCHAR(255), + modifierRef_relation VARCHAR(157), + modifierRef_targetOid VARCHAR(36), + modifierRef_type INTEGER, + modifyChannel VARCHAR(255), + modifyTimestamp DATETIME(6), + orderValue INTEGER, + orgRef_relation VARCHAR(157), + orgRef_targetOid VARCHAR(36), + orgRef_type INTEGER, + resourceRef_relation VARCHAR(157), + resourceRef_targetOid VARCHAR(36), + resourceRef_type INTEGER, + targetRef_relation VARCHAR(157), + targetRef_targetOid VARCHAR(36), + targetRef_type INTEGER, + tenantRef_relation VARCHAR(157), + tenantRef_targetOid VARCHAR(36), + tenantRef_type INTEGER, + extId INTEGER, + extOid VARCHAR(36), + PRIMARY KEY (owner_oid, id) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_assignment_ext_boolean ( + item_id INTEGER NOT NULL, + anyContainer_owner_id INTEGER NOT NULL, + anyContainer_owner_owner_oid VARCHAR(36) NOT NULL, + booleanValue BIT NOT NULL, + PRIMARY KEY (anyContainer_owner_owner_oid, anyContainer_owner_id, item_id, booleanValue) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_assignment_ext_date ( + item_id INTEGER NOT NULL, + anyContainer_owner_id INTEGER NOT NULL, + anyContainer_owner_owner_oid VARCHAR(36) NOT NULL, + dateValue DATETIME(6) NOT NULL, + PRIMARY KEY (anyContainer_owner_owner_oid, anyContainer_owner_id, item_id, dateValue) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_assignment_ext_long ( + item_id INTEGER NOT NULL, + anyContainer_owner_id INTEGER NOT NULL, + anyContainer_owner_owner_oid VARCHAR(36) NOT NULL, + longValue BIGINT NOT NULL, + PRIMARY KEY (anyContainer_owner_owner_oid, anyContainer_owner_id, item_id, longValue) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_assignment_ext_poly ( + item_id INTEGER NOT NULL, + anyContainer_owner_id INTEGER NOT NULL, + anyContainer_owner_owner_oid VARCHAR(36) NOT NULL, + orig VARCHAR(255) NOT NULL, + norm VARCHAR(255), + PRIMARY KEY (anyContainer_owner_owner_oid, anyContainer_owner_id, item_id, orig) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_assignment_ext_reference ( + item_id INTEGER NOT NULL, + anyContainer_owner_id INTEGER NOT NULL, + anyContainer_owner_owner_oid VARCHAR(36) NOT NULL, + targetoid VARCHAR(36) NOT NULL, + relation VARCHAR(157), + targetType INTEGER, + PRIMARY KEY (anyContainer_owner_owner_oid, anyContainer_owner_id, item_id, targetoid) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_assignment_ext_string ( + item_id INTEGER NOT NULL, + anyContainer_owner_id INTEGER NOT NULL, + anyContainer_owner_owner_oid VARCHAR(36) NOT NULL, + stringValue VARCHAR(255) NOT NULL, + PRIMARY KEY (anyContainer_owner_owner_oid, anyContainer_owner_id, item_id, stringValue) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_assignment_extension ( + owner_id INTEGER NOT NULL, + owner_owner_oid VARCHAR(36) NOT NULL, + booleansCount SMALLINT, + datesCount SMALLINT, + longsCount SMALLINT, + polysCount SMALLINT, + referencesCount SMALLINT, + stringsCount SMALLINT, + PRIMARY KEY (owner_owner_oid, owner_id) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_assignment_policy_situation ( + assignment_id INTEGER NOT NULL, + assignment_oid VARCHAR(36) NOT NULL, + policySituation VARCHAR(255) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_assignment_reference ( + owner_id INTEGER NOT NULL, + owner_owner_oid VARCHAR(36) NOT NULL, + reference_type INTEGER NOT NULL, + relation VARCHAR(157) NOT NULL, + targetOid VARCHAR(36) NOT NULL, + targetType INTEGER, + PRIMARY KEY (owner_owner_oid, owner_id, reference_type, relation, targetOid) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_audit_delta ( + checksum VARCHAR(32) NOT NULL, + record_id BIGINT NOT NULL, + delta LONGBLOB, + deltaOid VARCHAR(36), + deltaType INTEGER, + fullResult LONGBLOB, + objectName_norm VARCHAR(255), + objectName_orig VARCHAR(255), + resourceName_norm VARCHAR(255), + resourceName_orig VARCHAR(255), + resourceOid VARCHAR(36), + status INTEGER, + PRIMARY KEY (record_id, checksum) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_audit_event ( + id BIGINT NOT NULL AUTO_INCREMENT, + attorneyName VARCHAR(255), + attorneyOid VARCHAR(36), + channel VARCHAR(255), + eventIdentifier VARCHAR(255), + eventStage INTEGER, + eventType INTEGER, + hostIdentifier VARCHAR(255), + initiatorName VARCHAR(255), + initiatorOid VARCHAR(36), + initiatorType INTEGER, + message VARCHAR(1024), + nodeIdentifier VARCHAR(255), + outcome INTEGER, + parameter VARCHAR(255), + remoteHostAddress VARCHAR(255), + result VARCHAR(255), + sessionIdentifier VARCHAR(255), + targetName VARCHAR(255), + targetOid VARCHAR(36), + targetOwnerName VARCHAR(255), + targetOwnerOid VARCHAR(36), + targetOwnerType INTEGER, + targetType INTEGER, + taskIdentifier VARCHAR(255), + taskOID VARCHAR(255), + timestampValue DATETIME(6), + PRIMARY KEY (id) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_audit_item ( + changedItemPath VARCHAR(255) NOT NULL, + record_id BIGINT NOT NULL, + PRIMARY KEY (record_id, changedItemPath) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_audit_prop_value ( + id BIGINT NOT NULL AUTO_INCREMENT, + name VARCHAR(255), + record_id BIGINT, + value VARCHAR(1024), + PRIMARY KEY (id) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_audit_ref_value ( + id BIGINT NOT NULL AUTO_INCREMENT, + name VARCHAR(255), + oid VARCHAR(36), + record_id BIGINT, + targetName_norm VARCHAR(255), + targetName_orig VARCHAR(255), + type VARCHAR(255), + PRIMARY KEY (id) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_case_wi ( + id INTEGER NOT NULL, + owner_oid VARCHAR(36) NOT NULL, + closeTimestamp DATETIME(6), + deadline DATETIME(6), + originalAssigneeRef_relation VARCHAR(157), + originalAssigneeRef_targetOid VARCHAR(36), + originalAssigneeRef_type INTEGER, + outcome VARCHAR(255), + performerRef_relation VARCHAR(157), + performerRef_targetOid VARCHAR(36), + performerRef_type INTEGER, + stageNumber INTEGER, + PRIMARY KEY (owner_oid, id) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_case_wi_reference ( + owner_id INTEGER NOT NULL, + owner_owner_oid VARCHAR(36) NOT NULL, + relation VARCHAR(157) NOT NULL, + targetOid VARCHAR(36) NOT NULL, + targetType INTEGER, + PRIMARY KEY (owner_owner_oid, owner_id, targetOid, relation) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_connector_target_system ( + connector_oid VARCHAR(36) NOT NULL, + targetSystemType VARCHAR(255) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_ext_item ( + id INTEGER NOT NULL AUTO_INCREMENT, + kind INTEGER, + itemName VARCHAR(157), + itemType VARCHAR(157), + PRIMARY KEY (id) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_focus_photo ( + owner_oid VARCHAR(36) NOT NULL, + photo LONGBLOB, + PRIMARY KEY (owner_oid) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_focus_policy_situation ( + focus_oid VARCHAR(36) NOT NULL, + policySituation VARCHAR(255) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_object ( + oid VARCHAR(36) NOT NULL, + booleansCount SMALLINT, + createChannel VARCHAR(255), + createTimestamp DATETIME(6), + creatorRef_relation VARCHAR(157), + creatorRef_targetOid VARCHAR(36), + creatorRef_type INTEGER, + datesCount SMALLINT, + fullObject LONGBLOB, + lifecycleState VARCHAR(255), + longsCount SMALLINT, + modifierRef_relation VARCHAR(157), + modifierRef_targetOid VARCHAR(36), + modifierRef_type INTEGER, + modifyChannel VARCHAR(255), + modifyTimestamp DATETIME(6), + name_norm VARCHAR(255), + name_orig VARCHAR(255), + objectTypeClass INTEGER, + polysCount SMALLINT, + referencesCount SMALLINT, + stringsCount SMALLINT, + tenantRef_relation VARCHAR(157), + tenantRef_targetOid VARCHAR(36), + tenantRef_type INTEGER, + version INTEGER NOT NULL, + PRIMARY KEY (oid) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_object_ext_boolean ( + item_id INTEGER NOT NULL, + owner_oid VARCHAR(36) NOT NULL, + ownerType INTEGER NOT NULL, + booleanValue BIT NOT NULL, + PRIMARY KEY (owner_oid, ownerType, item_id, booleanValue) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_object_ext_date ( + item_id INTEGER NOT NULL, + owner_oid VARCHAR(36) NOT NULL, + ownerType INTEGER NOT NULL, + dateValue DATETIME(6) NOT NULL, + PRIMARY KEY (owner_oid, ownerType, item_id, dateValue) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_object_ext_long ( + item_id INTEGER NOT NULL, + owner_oid VARCHAR(36) NOT NULL, + ownerType INTEGER NOT NULL, + longValue BIGINT NOT NULL, + PRIMARY KEY (owner_oid, ownerType, item_id, longValue) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_object_ext_poly ( + item_id INTEGER NOT NULL, + owner_oid VARCHAR(36) NOT NULL, + ownerType INTEGER NOT NULL, + orig VARCHAR(255) NOT NULL, + norm VARCHAR(255), + PRIMARY KEY (owner_oid, ownerType, item_id, orig) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_object_ext_reference ( + item_id INTEGER NOT NULL, + owner_oid VARCHAR(36) NOT NULL, + ownerType INTEGER NOT NULL, + targetoid VARCHAR(36) NOT NULL, + relation VARCHAR(157), + targetType INTEGER, + PRIMARY KEY (owner_oid, ownerType, item_id, targetoid) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_object_ext_string ( + item_id INTEGER NOT NULL, + owner_oid VARCHAR(36) NOT NULL, + ownerType INTEGER NOT NULL, + stringValue VARCHAR(255) NOT NULL, + PRIMARY KEY (owner_oid, ownerType, item_id, stringValue) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_object_subtype ( + object_oid VARCHAR(36) NOT NULL, + subtype VARCHAR(255) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_object_text_info ( + owner_oid VARCHAR(36) NOT NULL, + text VARCHAR(255) NOT NULL, + PRIMARY KEY (owner_oid, text) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_operation_execution ( + id INTEGER NOT NULL, + owner_oid VARCHAR(36) NOT NULL, + initiatorRef_relation VARCHAR(157), + initiatorRef_targetOid VARCHAR(36), + initiatorRef_type INTEGER, + status INTEGER, + taskRef_relation VARCHAR(157), + taskRef_targetOid VARCHAR(36), + taskRef_type INTEGER, + timestampValue DATETIME(6), + PRIMARY KEY (owner_oid, id) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_org_closure ( + ancestor_oid VARCHAR(36) NOT NULL, + descendant_oid VARCHAR(36) NOT NULL, + val INTEGER, + PRIMARY KEY (ancestor_oid, descendant_oid) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_org_org_type ( + org_oid VARCHAR(36) NOT NULL, + orgType VARCHAR(255) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_reference ( + owner_oid VARCHAR(36) NOT NULL, + reference_type INTEGER NOT NULL, + relation VARCHAR(157) NOT NULL, + targetOid VARCHAR(36) NOT NULL, + targetType INTEGER, + PRIMARY KEY (owner_oid, reference_type, relation, targetOid) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_service_type ( + service_oid VARCHAR(36) NOT NULL, + serviceType VARCHAR(255) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_shadow ( + attemptNumber INTEGER, + dead BIT, + exist BIT, + failedOperationType INTEGER, + fullSynchronizationTimestamp DATETIME(6), + intent VARCHAR(255), + kind INTEGER, + name_norm VARCHAR(255), + name_orig VARCHAR(255), + objectClass VARCHAR(157), + pendingOperationCount INTEGER, + resourceRef_relation VARCHAR(157), + resourceRef_targetOid VARCHAR(36), + resourceRef_type INTEGER, + status INTEGER, + synchronizationSituation INTEGER, + synchronizationTimestamp DATETIME(6), + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_task ( + binding INTEGER, + canRunOnNode VARCHAR(255), + category VARCHAR(255), + completionTimestamp DATETIME(6), + executionStatus INTEGER, + fullResult LONGBLOB, + handlerUri VARCHAR(255), + lastRunFinishTimestamp DATETIME(6), + lastRunStartTimestamp DATETIME(6), + name_norm VARCHAR(255), + name_orig VARCHAR(255), + node VARCHAR(255), + objectRef_relation VARCHAR(157), + objectRef_targetOid VARCHAR(36), + objectRef_type INTEGER, + ownerRef_relation VARCHAR(157), + ownerRef_targetOid VARCHAR(36), + ownerRef_type INTEGER, + parent VARCHAR(255), + recurrence INTEGER, + status INTEGER, + taskIdentifier VARCHAR(255), + threadStopAction INTEGER, + waitingReason INTEGER, + wfEndTimestamp DATETIME(6), + wfObjectRef_relation VARCHAR(157), + wfObjectRef_targetOid VARCHAR(36), + wfObjectRef_type INTEGER, + wfProcessInstanceId VARCHAR(255), + wfRequesterRef_relation VARCHAR(157), + wfRequesterRef_targetOid VARCHAR(36), + wfRequesterRef_type INTEGER, + wfStartTimestamp DATETIME(6), + wfTargetRef_relation VARCHAR(157), + wfTargetRef_targetOid VARCHAR(36), + wfTargetRef_type INTEGER, + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_task_dependent ( + task_oid VARCHAR(36) NOT NULL, + dependent VARCHAR(255) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_user_employee_type ( + user_oid VARCHAR(36) NOT NULL, + employeeType VARCHAR(255) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_user_organization ( + user_oid VARCHAR(36) NOT NULL, + norm VARCHAR(255), + orig VARCHAR(255) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_user_organizational_unit ( + user_oid VARCHAR(36) NOT NULL, + norm VARCHAR(255), + orig VARCHAR(255) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_abstract_role ( + approvalProcess VARCHAR(255), + autoassign_enabled BIT, + displayName_norm VARCHAR(255), + displayName_orig VARCHAR(255), + identifier VARCHAR(255), + ownerRef_relation VARCHAR(157), + ownerRef_targetOid VARCHAR(36), + ownerRef_type INTEGER, + requestable BIT, + riskLevel VARCHAR(255), + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_case ( + name_norm VARCHAR(255), + name_orig VARCHAR(255), + objectRef_relation VARCHAR(157), + objectRef_targetOid VARCHAR(36), + objectRef_type INTEGER, + state VARCHAR(255), + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_connector ( + connectorBundle VARCHAR(255), + connectorHostRef_relation VARCHAR(157), + connectorHostRef_targetOid VARCHAR(36), + connectorHostRef_type INTEGER, + connectorType VARCHAR(255), + connectorVersion VARCHAR(255), + framework VARCHAR(255), + name_norm VARCHAR(255), + name_orig VARCHAR(255), + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_connector_host ( + hostname VARCHAR(255), + name_norm VARCHAR(255), + name_orig VARCHAR(255), + port VARCHAR(255), + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_focus ( + administrativeStatus INTEGER, + archiveTimestamp DATETIME(6), + disableReason VARCHAR(255), + disableTimestamp DATETIME(6), + effectiveStatus INTEGER, + enableTimestamp DATETIME(6), + validFrom DATETIME(6), + validTo DATETIME(6), + validityChangeTimestamp DATETIME(6), + validityStatus INTEGER, + costCenter VARCHAR(255), + emailAddress VARCHAR(255), + hasPhoto BIT DEFAULT FALSE NOT NULL, + locale VARCHAR(255), + locality_norm VARCHAR(255), + locality_orig VARCHAR(255), + preferredLanguage VARCHAR(255), + telephoneNumber VARCHAR(255), + timezone VARCHAR(255), + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_form ( + name_norm VARCHAR(255), + name_orig VARCHAR(255), + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_function_library ( + name_norm VARCHAR(255), + name_orig VARCHAR(255), + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_generic_object ( + name_norm VARCHAR(255), + name_orig VARCHAR(255), + objectType VARCHAR(255), + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_lookup_table ( + name_norm VARCHAR(255), + name_orig VARCHAR(255), + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_lookup_table_row ( + id INTEGER NOT NULL, + owner_oid VARCHAR(36) NOT NULL, + row_key VARCHAR(255), + label_norm VARCHAR(255), + label_orig VARCHAR(255), + lastChangeTimestamp DATETIME(6), + row_value VARCHAR(255), + PRIMARY KEY (owner_oid, id) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_node ( + name_norm VARCHAR(255), + name_orig VARCHAR(255), + nodeIdentifier VARCHAR(255), + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_object_collection ( + name_norm VARCHAR(255), + name_orig VARCHAR(255), + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_object_template ( + name_norm VARCHAR(255), + name_orig VARCHAR(255), + type INTEGER, + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_org ( + displayOrder INTEGER, + name_norm VARCHAR(255), + name_orig VARCHAR(255), + tenant BIT, + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_report ( + export INTEGER, + name_norm VARCHAR(255), + name_orig VARCHAR(255), + orientation INTEGER, + parent BIT, + useHibernateSession BIT, + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_report_output ( + name_norm VARCHAR(255), + name_orig VARCHAR(255), + reportRef_relation VARCHAR(157), + reportRef_targetOid VARCHAR(36), + reportRef_type INTEGER, + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_resource ( + administrativeState INTEGER, + connectorRef_relation VARCHAR(157), + connectorRef_targetOid VARCHAR(36), + connectorRef_type INTEGER, + name_norm VARCHAR(255), + name_orig VARCHAR(255), + o16_lastAvailabilityStatus INTEGER, + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_role ( + name_norm VARCHAR(255), + name_orig VARCHAR(255), + roleType VARCHAR(255), + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_security_policy ( + name_norm VARCHAR(255), + name_orig VARCHAR(255), + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_sequence ( + name_norm VARCHAR(255), + name_orig VARCHAR(255), + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_service ( + displayOrder INTEGER, + name_norm VARCHAR(255), + name_orig VARCHAR(255), + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_system_configuration ( + name_norm VARCHAR(255), + name_orig VARCHAR(255), + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_trigger ( + id INTEGER NOT NULL, + owner_oid VARCHAR(36) NOT NULL, + handlerUri VARCHAR(255), + timestampValue DATETIME(6), + PRIMARY KEY (owner_oid, id) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_user ( + additionalName_norm VARCHAR(255), + additionalName_orig VARCHAR(255), + employeeNumber VARCHAR(255), + familyName_norm VARCHAR(255), + familyName_orig VARCHAR(255), + fullName_norm VARCHAR(255), + fullName_orig VARCHAR(255), + givenName_norm VARCHAR(255), + givenName_orig VARCHAR(255), + honorificPrefix_norm VARCHAR(255), + honorificPrefix_orig VARCHAR(255), + honorificSuffix_norm VARCHAR(255), + honorificSuffix_orig VARCHAR(255), + name_norm VARCHAR(255), + name_orig VARCHAR(255), + nickName_norm VARCHAR(255), + nickName_orig VARCHAR(255), + title_norm VARCHAR(255), + title_orig VARCHAR(255), + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE TABLE m_value_policy ( + name_norm VARCHAR(255), + name_orig VARCHAR(255), + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; +CREATE INDEX iCertCampaignNameOrig + ON m_acc_cert_campaign (name_orig); +ALTER TABLE m_acc_cert_campaign + ADD CONSTRAINT uc_acc_cert_campaign_name UNIQUE (name_norm); +CREATE INDEX iCaseObjectRefTargetOid + ON m_acc_cert_case (objectRef_targetOid); +CREATE INDEX iCaseTargetRefTargetOid + ON m_acc_cert_case (targetRef_targetOid); +CREATE INDEX iCaseTenantRefTargetOid + ON m_acc_cert_case (tenantRef_targetOid); +CREATE INDEX iCaseOrgRefTargetOid + ON m_acc_cert_case (orgRef_targetOid); +CREATE INDEX iCertDefinitionNameOrig + ON m_acc_cert_definition (name_orig); +ALTER TABLE m_acc_cert_definition + ADD CONSTRAINT uc_acc_cert_definition_name UNIQUE (name_norm); +CREATE INDEX iCertWorkItemRefTargetOid + ON m_acc_cert_wi_reference (targetOid); +CREATE INDEX iAssignmentAdministrative + ON m_assignment (administrativeStatus); +CREATE INDEX iAssignmentEffective + ON m_assignment (effectiveStatus); +CREATE INDEX iAssignmentValidFrom + ON m_assignment (validFrom); +CREATE INDEX iAssignmentValidTo + ON m_assignment (validTo); +CREATE INDEX iTargetRefTargetOid + ON m_assignment (targetRef_targetOid); +CREATE INDEX iTenantRefTargetOid + ON m_assignment (tenantRef_targetOid); +CREATE INDEX iOrgRefTargetOid + ON m_assignment (orgRef_targetOid); +CREATE INDEX iResourceRefTargetOid + ON m_assignment (resourceRef_targetOid); +CREATE INDEX iAExtensionBoolean + ON m_assignment_ext_boolean (booleanValue); +CREATE INDEX iAExtensionDate + ON m_assignment_ext_date (dateValue); +CREATE INDEX iAExtensionLong + ON m_assignment_ext_long (longValue); +CREATE INDEX iAExtensionPolyString + ON m_assignment_ext_poly (orig); +CREATE INDEX iAExtensionReference + ON m_assignment_ext_reference (targetoid); +CREATE INDEX iAExtensionString + ON m_assignment_ext_string (stringValue); +CREATE INDEX iAssignmentReferenceTargetOid + ON m_assignment_reference (targetOid); +CREATE INDEX iAuditDeltaRecordId + ON m_audit_delta (record_id); +CREATE INDEX iTimestampValue + ON m_audit_event (timestampValue); +CREATE INDEX iChangedItemPath + ON m_audit_item (changedItemPath); +CREATE INDEX iAuditItemRecordId + ON m_audit_item (record_id); +CREATE INDEX iAuditPropValRecordId + ON m_audit_prop_value (record_id); +CREATE INDEX iAuditRefValRecordId + ON m_audit_ref_value (record_id); +CREATE INDEX iCaseWorkItemRefTargetOid + ON m_case_wi_reference (targetOid); + +ALTER TABLE m_ext_item + ADD CONSTRAINT iExtItemDefinition UNIQUE (itemName, itemType, kind); +CREATE INDEX iObjectNameOrig + ON m_object (name_orig); +CREATE INDEX iObjectNameNorm + ON m_object (name_norm); +CREATE INDEX iObjectTypeClass + ON m_object (objectTypeClass); +CREATE INDEX iObjectCreateTimestamp + ON m_object (createTimestamp); +CREATE INDEX iObjectLifecycleState + ON m_object (lifecycleState); +CREATE INDEX iExtensionBoolean + ON m_object_ext_boolean (booleanValue); +CREATE INDEX iExtensionDate + ON m_object_ext_date (dateValue); +CREATE INDEX iExtensionLong + ON m_object_ext_long (longValue); +CREATE INDEX iExtensionPolyString + ON m_object_ext_poly (orig); +CREATE INDEX iExtensionReference + ON m_object_ext_reference (targetoid); +CREATE INDEX iExtensionString + ON m_object_ext_string (stringValue); +CREATE INDEX iOpExecTaskOid + ON m_operation_execution (taskRef_targetOid); +CREATE INDEX iOpExecInitiatorOid + ON m_operation_execution (initiatorRef_targetOid); +CREATE INDEX iOpExecStatus + ON m_operation_execution (status); +CREATE INDEX iOpExecOwnerOid + ON m_operation_execution (owner_oid); +-- create index iAncestor on m_org_closure (ancestor_oid); +-- create index iDescendant on m_org_closure (descendant_oid); +CREATE INDEX iDescendantAncestor + ON m_org_closure (descendant_oid, ancestor_oid); +CREATE INDEX iReferenceTargetTypeRelation + ON m_reference (targetOid, reference_type, relation); +CREATE INDEX iShadowResourceRef + ON m_shadow (resourceRef_targetOid); +CREATE INDEX iShadowDead + ON m_shadow (dead); +CREATE INDEX iShadowKind + ON m_shadow (kind); +CREATE INDEX iShadowIntent + ON m_shadow (intent); +CREATE INDEX iShadowObjectClass + ON m_shadow (objectClass); +CREATE INDEX iShadowFailedOperationType + ON m_shadow (failedOperationType); +CREATE INDEX iShadowSyncSituation + ON m_shadow (synchronizationSituation); +CREATE INDEX iShadowPendingOperationCount + ON m_shadow (pendingOperationCount); +CREATE INDEX iShadowNameOrig + ON m_shadow (name_orig); +CREATE INDEX iShadowNameNorm + ON m_shadow (name_norm); +CREATE INDEX iParent + ON m_task (parent); +CREATE INDEX iTaskWfProcessInstanceId + ON m_task (wfProcessInstanceId); +CREATE INDEX iTaskWfStartTimestamp + ON m_task (wfStartTimestamp); +CREATE INDEX iTaskWfEndTimestamp + ON m_task (wfEndTimestamp); +CREATE INDEX iTaskWfRequesterOid + ON m_task (wfRequesterRef_targetOid); +CREATE INDEX iTaskWfObjectOid + ON m_task (wfObjectRef_targetOid); +CREATE INDEX iTaskWfTargetOid + ON m_task (wfTargetRef_targetOid); +CREATE INDEX iTaskNameOrig + ON m_task (name_orig); +ALTER TABLE m_task + ADD CONSTRAINT uc_task_identifier UNIQUE (taskIdentifier); +CREATE INDEX iAbstractRoleIdentifier + ON m_abstract_role (identifier); +CREATE INDEX iRequestable + ON m_abstract_role (requestable); +CREATE INDEX iAutoassignEnabled + ON m_abstract_role (autoassign_enabled); +CREATE INDEX iCaseNameOrig + ON m_case (name_orig); +ALTER TABLE m_case + ADD CONSTRAINT uc_case_name UNIQUE (name_norm); +CREATE INDEX iConnectorNameOrig + ON m_connector (name_orig); +CREATE INDEX iConnectorNameNorm + ON m_connector (name_norm); +CREATE INDEX iConnectorHostNameOrig + ON m_connector_host (name_orig); +ALTER TABLE m_connector_host + ADD CONSTRAINT uc_connector_host_name UNIQUE (name_norm); +CREATE INDEX iFocusAdministrative + ON m_focus (administrativeStatus); +CREATE INDEX iFocusEffective + ON m_focus (effectiveStatus); +CREATE INDEX iLocality + ON m_focus (locality_orig); +CREATE INDEX iFocusValidFrom + ON m_focus (validFrom); +CREATE INDEX iFocusValidTo + ON m_focus (validTo); +CREATE INDEX iFormNameOrig + ON m_form (name_orig); +ALTER TABLE m_form + ADD CONSTRAINT uc_form_name UNIQUE (name_norm); +CREATE INDEX iFunctionLibraryNameOrig + ON m_function_library (name_orig); +ALTER TABLE m_function_library + ADD CONSTRAINT uc_function_library_name UNIQUE (name_norm); +CREATE INDEX iGenericObjectNameOrig + ON m_generic_object (name_orig); +ALTER TABLE m_generic_object + ADD CONSTRAINT uc_generic_object_name UNIQUE (name_norm); +CREATE INDEX iLookupTableNameOrig + ON m_lookup_table (name_orig); +ALTER TABLE m_lookup_table + ADD CONSTRAINT uc_lookup_name UNIQUE (name_norm); +ALTER TABLE m_lookup_table_row + ADD CONSTRAINT uc_row_key UNIQUE (owner_oid, row_key); +CREATE INDEX iNodeNameOrig + ON m_node (name_orig); +ALTER TABLE m_node + ADD CONSTRAINT uc_node_name UNIQUE (name_norm); +CREATE INDEX iObjectCollectionNameOrig + ON m_object_collection (name_orig); +ALTER TABLE m_object_collection + ADD CONSTRAINT uc_object_collection_name UNIQUE (name_norm); +CREATE INDEX iObjectTemplateNameOrig + ON m_object_template (name_orig); +ALTER TABLE m_object_template + ADD CONSTRAINT uc_object_template_name UNIQUE (name_norm); +CREATE INDEX iDisplayOrder + ON m_org (displayOrder); +CREATE INDEX iOrgNameOrig + ON m_org (name_orig); +ALTER TABLE m_org + ADD CONSTRAINT uc_org_name UNIQUE (name_norm); +CREATE INDEX iReportParent + ON m_report (parent); +CREATE INDEX iReportNameOrig + ON m_report (name_orig); +ALTER TABLE m_report + ADD CONSTRAINT uc_report_name UNIQUE (name_norm); +CREATE INDEX iReportOutputNameOrig + ON m_report_output (name_orig); +CREATE INDEX iReportOutputNameNorm + ON m_report_output (name_norm); +CREATE INDEX iResourceNameOrig + ON m_resource (name_orig); +ALTER TABLE m_resource + ADD CONSTRAINT uc_resource_name UNIQUE (name_norm); +CREATE INDEX iRoleNameOrig + ON m_role (name_orig); +ALTER TABLE m_role + ADD CONSTRAINT uc_role_name UNIQUE (name_norm); +CREATE INDEX iSecurityPolicyNameOrig + ON m_security_policy (name_orig); +ALTER TABLE m_security_policy + ADD CONSTRAINT uc_security_policy_name UNIQUE (name_norm); +CREATE INDEX iSequenceNameOrig + ON m_sequence (name_orig); +ALTER TABLE m_sequence + ADD CONSTRAINT uc_sequence_name UNIQUE (name_norm); +CREATE INDEX iServiceNameOrig + ON m_service (name_orig); +CREATE INDEX iServiceNameNorm + ON m_service (name_norm); +CREATE INDEX iSystemConfigurationNameOrig + ON m_system_configuration (name_orig); +ALTER TABLE m_system_configuration + ADD CONSTRAINT uc_system_configuration_name UNIQUE (name_norm); +CREATE INDEX iTriggerTimestamp + ON m_trigger (timestampValue); +CREATE INDEX iFullName + ON m_user (fullName_orig); +CREATE INDEX iFamilyName + ON m_user (familyName_orig); +CREATE INDEX iGivenName + ON m_user (givenName_orig); +CREATE INDEX iEmployeeNumber + ON m_user (employeeNumber); +CREATE INDEX iUserNameOrig + ON m_user (name_orig); +ALTER TABLE m_user + ADD CONSTRAINT uc_user_name UNIQUE (name_norm); +CREATE INDEX iValuePolicyNameOrig + ON m_value_policy (name_orig); +ALTER TABLE m_value_policy + ADD CONSTRAINT uc_value_policy_name UNIQUE (name_norm); +ALTER TABLE m_acc_cert_campaign + ADD CONSTRAINT fk_acc_cert_campaign FOREIGN KEY (oid) REFERENCES m_object (oid); +ALTER TABLE m_acc_cert_case + ADD CONSTRAINT fk_acc_cert_case_owner FOREIGN KEY (owner_oid) REFERENCES m_acc_cert_campaign (oid); +ALTER TABLE m_acc_cert_definition + ADD CONSTRAINT fk_acc_cert_definition FOREIGN KEY (oid) REFERENCES m_object (oid); +ALTER TABLE m_acc_cert_wi + ADD CONSTRAINT fk_acc_cert_wi_owner FOREIGN KEY (owner_owner_oid, owner_id) REFERENCES m_acc_cert_case (owner_oid, id); +ALTER TABLE m_acc_cert_wi_reference + ADD CONSTRAINT fk_acc_cert_wi_ref_owner FOREIGN KEY (owner_owner_owner_oid, owner_owner_id, owner_id) REFERENCES m_acc_cert_wi (owner_owner_oid, owner_id, id); +ALTER TABLE m_assignment + ADD CONSTRAINT fk_assignment_owner FOREIGN KEY (owner_oid) REFERENCES m_object (oid); +ALTER TABLE m_assignment_ext_boolean + ADD CONSTRAINT fk_a_ext_boolean_owner FOREIGN KEY (anyContainer_owner_owner_oid, anyContainer_owner_id) REFERENCES m_assignment_extension (owner_owner_oid, owner_id); +ALTER TABLE m_assignment_ext_boolean + ADD CONSTRAINT fk_a_ext_boolean_item FOREIGN KEY (item_id) REFERENCES m_ext_item (id); +ALTER TABLE m_assignment_ext_date + ADD CONSTRAINT fk_a_ext_date_owner FOREIGN KEY (anyContainer_owner_owner_oid, anyContainer_owner_id) REFERENCES m_assignment_extension (owner_owner_oid, owner_id); +ALTER TABLE m_assignment_ext_date + ADD CONSTRAINT fk_a_ext_date_item FOREIGN KEY (item_id) REFERENCES m_ext_item (id); +ALTER TABLE m_assignment_ext_long + ADD CONSTRAINT fk_a_ext_long_owner FOREIGN KEY (anyContainer_owner_owner_oid, anyContainer_owner_id) REFERENCES m_assignment_extension (owner_owner_oid, owner_id); +ALTER TABLE m_assignment_ext_long + ADD CONSTRAINT fk_a_ext_long_item FOREIGN KEY (item_id) REFERENCES m_ext_item (id); +ALTER TABLE m_assignment_ext_poly + ADD CONSTRAINT fk_a_ext_poly_owner FOREIGN KEY (anyContainer_owner_owner_oid, anyContainer_owner_id) REFERENCES m_assignment_extension (owner_owner_oid, owner_id); +ALTER TABLE m_assignment_ext_poly + ADD CONSTRAINT fk_a_ext_poly_item FOREIGN KEY (item_id) REFERENCES m_ext_item (id); +ALTER TABLE m_assignment_ext_reference + ADD CONSTRAINT fk_a_ext_reference_owner FOREIGN KEY (anyContainer_owner_owner_oid, anyContainer_owner_id) REFERENCES m_assignment_extension (owner_owner_oid, owner_id); +ALTER TABLE m_assignment_ext_reference + ADD CONSTRAINT fk_a_ext_boolean_reference FOREIGN KEY (item_id) REFERENCES m_ext_item (id); +ALTER TABLE m_assignment_ext_string + ADD CONSTRAINT fk_a_ext_string_owner FOREIGN KEY (anyContainer_owner_owner_oid, anyContainer_owner_id) REFERENCES m_assignment_extension (owner_owner_oid, owner_id); +ALTER TABLE m_assignment_ext_string + ADD CONSTRAINT fk_a_ext_string_item FOREIGN KEY (item_id) REFERENCES m_ext_item (id); +ALTER TABLE m_assignment_policy_situation + ADD CONSTRAINT fk_assignment_policy_situation FOREIGN KEY (assignment_oid, assignment_id) REFERENCES m_assignment (owner_oid, id); +ALTER TABLE m_assignment_reference + ADD CONSTRAINT fk_assignment_reference FOREIGN KEY (owner_owner_oid, owner_id) REFERENCES m_assignment (owner_oid, id); +ALTER TABLE m_audit_delta + ADD CONSTRAINT fk_audit_delta FOREIGN KEY (record_id) REFERENCES m_audit_event (id); +ALTER TABLE m_audit_item + ADD CONSTRAINT fk_audit_item FOREIGN KEY (record_id) REFERENCES m_audit_event (id); +ALTER TABLE m_audit_prop_value + ADD CONSTRAINT fk_audit_prop_value FOREIGN KEY (record_id) REFERENCES m_audit_event (id); +ALTER TABLE m_audit_ref_value + ADD CONSTRAINT fk_audit_ref_value FOREIGN KEY (record_id) REFERENCES m_audit_event (id); +ALTER TABLE m_case_wi + ADD CONSTRAINT fk_case_wi_owner FOREIGN KEY (owner_oid) REFERENCES m_case (oid); +ALTER TABLE m_case_wi_reference + ADD CONSTRAINT fk_case_wi_reference_owner FOREIGN KEY (owner_owner_oid, owner_id) REFERENCES m_case_wi (owner_oid, id); +ALTER TABLE m_connector_target_system + ADD CONSTRAINT fk_connector_target_system FOREIGN KEY (connector_oid) REFERENCES m_connector (oid); +ALTER TABLE m_focus_photo + ADD CONSTRAINT fk_focus_photo FOREIGN KEY (owner_oid) REFERENCES m_focus (oid); +ALTER TABLE m_focus_policy_situation + ADD CONSTRAINT fk_focus_policy_situation FOREIGN KEY (focus_oid) REFERENCES m_focus (oid); +ALTER TABLE m_object_ext_boolean + ADD CONSTRAINT fk_o_ext_boolean_owner FOREIGN KEY (owner_oid) REFERENCES m_object (oid); +ALTER TABLE m_object_ext_boolean + ADD CONSTRAINT fk_o_ext_boolean_item FOREIGN KEY (item_id) REFERENCES m_ext_item (id); +ALTER TABLE m_object_ext_date + ADD CONSTRAINT fk_o_ext_date_owner FOREIGN KEY (owner_oid) REFERENCES m_object (oid); +ALTER TABLE m_object_ext_date + ADD CONSTRAINT fk_o_ext_date_item FOREIGN KEY (item_id) REFERENCES m_ext_item (id); +ALTER TABLE m_object_ext_long + ADD CONSTRAINT fk_object_ext_long FOREIGN KEY (owner_oid) REFERENCES m_object (oid); +ALTER TABLE m_object_ext_long + ADD CONSTRAINT fk_o_ext_long_item FOREIGN KEY (item_id) REFERENCES m_ext_item (id); +ALTER TABLE m_object_ext_poly + ADD CONSTRAINT fk_o_ext_poly_owner FOREIGN KEY (owner_oid) REFERENCES m_object (oid); +ALTER TABLE m_object_ext_poly + ADD CONSTRAINT fk_o_ext_poly_item FOREIGN KEY (item_id) REFERENCES m_ext_item (id); +ALTER TABLE m_object_ext_reference + ADD CONSTRAINT fk_o_ext_reference_owner FOREIGN KEY (owner_oid) REFERENCES m_object (oid); +ALTER TABLE m_object_ext_reference + ADD CONSTRAINT fk_o_ext_reference_item FOREIGN KEY (item_id) REFERENCES m_ext_item (id); +ALTER TABLE m_object_ext_string + ADD CONSTRAINT fk_object_ext_string FOREIGN KEY (owner_oid) REFERENCES m_object (oid); +ALTER TABLE m_object_ext_string + ADD CONSTRAINT fk_o_ext_string_item FOREIGN KEY (item_id) REFERENCES m_ext_item (id); +ALTER TABLE m_object_subtype + ADD CONSTRAINT fk_object_subtype FOREIGN KEY (object_oid) REFERENCES m_object (oid); +ALTER TABLE m_object_text_info + ADD CONSTRAINT fk_object_text_info_owner FOREIGN KEY (owner_oid) REFERENCES m_object (oid); +ALTER TABLE m_operation_execution + ADD CONSTRAINT fk_op_exec_owner FOREIGN KEY (owner_oid) REFERENCES m_object (oid); +ALTER TABLE m_org_closure + ADD CONSTRAINT fk_ancestor FOREIGN KEY (ancestor_oid) REFERENCES m_object (oid); +ALTER TABLE m_org_closure + ADD CONSTRAINT fk_descendant FOREIGN KEY (descendant_oid) REFERENCES m_object (oid); +ALTER TABLE m_org_org_type + ADD CONSTRAINT fk_org_org_type FOREIGN KEY (org_oid) REFERENCES m_org (oid); +ALTER TABLE m_reference + ADD CONSTRAINT fk_reference_owner FOREIGN KEY (owner_oid) REFERENCES m_object (oid); +ALTER TABLE m_service_type + ADD CONSTRAINT fk_service_type FOREIGN KEY (service_oid) REFERENCES m_service (oid); +ALTER TABLE m_shadow + ADD CONSTRAINT fk_shadow FOREIGN KEY (oid) REFERENCES m_object (oid); +ALTER TABLE m_task + ADD CONSTRAINT fk_task FOREIGN KEY (oid) REFERENCES m_object (oid); +ALTER TABLE m_task_dependent + ADD CONSTRAINT fk_task_dependent FOREIGN KEY (task_oid) REFERENCES m_task (oid); +ALTER TABLE m_user_employee_type + ADD CONSTRAINT fk_user_employee_type FOREIGN KEY (user_oid) REFERENCES m_user (oid); +ALTER TABLE m_user_organization + ADD CONSTRAINT fk_user_organization FOREIGN KEY (user_oid) REFERENCES m_user (oid); +ALTER TABLE m_user_organizational_unit + ADD CONSTRAINT fk_user_org_unit FOREIGN KEY (user_oid) REFERENCES m_user (oid); +ALTER TABLE m_abstract_role + ADD CONSTRAINT fk_abstract_role FOREIGN KEY (oid) REFERENCES m_focus (oid); +ALTER TABLE m_case + ADD CONSTRAINT fk_case FOREIGN KEY (oid) REFERENCES m_object (oid); +ALTER TABLE m_connector + ADD CONSTRAINT fk_connector FOREIGN KEY (oid) REFERENCES m_object (oid); +ALTER TABLE m_connector_host + ADD CONSTRAINT fk_connector_host FOREIGN KEY (oid) REFERENCES m_object (oid); +ALTER TABLE m_focus + ADD CONSTRAINT fk_focus FOREIGN KEY (oid) REFERENCES m_object (oid); +ALTER TABLE m_form + ADD CONSTRAINT fk_form FOREIGN KEY (oid) REFERENCES m_object (oid); +ALTER TABLE m_function_library + ADD CONSTRAINT fk_function_library FOREIGN KEY (oid) REFERENCES m_object (oid); +ALTER TABLE m_generic_object + ADD CONSTRAINT fk_generic_object FOREIGN KEY (oid) REFERENCES m_object (oid); +ALTER TABLE m_lookup_table + ADD CONSTRAINT fk_lookup_table FOREIGN KEY (oid) REFERENCES m_object (oid); +ALTER TABLE m_lookup_table_row + ADD CONSTRAINT fk_lookup_table_owner FOREIGN KEY (owner_oid) REFERENCES m_lookup_table (oid); +ALTER TABLE m_node + ADD CONSTRAINT fk_node FOREIGN KEY (oid) REFERENCES m_object (oid); +ALTER TABLE m_object_collection + ADD CONSTRAINT fk_object_collection FOREIGN KEY (oid) REFERENCES m_object (oid); +ALTER TABLE m_object_template + ADD CONSTRAINT fk_object_template FOREIGN KEY (oid) REFERENCES m_object (oid); +ALTER TABLE m_org + ADD CONSTRAINT fk_org FOREIGN KEY (oid) REFERENCES m_abstract_role (oid); +ALTER TABLE m_report + ADD CONSTRAINT fk_report FOREIGN KEY (oid) REFERENCES m_object (oid); +ALTER TABLE m_report_output + ADD CONSTRAINT fk_report_output FOREIGN KEY (oid) REFERENCES m_object (oid); +ALTER TABLE m_resource + ADD CONSTRAINT fk_resource FOREIGN KEY (oid) REFERENCES m_object (oid); +ALTER TABLE m_role + ADD CONSTRAINT fk_role FOREIGN KEY (oid) REFERENCES m_abstract_role (oid); +ALTER TABLE m_security_policy + ADD CONSTRAINT fk_security_policy FOREIGN KEY (oid) REFERENCES m_object (oid); +ALTER TABLE m_sequence + ADD CONSTRAINT fk_sequence FOREIGN KEY (oid) REFERENCES m_object (oid); +ALTER TABLE m_service + ADD CONSTRAINT fk_service FOREIGN KEY (oid) REFERENCES m_abstract_role (oid); +ALTER TABLE m_system_configuration + ADD CONSTRAINT fk_system_configuration FOREIGN KEY (oid) REFERENCES m_object (oid); +ALTER TABLE m_trigger + ADD CONSTRAINT fk_trigger_owner FOREIGN KEY (owner_oid) REFERENCES m_object (oid); +ALTER TABLE m_user + ADD CONSTRAINT fk_user FOREIGN KEY (oid) REFERENCES m_focus (oid); +ALTER TABLE m_value_policy + ADD CONSTRAINT fk_value_policy FOREIGN KEY (oid) REFERENCES m_object (oid); + +# By: Ron Cordell - roncordell +# I didn't see this anywhere, so I thought I'd post it here. This is the script from Quartz to create the tables in a MySQL database, modified to use INNODB instead of MYISAM. + +DROP TABLE IF EXISTS QRTZ_FIRED_TRIGGERS; +DROP TABLE IF EXISTS QRTZ_PAUSED_TRIGGER_GRPS; +DROP TABLE IF EXISTS QRTZ_SCHEDULER_STATE; +DROP TABLE IF EXISTS QRTZ_LOCKS; +DROP TABLE IF EXISTS QRTZ_SIMPLE_TRIGGERS; +DROP TABLE IF EXISTS QRTZ_SIMPROP_TRIGGERS; +DROP TABLE IF EXISTS QRTZ_CRON_TRIGGERS; +DROP TABLE IF EXISTS QRTZ_BLOB_TRIGGERS; +DROP TABLE IF EXISTS QRTZ_TRIGGERS; +DROP TABLE IF EXISTS QRTZ_JOB_DETAILS; +DROP TABLE IF EXISTS QRTZ_CALENDARS; + +CREATE TABLE QRTZ_JOB_DETAILS( +SCHED_NAME VARCHAR(120) NOT NULL, +JOB_NAME VARCHAR(200) NOT NULL, +JOB_GROUP VARCHAR(200) NOT NULL, +DESCRIPTION VARCHAR(250) NULL, +JOB_CLASS_NAME VARCHAR(250) NOT NULL, +IS_DURABLE VARCHAR(1) NOT NULL, +IS_NONCONCURRENT VARCHAR(1) NOT NULL, +IS_UPDATE_DATA VARCHAR(1) NOT NULL, +REQUESTS_RECOVERY VARCHAR(1) NOT NULL, +JOB_DATA BLOB NULL, +PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP)) +ENGINE=InnoDB; + +CREATE TABLE QRTZ_TRIGGERS ( +SCHED_NAME VARCHAR(120) NOT NULL, +TRIGGER_NAME VARCHAR(200) NOT NULL, +TRIGGER_GROUP VARCHAR(200) NOT NULL, +JOB_NAME VARCHAR(200) NOT NULL, +JOB_GROUP VARCHAR(200) NOT NULL, +DESCRIPTION VARCHAR(250) NULL, +NEXT_FIRE_TIME BIGINT(13) NULL, +PREV_FIRE_TIME BIGINT(13) NULL, +PRIORITY INTEGER NULL, +EXECUTION_GROUP VARCHAR(200) NULL, +TRIGGER_STATE VARCHAR(16) NOT NULL, +TRIGGER_TYPE VARCHAR(8) NOT NULL, +START_TIME BIGINT(13) NOT NULL, +END_TIME BIGINT(13) NULL, +CALENDAR_NAME VARCHAR(200) NULL, +MISFIRE_INSTR SMALLINT(2) NULL, +JOB_DATA BLOB NULL, +PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), +FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP) +REFERENCES QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP)) +ENGINE=InnoDB; + +CREATE TABLE QRTZ_SIMPLE_TRIGGERS ( +SCHED_NAME VARCHAR(120) NOT NULL, +TRIGGER_NAME VARCHAR(200) NOT NULL, +TRIGGER_GROUP VARCHAR(200) NOT NULL, +REPEAT_COUNT BIGINT(7) NOT NULL, +REPEAT_INTERVAL BIGINT(12) NOT NULL, +TIMES_TRIGGERED BIGINT(10) NOT NULL, +PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), +FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)) +ENGINE=InnoDB; + +CREATE TABLE QRTZ_CRON_TRIGGERS ( +SCHED_NAME VARCHAR(120) NOT NULL, +TRIGGER_NAME VARCHAR(200) NOT NULL, +TRIGGER_GROUP VARCHAR(200) NOT NULL, +CRON_EXPRESSION VARCHAR(120) NOT NULL, +TIME_ZONE_ID VARCHAR(80), +PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), +FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)) +ENGINE=InnoDB; + +CREATE TABLE QRTZ_SIMPROP_TRIGGERS + ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + STR_PROP_1 VARCHAR(512) NULL, + STR_PROP_2 VARCHAR(512) NULL, + STR_PROP_3 VARCHAR(512) NULL, + INT_PROP_1 INT NULL, + INT_PROP_2 INT NULL, + LONG_PROP_1 BIGINT NULL, + LONG_PROP_2 BIGINT NULL, + DEC_PROP_1 NUMERIC(13,4) NULL, + DEC_PROP_2 NUMERIC(13,4) NULL, + BOOL_PROP_1 VARCHAR(1) NULL, + BOOL_PROP_2 VARCHAR(1) NULL, + PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)) +ENGINE=InnoDB; + +CREATE TABLE QRTZ_BLOB_TRIGGERS ( +SCHED_NAME VARCHAR(120) NOT NULL, +TRIGGER_NAME VARCHAR(200) NOT NULL, +TRIGGER_GROUP VARCHAR(200) NOT NULL, +BLOB_DATA BLOB NULL, +PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), +INDEX (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP), +FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)) +ENGINE=InnoDB; + +CREATE TABLE QRTZ_CALENDARS ( +SCHED_NAME VARCHAR(120) NOT NULL, +CALENDAR_NAME VARCHAR(200) NOT NULL, +CALENDAR BLOB NOT NULL, +PRIMARY KEY (SCHED_NAME,CALENDAR_NAME)) +ENGINE=InnoDB; + +CREATE TABLE QRTZ_PAUSED_TRIGGER_GRPS ( +SCHED_NAME VARCHAR(120) NOT NULL, +TRIGGER_GROUP VARCHAR(200) NOT NULL, +PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP)) +ENGINE=InnoDB; + +CREATE TABLE QRTZ_FIRED_TRIGGERS ( +SCHED_NAME VARCHAR(120) NOT NULL, +ENTRY_ID VARCHAR(95) NOT NULL, +TRIGGER_NAME VARCHAR(200) NOT NULL, +TRIGGER_GROUP VARCHAR(200) NOT NULL, +INSTANCE_NAME VARCHAR(200) NOT NULL, +FIRED_TIME BIGINT(13) NOT NULL, +SCHED_TIME BIGINT(13) NOT NULL, +PRIORITY INTEGER NOT NULL, +EXECUTION_GROUP VARCHAR(200) NULL, +STATE VARCHAR(16) NOT NULL, +JOB_NAME VARCHAR(200) NULL, +JOB_GROUP VARCHAR(200) NULL, +IS_NONCONCURRENT VARCHAR(1) NULL, +REQUESTS_RECOVERY VARCHAR(1) NULL, +PRIMARY KEY (SCHED_NAME,ENTRY_ID)) +ENGINE=InnoDB; + +CREATE TABLE QRTZ_SCHEDULER_STATE ( +SCHED_NAME VARCHAR(120) NOT NULL, +INSTANCE_NAME VARCHAR(200) NOT NULL, +LAST_CHECKIN_TIME BIGINT(13) NOT NULL, +CHECKIN_INTERVAL BIGINT(13) NOT NULL, +PRIMARY KEY (SCHED_NAME,INSTANCE_NAME)) +ENGINE=InnoDB; + +CREATE TABLE QRTZ_LOCKS ( +SCHED_NAME VARCHAR(120) NOT NULL, +LOCK_NAME VARCHAR(40) NOT NULL, +PRIMARY KEY (SCHED_NAME,LOCK_NAME)) +ENGINE=InnoDB; + +CREATE INDEX IDX_QRTZ_J_REQ_RECOVERY ON QRTZ_JOB_DETAILS(SCHED_NAME,REQUESTS_RECOVERY); +CREATE INDEX IDX_QRTZ_J_GRP ON QRTZ_JOB_DETAILS(SCHED_NAME,JOB_GROUP); + +CREATE INDEX IDX_QRTZ_T_J ON QRTZ_TRIGGERS(SCHED_NAME,JOB_NAME,JOB_GROUP); +CREATE INDEX IDX_QRTZ_T_JG ON QRTZ_TRIGGERS(SCHED_NAME,JOB_GROUP); +CREATE INDEX IDX_QRTZ_T_C ON QRTZ_TRIGGERS(SCHED_NAME,CALENDAR_NAME); +CREATE INDEX IDX_QRTZ_T_G ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_GROUP); +CREATE INDEX IDX_QRTZ_T_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_STATE); +CREATE INDEX IDX_QRTZ_T_N_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP,TRIGGER_STATE); +CREATE INDEX IDX_QRTZ_T_N_G_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_GROUP,TRIGGER_STATE); +CREATE INDEX IDX_QRTZ_T_NEXT_FIRE_TIME ON QRTZ_TRIGGERS(SCHED_NAME,NEXT_FIRE_TIME); +CREATE INDEX IDX_QRTZ_T_NFT_ST ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_STATE,NEXT_FIRE_TIME); +CREATE INDEX IDX_QRTZ_T_NFT_MISFIRE ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME); +CREATE INDEX IDX_QRTZ_T_NFT_ST_MISFIRE ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_STATE); +CREATE INDEX IDX_QRTZ_T_NFT_ST_MISFIRE_GRP ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_GROUP,TRIGGER_STATE); + +CREATE INDEX IDX_QRTZ_FT_TRIG_INST_NAME ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,INSTANCE_NAME); +CREATE INDEX IDX_QRTZ_FT_INST_JOB_REQ_RCVRY ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,INSTANCE_NAME,REQUESTS_RECOVERY); +CREATE INDEX IDX_QRTZ_FT_J_G ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,JOB_NAME,JOB_GROUP); +CREATE INDEX IDX_QRTZ_FT_JG ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,JOB_GROUP); +CREATE INDEX IDX_QRTZ_FT_T_G ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP); +CREATE INDEX IDX_QRTZ_FT_TG ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,TRIGGER_GROUP); + +create table ACT_GE_PROPERTY ( + NAME_ varchar(64), + VALUE_ varchar(300), + REV_ integer, + primary key (NAME_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +insert into ACT_GE_PROPERTY +values ('schema.version', '5.22.0.0', 1); + +insert into ACT_GE_PROPERTY +values ('schema.history', 'create(5.22.0.0)', 1); + +insert into ACT_GE_PROPERTY +values ('next.dbid', '1', 1); + +create table ACT_GE_BYTEARRAY ( + ID_ varchar(64), + REV_ integer, + NAME_ varchar(255), + DEPLOYMENT_ID_ varchar(64), + BYTES_ LONGBLOB, + GENERATED_ TINYINT, + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create table ACT_RE_DEPLOYMENT ( + ID_ varchar(64), + NAME_ varchar(255), + CATEGORY_ varchar(255), + TENANT_ID_ varchar(255) default '', + DEPLOY_TIME_ timestamp(3) NULL, + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create table ACT_RE_MODEL ( + ID_ varchar(64) not null, + REV_ integer, + NAME_ varchar(255), + KEY_ varchar(255), + CATEGORY_ varchar(255), + CREATE_TIME_ timestamp(3) null, + LAST_UPDATE_TIME_ timestamp(3) null, + VERSION_ integer, + META_INFO_ varchar(4000), + DEPLOYMENT_ID_ varchar(64), + EDITOR_SOURCE_VALUE_ID_ varchar(64), + EDITOR_SOURCE_EXTRA_VALUE_ID_ varchar(64), + TENANT_ID_ varchar(255) default '', + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create table ACT_RU_EXECUTION ( + ID_ varchar(64), + REV_ integer, + PROC_INST_ID_ varchar(64), + BUSINESS_KEY_ varchar(255), + PARENT_ID_ varchar(64), + PROC_DEF_ID_ varchar(64), + SUPER_EXEC_ varchar(64), + ACT_ID_ varchar(255), + IS_ACTIVE_ TINYINT, + IS_CONCURRENT_ TINYINT, + IS_SCOPE_ TINYINT, + IS_EVENT_SCOPE_ TINYINT, + SUSPENSION_STATE_ integer, + CACHED_ENT_STATE_ integer, + TENANT_ID_ varchar(255) default '', + NAME_ varchar(255), + LOCK_TIME_ timestamp(3) NULL, + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create table ACT_RU_JOB ( + ID_ varchar(64) NOT NULL, + REV_ integer, + TYPE_ varchar(255) NOT NULL, + LOCK_EXP_TIME_ timestamp(3) NULL, + LOCK_OWNER_ varchar(255), + EXCLUSIVE_ boolean, + EXECUTION_ID_ varchar(64), + PROCESS_INSTANCE_ID_ varchar(64), + PROC_DEF_ID_ varchar(64), + RETRIES_ integer, + EXCEPTION_STACK_ID_ varchar(64), + EXCEPTION_MSG_ varchar(4000), + DUEDATE_ timestamp(3) NULL, + REPEAT_ varchar(255), + HANDLER_TYPE_ varchar(255), + HANDLER_CFG_ varchar(4000), + TENANT_ID_ varchar(255) default '', + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create table ACT_RE_PROCDEF ( + ID_ varchar(64) not null, + REV_ integer, + CATEGORY_ varchar(255), + NAME_ varchar(255), + KEY_ varchar(255) not null, + VERSION_ integer not null, + DEPLOYMENT_ID_ varchar(64), + RESOURCE_NAME_ varchar(4000), + DGRM_RESOURCE_NAME_ varchar(4000), + DESCRIPTION_ varchar(4000), + HAS_START_FORM_KEY_ TINYINT, + HAS_GRAPHICAL_NOTATION_ TINYINT, + SUSPENSION_STATE_ integer, + TENANT_ID_ varchar(255) default '', + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create table ACT_RU_TASK ( + ID_ varchar(64), + REV_ integer, + EXECUTION_ID_ varchar(64), + PROC_INST_ID_ varchar(64), + PROC_DEF_ID_ varchar(64), + NAME_ varchar(255), + PARENT_TASK_ID_ varchar(64), + DESCRIPTION_ varchar(4000), + TASK_DEF_KEY_ varchar(255), + OWNER_ varchar(255), + ASSIGNEE_ varchar(255), + DELEGATION_ varchar(64), + PRIORITY_ integer, + CREATE_TIME_ timestamp(3) NULL, + DUE_DATE_ datetime(3), + CATEGORY_ varchar(255), + SUSPENSION_STATE_ integer, + TENANT_ID_ varchar(255) default '', + FORM_KEY_ varchar(255), + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create table ACT_RU_IDENTITYLINK ( + ID_ varchar(64), + REV_ integer, + GROUP_ID_ varchar(255), + TYPE_ varchar(255), + USER_ID_ varchar(255), + TASK_ID_ varchar(64), + PROC_INST_ID_ varchar(64), + PROC_DEF_ID_ varchar(64), + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create table ACT_RU_VARIABLE ( + ID_ varchar(64) not null, + REV_ integer, + TYPE_ varchar(255) not null, + NAME_ varchar(255) not null, + EXECUTION_ID_ varchar(64), + PROC_INST_ID_ varchar(64), + TASK_ID_ varchar(64), + BYTEARRAY_ID_ varchar(64), + DOUBLE_ double, + LONG_ bigint, + TEXT_ varchar(4000), + TEXT2_ varchar(4000), + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create table ACT_RU_EVENT_SUBSCR ( + ID_ varchar(64) not null, + REV_ integer, + EVENT_TYPE_ varchar(255) not null, + EVENT_NAME_ varchar(255), + EXECUTION_ID_ varchar(64), + PROC_INST_ID_ varchar(64), + ACTIVITY_ID_ varchar(64), + CONFIGURATION_ varchar(255), + CREATED_ timestamp(3) not null DEFAULT CURRENT_TIMESTAMP(3), + PROC_DEF_ID_ varchar(64), + TENANT_ID_ varchar(255) default '', + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create table ACT_EVT_LOG ( + LOG_NR_ bigint auto_increment, + TYPE_ varchar(64), + PROC_DEF_ID_ varchar(64), + PROC_INST_ID_ varchar(64), + EXECUTION_ID_ varchar(64), + TASK_ID_ varchar(64), + TIME_STAMP_ timestamp(3) not null, + USER_ID_ varchar(255), + DATA_ LONGBLOB, + LOCK_OWNER_ varchar(255), + LOCK_TIME_ timestamp(3) null, + IS_PROCESSED_ tinyint default 0, + primary key (LOG_NR_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create table ACT_PROCDEF_INFO ( + ID_ varchar(64) not null, + PROC_DEF_ID_ varchar(64) not null, + REV_ integer, + INFO_JSON_ID_ varchar(64), + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create index ACT_IDX_EXEC_BUSKEY on ACT_RU_EXECUTION(BUSINESS_KEY_); +create index ACT_IDX_TASK_CREATE on ACT_RU_TASK(CREATE_TIME_); +create index ACT_IDX_IDENT_LNK_USER on ACT_RU_IDENTITYLINK(USER_ID_); +create index ACT_IDX_IDENT_LNK_GROUP on ACT_RU_IDENTITYLINK(GROUP_ID_); +create index ACT_IDX_EVENT_SUBSCR_CONFIG_ on ACT_RU_EVENT_SUBSCR(CONFIGURATION_); +create index ACT_IDX_VARIABLE_TASK_ID on ACT_RU_VARIABLE(TASK_ID_); +create index ACT_IDX_ATHRZ_PROCEDEF on ACT_RU_IDENTITYLINK(PROC_DEF_ID_); +create index ACT_IDX_INFO_PROCDEF on ACT_PROCDEF_INFO(PROC_DEF_ID_); + +alter table ACT_GE_BYTEARRAY + add constraint ACT_FK_BYTEARR_DEPL + foreign key (DEPLOYMENT_ID_) + references ACT_RE_DEPLOYMENT (ID_); + +alter table ACT_RE_PROCDEF + add constraint ACT_UNIQ_PROCDEF + unique (KEY_,VERSION_, TENANT_ID_); + +alter table ACT_RU_EXECUTION + add constraint ACT_FK_EXE_PROCINST + foreign key (PROC_INST_ID_) + references ACT_RU_EXECUTION (ID_) on delete cascade on update cascade; + +alter table ACT_RU_EXECUTION + add constraint ACT_FK_EXE_PARENT + foreign key (PARENT_ID_) + references ACT_RU_EXECUTION (ID_); + +alter table ACT_RU_EXECUTION + add constraint ACT_FK_EXE_SUPER + foreign key (SUPER_EXEC_) + references ACT_RU_EXECUTION (ID_); + +alter table ACT_RU_EXECUTION + add constraint ACT_FK_EXE_PROCDEF + foreign key (PROC_DEF_ID_) + references ACT_RE_PROCDEF (ID_); + +alter table ACT_RU_IDENTITYLINK + add constraint ACT_FK_TSKASS_TASK + foreign key (TASK_ID_) + references ACT_RU_TASK (ID_); + +alter table ACT_RU_IDENTITYLINK + add constraint ACT_FK_ATHRZ_PROCEDEF + foreign key (PROC_DEF_ID_) + references ACT_RE_PROCDEF(ID_); + +alter table ACT_RU_IDENTITYLINK + add constraint ACT_FK_IDL_PROCINST + foreign key (PROC_INST_ID_) + references ACT_RU_EXECUTION (ID_); + +alter table ACT_RU_TASK + add constraint ACT_FK_TASK_EXE + foreign key (EXECUTION_ID_) + references ACT_RU_EXECUTION (ID_); + +alter table ACT_RU_TASK + add constraint ACT_FK_TASK_PROCINST + foreign key (PROC_INST_ID_) + references ACT_RU_EXECUTION (ID_); + +alter table ACT_RU_TASK + add constraint ACT_FK_TASK_PROCDEF + foreign key (PROC_DEF_ID_) + references ACT_RE_PROCDEF (ID_); + +alter table ACT_RU_VARIABLE + add constraint ACT_FK_VAR_EXE + foreign key (EXECUTION_ID_) + references ACT_RU_EXECUTION (ID_); + +alter table ACT_RU_VARIABLE + add constraint ACT_FK_VAR_PROCINST + foreign key (PROC_INST_ID_) + references ACT_RU_EXECUTION(ID_); + +alter table ACT_RU_VARIABLE + add constraint ACT_FK_VAR_BYTEARRAY + foreign key (BYTEARRAY_ID_) + references ACT_GE_BYTEARRAY (ID_); + +alter table ACT_RU_JOB + add constraint ACT_FK_JOB_EXCEPTION + foreign key (EXCEPTION_STACK_ID_) + references ACT_GE_BYTEARRAY (ID_); + +alter table ACT_RU_EVENT_SUBSCR + add constraint ACT_FK_EVENT_EXEC + foreign key (EXECUTION_ID_) + references ACT_RU_EXECUTION(ID_); + +alter table ACT_RE_MODEL + add constraint ACT_FK_MODEL_SOURCE + foreign key (EDITOR_SOURCE_VALUE_ID_) + references ACT_GE_BYTEARRAY (ID_); + +alter table ACT_RE_MODEL + add constraint ACT_FK_MODEL_SOURCE_EXTRA + foreign key (EDITOR_SOURCE_EXTRA_VALUE_ID_) + references ACT_GE_BYTEARRAY (ID_); + +alter table ACT_RE_MODEL + add constraint ACT_FK_MODEL_DEPLOYMENT + foreign key (DEPLOYMENT_ID_) + references ACT_RE_DEPLOYMENT (ID_); + +alter table ACT_PROCDEF_INFO + add constraint ACT_FK_INFO_JSON_BA + foreign key (INFO_JSON_ID_) + references ACT_GE_BYTEARRAY (ID_); + +alter table ACT_PROCDEF_INFO + add constraint ACT_FK_INFO_PROCDEF + foreign key (PROC_DEF_ID_) + references ACT_RE_PROCDEF (ID_); + +alter table ACT_PROCDEF_INFO + add constraint ACT_UNIQ_INFO_PROCDEF + unique (PROC_DEF_ID_); + +create table ACT_HI_PROCINST ( + ID_ varchar(64) not null, + PROC_INST_ID_ varchar(64) not null, + BUSINESS_KEY_ varchar(255), + PROC_DEF_ID_ varchar(64) not null, + START_TIME_ datetime(3) not null, + END_TIME_ datetime(3), + DURATION_ bigint, + START_USER_ID_ varchar(255), + START_ACT_ID_ varchar(255), + END_ACT_ID_ varchar(255), + SUPER_PROCESS_INSTANCE_ID_ varchar(64), + DELETE_REASON_ varchar(4000), + TENANT_ID_ varchar(255) default '', + NAME_ varchar(255), + primary key (ID_), + unique (PROC_INST_ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create table ACT_HI_ACTINST ( + ID_ varchar(64) not null, + PROC_DEF_ID_ varchar(64) not null, + PROC_INST_ID_ varchar(64) not null, + EXECUTION_ID_ varchar(64) not null, + ACT_ID_ varchar(255) not null, + TASK_ID_ varchar(64), + CALL_PROC_INST_ID_ varchar(64), + ACT_NAME_ varchar(255), + ACT_TYPE_ varchar(255) not null, + ASSIGNEE_ varchar(255), + START_TIME_ datetime(3) not null, + END_TIME_ datetime(3), + DURATION_ bigint, + TENANT_ID_ varchar(255) default '', + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create table ACT_HI_TASKINST ( + ID_ varchar(64) not null, + PROC_DEF_ID_ varchar(64), + TASK_DEF_KEY_ varchar(255), + PROC_INST_ID_ varchar(64), + EXECUTION_ID_ varchar(64), + NAME_ varchar(255), + PARENT_TASK_ID_ varchar(64), + DESCRIPTION_ varchar(4000), + OWNER_ varchar(255), + ASSIGNEE_ varchar(255), + START_TIME_ datetime(3) not null, + CLAIM_TIME_ datetime(3), + END_TIME_ datetime(3), + DURATION_ bigint, + DELETE_REASON_ varchar(4000), + PRIORITY_ integer, + DUE_DATE_ datetime(3), + FORM_KEY_ varchar(255), + CATEGORY_ varchar(255), + TENANT_ID_ varchar(255) default '', + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create table ACT_HI_VARINST ( + ID_ varchar(64) not null, + PROC_INST_ID_ varchar(64), + EXECUTION_ID_ varchar(64), + TASK_ID_ varchar(64), + NAME_ varchar(255) not null, + VAR_TYPE_ varchar(100), + REV_ integer, + BYTEARRAY_ID_ varchar(64), + DOUBLE_ double, + LONG_ bigint, + TEXT_ varchar(4000), + TEXT2_ varchar(4000), + CREATE_TIME_ datetime(3), + LAST_UPDATED_TIME_ datetime(3), + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create table ACT_HI_DETAIL ( + ID_ varchar(64) not null, + TYPE_ varchar(255) not null, + PROC_INST_ID_ varchar(64), + EXECUTION_ID_ varchar(64), + TASK_ID_ varchar(64), + ACT_INST_ID_ varchar(64), + NAME_ varchar(255) not null, + VAR_TYPE_ varchar(255), + REV_ integer, + TIME_ datetime(3) not null, + BYTEARRAY_ID_ varchar(64), + DOUBLE_ double, + LONG_ bigint, + TEXT_ varchar(4000), + TEXT2_ varchar(4000), + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create table ACT_HI_COMMENT ( + ID_ varchar(64) not null, + TYPE_ varchar(255), + TIME_ datetime(3) not null, + USER_ID_ varchar(255), + TASK_ID_ varchar(64), + PROC_INST_ID_ varchar(64), + ACTION_ varchar(255), + MESSAGE_ varchar(4000), + FULL_MSG_ LONGBLOB, + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create table ACT_HI_ATTACHMENT ( + ID_ varchar(64) not null, + REV_ integer, + USER_ID_ varchar(255), + NAME_ varchar(255), + DESCRIPTION_ varchar(4000), + TYPE_ varchar(255), + TASK_ID_ varchar(64), + PROC_INST_ID_ varchar(64), + URL_ varchar(4000), + CONTENT_ID_ varchar(64), + TIME_ datetime(3), + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create table ACT_HI_IDENTITYLINK ( + ID_ varchar(64), + GROUP_ID_ varchar(255), + TYPE_ varchar(255), + USER_ID_ varchar(255), + TASK_ID_ varchar(64), + PROC_INST_ID_ varchar(64), + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + + +create index ACT_IDX_HI_PRO_INST_END on ACT_HI_PROCINST(END_TIME_); +create index ACT_IDX_HI_PRO_I_BUSKEY on ACT_HI_PROCINST(BUSINESS_KEY_); +create index ACT_IDX_HI_ACT_INST_START on ACT_HI_ACTINST(START_TIME_); +create index ACT_IDX_HI_ACT_INST_END on ACT_HI_ACTINST(END_TIME_); +create index ACT_IDX_HI_DETAIL_PROC_INST on ACT_HI_DETAIL(PROC_INST_ID_); +create index ACT_IDX_HI_DETAIL_ACT_INST on ACT_HI_DETAIL(ACT_INST_ID_); +create index ACT_IDX_HI_DETAIL_TIME on ACT_HI_DETAIL(TIME_); +create index ACT_IDX_HI_DETAIL_NAME on ACT_HI_DETAIL(NAME_); +create index ACT_IDX_HI_DETAIL_TASK_ID on ACT_HI_DETAIL(TASK_ID_); +create index ACT_IDX_HI_PROCVAR_PROC_INST on ACT_HI_VARINST(PROC_INST_ID_); +create index ACT_IDX_HI_PROCVAR_NAME_TYPE on ACT_HI_VARINST(NAME_, VAR_TYPE_); +create index ACT_IDX_HI_PROCVAR_TASK_ID on ACT_HI_VARINST(TASK_ID_); +create index ACT_IDX_HI_ACT_INST_PROCINST on ACT_HI_ACTINST(PROC_INST_ID_, ACT_ID_); +create index ACT_IDX_HI_ACT_INST_EXEC on ACT_HI_ACTINST(EXECUTION_ID_, ACT_ID_); +create index ACT_IDX_HI_IDENT_LNK_USER on ACT_HI_IDENTITYLINK(USER_ID_); +create index ACT_IDX_HI_IDENT_LNK_TASK on ACT_HI_IDENTITYLINK(TASK_ID_); +create index ACT_IDX_HI_IDENT_LNK_PROCINST on ACT_HI_IDENTITYLINK(PROC_INST_ID_); +create index ACT_IDX_HI_TASK_INST_PROCINST on ACT_HI_TASKINST(PROC_INST_ID_); + +create table ACT_ID_GROUP ( + ID_ varchar(64), + REV_ integer, + NAME_ varchar(255), + TYPE_ varchar(255), + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create table ACT_ID_MEMBERSHIP ( + USER_ID_ varchar(64), + GROUP_ID_ varchar(64), + primary key (USER_ID_, GROUP_ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create table ACT_ID_USER ( + ID_ varchar(64), + REV_ integer, + FIRST_ varchar(255), + LAST_ varchar(255), + EMAIL_ varchar(255), + PWD_ varchar(255), + PICTURE_ID_ varchar(64), + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create table ACT_ID_INFO ( + ID_ varchar(64), + REV_ integer, + USER_ID_ varchar(64), + TYPE_ varchar(64), + KEY_ varchar(255), + VALUE_ varchar(255), + PASSWORD_ LONGBLOB, + PARENT_ID_ varchar(255), + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +alter table ACT_ID_MEMBERSHIP + add constraint ACT_FK_MEMB_GROUP + foreign key (GROUP_ID_) + references ACT_ID_GROUP (ID_); + +alter table ACT_ID_MEMBERSHIP + add constraint ACT_FK_MEMB_USER + foreign key (USER_ID_) + references ACT_ID_USER (ID_); + +commit; diff --git a/config/sql/_all/mysql-upgrade-3.8-3.9-utf8mb4.sql b/config/sql/_all/mysql-upgrade-3.8-3.9-utf8mb4.sql new file mode 100644 index 00000000000..1b4ed2d0a31 --- /dev/null +++ b/config/sql/_all/mysql-upgrade-3.8-3.9-utf8mb4.sql @@ -0,0 +1,17 @@ +CREATE TABLE m_object_collection ( + name_norm VARCHAR(191), + name_orig VARCHAR(191), + oid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin NOT NULL, + PRIMARY KEY (oid) +) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; + +CREATE INDEX iObjectCollectionNameOrig + ON m_object_collection (name_orig); +ALTER TABLE m_object_collection + ADD CONSTRAINT uc_object_collection_name UNIQUE (name_norm); + +ALTER TABLE m_object_collection + ADD CONSTRAINT fk_object_collection FOREIGN KEY (oid) REFERENCES m_object (oid); diff --git a/config/sql/_all/mysql-upgrade-3.8-3.9.sql b/config/sql/_all/mysql-upgrade-3.8-3.9.sql new file mode 100644 index 00000000000..08aa0acae99 --- /dev/null +++ b/config/sql/_all/mysql-upgrade-3.8-3.9.sql @@ -0,0 +1,17 @@ +CREATE TABLE m_object_collection ( + name_norm VARCHAR(255), + name_orig VARCHAR(255), + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +) + DEFAULT CHARACTER SET utf8 + COLLATE utf8_bin + ENGINE = InnoDB; + +CREATE INDEX iObjectCollectionNameOrig + ON m_object_collection (name_orig); +ALTER TABLE m_object_collection + ADD CONSTRAINT uc_object_collection_name UNIQUE (name_norm); + +ALTER TABLE m_object_collection + ADD CONSTRAINT fk_object_collection FOREIGN KEY (oid) REFERENCES m_object (oid); diff --git a/config/sql/_all/oracle-upgrade-3.7-3.8.sql b/config/sql/_all/oracle-3.9-all.sql similarity index 61% rename from config/sql/_all/oracle-upgrade-3.7-3.8.sql rename to config/sql/_all/oracle-3.9-all.sql index d6d5bc061bb..70746859b55 100644 --- a/config/sql/_all/oracle-upgrade-3.7-3.8.sql +++ b/config/sql/_all/oracle-3.9-all.sql @@ -1,204 +1,3 @@ -DROP TABLE m_acc_cert_definition; -DROP TABLE m_acc_cert_wi_reference; -DROP TABLE m_acc_cert_wi; -DROP TABLE m_acc_cert_case; -DROP TABLE m_acc_cert_campaign; -DROP TABLE m_assignment_ext_boolean; -DROP TABLE m_assignment_ext_date; -DROP TABLE m_assignment_ext_long; -DROP TABLE m_assignment_ext_poly; -DROP TABLE m_assignment_ext_reference; -DROP TABLE m_assignment_ext_string; -DROP TABLE m_assignment_extension; -DROP TABLE m_assignment_policy_situation; -DROP TABLE m_assignment_reference; -DROP TABLE m_assignment; --- Don't touch audit tables --- DROP TABLE m_audit_delta; --- DROP TABLE m_audit_item; --- DROP TABLE m_audit_prop_value; --- DROP TABLE m_audit_ref_value; --- DROP TABLE m_audit_event; -DROP TABLE m_case; -DROP TABLE m_connector_host; -DROP TABLE m_connector_target_system; -DROP TABLE m_connector; -DROP TABLE m_exclusion; -DROP TABLE m_focus_photo; -DROP TABLE m_focus_policy_situation; -DROP TABLE m_form; -DROP TABLE m_function_library; -DROP TABLE m_generic_object; -DROP TABLE m_lookup_table_row; -DROP TABLE m_lookup_table; -DROP TABLE m_node; -DROP TABLE m_object_ext_boolean; -DROP TABLE m_object_ext_date; -DROP TABLE m_object_ext_long; -DROP TABLE m_object_ext_poly; -DROP TABLE m_object_ext_reference; -DROP TABLE m_object_ext_string; -DROP TABLE m_object_template; -DROP TABLE m_object_text_info; -DROP TABLE m_operation_execution; -DROP TABLE m_org_closure; -DROP TABLE m_org_org_type; -DROP TABLE m_org; -DROP TABLE m_reference; -DROP TABLE m_report; -DROP TABLE m_report_output; -DROP TABLE m_resource; -DROP TABLE m_role; -DROP TABLE m_security_policy; -DROP TABLE m_sequence; -DROP TABLE m_service_type; -DROP TABLE m_service; -DROP TABLE m_abstract_role; -DROP TABLE m_shadow; -DROP TABLE m_system_configuration; -DROP TABLE m_task_dependent; -DROP TABLE m_task; -DROP TABLE m_trigger; -DROP TABLE m_user_employee_type; -DROP TABLE m_user_organization; -DROP TABLE m_user_organizational_unit; -DROP TABLE m_value_policy; -DROP TABLE m_user; -DROP TABLE m_focus; -DROP TABLE m_object; - -DROP SEQUENCE hibernate_sequence; - -CREATE TABLE m_audit_event_new ( - id NUMBER(19, 0) GENERATED BY DEFAULT ON NULL AS IDENTITY, - attorneyName VARCHAR2(255 CHAR), - attorneyOid VARCHAR2(36 CHAR), - channel VARCHAR2(255 CHAR), - eventIdentifier VARCHAR2(255 CHAR), - eventStage NUMBER(10, 0), - eventType NUMBER(10, 0), - hostIdentifier VARCHAR2(255 CHAR), - initiatorName VARCHAR2(255 CHAR), - initiatorOid VARCHAR2(36 CHAR), - initiatorType NUMBER(10, 0), - message VARCHAR2(1024 CHAR), - nodeIdentifier VARCHAR2(255 CHAR), - outcome NUMBER(10, 0), - parameter VARCHAR2(255 CHAR), - remoteHostAddress VARCHAR2(255 CHAR), - result VARCHAR2(255 CHAR), - sessionIdentifier VARCHAR2(255 CHAR), - targetName VARCHAR2(255 CHAR), - targetOid VARCHAR2(36 CHAR), - targetOwnerName VARCHAR2(255 CHAR), - targetOwnerOid VARCHAR2(36 CHAR), - targetOwnerType NUMBER(10, 0), - targetType NUMBER(10, 0), - taskIdentifier VARCHAR2(255 CHAR), - taskOID VARCHAR2(255 CHAR), - timestampValue TIMESTAMP, - PRIMARY KEY (id) -) INITRANS 30; - -CREATE TABLE m_audit_prop_value_new ( - id NUMBER(19, 0) GENERATED BY DEFAULT ON NULL AS IDENTITY, - name VARCHAR2(255 CHAR), - record_id NUMBER(19, 0), - value VARCHAR2(1024 CHAR), - PRIMARY KEY (id) -) INITRANS 30; - -CREATE TABLE m_audit_ref_value_new ( - id NUMBER(19, 0) GENERATED BY DEFAULT ON NULL AS IDENTITY, - name VARCHAR2(255 CHAR), - oid VARCHAR2(255 CHAR), - record_id NUMBER(19, 0), - targetName_norm VARCHAR2(255 CHAR), - targetName_orig VARCHAR2(255 CHAR), - type VARCHAR2(255 CHAR), - PRIMARY KEY (id) -) INITRANS 30; - -INSERT INTO m_audit_event_new (id, attorneyName, attorneyOid, channel, eventIdentifier, eventStage, eventType, hostIdentifier, - initiatorName, initiatorOid, initiatorType, message, nodeIdentifier, outcome, parameter, remoteHostAddress, - result, sessionIdentifier, targetName, targetOid, targetOwnerName, targetOwnerOid, targetType, - taskIdentifier, taskOID, timestampValue) - SELECT id, attorneyName, attorneyOid, channel, eventIdentifier, eventStage, eventType, hostIdentifier, initiatorName, initiatorOid, - initiatorType, message, nodeIdentifier, outcome, parameter, remoteHostAddress, result, sessionIdentifier, targetName, targetOid, - targetOwnerName, targetOwnerOid, targetType, taskIdentifier, taskOID, timestampValue - FROM M_AUDIT_EVENT; - -INSERT INTO m_audit_prop_value_NEW (id, name, record_id, value) - SELECT id, name, record_id, value FROM m_audit_prop_value; - -INSERT INTO m_audit_ref_value_NEW (id, name, oid, record_id, targetName_norm, targetName_orig, type) - SELECT id, name, oid, record_id, targetName_norm, targetName_orig, type FROM m_audit_ref_value; - -ALTER TABLE m_audit_event_new MODIFY id GENERATED AS IDENTITY START WITH LIMIT VALUE; -ALTER TABLE m_audit_prop_value_new MODIFY id GENERATED AS IDENTITY START WITH LIMIT VALUE; -ALTER TABLE m_audit_ref_value_new MODIFY id GENERATED AS IDENTITY START WITH LIMIT VALUE; - -ALTER TABLE m_audit_delta DROP CONSTRAINT fk_audit_delta; -ALTER TABLE m_audit_item DROP CONSTRAINT fk_audit_item; -ALTER TABLE m_audit_prop_value DROP CONSTRAINT fk_audit_prop_value; -ALTER TABLE m_audit_ref_value DROP CONSTRAINT fk_audit_ref_value; - -DROP TABLE m_audit_prop_value; -DROP TABLE m_audit_ref_value; -DROP TABLE m_audit_event; - -ALTER TABLE m_audit_prop_value_new RENAME TO m_audit_prop_value; -ALTER TABLE m_audit_ref_value_new RENAME TO m_audit_ref_value; -ALTER TABLE m_audit_event_new RENAME TO m_audit_event; - -CREATE INDEX iTimestampValue ON m_audit_event (timestampValue) INITRANS 30; -CREATE INDEX iAuditPropValRecordId ON m_audit_prop_value (record_id) INITRANS 30; -CREATE INDEX iAuditRefValRecordId ON m_audit_ref_value (record_id) INITRANS 30; - -ALTER TABLE m_audit_delta ADD CONSTRAINT fk_audit_delta FOREIGN KEY (record_id) REFERENCES m_audit_event; -ALTER TABLE m_audit_item ADD CONSTRAINT fk_audit_item FOREIGN KEY (record_id) REFERENCES m_audit_event; -ALTER TABLE m_audit_prop_value ADD CONSTRAINT fk_audit_prop_value FOREIGN KEY (record_id) REFERENCES m_audit_event; -ALTER TABLE m_audit_ref_value ADD CONSTRAINT fk_audit_ref_value FOREIGN KEY (record_id) REFERENCES m_audit_event; - -ALTER TABLE m_audit_item MODIFY changedItemPath VARCHAR2(255 CHAR); - -CREATE OR REPLACE FUNCTION clob_to_blob (p_data IN CLOB) - RETURN BLOB -AS - l_blob BLOB; - l_dest_offset PLS_INTEGER := 1; - l_src_offset PLS_INTEGER := 1; - l_lang_context PLS_INTEGER := DBMS_LOB.default_lang_ctx; - l_warning PLS_INTEGER := DBMS_LOB.warn_inconvertible_char; - BEGIN - - DBMS_LOB.createtemporary( - lob_loc => l_blob, - cache => TRUE); - - DBMS_LOB.converttoblob( - dest_lob => l_blob, - src_clob => p_data, - amount => DBMS_LOB.lobmaxsize, - dest_offset => l_dest_offset, - src_offset => l_src_offset, - blob_csid => DBMS_LOB.default_csid, - lang_context => l_lang_context, - warning => l_warning); - - RETURN l_blob; - END; - -ALTER TABLE m_audit_delta ADD (deltaBlob BLOB, fullResultBlob BLOB); - -UPDATE m_audit_delta SET deltaBlob = clob_to_blob(delta) where delta is not null; -UPDATE m_audit_delta SET fullResultBlob = clob_to_blob(fullResult) where fullResult is not null; - -ALTER TABLE m_audit_delta DROP (delta, fullResult); - -ALTER TABLE m_audit_delta RENAME COLUMN deltaBlob TO delta; -ALTER TABLE m_audit_delta RENAME COLUMN fullResultBlob TO fullResult; - CREATE TABLE m_acc_cert_campaign ( definitionRef_relation VARCHAR2(157 CHAR), definitionRef_targetOid VARCHAR2(36 CHAR), @@ -396,6 +195,73 @@ CREATE TABLE m_assignment_reference ( targetType NUMBER(10, 0), PRIMARY KEY (owner_owner_oid, owner_id, reference_type, relation, targetOid) ) INITRANS 30; +CREATE TABLE m_audit_delta ( + checksum VARCHAR2(32 CHAR) NOT NULL, + record_id NUMBER(19, 0) NOT NULL, + delta BLOB, + deltaOid VARCHAR2(36 CHAR), + deltaType NUMBER(10, 0), + fullResult BLOB, + objectName_norm VARCHAR2(255 CHAR), + objectName_orig VARCHAR2(255 CHAR), + resourceName_norm VARCHAR2(255 CHAR), + resourceName_orig VARCHAR2(255 CHAR), + resourceOid VARCHAR2(36 CHAR), + status NUMBER(10, 0), + PRIMARY KEY (record_id, checksum) +) INITRANS 30; +CREATE TABLE m_audit_event ( + id NUMBER(19, 0) GENERATED AS IDENTITY, + attorneyName VARCHAR2(255 CHAR), + attorneyOid VARCHAR2(36 CHAR), + channel VARCHAR2(255 CHAR), + eventIdentifier VARCHAR2(255 CHAR), + eventStage NUMBER(10, 0), + eventType NUMBER(10, 0), + hostIdentifier VARCHAR2(255 CHAR), + initiatorName VARCHAR2(255 CHAR), + initiatorOid VARCHAR2(36 CHAR), + initiatorType NUMBER(10, 0), + message VARCHAR2(1024 CHAR), + nodeIdentifier VARCHAR2(255 CHAR), + outcome NUMBER(10, 0), + parameter VARCHAR2(255 CHAR), + remoteHostAddress VARCHAR2(255 CHAR), + result VARCHAR2(255 CHAR), + sessionIdentifier VARCHAR2(255 CHAR), + targetName VARCHAR2(255 CHAR), + targetOid VARCHAR2(36 CHAR), + targetOwnerName VARCHAR2(255 CHAR), + targetOwnerOid VARCHAR2(36 CHAR), + targetOwnerType NUMBER(10, 0), + targetType NUMBER(10, 0), + taskIdentifier VARCHAR2(255 CHAR), + taskOID VARCHAR2(255 CHAR), + timestampValue TIMESTAMP, + PRIMARY KEY (id) +) INITRANS 30; +CREATE TABLE m_audit_item ( + changedItemPath VARCHAR2(255 CHAR) NOT NULL, + record_id NUMBER(19, 0) NOT NULL, + PRIMARY KEY (record_id, changedItemPath) +) INITRANS 30; +CREATE TABLE m_audit_prop_value ( + id NUMBER(19, 0) GENERATED AS IDENTITY, + name VARCHAR2(255 CHAR), + record_id NUMBER(19, 0), + value VARCHAR2(1024 CHAR), + PRIMARY KEY (id) +) INITRANS 30; +CREATE TABLE m_audit_ref_value ( + id NUMBER(19, 0) GENERATED AS IDENTITY, + name VARCHAR2(255 CHAR), + oid VARCHAR2(36 CHAR), + record_id NUMBER(19, 0), + targetName_norm VARCHAR2(255 CHAR), + targetName_orig VARCHAR2(255 CHAR), + type VARCHAR2(255 CHAR), + PRIMARY KEY (id) +) INITRANS 30; CREATE TABLE m_case_wi ( id NUMBER(10, 0) NOT NULL, owner_oid VARCHAR2(36 CHAR) NOT NULL, @@ -746,6 +612,12 @@ CREATE TABLE m_node ( oid VARCHAR2(36 CHAR) NOT NULL, PRIMARY KEY (oid) ) INITRANS 30; +CREATE TABLE m_object_collection ( + name_norm VARCHAR2(255 CHAR), + name_orig VARCHAR2(255 CHAR), + oid VARCHAR2(36 CHAR) NOT NULL, + PRIMARY KEY (oid) +) INITRANS 30; CREATE TABLE m_object_template ( name_norm VARCHAR2(255 CHAR), name_orig VARCHAR2(255 CHAR), @@ -909,8 +781,16 @@ CREATE INDEX iAssignmentReferenceTargetOid ON m_assignment_reference (targetOid) INITRANS 30; CREATE INDEX iAuditDeltaRecordId ON m_audit_delta (record_id) INITRANS 30; +CREATE INDEX iTimestampValue + ON m_audit_event (timestampValue) INITRANS 30; +CREATE INDEX iChangedItemPath + ON m_audit_item (changedItemPath) INITRANS 30; CREATE INDEX iAuditItemRecordId ON m_audit_item (record_id) INITRANS 30; +CREATE INDEX iAuditPropValRecordId + ON m_audit_prop_value (record_id) INITRANS 30; +CREATE INDEX iAuditRefValRecordId + ON m_audit_ref_value (record_id) INITRANS 30; CREATE INDEX iCaseWorkItemRefTargetOid ON m_case_wi_reference (targetOid) INITRANS 30; @@ -1042,6 +922,10 @@ CREATE INDEX iNodeNameOrig ON m_node (name_orig) INITRANS 30; ALTER TABLE m_node ADD CONSTRAINT uc_node_name UNIQUE (name_norm); +CREATE INDEX iObjectCollectionNameOrig + ON m_object_collection (name_orig) INITRANS 30; +ALTER TABLE m_object_collection + ADD CONSTRAINT uc_object_collection_name UNIQUE (name_norm); CREATE INDEX iObjectTemplateNameOrig ON m_object_template (name_orig) INITRANS 30; ALTER TABLE m_object_template @@ -1144,6 +1028,14 @@ ALTER TABLE m_assignment_policy_situation ADD CONSTRAINT fk_assignment_policy_situation FOREIGN KEY (assignment_oid, assignment_id) REFERENCES m_assignment; ALTER TABLE m_assignment_reference ADD CONSTRAINT fk_assignment_reference FOREIGN KEY (owner_owner_oid, owner_id) REFERENCES m_assignment; +ALTER TABLE m_audit_delta + ADD CONSTRAINT fk_audit_delta FOREIGN KEY (record_id) REFERENCES m_audit_event; +ALTER TABLE m_audit_item + ADD CONSTRAINT fk_audit_item FOREIGN KEY (record_id) REFERENCES m_audit_event; +ALTER TABLE m_audit_prop_value + ADD CONSTRAINT fk_audit_prop_value FOREIGN KEY (record_id) REFERENCES m_audit_event; +ALTER TABLE m_audit_ref_value + ADD CONSTRAINT fk_audit_ref_value FOREIGN KEY (record_id) REFERENCES m_audit_event; ALTER TABLE m_case_wi ADD CONSTRAINT fk_case_wi_owner FOREIGN KEY (owner_oid) REFERENCES m_case; ALTER TABLE m_case_wi_reference @@ -1228,6 +1120,8 @@ ALTER TABLE m_lookup_table_row ADD CONSTRAINT fk_lookup_table_owner FOREIGN KEY (owner_oid) REFERENCES m_lookup_table; ALTER TABLE m_node ADD CONSTRAINT fk_node FOREIGN KEY (oid) REFERENCES m_object; +ALTER TABLE m_object_collection + ADD CONSTRAINT fk_object_collection FOREIGN KEY (oid) REFERENCES m_object; ALTER TABLE m_object_template ADD CONSTRAINT fk_object_template FOREIGN KEY (oid) REFERENCES m_object; ALTER TABLE m_org @@ -1255,4 +1149,740 @@ ALTER TABLE m_user ALTER TABLE m_value_policy ADD CONSTRAINT fk_value_policy FOREIGN KEY (oid) REFERENCES m_object; +-- +-- A hint submitted by a user: Oracle DB MUST be created as "shared" and the +-- job_queue_processes parameter must be greater than 2 +-- However, these settings are pretty much standard after any +-- Oracle install, so most users need not worry about this. +-- +-- Many other users (including the primary author of Quartz) have had success +-- running in dedicated mode, so only consider the above as a hint +-- + + +-- there are two semicolons at the end of each of the following lines to work around a bug/feature of ScriptRunner we use +BEGIN +BEGIN EXECUTE IMMEDIATE 'DROP TABLE qrtz_calendars'; EXCEPTION WHEN OTHERS THEN IF SQLCODE != -942 THEN RAISE; END IF; END; +BEGIN EXECUTE IMMEDIATE 'DROP TABLE qrtz_fired_triggers'; EXCEPTION WHEN OTHERS THEN IF SQLCODE != -942 THEN RAISE; END IF; END; +BEGIN EXECUTE IMMEDIATE 'DROP TABLE qrtz_blob_triggers'; EXCEPTION WHEN OTHERS THEN IF SQLCODE != -942 THEN RAISE; END IF; END; +BEGIN EXECUTE IMMEDIATE 'DROP TABLE qrtz_cron_triggers'; EXCEPTION WHEN OTHERS THEN IF SQLCODE != -942 THEN RAISE; END IF; END; +BEGIN EXECUTE IMMEDIATE 'DROP TABLE qrtz_simple_triggers'; EXCEPTION WHEN OTHERS THEN IF SQLCODE != -942 THEN RAISE; END IF; END; +BEGIN EXECUTE IMMEDIATE 'DROP TABLE qrtz_simprop_triggers'; EXCEPTION WHEN OTHERS THEN IF SQLCODE != -942 THEN RAISE; END IF; END; +BEGIN EXECUTE IMMEDIATE 'DROP TABLE qrtz_triggers'; EXCEPTION WHEN OTHERS THEN IF SQLCODE != -942 THEN RAISE; END IF; END; +BEGIN EXECUTE IMMEDIATE 'DROP TABLE qrtz_job_details'; EXCEPTION WHEN OTHERS THEN IF SQLCODE != -942 THEN RAISE; END IF; END; +BEGIN EXECUTE IMMEDIATE 'DROP TABLE qrtz_paused_trigger_grps'; EXCEPTION WHEN OTHERS THEN IF SQLCODE != -942 THEN RAISE; END IF; END; +BEGIN EXECUTE IMMEDIATE 'DROP TABLE qrtz_locks'; EXCEPTION WHEN OTHERS THEN IF SQLCODE != -942 THEN RAISE; END IF; END; +BEGIN EXECUTE IMMEDIATE 'DROP TABLE qrtz_scheduler_state'; EXCEPTION WHEN OTHERS THEN IF SQLCODE != -942 THEN RAISE; END IF; END; +END; +/ + +CREATE TABLE qrtz_job_details + ( + SCHED_NAME VARCHAR2(120) NOT NULL, + JOB_NAME VARCHAR2(200) NOT NULL, + JOB_GROUP VARCHAR2(200) NOT NULL, + DESCRIPTION VARCHAR2(250) NULL, + JOB_CLASS_NAME VARCHAR2(250) NOT NULL, + IS_DURABLE VARCHAR2(1) NOT NULL, + IS_NONCONCURRENT VARCHAR2(1) NOT NULL, + IS_UPDATE_DATA VARCHAR2(1) NOT NULL, + REQUESTS_RECOVERY VARCHAR2(1) NOT NULL, + JOB_DATA BLOB NULL, + CONSTRAINT QRTZ_JOB_DETAILS_PK PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP) +); +CREATE TABLE qrtz_triggers + ( + SCHED_NAME VARCHAR2(120) NOT NULL, + TRIGGER_NAME VARCHAR2(200) NOT NULL, + TRIGGER_GROUP VARCHAR2(200) NOT NULL, + JOB_NAME VARCHAR2(200) NOT NULL, + JOB_GROUP VARCHAR2(200) NOT NULL, + DESCRIPTION VARCHAR2(250) NULL, + NEXT_FIRE_TIME NUMBER(13) NULL, + PREV_FIRE_TIME NUMBER(13) NULL, + PRIORITY NUMBER(13) NULL, + EXECUTION_GROUP VARCHAR2(200) NULL, + TRIGGER_STATE VARCHAR2(16) NOT NULL, + TRIGGER_TYPE VARCHAR2(8) NOT NULL, + START_TIME NUMBER(13) NOT NULL, + END_TIME NUMBER(13) NULL, + CALENDAR_NAME VARCHAR2(200) NULL, + MISFIRE_INSTR NUMBER(2) NULL, + JOB_DATA BLOB NULL, + CONSTRAINT QRTZ_TRIGGERS_PK PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + CONSTRAINT QRTZ_TRIGGER_TO_JOBS_FK FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP) + REFERENCES QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP) +); +CREATE TABLE qrtz_simple_triggers + ( + SCHED_NAME VARCHAR2(120) NOT NULL, + TRIGGER_NAME VARCHAR2(200) NOT NULL, + TRIGGER_GROUP VARCHAR2(200) NOT NULL, + REPEAT_COUNT NUMBER(7) NOT NULL, + REPEAT_INTERVAL NUMBER(12) NOT NULL, + TIMES_TRIGGERED NUMBER(10) NOT NULL, + CONSTRAINT QRTZ_SIMPLE_TRIG_PK PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + CONSTRAINT QRTZ_SIMPLE_TRIG_TO_TRIG_FK FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +); +CREATE TABLE qrtz_cron_triggers + ( + SCHED_NAME VARCHAR2(120) NOT NULL, + TRIGGER_NAME VARCHAR2(200) NOT NULL, + TRIGGER_GROUP VARCHAR2(200) NOT NULL, + CRON_EXPRESSION VARCHAR2(120) NOT NULL, + TIME_ZONE_ID VARCHAR2(80), + CONSTRAINT QRTZ_CRON_TRIG_PK PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + CONSTRAINT QRTZ_CRON_TRIG_TO_TRIG_FK FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +); +CREATE TABLE qrtz_simprop_triggers + ( + SCHED_NAME VARCHAR2(120) NOT NULL, + TRIGGER_NAME VARCHAR2(200) NOT NULL, + TRIGGER_GROUP VARCHAR2(200) NOT NULL, + STR_PROP_1 VARCHAR2(512) NULL, + STR_PROP_2 VARCHAR2(512) NULL, + STR_PROP_3 VARCHAR2(512) NULL, + INT_PROP_1 NUMBER(10) NULL, + INT_PROP_2 NUMBER(10) NULL, + LONG_PROP_1 NUMBER(13) NULL, + LONG_PROP_2 NUMBER(13) NULL, + DEC_PROP_1 NUMERIC(13,4) NULL, + DEC_PROP_2 NUMERIC(13,4) NULL, + BOOL_PROP_1 VARCHAR2(1) NULL, + BOOL_PROP_2 VARCHAR2(1) NULL, + CONSTRAINT QRTZ_SIMPROP_TRIG_PK PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + CONSTRAINT QRTZ_SIMPROP_TRIG_TO_TRIG_FK FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +); +CREATE TABLE qrtz_blob_triggers + ( + SCHED_NAME VARCHAR2(120) NOT NULL, + TRIGGER_NAME VARCHAR2(200) NOT NULL, + TRIGGER_GROUP VARCHAR2(200) NOT NULL, + BLOB_DATA BLOB NULL, + CONSTRAINT QRTZ_BLOB_TRIG_PK PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + CONSTRAINT QRTZ_BLOB_TRIG_TO_TRIG_FK FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +); +CREATE TABLE qrtz_calendars + ( + SCHED_NAME VARCHAR2(120) NOT NULL, + CALENDAR_NAME VARCHAR2(200) NOT NULL, + CALENDAR BLOB NOT NULL, + CONSTRAINT QRTZ_CALENDARS_PK PRIMARY KEY (SCHED_NAME,CALENDAR_NAME) +); +CREATE TABLE qrtz_paused_trigger_grps + ( + SCHED_NAME VARCHAR2(120) NOT NULL, + TRIGGER_GROUP VARCHAR2(200) NOT NULL, + CONSTRAINT QRTZ_PAUSED_TRIG_GRPS_PK PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP) +); +CREATE TABLE qrtz_fired_triggers + ( + SCHED_NAME VARCHAR2(120) NOT NULL, + ENTRY_ID VARCHAR2(95) NOT NULL, + TRIGGER_NAME VARCHAR2(200) NOT NULL, + TRIGGER_GROUP VARCHAR2(200) NOT NULL, + INSTANCE_NAME VARCHAR2(200) NOT NULL, + FIRED_TIME NUMBER(13) NOT NULL, + SCHED_TIME NUMBER(13) NOT NULL, + PRIORITY NUMBER(13) NOT NULL, + EXECUTION_GROUP VARCHAR2(200) NULL, + STATE VARCHAR2(16) NOT NULL, + JOB_NAME VARCHAR2(200) NULL, + JOB_GROUP VARCHAR2(200) NULL, + IS_NONCONCURRENT VARCHAR2(1) NULL, + REQUESTS_RECOVERY VARCHAR2(1) NULL, + CONSTRAINT QRTZ_FIRED_TRIGGER_PK PRIMARY KEY (SCHED_NAME,ENTRY_ID) +); +CREATE TABLE qrtz_scheduler_state + ( + SCHED_NAME VARCHAR2(120) NOT NULL, + INSTANCE_NAME VARCHAR2(200) NOT NULL, + LAST_CHECKIN_TIME NUMBER(13) NOT NULL, + CHECKIN_INTERVAL NUMBER(13) NOT NULL, + CONSTRAINT QRTZ_SCHEDULER_STATE_PK PRIMARY KEY (SCHED_NAME,INSTANCE_NAME) +); +CREATE TABLE qrtz_locks + ( + SCHED_NAME VARCHAR2(120) NOT NULL, + LOCK_NAME VARCHAR2(40) NOT NULL, + CONSTRAINT QRTZ_LOCKS_PK PRIMARY KEY (SCHED_NAME,LOCK_NAME) +); + +create index idx_qrtz_j_req_recovery on qrtz_job_details(SCHED_NAME,REQUESTS_RECOVERY); +create index idx_qrtz_j_grp on qrtz_job_details(SCHED_NAME,JOB_GROUP); + +create index idx_qrtz_t_j on qrtz_triggers(SCHED_NAME,JOB_NAME,JOB_GROUP); +create index idx_qrtz_t_jg on qrtz_triggers(SCHED_NAME,JOB_GROUP); +create index idx_qrtz_t_c on qrtz_triggers(SCHED_NAME,CALENDAR_NAME); +create index idx_qrtz_t_g on qrtz_triggers(SCHED_NAME,TRIGGER_GROUP); +create index idx_qrtz_t_state on qrtz_triggers(SCHED_NAME,TRIGGER_STATE); +create index idx_qrtz_t_n_state on qrtz_triggers(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP,TRIGGER_STATE); +create index idx_qrtz_t_n_g_state on qrtz_triggers(SCHED_NAME,TRIGGER_GROUP,TRIGGER_STATE); +create index idx_qrtz_t_next_fire_time on qrtz_triggers(SCHED_NAME,NEXT_FIRE_TIME); +create index idx_qrtz_t_nft_st on qrtz_triggers(SCHED_NAME,TRIGGER_STATE,NEXT_FIRE_TIME); +create index idx_qrtz_t_nft_misfire on qrtz_triggers(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME); +create index idx_qrtz_t_nft_st_misfire on qrtz_triggers(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_STATE); +create index idx_qrtz_t_nft_st_misfire_grp on qrtz_triggers(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_GROUP,TRIGGER_STATE); + +create index idx_qrtz_ft_trig_inst_name on qrtz_fired_triggers(SCHED_NAME,INSTANCE_NAME); +create index idx_qrtz_ft_inst_job_req_rcvry on qrtz_fired_triggers(SCHED_NAME,INSTANCE_NAME,REQUESTS_RECOVERY); +create index idx_qrtz_ft_j_g on qrtz_fired_triggers(SCHED_NAME,JOB_NAME,JOB_GROUP); +create index idx_qrtz_ft_jg on qrtz_fired_triggers(SCHED_NAME,JOB_GROUP); +create index idx_qrtz_ft_t_g on qrtz_fired_triggers(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP); +create index idx_qrtz_ft_tg on qrtz_fired_triggers(SCHED_NAME,TRIGGER_GROUP); + +create table ACT_GE_PROPERTY ( + NAME_ NVARCHAR2(64), + VALUE_ NVARCHAR2(300), + REV_ INTEGER, + primary key (NAME_) +); + +insert into ACT_GE_PROPERTY +values ('schema.version', '5.22.0.0', 1); + +insert into ACT_GE_PROPERTY +values ('schema.history', 'create(5.22.0.0)', 1); + +insert into ACT_GE_PROPERTY +values ('next.dbid', '1', 1); + +create table ACT_GE_BYTEARRAY ( + ID_ NVARCHAR2(64), + REV_ INTEGER, + NAME_ NVARCHAR2(255), + DEPLOYMENT_ID_ NVARCHAR2(64), + BYTES_ BLOB, + GENERATED_ NUMBER(1,0) CHECK (GENERATED_ IN (1,0)), + primary key (ID_) +); + +create table ACT_RE_DEPLOYMENT ( + ID_ NVARCHAR2(64), + NAME_ NVARCHAR2(255), + CATEGORY_ NVARCHAR2(255), + TENANT_ID_ NVARCHAR2(255) DEFAULT '', + DEPLOY_TIME_ TIMESTAMP(6), + primary key (ID_) +); + +create table ACT_RE_MODEL ( + ID_ NVARCHAR2(64) not null, + REV_ INTEGER, + NAME_ NVARCHAR2(255), + KEY_ NVARCHAR2(255), + CATEGORY_ NVARCHAR2(255), + CREATE_TIME_ TIMESTAMP(6), + LAST_UPDATE_TIME_ TIMESTAMP(6), + VERSION_ INTEGER, + META_INFO_ NVARCHAR2(2000), + DEPLOYMENT_ID_ NVARCHAR2(64), + EDITOR_SOURCE_VALUE_ID_ NVARCHAR2(64), + EDITOR_SOURCE_EXTRA_VALUE_ID_ NVARCHAR2(64), + TENANT_ID_ NVARCHAR2(255) DEFAULT '', + primary key (ID_) +); + +create table ACT_RU_EXECUTION ( + ID_ NVARCHAR2(64), + REV_ INTEGER, + PROC_INST_ID_ NVARCHAR2(64), + BUSINESS_KEY_ NVARCHAR2(255), + PARENT_ID_ NVARCHAR2(64), + PROC_DEF_ID_ NVARCHAR2(64), + SUPER_EXEC_ NVARCHAR2(64), + ACT_ID_ NVARCHAR2(255), + IS_ACTIVE_ NUMBER(1,0) CHECK (IS_ACTIVE_ IN (1,0)), + IS_CONCURRENT_ NUMBER(1,0) CHECK (IS_CONCURRENT_ IN (1,0)), + IS_SCOPE_ NUMBER(1,0) CHECK (IS_SCOPE_ IN (1,0)), + IS_EVENT_SCOPE_ NUMBER(1,0) CHECK (IS_EVENT_SCOPE_ IN (1,0)), + SUSPENSION_STATE_ INTEGER, + CACHED_ENT_STATE_ INTEGER, + TENANT_ID_ NVARCHAR2(255) DEFAULT '', + NAME_ NVARCHAR2(255), + LOCK_TIME_ TIMESTAMP(6), + primary key (ID_) +); + +create table ACT_RU_JOB ( + ID_ NVARCHAR2(64) NOT NULL, + REV_ INTEGER, + TYPE_ NVARCHAR2(255) NOT NULL, + LOCK_EXP_TIME_ TIMESTAMP(6), + LOCK_OWNER_ NVARCHAR2(255), + EXCLUSIVE_ NUMBER(1,0) CHECK (EXCLUSIVE_ IN (1,0)), + EXECUTION_ID_ NVARCHAR2(64), + PROCESS_INSTANCE_ID_ NVARCHAR2(64), + PROC_DEF_ID_ NVARCHAR2(64), + RETRIES_ INTEGER, + EXCEPTION_STACK_ID_ NVARCHAR2(64), + EXCEPTION_MSG_ NVARCHAR2(2000), + DUEDATE_ TIMESTAMP(6), + REPEAT_ NVARCHAR2(255), + HANDLER_TYPE_ NVARCHAR2(255), + HANDLER_CFG_ NVARCHAR2(2000), + TENANT_ID_ NVARCHAR2(255) DEFAULT '', + primary key (ID_) +); + +create table ACT_RE_PROCDEF ( + ID_ NVARCHAR2(64) NOT NULL, + REV_ INTEGER, + CATEGORY_ NVARCHAR2(255), + NAME_ NVARCHAR2(255), + KEY_ NVARCHAR2(255) NOT NULL, + VERSION_ INTEGER NOT NULL, + DEPLOYMENT_ID_ NVARCHAR2(64), + RESOURCE_NAME_ NVARCHAR2(2000), + DGRM_RESOURCE_NAME_ varchar(4000), + DESCRIPTION_ NVARCHAR2(2000), + HAS_START_FORM_KEY_ NUMBER(1,0) CHECK (HAS_START_FORM_KEY_ IN (1,0)), + HAS_GRAPHICAL_NOTATION_ NUMBER(1,0) CHECK (HAS_GRAPHICAL_NOTATION_ IN (1,0)), + SUSPENSION_STATE_ INTEGER, + TENANT_ID_ NVARCHAR2(255) DEFAULT '', + primary key (ID_) +); + +create table ACT_RU_TASK ( + ID_ NVARCHAR2(64), + REV_ INTEGER, + EXECUTION_ID_ NVARCHAR2(64), + PROC_INST_ID_ NVARCHAR2(64), + PROC_DEF_ID_ NVARCHAR2(64), + NAME_ NVARCHAR2(255), + PARENT_TASK_ID_ NVARCHAR2(64), + DESCRIPTION_ NVARCHAR2(2000), + TASK_DEF_KEY_ NVARCHAR2(255), + OWNER_ NVARCHAR2(255), + ASSIGNEE_ NVARCHAR2(255), + DELEGATION_ NVARCHAR2(64), + PRIORITY_ INTEGER, + CREATE_TIME_ TIMESTAMP(6), + DUE_DATE_ TIMESTAMP(6), + CATEGORY_ NVARCHAR2(255), + SUSPENSION_STATE_ INTEGER, + TENANT_ID_ NVARCHAR2(255) DEFAULT '', + FORM_KEY_ NVARCHAR2(255), + primary key (ID_) +); + +create table ACT_RU_IDENTITYLINK ( + ID_ NVARCHAR2(64), + REV_ INTEGER, + GROUP_ID_ NVARCHAR2(255), + TYPE_ NVARCHAR2(255), + USER_ID_ NVARCHAR2(255), + TASK_ID_ NVARCHAR2(64), + PROC_INST_ID_ NVARCHAR2(64), + PROC_DEF_ID_ NVARCHAR2(64), + primary key (ID_) +); + +create table ACT_RU_VARIABLE ( + ID_ NVARCHAR2(64) not null, + REV_ INTEGER, + TYPE_ NVARCHAR2(255) not null, + NAME_ NVARCHAR2(255) not null, + EXECUTION_ID_ NVARCHAR2(64), + PROC_INST_ID_ NVARCHAR2(64), + TASK_ID_ NVARCHAR2(64), + BYTEARRAY_ID_ NVARCHAR2(64), + DOUBLE_ NUMBER(*,10), + LONG_ NUMBER(19,0), + TEXT_ NVARCHAR2(2000), + TEXT2_ NVARCHAR2(2000), + primary key (ID_) +); + +create table ACT_RU_EVENT_SUBSCR ( + ID_ NVARCHAR2(64) not null, + REV_ integer, + EVENT_TYPE_ NVARCHAR2(255) not null, + EVENT_NAME_ NVARCHAR2(255), + EXECUTION_ID_ NVARCHAR2(64), + PROC_INST_ID_ NVARCHAR2(64), + ACTIVITY_ID_ NVARCHAR2(64), + CONFIGURATION_ NVARCHAR2(255), + CREATED_ TIMESTAMP(6) not null, + PROC_DEF_ID_ NVARCHAR2(64), + TENANT_ID_ NVARCHAR2(255) DEFAULT '', + primary key (ID_) +); + +create table ACT_EVT_LOG ( + LOG_NR_ NUMBER(19), + TYPE_ NVARCHAR2(64), + PROC_DEF_ID_ NVARCHAR2(64), + PROC_INST_ID_ NVARCHAR2(64), + EXECUTION_ID_ NVARCHAR2(64), + TASK_ID_ NVARCHAR2(64), + TIME_STAMP_ TIMESTAMP(6) not null, + USER_ID_ NVARCHAR2(255), + DATA_ BLOB, + LOCK_OWNER_ NVARCHAR2(255), + LOCK_TIME_ TIMESTAMP(6) null, + IS_PROCESSED_ NUMBER(3) default 0, + primary key (LOG_NR_) +); + +create sequence act_evt_log_seq; + +create table ACT_PROCDEF_INFO ( + ID_ NVARCHAR2(64) not null, + PROC_DEF_ID_ NVARCHAR2(64) not null, + REV_ integer, + INFO_JSON_ID_ NVARCHAR2(64), + primary key (ID_) +); + +create index ACT_IDX_EXEC_BUSKEY on ACT_RU_EXECUTION(BUSINESS_KEY_); +create index ACT_IDX_TASK_CREATE on ACT_RU_TASK(CREATE_TIME_); +create index ACT_IDX_IDENT_LNK_USER on ACT_RU_IDENTITYLINK(USER_ID_); +create index ACT_IDX_IDENT_LNK_GROUP on ACT_RU_IDENTITYLINK(GROUP_ID_); +create index ACT_IDX_EVENT_SUBSCR_CONFIG_ on ACT_RU_EVENT_SUBSCR(CONFIGURATION_); +create index ACT_IDX_VARIABLE_TASK_ID on ACT_RU_VARIABLE(TASK_ID_); + +create index ACT_IDX_BYTEAR_DEPL on ACT_GE_BYTEARRAY(DEPLOYMENT_ID_); +alter table ACT_GE_BYTEARRAY + add constraint ACT_FK_BYTEARR_DEPL + foreign key (DEPLOYMENT_ID_) + references ACT_RE_DEPLOYMENT (ID_); + +alter table ACT_RE_PROCDEF + add constraint ACT_UNIQ_PROCDEF + unique (KEY_,VERSION_, TENANT_ID_); + +create index ACT_IDX_EXE_PROCINST on ACT_RU_EXECUTION(PROC_INST_ID_); +alter table ACT_RU_EXECUTION + add constraint ACT_FK_EXE_PROCINST + foreign key (PROC_INST_ID_) + references ACT_RU_EXECUTION (ID_); + +create index ACT_IDX_EXE_PARENT on ACT_RU_EXECUTION(PARENT_ID_); +alter table ACT_RU_EXECUTION + add constraint ACT_FK_EXE_PARENT + foreign key (PARENT_ID_) + references ACT_RU_EXECUTION (ID_); + +create index ACT_IDX_EXE_SUPER on ACT_RU_EXECUTION(SUPER_EXEC_); +alter table ACT_RU_EXECUTION + add constraint ACT_FK_EXE_SUPER + foreign key (SUPER_EXEC_) + references ACT_RU_EXECUTION (ID_); + +create index ACT_IDX_EXE_PROCDEF on ACT_RU_EXECUTION(PROC_DEF_ID_); +alter table ACT_RU_EXECUTION + add constraint ACT_FK_EXE_PROCDEF + foreign key (PROC_DEF_ID_) + references ACT_RE_PROCDEF (ID_); + +create index ACT_IDX_TSKASS_TASK on ACT_RU_IDENTITYLINK(TASK_ID_); +alter table ACT_RU_IDENTITYLINK + add constraint ACT_FK_TSKASS_TASK + foreign key (TASK_ID_) + references ACT_RU_TASK (ID_); + +create index ACT_IDX_ATHRZ_PROCEDEF on ACT_RU_IDENTITYLINK(PROC_DEF_ID_); +alter table ACT_RU_IDENTITYLINK + add constraint ACT_FK_ATHRZ_PROCEDEF + foreign key (PROC_DEF_ID_) + references ACT_RE_PROCDEF (ID_); + +create index ACT_IDX_IDL_PROCINST on ACT_RU_IDENTITYLINK(PROC_INST_ID_); +alter table ACT_RU_IDENTITYLINK + add constraint ACT_FK_IDL_PROCINST + foreign key (PROC_INST_ID_) + references ACT_RU_EXECUTION (ID_); + +create index ACT_IDX_TASK_EXEC on ACT_RU_TASK(EXECUTION_ID_); +alter table ACT_RU_TASK + add constraint ACT_FK_TASK_EXE + foreign key (EXECUTION_ID_) + references ACT_RU_EXECUTION (ID_); + +create index ACT_IDX_TASK_PROCINST on ACT_RU_TASK(PROC_INST_ID_); +alter table ACT_RU_TASK + add constraint ACT_FK_TASK_PROCINST + foreign key (PROC_INST_ID_) + references ACT_RU_EXECUTION (ID_); + +create index ACT_IDX_TASK_PROCDEF on ACT_RU_TASK(PROC_DEF_ID_); +alter table ACT_RU_TASK + add constraint ACT_FK_TASK_PROCDEF + foreign key (PROC_DEF_ID_) + references ACT_RE_PROCDEF (ID_); + +create index ACT_IDX_VAR_EXE on ACT_RU_VARIABLE(EXECUTION_ID_); +alter table ACT_RU_VARIABLE + add constraint ACT_FK_VAR_EXE + foreign key (EXECUTION_ID_) + references ACT_RU_EXECUTION (ID_); + +create index ACT_IDX_VAR_PROCINST on ACT_RU_VARIABLE(PROC_INST_ID_); +alter table ACT_RU_VARIABLE + add constraint ACT_FK_VAR_PROCINST + foreign key (PROC_INST_ID_) + references ACT_RU_EXECUTION(ID_); + +create index ACT_IDX_VAR_BYTEARRAY on ACT_RU_VARIABLE(BYTEARRAY_ID_); +alter table ACT_RU_VARIABLE + add constraint ACT_FK_VAR_BYTEARRAY + foreign key (BYTEARRAY_ID_) + references ACT_GE_BYTEARRAY (ID_); + +create index ACT_IDX_JOB_EXCEPTION on ACT_RU_JOB(EXCEPTION_STACK_ID_); +alter table ACT_RU_JOB + add constraint ACT_FK_JOB_EXCEPTION + foreign key (EXCEPTION_STACK_ID_) + references ACT_GE_BYTEARRAY (ID_); + +create index ACT_IDX_EVENT_SUBSCR on ACT_RU_EVENT_SUBSCR(EXECUTION_ID_); +alter table ACT_RU_EVENT_SUBSCR + add constraint ACT_FK_EVENT_EXEC + foreign key (EXECUTION_ID_) + references ACT_RU_EXECUTION(ID_); + +create index ACT_IDX_MODEL_SOURCE on ACT_RE_MODEL(EDITOR_SOURCE_VALUE_ID_); +alter table ACT_RE_MODEL + add constraint ACT_FK_MODEL_SOURCE + foreign key (EDITOR_SOURCE_VALUE_ID_) + references ACT_GE_BYTEARRAY (ID_); + +create index ACT_IDX_MODEL_SOURCE_EXTRA on ACT_RE_MODEL(EDITOR_SOURCE_EXTRA_VALUE_ID_); +alter table ACT_RE_MODEL + add constraint ACT_FK_MODEL_SOURCE_EXTRA + foreign key (EDITOR_SOURCE_EXTRA_VALUE_ID_) + references ACT_GE_BYTEARRAY (ID_); + +create index ACT_IDX_MODEL_DEPLOYMENT on ACT_RE_MODEL(DEPLOYMENT_ID_); +alter table ACT_RE_MODEL + add constraint ACT_FK_MODEL_DEPLOYMENT + foreign key (DEPLOYMENT_ID_) + references ACT_RE_DEPLOYMENT (ID_); + +create index ACT_IDX_PROCDEF_INFO_JSON on ACT_PROCDEF_INFO(INFO_JSON_ID_); +alter table ACT_PROCDEF_INFO + add constraint ACT_FK_INFO_JSON_BA + foreign key (INFO_JSON_ID_) + references ACT_GE_BYTEARRAY (ID_); + +create index ACT_IDX_PROCDEF_INFO_PROC on ACT_PROCDEF_INFO(PROC_DEF_ID_); +alter table ACT_PROCDEF_INFO + add constraint ACT_FK_INFO_PROCDEF + foreign key (PROC_DEF_ID_) + references ACT_RE_PROCDEF (ID_); + +alter table ACT_PROCDEF_INFO + add constraint ACT_UNIQ_INFO_PROCDEF + unique (PROC_DEF_ID_); + +create table ACT_HI_PROCINST ( + ID_ NVARCHAR2(64) not null, + PROC_INST_ID_ NVARCHAR2(64) not null, + BUSINESS_KEY_ NVARCHAR2(255), + PROC_DEF_ID_ NVARCHAR2(64) not null, + START_TIME_ TIMESTAMP(6) not null, + END_TIME_ TIMESTAMP(6), + DURATION_ NUMBER(19,0), + START_USER_ID_ NVARCHAR2(255), + START_ACT_ID_ NVARCHAR2(255), + END_ACT_ID_ NVARCHAR2(255), + SUPER_PROCESS_INSTANCE_ID_ NVARCHAR2(64), + DELETE_REASON_ NVARCHAR2(2000), + TENANT_ID_ NVARCHAR2(255) default '', + NAME_ NVARCHAR2(255), + primary key (ID_), + unique (PROC_INST_ID_) +); + +create table ACT_HI_ACTINST ( + ID_ NVARCHAR2(64) not null, + PROC_DEF_ID_ NVARCHAR2(64) not null, + PROC_INST_ID_ NVARCHAR2(64) not null, + EXECUTION_ID_ NVARCHAR2(64) not null, + ACT_ID_ NVARCHAR2(255) not null, + TASK_ID_ NVARCHAR2(64), + CALL_PROC_INST_ID_ NVARCHAR2(64), + ACT_NAME_ NVARCHAR2(255), + ACT_TYPE_ NVARCHAR2(255) not null, + ASSIGNEE_ NVARCHAR2(255), + START_TIME_ TIMESTAMP(6) not null, + END_TIME_ TIMESTAMP(6), + DURATION_ NUMBER(19,0), + TENANT_ID_ NVARCHAR2(255) default '', + primary key (ID_) +); + +create table ACT_HI_TASKINST ( + ID_ NVARCHAR2(64) not null, + PROC_DEF_ID_ NVARCHAR2(64), + TASK_DEF_KEY_ NVARCHAR2(255), + PROC_INST_ID_ NVARCHAR2(64), + EXECUTION_ID_ NVARCHAR2(64), + PARENT_TASK_ID_ NVARCHAR2(64), + NAME_ NVARCHAR2(255), + DESCRIPTION_ NVARCHAR2(2000), + OWNER_ NVARCHAR2(255), + ASSIGNEE_ NVARCHAR2(255), + START_TIME_ TIMESTAMP(6) not null, + CLAIM_TIME_ TIMESTAMP(6), + END_TIME_ TIMESTAMP(6), + DURATION_ NUMBER(19,0), + DELETE_REASON_ NVARCHAR2(2000), + PRIORITY_ INTEGER, + DUE_DATE_ TIMESTAMP(6), + FORM_KEY_ NVARCHAR2(255), + CATEGORY_ NVARCHAR2(255), + TENANT_ID_ NVARCHAR2(255) default '', + primary key (ID_) +); + +create table ACT_HI_VARINST ( + ID_ NVARCHAR2(64) not null, + PROC_INST_ID_ NVARCHAR2(64), + EXECUTION_ID_ NVARCHAR2(64), + TASK_ID_ NVARCHAR2(64), + NAME_ NVARCHAR2(255) not null, + VAR_TYPE_ NVARCHAR2(100), + REV_ INTEGER, + BYTEARRAY_ID_ NVARCHAR2(64), + DOUBLE_ NUMBER(*,10), + LONG_ NUMBER(19,0), + TEXT_ NVARCHAR2(2000), + TEXT2_ NVARCHAR2(2000), + CREATE_TIME_ TIMESTAMP(6), + LAST_UPDATED_TIME_ TIMESTAMP(6), + primary key (ID_) +); + +create table ACT_HI_DETAIL ( + ID_ NVARCHAR2(64) not null, + TYPE_ NVARCHAR2(255) not null, + PROC_INST_ID_ NVARCHAR2(64), + EXECUTION_ID_ NVARCHAR2(64), + TASK_ID_ NVARCHAR2(64), + ACT_INST_ID_ NVARCHAR2(64), + NAME_ NVARCHAR2(255) not null, + VAR_TYPE_ NVARCHAR2(64), + REV_ INTEGER, + TIME_ TIMESTAMP(6) not null, + BYTEARRAY_ID_ NVARCHAR2(64), + DOUBLE_ NUMBER(*,10), + LONG_ NUMBER(19,0), + TEXT_ NVARCHAR2(2000), + TEXT2_ NVARCHAR2(2000), + primary key (ID_) +); + +create table ACT_HI_COMMENT ( + ID_ NVARCHAR2(64) not null, + TYPE_ NVARCHAR2(255), + TIME_ TIMESTAMP(6) not null, + USER_ID_ NVARCHAR2(255), + TASK_ID_ NVARCHAR2(64), + PROC_INST_ID_ NVARCHAR2(64), + ACTION_ NVARCHAR2(255), + MESSAGE_ NVARCHAR2(2000), + FULL_MSG_ BLOB, + primary key (ID_) +); + +create table ACT_HI_ATTACHMENT ( + ID_ NVARCHAR2(64) not null, + REV_ INTEGER, + USER_ID_ NVARCHAR2(255), + NAME_ NVARCHAR2(255), + DESCRIPTION_ NVARCHAR2(2000), + TYPE_ NVARCHAR2(255), + TASK_ID_ NVARCHAR2(64), + PROC_INST_ID_ NVARCHAR2(64), + URL_ NVARCHAR2(2000), + CONTENT_ID_ NVARCHAR2(64), + TIME_ TIMESTAMP(6), + primary key (ID_) +); + +create table ACT_HI_IDENTITYLINK ( + ID_ NVARCHAR2(64), + GROUP_ID_ NVARCHAR2(255), + TYPE_ NVARCHAR2(255), + USER_ID_ NVARCHAR2(255), + TASK_ID_ NVARCHAR2(64), + PROC_INST_ID_ NVARCHAR2(64), + primary key (ID_) +); + +create index ACT_IDX_HI_PRO_INST_END on ACT_HI_PROCINST(END_TIME_); +create index ACT_IDX_HI_PRO_I_BUSKEY on ACT_HI_PROCINST(BUSINESS_KEY_); +create index ACT_IDX_HI_ACT_INST_START on ACT_HI_ACTINST(START_TIME_); +create index ACT_IDX_HI_ACT_INST_END on ACT_HI_ACTINST(END_TIME_); +create index ACT_IDX_HI_DETAIL_PROC_INST on ACT_HI_DETAIL(PROC_INST_ID_); +create index ACT_IDX_HI_DETAIL_ACT_INST on ACT_HI_DETAIL(ACT_INST_ID_); +create index ACT_IDX_HI_DETAIL_TIME on ACT_HI_DETAIL(TIME_); +create index ACT_IDX_HI_DETAIL_NAME on ACT_HI_DETAIL(NAME_); +create index ACT_IDX_HI_DETAIL_TASK_ID on ACT_HI_DETAIL(TASK_ID_); +create index ACT_IDX_HI_PROCVAR_PROC_INST on ACT_HI_VARINST(PROC_INST_ID_); +create index ACT_IDX_HI_PROCVAR_NAME_TYPE on ACT_HI_VARINST(NAME_, VAR_TYPE_); +create index ACT_IDX_HI_PROCVAR_TASK_ID on ACT_HI_VARINST(TASK_ID_); +create index ACT_IDX_HI_IDENT_LNK_USER on ACT_HI_IDENTITYLINK(USER_ID_); +create index ACT_IDX_HI_IDENT_LNK_TASK on ACT_HI_IDENTITYLINK(TASK_ID_); +create index ACT_IDX_HI_IDENT_LNK_PROCINST on ACT_HI_IDENTITYLINK(PROC_INST_ID_); + +create index ACT_IDX_HI_ACT_INST_PROCINST on ACT_HI_ACTINST(PROC_INST_ID_, ACT_ID_); +create index ACT_IDX_HI_ACT_INST_EXEC on ACT_HI_ACTINST(EXECUTION_ID_, ACT_ID_); +create index ACT_IDX_HI_TASK_INST_PROCINST on ACT_HI_TASKINST(PROC_INST_ID_); + +create table ACT_ID_GROUP ( + ID_ NVARCHAR2(64), + REV_ INTEGER, + NAME_ NVARCHAR2(255), + TYPE_ NVARCHAR2(255), + primary key (ID_) +); + +create table ACT_ID_MEMBERSHIP ( + USER_ID_ NVARCHAR2(64), + GROUP_ID_ NVARCHAR2(64), + primary key (USER_ID_, GROUP_ID_) +); + +create table ACT_ID_USER ( + ID_ NVARCHAR2(64), + REV_ INTEGER, + FIRST_ NVARCHAR2(255), + LAST_ NVARCHAR2(255), + EMAIL_ NVARCHAR2(255), + PWD_ NVARCHAR2(255), + PICTURE_ID_ NVARCHAR2(64), + primary key (ID_) +); + +create table ACT_ID_INFO ( + ID_ NVARCHAR2(64), + REV_ INTEGER, + USER_ID_ NVARCHAR2(64), + TYPE_ NVARCHAR2(64), + KEY_ NVARCHAR2(255), + VALUE_ NVARCHAR2(255), + PASSWORD_ BLOB, + PARENT_ID_ NVARCHAR2(255), + primary key (ID_) +); + +create index ACT_IDX_MEMB_GROUP on ACT_ID_MEMBERSHIP(GROUP_ID_); +alter table ACT_ID_MEMBERSHIP + add constraint ACT_FK_MEMB_GROUP + foreign key (GROUP_ID_) + references ACT_ID_GROUP (ID_); + +create index ACT_IDX_MEMB_USER on ACT_ID_MEMBERSHIP(USER_ID_); +alter table ACT_ID_MEMBERSHIP + add constraint ACT_FK_MEMB_USER + foreign key (USER_ID_) + references ACT_ID_USER (ID_); + commit; diff --git a/config/sql/_all/oracle-upgrade-3.8-3.9.sql b/config/sql/_all/oracle-upgrade-3.8-3.9.sql new file mode 100644 index 00000000000..dba2d5eeaaa --- /dev/null +++ b/config/sql/_all/oracle-upgrade-3.8-3.9.sql @@ -0,0 +1,14 @@ +CREATE TABLE m_object_collection ( + name_norm VARCHAR2(255 CHAR), + name_orig VARCHAR2(255 CHAR), + oid VARCHAR2(36 CHAR) NOT NULL, + PRIMARY KEY (oid) +) INITRANS 30; + +CREATE INDEX iObjectCollectionNameOrig + ON m_object_collection (name_orig) INITRANS 30; +ALTER TABLE m_object_collection + ADD CONSTRAINT uc_object_collection_name UNIQUE (name_norm); + +ALTER TABLE m_object_collection + ADD CONSTRAINT fk_object_collection FOREIGN KEY (oid) REFERENCES m_object; diff --git a/config/sql/_all/postgresql-upgrade-3.7-3.8.sql b/config/sql/_all/postgresql-3.9-all.sql similarity index 60% rename from config/sql/_all/postgresql-upgrade-3.7-3.8.sql rename to config/sql/_all/postgresql-3.9-all.sql index b97caa3df4a..04a045158bd 100644 --- a/config/sql/_all/postgresql-upgrade-3.7-3.8.sql +++ b/config/sql/_all/postgresql-3.9-all.sql @@ -1,103 +1,3 @@ -DROP TABLE m_acc_cert_definition; -DROP TABLE m_acc_cert_wi_reference; -DROP TABLE m_acc_cert_wi; -DROP TABLE m_acc_cert_case; -DROP TABLE m_acc_cert_campaign; -DROP TABLE m_assignment_ext_boolean; -DROP TABLE m_assignment_ext_date; -DROP TABLE m_assignment_ext_long; -DROP TABLE m_assignment_ext_poly; -DROP TABLE m_assignment_ext_reference; -DROP TABLE m_assignment_ext_string; -DROP TABLE m_assignment_extension; -DROP TABLE m_assignment_policy_situation; -DROP TABLE m_assignment_reference; -DROP TABLE m_assignment; --- Don't touch audit tables --- DROP TABLE m_audit_delta; --- DROP TABLE m_audit_item; --- DROP TABLE m_audit_prop_value; --- DROP TABLE m_audit_ref_value; --- DROP TABLE m_audit_event; -DROP TABLE m_case; -DROP TABLE m_connector_host; -DROP TABLE m_connector_target_system; -DROP TABLE m_connector; -DROP TABLE m_exclusion; -DROP TABLE m_focus_photo; -DROP TABLE m_focus_policy_situation; -DROP TABLE m_form; -DROP TABLE m_function_library; -DROP TABLE m_generic_object; -DROP TABLE m_lookup_table_row; -DROP TABLE m_lookup_table; -DROP TABLE m_node; -DROP TABLE m_object_ext_boolean; -DROP TABLE m_object_ext_date; -DROP TABLE m_object_ext_long; -DROP TABLE m_object_ext_poly; -DROP TABLE m_object_ext_reference; -DROP TABLE m_object_ext_string; -DROP TABLE m_object_template; -DROP TABLE m_object_text_info; -DROP TABLE m_operation_execution; -DROP TABLE m_org_closure; -DROP TABLE m_org_org_type; -DROP TABLE m_org; -DROP TABLE m_reference; -DROP TABLE m_report; -DROP TABLE m_report_output; -DROP TABLE m_resource; -DROP TABLE m_role; -DROP TABLE m_security_policy; -DROP TABLE m_sequence; -DROP TABLE m_service_type; -DROP TABLE m_service; -DROP TABLE m_abstract_role; -DROP TABLE m_shadow; -DROP TABLE m_system_configuration; -DROP TABLE m_task_dependent; -DROP TABLE m_task; -DROP TABLE m_trigger; -DROP TABLE m_user_employee_type; -DROP TABLE m_user_organization; -DROP TABLE m_user_organizational_unit; -DROP TABLE m_value_policy; -DROP TABLE m_user; -DROP TABLE m_focus; -DROP TABLE m_object; - -DROP SEQUENCE hibernate_sequence; - -CREATE SEQUENCE m_audit_event_id_seq; -ALTER TABLE m_audit_event ALTER COLUMN id SET NOT NULL; -ALTER TABLE m_audit_event ALTER COLUMN id SET DEFAULT nextval('m_audit_event_id_seq'); -ALTER SEQUENCE m_audit_event_id_seq OWNED BY m_audit_event.id; - -CREATE SEQUENCE m_audit_prop_value_id_seq; -ALTER TABLE m_audit_prop_value ALTER COLUMN id SET NOT NULL; -ALTER TABLE m_audit_prop_value ALTER COLUMN id SET DEFAULT nextval('m_audit_prop_value_id_seq'); -ALTER SEQUENCE m_audit_prop_value_id_seq OWNED BY m_audit_prop_value.id; - -CREATE SEQUENCE m_audit_ref_value_id_seq; -ALTER TABLE m_audit_ref_value ALTER COLUMN id SET NOT NULL; -ALTER TABLE m_audit_ref_value ALTER COLUMN id SET DEFAULT nextval('m_audit_ref_value_id_seq'); -ALTER SEQUENCE m_audit_ref_value_id_seq OWNED BY m_audit_ref_value.id; - -SELECT setval('m_audit_event_id_seq', (SELECT max(id) + 1 FROM m_audit_event), FALSE); -SELECT setval('m_audit_prop_value_id_seq', (SELECT max(id) + 1 FROM m_audit_prop_value), FALSE); -SELECT setval('m_audit_ref_value_id_seq', (SELECT max(id) + 1 FROM m_audit_ref_value), FALSE); - -ALTER TABLE m_audit_delta - ALTER COLUMN delta TYPE BYTEA USING decode(replace(replace(delta, '\', E'\\134'), '''', E'\\047'), 'escape'), - ALTER COLUMN fullResult TYPE BYTEA USING decode(replace(replace(fullResult, '\', E'\\134'), '''', E'\\047'),'escape'); - -ALTER TABLE m_audit_event - ADD COLUMN targetOwnerType INT4; - -ALTER TABLE m_audit_item - ALTER COLUMN changedItemPath TYPE VARCHAR(255); - CREATE TABLE m_acc_cert_campaign ( definitionRef_relation VARCHAR(157), definitionRef_targetOid VARCHAR(36), @@ -295,6 +195,73 @@ CREATE TABLE m_assignment_reference ( targetType INT4, PRIMARY KEY (owner_owner_oid, owner_id, reference_type, relation, targetOid) ); +CREATE TABLE m_audit_delta ( + checksum VARCHAR(32) NOT NULL, + record_id INT8 NOT NULL, + delta BYTEA, + deltaOid VARCHAR(36), + deltaType INT4, + fullResult BYTEA, + objectName_norm VARCHAR(255), + objectName_orig VARCHAR(255), + resourceName_norm VARCHAR(255), + resourceName_orig VARCHAR(255), + resourceOid VARCHAR(36), + status INT4, + PRIMARY KEY (record_id, checksum) +); +CREATE TABLE m_audit_event ( + id BIGSERIAL NOT NULL, + attorneyName VARCHAR(255), + attorneyOid VARCHAR(36), + channel VARCHAR(255), + eventIdentifier VARCHAR(255), + eventStage INT4, + eventType INT4, + hostIdentifier VARCHAR(255), + initiatorName VARCHAR(255), + initiatorOid VARCHAR(36), + initiatorType INT4, + message VARCHAR(1024), + nodeIdentifier VARCHAR(255), + outcome INT4, + parameter VARCHAR(255), + remoteHostAddress VARCHAR(255), + result VARCHAR(255), + sessionIdentifier VARCHAR(255), + targetName VARCHAR(255), + targetOid VARCHAR(36), + targetOwnerName VARCHAR(255), + targetOwnerOid VARCHAR(36), + targetOwnerType INT4, + targetType INT4, + taskIdentifier VARCHAR(255), + taskOID VARCHAR(255), + timestampValue TIMESTAMP, + PRIMARY KEY (id) +); +CREATE TABLE m_audit_item ( + changedItemPath VARCHAR(255) NOT NULL, + record_id INT8 NOT NULL, + PRIMARY KEY (record_id, changedItemPath) +); +CREATE TABLE m_audit_prop_value ( + id BIGSERIAL NOT NULL, + name VARCHAR(255), + record_id INT8, + value VARCHAR(1024), + PRIMARY KEY (id) +); +CREATE TABLE m_audit_ref_value ( + id BIGSERIAL NOT NULL, + name VARCHAR(255), + oid VARCHAR(36), + record_id INT8, + targetName_norm VARCHAR(255), + targetName_orig VARCHAR(255), + type VARCHAR(255), + PRIMARY KEY (id) +); CREATE TABLE m_case_wi ( id INT4 NOT NULL, owner_oid VARCHAR(36) NOT NULL, @@ -645,6 +612,12 @@ CREATE TABLE m_node ( oid VARCHAR(36) NOT NULL, PRIMARY KEY (oid) ); +CREATE TABLE m_object_collection ( + name_norm VARCHAR(255), + name_orig VARCHAR(255), + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +); CREATE TABLE m_object_template ( name_norm VARCHAR(255), name_orig VARCHAR(255), @@ -808,8 +781,16 @@ CREATE INDEX iAssignmentReferenceTargetOid ON m_assignment_reference (targetOid); CREATE INDEX iAuditDeltaRecordId ON m_audit_delta (record_id); +CREATE INDEX iTimestampValue + ON m_audit_event (timestampValue); +CREATE INDEX iChangedItemPath + ON m_audit_item (changedItemPath); CREATE INDEX iAuditItemRecordId ON m_audit_item (record_id); +CREATE INDEX iAuditPropValRecordId + ON m_audit_prop_value (record_id); +CREATE INDEX iAuditRefValRecordId + ON m_audit_ref_value (record_id); CREATE INDEX iCaseWorkItemRefTargetOid ON m_case_wi_reference (targetOid); @@ -941,6 +922,10 @@ CREATE INDEX iNodeNameOrig ON m_node (name_orig); ALTER TABLE IF EXISTS m_node ADD CONSTRAINT uc_node_name UNIQUE (name_norm); +CREATE INDEX iObjectCollectionNameOrig + ON m_object_collection (name_orig); +ALTER TABLE IF EXISTS m_object_collection + ADD CONSTRAINT uc_object_collection_name UNIQUE (name_norm); CREATE INDEX iObjectTemplateNameOrig ON m_object_template (name_orig); ALTER TABLE IF EXISTS m_object_template @@ -1043,6 +1028,14 @@ ALTER TABLE IF EXISTS m_assignment_policy_situation ADD CONSTRAINT fk_assignment_policy_situation FOREIGN KEY (assignment_oid, assignment_id) REFERENCES m_assignment; ALTER TABLE IF EXISTS m_assignment_reference ADD CONSTRAINT fk_assignment_reference FOREIGN KEY (owner_owner_oid, owner_id) REFERENCES m_assignment; +ALTER TABLE IF EXISTS m_audit_delta + ADD CONSTRAINT fk_audit_delta FOREIGN KEY (record_id) REFERENCES m_audit_event; +ALTER TABLE IF EXISTS m_audit_item + ADD CONSTRAINT fk_audit_item FOREIGN KEY (record_id) REFERENCES m_audit_event; +ALTER TABLE IF EXISTS m_audit_prop_value + ADD CONSTRAINT fk_audit_prop_value FOREIGN KEY (record_id) REFERENCES m_audit_event; +ALTER TABLE IF EXISTS m_audit_ref_value + ADD CONSTRAINT fk_audit_ref_value FOREIGN KEY (record_id) REFERENCES m_audit_event; ALTER TABLE IF EXISTS m_case_wi ADD CONSTRAINT fk_case_wi_owner FOREIGN KEY (owner_oid) REFERENCES m_case; ALTER TABLE IF EXISTS m_case_wi_reference @@ -1127,6 +1120,8 @@ ALTER TABLE IF EXISTS m_lookup_table_row ADD CONSTRAINT fk_lookup_table_owner FOREIGN KEY (owner_oid) REFERENCES m_lookup_table; ALTER TABLE IF EXISTS m_node ADD CONSTRAINT fk_node FOREIGN KEY (oid) REFERENCES m_object; +ALTER TABLE IF EXISTS m_object_collection + ADD CONSTRAINT fk_object_collection FOREIGN KEY (oid) REFERENCES m_object; ALTER TABLE IF EXISTS m_object_template ADD CONSTRAINT fk_object_template FOREIGN KEY (oid) REFERENCES m_object; ALTER TABLE IF EXISTS m_org @@ -1153,3 +1148,739 @@ ALTER TABLE IF EXISTS m_user ADD CONSTRAINT fk_user FOREIGN KEY (oid) REFERENCES m_focus; ALTER TABLE IF EXISTS m_value_policy ADD CONSTRAINT fk_value_policy FOREIGN KEY (oid) REFERENCES m_object; + +-- Thanks to Patrick Lightbody for submitting this... +-- +-- In your Quartz properties file, you'll need to set +-- org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.PostgreSQLDelegate + +drop table if exists qrtz_fired_triggers; +DROP TABLE if exists QRTZ_PAUSED_TRIGGER_GRPS; +DROP TABLE if exists QRTZ_SCHEDULER_STATE; +DROP TABLE if exists QRTZ_LOCKS; +drop table if exists qrtz_simple_triggers; +drop table if exists qrtz_cron_triggers; +drop table if exists qrtz_simprop_triggers; +DROP TABLE if exists QRTZ_BLOB_TRIGGERS; +drop table if exists qrtz_triggers; +drop table if exists qrtz_job_details; +drop table if exists qrtz_calendars; + +CREATE TABLE qrtz_job_details + ( + SCHED_NAME VARCHAR(120) NOT NULL, + JOB_NAME VARCHAR(200) NOT NULL, + JOB_GROUP VARCHAR(200) NOT NULL, + DESCRIPTION VARCHAR(250) NULL, + JOB_CLASS_NAME VARCHAR(250) NOT NULL, + IS_DURABLE BOOL NOT NULL, + IS_NONCONCURRENT BOOL NOT NULL, + IS_UPDATE_DATA BOOL NOT NULL, + REQUESTS_RECOVERY BOOL NOT NULL, + JOB_DATA BYTEA NULL, + PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP) +); + +CREATE TABLE qrtz_triggers + ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + JOB_NAME VARCHAR(200) NOT NULL, + JOB_GROUP VARCHAR(200) NOT NULL, + DESCRIPTION VARCHAR(250) NULL, + NEXT_FIRE_TIME BIGINT NULL, + PREV_FIRE_TIME BIGINT NULL, + PRIORITY INTEGER NULL, + EXECUTION_GROUP VARCHAR(200) NULL, + TRIGGER_STATE VARCHAR(16) NOT NULL, + TRIGGER_TYPE VARCHAR(8) NOT NULL, + START_TIME BIGINT NOT NULL, + END_TIME BIGINT NULL, + CALENDAR_NAME VARCHAR(200) NULL, + MISFIRE_INSTR SMALLINT NULL, + JOB_DATA BYTEA NULL, + PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP) + REFERENCES QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP) +); + +CREATE TABLE qrtz_simple_triggers + ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + REPEAT_COUNT BIGINT NOT NULL, + REPEAT_INTERVAL BIGINT NOT NULL, + TIMES_TRIGGERED BIGINT NOT NULL, + PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +); + +CREATE TABLE qrtz_cron_triggers + ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + CRON_EXPRESSION VARCHAR(120) NOT NULL, + TIME_ZONE_ID VARCHAR(80), + PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +); + +CREATE TABLE qrtz_simprop_triggers + ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + STR_PROP_1 VARCHAR(512) NULL, + STR_PROP_2 VARCHAR(512) NULL, + STR_PROP_3 VARCHAR(512) NULL, + INT_PROP_1 INT NULL, + INT_PROP_2 INT NULL, + LONG_PROP_1 BIGINT NULL, + LONG_PROP_2 BIGINT NULL, + DEC_PROP_1 NUMERIC(13,4) NULL, + DEC_PROP_2 NUMERIC(13,4) NULL, + BOOL_PROP_1 BOOL NULL, + BOOL_PROP_2 BOOL NULL, + PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +); + +CREATE TABLE qrtz_blob_triggers + ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + BLOB_DATA BYTEA NULL, + PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +); + +CREATE TABLE qrtz_calendars + ( + SCHED_NAME VARCHAR(120) NOT NULL, + CALENDAR_NAME VARCHAR(200) NOT NULL, + CALENDAR BYTEA NOT NULL, + PRIMARY KEY (SCHED_NAME,CALENDAR_NAME) +); + + +CREATE TABLE qrtz_paused_trigger_grps + ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP) +); + +CREATE TABLE qrtz_fired_triggers + ( + SCHED_NAME VARCHAR(120) NOT NULL, + ENTRY_ID VARCHAR(95) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + INSTANCE_NAME VARCHAR(200) NOT NULL, + FIRED_TIME BIGINT NOT NULL, + SCHED_TIME BIGINT NOT NULL, + PRIORITY INTEGER NOT NULL, + EXECUTION_GROUP VARCHAR(200) NULL, + STATE VARCHAR(16) NOT NULL, + JOB_NAME VARCHAR(200) NULL, + JOB_GROUP VARCHAR(200) NULL, + IS_NONCONCURRENT BOOL NULL, + REQUESTS_RECOVERY BOOL NULL, + PRIMARY KEY (SCHED_NAME,ENTRY_ID) +); + +CREATE TABLE qrtz_scheduler_state + ( + SCHED_NAME VARCHAR(120) NOT NULL, + INSTANCE_NAME VARCHAR(200) NOT NULL, + LAST_CHECKIN_TIME BIGINT NOT NULL, + CHECKIN_INTERVAL BIGINT NOT NULL, + PRIMARY KEY (SCHED_NAME,INSTANCE_NAME) +); + +CREATE TABLE qrtz_locks + ( + SCHED_NAME VARCHAR(120) NOT NULL, + LOCK_NAME VARCHAR(40) NOT NULL, + PRIMARY KEY (SCHED_NAME,LOCK_NAME) +); + +create index idx_qrtz_j_req_recovery on qrtz_job_details(SCHED_NAME,REQUESTS_RECOVERY); +create index idx_qrtz_j_grp on qrtz_job_details(SCHED_NAME,JOB_GROUP); + +create index idx_qrtz_t_j on qrtz_triggers(SCHED_NAME,JOB_NAME,JOB_GROUP); +create index idx_qrtz_t_jg on qrtz_triggers(SCHED_NAME,JOB_GROUP); +create index idx_qrtz_t_c on qrtz_triggers(SCHED_NAME,CALENDAR_NAME); +create index idx_qrtz_t_g on qrtz_triggers(SCHED_NAME,TRIGGER_GROUP); +create index idx_qrtz_t_state on qrtz_triggers(SCHED_NAME,TRIGGER_STATE); +create index idx_qrtz_t_n_state on qrtz_triggers(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP,TRIGGER_STATE); +create index idx_qrtz_t_n_g_state on qrtz_triggers(SCHED_NAME,TRIGGER_GROUP,TRIGGER_STATE); +create index idx_qrtz_t_next_fire_time on qrtz_triggers(SCHED_NAME,NEXT_FIRE_TIME); +create index idx_qrtz_t_nft_st on qrtz_triggers(SCHED_NAME,TRIGGER_STATE,NEXT_FIRE_TIME); +create index idx_qrtz_t_nft_misfire on qrtz_triggers(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME); +create index idx_qrtz_t_nft_st_misfire on qrtz_triggers(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_STATE); +create index idx_qrtz_t_nft_st_misfire_grp on qrtz_triggers(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_GROUP,TRIGGER_STATE); + +create index idx_qrtz_ft_trig_inst_name on qrtz_fired_triggers(SCHED_NAME,INSTANCE_NAME); +create index idx_qrtz_ft_inst_job_req_rcvry on qrtz_fired_triggers(SCHED_NAME,INSTANCE_NAME,REQUESTS_RECOVERY); +create index idx_qrtz_ft_j_g on qrtz_fired_triggers(SCHED_NAME,JOB_NAME,JOB_GROUP); +create index idx_qrtz_ft_jg on qrtz_fired_triggers(SCHED_NAME,JOB_GROUP); +create index idx_qrtz_ft_t_g on qrtz_fired_triggers(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP); +create index idx_qrtz_ft_tg on qrtz_fired_triggers(SCHED_NAME,TRIGGER_GROUP); + +create table ACT_GE_PROPERTY ( + NAME_ varchar(64), + VALUE_ varchar(300), + REV_ integer, + primary key (NAME_) +); + +insert into ACT_GE_PROPERTY +values ('schema.version', '5.22.0.0', 1); + +insert into ACT_GE_PROPERTY +values ('schema.history', 'create(5.22.0.0)', 1); + +insert into ACT_GE_PROPERTY +values ('next.dbid', '1', 1); + +create table ACT_GE_BYTEARRAY ( + ID_ varchar(64), + REV_ integer, + NAME_ varchar(255), + DEPLOYMENT_ID_ varchar(64), + BYTES_ bytea, + GENERATED_ boolean, + primary key (ID_) +); + +create table ACT_RE_DEPLOYMENT ( + ID_ varchar(64), + NAME_ varchar(255), + CATEGORY_ varchar(255), + TENANT_ID_ varchar(255) default '', + DEPLOY_TIME_ timestamp, + primary key (ID_) +); + +create table ACT_RE_MODEL ( + ID_ varchar(64) not null, + REV_ integer, + NAME_ varchar(255), + KEY_ varchar(255), + CATEGORY_ varchar(255), + CREATE_TIME_ timestamp, + LAST_UPDATE_TIME_ timestamp, + VERSION_ integer, + META_INFO_ varchar(4000), + DEPLOYMENT_ID_ varchar(64), + EDITOR_SOURCE_VALUE_ID_ varchar(64), + EDITOR_SOURCE_EXTRA_VALUE_ID_ varchar(64), + TENANT_ID_ varchar(255) default '', + primary key (ID_) +); + +create table ACT_RU_EXECUTION ( + ID_ varchar(64), + REV_ integer, + PROC_INST_ID_ varchar(64), + BUSINESS_KEY_ varchar(255), + PARENT_ID_ varchar(64), + PROC_DEF_ID_ varchar(64), + SUPER_EXEC_ varchar(64), + ACT_ID_ varchar(255), + IS_ACTIVE_ boolean, + IS_CONCURRENT_ boolean, + IS_SCOPE_ boolean, + IS_EVENT_SCOPE_ boolean, + SUSPENSION_STATE_ integer, + CACHED_ENT_STATE_ integer, + TENANT_ID_ varchar(255) default '', + NAME_ varchar(255), + LOCK_TIME_ timestamp, + primary key (ID_) +); + +create table ACT_RU_JOB ( + ID_ varchar(64) NOT NULL, + REV_ integer, + TYPE_ varchar(255) NOT NULL, + LOCK_EXP_TIME_ timestamp, + LOCK_OWNER_ varchar(255), + EXCLUSIVE_ boolean, + EXECUTION_ID_ varchar(64), + PROCESS_INSTANCE_ID_ varchar(64), + PROC_DEF_ID_ varchar(64), + RETRIES_ integer, + EXCEPTION_STACK_ID_ varchar(64), + EXCEPTION_MSG_ varchar(4000), + DUEDATE_ timestamp, + REPEAT_ varchar(255), + HANDLER_TYPE_ varchar(255), + HANDLER_CFG_ varchar(4000), + TENANT_ID_ varchar(255) default '', + primary key (ID_) +); + +create table ACT_RE_PROCDEF ( + ID_ varchar(64) NOT NULL, + REV_ integer, + CATEGORY_ varchar(255), + NAME_ varchar(255), + KEY_ varchar(255) NOT NULL, + VERSION_ integer NOT NULL, + DEPLOYMENT_ID_ varchar(64), + RESOURCE_NAME_ varchar(4000), + DGRM_RESOURCE_NAME_ varchar(4000), + DESCRIPTION_ varchar(4000), + HAS_START_FORM_KEY_ boolean, + HAS_GRAPHICAL_NOTATION_ boolean, + SUSPENSION_STATE_ integer, + TENANT_ID_ varchar(255) default '', + primary key (ID_) +); + +create table ACT_RU_TASK ( + ID_ varchar(64), + REV_ integer, + EXECUTION_ID_ varchar(64), + PROC_INST_ID_ varchar(64), + PROC_DEF_ID_ varchar(64), + NAME_ varchar(255), + PARENT_TASK_ID_ varchar(64), + DESCRIPTION_ varchar(4000), + TASK_DEF_KEY_ varchar(255), + OWNER_ varchar(255), + ASSIGNEE_ varchar(255), + DELEGATION_ varchar(64), + PRIORITY_ integer, + CREATE_TIME_ timestamp, + DUE_DATE_ timestamp, + CATEGORY_ varchar(255), + SUSPENSION_STATE_ integer, + TENANT_ID_ varchar(255) default '', + FORM_KEY_ varchar(255), + primary key (ID_) +); + +create table ACT_RU_IDENTITYLINK ( + ID_ varchar(64), + REV_ integer, + GROUP_ID_ varchar(255), + TYPE_ varchar(255), + USER_ID_ varchar(255), + TASK_ID_ varchar(64), + PROC_INST_ID_ varchar(64), + PROC_DEF_ID_ varchar (64), + primary key (ID_) +); + +create table ACT_RU_VARIABLE ( + ID_ varchar(64) not null, + REV_ integer, + TYPE_ varchar(255) not null, + NAME_ varchar(255) not null, + EXECUTION_ID_ varchar(64), + PROC_INST_ID_ varchar(64), + TASK_ID_ varchar(64), + BYTEARRAY_ID_ varchar(64), + DOUBLE_ double precision, + LONG_ bigint, + TEXT_ varchar(4000), + TEXT2_ varchar(4000), + primary key (ID_) +); + +create table ACT_RU_EVENT_SUBSCR ( + ID_ varchar(64) not null, + REV_ integer, + EVENT_TYPE_ varchar(255) not null, + EVENT_NAME_ varchar(255), + EXECUTION_ID_ varchar(64), + PROC_INST_ID_ varchar(64), + ACTIVITY_ID_ varchar(64), + CONFIGURATION_ varchar(255), + CREATED_ timestamp not null, + PROC_DEF_ID_ varchar(64), + TENANT_ID_ varchar(255) default '', + primary key (ID_) +); + +create table ACT_EVT_LOG ( + LOG_NR_ SERIAL PRIMARY KEY, + TYPE_ varchar(64), + PROC_DEF_ID_ varchar(64), + PROC_INST_ID_ varchar(64), + EXECUTION_ID_ varchar(64), + TASK_ID_ varchar(64), + TIME_STAMP_ timestamp not null, + USER_ID_ varchar(255), + DATA_ bytea, + LOCK_OWNER_ varchar(255), + LOCK_TIME_ timestamp null, + IS_PROCESSED_ smallint default 0 +); + +create table ACT_PROCDEF_INFO ( + ID_ varchar(64) not null, + PROC_DEF_ID_ varchar(64) not null, + REV_ integer, + INFO_JSON_ID_ varchar(64), + primary key (ID_) +); + +create index ACT_IDX_EXEC_BUSKEY on ACT_RU_EXECUTION(BUSINESS_KEY_); +create index ACT_IDX_TASK_CREATE on ACT_RU_TASK(CREATE_TIME_); +create index ACT_IDX_IDENT_LNK_USER on ACT_RU_IDENTITYLINK(USER_ID_); +create index ACT_IDX_IDENT_LNK_GROUP on ACT_RU_IDENTITYLINK(GROUP_ID_); +create index ACT_IDX_EVENT_SUBSCR_CONFIG_ on ACT_RU_EVENT_SUBSCR(CONFIGURATION_); +create index ACT_IDX_VARIABLE_TASK_ID on ACT_RU_VARIABLE(TASK_ID_); + +create index ACT_IDX_BYTEAR_DEPL on ACT_GE_BYTEARRAY(DEPLOYMENT_ID_); +alter table ACT_GE_BYTEARRAY + add constraint ACT_FK_BYTEARR_DEPL + foreign key (DEPLOYMENT_ID_) + references ACT_RE_DEPLOYMENT (ID_); + +alter table ACT_RE_PROCDEF + add constraint ACT_UNIQ_PROCDEF + unique (KEY_,VERSION_, TENANT_ID_); + +create index ACT_IDX_EXE_PROCINST on ACT_RU_EXECUTION(PROC_INST_ID_); +alter table ACT_RU_EXECUTION + add constraint ACT_FK_EXE_PROCINST + foreign key (PROC_INST_ID_) + references ACT_RU_EXECUTION (ID_); + +create index ACT_IDX_EXE_PARENT on ACT_RU_EXECUTION(PARENT_ID_); +alter table ACT_RU_EXECUTION + add constraint ACT_FK_EXE_PARENT + foreign key (PARENT_ID_) + references ACT_RU_EXECUTION (ID_); + +create index ACT_IDX_EXE_SUPER on ACT_RU_EXECUTION(SUPER_EXEC_); +alter table ACT_RU_EXECUTION + add constraint ACT_FK_EXE_SUPER + foreign key (SUPER_EXEC_) + references ACT_RU_EXECUTION (ID_); + +create index ACT_IDX_EXE_PROCDEF on ACT_RU_EXECUTION(PROC_DEF_ID_); +alter table ACT_RU_EXECUTION + add constraint ACT_FK_EXE_PROCDEF + foreign key (PROC_DEF_ID_) + references ACT_RE_PROCDEF (ID_); + +create index ACT_IDX_TSKASS_TASK on ACT_RU_IDENTITYLINK(TASK_ID_); +alter table ACT_RU_IDENTITYLINK + add constraint ACT_FK_TSKASS_TASK + foreign key (TASK_ID_) + references ACT_RU_TASK (ID_); + +create index ACT_IDX_ATHRZ_PROCEDEF on ACT_RU_IDENTITYLINK(PROC_DEF_ID_); +alter table ACT_RU_IDENTITYLINK + add constraint ACT_FK_ATHRZ_PROCEDEF + foreign key (PROC_DEF_ID_) + references ACT_RE_PROCDEF (ID_); + +create index ACT_IDX_IDL_PROCINST on ACT_RU_IDENTITYLINK(PROC_INST_ID_); +alter table ACT_RU_IDENTITYLINK + add constraint ACT_FK_IDL_PROCINST + foreign key (PROC_INST_ID_) + references ACT_RU_EXECUTION (ID_); + +create index ACT_IDX_TASK_EXEC on ACT_RU_TASK(EXECUTION_ID_); +alter table ACT_RU_TASK + add constraint ACT_FK_TASK_EXE + foreign key (EXECUTION_ID_) + references ACT_RU_EXECUTION (ID_); + +create index ACT_IDX_TASK_PROCINST on ACT_RU_TASK(PROC_INST_ID_); +alter table ACT_RU_TASK + add constraint ACT_FK_TASK_PROCINST + foreign key (PROC_INST_ID_) + references ACT_RU_EXECUTION (ID_); + +create index ACT_IDX_TASK_PROCDEF on ACT_RU_TASK(PROC_DEF_ID_); +alter table ACT_RU_TASK + add constraint ACT_FK_TASK_PROCDEF + foreign key (PROC_DEF_ID_) + references ACT_RE_PROCDEF (ID_); + +create index ACT_IDX_VAR_EXE on ACT_RU_VARIABLE(EXECUTION_ID_); +alter table ACT_RU_VARIABLE + add constraint ACT_FK_VAR_EXE + foreign key (EXECUTION_ID_) + references ACT_RU_EXECUTION (ID_); + +create index ACT_IDX_VAR_PROCINST on ACT_RU_VARIABLE(PROC_INST_ID_); +alter table ACT_RU_VARIABLE + add constraint ACT_FK_VAR_PROCINST + foreign key (PROC_INST_ID_) + references ACT_RU_EXECUTION(ID_); + +create index ACT_IDX_VAR_BYTEARRAY on ACT_RU_VARIABLE(BYTEARRAY_ID_); +alter table ACT_RU_VARIABLE + add constraint ACT_FK_VAR_BYTEARRAY + foreign key (BYTEARRAY_ID_) + references ACT_GE_BYTEARRAY (ID_); + +create index ACT_IDX_JOB_EXCEPTION on ACT_RU_JOB(EXCEPTION_STACK_ID_); +alter table ACT_RU_JOB + add constraint ACT_FK_JOB_EXCEPTION + foreign key (EXCEPTION_STACK_ID_) + references ACT_GE_BYTEARRAY (ID_); + +create index ACT_IDX_EVENT_SUBSCR on ACT_RU_EVENT_SUBSCR(EXECUTION_ID_); +alter table ACT_RU_EVENT_SUBSCR + add constraint ACT_FK_EVENT_EXEC + foreign key (EXECUTION_ID_) + references ACT_RU_EXECUTION(ID_); + +create index ACT_IDX_MODEL_SOURCE on ACT_RE_MODEL(EDITOR_SOURCE_VALUE_ID_); +alter table ACT_RE_MODEL + add constraint ACT_FK_MODEL_SOURCE + foreign key (EDITOR_SOURCE_VALUE_ID_) + references ACT_GE_BYTEARRAY (ID_); + +create index ACT_IDX_MODEL_SOURCE_EXTRA on ACT_RE_MODEL(EDITOR_SOURCE_EXTRA_VALUE_ID_); +alter table ACT_RE_MODEL + add constraint ACT_FK_MODEL_SOURCE_EXTRA + foreign key (EDITOR_SOURCE_EXTRA_VALUE_ID_) + references ACT_GE_BYTEARRAY (ID_); + +create index ACT_IDX_MODEL_DEPLOYMENT on ACT_RE_MODEL(DEPLOYMENT_ID_); +alter table ACT_RE_MODEL + add constraint ACT_FK_MODEL_DEPLOYMENT + foreign key (DEPLOYMENT_ID_) + references ACT_RE_DEPLOYMENT (ID_); + +create index ACT_IDX_PROCDEF_INFO_JSON on ACT_PROCDEF_INFO(INFO_JSON_ID_); +alter table ACT_PROCDEF_INFO + add constraint ACT_FK_INFO_JSON_BA + foreign key (INFO_JSON_ID_) + references ACT_GE_BYTEARRAY (ID_); + +create index ACT_IDX_PROCDEF_INFO_PROC on ACT_PROCDEF_INFO(PROC_DEF_ID_); +alter table ACT_PROCDEF_INFO + add constraint ACT_FK_INFO_PROCDEF + foreign key (PROC_DEF_ID_) + references ACT_RE_PROCDEF (ID_); + +alter table ACT_PROCDEF_INFO + add constraint ACT_UNIQ_INFO_PROCDEF + unique (PROC_DEF_ID_); + +create table ACT_HI_PROCINST ( + ID_ varchar(64) not null, + PROC_INST_ID_ varchar(64) not null, + BUSINESS_KEY_ varchar(255), + PROC_DEF_ID_ varchar(64) not null, + START_TIME_ timestamp not null, + END_TIME_ timestamp, + DURATION_ bigint, + START_USER_ID_ varchar(255), + START_ACT_ID_ varchar(255), + END_ACT_ID_ varchar(255), + SUPER_PROCESS_INSTANCE_ID_ varchar(64), + DELETE_REASON_ varchar(4000), + TENANT_ID_ varchar(255) default '', + NAME_ varchar(255), + primary key (ID_), + unique (PROC_INST_ID_) +); + +create table ACT_HI_ACTINST ( + ID_ varchar(64) not null, + PROC_DEF_ID_ varchar(64) not null, + PROC_INST_ID_ varchar(64) not null, + EXECUTION_ID_ varchar(64) not null, + ACT_ID_ varchar(255) not null, + TASK_ID_ varchar(64), + CALL_PROC_INST_ID_ varchar(64), + ACT_NAME_ varchar(255), + ACT_TYPE_ varchar(255) not null, + ASSIGNEE_ varchar(255), + START_TIME_ timestamp not null, + END_TIME_ timestamp, + DURATION_ bigint, + TENANT_ID_ varchar(255) default '', + primary key (ID_) +); + +create table ACT_HI_TASKINST ( + ID_ varchar(64) not null, + PROC_DEF_ID_ varchar(64), + TASK_DEF_KEY_ varchar(255), + PROC_INST_ID_ varchar(64), + EXECUTION_ID_ varchar(64), + NAME_ varchar(255), + PARENT_TASK_ID_ varchar(64), + DESCRIPTION_ varchar(4000), + OWNER_ varchar(255), + ASSIGNEE_ varchar(255), + START_TIME_ timestamp not null, + CLAIM_TIME_ timestamp, + END_TIME_ timestamp, + DURATION_ bigint, + DELETE_REASON_ varchar(4000), + PRIORITY_ integer, + DUE_DATE_ timestamp, + FORM_KEY_ varchar(255), + CATEGORY_ varchar(255), + TENANT_ID_ varchar(255) default '', + primary key (ID_) +); + +create table ACT_HI_VARINST ( + ID_ varchar(64) not null, + PROC_INST_ID_ varchar(64), + EXECUTION_ID_ varchar(64), + TASK_ID_ varchar(64), + NAME_ varchar(255) not null, + VAR_TYPE_ varchar(100), + REV_ integer, + BYTEARRAY_ID_ varchar(64), + DOUBLE_ double precision, + LONG_ bigint, + TEXT_ varchar(4000), + TEXT2_ varchar(4000), + CREATE_TIME_ timestamp, + LAST_UPDATED_TIME_ timestamp, + primary key (ID_) +); + +create table ACT_HI_DETAIL ( + ID_ varchar(64) not null, + TYPE_ varchar(255) not null, + PROC_INST_ID_ varchar(64), + EXECUTION_ID_ varchar(64), + TASK_ID_ varchar(64), + ACT_INST_ID_ varchar(64), + NAME_ varchar(255) not null, + VAR_TYPE_ varchar(64), + REV_ integer, + TIME_ timestamp not null, + BYTEARRAY_ID_ varchar(64), + DOUBLE_ double precision, + LONG_ bigint, + TEXT_ varchar(4000), + TEXT2_ varchar(4000), + primary key (ID_) +); + +create table ACT_HI_COMMENT ( + ID_ varchar(64) not null, + TYPE_ varchar(255), + TIME_ timestamp not null, + USER_ID_ varchar(255), + TASK_ID_ varchar(64), + PROC_INST_ID_ varchar(64), + ACTION_ varchar(255), + MESSAGE_ varchar(4000), + FULL_MSG_ bytea, + primary key (ID_) +); + +create table ACT_HI_ATTACHMENT ( + ID_ varchar(64) not null, + REV_ integer, + USER_ID_ varchar(255), + NAME_ varchar(255), + DESCRIPTION_ varchar(4000), + TYPE_ varchar(255), + TASK_ID_ varchar(64), + PROC_INST_ID_ varchar(64), + URL_ varchar(4000), + CONTENT_ID_ varchar(64), + TIME_ timestamp, + primary key (ID_) +); + +create table ACT_HI_IDENTITYLINK ( + ID_ varchar(64), + GROUP_ID_ varchar(255), + TYPE_ varchar(255), + USER_ID_ varchar(255), + TASK_ID_ varchar(64), + PROC_INST_ID_ varchar(64), + primary key (ID_) +); + + +create index ACT_IDX_HI_PRO_INST_END on ACT_HI_PROCINST(END_TIME_); +create index ACT_IDX_HI_PRO_I_BUSKEY on ACT_HI_PROCINST(BUSINESS_KEY_); +create index ACT_IDX_HI_ACT_INST_START on ACT_HI_ACTINST(START_TIME_); +create index ACT_IDX_HI_ACT_INST_END on ACT_HI_ACTINST(END_TIME_); +create index ACT_IDX_HI_DETAIL_PROC_INST on ACT_HI_DETAIL(PROC_INST_ID_); +create index ACT_IDX_HI_DETAIL_ACT_INST on ACT_HI_DETAIL(ACT_INST_ID_); +create index ACT_IDX_HI_DETAIL_TIME on ACT_HI_DETAIL(TIME_); +create index ACT_IDX_HI_DETAIL_NAME on ACT_HI_DETAIL(NAME_); +create index ACT_IDX_HI_DETAIL_TASK_ID on ACT_HI_DETAIL(TASK_ID_); +create index ACT_IDX_HI_PROCVAR_PROC_INST on ACT_HI_VARINST(PROC_INST_ID_); +create index ACT_IDX_HI_PROCVAR_NAME_TYPE on ACT_HI_VARINST(NAME_, VAR_TYPE_); +create index ACT_IDX_HI_PROCVAR_TASK_ID on ACT_HI_VARINST(TASK_ID_); +create index ACT_IDX_HI_ACT_INST_PROCINST on ACT_HI_ACTINST(PROC_INST_ID_, ACT_ID_); +create index ACT_IDX_HI_ACT_INST_EXEC on ACT_HI_ACTINST(EXECUTION_ID_, ACT_ID_); +create index ACT_IDX_HI_IDENT_LNK_USER on ACT_HI_IDENTITYLINK(USER_ID_); +create index ACT_IDX_HI_IDENT_LNK_TASK on ACT_HI_IDENTITYLINK(TASK_ID_); +create index ACT_IDX_HI_IDENT_LNK_PROCINST on ACT_HI_IDENTITYLINK(PROC_INST_ID_); +create index ACT_IDX_HI_TASK_INST_PROCINST on ACT_HI_TASKINST(PROC_INST_ID_); + +create table ACT_ID_GROUP ( + ID_ varchar(64), + REV_ integer, + NAME_ varchar(255), + TYPE_ varchar(255), + primary key (ID_) +); + +create table ACT_ID_MEMBERSHIP ( + USER_ID_ varchar(64), + GROUP_ID_ varchar(64), + primary key (USER_ID_, GROUP_ID_) +); + +create table ACT_ID_USER ( + ID_ varchar(64), + REV_ integer, + FIRST_ varchar(255), + LAST_ varchar(255), + EMAIL_ varchar(255), + PWD_ varchar(255), + PICTURE_ID_ varchar(64), + primary key (ID_) +); + +create table ACT_ID_INFO ( + ID_ varchar(64), + REV_ integer, + USER_ID_ varchar(64), + TYPE_ varchar(64), + KEY_ varchar(255), + VALUE_ varchar(255), + PASSWORD_ bytea, + PARENT_ID_ varchar(255), + primary key (ID_) +); + +create index ACT_IDX_MEMB_GROUP on ACT_ID_MEMBERSHIP(GROUP_ID_); +alter table ACT_ID_MEMBERSHIP + add constraint ACT_FK_MEMB_GROUP + foreign key (GROUP_ID_) + references ACT_ID_GROUP (ID_); + +create index ACT_IDX_MEMB_USER on ACT_ID_MEMBERSHIP(USER_ID_); +alter table ACT_ID_MEMBERSHIP + add constraint ACT_FK_MEMB_USER + foreign key (USER_ID_) + references ACT_ID_USER (ID_); + +commit; diff --git a/config/sql/_all/postgresql-upgrade-3.8-3.9.sql b/config/sql/_all/postgresql-upgrade-3.8-3.9.sql new file mode 100644 index 00000000000..90f0cc6c15d --- /dev/null +++ b/config/sql/_all/postgresql-upgrade-3.8-3.9.sql @@ -0,0 +1,14 @@ +CREATE TABLE m_object_collection ( + name_norm VARCHAR(255), + name_orig VARCHAR(255), + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +); + +CREATE INDEX iObjectCollectionNameOrig + ON m_object_collection (name_orig); +ALTER TABLE IF EXISTS m_object_collection + ADD CONSTRAINT uc_object_collection_name UNIQUE (name_norm); + +ALTER TABLE IF EXISTS m_object_collection + ADD CONSTRAINT fk_object_collection FOREIGN KEY (oid) REFERENCES m_object; diff --git a/config/sql/_all/sqlserver-upgrade-3.7-3.8.sql b/config/sql/_all/sqlserver-3.9-all.sql similarity index 62% rename from config/sql/_all/sqlserver-upgrade-3.7-3.8.sql rename to config/sql/_all/sqlserver-3.9-all.sql index 640b07ac643..518f9d53070 100644 --- a/config/sql/_all/sqlserver-upgrade-3.7-3.8.sql +++ b/config/sql/_all/sqlserver-3.9-all.sql @@ -1,202 +1,3 @@ -DROP TABLE m_acc_cert_definition; -DROP TABLE m_acc_cert_wi_reference; -DROP TABLE m_acc_cert_wi; -DROP TABLE m_acc_cert_case; -DROP TABLE m_acc_cert_campaign; -DROP TABLE m_assignment_ext_boolean; -DROP TABLE m_assignment_ext_date; -DROP TABLE m_assignment_ext_long; -DROP TABLE m_assignment_ext_poly; -DROP TABLE m_assignment_ext_reference; -DROP TABLE m_assignment_ext_string; -DROP TABLE m_assignment_extension; -DROP TABLE m_assignment_policy_situation; -DROP TABLE m_assignment_reference; -DROP TABLE m_assignment; --- Don't touch audit tables --- DROP TABLE m_audit_delta; --- DROP TABLE m_audit_item; --- DROP TABLE m_audit_prop_value; --- DROP TABLE m_audit_ref_value; --- DROP TABLE m_audit_event; -DROP TABLE m_case; -DROP TABLE m_connector_host; -DROP TABLE m_connector_target_system; -DROP TABLE m_connector; -DROP TABLE m_exclusion; -DROP TABLE m_focus_photo; -DROP TABLE m_focus_policy_situation; -DROP TABLE m_form; -DROP TABLE m_function_library; -DROP TABLE m_generic_object; -DROP TABLE m_lookup_table_row; -DROP TABLE m_lookup_table; -DROP TABLE m_node; -DROP TABLE m_object_ext_boolean; -DROP TABLE m_object_ext_date; -DROP TABLE m_object_ext_long; -DROP TABLE m_object_ext_poly; -DROP TABLE m_object_ext_reference; -DROP TABLE m_object_ext_string; -DROP TABLE m_object_template; -DROP TABLE m_object_text_info; -DROP TABLE m_operation_execution; -DROP TABLE m_org_closure; -DROP TABLE m_org_org_type; -DROP TABLE m_org; -DROP TABLE m_reference; -DROP TABLE m_report; -DROP TABLE m_report_output; -DROP TABLE m_resource; -DROP TABLE m_role; -DROP TABLE m_security_policy; -DROP TABLE m_sequence; -DROP TABLE m_service_type; -DROP TABLE m_service; -DROP TABLE m_abstract_role; -DROP TABLE m_shadow; -DROP TABLE m_system_configuration; -DROP TABLE m_task_dependent; -DROP TABLE m_task; -DROP TABLE m_trigger; -DROP TABLE m_user_employee_type; -DROP TABLE m_user_organization; -DROP TABLE m_user_organizational_unit; -DROP TABLE m_value_policy; -DROP TABLE m_user; -DROP TABLE m_focus; -DROP TABLE m_object; - -DROP TABLE hibernate_sequence; - -GO - -CREATE TABLE m_audit_event_NEW ( - id BIGINT IDENTITY NOT NULL, - attorneyName NVARCHAR(255) COLLATE database_default, - attorneyOid NVARCHAR(36) COLLATE database_default, - channel NVARCHAR(255) COLLATE database_default, - eventIdentifier NVARCHAR(255) COLLATE database_default, - eventStage INT, - eventType INT, - hostIdentifier NVARCHAR(255) COLLATE database_default, - initiatorName NVARCHAR(255) COLLATE database_default, - initiatorOid NVARCHAR(36) COLLATE database_default, - initiatorType INT, - message NVARCHAR(1024) COLLATE database_default, - nodeIdentifier NVARCHAR(255) COLLATE database_default, - outcome INT, - parameter NVARCHAR(255) COLLATE database_default, - remoteHostAddress NVARCHAR(255) COLLATE database_default, - result NVARCHAR(255) COLLATE database_default, - sessionIdentifier NVARCHAR(255) COLLATE database_default, - targetName NVARCHAR(255) COLLATE database_default, - targetOid NVARCHAR(36) COLLATE database_default, - targetOwnerName NVARCHAR(255) COLLATE database_default, - targetOwnerOid NVARCHAR(36) COLLATE database_default, - targetOwnerType INT, - targetType INT, - taskIdentifier NVARCHAR(255) COLLATE database_default, - taskOID NVARCHAR(255) COLLATE database_default, - timestampValue DATETIME2 - -- no primary key for now -); - -CREATE TABLE m_audit_prop_value_NEW ( - id BIGINT IDENTITY NOT NULL, - name NVARCHAR(255) COLLATE database_default, - record_id BIGINT, - value NVARCHAR(1024) COLLATE database_default - -- no primary key for now -); - -CREATE TABLE m_audit_ref_value_NEW ( - id BIGINT IDENTITY NOT NULL, - name NVARCHAR(255) COLLATE database_default, - oid NVARCHAR(255) COLLATE database_default, - record_id BIGINT, - targetName_norm NVARCHAR(255) COLLATE database_default, - targetName_orig NVARCHAR(255) COLLATE database_default, - type NVARCHAR(255) COLLATE database_default - -- no primary key for now -); - --- copying tables (can take a long time) -SET IDENTITY_INSERT m_audit_event_NEW ON; -INSERT INTO m_audit_event_NEW (id, attorneyName, attorneyOid, channel, eventIdentifier, eventStage, eventType, hostIdentifier, - initiatorName, initiatorOid, initiatorType, message, nodeIdentifier, outcome, parameter, remoteHostAddress, - result, sessionIdentifier, targetName, targetOid, targetOwnerName, targetOwnerOid, targetType, - taskIdentifier, taskOID, timestampValue) - SELECT - id, attorneyName, attorneyOid, channel, eventIdentifier, eventStage, eventType, hostIdentifier, initiatorName, initiatorOid, - initiatorType, message, nodeIdentifier, outcome, parameter, remoteHostAddress, result, sessionIdentifier, targetName, targetOid, - targetOwnerName, targetOwnerOid, targetType, taskIdentifier, taskOID, timestampValue - FROM m_audit_event; -SET IDENTITY_INSERT m_audit_event_NEW OFF; - -SET IDENTITY_INSERT m_audit_prop_value_NEW ON; -INSERT INTO m_audit_prop_value_NEW (id, name, record_id, [value]) - SELECT id, [name], record_id, [value] FROM m_audit_prop_value; -SET IDENTITY_INSERT m_audit_prop_value_NEW OFF; - -SET IDENTITY_INSERT m_audit_ref_value_NEW ON; -INSERT INTO m_audit_ref_value_NEW (id, name, oid, record_id, targetName_norm, targetName_orig, type) - SELECT id, [name], oid, record_id, targetName_norm, targetName_orig, type FROM m_audit_ref_value; -SET IDENTITY_INSERT m_audit_ref_value_NEW OFF; - -ALTER TABLE m_audit_delta DROP CONSTRAINT fk_audit_delta; -ALTER TABLE m_audit_item DROP CONSTRAINT fk_audit_item; - --- renaming new tables to old ones -DROP TABLE m_audit_prop_value; -EXEC sp_rename 'm_audit_prop_value_NEW', 'm_audit_prop_value' -DROP TABLE m_audit_ref_value; -EXEC sp_rename 'm_audit_ref_value_NEW', 'm_audit_ref_value' -DROP TABLE m_audit_event; -EXEC sp_rename 'm_audit_event_NEW', 'm_audit_event' - --- restoring indices and foreign key constraints -ALTER TABLE m_audit_event ADD PRIMARY KEY (id); -ALTER TABLE m_audit_prop_value ADD PRIMARY KEY (id); -ALTER TABLE m_audit_ref_value ADD PRIMARY KEY (id); - -CREATE INDEX iTimestampValue ON m_audit_event (timestampValue); -CREATE INDEX iAuditPropValRecordId ON m_audit_prop_value (record_id); -CREATE INDEX iAuditRefValRecordId ON m_audit_ref_value (record_id); - -ALTER TABLE m_audit_delta ADD CONSTRAINT fk_audit_delta FOREIGN KEY (record_id) REFERENCES m_audit_event; -ALTER TABLE m_audit_item ADD CONSTRAINT fk_audit_item FOREIGN KEY (record_id) REFERENCES m_audit_event; -ALTER TABLE m_audit_prop_value ADD CONSTRAINT fk_audit_prop_value FOREIGN KEY (record_id) REFERENCES m_audit_event; -ALTER TABLE m_audit_ref_value ADD CONSTRAINT fk_audit_ref_value FOREIGN KEY (record_id) REFERENCES m_audit_event; - -ALTER TABLE m_audit_delta ADD deltaBlob VARBINARY(MAX); -ALTER TABLE m_audit_delta ADD fullResultBlob VARBINARY(MAX); - -GO - -UPDATE m_audit_delta SET deltaBlob = convert(VARBINARY(MAX), delta) where delta is not null; -UPDATE m_audit_delta SET fullResultBlob = convert(VARBINARY(MAX), fullResult) where fullResult is not null; --- This one should be used for SQL Server 2016 and later --- UPDATE m_audit_delta SET checksum = lower(convert(NVARCHAR(32), hashbytes('MD5', concat(delta, fullResult)), 2)); - --- The following is for SQL Server 2014 and earlier (but should work also for newer versions) -UPDATE m_audit_delta SET checksum = lower(convert(NVARCHAR(32), master.sys.fn_repl_hash_binary(cast(concat(delta, fullResult) as varbinary(MAX))), 2)); - -GO - -ALTER TABLE m_audit_delta DROP COLUMN delta; -ALTER TABLE m_audit_delta DROP COLUMN fullResult; - -GO - -EXEC sp_rename 'm_audit_delta.deltaBlob', delta, 'COLUMN' - -GO - -EXEC sp_rename 'm_audit_delta.fullResultBlob', fullResult, 'COLUMN' - -GO - CREATE TABLE m_acc_cert_campaign ( definitionRef_relation NVARCHAR(157) COLLATE database_default, definitionRef_targetOid NVARCHAR(36) COLLATE database_default, @@ -394,6 +195,73 @@ CREATE TABLE m_assignment_reference ( targetType INT, PRIMARY KEY (owner_owner_oid, owner_id, reference_type, relation, targetOid) ); +CREATE TABLE m_audit_delta ( + checksum NVARCHAR(32) COLLATE database_default NOT NULL, + record_id BIGINT NOT NULL, + delta VARBINARY(MAX), + deltaOid NVARCHAR(36) COLLATE database_default, + deltaType INT, + fullResult VARBINARY(MAX), + objectName_norm NVARCHAR(255) COLLATE database_default, + objectName_orig NVARCHAR(255) COLLATE database_default, + resourceName_norm NVARCHAR(255) COLLATE database_default, + resourceName_orig NVARCHAR(255) COLLATE database_default, + resourceOid NVARCHAR(36) COLLATE database_default, + status INT, + PRIMARY KEY (record_id, checksum) +); +CREATE TABLE m_audit_event ( + id BIGINT IDENTITY NOT NULL, + attorneyName NVARCHAR(255) COLLATE database_default, + attorneyOid NVARCHAR(36) COLLATE database_default, + channel NVARCHAR(255) COLLATE database_default, + eventIdentifier NVARCHAR(255) COLLATE database_default, + eventStage INT, + eventType INT, + hostIdentifier NVARCHAR(255) COLLATE database_default, + initiatorName NVARCHAR(255) COLLATE database_default, + initiatorOid NVARCHAR(36) COLLATE database_default, + initiatorType INT, + message NVARCHAR(1024) COLLATE database_default, + nodeIdentifier NVARCHAR(255) COLLATE database_default, + outcome INT, + parameter NVARCHAR(255) COLLATE database_default, + remoteHostAddress NVARCHAR(255) COLLATE database_default, + result NVARCHAR(255) COLLATE database_default, + sessionIdentifier NVARCHAR(255) COLLATE database_default, + targetName NVARCHAR(255) COLLATE database_default, + targetOid NVARCHAR(36) COLLATE database_default, + targetOwnerName NVARCHAR(255) COLLATE database_default, + targetOwnerOid NVARCHAR(36) COLLATE database_default, + targetOwnerType INT, + targetType INT, + taskIdentifier NVARCHAR(255) COLLATE database_default, + taskOID NVARCHAR(255) COLLATE database_default, + timestampValue DATETIME2, + PRIMARY KEY (id) +); +CREATE TABLE m_audit_item ( + changedItemPath NVARCHAR(255) COLLATE database_default NOT NULL, + record_id BIGINT NOT NULL, + PRIMARY KEY (record_id, changedItemPath) +); +CREATE TABLE m_audit_prop_value ( + id BIGINT IDENTITY NOT NULL, + name NVARCHAR(255) COLLATE database_default, + record_id BIGINT, + value NVARCHAR(1024) COLLATE database_default, + PRIMARY KEY (id) +); +CREATE TABLE m_audit_ref_value ( + id BIGINT IDENTITY NOT NULL, + name NVARCHAR(255) COLLATE database_default, + oid NVARCHAR(36) COLLATE database_default, + record_id BIGINT, + targetName_norm NVARCHAR(255) COLLATE database_default, + targetName_orig NVARCHAR(255) COLLATE database_default, + type NVARCHAR(255) COLLATE database_default, + PRIMARY KEY (id) +); CREATE TABLE m_case_wi ( id INT NOT NULL, owner_oid NVARCHAR(36) COLLATE database_default NOT NULL, @@ -744,6 +612,12 @@ CREATE TABLE m_node ( oid NVARCHAR(36) COLLATE database_default NOT NULL, PRIMARY KEY (oid) ); +CREATE TABLE m_object_collection ( + name_norm NVARCHAR(255) COLLATE database_default, + name_orig NVARCHAR(255) COLLATE database_default, + oid NVARCHAR(36) COLLATE database_default NOT NULL, + PRIMARY KEY (oid) +); CREATE TABLE m_object_template ( name_norm NVARCHAR(255) COLLATE database_default, name_orig NVARCHAR(255) COLLATE database_default, @@ -907,8 +781,16 @@ CREATE INDEX iAssignmentReferenceTargetOid ON m_assignment_reference (targetOid); CREATE INDEX iAuditDeltaRecordId ON m_audit_delta (record_id); +CREATE INDEX iTimestampValue + ON m_audit_event (timestampValue); +CREATE INDEX iChangedItemPath + ON m_audit_item (changedItemPath); CREATE INDEX iAuditItemRecordId ON m_audit_item (record_id); +CREATE INDEX iAuditPropValRecordId + ON m_audit_prop_value (record_id); +CREATE INDEX iAuditRefValRecordId + ON m_audit_ref_value (record_id); CREATE INDEX iCaseWorkItemRefTargetOid ON m_case_wi_reference (targetOid); @@ -1040,6 +922,10 @@ CREATE INDEX iNodeNameOrig ON m_node (name_orig); ALTER TABLE m_node ADD CONSTRAINT uc_node_name UNIQUE (name_norm); +CREATE INDEX iObjectCollectionNameOrig + ON m_object_collection (name_orig); +ALTER TABLE m_object_collection + ADD CONSTRAINT uc_object_collection_name UNIQUE (name_norm); CREATE INDEX iObjectTemplateNameOrig ON m_object_template (name_orig); ALTER TABLE m_object_template @@ -1142,6 +1028,14 @@ ALTER TABLE m_assignment_policy_situation ADD CONSTRAINT fk_assignment_policy_situation FOREIGN KEY (assignment_oid, assignment_id) REFERENCES m_assignment; ALTER TABLE m_assignment_reference ADD CONSTRAINT fk_assignment_reference FOREIGN KEY (owner_owner_oid, owner_id) REFERENCES m_assignment; +ALTER TABLE m_audit_delta + ADD CONSTRAINT fk_audit_delta FOREIGN KEY (record_id) REFERENCES m_audit_event; +ALTER TABLE m_audit_item + ADD CONSTRAINT fk_audit_item FOREIGN KEY (record_id) REFERENCES m_audit_event; +ALTER TABLE m_audit_prop_value + ADD CONSTRAINT fk_audit_prop_value FOREIGN KEY (record_id) REFERENCES m_audit_event; +ALTER TABLE m_audit_ref_value + ADD CONSTRAINT fk_audit_ref_value FOREIGN KEY (record_id) REFERENCES m_audit_event; ALTER TABLE m_case_wi ADD CONSTRAINT fk_case_wi_owner FOREIGN KEY (owner_oid) REFERENCES m_case; ALTER TABLE m_case_wi_reference @@ -1226,6 +1120,8 @@ ALTER TABLE m_lookup_table_row ADD CONSTRAINT fk_lookup_table_owner FOREIGN KEY (owner_oid) REFERENCES m_lookup_table; ALTER TABLE m_node ADD CONSTRAINT fk_node FOREIGN KEY (oid) REFERENCES m_object; +ALTER TABLE m_object_collection + ADD CONSTRAINT fk_object_collection FOREIGN KEY (oid) REFERENCES m_object; ALTER TABLE m_object_template ADD CONSTRAINT fk_object_template FOREIGN KEY (oid) REFERENCES m_object; ALTER TABLE m_org @@ -1253,4 +1149,890 @@ ALTER TABLE m_user ALTER TABLE m_value_policy ADD CONSTRAINT fk_value_policy FOREIGN KEY (oid) REFERENCES m_object; -GO +--# thanks to George Papastamatopoulos for submitting this ... and Marko Lahma for +--# updating it. +--# +--# In your Quartz properties file, you'll need to set +--# org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.MSSQLDelegate +--# +--# you shouse enter your DB instance's name on the next line in place of "enter_db_name_here" +--# +--# +--# From a helpful (but anonymous) Quartz user: +--# +--# Regarding this error message: +--# +--# [Microsoft][SQLServer 2000 Driver for JDBC]Can't start a cloned connection while in manual transaction mode. +--# +--# +--# I added "SelectMethod=cursor;" to my Connection URL in the config file. +--# It Seems to work, hopefully no side effects. +--# +--# example: +--# "jdbc:microsoft:sqlserver://dbmachine:1433;SelectMethod=cursor"; +--# +--# Another user has pointed out that you will probably need to use the +--# JTDS driver +--# +--# +--# USE [enter_db_name_here] +--# GO + +IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[FK_QRTZ_TRIGGERS_QRTZ_JOB_DETAILS]') AND OBJECTPROPERTY(id, N'ISFOREIGNKEY') = 1) +ALTER TABLE [dbo].[QRTZ_TRIGGERS] DROP CONSTRAINT FK_QRTZ_TRIGGERS_QRTZ_JOB_DETAILS; +-- GO + +IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[FK_QRTZ_CRON_TRIGGERS_QRTZ_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISFOREIGNKEY') = 1) +ALTER TABLE [dbo].[QRTZ_CRON_TRIGGERS] DROP CONSTRAINT FK_QRTZ_CRON_TRIGGERS_QRTZ_TRIGGERS; +-- GO + +IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[FK_QRTZ_SIMPLE_TRIGGERS_QRTZ_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISFOREIGNKEY') = 1) +ALTER TABLE [dbo].[QRTZ_SIMPLE_TRIGGERS] DROP CONSTRAINT FK_QRTZ_SIMPLE_TRIGGERS_QRTZ_TRIGGERS; +-- GO + +IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[FK_QRTZ_SIMPROP_TRIGGERS_QRTZ_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISFOREIGNKEY') = 1) +ALTER TABLE [dbo].[QRTZ_SIMPROP_TRIGGERS] DROP CONSTRAINT FK_QRTZ_SIMPROP_TRIGGERS_QRTZ_TRIGGERS; +-- GO + +IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_CALENDARS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1) +DROP TABLE [dbo].[QRTZ_CALENDARS]; +-- GO + +IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_CRON_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1) +DROP TABLE [dbo].[QRTZ_CRON_TRIGGERS]; +-- GO + +IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_BLOB_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1) +DROP TABLE [dbo].[QRTZ_BLOB_TRIGGERS]; +-- GO + +IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_FIRED_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1) +DROP TABLE [dbo].[QRTZ_FIRED_TRIGGERS]; +-- GO + +IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_PAUSED_TRIGGER_GRPS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1) +DROP TABLE [dbo].[QRTZ_PAUSED_TRIGGER_GRPS]; +-- GO + +IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_SCHEDULER_STATE]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1) +DROP TABLE [dbo].[QRTZ_SCHEDULER_STATE]; +-- GO + +IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_LOCKS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1) +DROP TABLE [dbo].[QRTZ_LOCKS]; +-- GO + +IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_JOB_DETAILS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1) +DROP TABLE [dbo].[QRTZ_JOB_DETAILS]; +-- GO + +IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_SIMPLE_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1) +DROP TABLE [dbo].[QRTZ_SIMPLE_TRIGGERS]; +-- GO + +IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_SIMPROP_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1) +DROP TABLE [dbo].[QRTZ_SIMPROP_TRIGGERS]; +-- GO + +IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1) +DROP TABLE [dbo].[QRTZ_TRIGGERS]; +-- GO + +CREATE TABLE [dbo].[QRTZ_CALENDARS] ( + [SCHED_NAME] [VARCHAR] (120) NOT NULL , + [CALENDAR_NAME] [VARCHAR] (200) NOT NULL , + [CALENDAR] [IMAGE] NOT NULL +) ON [PRIMARY]; +-- GO + +CREATE TABLE [dbo].[QRTZ_CRON_TRIGGERS] ( + [SCHED_NAME] [VARCHAR] (120) NOT NULL , + [TRIGGER_NAME] [VARCHAR] (200) NOT NULL , + [TRIGGER_GROUP] [VARCHAR] (200) NOT NULL , + [CRON_EXPRESSION] [VARCHAR] (120) NOT NULL , + [TIME_ZONE_ID] [VARCHAR] (80) +) ON [PRIMARY]; +-- GO + +CREATE TABLE [dbo].[QRTZ_FIRED_TRIGGERS] ( + [SCHED_NAME] [VARCHAR] (120) NOT NULL , + [ENTRY_ID] [VARCHAR] (95) NOT NULL , + [TRIGGER_NAME] [VARCHAR] (200) NOT NULL , + [TRIGGER_GROUP] [VARCHAR] (200) NOT NULL , + [INSTANCE_NAME] [VARCHAR] (200) NOT NULL , + [FIRED_TIME] [BIGINT] NOT NULL , + [SCHED_TIME] [BIGINT] NOT NULL , + [PRIORITY] [INTEGER] NOT NULL , + [EXECUTION_GROUP] [VARCHAR] (200) NULL , + [STATE] [VARCHAR] (16) NOT NULL, + [JOB_NAME] [VARCHAR] (200) NULL , + [JOB_GROUP] [VARCHAR] (200) NULL , + [IS_NONCONCURRENT] [VARCHAR] (1) NULL , + [REQUESTS_RECOVERY] [VARCHAR] (1) NULL +) ON [PRIMARY]; +-- GO + +CREATE TABLE [dbo].[QRTZ_PAUSED_TRIGGER_GRPS] ( + [SCHED_NAME] [VARCHAR] (120) NOT NULL , + [TRIGGER_GROUP] [VARCHAR] (200) NOT NULL +) ON [PRIMARY]; +-- GO + +CREATE TABLE [dbo].[QRTZ_SCHEDULER_STATE] ( + [SCHED_NAME] [VARCHAR] (120) NOT NULL , + [INSTANCE_NAME] [VARCHAR] (200) NOT NULL , + [LAST_CHECKIN_TIME] [BIGINT] NOT NULL , + [CHECKIN_INTERVAL] [BIGINT] NOT NULL +) ON [PRIMARY]; +-- GO + +CREATE TABLE [dbo].[QRTZ_LOCKS] ( + [SCHED_NAME] [VARCHAR] (120) NOT NULL , + [LOCK_NAME] [VARCHAR] (40) NOT NULL +) ON [PRIMARY]; +-- GO + +CREATE TABLE [dbo].[QRTZ_JOB_DETAILS] ( + [SCHED_NAME] [VARCHAR] (120) NOT NULL , + [JOB_NAME] [VARCHAR] (200) NOT NULL , + [JOB_GROUP] [VARCHAR] (200) NOT NULL , + [DESCRIPTION] [VARCHAR] (250) NULL , + [JOB_CLASS_NAME] [VARCHAR] (250) NOT NULL , + [IS_DURABLE] [VARCHAR] (1) NOT NULL , + [IS_NONCONCURRENT] [VARCHAR] (1) NOT NULL , + [IS_UPDATE_DATA] [VARCHAR] (1) NOT NULL , + [REQUESTS_RECOVERY] [VARCHAR] (1) NOT NULL , + [JOB_DATA] [IMAGE] NULL +) ON [PRIMARY]; +-- GO + +CREATE TABLE [dbo].[QRTZ_SIMPLE_TRIGGERS] ( + [SCHED_NAME] [VARCHAR] (120) NOT NULL , + [TRIGGER_NAME] [VARCHAR] (200) NOT NULL , + [TRIGGER_GROUP] [VARCHAR] (200) NOT NULL , + [REPEAT_COUNT] [BIGINT] NOT NULL , + [REPEAT_INTERVAL] [BIGINT] NOT NULL , + [TIMES_TRIGGERED] [BIGINT] NOT NULL +) ON [PRIMARY]; +-- GO + +CREATE TABLE [dbo].[QRTZ_SIMPROP_TRIGGERS] ( + [SCHED_NAME] [VARCHAR] (120) NOT NULL , + [TRIGGER_NAME] [VARCHAR] (200) NOT NULL , + [TRIGGER_GROUP] [VARCHAR] (200) NOT NULL , + [STR_PROP_1] [VARCHAR] (512) NULL, + [STR_PROP_2] [VARCHAR] (512) NULL, + [STR_PROP_3] [VARCHAR] (512) NULL, + [INT_PROP_1] [INT] NULL, + [INT_PROP_2] [INT] NULL, + [LONG_PROP_1] [BIGINT] NULL, + [LONG_PROP_2] [BIGINT] NULL, + [DEC_PROP_1] [NUMERIC] (13,4) NULL, + [DEC_PROP_2] [NUMERIC] (13,4) NULL, + [BOOL_PROP_1] [VARCHAR] (1) NULL, + [BOOL_PROP_2] [VARCHAR] (1) NULL, +) ON [PRIMARY]; +-- GO + +CREATE TABLE [dbo].[QRTZ_BLOB_TRIGGERS] ( + [SCHED_NAME] [VARCHAR] (120) NOT NULL , + [TRIGGER_NAME] [VARCHAR] (200) NOT NULL , + [TRIGGER_GROUP] [VARCHAR] (200) NOT NULL , + [BLOB_DATA] [IMAGE] NULL +) ON [PRIMARY]; +-- GO + +CREATE TABLE [dbo].[QRTZ_TRIGGERS] ( + [SCHED_NAME] [VARCHAR] (120) NOT NULL , + [TRIGGER_NAME] [VARCHAR] (200) NOT NULL , + [TRIGGER_GROUP] [VARCHAR] (200) NOT NULL , + [JOB_NAME] [VARCHAR] (200) NOT NULL , + [JOB_GROUP] [VARCHAR] (200) NOT NULL , + [DESCRIPTION] [VARCHAR] (250) NULL , + [NEXT_FIRE_TIME] [BIGINT] NULL , + [PREV_FIRE_TIME] [BIGINT] NULL , + [PRIORITY] [INTEGER] NULL , + [EXECUTION_GROUP] [VARCHAR] (200) NULL , + [TRIGGER_STATE] [VARCHAR] (16) NOT NULL , + [TRIGGER_TYPE] [VARCHAR] (8) NOT NULL , + [START_TIME] [BIGINT] NOT NULL , + [END_TIME] [BIGINT] NULL , + [CALENDAR_NAME] [VARCHAR] (200) NULL , + [MISFIRE_INSTR] [SMALLINT] NULL , + [JOB_DATA] [IMAGE] NULL +) ON [PRIMARY]; +-- GO + +ALTER TABLE [dbo].[QRTZ_CALENDARS] WITH NOCHECK ADD + CONSTRAINT [PK_QRTZ_CALENDARS] PRIMARY KEY CLUSTERED + ( + [SCHED_NAME], + [CALENDAR_NAME] + ) ON [PRIMARY]; +-- GO + +ALTER TABLE [dbo].[QRTZ_CRON_TRIGGERS] WITH NOCHECK ADD + CONSTRAINT [PK_QRTZ_CRON_TRIGGERS] PRIMARY KEY CLUSTERED + ( + [SCHED_NAME], + [TRIGGER_NAME], + [TRIGGER_GROUP] + ) ON [PRIMARY]; +-- GO + +ALTER TABLE [dbo].[QRTZ_FIRED_TRIGGERS] WITH NOCHECK ADD + CONSTRAINT [PK_QRTZ_FIRED_TRIGGERS] PRIMARY KEY CLUSTERED + ( + [SCHED_NAME], + [ENTRY_ID] + ) ON [PRIMARY]; +-- GO + +ALTER TABLE [dbo].[QRTZ_PAUSED_TRIGGER_GRPS] WITH NOCHECK ADD + CONSTRAINT [PK_QRTZ_PAUSED_TRIGGER_GRPS] PRIMARY KEY CLUSTERED + ( + [SCHED_NAME], + [TRIGGER_GROUP] + ) ON [PRIMARY]; +-- GO + +ALTER TABLE [dbo].[QRTZ_SCHEDULER_STATE] WITH NOCHECK ADD + CONSTRAINT [PK_QRTZ_SCHEDULER_STATE] PRIMARY KEY CLUSTERED + ( + [SCHED_NAME], + [INSTANCE_NAME] + ) ON [PRIMARY]; +-- GO + +ALTER TABLE [dbo].[QRTZ_LOCKS] WITH NOCHECK ADD + CONSTRAINT [PK_QRTZ_LOCKS] PRIMARY KEY CLUSTERED + ( + [SCHED_NAME], + [LOCK_NAME] + ) ON [PRIMARY]; +-- GO + +ALTER TABLE [dbo].[QRTZ_JOB_DETAILS] WITH NOCHECK ADD + CONSTRAINT [PK_QRTZ_JOB_DETAILS] PRIMARY KEY CLUSTERED + ( + [SCHED_NAME], + [JOB_NAME], + [JOB_GROUP] + ) ON [PRIMARY]; +-- GO + +ALTER TABLE [dbo].[QRTZ_SIMPLE_TRIGGERS] WITH NOCHECK ADD + CONSTRAINT [PK_QRTZ_SIMPLE_TRIGGERS] PRIMARY KEY CLUSTERED + ( + [SCHED_NAME], + [TRIGGER_NAME], + [TRIGGER_GROUP] + ) ON [PRIMARY]; +-- GO + +ALTER TABLE [dbo].[QRTZ_SIMPROP_TRIGGERS] WITH NOCHECK ADD + CONSTRAINT [PK_QRTZ_SIMPROP_TRIGGERS] PRIMARY KEY CLUSTERED + ( + [SCHED_NAME], + [TRIGGER_NAME], + [TRIGGER_GROUP] + ) ON [PRIMARY]; +-- GO + +ALTER TABLE [dbo].[QRTZ_TRIGGERS] WITH NOCHECK ADD + CONSTRAINT [PK_QRTZ_TRIGGERS] PRIMARY KEY CLUSTERED + ( + [SCHED_NAME], + [TRIGGER_NAME], + [TRIGGER_GROUP] + ) ON [PRIMARY]; +-- GO + +ALTER TABLE [dbo].[QRTZ_CRON_TRIGGERS] ADD + CONSTRAINT [FK_QRTZ_CRON_TRIGGERS_QRTZ_TRIGGERS] FOREIGN KEY + ( + [SCHED_NAME], + [TRIGGER_NAME], + [TRIGGER_GROUP] + ) REFERENCES [dbo].[QRTZ_TRIGGERS] ( + [SCHED_NAME], + [TRIGGER_NAME], + [TRIGGER_GROUP] + ) ON DELETE CASCADE; +-- GO + +ALTER TABLE [dbo].[QRTZ_SIMPLE_TRIGGERS] ADD + CONSTRAINT [FK_QRTZ_SIMPLE_TRIGGERS_QRTZ_TRIGGERS] FOREIGN KEY + ( + [SCHED_NAME], + [TRIGGER_NAME], + [TRIGGER_GROUP] + ) REFERENCES [dbo].[QRTZ_TRIGGERS] ( + [SCHED_NAME], + [TRIGGER_NAME], + [TRIGGER_GROUP] + ) ON DELETE CASCADE; +-- GO + +ALTER TABLE [dbo].[QRTZ_SIMPROP_TRIGGERS] ADD + CONSTRAINT [FK_QRTZ_SIMPROP_TRIGGERS_QRTZ_TRIGGERS] FOREIGN KEY + ( + [SCHED_NAME], + [TRIGGER_NAME], + [TRIGGER_GROUP] + ) REFERENCES [dbo].[QRTZ_TRIGGERS] ( + [SCHED_NAME], + [TRIGGER_NAME], + [TRIGGER_GROUP] + ) ON DELETE CASCADE; +-- GO + +ALTER TABLE [dbo].[QRTZ_TRIGGERS] ADD + CONSTRAINT [FK_QRTZ_TRIGGERS_QRTZ_JOB_DETAILS] FOREIGN KEY + ( + [SCHED_NAME], + [JOB_NAME], + [JOB_GROUP] + ) REFERENCES [dbo].[QRTZ_JOB_DETAILS] ( + [SCHED_NAME], + [JOB_NAME], + [JOB_GROUP] + ); +-- GO; + +create table ACT_GE_PROPERTY ( + NAME_ nvarchar(64), + VALUE_ nvarchar(300), + REV_ int, + primary key (NAME_) +); + +insert into ACT_GE_PROPERTY +values ('schema.version', '5.22.0.0', 1); + +insert into ACT_GE_PROPERTY +values ('schema.history', 'create(5.22.0.0)', 1); + +insert into ACT_GE_PROPERTY +values ('next.dbid', '1', 1); + +create table ACT_GE_BYTEARRAY ( + ID_ nvarchar(64), + REV_ int, + NAME_ nvarchar(255), + DEPLOYMENT_ID_ nvarchar(64), + BYTES_ varbinary(max), + GENERATED_ tinyint, + primary key (ID_) +); + +create table ACT_RE_DEPLOYMENT ( + ID_ nvarchar(64), + NAME_ nvarchar(255), + CATEGORY_ nvarchar(255), + TENANT_ID_ nvarchar(255) default '', + DEPLOY_TIME_ datetime, + primary key (ID_) +); + +create table ACT_RE_MODEL ( + ID_ nvarchar(64) not null, + REV_ int, + NAME_ nvarchar(255), + KEY_ nvarchar(255), + CATEGORY_ nvarchar(255), + CREATE_TIME_ datetime, + LAST_UPDATE_TIME_ datetime, + VERSION_ int, + META_INFO_ nvarchar(4000), + DEPLOYMENT_ID_ nvarchar(64), + EDITOR_SOURCE_VALUE_ID_ nvarchar(64), + EDITOR_SOURCE_EXTRA_VALUE_ID_ nvarchar(64), + TENANT_ID_ nvarchar(255) default '', + primary key (ID_) +); + +create table ACT_RU_EXECUTION ( + ID_ nvarchar(64), + REV_ int, + PROC_INST_ID_ nvarchar(64), + BUSINESS_KEY_ nvarchar(255), + PARENT_ID_ nvarchar(64), + PROC_DEF_ID_ nvarchar(64), + SUPER_EXEC_ nvarchar(64), + ACT_ID_ nvarchar(255), + IS_ACTIVE_ tinyint, + IS_CONCURRENT_ tinyint, + IS_SCOPE_ tinyint, + IS_EVENT_SCOPE_ tinyint, + SUSPENSION_STATE_ tinyint, + CACHED_ENT_STATE_ int, + TENANT_ID_ nvarchar(255) default '', + NAME_ nvarchar(255), + LOCK_TIME_ datetime, + primary key (ID_) +); + +create table ACT_RU_JOB ( + ID_ nvarchar(64) NOT NULL, + REV_ int, + TYPE_ nvarchar(255) NOT NULL, + LOCK_EXP_TIME_ datetime, + LOCK_OWNER_ nvarchar(255), + EXCLUSIVE_ bit, + EXECUTION_ID_ nvarchar(64), + PROCESS_INSTANCE_ID_ nvarchar(64), + PROC_DEF_ID_ nvarchar(64), + RETRIES_ int, + EXCEPTION_STACK_ID_ nvarchar(64), + EXCEPTION_MSG_ nvarchar(4000), + DUEDATE_ datetime NULL, + REPEAT_ nvarchar(255), + HANDLER_TYPE_ nvarchar(255), + HANDLER_CFG_ nvarchar(4000), + TENANT_ID_ nvarchar(255) default '', + primary key (ID_) +); + +create table ACT_RE_PROCDEF ( + ID_ nvarchar(64) not null, + REV_ int, + CATEGORY_ nvarchar(255), + NAME_ nvarchar(255), + KEY_ nvarchar(255) not null, + VERSION_ int not null, + DEPLOYMENT_ID_ nvarchar(64), + RESOURCE_NAME_ nvarchar(4000), + DGRM_RESOURCE_NAME_ nvarchar(4000), + DESCRIPTION_ nvarchar(4000), + HAS_START_FORM_KEY_ tinyint, + HAS_GRAPHICAL_NOTATION_ tinyint, + SUSPENSION_STATE_ tinyint, + TENANT_ID_ nvarchar(255) default '', + primary key (ID_) +); + +create table ACT_RU_TASK ( + ID_ nvarchar(64), + REV_ int, + EXECUTION_ID_ nvarchar(64), + PROC_INST_ID_ nvarchar(64), + PROC_DEF_ID_ nvarchar(64), + NAME_ nvarchar(255), + PARENT_TASK_ID_ nvarchar(64), + DESCRIPTION_ nvarchar(4000), + TASK_DEF_KEY_ nvarchar(255), + OWNER_ nvarchar(255), + ASSIGNEE_ nvarchar(255), + DELEGATION_ nvarchar(64), + PRIORITY_ int, + CREATE_TIME_ datetime, + DUE_DATE_ datetime, + CATEGORY_ nvarchar(255), + SUSPENSION_STATE_ int, + TENANT_ID_ nvarchar(255) default '', + FORM_KEY_ nvarchar(255), + primary key (ID_) +); + +create table ACT_RU_IDENTITYLINK ( + ID_ nvarchar(64), + REV_ int, + GROUP_ID_ nvarchar(255), + TYPE_ nvarchar(255), + USER_ID_ nvarchar(255), + TASK_ID_ nvarchar(64), + PROC_INST_ID_ nvarchar(64), + PROC_DEF_ID_ nvarchar(64), + primary key (ID_) +); + +create table ACT_RU_VARIABLE ( + ID_ nvarchar(64) not null, + REV_ int, + TYPE_ nvarchar(255) not null, + NAME_ nvarchar(255) not null, + EXECUTION_ID_ nvarchar(64), + PROC_INST_ID_ nvarchar(64), + TASK_ID_ nvarchar(64), + BYTEARRAY_ID_ nvarchar(64), + DOUBLE_ double precision, + LONG_ numeric(19,0), + TEXT_ nvarchar(4000), + TEXT2_ nvarchar(4000), + primary key (ID_) +); + +create table ACT_RU_EVENT_SUBSCR ( + ID_ nvarchar(64) not null, + REV_ int, + EVENT_TYPE_ nvarchar(255) not null, + EVENT_NAME_ nvarchar(255), + EXECUTION_ID_ nvarchar(64), + PROC_INST_ID_ nvarchar(64), + ACTIVITY_ID_ nvarchar(64), + CONFIGURATION_ nvarchar(255), + CREATED_ datetime not null, + PROC_DEF_ID_ nvarchar(64), + TENANT_ID_ nvarchar(255) default '', + primary key (ID_) +); + +create table ACT_EVT_LOG ( + LOG_NR_ numeric(19,0) IDENTITY(1,1), + TYPE_ nvarchar(64), + PROC_DEF_ID_ nvarchar(64), + PROC_INST_ID_ nvarchar(64), + EXECUTION_ID_ nvarchar(64), + TASK_ID_ nvarchar(64), + TIME_STAMP_ datetime not null, + USER_ID_ nvarchar(255), + DATA_ varbinary(max), + LOCK_OWNER_ nvarchar(255), + LOCK_TIME_ datetime null, + IS_PROCESSED_ tinyint default 0, + primary key (LOG_NR_) +); + +create table ACT_PROCDEF_INFO ( + ID_ nvarchar(64) not null, + PROC_DEF_ID_ nvarchar(64) not null, + REV_ int, + INFO_JSON_ID_ nvarchar(64), + primary key (ID_) +); + +create index ACT_IDX_EXEC_BUSKEY on ACT_RU_EXECUTION(BUSINESS_KEY_); +create index ACT_IDX_TASK_CREATE on ACT_RU_TASK(CREATE_TIME_); +create index ACT_IDX_IDENT_LNK_USER on ACT_RU_IDENTITYLINK(USER_ID_); +create index ACT_IDX_IDENT_LNK_GROUP on ACT_RU_IDENTITYLINK(GROUP_ID_); +create index ACT_IDX_EVENT_SUBSCR_CONFIG_ on ACT_RU_EVENT_SUBSCR(CONFIGURATION_); +create index ACT_IDX_VARIABLE_TASK_ID on ACT_RU_VARIABLE(TASK_ID_); +create index ACT_IDX_ATHRZ_PROCEDEF on ACT_RU_IDENTITYLINK(PROC_DEF_ID_); +create index ACT_IDX_EXECUTION_PROC on ACT_RU_EXECUTION(PROC_DEF_ID_); +create index ACT_IDX_EXECUTION_PARENT on ACT_RU_EXECUTION(PARENT_ID_); +create index ACT_IDX_EXECUTION_SUPER on ACT_RU_EXECUTION(SUPER_EXEC_); +create index ACT_IDX_EXECUTION_IDANDREV on ACT_RU_EXECUTION(ID_, REV_); +create index ACT_IDX_VARIABLE_BA on ACT_RU_VARIABLE(BYTEARRAY_ID_); +create index ACT_IDX_VARIABLE_EXEC on ACT_RU_VARIABLE(EXECUTION_ID_); +create index ACT_IDX_VARIABLE_PROCINST on ACT_RU_VARIABLE(PROC_INST_ID_); +create index ACT_IDX_IDENT_LNK_TASK on ACT_RU_IDENTITYLINK(TASK_ID_); +create index ACT_IDX_IDENT_LNK_PROCINST on ACT_RU_IDENTITYLINK(PROC_INST_ID_); +create index ACT_IDX_TASK_EXEC on ACT_RU_TASK(EXECUTION_ID_); +create index ACT_IDX_TASK_PROCINST on ACT_RU_TASK(PROC_INST_ID_); +create index ACT_IDX_EXEC_PROC_INST_ID on ACT_RU_EXECUTION(PROC_INST_ID_); +create index ACT_IDX_TASK_PROC_DEF_ID on ACT_RU_TASK(PROC_DEF_ID_); +create index ACT_IDX_EVENT_SUBSCR_EXEC_ID on ACT_RU_EVENT_SUBSCR(EXECUTION_ID_); +create index ACT_IDX_JOB_EXCEPTION_STACK_ID on ACT_RU_JOB(EXCEPTION_STACK_ID_); +create index ACT_IDX_INFO_PROCDEF on ACT_PROCDEF_INFO(PROC_DEF_ID_); + +alter table ACT_GE_BYTEARRAY + add constraint ACT_FK_BYTEARR_DEPL + foreign key (DEPLOYMENT_ID_) + references ACT_RE_DEPLOYMENT (ID_); + +alter table ACT_RE_PROCDEF + add constraint ACT_UNIQ_PROCDEF + unique (KEY_,VERSION_, TENANT_ID_); + +alter table ACT_RU_EXECUTION + add constraint ACT_FK_EXE_PARENT + foreign key (PARENT_ID_) + references ACT_RU_EXECUTION (ID_); + +alter table ACT_RU_EXECUTION + add constraint ACT_FK_EXE_SUPER + foreign key (SUPER_EXEC_) + references ACT_RU_EXECUTION (ID_); + +alter table ACT_RU_EXECUTION + add constraint ACT_FK_EXE_PROCDEF + foreign key (PROC_DEF_ID_) + references ACT_RE_PROCDEF (ID_); + +alter table ACT_RU_IDENTITYLINK + add constraint ACT_FK_TSKASS_TASK + foreign key (TASK_ID_) + references ACT_RU_TASK (ID_); + +alter table ACT_RU_IDENTITYLINK + add constraint ACT_FK_ATHRZ_PROCEDEF + foreign key (PROC_DEF_ID_) + references ACT_RE_PROCDEF (ID_); + +alter table ACT_RU_IDENTITYLINK + add constraint ACT_FK_IDL_PROCINST + foreign key (PROC_INST_ID_) + references ACT_RU_EXECUTION (ID_); + +alter table ACT_RU_TASK + add constraint ACT_FK_TASK_EXE + foreign key (EXECUTION_ID_) + references ACT_RU_EXECUTION (ID_); + +alter table ACT_RU_TASK + add constraint ACT_FK_TASK_PROCINST + foreign key (PROC_INST_ID_) + references ACT_RU_EXECUTION (ID_); + +alter table ACT_RU_TASK + add constraint ACT_FK_TASK_PROCDEF + foreign key (PROC_DEF_ID_) + references ACT_RE_PROCDEF (ID_); + +alter table ACT_RU_VARIABLE + add constraint ACT_FK_VAR_EXE + foreign key (EXECUTION_ID_) + references ACT_RU_EXECUTION (ID_); + +alter table ACT_RU_VARIABLE + add constraint ACT_FK_VAR_PROCINST + foreign key (PROC_INST_ID_) + references ACT_RU_EXECUTION(ID_); + +alter table ACT_RU_VARIABLE + add constraint ACT_FK_VAR_BYTEARRAY + foreign key (BYTEARRAY_ID_) + references ACT_GE_BYTEARRAY (ID_); + +alter table ACT_RU_JOB + add constraint ACT_FK_JOB_EXCEPTION + foreign key (EXCEPTION_STACK_ID_) + references ACT_GE_BYTEARRAY (ID_); + +alter table ACT_RU_EVENT_SUBSCR + add constraint ACT_FK_EVENT_EXEC + foreign key (EXECUTION_ID_) + references ACT_RU_EXECUTION(ID_); + +alter table ACT_RE_MODEL + add constraint ACT_FK_MODEL_SOURCE + foreign key (EDITOR_SOURCE_VALUE_ID_) + references ACT_GE_BYTEARRAY (ID_); + +alter table ACT_RE_MODEL + add constraint ACT_FK_MODEL_SOURCE_EXTRA + foreign key (EDITOR_SOURCE_EXTRA_VALUE_ID_) + references ACT_GE_BYTEARRAY (ID_); + +alter table ACT_RE_MODEL + add constraint ACT_FK_MODEL_DEPLOYMENT + foreign key (DEPLOYMENT_ID_) + references ACT_RE_DEPLOYMENT (ID_); + +alter table ACT_PROCDEF_INFO + add constraint ACT_FK_INFO_JSON_BA + foreign key (INFO_JSON_ID_) + references ACT_GE_BYTEARRAY (ID_); + +alter table ACT_PROCDEF_INFO + add constraint ACT_FK_INFO_PROCDEF + foreign key (PROC_DEF_ID_) + references ACT_RE_PROCDEF (ID_); + +alter table ACT_PROCDEF_INFO + add constraint ACT_UNIQ_INFO_PROCDEF + unique (PROC_DEF_ID_); + +create table ACT_HI_PROCINST ( + ID_ nvarchar(64) not null, + PROC_INST_ID_ nvarchar(64) not null, + BUSINESS_KEY_ nvarchar(255), + PROC_DEF_ID_ nvarchar(64) not null, + START_TIME_ datetime not null, + END_TIME_ datetime, + DURATION_ numeric(19,0), + START_USER_ID_ nvarchar(255), + START_ACT_ID_ nvarchar(255), + END_ACT_ID_ nvarchar(255), + SUPER_PROCESS_INSTANCE_ID_ nvarchar(64), + DELETE_REASON_ nvarchar(4000), + TENANT_ID_ nvarchar(255) default '', + NAME_ nvarchar(255), + primary key (ID_), + unique (PROC_INST_ID_) +); + +create table ACT_HI_ACTINST ( + ID_ nvarchar(64) not null, + PROC_DEF_ID_ nvarchar(64) not null, + PROC_INST_ID_ nvarchar(64) not null, + EXECUTION_ID_ nvarchar(64) not null, + ACT_ID_ nvarchar(255) not null, + TASK_ID_ nvarchar(64), + CALL_PROC_INST_ID_ nvarchar(64), + ACT_NAME_ nvarchar(255), + ACT_TYPE_ nvarchar(255) not null, + ASSIGNEE_ nvarchar(255), + START_TIME_ datetime not null, + END_TIME_ datetime, + DURATION_ numeric(19,0), + TENANT_ID_ nvarchar(255) default '', + primary key (ID_) +); + +create table ACT_HI_TASKINST ( + ID_ nvarchar(64) not null, + PROC_DEF_ID_ nvarchar(64), + TASK_DEF_KEY_ nvarchar(255), + PROC_INST_ID_ nvarchar(64), + EXECUTION_ID_ nvarchar(64), + NAME_ nvarchar(255), + PARENT_TASK_ID_ nvarchar(64), + DESCRIPTION_ nvarchar(4000), + OWNER_ nvarchar(255), + ASSIGNEE_ nvarchar(255), + START_TIME_ datetime not null, + CLAIM_TIME_ datetime, + END_TIME_ datetime, + DURATION_ numeric(19,0), + DELETE_REASON_ nvarchar(4000), + PRIORITY_ int, + DUE_DATE_ datetime, + FORM_KEY_ nvarchar(255), + CATEGORY_ nvarchar(255), + TENANT_ID_ nvarchar(255) default '', + primary key (ID_) +); + +create table ACT_HI_VARINST ( + ID_ nvarchar(64) not null, + PROC_INST_ID_ nvarchar(64), + EXECUTION_ID_ nvarchar(64), + TASK_ID_ nvarchar(64), + NAME_ nvarchar(255) not null, + VAR_TYPE_ nvarchar(100), + REV_ int, + BYTEARRAY_ID_ nvarchar(64), + DOUBLE_ double precision, + LONG_ numeric(19,0), + TEXT_ nvarchar(4000), + TEXT2_ nvarchar(4000), + CREATE_TIME_ datetime, + LAST_UPDATED_TIME_ datetime, + primary key (ID_) +); + +create table ACT_HI_DETAIL ( + ID_ nvarchar(64) not null, + TYPE_ nvarchar(255) not null, + PROC_INST_ID_ nvarchar(64), + EXECUTION_ID_ nvarchar(64), + TASK_ID_ nvarchar(64), + ACT_INST_ID_ nvarchar(64), + NAME_ nvarchar(255) not null, + VAR_TYPE_ nvarchar(255), + REV_ int, + TIME_ datetime not null, + BYTEARRAY_ID_ nvarchar(64), + DOUBLE_ double precision, + LONG_ numeric(19,0), + TEXT_ nvarchar(4000), + TEXT2_ nvarchar(4000), + primary key (ID_) +); + +create table ACT_HI_COMMENT ( + ID_ nvarchar(64) not null, + TYPE_ nvarchar(255), + TIME_ datetime not null, + USER_ID_ nvarchar(255), + TASK_ID_ nvarchar(64), + PROC_INST_ID_ nvarchar(64), + ACTION_ nvarchar(255), + MESSAGE_ nvarchar(4000), + FULL_MSG_ varbinary(max), + primary key (ID_) +); + +create table ACT_HI_ATTACHMENT ( + ID_ nvarchar(64) not null, + REV_ integer, + USER_ID_ nvarchar(255), + NAME_ nvarchar(255), + DESCRIPTION_ nvarchar(4000), + TYPE_ nvarchar(255), + TASK_ID_ nvarchar(64), + PROC_INST_ID_ nvarchar(64), + URL_ nvarchar(4000), + CONTENT_ID_ nvarchar(64), + TIME_ datetime, + primary key (ID_) +); + +create table ACT_HI_IDENTITYLINK ( + ID_ nvarchar(64), + GROUP_ID_ nvarchar(255), + TYPE_ nvarchar(255), + USER_ID_ nvarchar(255), + TASK_ID_ nvarchar(64), + PROC_INST_ID_ nvarchar(64), + primary key (ID_) +); + + +create index ACT_IDX_HI_PRO_INST_END on ACT_HI_PROCINST(END_TIME_); +create index ACT_IDX_HI_PRO_I_BUSKEY on ACT_HI_PROCINST(BUSINESS_KEY_); +create index ACT_IDX_HI_ACT_INST_START on ACT_HI_ACTINST(START_TIME_); +create index ACT_IDX_HI_ACT_INST_END on ACT_HI_ACTINST(END_TIME_); +create index ACT_IDX_HI_DETAIL_PROC_INST on ACT_HI_DETAIL(PROC_INST_ID_); +create index ACT_IDX_HI_DETAIL_ACT_INST on ACT_HI_DETAIL(ACT_INST_ID_); +create index ACT_IDX_HI_DETAIL_TIME on ACT_HI_DETAIL(TIME_); +create index ACT_IDX_HI_DETAIL_NAME on ACT_HI_DETAIL(NAME_); +create index ACT_IDX_HI_DETAIL_TASK_ID on ACT_HI_DETAIL(TASK_ID_); +create index ACT_IDX_HI_PROCVAR_PROC_INST on ACT_HI_VARINST(PROC_INST_ID_); +create index ACT_IDX_HI_PROCVAR_NAME_TYPE on ACT_HI_VARINST(NAME_, VAR_TYPE_); +create index ACT_IDX_HI_PROCVAR_TASK_ID on ACT_HI_VARINST(TASK_ID_); +create index ACT_IDX_HI_ACT_INST_PROCINST on ACT_HI_ACTINST(PROC_INST_ID_, ACT_ID_); +create index ACT_IDX_HI_ACT_INST_EXEC on ACT_HI_ACTINST(EXECUTION_ID_, ACT_ID_); +create index ACT_IDX_HI_IDENT_LNK_USER on ACT_HI_IDENTITYLINK(USER_ID_); +create index ACT_IDX_HI_IDENT_LNK_TASK on ACT_HI_IDENTITYLINK(TASK_ID_); +create index ACT_IDX_HI_IDENT_LNK_PROCINST on ACT_HI_IDENTITYLINK(PROC_INST_ID_); +create index ACT_IDX_HI_TASK_INST_PROCINST on ACT_HI_TASKINST(PROC_INST_ID_); + +create table ACT_ID_GROUP ( + ID_ nvarchar(64), + REV_ int, + NAME_ nvarchar(255), + TYPE_ nvarchar(255), + primary key (ID_) +); + +create table ACT_ID_MEMBERSHIP ( + USER_ID_ nvarchar(64), + GROUP_ID_ nvarchar(64), + primary key (USER_ID_, GROUP_ID_) +); + +create table ACT_ID_USER ( + ID_ nvarchar(64), + REV_ int, + FIRST_ nvarchar(255), + LAST_ nvarchar(255), + EMAIL_ nvarchar(255), + PWD_ nvarchar(255), + PICTURE_ID_ nvarchar(64), + primary key (ID_) +); + +create table ACT_ID_INFO ( + ID_ nvarchar(64), + REV_ int, + USER_ID_ nvarchar(64), + TYPE_ nvarchar(64), + KEY_ nvarchar(255), + VALUE_ nvarchar(255), + PASSWORD_ varbinary(max), + PARENT_ID_ nvarchar(255), + primary key (ID_) +); + +alter table ACT_ID_MEMBERSHIP + add constraint ACT_FK_MEMB_GROUP + foreign key (GROUP_ID_) + references ACT_ID_GROUP (ID_); + +alter table ACT_ID_MEMBERSHIP + add constraint ACT_FK_MEMB_USER + foreign key (USER_ID_) + references ACT_ID_USER (ID_); diff --git a/config/sql/_all/sqlserver-upgrade-3.8-3.9.sql b/config/sql/_all/sqlserver-upgrade-3.8-3.9.sql new file mode 100644 index 00000000000..56fb83dfce0 --- /dev/null +++ b/config/sql/_all/sqlserver-upgrade-3.8-3.9.sql @@ -0,0 +1,14 @@ +CREATE TABLE m_object_collection ( + name_norm NVARCHAR(255) COLLATE database_default, + name_orig NVARCHAR(255) COLLATE database_default, + oid NVARCHAR(36) COLLATE database_default NOT NULL, + PRIMARY KEY (oid) +); + +CREATE INDEX iObjectCollectionNameOrig + ON m_object_collection (name_orig); +ALTER TABLE m_object_collection + ADD CONSTRAINT uc_object_collection_name UNIQUE (name_norm); + +ALTER TABLE m_object_collection + ADD CONSTRAINT fk_object_collection FOREIGN KEY (oid) REFERENCES m_object; diff --git a/custom/pom.xml b/custom/pom.xml index e224110f71b..1cca125309f 100644 --- a/custom/pom.xml +++ b/custom/pom.xml @@ -23,7 +23,7 @@ parent com.evolveum.midpoint - 3.8-SNAPSHOT + 3.9-SNAPSHOT ../build-system/pom.xml diff --git a/dist/midpoint-api/pom.xml b/dist/midpoint-api/pom.xml index 458a7f248cb..6491818c696 100644 --- a/dist/midpoint-api/pom.xml +++ b/dist/midpoint-api/pom.xml @@ -24,7 +24,7 @@ parent com.evolveum.midpoint - 3.8-SNAPSHOT + 3.9-SNAPSHOT ../../build-system/pom.xml @@ -51,31 +51,31 @@ com.evolveum.midpoint.model model-api - 3.8-SNAPSHOT + 3.9-SNAPSHOT compile com.evolveum.midpoint.infra common - 3.8-SNAPSHOT + 3.9-SNAPSHOT compile com.evolveum.midpoint.infra schema - 3.8-SNAPSHOT + 3.9-SNAPSHOT compile com.evolveum.midpoint.infra prism - 3.8-SNAPSHOT + 3.9-SNAPSHOT compile com.evolveum.midpoint.infra util - 3.8-SNAPSHOT + 3.9-SNAPSHOT compile diff --git a/dist/pom.xml b/dist/pom.xml index 399bf41f235..f317a526250 100644 --- a/dist/pom.xml +++ b/dist/pom.xml @@ -24,7 +24,7 @@ parent com.evolveum.midpoint - 3.8-SNAPSHOT + 3.9-SNAPSHOT ../build-system/pom.xml @@ -51,13 +51,13 @@ com.evolveum.midpoint.gui admin-gui - 3.8-SNAPSHOT + 3.9-SNAPSHOT war com.evolveum.midpoint.tools ninja - 3.8-SNAPSHOT + 3.9-SNAPSHOT org.testng @@ -71,7 +71,7 @@ com.evolveum.midpoint.tools schema-dist-maven-plugin - 3.8-SNAPSHOT + 3.9-SNAPSHOT schemadist-prism diff --git a/dist/src/main/bin/midpoint.bat b/dist/src/main/bin/midpoint.bat index 12be71bef7c..d74026dd21b 100644 --- a/dist/src/main/bin/midpoint.bat +++ b/dist/src/main/bin/midpoint.bat @@ -49,7 +49,7 @@ echo Using JAVA_OPTS: "%JAVA_OPTS%" echo Using parameters: "%*" echo. echo Starting midPoint. -start /b %RUN_JAVA% -jar %JAVA_OPTS% -Xms2048M -Xmx2048M -Dpython.cachedir="%MIDPOINT_HOME%\tmp" -Djavax.net.ssl.trustStore="%MIDPOINT_HOME%\keystore.jceks" -Djavax.net.ssl.trustStoreType=jceks -Dmidpoint.home="%MIDPOINT_HOME%" "%LIB_DIR%\midpoint.war" %* > "%BOOT_OUT%" 2>&1 +start /b %RUN_JAVA% -jar %JAVA_OPTS% -Xms2048M -Xmx4096M -Dpython.cachedir="%MIDPOINT_HOME%\tmp" -Djavax.net.ssl.trustStore="%MIDPOINT_HOME%\keystore.jceks" -Djavax.net.ssl.trustStoreType=jceks -Dmidpoint.home="%MIDPOINT_HOME%" "%LIB_DIR%\midpoint.war" %* > "%BOOT_OUT%" 2>&1 goto end :doStop diff --git a/dist/src/main/bin/midpoint.sh b/dist/src/main/bin/midpoint.sh index b4fc65a8330..cd36382a77a 100755 --- a/dist/src/main/bin/midpoint.sh +++ b/dist/src/main/bin/midpoint.sh @@ -50,7 +50,7 @@ if [ -z "$MIDPOINT_HOME" ] ; then fi JAVA_OPTS="$JAVA_OPTS -Xms2048M --Xmx2048M +-Xmx4096M -Dpython.cachedir=$MIDPOINT_HOME/tmp -Djavax.net.ssl.trustStore=$MIDPOINT_HOME/keystore.jceks -Djavax.net.ssl.trustStoreType=jceks diff --git a/dist/src/main/bin/ninja37.bat b/dist/src/main/bin/ninja37.bat index c1cf554ba09..6cbc9febe91 100644 --- a/dist/src/main/bin/ninja37.bat +++ b/dist/src/main/bin/ninja37.bat @@ -2,7 +2,7 @@ setlocal -set NINJA_JAR=ninja-3.7.2-SNAPSHOT.jar +set NINJA_JAR=ninja-3.7.2.jar set BIN_DIR=%~dp0 set ROOT_DIR=%BIN_DIR%.. diff --git a/dist/src/main/bin/ninja37.sh b/dist/src/main/bin/ninja37.sh index 22320ab1d0f..45ad0d956e4 100755 --- a/dist/src/main/bin/ninja37.sh +++ b/dist/src/main/bin/ninja37.sh @@ -48,7 +48,7 @@ fi #cd "$SCRIPT_PATH../lib" -NINJA_JAR=ninja-3.7.2-SNAPSHOT.jar +NINJA_JAR=ninja-3.7.2.jar if [ ! -f lib/$NINJA_JAR ] ; then echo "ERROR: $NINJA_JAR is not in /lib directory" diff --git a/gui/admin-gui/pom.xml b/gui/admin-gui/pom.xml index 60c9a8fd74c..aed104bbfd0 100644 --- a/gui/admin-gui/pom.xml +++ b/gui/admin-gui/pom.xml @@ -24,7 +24,7 @@ gui com.evolveum.midpoint - 3.8-SNAPSHOT + 3.9-SNAPSHOT https://github.com/Evolveum/midpoint.git @@ -122,6 +122,7 @@ + org.springframework.boot @@ -210,7 +211,7 @@ org.webjars webjars-locator-core - 0.32 + 0.35 ro.isdc.wro4j @@ -306,22 +307,22 @@ com.evolveum.midpoint.infra util - 3.8-SNAPSHOT + 3.9-SNAPSHOT com.evolveum.midpoint.infra prism - 3.8-SNAPSHOT + 3.9-SNAPSHOT com.evolveum.midpoint.infra schema - 3.8-SNAPSHOT + 3.9-SNAPSHOT com.evolveum.midpoint.repo repo-api - 3.8-SNAPSHOT + 3.9-SNAPSHOT jaxb-impl @@ -340,63 +341,63 @@ com.evolveum.midpoint.repo repo-common - 3.8-SNAPSHOT + 3.9-SNAPSHOT com.evolveum.midpoint.model report-api - 3.8-SNAPSHOT + 3.9-SNAPSHOT com.evolveum.midpoint.model model-api - 3.8-SNAPSHOT + 3.9-SNAPSHOT com.evolveum.midpoint.model model-common - 3.8-SNAPSHOT + 3.9-SNAPSHOT com.evolveum.midpoint.repo security-api - 3.8-SNAPSHOT + 3.9-SNAPSHOT com.evolveum.midpoint.repo security-enforcer-api - 3.8-SNAPSHOT + 3.9-SNAPSHOT com.evolveum.midpoint.model workflow-api - 3.8-SNAPSHOT + 3.9-SNAPSHOT com.evolveum.midpoint.model certification-api - 3.8-SNAPSHOT + 3.9-SNAPSHOT com.evolveum.midpoint.repo audit-api - 3.8-SNAPSHOT + 3.9-SNAPSHOT com.evolveum.midpoint.repo task-api - 3.8-SNAPSHOT + 3.9-SNAPSHOT com.evolveum.midpoint.repo system-init - 3.8-SNAPSHOT + 3.9-SNAPSHOT com.evolveum.midpoint.repo repo-sql-impl - 3.8-SNAPSHOT + 3.9-SNAPSHOT runtime @@ -404,11 +405,6 @@ spring-aspects runtime - - org.springframework - spring-aop - runtime - org.codehaus.groovy groovy-all @@ -421,7 +417,7 @@ com.evolveum.midpoint.repo repo-cache - 3.8-SNAPSHOT + 3.9-SNAPSHOT runtime @@ -441,31 +437,31 @@ com.evolveum.midpoint.repo task-quartz-impl - 3.8-SNAPSHOT + 3.9-SNAPSHOT runtime com.evolveum.midpoint.repo audit-impl - 3.8-SNAPSHOT + 3.9-SNAPSHOT runtime com.evolveum.midpoint.repo security-impl - 3.8-SNAPSHOT + 3.9-SNAPSHOT runtime com.evolveum.midpoint.repo security-enforcer-impl - 3.8-SNAPSHOT + 3.9-SNAPSHOT runtime com.evolveum.midpoint.model model-impl - 3.8-SNAPSHOT + 3.9-SNAPSHOT runtime @@ -477,31 +473,31 @@ com.evolveum.midpoint.model certification-impl - 3.8-SNAPSHOT + 3.9-SNAPSHOT runtime com.evolveum.midpoint.model workflow-impl - 3.8-SNAPSHOT + 3.9-SNAPSHOT runtime com.evolveum.midpoint.model notifications-impl - 3.8-SNAPSHOT + 3.9-SNAPSHOT runtime com.evolveum.midpoint.provisioning provisioning-impl - 3.8-SNAPSHOT + 3.9-SNAPSHOT runtime com.evolveum.midpoint.model report-impl - 3.8-SNAPSHOT + 3.9-SNAPSHOT runtime @@ -518,7 +514,7 @@ com.evolveum.midpoint.infra common - 3.8-SNAPSHOT + 3.9-SNAPSHOT xml-apis @@ -544,6 +540,10 @@ org.springframework spring-context + + org.springframework + spring-aop + @@ -721,34 +721,35 @@ + com.evolveum.midpoint.infra test-util - 3.8-SNAPSHOT + 3.9-SNAPSHOT test com.evolveum.midpoint.repo repo-test-util - 3.8-SNAPSHOT + 3.9-SNAPSHOT test com.evolveum.midpoint.repo repo-sql-impl-test - 3.8-SNAPSHOT + 3.9-SNAPSHOT test com.evolveum.midpoint.tools test-ng - 3.8-SNAPSHOT + 3.9-SNAPSHOT test com.evolveum.icf dummy-resource - 3.8-SNAPSHOT + 3.9-SNAPSHOT test @@ -756,6 +757,11 @@ spring-test test + + javax.annotation + javax.annotation-api + test + @@ -874,7 +880,7 @@ com.evolveum.midpoint.model model-test - 3.8-SNAPSHOT + 3.9-SNAPSHOT test diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/AbstractAssignmentPopupTabPanel.html b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/AbstractAssignmentPopupTabPanel.html new file mode 100644 index 00000000000..8fde94158ed --- /dev/null +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/AbstractAssignmentPopupTabPanel.html @@ -0,0 +1,20 @@ + + + +
+ + diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/AbstractAssignmentPopupTabPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/AbstractAssignmentPopupTabPanel.java new file mode 100644 index 00000000000..0f3261cd2d2 --- /dev/null +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/AbstractAssignmentPopupTabPanel.java @@ -0,0 +1,138 @@ +/* + * Copyright (c) 2010-2018 Evolveum + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.evolveum.midpoint.gui.api.component; + +import com.evolveum.midpoint.model.api.ModelInteractionService; +import com.evolveum.midpoint.model.api.RoleSelectionSpecification; +import com.evolveum.midpoint.prism.query.ObjectFilter; +import com.evolveum.midpoint.prism.query.ObjectQuery; +import com.evolveum.midpoint.schema.constants.ObjectTypes; +import com.evolveum.midpoint.schema.result.OperationResult; +import com.evolveum.midpoint.task.api.Task; +import com.evolveum.midpoint.util.logging.LoggingUtils; +import com.evolveum.midpoint.util.logging.Trace; +import com.evolveum.midpoint.util.logging.TraceManager; +import com.evolveum.midpoint.web.component.util.SelectableBean; +import com.evolveum.midpoint.web.security.SecurityUtils; +import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType; +import com.evolveum.midpoint.xml.ns._public.common.common_3.RoleType; +import org.apache.wicket.ajax.AjaxRequestTarget; +import org.apache.wicket.model.IModel; +import org.apache.wicket.model.Model; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by honchar. + */ +public abstract class AbstractAssignmentPopupTabPanel extends BasePanel { + + private static final long serialVersionUID = 1L; + + private static final String ID_OBJECT_LIST_PANEL = "objectListPanel"; + + private static final String DOT_CLASS = AbstractAssignmentPopupTabPanel.class.getName(); + private static final Trace LOGGER = TraceManager.getTrace(AbstractAssignmentPopupTabPanel.class); + private static final String OPERATION_LOAD_ASSIGNABLE_ROLES = DOT_CLASS + "loadAssignableRoles"; + + private ObjectTypes type; + + public AbstractAssignmentPopupTabPanel(String id, ObjectTypes type){ + super(id); + this.type = type; + } + + @Override + protected void onInitialize(){ + super.onInitialize(); + add(initObjectListPanel()); + initParametersPanel(); + } + + private PopupObjectListPanel initObjectListPanel(){ + PopupObjectListPanel listPanel = new PopupObjectListPanel(ID_OBJECT_LIST_PANEL, (Class)type.getClassDefinition(), true, getPageBase()) { + + private static final long serialVersionUID = 1L; + + @Override + protected void onUpdateCheckbox(AjaxRequestTarget target) { +// if (type.equals(ObjectTypes.RESOURCE)) { +// target.add(AbstractAssignmentPopupTabPanel.this); +// } + onSelectionPerformed(target); + } + + @Override + protected IModel getCheckBoxEnableModel(IModel> rowModel){ + return getObjectSelectCheckBoxEnableModel(rowModel); + } + + @Override + protected ObjectQuery addFilterToContentQuery(ObjectQuery query) { + if (type.equals(RoleType.COMPLEX_TYPE)) { + LOGGER.debug("Loading roles which the current user has right to assign"); + Task task = AbstractAssignmentPopupTabPanel.this.getPageBase().createSimpleTask(OPERATION_LOAD_ASSIGNABLE_ROLES); + OperationResult result = task.getResult(); + ObjectFilter filter = null; + try { + ModelInteractionService mis = AbstractAssignmentPopupTabPanel.this.getPageBase().getModelInteractionService(); + RoleSelectionSpecification roleSpec = + mis.getAssignableRoleSpecification(SecurityUtils.getPrincipalUser().getUser().asPrismObject(), task, result); + filter = roleSpec.getFilter(); + } catch (Exception ex) { + LoggingUtils.logUnexpectedException(LOGGER, "Couldn't load available roles", ex); + result.recordFatalError("Couldn't load available roles", ex); + } finally { + result.recomputeStatus(); + } + if (!result.isSuccess() && !result.isHandledError()) { + AbstractAssignmentPopupTabPanel.this.getPageBase().showResult(result); + } + if (query == null){ + query = new ObjectQuery(); + } + query.addFilter(filter); + } + return query; + } + + }; + + listPanel.setOutputMarkupId(true); + return listPanel; + } + + protected PopupObjectListPanel getObjectListPanel(){ + return (PopupObjectListPanel)get(ID_OBJECT_LIST_PANEL); + } + + protected List getSelectedObjectsList(){ + PopupObjectListPanel objectListPanel = getObjectListPanel(); + if (objectListPanel == null){ + return new ArrayList(); + } + return objectListPanel.getSelectedObjects(); + } + + protected IModel getObjectSelectCheckBoxEnableModel(IModel> rowModel){ + return Model.of(true); + } + + protected abstract void initParametersPanel(); + + protected void onSelectionPerformed(AjaxRequestTarget target){} +} diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/AssignmentPopup.html b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/AssignmentPopup.html new file mode 100644 index 00000000000..3fb7bc0dd13 --- /dev/null +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/AssignmentPopup.html @@ -0,0 +1,26 @@ + + + +
+
+ +

+ + +

+ + diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/AssignmentPopup.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/AssignmentPopup.java new file mode 100644 index 00000000000..00cf07251e7 --- /dev/null +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/AssignmentPopup.java @@ -0,0 +1,287 @@ +package com.evolveum.midpoint.gui.api.component; + +import com.evolveum.midpoint.gui.api.component.tabs.CountablePanelTab; +import com.evolveum.midpoint.gui.api.util.WebComponentUtil; +import com.evolveum.midpoint.schema.constants.ObjectTypes; +import com.evolveum.midpoint.schema.util.ObjectTypeUtil; +import com.evolveum.midpoint.web.component.AjaxButton; +import com.evolveum.midpoint.web.component.TabbedPanel; +import com.evolveum.midpoint.web.component.dialog.Popupable; +import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour; +import com.evolveum.midpoint.xml.ns._public.common.common_3.*; +import org.apache.wicket.Component; +import org.apache.wicket.ajax.AjaxRequestTarget; +import org.apache.wicket.extensions.markup.html.tabs.ITab; +import org.apache.wicket.markup.html.WebMarkupContainer; +import org.apache.wicket.markup.html.form.Form; +import org.apache.wicket.markup.html.list.Loop; +import org.apache.wicket.model.IModel; +import org.apache.wicket.model.Model; +import org.apache.wicket.model.StringResourceModel; + +import javax.xml.namespace.QName; +import java.util.ArrayList; +import java.util.List; + +/** + * Created by honchar. + */ +public class AssignmentPopup extends BasePanel implements Popupable{ + private static final long serialVersionUID = 1L; + + private static final String ID_TABS_PANEL = "tabsPanel"; + private static final String ID_CANCEL_BUTTON = "cancelButton"; + private static final String ID_ASSIGN_BUTTON = "assignButton"; + private static final String ID_FORM = "form"; + + private FocusTypeAssignmentPopupTabPanel rolesTabPanel; + private FocusTypeAssignmentPopupTabPanel orgsTabPanel; + private FocusTypeAssignmentPopupTabPanel servicesTabPanel; + private FocusTypeAssignmentPopupTabPanel usersTabPanel; + private ResourceTypeAssignmentPopupTabPanel resourcesTabPanel; + + + public AssignmentPopup(String id){ + super(id); + } + + @Override + protected void onInitialize(){ + super.onInitialize(); + + Form form = new Form(ID_FORM); + form.setOutputMarkupId(true); + add(form); + + List tabs = createAssignmentTabs(); + TabbedPanel tabPanel = WebComponentUtil.createTabPanel(ID_TABS_PANEL, getPageBase(), tabs, null); + tabPanel.setOutputMarkupId(true); + form.add(tabPanel); + + AjaxButton cancelButton = new AjaxButton(ID_CANCEL_BUTTON, + createStringResource("userBrowserDialog.button.cancelButton")) { + + private static final long serialVersionUID = 1L; + + @Override + public void onClick(AjaxRequestTarget target) { +// TypedAssignablePanel.this.assignButtonClicked(target, new ArrayList<>()); + } + }; + cancelButton.setOutputMarkupId(true); + form.add(cancelButton); + + AjaxButton addButton = new AjaxButton(ID_ASSIGN_BUTTON, + createStringResource("userBrowserDialog.button.addButton")) { + + private static final long serialVersionUID = 1L; + + @Override + public void onClick(AjaxRequestTarget target) { + List newAssignmentsList = new ArrayList<>(); + if (rolesTabPanel != null){ + List selectedRoles = rolesTabPanel.getSelectedObjectsList(); + QName relation = rolesTabPanel.getRelationValue(); + selectedRoles.forEach(selectedRole -> { + ObjectReferenceType ref = ObjectTypeUtil.createObjectRef(selectedRole, relation); + AssignmentType newAssignment = new AssignmentType(); + newAssignment.setTargetRef(ref); + newAssignmentsList.add(newAssignment); + }); + } + if (orgsTabPanel != null){ + List selectedOrgs = orgsTabPanel.getSelectedObjectsList(); + QName relation = orgsTabPanel.getRelationValue(); + selectedOrgs.forEach(selectedOrg -> { + ObjectReferenceType ref = ObjectTypeUtil.createObjectRef(selectedOrg, relation); + AssignmentType newAssignment = new AssignmentType(); + newAssignment.setTargetRef(ref); + newAssignmentsList.add(newAssignment); + }); + } + if (servicesTabPanel != null){ + List selectedServices = servicesTabPanel.getSelectedObjectsList(); + QName relation = servicesTabPanel.getRelationValue(); + selectedServices.forEach(selectedService -> { + ObjectReferenceType ref = ObjectTypeUtil.createObjectRef(selectedService, relation); + AssignmentType newAssignment = new AssignmentType(); + newAssignment.setTargetRef(ref); + newAssignmentsList.add(newAssignment); + }); + } + if (resourcesTabPanel != null){ + List selectedResourcces = resourcesTabPanel.getSelectedObjectsList(); + String intent = resourcesTabPanel.getIntentValue(); + ShadowKindType kind = resourcesTabPanel.getKindValue(); + selectedResourcces.forEach(selectedResource -> { + ConstructionType constructionType = new ConstructionType(); + ObjectReferenceType ref = ObjectTypeUtil.createObjectRef(selectedResource); + constructionType.setResourceRef(ref); + constructionType.setKind(kind); + constructionType.setIntent(intent); + + AssignmentType newAssignment = new AssignmentType(); + newAssignment.setConstruction(constructionType); + newAssignmentsList.add(newAssignment); + }); + } + addPerformed(target, newAssignmentsList); + + } + }; + addButton.setOutputMarkupId(true); + form.add(addButton); + } + + private List createAssignmentTabs() { + List tabs = new ArrayList<>(); + VisibleEnableBehaviour authorization = new VisibleEnableBehaviour(){ + }; + + tabs.add(new CountablePanelTab(getPageBase().createStringResource("ObjectTypes.ROLE"), authorization) { + + private static final long serialVersionUID = 1L; + + @Override + public WebMarkupContainer createPanel(String panelId) { + rolesTabPanel = new FocusTypeAssignmentPopupTabPanel(panelId, ObjectTypes.ROLE){ + private static final long serialVersionUID = 1L; + + @Override + protected void onSelectionPerformed(AjaxRequestTarget target){ + tabLabelPanelUpdate(target); + } + }; + return rolesTabPanel; + } + + @Override + public String getCount() { + if (rolesTabPanel == null){ + return "0"; + } + return Integer.toString(rolesTabPanel.getObjectListPanel().getSelectedObjectsCount()); + } + }); + + tabs.add( + new CountablePanelTab(getPageBase().createStringResource("ObjectTypes.ORG"), authorization) { + + private static final long serialVersionUID = 1L; + + @Override + public WebMarkupContainer createPanel(String panelId) { + orgsTabPanel = new FocusTypeAssignmentPopupTabPanel(panelId, ObjectTypes.ORG){ + private static final long serialVersionUID = 1L; + + @Override + protected void onSelectionPerformed(AjaxRequestTarget target){ + tabLabelPanelUpdate(target); + } + + }; + return orgsTabPanel; + } + + @Override + public String getCount() { + if (orgsTabPanel == null){ + return "0"; + } + return Integer.toString(orgsTabPanel.getObjectListPanel().getSelectedObjectsCount()); + } + }); + + tabs.add( + new CountablePanelTab(getPageBase().createStringResource("ObjectTypes.SERVICE"), authorization) { + + private static final long serialVersionUID = 1L; + + @Override + public WebMarkupContainer createPanel(String panelId) { + servicesTabPanel = new FocusTypeAssignmentPopupTabPanel(panelId, ObjectTypes.SERVICE){ + private static final long serialVersionUID = 1L; + + @Override + protected void onSelectionPerformed(AjaxRequestTarget target){ + tabLabelPanelUpdate(target); + } + + }; + return servicesTabPanel; + } + + @Override + public String getCount() { + if (servicesTabPanel == null){ + return "0"; + } + return Integer.toString(servicesTabPanel.getObjectListPanel().getSelectedObjectsCount()); + } + }); + + tabs.add( + new CountablePanelTab(getPageBase().createStringResource("ObjectTypes.RESOURCE"), authorization) { + + private static final long serialVersionUID = 1L; + + @Override + public WebMarkupContainer createPanel(String panelId) { + resourcesTabPanel = new ResourceTypeAssignmentPopupTabPanel(panelId){ + private static final long serialVersionUID = 1L; + + @Override + protected void onSelectionPerformed(AjaxRequestTarget target){ + super.onSelectionPerformed(target); + tabLabelPanelUpdate(target); + } + }; + return resourcesTabPanel; + } + + @Override + public String getCount() { + if (resourcesTabPanel == null){ + return "0"; + } + return Integer.toString(resourcesTabPanel.getObjectListPanel().getSelectedObjectsCount()); + } + }); + + return tabs; + } + + private TabbedPanel getTabbedPanel(){ + return (TabbedPanel) get(ID_FORM).get(ID_TABS_PANEL); + } + + private void tabLabelPanelUpdate(AjaxRequestTarget target){ +// TabbedPanel tabbedPanel = getTabbedPanel(); +// Loop tabs = tabbedPanel.getTabsPanel(); +// tabs.forEach(tabPanel -> { +// target.add(tabPanel.get(tabbedPanel.getTabLinkPanelId())); +// }); + + target.add(getTabbedPanel()); + } + + protected void addPerformed(AjaxRequestTarget target, List newAssignmentsList) { + getPageBase().hideMainPopup(target); + } + + public int getWidth(){ + return 900; + } + + public int getHeight(){ + return 1200; + } + + public StringResourceModel getTitle(){ + return createStringResource("TypedAssignablePanel.selectObjects"); + } + + public Component getComponent(){ + return this; + } +} diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/FocusTypeAssignmentPopupTabPanel.html b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/FocusTypeAssignmentPopupTabPanel.html new file mode 100644 index 00000000000..6877a08ae86 --- /dev/null +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/FocusTypeAssignmentPopupTabPanel.html @@ -0,0 +1,38 @@ + + + + + +
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+
+
+
+ diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/FocusTypeAssignmentPopupTabPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/FocusTypeAssignmentPopupTabPanel.java new file mode 100644 index 00000000000..4197c319b25 --- /dev/null +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/FocusTypeAssignmentPopupTabPanel.java @@ -0,0 +1,78 @@ +/* + * Copyright (c) 2010-2018 Evolveum + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.evolveum.midpoint.gui.api.component; + +import com.evolveum.midpoint.gui.api.util.WebComponentUtil; +import com.evolveum.midpoint.schema.constants.ObjectTypes; +import com.evolveum.midpoint.schema.constants.SchemaConstants; +import com.evolveum.midpoint.util.logging.Trace; +import com.evolveum.midpoint.util.logging.TraceManager; +import com.evolveum.midpoint.web.component.assignment.RelationTypes; +import com.evolveum.midpoint.web.component.input.DropDownChoicePanel; +import com.evolveum.midpoint.web.page.admin.configuration.component.EmptyOnChangeAjaxFormUpdatingBehavior; +import com.evolveum.midpoint.xml.ns._public.common.common_3.FocusType; +import org.apache.wicket.markup.html.WebMarkupContainer; +import org.apache.wicket.model.IModel; +import org.apache.wicket.model.Model; + +import javax.xml.namespace.QName; +import java.util.List; + +/** + * Created by honchar + */ +public class FocusTypeAssignmentPopupTabPanel extends AbstractAssignmentPopupTabPanel{ + + private static final long serialVersionUID = 1L; + + private static final String ID_RELATION_CONTAINER = "relationContainer"; + private static final String ID_RELATION = "relation"; + + private static final String DOT_CLASS = FocusTypeAssignmentPopupTabPanel.class.getName(); + private static final Trace LOGGER = TraceManager.getTrace(FocusTypeAssignmentPopupTabPanel.class); + + public FocusTypeAssignmentPopupTabPanel(String id, ObjectTypes type){ + super(id, type); + } + + @Override + protected void initParametersPanel(){ + WebMarkupContainer relationContainer = new WebMarkupContainer(ID_RELATION_CONTAINER); + relationContainer.setOutputMarkupId(true); + add(relationContainer); + + DropDownChoicePanel relationSelector = WebComponentUtil.createEnumPanel(RelationTypes.class, ID_RELATION, + WebComponentUtil.createReadonlyModelFromEnum(RelationTypes.class), Model.of(RelationTypes.MEMBER), + FocusTypeAssignmentPopupTabPanel.this, false); + relationSelector.getBaseFormComponent().add(new EmptyOnChangeAjaxFormUpdatingBehavior()); + relationSelector.setOutputMarkupId(true); + relationSelector.setOutputMarkupPlaceholderTag(true); + relationContainer.add(relationSelector); + } + + private DropDownChoicePanel getRelationDropDown(){ + return (DropDownChoicePanel)get(ID_RELATION_CONTAINER).get(ID_RELATION); + } + + public QName getRelationValue(){ + DropDownChoicePanel relationPanel = getRelationDropDown(); + RelationTypes relation = relationPanel.getModel().getObject(); + if (relation == null) { + return SchemaConstants.ORG_DEFAULT; + } + return relation.getRelation(); + } +} diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/ObjectListPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/ObjectListPanel.java index e3305092ae8..00c2bf94fa4 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/ObjectListPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/ObjectListPanel.java @@ -621,7 +621,7 @@ private List getGuiObjectColumnTypeList(){ AdminGuiConfigurationType adminGuiConfig = parentPage.getPrincipal().getAdminGuiConfiguration(); if (adminGuiConfig != null && adminGuiConfig.getObjectLists() != null && adminGuiConfig.getObjectLists().getObjectList() != null){ - for (GuiObjectListType object : adminGuiConfig.getObjectLists().getObjectList()){ + for (GuiObjectListViewType object : adminGuiConfig.getObjectLists().getObjectList()){ if (object.getType() != null && !type.getClassDefinition().getSimpleName().equals(object.getType().getLocalPart())){ continue; diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/ResourceTypeAssignmentPopupTabPanel.html b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/ResourceTypeAssignmentPopupTabPanel.html new file mode 100644 index 00000000000..023b38a5f13 --- /dev/null +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/ResourceTypeAssignmentPopupTabPanel.html @@ -0,0 +1,46 @@ + + + + + +
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+ +
+
+
+
+
+ diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/ResourceTypeAssignmentPopupTabPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/ResourceTypeAssignmentPopupTabPanel.java new file mode 100644 index 00000000000..fd087382848 --- /dev/null +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/ResourceTypeAssignmentPopupTabPanel.java @@ -0,0 +1,217 @@ +/* + * Copyright (c) 2010-2018 Evolveum + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.evolveum.midpoint.gui.api.component; + +import com.evolveum.midpoint.common.refinery.RefinedObjectClassDefinition; +import com.evolveum.midpoint.common.refinery.RefinedResourceSchema; +import com.evolveum.midpoint.gui.api.model.LoadableModel; +import com.evolveum.midpoint.gui.api.util.WebComponentUtil; +import com.evolveum.midpoint.schema.constants.ObjectTypes; +import com.evolveum.midpoint.schema.constants.SchemaConstants; +import com.evolveum.midpoint.util.exception.SchemaException; +import com.evolveum.midpoint.util.logging.Trace; +import com.evolveum.midpoint.util.logging.TraceManager; +import com.evolveum.midpoint.web.component.assignment.RelationTypes; +import com.evolveum.midpoint.web.component.input.DropDownChoicePanel; +import com.evolveum.midpoint.web.component.util.SelectableBean; +import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour; +import com.evolveum.midpoint.web.page.admin.configuration.component.EmptyOnChangeAjaxFormUpdatingBehavior; +import com.evolveum.midpoint.xml.ns._public.common.common_3.ResourceType; +import com.evolveum.midpoint.xml.ns._public.common.common_3.ShadowKindType; +import org.apache.wicket.ajax.AjaxRequestTarget; +import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior; +import org.apache.wicket.markup.html.WebMarkupContainer; +import org.apache.wicket.model.IModel; +import org.apache.wicket.model.Model; + +import javax.xml.namespace.QName; +import java.util.ArrayList; +import java.util.List; + +/** + * Created by honchar + */ +public class ResourceTypeAssignmentPopupTabPanel extends AbstractAssignmentPopupTabPanel{ + + private static final long serialVersionUID = 1L; + + private static final String ID_KIND_CONTAINER = "kindContainer"; + private static final String ID_INTENT_CONTAINER = "intentContainer"; + private static final String ID_KIND = "kind"; + private static final String ID_INTENT = "intent"; + + private LoadableModel> intentValues; + private String intentValue = ""; + + private static final String DOT_CLASS = ResourceTypeAssignmentPopupTabPanel.class.getName(); + private static final Trace LOGGER = TraceManager.getTrace(ResourceTypeAssignmentPopupTabPanel.class); + + public ResourceTypeAssignmentPopupTabPanel(String id){ + super(id, ObjectTypes.RESOURCE); + } + + @Override + protected void initParametersPanel(){ + initModels(); + + WebMarkupContainer kindContainer = new WebMarkupContainer(ID_KIND_CONTAINER); + kindContainer.setOutputMarkupId(true); + add(kindContainer); + + DropDownChoicePanel kindSelector = WebComponentUtil.createEnumPanel(ShadowKindType.class, ID_KIND, + WebComponentUtil.createReadonlyModelFromEnum(ShadowKindType.class), Model.of(ShadowKindType.ACCOUNT), + ResourceTypeAssignmentPopupTabPanel.this, false); + kindSelector.setOutputMarkupId(true); + kindSelector.getBaseFormComponent().add(new AjaxFormComponentUpdatingBehavior("change") { + private static final long serialVersionUID = 1L; + + @Override + protected void onUpdate(AjaxRequestTarget target) { + target.add(getIntentDropDown()); + } + }); + kindSelector.getBaseFormComponent().add(new VisibleEnableBehaviour(){ + private static final long serialVersionUID = 1L; + + @Override + public boolean isEnabled(){ + return getSelectedObjectsList() != null && getSelectedObjectsList().size() > 0; + } + }); + kindSelector.getBaseFormComponent().add(new EmptyOnChangeAjaxFormUpdatingBehavior()); + kindSelector.setOutputMarkupPlaceholderTag(true); + kindContainer.add(kindSelector); + + WebMarkupContainer intentContainer = new WebMarkupContainer(ID_INTENT_CONTAINER); + intentContainer.setOutputMarkupId(true); + add(intentContainer); + + DropDownChoicePanel intentSelector = new DropDownChoicePanel(ID_INTENT, + new IModel() { + private static final long serialVersionUID = 1L; + + @Override + public String getObject() { + return intentValue; + } + + @Override + public void setObject(String s) { + intentValue = s; + } + + @Override + public void detach() { + + } + }, intentValues); + intentSelector.getBaseFormComponent().add(new VisibleEnableBehaviour(){ + private static final long serialVersionUID = 1L; + + @Override + public boolean isEnabled(){ + return getSelectedObjectsList() != null && getSelectedObjectsList().size() > 0; + } + }); + intentSelector.getBaseFormComponent().add(new EmptyOnChangeAjaxFormUpdatingBehavior()); + intentSelector.setOutputMarkupId(true); + intentSelector.setOutputMarkupPlaceholderTag(true); + intentContainer.add(intentSelector); + + } + + private DropDownChoicePanel getIntentDropDown(){ + return (DropDownChoicePanel)get(ID_INTENT_CONTAINER).get(ID_INTENT); + } + + private DropDownChoicePanel getKindDropDown(){ + return (DropDownChoicePanel)get(ID_KIND_CONTAINER).get(ID_KIND); + } + + private void initModels(){ + intentValues = new LoadableModel>(true) { + private static final long serialVersionUID = 1L; + + @Override + protected List load() { + List availableIntentValues = new ArrayList<>(); + PopupObjectListPanel resourcesListPanel = getObjectListPanel(); + if (resourcesListPanel != null) { + List selectedResources = resourcesListPanel.getSelectedObjects(); + if (selectedResources != null && selectedResources.size() > 0) { + ResourceType selectedResource = selectedResources.get(0); + + try { + RefinedResourceSchema refinedSchema = RefinedResourceSchema.getRefinedSchema(selectedResource.asPrismObject()); + if (refinedSchema != null) { + ShadowKindType kind = (ShadowKindType) getKindDropDown().getBaseFormComponent().getModelObject(); + List definitions = refinedSchema.getRefinedDefinitions(kind); + for (RefinedObjectClassDefinition def : definitions) { + availableIntentValues.add(def.getIntent()); + } + } + } catch (SchemaException ex) { + LOGGER.error("Cannot get refined resource schema for resource {}. {}", selectedResource.getName().getOrig(), ex.getLocalizedMessage()); + } + + } + } + if (availableIntentValues.size() > 0){ + intentValue = availableIntentValues.get(0); + } + return availableIntentValues; + } + }; +// intentValueModel = new IModel() { +// @Override +// public String getObject() { +// return intent != null ? intent : +// (intentValues.getObject().size() > 0 ? +// intentValues.getObject().get(0) : "default"); +// } +// +// @Override +// public void setObject(String s) { +// intent = s; +// } +// +// @Override +// public void detach() { +// +// } +// }; + } + + public String getIntentValue(){ + return intentValue; + } + + public ShadowKindType getKindValue(){ + return getKindDropDown().getModel().getObject(); + } + + @Override + protected void onSelectionPerformed(AjaxRequestTarget target){ + target.add(getObjectListPanel()); + } + + @Override + protected IModel getObjectSelectCheckBoxEnableModel(IModel> rowModel){ + List selectedObjects = getSelectedObjectsList(); + return Model.of(selectedObjects == null || selectedObjects.size() == 0 + || (rowModel != null && rowModel.getObject() != null && rowModel.getObject().isSelected())); + } +} diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/tabs/PanelTab.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/tabs/PanelTab.java index 59b49ceffcb..61d27a7709a 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/tabs/PanelTab.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/tabs/PanelTab.java @@ -52,6 +52,10 @@ public WebMarkupContainer getPanel(String panelId) { return panel; } + public WebMarkupContainer getPanel(){ + return panel; + } + public abstract WebMarkupContainer createPanel(String panelId); @Override diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/page/PageBase.html b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/page/PageBase.html index ecb2760ccba..b6f4fab8051 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/page/PageBase.html +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/page/PageBase.html @@ -18,6 +18,7 @@ + <span wicket:id="title"/> @@ -66,7 +67,7 @@ <img wicket:id="customLogoImgSrc"/> </a> <a class="logo" wicket:id="logo"> - <span> </span>> + <span> </span> </a> <!-- Header Navbar: style can be found in header.less --> <nav wicket:id="navigation" role="navigation" class="navbar navbar-static-top"> @@ -129,7 +130,7 @@ <div wicket:id="debugPanel" style="z-index: 10000;"/> </section> </div> - <footer wicket:id="footerContainer" class="main-footer"> + <footer wicket:id="footerContainer"> <div class="pull-right hidden-xs" wicket:id="version"> <b><wicket:message key="PageTemplate.version"/></b> <wicket:message key="pageBase.midPointVersion"/> </div> diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/page/PageBase.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/page/PageBase.java index 27cef6c9e2e..c71bdbf0bb6 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/page/PageBase.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/page/PageBase.java @@ -891,7 +891,7 @@ public boolean isVisible() { WebMarkupContainer footerContainer = new WebMarkupContainer(ID_FOOTER_CONTAINER); footerContainer.setOutputMarkupId(true); - footerContainer.add(getFooterVisibleBehaviour()); + footerContainer.add(AttributeAppender.append("class", isFooterVisible() ? "main-footer" : "main-footer-invisible")); add(footerContainer); WebMarkupContainer version = new WebMarkupContainer(ID_VERSION) { @@ -907,7 +907,7 @@ public String getDescribe() { @Override public boolean isVisible() { - return RuntimeConfigurationType.DEVELOPMENT.equals(getApplication().getConfigurationType()); + return isFooterVisible() && RuntimeConfigurationType.DEVELOPMENT.equals(getApplication().getConfigurationType()); } }); footerContainer.add(version); @@ -2107,17 +2107,21 @@ private VisibleEnableBehaviour getFooterVisibleBehaviour() { @Override public boolean isVisible() { - String subscriptionId = getSubscriptionId(); - if (StringUtils.isEmpty(subscriptionId)) { - return true; - } - return !WebComponentUtil.isSubscriptionIdCorrect(subscriptionId) || - (SubscriptionType.DEMO_SUBSRIPTION.getSubscriptionType().equals(subscriptionId.substring(0, 2)) - && WebComponentUtil.isSubscriptionIdCorrect(subscriptionId)); + return isFooterVisible(); } }; } + private boolean isFooterVisible(){ + String subscriptionId = getSubscriptionId(); + if (StringUtils.isEmpty(subscriptionId)) { + return true; + } + return !WebComponentUtil.isSubscriptionIdCorrect(subscriptionId) || + (SubscriptionType.DEMO_SUBSRIPTION.getSubscriptionType().equals(subscriptionId.substring(0, 2)) + && WebComponentUtil.isSubscriptionIdCorrect(subscriptionId)); + } + protected String determineDataLanguage() { AdminGuiConfigurationType config = loadAdminGuiConfiguration(); if (config.getPreferredDataLanguage() != null) { diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/util/WebComponentUtil.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/util/WebComponentUtil.java index 3bddc91e1c0..f268a7221e5 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/util/WebComponentUtil.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/util/WebComponentUtil.java @@ -416,12 +416,12 @@ public static void safeResultCleanup(OperationResult result, Trace logger) { } } - public static GuiObjectListType getDefaultGuiObjectListType(PageBase pageBase) { + public static GuiObjectListViewType getDefaultGuiObjectListType(PageBase pageBase) { AdminGuiConfigurationType config = pageBase.getPrincipal().getAdminGuiConfiguration(); if (config == null) { return null; } - GuiObjectListsType lists = config.getObjectLists(); + GuiObjectListViewsType lists = config.getObjectLists(); if (lists == null) { return null; } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/boot/EmbeddedTomcatAutoConfiguration.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/boot/EmbeddedTomcatAutoConfiguration.java index 4de6e079631..41b7b327d30 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/boot/EmbeddedTomcatAutoConfiguration.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/boot/EmbeddedTomcatAutoConfiguration.java @@ -23,9 +23,8 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication; import org.springframework.boot.autoconfigure.condition.SearchStrategy; -import org.springframework.boot.autoconfigure.web.EmbeddedServletContainerAutoConfiguration.BeanPostProcessorsRegistrar; -import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory; -import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory; +import org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryAutoConfiguration.BeanPostProcessorsRegistrar; +import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; @@ -37,7 +36,7 @@ /** * Custom configuration (factory) for embedded tomcat factory. * This is necessary, as the tomcat factory is hacking tomcat setup. - * @see MidPointTomcatEmbeddedServletContainerFactory + * @see MidPointTomcatServletWebServerFactory * * @author semancik */ @@ -51,14 +50,14 @@ public class EmbeddedTomcatAutoConfiguration { @Configuration @ConditionalOnClass({ Servlet.class, Tomcat.class }) - @ConditionalOnMissingBean(value = EmbeddedServletContainerFactory.class, search = SearchStrategy.CURRENT) + @ConditionalOnMissingBean(value = TomcatServletWebServerFactory.class, search = SearchStrategy.CURRENT) public static class EmbeddedTomcat { @Bean - public TomcatEmbeddedServletContainerFactory tomcatEmbeddedServletContainerFactory() { - return new MidPointTomcatEmbeddedServletContainerFactory(); + public TomcatServletWebServerFactory tomcatEmbeddedServletContainerFactory() { + return new MidPointTomcatServletWebServerFactory(); } } -} +} \ No newline at end of file diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/boot/MidPointSpringApplication.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/boot/MidPointSpringApplication.java index 4b05cc6334a..5558ab4d06d 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/boot/MidPointSpringApplication.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/boot/MidPointSpringApplication.java @@ -37,21 +37,27 @@ import org.springframework.boot.SpringBootConfiguration; import org.springframework.boot.autoconfigure.ImportAutoConfiguration; import org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration; -import org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration; -import org.springframework.boot.autoconfigure.security.SecurityFilterAutoConfiguration; -import org.springframework.boot.autoconfigure.web.*; +import org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConfiguration; +import org.springframework.boot.autoconfigure.security.servlet.SecurityFilterAutoConfiguration; +import org.springframework.boot.autoconfigure.web.embedded.EmbeddedWebServerFactoryCustomizerAutoConfiguration; +import org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration; +import org.springframework.boot.autoconfigure.web.servlet.MultipartAutoConfiguration; +import org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration; import org.springframework.boot.builder.SpringApplicationBuilder; -import org.springframework.boot.context.embedded.ConfigurableEmbeddedServletContainer; -import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory; -import org.springframework.boot.web.servlet.ErrorPage; +import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory; +import org.springframework.boot.web.server.ErrorPage; +import org.springframework.boot.web.server.WebServerFactoryCustomizer; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.boot.web.servlet.ServletListenerRegistrationBean; import org.springframework.boot.web.servlet.ServletRegistrationBean; -import org.springframework.boot.web.support.SpringBootServletInitializer; +import org.springframework.boot.web.servlet.server.ConfigurableServletWebServerFactory; +import org.springframework.boot.web.servlet.server.Session; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ImportResource; import org.springframework.http.HttpStatus; +import org.springframework.stereotype.Component; import org.springframework.web.context.request.RequestContextListener; import org.springframework.web.filter.DelegatingFilterProxy; import ro.isdc.wro.http.WroFilter; @@ -60,10 +66,11 @@ import java.io.File; import java.lang.management.ManagementFactory; -import java.util.concurrent.TimeUnit; +import java.time.Duration; /** * Created by Viliam Repan (lazyman). + * Modified by Lukas Skublik. */ @ImportResource(locations = { "classpath:ctx-common.xml", @@ -91,18 +98,17 @@ }) @ImportAutoConfiguration(classes = { EmbeddedTomcatAutoConfiguration.class, - DispatcherServletAutoConfiguration.class, - WebMvcAutoConfiguration.class, - HttpMessageConvertersAutoConfiguration.class, - PropertyPlaceholderAutoConfiguration.class, - SecurityAutoConfiguration.class, - SecurityFilterAutoConfiguration.class, - ServerPropertiesAutoConfiguration.class, - MultipartAutoConfiguration.class + DispatcherServletAutoConfiguration.class, + WebMvcAutoConfiguration.class, + HttpMessageConvertersAutoConfiguration.class, + PropertyPlaceholderAutoConfiguration.class, + SecurityFilterAutoConfiguration.class, + EmbeddedWebServerFactoryCustomizerAutoConfiguration.class, + MultipartAutoConfiguration.class }) @SpringBootConfiguration public class MidPointSpringApplication extends SpringBootServletInitializer { - + private static final Trace LOGGER = TraceManager.getTrace(MidPointSpringApplication.class); private static final String MIDPOINT_HOME_PROPERTY = "midpoint.home"; @@ -111,7 +117,7 @@ public class MidPointSpringApplication extends SpringBootServletInitializer { @Autowired StartupConfiguration startupConfiguration; @Autowired NodeAuthenticationEvaluator nodeAuthenticator; - + public static void main(String[] args) { System.setProperty("xml.catalog.className", CatalogImpl.class.getName()); String mode = args != null && args.length > 0 ? args[0] : null; @@ -162,13 +168,14 @@ private static SpringApplicationBuilder configureApplication(SpringApplicationBu System.setProperty(MIDPOINT_HOME_PROPERTY, mpHome); } - System.setProperty("spring.config.location", "${midpoint.home}/"); + //TODO Could not resolve placeholder +// System.setProperty("spring.config.location", "${midpoint.home}/"); application.bannerMode(Banner.Mode.LOG); return application.sources(MidPointSpringApplication.class); } - + @Bean public ServletListenerRegistrationBean requestContextListener() { return new ServletListenerRegistrationBean(new RequestContextListener()); @@ -195,7 +202,7 @@ public FilterRegistrationBean wicket() { return registration; } - + @Bean public FilterRegistrationBean springSecurityFilterChain() { FilterRegistrationBean registration = new FilterRegistrationBean(); @@ -241,44 +248,45 @@ public ServletRegistrationBean staticWebServlet() { registration.addUrlMappings("/static-web/*"); return registration; } + + @Component + public class ServerCustomization implements WebServerFactoryCustomizer<ConfigurableServletWebServerFactory> { + + @Value("${server.servlet.session.timeout}") + private int sessionTimeout; + + @Override + public void customize(ConfigurableServletWebServerFactory server) { + + server.addErrorPages(new ErrorPage(HttpStatus.UNAUTHORIZED, + "/error/401")); + server.addErrorPages(new ErrorPage(HttpStatus.FORBIDDEN, + "/error/403")); + server.addErrorPages(new ErrorPage(HttpStatus.NOT_FOUND, + "/error/404")); + server.addErrorPages(new ErrorPage(HttpStatus.GONE, + "/error/410")); + server.addErrorPages(new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, + "/error")); + + Session session = new Session(); + session.setTimeout(Duration.ofMinutes(sessionTimeout)); + server.setSession(session); + + server.setContextPath("/midpoint"); + + + if (server instanceof TomcatServletWebServerFactory) { + customizeTomcat((TomcatServletWebServerFactory) server); + } + } + + private void customizeTomcat(TomcatServletWebServerFactory tomcatFactory) { + // Tomcat valve used to redirect root URL (/) to real application URL (/midpoint/). + // See comments in TomcatRootValve + Valve rootValve = new TomcatRootValve(); + tomcatFactory.addEngineValves(rootValve); + } - @Bean - public ServerProperties serverProperties() { - return new ServerCustomization(); - } - - private static class ServerCustomization extends ServerProperties { - - @Value("${server.session.timeout}") - private int sessionTimeout; - - @Override - public void customize(ConfigurableEmbeddedServletContainer container) { - super.customize(container); - - container.addErrorPages(new ErrorPage(HttpStatus.UNAUTHORIZED, - "/error/401")); - container.addErrorPages(new ErrorPage(HttpStatus.FORBIDDEN, - "/error/403")); - container.addErrorPages(new ErrorPage(HttpStatus.NOT_FOUND, - "/error/404")); - container.addErrorPages(new ErrorPage(HttpStatus.GONE, - "/error/410")); - container.addErrorPages(new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, - "/error")); - - container.setSessionTimeout(sessionTimeout, TimeUnit.MINUTES); - - if (container instanceof TomcatEmbeddedServletContainerFactory) { - customizeTomcat((TomcatEmbeddedServletContainerFactory) container); - } - } - - private void customizeTomcat(TomcatEmbeddedServletContainerFactory tomcatFactory) { - // Tomcat valve used to redirect root URL (/) to real application URL (/midpoint/). - // See comments in TomcatRootValve - Valve rootValve = new TomcatRootValve(); - tomcatFactory.addEngineValves(rootValve); - } } -} +} \ No newline at end of file diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/boot/MidPointTomcatEmbeddedServletContainerFactory.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/boot/MidPointTomcatServletWebServerFactory.java similarity index 75% rename from gui/admin-gui/src/main/java/com/evolveum/midpoint/web/boot/MidPointTomcatEmbeddedServletContainerFactory.java rename to gui/admin-gui/src/main/java/com/evolveum/midpoint/web/boot/MidPointTomcatServletWebServerFactory.java index 237d97b49aa..ea0d3ba3d98 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/boot/MidPointTomcatEmbeddedServletContainerFactory.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/boot/MidPointTomcatServletWebServerFactory.java @@ -16,8 +16,8 @@ package com.evolveum.midpoint.web.boot; import org.apache.catalina.startup.Tomcat; -import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer; -import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory; +import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory; +import org.springframework.boot.web.embedded.tomcat.TomcatWebServer; import com.evolveum.midpoint.util.logging.Trace; import com.evolveum.midpoint.util.logging.TraceManager; @@ -28,12 +28,13 @@ * * @author semancik */ -public class MidPointTomcatEmbeddedServletContainerFactory extends TomcatEmbeddedServletContainerFactory { +public class MidPointTomcatServletWebServerFactory extends TomcatServletWebServerFactory { - private static final Trace LOGGER = TraceManager.getTrace(MidPointTomcatEmbeddedServletContainerFactory.class); + private static final Trace LOGGER = TraceManager.getTrace(MidPointTomcatServletWebServerFactory.class); @Override - protected TomcatEmbeddedServletContainer getTomcatEmbeddedServletContainer(Tomcat tomcat) { + + protected TomcatWebServer getTomcatWebServer(Tomcat tomcat) { // We are setting up fake context here. This context does not really do anything. // But it is "mapped" to the root URL (/ ... or rather "" in Tomcat parlance). @@ -44,9 +45,9 @@ protected TomcatEmbeddedServletContainer getTomcatEmbeddedServletContainer(Tomca RootRootContext rootRootContext = new RootRootContext(); tomcat.getHost().addChild(rootRootContext); - return super.getTomcatEmbeddedServletContainer(tomcat); + return super.getTomcatWebServer(tomcat); } -} +} \ No newline at end of file diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/boot/WebSecurityConfig.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/boot/WebSecurityConfig.java index bee92c1b366..250c685c00f 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/boot/WebSecurityConfig.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/boot/WebSecurityConfig.java @@ -30,7 +30,6 @@ import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authentication.AuthenticationProvider; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; -import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.builders.WebSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; @@ -43,7 +42,8 @@ */ @Order(SecurityProperties.BASIC_AUTH_ORDER - 1) @Configuration -@EnableGlobalMethodSecurity(securedEnabled = true) +//TODO +//@EnableGlobalMethodSecurity(securedEnabled = true) @EnableWebSecurity public class WebSecurityConfig extends WebSecurityConfigurerAdapter { @@ -56,7 +56,7 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter { private boolean csrfEnabled; @Value("${auth.logout.url:/}") private String authLogoutUrl; - + @Bean public WicketLoginUrlAuthenticationEntryPoint wicketAuthenticationEntryPoint() { return new WicketLoginUrlAuthenticationEntryPoint("/login"); diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/AjaxIconButton.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/AjaxIconButton.java index b15df46284f..7389a339afe 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/AjaxIconButton.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/AjaxIconButton.java @@ -19,9 +19,12 @@ import org.apache.commons.lang.StringUtils; import org.apache.wicket.AttributeModifier; import org.apache.wicket.ajax.markup.html.AjaxLink; +import org.apache.wicket.behavior.AttributeAppender; +import org.apache.wicket.behavior.Behavior; import org.apache.wicket.markup.ComponentTag; import org.apache.wicket.markup.MarkupStream; import org.apache.wicket.markup.parser.XmlTag; +import org.apache.wicket.model.AbstractReadOnlyModel; import org.apache.wicket.model.IModel; /** @@ -29,12 +32,26 @@ */ public abstract class AjaxIconButton extends AjaxLink<String> { + private static final long serialVersionUID = 1L; + private IModel<String> title; + private boolean showTitleAsLabel; + public AjaxIconButton(String id, IModel<String> icon, IModel<String> title) { super(id, icon); this.title = title; + + add(AttributeAppender.append("class", new AbstractReadOnlyModel<String>() { + + private static final long serialVersionUID = 1L; + + @Override + public String getObject() { + return !AjaxIconButton.this.isEnabled() ? "disabled" : ""; + } + })); } @Override @@ -50,11 +67,23 @@ protected void onInitialize() { public void onComponentTagBody(final MarkupStream markupStream, final ComponentTag openTag) { StringBuilder sb = new StringBuilder(); + String title = this.title.getObject(); + String icon = getModelObject(); if (StringUtils.isNotEmpty(icon)) { - sb.append("<i class=\"").append(icon).append("\"></i>"); + sb.append("<i class=\"").append(icon).append("\""); + if (showTitleAsLabel && StringUtils.isNotEmpty(title)) { + sb.append(" style=\"margin-right: 5px;\""); + } + sb.append("></i>"); + } + + if (StringUtils.isEmpty(icon)) { + sb.append(title); } else { - sb.append(title.getObject()); + if (showTitleAsLabel) { + sb.append(title); + } } replaceComponentTagBody(markupStream, openTag, sb.toString()); @@ -68,4 +97,10 @@ protected void onComponentTag(ComponentTag tag) { tag.setType(XmlTag.TagType.OPEN); } } + + public AjaxIconButton showTitleAsLabel(boolean show) { + showTitleAsLabel = show; + + return this; + } } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AbstractRoleAssignmentPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AbstractRoleAssignmentPanel.java index 105d162e272..17528f6d139 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AbstractRoleAssignmentPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AbstractRoleAssignmentPanel.java @@ -23,6 +23,7 @@ import javax.xml.namespace.QName; +import com.evolveum.midpoint.gui.api.component.AssignmentPopup; import com.evolveum.midpoint.prism.PrismContainerValue; import com.evolveum.midpoint.schema.constants.ObjectTypes; import com.evolveum.midpoint.schema.constants.SchemaConstants; @@ -167,54 +168,48 @@ protected void showAllAssignments(AjaxRequestTarget target) { @Override protected void newAssignmentClickPerformed(AjaxRequestTarget target) { - TypedAssignablePanel panel = new TypedAssignablePanel( - getPageBase().getMainPopupBodyId(), getDefaultNewAssignmentFocusType()) { + AssignmentPopup popupPanel = new AssignmentPopup(getPageBase().getMainPopupBodyId()) { private static final long serialVersionUID = 1L; @Override - protected void addPerformed(AjaxRequestTarget target, List selected, QName relation, ShadowKindType kind, String intent) { - super.addPerformed(target, selected, relation, kind, intent); - addSelectedAssignmentsPerformed(target, selected, relation, kind, intent); + protected void addPerformed(AjaxRequestTarget target, List newAssignmentsList) { + super.addPerformed(target, newAssignmentsList); + addSelectedAssignmentsPerformed(target, newAssignmentsList); } - @Override - protected List<ObjectTypes> getObjectTypesList(){ - return AbstractRoleAssignmentPanel.this.getObjectTypesList(); - } +// @Override +// protected List<ObjectTypes> getObjectTypesList(){ +// return AbstractRoleAssignmentPanel.this.getObjectTypesList(); +// } }; - panel.setOutputMarkupId(true); - getPageBase().showMainPopup(panel, target); + popupPanel.setOutputMarkupId(true); + getPageBase().showMainPopup(popupPanel, target); } protected Class getDefaultNewAssignmentFocusType(){ return RoleType.class; } - protected <T extends ObjectType> void addSelectedAssignmentsPerformed(AjaxRequestTarget target, List<T> assignmentsList, QName relation, - ShadowKindType kind, String intent){ - if (assignmentsList == null || assignmentsList.isEmpty()){ + protected void addSelectedAssignmentsPerformed(AjaxRequestTarget target, List<AssignmentType> newAssignmentsList){ + if (newAssignmentsList == null || newAssignmentsList.isEmpty()){ warn(getParentPage().getString("AssignmentTablePanel.message.noAssignmentSelected")); target.add(getPageBase().getFeedbackPanel()); return; } - for (T object : assignmentsList){ + newAssignmentsList.forEach(assignment -> { PrismContainerDefinition<AssignmentType> definition = getModelObject().getItem().getDefinition(); PrismContainerValue<AssignmentType> newAssignment; try { newAssignment = definition.instantiate().createNewValue(); - ObjectReferenceType ref = ObjectTypeUtil.createObjectRef(object, relation); AssignmentType assignmentType = newAssignment.asContainerable(); - if (ResourceType.class.equals(object.getClass())) { - ConstructionType constructionType = new ConstructionType(); - constructionType.setResourceRef(ref); - constructionType.setKind(kind); - constructionType.setIntent(intent); - assignmentType.setConstruction(constructionType); + + if (assignment.getConstruction() != null && assignment.getConstruction().getResourceRef() != null) { + assignmentType.setConstruction(assignment.getConstruction()); } else { - assignmentType.setTargetRef(ref); + assignmentType.setTargetRef(assignment.getTargetRef()); } createNewAssignmentContainerValueWrapper(newAssignment); refreshTable(target); @@ -225,7 +220,7 @@ protected <T extends ObjectType> void addSelectedAssignmentsPerformed(AjaxReques target.add(this); } - } + }); } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/GdprAssignmentPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/GdprAssignmentPanel.java index 2fe4d6b7e4f..d10703992d8 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/GdprAssignmentPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/GdprAssignmentPanel.java @@ -100,11 +100,11 @@ protected boolean isRelationVisible() { return false; } - @Override - protected <T extends ObjectType> void addSelectedAssignmentsPerformed(AjaxRequestTarget target, List<T> assignmentsList, - QName relation, ShadowKindType kind, String intent) { - super.addSelectedAssignmentsPerformed(target, assignmentsList, SchemaConstants.ORG_CONSENT, kind, intent); - } +// @Override +// protected <T extends ObjectType> void addSelectedAssignmentsPerformed(AjaxRequestTarget target, List<T> assignmentsList, +// QName relation, ShadowKindType kind, String intent) { +// super.addSelectedAssignmentsPerformed(target, assignmentsList, SchemaConstants.ORG_CONSENT, kind, intent); +// } protected ObjectQuery createObjectQuery() { return QueryBuilder.queryFor(AssignmentType.class, getParentPage().getPrismContext()) diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/AjaxEventProcessor.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/AjaxEventProcessor.java new file mode 100644 index 00000000000..05477404869 --- /dev/null +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/AjaxEventProcessor.java @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2010-2018 Evolveum + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.evolveum.midpoint.web.component.data; + +import org.apache.wicket.ajax.AjaxRequestTarget; + +import java.io.Serializable; + +/** + * Created by Viliam Repan (lazyman). + */ +@FunctionalInterface +public interface AjaxEventProcessor extends Serializable { + + void onEventPerformed(AjaxRequestTarget target); +} diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/BaseSortableDataProvider.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/BaseSortableDataProvider.java index c9c02d2640e..8962aefa2e2 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/BaseSortableDataProvider.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/BaseSortableDataProvider.java @@ -38,7 +38,7 @@ import com.evolveum.midpoint.wf.api.WorkflowManager; import com.evolveum.midpoint.xml.ns._public.common.common_3.AdminGuiConfigurationType; import com.evolveum.midpoint.xml.ns._public.common.common_3.DistinctSearchOptionType; -import com.evolveum.midpoint.xml.ns._public.common.common_3.GuiObjectListType; +import com.evolveum.midpoint.xml.ns._public.common.common_3.GuiObjectListViewType; import org.apache.commons.lang.Validate; import org.apache.wicket.Component; import org.apache.wicket.extensions.markup.html.repeater.data.sort.SortOrder; @@ -198,7 +198,7 @@ protected boolean checkOrderingSettings() { } public boolean isDistinct() { - GuiObjectListType def = WebComponentUtil.getDefaultGuiObjectListType((PageBase) component.getPage()); + GuiObjectListViewType def = WebComponentUtil.getDefaultGuiObjectListType((PageBase) component.getPage()); return def == null || def.getDistinct() != DistinctSearchOptionType.NEVER; // change after other options are added } @@ -219,7 +219,7 @@ public boolean isOrderingDisabled() { if (!checkOrderingSettings()) { return false; } - GuiObjectListType def = WebComponentUtil.getDefaultGuiObjectListType((PageBase) component.getPage()); + GuiObjectListViewType def = WebComponentUtil.getDefaultGuiObjectListType((PageBase) component.getPage()); return def != null && def.isDisableSorting(); } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/BoxedTablePanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/BoxedTablePanel.java index cf01333a00e..8d31f74fafb 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/BoxedTablePanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/BoxedTablePanel.java @@ -26,10 +26,8 @@ import org.apache.wicket.extensions.markup.html.repeater.data.table.ISortableDataProvider; import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.basic.Label; -import org.apache.wicket.markup.html.navigation.paging.IPageable; import org.apache.wicket.markup.html.panel.Fragment; import org.apache.wicket.markup.repeater.Item; -import org.apache.wicket.markup.repeater.data.DataViewBase; import org.apache.wicket.model.AbstractReadOnlyModel; import com.evolveum.midpoint.gui.api.component.BasePanel; @@ -43,6 +41,7 @@ * @author Viliam Repan (lazyman) */ public class BoxedTablePanel<T> extends BasePanel<T> implements Table { + private static final long serialVersionUID = 1L; private static final String ID_BOX = "box"; @@ -233,7 +232,7 @@ private void initLayout(final BoxedTablePanel boxedTablePanel, final Table table @Override public String getObject() { - return createCountString(dataTable); + return CountToolbar.createCountString(PagingFooter.this, dataTable); } }); count.setOutputMarkupId(true); @@ -281,47 +280,5 @@ public Component getFooterCountLabel() { public Component getFooterPaging() { return get(ID_FOOTER_CONTAINER).get(ID_PAGING); } - - private String createCountString(IPageable pageable) { - long from = 0; - long to = 0; - long count = 0; - - if (pageable instanceof DataViewBase) { - DataViewBase view = (DataViewBase) pageable; - - from = view.getFirstItemOffset() + 1; - to = from + view.getItemsPerPage() - 1; - long itemCount = view.getItemCount(); - if (to > itemCount) { - to = itemCount; - } - count = itemCount; - } else if (pageable instanceof DataTable) { - DataTable table = (DataTable) pageable; - - from = table.getCurrentPage() * table.getItemsPerPage() + 1; - to = from + table.getItemsPerPage() - 1; - long itemCount = table.getItemCount(); - if (to > itemCount) { - to = itemCount; - } - count = itemCount; - } - - if (count > 0) { - if (count == Integer.MAX_VALUE) { - return PageBase.createStringResourceStatic(PagingFooter.this, "CountToolbar.label.unknownCount", - new Object[] { from, to }).getString(); - } - - return PageBase.createStringResourceStatic(PagingFooter.this, "CountToolbar.label", - new Object[] { from, to, count }).getString(); - } - - return PageBase - .createStringResourceStatic(PagingFooter.this, "CountToolbar.noFound", new Object[] {}) - .getString(); - } } } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/CountToolbar.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/CountToolbar.java index 7f2d476f03c..de6abc1bfb1 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/CountToolbar.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/CountToolbar.java @@ -20,6 +20,7 @@ import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour; import org.apache.wicket.AttributeModifier; +import org.apache.wicket.Component; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractToolbar; import org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable; @@ -57,7 +58,7 @@ public String getObject() { })); add(td); - Label count = new Label(ID_COUNT, createModel()); + Label count = new Label(ID_COUNT, createModel(this, getTable())); count.setRenderBodyOnly(true); td.add(count); @@ -78,47 +79,55 @@ public boolean isVisible() { td.add(popover); } - private IModel<String> createModel() { + private IModel<String> createModel(Component component, IPageable pageable) { return new LoadableModel<String>() { @Override protected String load() { - long from = 0; - long to = 0; - long count = 0; - - IPageable pageable = getTable(); - if (pageable instanceof DataViewBase) { - DataViewBase view = (DataViewBase) pageable; - - from = view.getFirstItemOffset() + 1; - to = from + view.getItemsPerPage() - 1; - long itemCount = view.getItemCount(); - if (to > itemCount) { - to = itemCount; - } - count = itemCount; - } else if (pageable instanceof DataTable) { - DataTable table = (DataTable) pageable; - - from = table.getCurrentPage() * table.getItemsPerPage() + 1; - to = from + table.getItemsPerPage() - 1; - long itemCount = table.getItemCount(); - if (to > itemCount) { - to = itemCount; - } - count = itemCount; - } - - if (count > 0) { - PageBase.createStringResourceStatic(CountToolbar.this, "CountToolbar.label", new Object[]{from, to, count}); - } - - return PageBase.createStringResourceStatic(CountToolbar.this, "CountToolbar.noFound").getString(); + return createCountString(component, pageable); } }; } + public static String createCountString(Component component, IPageable pageable){ + long from = 0; + long to = 0; + long count = 0; + + if (pageable instanceof DataViewBase) { + DataViewBase view = (DataViewBase) pageable; + + from = view.getFirstItemOffset() + 1; + to = from + view.getItemsPerPage() - 1; + long itemCount = view.getItemCount(); + if (to > itemCount) { + to = itemCount; + } + count = itemCount; + } else if (pageable instanceof DataTable) { + DataTable table = (DataTable) pageable; + + from = table.getCurrentPage() * table.getItemsPerPage() + 1; + to = from + table.getItemsPerPage() - 1; + long itemCount = table.getItemCount(); + if (to > itemCount) { + to = itemCount; + } + count = itemCount; + } + + if (count > 0) { + if (count == Integer.MAX_VALUE) { + return PageBase.createStringResourceStatic(component, "CountToolbar.label.unknownCount", + new Object[] { from, to }).getString(); + } + + return PageBase.createStringResourceStatic(component, "CountToolbar.label", new Object[]{from, to, count}).getString(); + } + + return PageBase.createStringResourceStatic(component, "CountToolbar.noFound").getString(); + } + protected void pageSizeChanged(AjaxRequestTarget target) { } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/MultiButtonPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/MultiButtonPanel.java index 35c5bc34e36..9890fa52fca 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/MultiButtonPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/MultiButtonPanel.java @@ -40,6 +40,7 @@ * <p> * todo rewrite, Overcomplicated code. */ +@Deprecated public class MultiButtonPanel<T> extends BasePanel<T> { private static final long serialVersionUID = 1L; diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/MultiButtonPanel2.html b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/MultiButtonPanel2.html new file mode 100644 index 00000000000..53fc652760c --- /dev/null +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/MultiButtonPanel2.html @@ -0,0 +1,21 @@ +<!-- + ~ Copyright (c) 2010-2015 Evolveum + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License. + --> +<!DOCTYPE html> +<html xmlns:wicket="http://wicket.apache.org"> + <wicket:panel> + <a wicket:id="buttons" style="margin-right: 3px;"/> + </wicket:panel> +</html> \ No newline at end of file diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/MultiButtonPanel2.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/MultiButtonPanel2.java new file mode 100644 index 00000000000..d1850eb9ee2 --- /dev/null +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/MultiButtonPanel2.java @@ -0,0 +1,89 @@ +/* + * Copyright (c) 2010-2018 Evolveum + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.evolveum.midpoint.web.component.data; + +import com.evolveum.midpoint.gui.api.component.BasePanel; +import com.evolveum.midpoint.web.component.AjaxIconButton; +import org.apache.wicket.ajax.AjaxRequestTarget; +import org.apache.wicket.behavior.AttributeAppender; +import org.apache.wicket.markup.repeater.RepeatingView; +import org.apache.wicket.model.IModel; + +/** + * Created by Viliam Repan (lazyman). + */ +public class MultiButtonPanel2<T> extends BasePanel<T> { + + private static final long serialVersionUID = 1L; + + private static final String ID_BUTTONS = "buttons"; + + private int numberOfButtons; + + public MultiButtonPanel2(String id, IModel<T> model, int numberOfButtons) { + super(id, model); + + this.numberOfButtons = numberOfButtons; + } + + @Override + protected void onInitialize() { + super.onInitialize(); + + initLayout(); + } + + public int getNumberOfButtons() { + return numberOfButtons; + } + + private void initLayout() { + RepeatingView buttons = new RepeatingView(ID_BUTTONS); + add(buttons); + + for (int id = 0; id < numberOfButtons; id++) { + AjaxIconButton button = createButton(id, buttons.newChildId(), getModel()); + if (button != null) { + buttons.add(button); + } + } + } + + protected AjaxIconButton createButton(int index, String componentId, IModel<T> model) { + return null; + } + + protected AjaxIconButton buildDefaultButton(String componentId, IModel<String> icon, IModel<String> title, + IModel<String> cssClass, final AjaxEventProcessor onClickProcessor) { + AjaxIconButton btn = new AjaxIconButton(componentId, icon, title) { + + @Override + public void onClick(AjaxRequestTarget target) { + if (onClickProcessor != null) { + onClickProcessor.onEventPerformed(target); + } + } + }; + + btn.showTitleAsLabel(true); + if (cssClass != null) { + btn.add(AttributeAppender.append("class", cssClass)); + } + + return btn; + } +} diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/MultiButtonColumn.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/MultiButtonColumn.java index 606ca686f49..d51c49af536 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/MultiButtonColumn.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/MultiButtonColumn.java @@ -29,6 +29,7 @@ * @author shood * @author mederly */ +@Deprecated public class MultiButtonColumn<T extends Serializable> extends AbstractColumn<T, String> { protected MultiButtonPanel panel; diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/objectdetails/ObjectHistoryTabPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/objectdetails/ObjectHistoryTabPanel.java index 7c73fe7cb0a..6355bde2597 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/objectdetails/ObjectHistoryTabPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/objectdetails/ObjectHistoryTabPanel.java @@ -20,8 +20,16 @@ import java.util.List; import com.evolveum.midpoint.gui.api.GuiStyleConstants; +import com.evolveum.midpoint.web.component.AjaxIconButton; +import com.evolveum.midpoint.web.component.data.MultiButtonPanel2; import org.apache.wicket.ajax.AjaxRequestTarget; +import org.apache.wicket.ajax.markup.html.AjaxLink; +import org.apache.wicket.behavior.AttributeAppender; +import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator; +import org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractColumn; import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn; +import org.apache.wicket.markup.html.WebMarkupContainer; +import org.apache.wicket.markup.repeater.Item; import org.apache.wicket.model.IModel; import org.apache.wicket.model.Model; @@ -57,10 +65,10 @@ * Created by honchar. */ public class ObjectHistoryTabPanel<F extends FocusType> extends AbstractObjectTabPanel<F> { - - private static final long serialVersionUID = 1L; - - private static final String ID_MAIN_PANEL = "mainPanel"; + + private static final long serialVersionUID = 1L; + + private static final String ID_MAIN_PANEL = "mainPanel"; private static final Trace LOGGER = TraceManager.getTrace(ObjectHistoryTabPanel.class); private static final String DOT_CLASS = ObjectHistoryTabPanel.class.getName() + "."; private static final String OPERATION_RESTRUCT_OBJECT = DOT_CLASS + "restructObject"; @@ -80,101 +88,81 @@ private void initLayout(final LoadableModel<ObjectWrapper<F>> focusWrapperModel, @Override protected List<IColumn<AuditEventRecordType, String>> initColumns() { List<IColumn<AuditEventRecordType, String>> columns = super.initColumns(); - + IColumn<AuditEventRecordType, String> column - = new MultiButtonColumn<AuditEventRecordType>(new Model(), 2) { - private static final long serialVersionUID = 1L; + = new AbstractColumn<AuditEventRecordType, String>(new Model<>()) { - private final DoubleButtonColumn.BUTTON_COLOR_CLASS[] colors = { - DoubleButtonColumn.BUTTON_COLOR_CLASS.INFO, - DoubleButtonColumn.BUTTON_COLOR_CLASS.SUCCESS - }; + private static final long serialVersionUID = 1L; @Override - public String getCaption(int id) { - return ""; + public void populateItem(Item<ICellPopulator<AuditEventRecordType>> cellItem, String componentId, + IModel<AuditEventRecordType> rowModel) { + + cellItem.add(new MultiButtonPanel2<AuditEventRecordType>(componentId, rowModel, 2) { + + private static final long serialVersionUID = 1L; + + @Override + protected AjaxIconButton createButton(int index, String componentId, IModel<AuditEventRecordType> model) { + AjaxIconButton btn = null; + switch (index) { + case 0: + btn = buildDefaultButton(componentId, new Model<>("fa fa-circle-o"), + createStringResource("ObjectHistoryTabPanel.viewHistoricalObjectDataTitle"), + new Model<>("btn btn-sm " + DoubleButtonColumn.BUTTON_COLOR_CLASS.INFO), + target -> + currentStateButtonClicked(target, focusWrapperModel.getObject().getOid(), + model.getObject().getEventIdentifier(), + WebComponentUtil.getLocalizedDate(model.getObject().getTimestamp(), DateLabelComponent.SHORT_NOTIME_STYLE), + page.getCompileTimeClass())); + break; + case 1: + btn = buildDefaultButton(componentId, new Model<>(GuiStyleConstants.CLASS_FILE_TEXT), + createStringResource("ObjectHistoryTabPanel.viewHistoricalObjectXmlTitle"), + new Model<>("btn btn-sm " + DoubleButtonColumn.BUTTON_COLOR_CLASS.SUCCESS), + target -> + viewObjectXmlButtonClicked(focusWrapperModel.getObject().getOid(), + model.getObject().getEventIdentifier(), + page.getCompileTimeClass(), + WebComponentUtil.getLocalizedDate(model.getObject().getTimestamp(), DateLabelComponent.SHORT_NOTIME_STYLE))); + break; + } + + return btn; + } + }); } + }; - @Override - public String getButtonTitle(int id) { - switch (id) { - case 0: - return page.createStringResource("ObjectHistoryTabPanel.viewHistoricalObjectDataTitle").getString(); - case 1: - return page.createStringResource("ObjectHistoryTabPanel.viewHistoricalObjectXmlTitle").getString(); - } - return ""; - } + columns.add(column); - @Override - public String getButtonColorCssClass(int id) { - return colors[id].toString(); - } + return columns; + } - @Override - protected String getButtonCssClass(int id) { - StringBuilder sb = new StringBuilder(); - sb.append(DoubleButtonColumn.BUTTON_BASE_CLASS).append(" "); - sb.append(getButtonColorCssClass(id)).append(" "); - switch (id) { - case 0: - sb.append("fa fa-circle-o"); - break; - case 1: - sb.append(GuiStyleConstants.CLASS_FILE_TEXT); - break; - } - return sb.toString(); - } + @Override + protected void updateAuditSearchStorage(AuditSearchDto searchDto) { + getPageBase().getSessionStorage().getUserHistoryAuditLog().setSearchDto(searchDto); + getPageBase().getSessionStorage().getUserHistoryAuditLog().setPageNumber(0); - @Override - public void clickPerformed(int id, AjaxRequestTarget target, IModel<AuditEventRecordType> model) { - switch (id) { - case 0: - currentStateButtonClicked(target, focusWrapperModel.getObject().getOid(), - model.getObject().getEventIdentifier(), - WebComponentUtil.getLocalizedDate(model.getObject().getTimestamp(), DateLabelComponent.SHORT_NOTIME_STYLE), - page.getCompileTimeClass()); - break; - case 1: - viewObjectXmlButtonClicked(focusWrapperModel.getObject().getOid(), - model.getObject().getEventIdentifier(), - page.getCompileTimeClass(), - WebComponentUtil.getLocalizedDate(model.getObject().getTimestamp(), DateLabelComponent.SHORT_NOTIME_STYLE)); - break; - } - } - }; - columns.add(column); + } + + @Override + protected void resetAuditSearchStorage() { + getPageBase().getSessionStorage().getUserHistoryAuditLog().setSearchDto(createAuditSearchDto(focusWrapperModel.getObject().getObject().asObjectable())); - return columns; } - @Override - protected void updateAuditSearchStorage(AuditSearchDto searchDto) { - getPageBase().getSessionStorage().getUserHistoryAuditLog().setSearchDto(searchDto); - getPageBase().getSessionStorage().getUserHistoryAuditLog().setPageNumber(0); - - - } - - @Override - protected void resetAuditSearchStorage() { - getPageBase().getSessionStorage().getUserHistoryAuditLog().setSearchDto(createAuditSearchDto(focusWrapperModel.getObject().getObject().asObjectable())); - - } - - @Override - protected void updateCurrentPage(long current) { - getPageBase().getSessionStorage().getUserHistoryAuditLog().setPageNumber(current); - - } - - @Override - protected long getCurrentPage() { - return getPageBase().getSessionStorage().getUserHistoryAuditLog().getPageNumber(); - } + @Override + protected void updateCurrentPage(long current) { + getPageBase().getSessionStorage().getUserHistoryAuditLog().setPageNumber(current); + + } + + @Override + protected long getCurrentPage() { + return getPageBase().getSessionStorage().getUserHistoryAuditLog().getPageNumber(); + } }; panel.setOutputMarkupId(true); @@ -182,13 +170,13 @@ protected long getCurrentPage() { } private AuditSearchDto createAuditSearchDto(F focus) { - AuditSearchDto searchDto = new AuditSearchDto(); - ObjectReferenceType ort = ObjectTypeUtil.createObjectRef(focus); - searchDto.setTargetNames(asList(ort)); - searchDto.setEventStage(AuditEventStageType.EXECUTION); - return searchDto; + AuditSearchDto searchDto = new AuditSearchDto(); + ObjectReferenceType ort = ObjectTypeUtil.createObjectRef(focus); + searchDto.setTargetNames(asList(ort)); + searchDto.setEventStage(AuditEventStageType.EXECUTION); + return searchDto; } - + private void currentStateButtonClicked(AjaxRequestTarget target, String oid, String eventIdentifier, String date, Class type) { //TODO cases for PageRoleHistory, PageOrgHistory if needed... @@ -196,7 +184,7 @@ private void currentStateButtonClicked(AjaxRequestTarget target, String oid, Str } private PrismObject<F> getReconstructedObject(String oid, String eventIdentifier, - Class type){ + Class type) { OperationResult result = new OperationResult(OPERATION_RESTRUCT_OBJECT); try { Task task = getPageBase().createSimpleTask(OPERATION_RESTRUCT_OBJECT); @@ -208,7 +196,8 @@ private PrismObject<F> getReconstructedObject(String oid, String eventIdentifier } return null; } - private void viewObjectXmlButtonClicked(String oid, String eventIdentifier, Class type, String date){ + + private void viewObjectXmlButtonClicked(String oid, String eventIdentifier, Class type, String date) { PrismObject<F> object = getReconstructedObject(oid, eventIdentifier, type); String name = WebComponentUtil.getName(object); @@ -220,9 +209,9 @@ private void viewObjectXmlButtonClicked(String oid, String eventIdentifier, Clas public String getObject() { PrismContext context = getPageBase().getPrismContext(); String xml = ""; - try{ + try { xml = context.serializerFor(PrismContext.LANG_XML).serialize(object); - } catch (Exception ex){ + } catch (Exception ex) { LoggingUtils.logUnexpectedException(LOGGER, "Couldn't serialize object", ex); } return xml; diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/search/SearchFactory.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/search/SearchFactory.java index 38e1eaeb885..a8f72f74c64 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/search/SearchFactory.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/search/SearchFactory.java @@ -180,7 +180,7 @@ private static <T extends ObjectType> PrismObjectDefinition findObjectDefinition } } catch (SchemaException | ConfigurationException | ObjectNotFoundException | ExpressionEvaluationException | CommunicationException | SecurityViolationException ex) { result.recordFatalError(ex.getMessage()); - throw new SystemException(); + throw new SystemException(ex); } } @@ -226,9 +226,9 @@ private static <T extends ObjectType> SearchBoxModeType getDefaultSearchType(Mod OperationResult result = new OperationResult(LOAD_ADMIN_GUI_CONFIGURATION); try { AdminGuiConfigurationType guiConfig = modelServiceLocator.getModelInteractionService().getAdminGuiConfiguration(null, result); - GuiObjectListsType objectLists = guiConfig.getObjectLists(); + GuiObjectListViewsType objectLists = guiConfig.getObjectLists(); if (objectLists != null && objectLists.getObjectList() != null){ - for (GuiObjectListType objectList : objectLists.getObjectList()){ + for (GuiObjectListViewType objectList : objectLists.getObjectList()){ if (objectList.getType() != null && type.getSimpleName().equals(objectList.getType().getLocalPart()) && objectList.getSearchBoxConfiguration() != null) { diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/PageDialog.html b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/PageDialog.html index 5ef5912d24c..bb88a14d697 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/PageDialog.html +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/PageDialog.html @@ -18,7 +18,7 @@ <html xmlns:wicket="http://wicket.apache.org" lang="en" class="no-js"> <head> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> - + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <link href="css/fonts.css" type="text/css" rel="stylesheet"/> <wicket:link> @@ -66,4 +66,4 @@ <script type="text/javascript" src="wro/midpoint-theme.js"></script> </body> -</html> \ No newline at end of file +</html> diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/certification/PageCertDefinitions.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/certification/PageCertDefinitions.java index 7e6e46a8f3e..5d9914bec83 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/certification/PageCertDefinitions.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/certification/PageCertDefinitions.java @@ -29,10 +29,13 @@ import com.evolveum.midpoint.util.logging.TraceManager; import com.evolveum.midpoint.web.application.AuthorizationAction; import com.evolveum.midpoint.web.application.PageDescriptor; +import com.evolveum.midpoint.web.component.AjaxIconButton; +import com.evolveum.midpoint.web.component.data.MultiButtonPanel2; import com.evolveum.midpoint.web.component.data.column.*; import com.evolveum.midpoint.web.component.dialog.ConfirmationPanel; import com.evolveum.midpoint.web.component.dialog.Popupable; import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItem; +import com.evolveum.midpoint.web.component.util.EnableBehaviour; import com.evolveum.midpoint.web.component.util.SelectableBean; import com.evolveum.midpoint.web.page.admin.workflow.PageAdminWorkItems; import com.evolveum.midpoint.web.session.UserProfileStorage.TableId; @@ -40,9 +43,12 @@ import com.evolveum.midpoint.xml.ns._public.common.common_3.AccessCertificationDefinitionType; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow; +import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator; +import org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractColumn; import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn; import org.apache.wicket.extensions.markup.html.repeater.data.table.PropertyColumn; import org.apache.wicket.markup.html.form.Form; +import org.apache.wicket.markup.repeater.Item; import org.apache.wicket.model.AbstractReadOnlyModel; import org.apache.wicket.model.IModel; import org.apache.wicket.model.Model; @@ -150,42 +156,43 @@ private List<IColumn<SelectableBean<AccessCertificationDefinitionType>, String>> column = new PropertyColumn(createStringResource("PageCertDefinitions.table.description"), "value.description"); columns.add(column); - column = new MultiButtonColumn<SelectableBean<AccessCertificationDefinitionType>>(new Model(), 3) { + column = new AbstractColumn<SelectableBean<AccessCertificationDefinitionType>, String>(new Model<>()) { - private final String[] captionKeys = { - "PageCertDefinitions.button.createCampaign", - "PageCertDefinitions.button.showCampaigns", - "PageCertDefinitions.button.deleteDefinition" - }; - - private final DoubleButtonColumn.BUTTON_COLOR_CLASS[] colors = { - DoubleButtonColumn.BUTTON_COLOR_CLASS.PRIMARY, - DoubleButtonColumn.BUTTON_COLOR_CLASS.DEFAULT, - DoubleButtonColumn.BUTTON_COLOR_CLASS.DANGER - }; - - @Override - public String getButtonTitle(int id) { - return PageCertDefinitions.this.createStringResource(captionKeys[id]).getString(); - } - - @Override - public String getButtonColorCssClass(int id) { - return colors[id].toString(); - } - - @Override - public void clickPerformed(int id, AjaxRequestTarget target, IModel<SelectableBean<AccessCertificationDefinitionType>> model) { - switch (id) { - case 0: createCampaignPerformed(target, model.getObject().getValue()); break; - case 1: showCampaignsPerformed(target, model.getObject().getValue()); break; - case 2: deleteConfirmation(target, model.getObject().getValue()); break; - } - } + private static final long serialVersionUID = 1L; @Override - public boolean isButtonEnabled(int id, IModel<SelectableBean<AccessCertificationDefinitionType>> model) { - return id != 0 || !Boolean.TRUE.equals(model.getObject().getValue().isAdHoc()); + public void populateItem(Item<ICellPopulator<SelectableBean<AccessCertificationDefinitionType>>> cellItem, String componentId, + IModel<SelectableBean<AccessCertificationDefinitionType>> rowModel) { + + cellItem.add(new MultiButtonPanel2<SelectableBean<AccessCertificationDefinitionType>>(componentId, rowModel, 3) { + + private static final long serialVersionUID = 1L; + + @Override + protected AjaxIconButton createButton(int index, String componentId, IModel<SelectableBean<AccessCertificationDefinitionType>> model) { + AjaxIconButton btn = null; + switch (index) { + case 0: + btn = buildDefaultButton(componentId, null, createStringResource("PageCertDefinitions.button.createCampaign"), + new Model<>("btn btn-sm " + DoubleButtonColumn.BUTTON_COLOR_CLASS.PRIMARY), + target -> createCampaignPerformed(target, model.getObject().getValue())); + btn.add(new EnableBehaviour(() -> !Boolean.TRUE.equals(model.getObject().getValue().isAdHoc()))); + break; + case 1: + btn = buildDefaultButton(componentId, null, createStringResource("PageCertDefinitions.button.showCampaigns"), + new Model<>("btn btn-sm " + DoubleButtonColumn.BUTTON_COLOR_CLASS.DEFAULT), + target -> showCampaignsPerformed(target, model.getObject().getValue())); + break; + case 2: + btn = buildDefaultButton(componentId, null, createStringResource("PageCertDefinitions.button.deleteDefinition"), + new Model<>("btn btn-sm " + DoubleButtonColumn.BUTTON_COLOR_CLASS.DANGER), + target -> deleteConfirmation(target, model.getObject().getValue())); + break; + } + + return btn; + } + }); } }; columns.add(column); diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/reports/dto/ReportDto.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/reports/dto/ReportDto.java index 983a5fa4ba9..858e3c43ca9 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/reports/dto/ReportDto.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/reports/dto/ReportDto.java @@ -19,6 +19,7 @@ import com.evolveum.midpoint.xml.ns._public.common.common_3.ExportType; import com.evolveum.midpoint.xml.ns._public.common.common_3.ReportType; import com.evolveum.prism.xml.ns._public.types_3.PolyStringType; +import org.apache.commons.lang.BooleanUtils; import java.io.Serializable; @@ -71,7 +72,7 @@ public ReportDto(ReportType reportType, boolean onlyForPromptingParams) { // this.xml = new String(Base64.decodeBase64(reportType.getTemplate())); this.jasperReportDto = new JasperReportDto(reportType.getTemplate(), onlyForPromptingParams); this.templateStyle = reportType.getTemplateStyle(); - this.parent = reportType.isParent(); + this.parent = !BooleanUtils.isFalse(reportType.isParent()); this.virtualizer = reportType.getVirtualizer(); this.virtualizerKickOn = reportType.getVirtualizerKickOn(); this.maxPages = reportType.getMaxPages(); diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/roles/RoleGovernanceRelationsPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/roles/RoleGovernanceRelationsPanel.java index c5c728354f9..a468e6210f8 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/roles/RoleGovernanceRelationsPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/roles/RoleGovernanceRelationsPanel.java @@ -117,7 +117,7 @@ public void onClick(AjaxRequestTarget target) { })); return assignMemberMenuItems; } - + protected List<InlineMenuItem> createUnassignMemberInlineMenuItems() { List<InlineMenuItem> unassignMenuItems = new ArrayList<>(); unassignMenuItems @@ -130,7 +130,7 @@ public void onClick(AjaxRequestTarget target) { removeMembersPerformed(QueryScope.SELECTED, Arrays.asList(SchemaConstants.ORG_APPROVER), target); } })); - + unassignMenuItems .add(new InlineMenuItem(createStringResource("TreeTablePanel.menu.unassignOwnersSelected"), false, new HeaderMenuAction(this) { @@ -141,7 +141,7 @@ public void onClick(AjaxRequestTarget target) { removeMembersPerformed(QueryScope.SELECTED, Arrays.asList(SchemaConstants.ORG_OWNER), target); } })); - + unassignMenuItems .add(new InlineMenuItem(createStringResource("TreeTablePanel.menu.unassignManagersSelected"), false, new HeaderMenuAction(this) { @@ -152,49 +152,40 @@ public void onClick(AjaxRequestTarget target) { removeMembersPerformed(QueryScope.SELECTED, Arrays.asList(SchemaConstants.ORG_MANAGER), target); } })); - - unassignMenuItems.add(new InlineMenuItem(createStringResource("TreeTablePanel.menu.unassignMembersAll"), - false, new HeaderMenuAction(this) { - private static final long serialVersionUID = 1L; - @Override - public void onClick(AjaxRequestTarget target) { - removeAllMembersPerformed(target); - } - })); return unassignMenuItems; } - + private void removeAllMembersPerformed(AjaxRequestTarget target) { - + RoleRelationSelectionPanel relatioNSelectionPanel = new RoleRelationSelectionPanel(getPageBase().getMainPopupBodyId(), new RoleRelationSelectionDto()) { - + private static final long serialVersionUID = 1L; @Override protected void onConfirmPerformed(IModel<RoleRelationSelectionDto> model, AjaxRequestTarget target) { getPageBase().hideMainPopup(target); - + RoleRelationSelectionDto relationsSelected = model.getObject(); ArrayList<QName> relations= new ArrayList<>(); if (relationsSelected.isApprover()) { relations.add(SchemaConstants.ORG_APPROVER); } - + if (relationsSelected.isOwner()) { relations.add(SchemaConstants.ORG_OWNER); } - + if (relationsSelected.isManager()) { relations.add(SchemaConstants.ORG_MANAGER); } - + removeMembersPerformed(QueryScope.ALL, relations, target); } }; getPageBase().showMainPopup(relatioNSelectionPanel, target); - + } @Override @@ -226,30 +217,30 @@ protected List<InlineMenuItem> createMemberRecomputeInlineMenuItems() { protected boolean isRelationColumnVisible(){ return true; } - + @Override protected boolean isGovernance(){ return true; } static class RoleRelationSelectionDto implements Serializable { - + private static final long serialVersionUID = 1L; private boolean approver; private boolean owner; private boolean manager; - + public boolean isApprover() { return approver; } - + public boolean isManager() { return manager; } - + public boolean isOwner() { return owner; } } - + } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/roles/RoleMemberPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/roles/RoleMemberPanel.java index b979c1cd0dd..53cf3054a69 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/roles/RoleMemberPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/roles/RoleMemberPanel.java @@ -31,6 +31,7 @@ import com.evolveum.midpoint.schema.constants.ObjectTypes; import com.evolveum.midpoint.schema.result.OperationResult; import com.evolveum.midpoint.schema.util.ObjectTypeUtil; +import com.evolveum.midpoint.security.api.AuthorizationConstants; import com.evolveum.midpoint.task.api.Task; import com.evolveum.midpoint.task.api.TaskCategory; import com.evolveum.midpoint.util.exception.SchemaException; @@ -40,9 +41,11 @@ import com.evolveum.midpoint.web.component.assignment.RelationTypes; import com.evolveum.midpoint.web.component.data.column.IsolatedCheckBoxPanel; import com.evolveum.midpoint.web.component.input.QNameChoiceRenderer; +import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItem; import com.evolveum.midpoint.web.component.util.VisibleBehaviour; import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour; import com.evolveum.midpoint.web.page.admin.configuration.component.ChooseTypePanel; +import com.evolveum.midpoint.web.page.admin.configuration.component.HeaderMenuAction; import com.evolveum.midpoint.web.page.admin.dto.ObjectViewDto; import com.evolveum.midpoint.web.page.admin.users.component.AbstractRoleMemberPanel; import com.evolveum.midpoint.web.session.UserProfileStorage.TableId; diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/AbstractRoleMemberPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/AbstractRoleMemberPanel.java index 634f5ae040f..baed1a00c4b 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/AbstractRoleMemberPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/AbstractRoleMemberPanel.java @@ -249,12 +249,12 @@ private List<InlineMenuItem> createMembersHeaderInlineMenu() { if (isAuthorizedToUnassignMembers()) { headerMenuItems.addAll(createUnassignMemberInlineMenuItems()); } + if (isAuthorizedToUnassignAllMembers()) { + headerMenuItems.addAll(createUnassignAllMemberInlineMenuItems()); + } if (isAuthorizedToRecomputeMembers()) { headerMenuItems.addAll(createMemberRecomputeInlineMenuItems()); } - if (isAuthorizedToDeleteMembers()) { - headerMenuItems.addAll(createMemberDeleteInlineMenuItems()); - } return headerMenuItems; } @@ -270,8 +270,8 @@ protected boolean isAuthorizedToUnassignMembers(){ return WebComponentUtil.isAuthorized(AuthorizationConstants.AUTZ_UI_ADMIN_UNASSIGN_MEMBER_TAB_ACTION_URI); } - protected boolean isAuthorizedToDeleteMembers(){ - return WebComponentUtil.isAuthorized(AuthorizationConstants.AUTZ_UI_ADMIN_DELETE_ORG_MEMBER_ACTION_URI); + protected boolean isAuthorizedToUnassignAllMembers(){ + return WebComponentUtil.isAuthorized(AuthorizationConstants.AUTZ_UI_ADMIN_UNASSIGN_ALL_MEMBERS_TAB_ACTION_URI); } protected boolean isAuthorizedToRecomputeMembers(){ @@ -306,10 +306,6 @@ public void onClick(AjaxRequestTarget target) { return newMemberMenuItems; } - protected List<InlineMenuItem> createMemberDeleteInlineMenuItems() { - return new ArrayList<>(); - } - protected List<InlineMenuItem> createMemberRecomputeInlineMenuItems() { List<InlineMenuItem> recomputeMenuItems = new ArrayList<>(); recomputeMenuItems @@ -361,18 +357,24 @@ public void onClick(AjaxRequestTarget target) { removeMembersPerformed(QueryScope.SELECTED, null , target); } })); + return unassignMenuItems; + } + + protected List<InlineMenuItem> createUnassignAllMemberInlineMenuItems() { + List<InlineMenuItem> unassignMenuItems = new ArrayList<>(); unassignMenuItems.add(new InlineMenuItem(createStringResource("TreeTablePanel.menu.unassignMembersAll"), false, new HeaderMenuAction(this) { private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { - removeMembersPerformed(QueryScope.ALL, null ,target); + removeMembersPerformed(QueryScope.ALL, null, target); } })); return unassignMenuItems; } + protected void createFocusMemberPerformed(final QName relation, AjaxRequestTarget target) { ChooseFocusTypeDialogPanel chooseTypePopupContent = new ChooseFocusTypeDialogPanel( diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/OrgMemberPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/OrgMemberPanel.java index 1ed3387433c..33bf8375d26 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/OrgMemberPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/OrgMemberPanel.java @@ -112,6 +112,7 @@ public class OrgMemberPanel extends AbstractRoleMemberPanel<OrgType> { protected static final String DOT_CLASS = OrgMemberPanel.class.getName() + "."; protected static final String OPERATION_SEARCH_MANAGERS = DOT_CLASS + "searchManagers"; private static final String OPERATION_LOAD_MANAGERS = DOT_CLASS + "loadManagers"; + private static final String OPERATION_UNASSIGN_MANAGERS = DOT_CLASS + "unassignManagers"; private static final String OPERATION_LOAD_MEMBER_RELATION_OBJECTS = DOT_CLASS + "loadMemberRelationObjects"; private static final String ID_MANAGER_SUMMARY = "managerSummary"; private static final String ID_REMOVE_MANAGER = "removeManager"; @@ -319,35 +320,6 @@ public boolean isVisible(){ removeManager.setOutputMarkupId(true); managerMarkup.add(removeManager); - AjaxButton deleteManager = new AjaxButton(ID_DELETE_MANAGER) { - - @Override - public void onClick(AjaxRequestTarget target) { - FocusSummaryPanel<FocusType> summary = (FocusSummaryPanel<FocusType>) getParent() - .get(ID_MANAGER_SUMMARY); - deleteManagerPerformed(summary.getModelObject(), this, target); - } - }; - deleteManager.setOutputMarkupId(true); - deleteManager.add(new VisibleEnableBehaviour(){ - private static final long serialVersionUID = 1L; - - @Override - public boolean isVisible(){ - boolean isVisible = false; - try { - // TODO: the modify authorization here is probably wrong. - // It is a model autz. UI autz should be here instead? - isVisible = getPageBase().isAuthorized(ModelAuthorizationAction.DELETE.getUrl(), null, - managerWrapper.getObject(), null, null, null); - } catch (Exception ex) { - LoggingUtils.logUnexpectedException(LOGGER, "Failed to check authorization for #delete operation on object " + - managerWrapper.getObject(), ex); - } - return isVisible; - } - }); - managerMarkup.add(deleteManager); } managerContainer.add(view); @@ -363,43 +335,26 @@ public boolean isVisible(){ } private void removeManagerPerformed(FocusType manager, AjaxRequestTarget target) { - OperationResult parentResult = new OperationResult("Remove manager"); - Task task = getPageBase().createSimpleTask("Remove manager"); + OperationResult parentResult = new OperationResult(OPERATION_UNASSIGN_MANAGERS); + Task task = getPageBase().createSimpleTask(OPERATION_UNASSIGN_MANAGERS); try { ObjectDelta delta = ObjectDelta.createModificationDeleteContainer( manager.asPrismObject().getCompileTimeClass(), manager.getOid(), FocusType.F_ASSIGNMENT, getPageBase().getPrismContext(), createAssignmentToModify(SchemaConstants.ORG_MANAGER)); - getPageBase().getModelService().executeChanges(WebComponentUtil.createDeltaCollection(delta), - null, task, parentResult); - parentResult.computeStatus(); - } catch (SchemaException | ObjectAlreadyExistsException | ObjectNotFoundException - | ExpressionEvaluationException | CommunicationException | ConfigurationException - | PolicyViolationException | SecurityViolationException e) { - - parentResult.recordFatalError("Failed to remove manager " + e.getMessage(), e); - LoggingUtils.logUnexpectedException(LOGGER, "Failed to remove manager", e); - getPageBase().showResult(parentResult); - } - target.add(getPageBase().getFeedbackPanel()); + List<ObjectType> managerList = new ArrayList<>(); + managerList.add(manager); - } - - private void deleteManagerConfirmPerformed(FocusType manager, AjaxRequestTarget target) { - getPageBase().hideMainPopup(target); - OperationResult parentResult = new OperationResult("Remove manager"); - Task task = getPageBase().createSimpleTask("Remove manager"); - try { - - ObjectDelta delta = ObjectDelta.createDeleteDelta(manager.asPrismObject().getCompileTimeClass(), manager.getOid(), getPageBase().getPrismContext()); - getPageBase().getModelService().executeChanges(WebComponentUtil.createDeltaCollection(delta), - null, task, parentResult); - parentResult.computeStatus(); - } catch (SchemaException | ObjectAlreadyExistsException | ObjectNotFoundException - | ExpressionEvaluationException | CommunicationException | ConfigurationException - | PolicyViolationException | SecurityViolationException e) { + executeMemberOperation(task, FocusType.COMPLEX_TYPE, + createQueryForMemberAction(QueryScope.SELECTED, managerList, SchemaConstants.ORG_MANAGER, true), delta, + TaskCategory.EXECUTE_CHANGES, target); +// getPageBase().getModelService().executeChanges(WebComponentUtil.createDeltaCollection(delta), +// null, task, parentResult); +// parentResult.computeStatus(); + } catch (SchemaException e) { +// parentResult.recordFatalError("Failed to remove manager " + e.getMessage(), e); LoggingUtils.logUnexpectedException(LOGGER, "Failed to remove manager", e); getPageBase().showResult(parentResult); @@ -408,19 +363,6 @@ private void deleteManagerConfirmPerformed(FocusType manager, AjaxRequestTarget } - private void deleteManagerPerformed(final FocusType manager, final Component summary, AjaxRequestTarget target) { - ConfirmationPanel confirmDelete = new ConfirmationPanel(getPageBase().getMainPopupBodyId(), createStringResource("TreeTablePanel.menu.deleteManager.confirm")) { - @Override - public void yesPerformed(AjaxRequestTarget target) { - OrgMemberPanel.this.deleteManagerConfirmPerformed(manager, target); - summary.getParent().setVisible(false); - target.add(OrgMemberPanel.this); - } - }; - - getPageBase().showMainPopup(confirmDelete, target); - } - @Override protected boolean isAuthorizedToUnassignMembers(){ return WebComponentUtil.isAuthorized(AuthorizationConstants.AUTZ_UI_ADMIN_UNASSIGN_ORG_MEMBER_ACTION_URI); @@ -431,11 +373,6 @@ protected boolean isAuthorizedToAssignMembers(){ return WebComponentUtil.isAuthorized(AuthorizationConstants.AUTZ_UI_ADMIN_ASSIGN_ORG_MEMBER_ACTION_URI); } - @Override - protected boolean isAuthorizedToDeleteMembers(){ - return WebComponentUtil.isAuthorized(AuthorizationConstants.AUTZ_UI_ADMIN_DELETE_ORG_MEMBER_ACTION_URI); - } - @Override protected boolean isAuthorizedToRecomputeMembers(){ return WebComponentUtil.isAuthorized(AuthorizationConstants.AUTZ_UI_ADMIN_RECOMPUTE_ORG_MEMBER_ACTION_URI); @@ -446,52 +383,6 @@ protected boolean isAuthorizedToCreateMembers(){ return WebComponentUtil.isAuthorized(AuthorizationConstants.AUTZ_UI_ADMIN_ADD_ORG_MEMBER_ACTION_URI); } - @Override - protected List<InlineMenuItem> createMemberDeleteInlineMenuItems() { - List<InlineMenuItem> deleteMenuItems = new ArrayList<>(); - - deleteMenuItems.add(new InlineMenuItem(createStringResource("TreeTablePanel.menu.deleteMember"), - false, new HeaderMenuAction(this) { - - @Override - public void onClick(AjaxRequestTarget target) { - deleteMemberPerformed(QueryScope.SELECTED, null, target, "TreeTablePanel.menu.deleteMember.confirm"); - } - })); - - deleteMenuItems.add(new InlineMenuItem(createStringResource("TreeTablePanel.menu.deleteAllMembers"), - false, new HeaderMenuAction(this) { - - @Override - public void onClick(AjaxRequestTarget target) { - deleteMemberPerformed(QueryScope.ALL, null, target, "TreeTablePanel.menu.deleteAllMembers.confirm"); - } - })); - return deleteMenuItems; - } - - private void deleteMemberPerformed(final QueryScope scope, final QName relation, final AjaxRequestTarget target, String confirmMessageKey) { - ConfirmationPanel confirmDelete = new ConfirmationPanel(getPageBase().getMainPopupBodyId(), createStringResource(confirmMessageKey)) { - @Override - public void yesPerformed(AjaxRequestTarget target) { - OrgMemberPanel.this.deleteMemberConfirmPerformed(scope, relation, target); - } - }; - - getPageBase().showMainPopup(confirmDelete, target); - } - - private void deleteMemberConfirmPerformed(QueryScope scope, QName relation, AjaxRequestTarget target) { - getPageBase().hideMainPopup(target); - Task operationalTask = getPageBase().createSimpleTask(getTaskName("Delete", scope, false)); - ObjectDelta delta = ObjectDelta.createDeleteDelta(FocusType.class, "fakeOid", getPageBase().getPrismContext()); - if (delta == null) { - return; - } - executeMemberOperation(operationalTask, FocusType.COMPLEX_TYPE, createQueryForMemberAction(scope, relation, true), delta, TaskCategory.EXECUTE_CHANGES, target); - - } - private List<InlineMenuItem> createManagersHeaderInlineMenu() { List<InlineMenuItem> headerMenuItems = new ArrayList<>(); @@ -544,18 +435,6 @@ public void onClick(AjaxRequestTarget target) { })); } - if (WebComponentUtil.isAuthorized(AuthorizationConstants.AUTZ_UI_ADMIN_DELETE_ORG_MEMBER_ACTION_URI)) { - headerMenuItems - .add(new InlineMenuItem(createStringResource("TreeTablePanel.menu.deleteManagersAll"), - false, new HeaderMenuAction(this) { - private static final long serialVersionUID = 1L; - - @Override - public void onClick(AjaxRequestTarget target) { - OrgMemberPanel.this.deleteMemberPerformed(QueryScope.ALL, SchemaConstants.ORG_MANAGER, target, "TreeTablePanel.menu.deleteManagersAll.confirm"); - } - })); - } return headerMenuItems; } @@ -727,13 +606,16 @@ private QName getSelectedRelation(){ } private ObjectQuery createQueryForMemberAction(QueryScope scope, QName orgRelation, boolean isFocus) { + return createQueryForMemberAction(scope, getMemberTable().getSelectedObjects(), orgRelation, isFocus); + } + + private ObjectQuery createQueryForMemberAction(QueryScope scope, List<ObjectType> selectedObjects, QName orgRelation, boolean isFocus) { ObjectQuery query = null; switch (scope) { case SELECTED: - List<ObjectType> objects = getMemberTable().getSelectedObjects(); List<String> oids = new ArrayList<>(); - for (ObjectType object : objects) { + for (ObjectType object : selectedObjects) { if (satisfyConstraints(isFocus, object.getClass())) { oids.add(object.getOid()); } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/ServiceMemberPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/ServiceMemberPanel.java index 79982aadfc3..132f89b2f53 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/ServiceMemberPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/ServiceMemberPanel.java @@ -1,5 +1,7 @@ package com.evolveum.midpoint.web.page.admin.users.component; +import com.evolveum.midpoint.gui.api.util.WebComponentUtil; +import com.evolveum.midpoint.security.api.AuthorizationConstants; import org.apache.wicket.model.IModel; import com.evolveum.midpoint.web.page.admin.roles.RoleMemberPanel; diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/security/MidPointAccessDeniedHandler.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/security/MidPointAccessDeniedHandler.java index 266d91c058c..9479f57d641 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/security/MidPointAccessDeniedHandler.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/security/MidPointAccessDeniedHandler.java @@ -16,13 +16,11 @@ package com.evolveum.midpoint.web.security; -import org.apache.commons.lang.StringUtils; import org.springframework.security.access.AccessDeniedException; import org.springframework.security.web.access.AccessDeniedHandler; import org.springframework.security.web.access.AccessDeniedHandlerImpl; -import org.springframework.security.web.csrf.MissingCsrfTokenException; +import org.springframework.security.web.csrf.CsrfException; -import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -42,35 +40,19 @@ public void handle(HttpServletRequest request, HttpServletResponse response, return; } - // handle invalid csrf token exception gracefully when user tries to log in/out with expired exception - if (isLoginLogoutRequest(request) && (accessDeniedException instanceof MissingCsrfTokenException)) { - response.sendRedirect(request.getContextPath()); + if (accessDeniedException instanceof CsrfException) { + // handle invalid csrf token exception gracefully when user tries to log in/out with expired exception + // handle session timeout for ajax cases -> redirect to base context (login) + if (WicketRedirectStrategy.isWicketAjaxRequest(request)) { + WicketRedirectStrategy redirect = new WicketRedirectStrategy(); + redirect.sendRedirect(request, response, request.getContextPath()); + } else { + response.sendRedirect(request.getContextPath()); + } + return; } defaultHandler.handle(request, response, accessDeniedException); } - - private boolean isLoginLogoutRequest(HttpServletRequest req) { - if (!"post".equalsIgnoreCase(req.getMethod())) { - return false; - } - - String uri = req.getRequestURI(); - return createUri(req, "/j_spring_security_logout").equals(uri) - || createUri(req, "/spring_security_login").equals(uri); - } - - private String createUri(HttpServletRequest req, String uri) { - StringBuilder sb = new StringBuilder(); - - ServletContext ctx = req.getServletContext(); - String ctxPath = ctx.getContextPath(); - if (StringUtils.isNotEmpty(ctxPath)) { - sb.append(ctxPath); - } - sb.append(uri); - - return sb.toString(); - } } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/security/MidPointApplication.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/security/MidPointApplication.java index 8daf521c58e..a0565a130bb 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/security/MidPointApplication.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/security/MidPointApplication.java @@ -66,6 +66,9 @@ import org.apache.wicket.authroles.authentication.AbstractAuthenticatedWebSession; import org.apache.wicket.authroles.authentication.AuthenticatedWebApplication; import org.apache.wicket.core.request.mapper.MountedMapper; +import org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream; +import org.apache.wicket.core.util.objects.checker.IObjectChecker; +import org.apache.wicket.core.util.objects.checker.ObjectSerializationChecker; import org.apache.wicket.core.util.resource.locator.IResourceStreamLocator; import org.apache.wicket.core.util.resource.locator.caching.CachingResourceStreamLocator; import org.apache.wicket.markup.head.PriorityFirstComparator; @@ -77,6 +80,7 @@ import org.apache.wicket.request.resource.PackageResourceReference; import org.apache.wicket.request.resource.SharedResourceReference; import org.apache.wicket.resource.loader.IStringResourceLoader; +import org.apache.wicket.serialize.java.JavaSerializer; import org.apache.wicket.settings.ApplicationSettings; import org.apache.wicket.settings.ResourceSettings; import org.apache.wicket.spring.injection.annot.SpringComponentInjector; diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/security/WicketLoginUrlAuthenticationEntryPoint.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/security/WicketLoginUrlAuthenticationEntryPoint.java index dbcc40390c1..241aef7c829 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/security/WicketLoginUrlAuthenticationEntryPoint.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/security/WicketLoginUrlAuthenticationEntryPoint.java @@ -16,7 +16,6 @@ package com.evolveum.midpoint.web.security; -import org.apache.wicket.request.http.WebRequest; import org.springframework.security.core.AuthenticationException; import org.springframework.security.web.authentication.LoginUrlAuthenticationEntryPoint; @@ -38,7 +37,7 @@ public WicketLoginUrlAuthenticationEntryPoint(String loginFormUrl) { public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException authException) throws IOException, ServletException { - if (!isWicketAjaxRequest(request)) { + if (!WicketRedirectStrategy.isWicketAjaxRequest(request)) { super.commence(request, response, authException); return; @@ -49,18 +48,4 @@ public void commence(HttpServletRequest request, HttpServletResponse response, WicketRedirectStrategy strategy = new WicketRedirectStrategy(); strategy.sendRedirect(request, response, url); } - - private boolean isWicketAjaxRequest(HttpServletRequest request) { - String value = request.getParameter(WebRequest.PARAM_AJAX); - if (value != null && "true".equals(value)) { - return true; - } - - value = request.getHeader(WebRequest.HEADER_AJAX); - if (value != null && "true".equals(value)) { - return true; - } - - return false; - } } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/security/WicketRedirectStrategy.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/security/WicketRedirectStrategy.java index 2fc0ca9e3a8..84025e8cb8a 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/security/WicketRedirectStrategy.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/security/WicketRedirectStrategy.java @@ -16,6 +16,7 @@ package com.evolveum.midpoint.web.security; +import org.apache.wicket.request.http.WebRequest; import org.apache.wicket.util.time.Time; import org.springframework.security.web.DefaultRedirectStrategy; @@ -45,4 +46,18 @@ public void sendRedirect(HttpServletRequest request, HttpServletResponse respons Writer writer = response.getWriter(); writer.write("<ajax-response><redirect><![CDATA[" + url + "]]></redirect></ajax-response>"); } + + public static boolean isWicketAjaxRequest(HttpServletRequest request) { + String value = request.getParameter(WebRequest.PARAM_AJAX); + if (Boolean.parseBoolean(value)) { + return true; + } + + value = request.getHeader(WebRequest.HEADER_AJAX); + if (Boolean.parseBoolean(value)) { + return true; + } + + return false; + } } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/util/ObjectTypeGuiDescriptor.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/util/ObjectTypeGuiDescriptor.java index 8a18a3ec005..ea62e9c3649 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/util/ObjectTypeGuiDescriptor.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/util/ObjectTypeGuiDescriptor.java @@ -81,7 +81,9 @@ public enum ObjectTypeGuiDescriptor { CASE(ObjectTypes.CASE, "ObjectTypeGuiDescriptor.case", "", ""), // TODO icons - FUNCTION_LIBRARY(ObjectTypes.FUNCTION_LIBRARY, "ObjectTypeGuiDescriptor.functionLibrary", "", ""); // TODO icons + FUNCTION_LIBRARY(ObjectTypes.FUNCTION_LIBRARY, "ObjectTypeGuiDescriptor.functionLibrary", "", ""), // TODO icons + + OBJECT_COLLECTION(ObjectTypes.OBJECT_COLLECTION, "ObjectTypeGuiDescriptor.objectCollection", "", ""); // TODO icons public static final String ERROR_ICON = "silk-error"; public static final String ERROR_LOCALIZATION_KEY = "ObjectTypeGuiDescriptor.unknown"; diff --git a/gui/admin-gui/src/main/resources/application.yml b/gui/admin-gui/src/main/resources/application.yml index 630b6ea2384..d398a995880 100644 --- a/gui/admin-gui/src/main/resources/application.yml +++ b/gui/admin-gui/src/main/resources/application.yml @@ -1,29 +1,27 @@ spring: application: name: MidPoint - - http: + servlet: multipart: max-file-size: 100Mb max-request-size: 100Mb server: - display-name: MidPoint - contextPath: /midpoint # Spring Boot 1.x - session: - timeout: 15 # in minutes. By default spring uses seconds, but tomcat/container (not embedded) uses this value - # as minutes - so we end up with never expiring session. tomcat: basedir: ${midpoint.home} max-http-post-size: 104857600 # in bytes - servlet: - path: /midpoint # Spring Boot 2.0 + context-path: /midpoint + application-display-name: MidPoint + session: + timeout: 15 # in minutes. By default spring uses seconds, but tomcat/container (not embedded) uses this value + # as minutes - so we end up with never expiring session. auth: logout: url: / # NOTE: This URL is relative to application root + #security: # enable-csrf: false # default for midpoint is true diff --git a/gui/admin-gui/src/main/resources/localization/Midpoint.properties b/gui/admin-gui/src/main/resources/localization/Midpoint.properties index 927f4997236..dd2cd77f69c 100755 --- a/gui/admin-gui/src/main/resources/localization/Midpoint.properties +++ b/gui/admin-gui/src/main/resources/localization/Midpoint.properties @@ -669,6 +669,7 @@ ObjectTypeGuiDescriptor.service=Service ObjectTypeGuiDescriptor.case=Case ObjectTypeGuiDescriptor.valuePolicy=Value policy ObjectTypeGuiDescriptor.functionLibrary=Function library +ObjectTypeGuiDescriptor.objectCollection=Object collection ObjectTypeGuiDescriptor.unknown=Not defined operation.com.evolveum.midpoint.common.crypto.CryptoUtil.securitySelfTest=Security self test operation.com.evolveum.midpoint.common.operation.import.object=Import object @@ -889,6 +890,7 @@ operation.com.evolveum.midpoint.web.page.admin.users.component.TreeTablePanel.mo operation.com.evolveum.midpoint.web.page.admin.users.component.TreeTablePanel.moveObjects=Move objects (Gui) operation.com.evolveum.midpoint.web.page.admin.users.component.TreeTablePanel.updateObjects=Update objects (Gui) operation.com.evolveum.midpoint.web.page.admin.users.component.TreeTablePanel.updateObject=Update object (Gui) +operation.com.evolveum.midpoint.web.page.admin.users.component.OrgMemberPanel.unassignManagers=Unassign managers operation.com.evolveum.midpoint.web.page.admin.users.PageOrgUnit.saveOrgUnit=Save org. unit (Gui) operation.com.evolveum.midpoint.web.page.admin.users.PageUser.loadAccount=Load account (Gui) operation.com.evolveum.midpoint.web.page.admin.users.PageUser.loadAccounts=Load accounts (Gui) @@ -3318,11 +3320,12 @@ roleMemberPanel.menu.assignOwners=Assign owners roleMemberPanel.menu.createApprover=Create approver roleMemberPanel.menu.assignApprovers=Assign approvers roleMemberPanel.menu.add=Add member -roleMemberPanel.menu.remove=Remove member +roleMemberPanel.menu.remove=Unassign member roleMemberPanel.menu.recompute=Recompute member roleMemberPanel.menu.recomputeAll=Recompute all roleMemberPanel.menu.removeAll=Remove all roleMemberPanel.relation=Relation +AssignmentPanel.newAssignmentParameters=Parameters SearchPanel.more=More... SearchPanel.add=Add SearchPanel.close=Close @@ -4010,14 +4013,14 @@ ConstructionType.association=Association operation.Recompute.ALL.members=Recompute all members operation.Recompute.SELECTED.members=Recompute selected members operation.Recompute.ALL_DIRECT.members=Recompute all direct members -operation.Remove.ALL.members=Remove all members -operation.Remove.SELECTED.members=Remove selected members -operation.Remove.ALL_DIRECT.members=Remove all direct members -operation.Remove.ALL.managers=Remove all managers -operation.Remove.SELECTED.managers=Remove selected managers -operation.Remove.ALL_DIRECT.managers=Remove all direct managers +operation.Remove.ALL.members=Unassign all members +operation.Remove.SELECTED.members=Unassign selected members +operation.Remove.ALL_DIRECT.members=Unassign all direct members +operation.Remove.ALL.managers=Unassign all managers +operation.Remove.SELECTED.managers=Unassign selected managers +operation.Remove.ALL_DIRECT.managers=Unassign all direct managers operation.Add.members=Add members -operation.Remove.members=Remove members +operation.Remove.members=Unassign members ConstructionStrengthType.STRONG=Strong ConstructionStrengthType.WEAK=Weak RoleRelationSelectionPanel.approver=Approver diff --git a/gui/admin-gui/src/main/resources/localization/Midpoint_en.properties b/gui/admin-gui/src/main/resources/localization/Midpoint_en.properties index 573d88a2adb..b5cfd320a0b 100644 --- a/gui/admin-gui/src/main/resources/localization/Midpoint_en.properties +++ b/gui/admin-gui/src/main/resources/localization/Midpoint_en.properties @@ -3296,10 +3296,10 @@ roleMemberPanel.menu.assignOwners=Assign owners roleMemberPanel.menu.createApprover=Create approver roleMemberPanel.menu.assignApprovers=Assign approvers roleMemberPanel.menu.add=Add member -roleMemberPanel.menu.remove=Remove member +roleMemberPanel.menu.remove=Unassign member roleMemberPanel.menu.recompute=Recompute member roleMemberPanel.menu.recomputeAll=Recompute all -roleMemberPanel.menu.removeAll=Remove all +roleMemberPanel.menu.removeAll=Unassign all roleMemberPanel.relation=Relation SearchPanel.more=More... SearchPanel.add=Add @@ -3955,14 +3955,14 @@ ConstructionType.association=Association operation.Recompute.ALL.members=Recompute all members operation.Recompute.SELECTED.members=Recompute selected members operation.Recompute.ALL_DIRECT.members=Recompute all direct members -operation.Remove.ALL.members=Remove all members -operation.Remove.SELECTED.members=Remove selected members -operation.Remove.ALL_DIRECT.members=Remove all direct members -operation.Remove.ALL.managers=Remove all managers -operation.Remove.SELECTED.managers=Remove selected managers -operation.Remove.ALL_DIRECT.managers=Remove all direct managers +operation.Remove.ALL.members=Unassign all members +operation.Remove.SELECTED.members=Unassign selected members +operation.Remove.ALL_DIRECT.members=Unassign all direct members +operation.Remove.ALL.managers=Unassign all managers +operation.Remove.SELECTED.managers=Unassign selected managers +operation.Remove.ALL_DIRECT.managers=Unassign all direct managers operation.Add.members=Add members -operation.Remove.members=Remove members +operation.Remove.members=Unassign members ConstructionStrengthType.STRONG=Strong ConstructionStrengthType.WEAK=Weak RoleRelationSelectionPanel.approver=Approver diff --git a/gui/admin-gui/src/main/resources/static/less/admin-lte/less/core.less b/gui/admin-gui/src/main/resources/static/less/admin-lte/less/core.less index f0cc2cb1816..c3d8cfcbae8 100644 --- a/gui/admin-gui/src/main/resources/static/less/admin-lte/less/core.less +++ b/gui/admin-gui/src/main/resources/static/less/admin-lte/less/core.less @@ -85,6 +85,10 @@ body { border-top: 1px solid @gray-lte; } +.main-footer-invisible { + padding: 15px 15px 0px 15px; +} + /* Fixed layout */ .fixed { .main-header, diff --git a/gui/pom.xml b/gui/pom.xml index 29e37e9c636..eb5568f883f 100644 --- a/gui/pom.xml +++ b/gui/pom.xml @@ -23,7 +23,7 @@ <parent> <artifactId>parent</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <relativePath>../build-system/pom.xml</relativePath> </parent> <organization> diff --git a/icf-connectors/dummy-connector-fake/pom.xml b/icf-connectors/dummy-connector-fake/pom.xml index 4f48d6ca39a..9c4cce34da2 100644 --- a/icf-connectors/dummy-connector-fake/pom.xml +++ b/icf-connectors/dummy-connector-fake/pom.xml @@ -25,7 +25,7 @@ <parent> <artifactId>icf-connectors</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </parent> <scm> <connection>https://github.com/Evolveum/midpoint.git</connection> diff --git a/icf-connectors/dummy-connector/pom.xml b/icf-connectors/dummy-connector/pom.xml index 160bf73178e..7f477db882c 100644 --- a/icf-connectors/dummy-connector/pom.xml +++ b/icf-connectors/dummy-connector/pom.xml @@ -25,7 +25,7 @@ <parent> <artifactId>icf-connectors</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </parent> <scm> <connection>https://github.com/Evolveum/midpoint.git</connection> @@ -40,7 +40,7 @@ <dependency> <groupId>com.evolveum.icf</groupId> <artifactId>dummy-resource</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>commons-lang</groupId> diff --git a/icf-connectors/dummy-resource/pom.xml b/icf-connectors/dummy-resource/pom.xml index f7f143e642e..da5903b3f4e 100644 --- a/icf-connectors/dummy-resource/pom.xml +++ b/icf-connectors/dummy-resource/pom.xml @@ -25,7 +25,7 @@ <parent> <artifactId>icf-connectors</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </parent> <scm> <connection>https://github.com/Evolveum/midpoint.git</connection> @@ -36,7 +36,7 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>commons-lang</groupId> diff --git a/icf-connectors/pom.xml b/icf-connectors/pom.xml index e3b76290c0e..1f9719a940d 100644 --- a/icf-connectors/pom.xml +++ b/icf-connectors/pom.xml @@ -23,7 +23,7 @@ <parent> <artifactId>parent</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <relativePath>../build-system/pom.xml</relativePath> </parent> <organization> @@ -55,7 +55,7 @@ <dependency> <groupId>com.evolveum.midpoint.tools</groupId> <artifactId>test-ng</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <!-- Not used, but required for surefire plugin not to complain --> diff --git a/infra/common/pom.xml b/infra/common/pom.xml index ecd34f905ca..8bcc22f890a 100644 --- a/infra/common/pom.xml +++ b/infra/common/pom.xml @@ -24,7 +24,7 @@ <parent> <artifactId>infra</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </parent> <scm> <connection>https://github.com/Evolveum/midpoint.git</connection> @@ -35,17 +35,17 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>prism</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>schema</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>org.jetbrains</groupId> @@ -106,13 +106,13 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>test-util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.tools</groupId> <artifactId>test-ng</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> </dependencies> diff --git a/infra/pom.xml b/infra/pom.xml index a11a511690f..9d9dc8226e8 100644 --- a/infra/pom.xml +++ b/infra/pom.xml @@ -22,7 +22,7 @@ <parent> <artifactId>parent</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <relativePath>../build-system/pom.xml</relativePath> </parent> <organization> diff --git a/infra/prism-maven-plugin/pom.xml b/infra/prism-maven-plugin/pom.xml index 1e4ecb2d900..7d0219baa90 100644 --- a/infra/prism-maven-plugin/pom.xml +++ b/infra/prism-maven-plugin/pom.xml @@ -26,7 +26,7 @@ <parent> <artifactId>infra</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </parent> <scm> <connection>https://github.com/Evolveum/midpoint.git</connection> @@ -37,12 +37,12 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>prism</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>org.apache.maven</groupId> diff --git a/infra/prism/pom.xml b/infra/prism/pom.xml index febccc542dd..3f846e94005 100644 --- a/infra/prism/pom.xml +++ b/infra/prism/pom.xml @@ -24,7 +24,7 @@ <parent> <artifactId>infra</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </parent> <scm> <connection>https://github.com/Evolveum/midpoint.git</connection> @@ -35,7 +35,7 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <!--<dependency>--> <!--<groupId>com.evolveum.midpoint.infra</groupId>--> @@ -188,7 +188,7 @@ <dependency> <groupId>com.evolveum.midpoint.tools</groupId> <artifactId>test-ng</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> </dependencies> diff --git a/infra/prism/src/main/java/com/evolveum/midpoint/prism/lex/json/AbstractJsonLexicalProcessor.java b/infra/prism/src/main/java/com/evolveum/midpoint/prism/lex/json/AbstractJsonLexicalProcessor.java index 7b2ef316078..1077e1ba7ca 100644 --- a/infra/prism/src/main/java/com/evolveum/midpoint/prism/lex/json/AbstractJsonLexicalProcessor.java +++ b/infra/prism/src/main/java/com/evolveum/midpoint/prism/lex/json/AbstractJsonLexicalProcessor.java @@ -317,6 +317,7 @@ private XNode parseValue(JsonParsingContext ctx, IterativeParsingContext ipc) th case VALUE_FALSE: case VALUE_NUMBER_FLOAT: case VALUE_NUMBER_INT: + case VALUE_EMBEDDED_OBJECT: // assuming it's a scalar value e.g. !!binary (TODO) return parseToPrimitive(ctx); case VALUE_NULL: return parseToEmptyPrimitive(); diff --git a/infra/prism/src/main/java/com/evolveum/midpoint/prism/lex/json/YamlLexicalProcessor.java b/infra/prism/src/main/java/com/evolveum/midpoint/prism/lex/json/YamlLexicalProcessor.java index 1e47d909d3a..4bb42f3af84 100644 --- a/infra/prism/src/main/java/com/evolveum/midpoint/prism/lex/json/YamlLexicalProcessor.java +++ b/infra/prism/src/main/java/com/evolveum/midpoint/prism/lex/json/YamlLexicalProcessor.java @@ -51,6 +51,7 @@ public class YamlLexicalProcessor extends AbstractJsonLexicalProcessor { private static final String TAG_INT = YAML + "int"; private static final String TAG_BOOL = YAML + "bool"; private static final String TAG_FLOAT = YAML + "float"; + private static final String TAG_BINARY = YAML + "binary"; // base64-encoded string private static final String TAG_NULL = YAML + "null"; public YamlLexicalProcessor(@NotNull SchemaRegistry schemaRegistry) { @@ -126,6 +127,8 @@ protected MidpointYAMLParser createJacksonParser(InputStream stream) throws Sche protected QName tagToTypeName(Object tag, AbstractJsonLexicalProcessor.JsonParsingContext ctx) throws IOException, SchemaException { if (tag == null) { return null; + } if (TAG_BINARY.equals(tag)) { + return DOMUtil.XSD_STRING; // base64-encoded string: we store it as string, leaving interpretation to upper layers } if (TAG_STRING.equals(tag)) { return DOMUtil.XSD_STRING; } else if (TAG_BOOL.equals(tag)) { diff --git a/infra/prism/src/main/java/com/evolveum/prism/xml/ns/_public/types_3/PolyStringNormalizerConfigurationType.java b/infra/prism/src/main/java/com/evolveum/prism/xml/ns/_public/types_3/PolyStringNormalizerConfigurationType.java index d28fffdf9eb..0121e529a36 100644 --- a/infra/prism/src/main/java/com/evolveum/prism/xml/ns/_public/types_3/PolyStringNormalizerConfigurationType.java +++ b/infra/prism/src/main/java/com/evolveum/prism/xml/ns/_public/types_3/PolyStringNormalizerConfigurationType.java @@ -28,7 +28,7 @@ import com.evolveum.midpoint.util.ShortDumpable; @XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "ItemDeltaType", propOrder = { +@XmlType(name = "PolyStringNormalizerConfigurationType", propOrder = { "className", "trim", "nfkd", diff --git a/infra/schema-pure-jaxb/pom.xml b/infra/schema-pure-jaxb/pom.xml index 3c131fb6f3a..a19bda1cfb1 100644 --- a/infra/schema-pure-jaxb/pom.xml +++ b/infra/schema-pure-jaxb/pom.xml @@ -24,7 +24,7 @@ <parent> <artifactId>infra</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </parent> <scm> <connection>https://github.com/Evolveum/midpoint.git</connection> @@ -70,7 +70,7 @@ <dependency> <groupId>com.evolveum.midpoint.tools</groupId> <artifactId>test-ng</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> </dependencies> diff --git a/infra/schema/pom.xml b/infra/schema/pom.xml index 65c7230f7b6..31b099603ab 100644 --- a/infra/schema/pom.xml +++ b/infra/schema/pom.xml @@ -24,7 +24,7 @@ <parent> <artifactId>infra</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </parent> <scm> <connection>https://github.com/Evolveum/midpoint.git</connection> @@ -35,12 +35,12 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>prism</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>commons-collections</groupId> @@ -114,7 +114,7 @@ <dependency> <groupId>com.evolveum.midpoint.tools</groupId> <artifactId>test-ng</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> @@ -254,7 +254,7 @@ <dependency> <groupId>com.evolveum.midpoint.tools</groupId> <artifactId>xjc-plugin</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.sun.xml.bind</groupId> @@ -266,7 +266,7 @@ <plugin> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>prism-maven-plugin</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <configuration> <schemaFiles> <schemaFile>src/main/resources/xml/ns/public/common/common-3.xsd</schemaFile> diff --git a/infra/schema/src/main/java/com/evolveum/midpoint/schema/constants/ObjectTypes.java b/infra/schema/src/main/java/com/evolveum/midpoint/schema/constants/ObjectTypes.java index 45721121cdb..968fcd967db 100644 --- a/infra/schema/src/main/java/com/evolveum/midpoint/schema/constants/ObjectTypes.java +++ b/infra/schema/src/main/java/com/evolveum/midpoint/schema/constants/ObjectTypes.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2014 Evolveum + * Copyright (c) 2010-2018 Evolveum * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -104,6 +104,9 @@ public enum ObjectTypes { FUNCTION_LIBRARY(FunctionLibraryType.COMPLEX_TYPE, SchemaConstantsGenerated.C_FUNCTION_LIBRARY, FunctionLibraryType.class, ObjectManager.MODEL, "functionLibraries"), + + OBJECT_COLLECTION(ObjectCollectionType.COMPLEX_TYPE, SchemaConstantsGenerated.C_OBJECT_COLLECTION, ObjectCollectionType.class, ObjectManager.MODEL, + "objectCollections"), // this should be at end, because otherwise it presents itself as entry for all subtypes of ObjectType OBJECT(SchemaConstants.C_OBJECT_TYPE, SchemaConstants.C_OBJECT, ObjectType.class, ObjectManager.MODEL, "objects"); diff --git a/infra/schema/src/main/java/com/evolveum/midpoint/schema/util/AdminGuiConfigTypeUtil.java b/infra/schema/src/main/java/com/evolveum/midpoint/schema/util/AdminGuiConfigTypeUtil.java index fc3571c0142..e8fbd9f2250 100644 --- a/infra/schema/src/main/java/com/evolveum/midpoint/schema/util/AdminGuiConfigTypeUtil.java +++ b/infra/schema/src/main/java/com/evolveum/midpoint/schema/util/AdminGuiConfigTypeUtil.java @@ -75,7 +75,7 @@ private static void applyAdminGuiConfiguration(AdminGuiConfigurationType composi if (composite.getObjectLists() == null) { composite.setObjectLists(adminGuiConfiguration.getObjectLists().clone()); } else { - for (GuiObjectListType objectList: adminGuiConfiguration.getObjectLists().getObjectList()) { + for (GuiObjectListViewType objectList: adminGuiConfiguration.getObjectLists().getObjectList()) { mergeList(composite.getObjectLists(), objectList); } } @@ -111,7 +111,7 @@ private static void applyAdminGuiConfiguration(AdminGuiConfigurationType composi mergeFeature(composite.getFeature(), feature); } if (composite.getObjectLists() != null && composite.getObjectLists().getObjectList() != null){ - for (GuiObjectListType objectListType : composite.getObjectLists().getObjectList()){ + for (GuiObjectListViewType objectListType : composite.getObjectLists().getObjectList()){ if (objectListType.getColumn() != null) { // objectListType.getColumn().clear(); // objectListType.getColumn().addAll(orderCustomColumns(objectListType.getColumn())); @@ -185,7 +185,7 @@ private static boolean isTheSameObjectForm(ObjectFormType oldForm, ObjectFormTyp return false; } - private static void mergeList(GuiObjectListsType objectLists, GuiObjectListType newList) { + private static void mergeList(GuiObjectListViewsType objectLists, GuiObjectListViewType newList) { // We support only the default object lists now, so simply replace the existing definition with the // latest definition. We will need a more sophisticated merging later. objectLists.getObjectList().removeIf(currentList -> currentList.getType().equals(newList.getType())); diff --git a/infra/schema/src/main/java/com/evolveum/midpoint/schema/util/WfContextUtil.java b/infra/schema/src/main/java/com/evolveum/midpoint/schema/util/WfContextUtil.java index f4f5c23d559..96321830c40 100644 --- a/infra/schema/src/main/java/com/evolveum/midpoint/schema/util/WfContextUtil.java +++ b/infra/schema/src/main/java/com/evolveum/midpoint/schema/util/WfContextUtil.java @@ -426,10 +426,34 @@ public static ObjectReferenceType getObjectRef(WorkItemType workItem) { return getWorkflowContext(workItem).getObjectRef(); } + public static ObjectReferenceType getObjectRef(PrismContainerValue<WorkItemType> workItem) { + return getObjectRef(workItem.asContainerable()); + } + public static ObjectReferenceType getTargetRef(WorkItemType workItem) { return getWorkflowContext(workItem).getTargetRef(); } + public static ObjectReferenceType getTargetRef(PrismContainerValue<WorkItemType> workItem) { + return getTargetRef(workItem.asContainerable()); + } + + public static ObjectReferenceType getRequesterRef(WorkItemType workItem) { + return getWorkflowContext(workItem).getRequesterRef(); + } + + public static ObjectReferenceType getRequesterRef(PrismContainerValue<WorkItemType> workItem) { + return getRequesterRef(workItem.asContainerable()); + } + + public static XMLGregorianCalendar getStartTimestamp(WorkItemType workItem) { + return getWorkflowContext(workItem).getStartTimestamp(); + } + + public static XMLGregorianCalendar getStartTimestamp(PrismContainerValue<WorkItemType> workItem) { + return getStartTimestamp(workItem.asContainerable()); + } + public static int getEscalationLevelNumber(AbstractWorkItemType workItem) { return getEscalationLevelNumber(workItem.getEscalationLevel()); } diff --git a/infra/schema/src/main/resources/xml/ns/public/common/common-3.xsd b/infra/schema/src/main/resources/xml/ns/public/common/common-3.xsd index 8a3ae4fb7d9..e6db5b651d7 100644 --- a/infra/schema/src/main/resources/xml/ns/public/common/common-3.xsd +++ b/infra/schema/src/main/resources/xml/ns/public/common/common-3.xsd @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <!-- - ~ Copyright (c) 2010-2017 Evolveum + ~ Copyright (c) 2010-2018 Evolveum ~ ~ Licensed under the Apache License, Version 2.0 (the "License"); ~ you may not use this file except in compliance with the License. @@ -46,7 +46,7 @@ <a href="https://wiki.evolveum.com/display/midPoint/Data+Model">https://wiki.evolveum.com/display/midPoint/Data+Model</a> for more details. - <p>Version: 3.7</p> + <p>Version: 3.9-SNAPSHOT</p> <p>Recommended namespace prefix: (default), c</p> </xsd:documentation> diff --git a/infra/schema/src/main/resources/xml/ns/public/common/common-core-3.xsd b/infra/schema/src/main/resources/xml/ns/public/common/common-core-3.xsd index 603cc070098..b76e60bf48a 100755 --- a/infra/schema/src/main/resources/xml/ns/public/common/common-core-3.xsd +++ b/infra/schema/src/main/resources/xml/ns/public/common/common-core-3.xsd @@ -13880,7 +13880,8 @@ </xsd:appinfo> </xsd:annotation> </xsd:element> - + + <!-- TODO(maybe): objectCollectionRef --> </xsd:sequence> </xsd:extension> </xsd:complexContent> @@ -13957,7 +13958,40 @@ </xsd:complexType> <xsd:element name="functionLibrary" type="tns:FunctionLibraryType" substitutionGroup="c:object"/> - + <xsd:complexType name="ObjectCollectionType"> + <xsd:annotation> + <xsd:documentation> + Object collection specification. + </xsd:documentation> + <xsd:appinfo> + <a:since>3.9</a:since> + </xsd:appinfo> + </xsd:annotation> + <xsd:complexContent> + <xsd:extension base="c:ObjectType"> + <xsd:sequence> + <xsd:element name="type" type="xsd:QName" minOccurs="1"> + <xsd:annotation> + <xsd:documentation> + Type of objects that belong to this collection. + </xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="filter" type="q:SearchFilterType" minOccurs="0" maxOccurs="1"> + <xsd:annotation> + <xsd:documentation> + Filter that is used to select objects which belong to this collection. + </xsd:documentation> + </xsd:annotation> + </xsd:element> + <!-- TODO: domain (filter or reference to another collection) --> + <!-- TODO: tresholds (actions should be performed by policy rules) --> + <!-- TODO(maybe): default view specification, e.g. default set of columns, search, etc. --> + </xsd:sequence> + </xsd:extension> + </xsd:complexContent> + </xsd:complexType> + <xsd:element name="objectCollection" type="tns:ObjectCollectionType" substitutionGroup="c:object"/> <xsd:complexType name="InternalsConfigurationType"> <xsd:annotation> @@ -14029,13 +14063,16 @@ </xsd:documentation> </xsd:annotation> </xsd:element> - <xsd:element name="objectLists" type="tns:GuiObjectListsType" minOccurs="0" maxOccurs="1"> + <xsd:element name="objectLists" type="tns:GuiObjectListViewsType" minOccurs="0" maxOccurs="1"> <xsd:annotation> <xsd:documentation> <p> Specifies the set of pages that are used for displaying lists of objects such as Users, Roles, Orgs, ... </p> + <p> + Note: name of this element is wrong. It should be objectViews or objectListViews. + </p> </xsd:documentation> <xsd:appinfo> <a:since>3.4</a:since> @@ -18445,7 +18482,7 @@ </xsd:complexType> <xsd:element name="sequence" type="tns:SequenceType" /> - <xsd:complexType name="GuiObjectListsType"> + <xsd:complexType name="GuiObjectListViewsType"> <xsd:annotation> <xsd:documentation> Specifies the set of pages that are used for displaying lists of objects @@ -18457,20 +18494,31 @@ </xsd:appinfo> </xsd:annotation> <xsd:sequence> - <xsd:element name="default" type="tns:GuiObjectListType" minOccurs="0"/> - <xsd:element name="objectList" type="tns:GuiObjectListType" minOccurs="0" maxOccurs="unbounded"/> + <xsd:element name="default" type="tns:GuiObjectListViewType" minOccurs="0"/> + <xsd:element name="objectList" type="tns:GuiObjectListViewType" minOccurs="0" maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation> + Note: in fact name of this element is wrong. It should be objectView or objectListView. + </xsd:documentation> + </xsd:annotation> + </xsd:element> <xsd:element name="includeDefaultLists" type="xsd:boolean" minOccurs="0" maxOccurs="1" default="true"> <xsd:annotation> <xsd:documentation> If set to true then all the default lists will be displayed (all users, all roles, ...) + Note: NOT YET IMPLEMENTED. Probably will never get implemented. + Note: in fact name of this element is wrong. It should be includeDefaultViews or includeDefaultListViews. </xsd:documentation> + <xsd:appinfo> + <a:deprecated>true</a:deprecated> + </xsd:appinfo> </xsd:annotation> </xsd:element> </xsd:sequence> </xsd:complexType> <!-- Note: ObjectListType already defined in API types --> - <xsd:complexType name="GuiObjectListType"> + <xsd:complexType name="GuiObjectListViewType"> <xsd:annotation> <xsd:documentation> Specifies the page used to list specific object type or object collection. @@ -18485,8 +18533,55 @@ add name, label (display name) and menu label for this list. We will also need a reference to which menu section we want to display it. E.g. We would like to display role catalog under "roles", even though it is in fact org tree. --> - <xsd:element name="type" type="xsd:QName" minOccurs="1" maxOccurs="1"/> - <!-- TODO: reference to object collection (MID-3517) --> + <xsd:element name="name" type="xsd:string" minOccurs="0" maxOccurs="1"> + <xsd:annotation> + <xsd:documentation> + Symbolic name for this view. It is not really used by the GUI code. It is mostly used for + diagnostics, logging and so on. It may be later used to detect whether a particular view is overriden, + e.g. if view defined in system configuraiton is overridden in the role. + </xsd:documentation> + <xsd:appinfo> + <a:since>3.9</a:since> + </xsd:appinfo> + </xsd:annotation> + </xsd:element> + <xsd:element name="type" type="xsd:QName" minOccurs="0" maxOccurs="1"> + <xsd:annotation> + <xsd:documentation> + Type of displayed objects. It may not be present in case that the type is defined in a referenced object colleciton. + </xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="collectionRef" type="tns:ObjectReferenceType" minOccurs="0" maxOccurs="1"> + <xsd:annotation> + <xsd:documentation> + Reference to object collection that will be used to select objects in this view. + If no collection is specified then it is assumed that all objects of a particular + type has to be displayed (type element above is mandatory in that case). + </xsd:documentation> + <xsd:appinfo> + <a:since>3.9</a:since> + <!-- Reference target type defeinition is NOT here by purpose. Later on we might want + archetypes (meta-roles), services and orgs to work as implicit collections. Therefore + this reference may point to various object types. By NOT specifying default ObjectCollectionType + here we will force everybody to specify it explicitly. So their configuraiton will work in + future versions when we add support for implicit collections. --> + </xsd:appinfo> + </xsd:annotation> + </xsd:element> + <xsd:element name="display" type="tns:DisplayType" minOccurs="0" maxOccurs="1"> + <xsd:annotation> + <xsd:documentation> + Display properties of the view. It is used to display the link in the menu and so on. + Only label is used now. E.g. the CSS properties are ignored. + </xsd:documentation> + <!-- This might be determined from the collection in future midPoint versions. + In fact the entire definition of a view may be just a reference to collection. --> + <xsd:appinfo> + <a:since>3.9</a:since> + </xsd:appinfo> + </xsd:annotation> + </xsd:element> <xsd:element name="searchBoxConfiguration" type="tns:SearchBoxConfigurationType" minOccurs="0" maxOccurs="1"/> <xsd:element name="distinct" type="tns:DistinctSearchOptionType" minOccurs="0" maxOccurs="1" default="auto"/> <xsd:element name="column" type="tns:GuiObjectColumnType" minOccurs="0" maxOccurs="unbounded"/> diff --git a/infra/test-util/pom.xml b/infra/test-util/pom.xml index b69fc331a53..349b1dbfd74 100644 --- a/infra/test-util/pom.xml +++ b/infra/test-util/pom.xml @@ -24,7 +24,7 @@ <parent> <artifactId>infra</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </parent> <scm> <connection>https://github.com/Evolveum/midpoint.git</connection> @@ -43,17 +43,17 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>prism</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>schema</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>commons-lang</groupId> @@ -113,7 +113,7 @@ <dependency> <groupId>com.evolveum.midpoint.tools</groupId> <artifactId>test-ng</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> </dependencies> </project> diff --git a/infra/util/pom.xml b/infra/util/pom.xml index f8ecab6dab8..f920b49270e 100644 --- a/infra/util/pom.xml +++ b/infra/util/pom.xml @@ -24,7 +24,7 @@ <parent> <artifactId>infra</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </parent> <scm> <connection>https://github.com/Evolveum/midpoint.git</connection> diff --git a/infra/util/src/main/java/com/evolveum/midpoint/util/DOMUtil.java b/infra/util/src/main/java/com/evolveum/midpoint/util/DOMUtil.java index 46cd0d687d6..0a912e1e99a 100644 --- a/infra/util/src/main/java/com/evolveum/midpoint/util/DOMUtil.java +++ b/infra/util/src/main/java/com/evolveum/midpoint/util/DOMUtil.java @@ -31,14 +31,8 @@ import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; -import javax.xml.transform.OutputKeys; -import javax.xml.transform.Result; -import javax.xml.transform.Source; +import javax.xml.transform.*; import javax.xml.transform.Transformer; -import javax.xml.transform.TransformerConfigurationException; -import javax.xml.transform.TransformerException; -import javax.xml.transform.TransformerFactory; -import javax.xml.transform.TransformerFactoryConfigurationError; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; @@ -163,16 +157,37 @@ public class DOMUtil { // To generate random namespace prefixes private static Random rnd = new Random(); - private static final DocumentBuilder loader; + private static final ThreadLocal<DocumentBuilder> documentBuilderThreadLocal; + private static final ThreadLocal<Transformer> transformerThreadLocal; static { - try { - DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); - factory.setNamespaceAware(true); - loader = factory.newDocumentBuilder(); - } catch (ParserConfigurationException ex) { - throw new IllegalStateException("Error creating XML document " + ex.getMessage()); - } + documentBuilderThreadLocal = ThreadLocal.withInitial(() -> { + try { + DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); + documentBuilderFactory.setNamespaceAware(true); + documentBuilderFactory.setFeature("http://xml.org/sax/features/namespaces", true); + // voodoo to turn off reading of DTDs during parsing. This is needed e.g. to pre-parse schemas + documentBuilderFactory.setValidating(false); + documentBuilderFactory.setFeature("http://xml.org/sax/features/validation", false); + documentBuilderFactory.setFeature("http://apache.org/xml/features/nonvalidating/load-dtd-grammar", false); + documentBuilderFactory.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false); + return documentBuilderFactory.newDocumentBuilder(); + } catch (ParserConfigurationException e) { + throw new RuntimeException(e); + } + }); + + transformerThreadLocal = ThreadLocal.withInitial(() -> { + try { + TransformerFactory transformerFactory = TransformerFactory.newInstance(); + Transformer trans = transformerFactory.newTransformer(); + trans.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4"); // XALAN-specific + trans.setParameter(OutputKeys.ENCODING, "utf-8"); + return trans; + } catch (TransformerConfigurationException e) { + throw new RuntimeException(e); + } + }); } public static String serializeDOMToString(org.w3c.dom.Node node) { @@ -180,11 +195,9 @@ public static String serializeDOMToString(org.w3c.dom.Node node) { } public static void serializeDOMToFile(org.w3c.dom.Node node, File file) throws TransformerFactoryConfigurationError, TransformerException { - - Transformer transformer = TransformerFactory.newInstance().newTransformer(); + Transformer transformer = transformerThreadLocal.get(); Result output = new StreamResult(file); Source input = new DOMSource(node); - transformer.transform(input, output); } @@ -196,23 +209,17 @@ public static Document getDocument(Node node) { } public static Document getDocument() { - return loader.newDocument(); + return documentBuilderThreadLocal.get().newDocument(); } public static Document getDocument(QName rootElementName) { - Document document = loader.newDocument(); + Document document = documentBuilderThreadLocal.get().newDocument(); document.appendChild(createElement(document, rootElementName)); return document; } public static DocumentBuilder createDocumentBuilder() { - DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); - factory.setNamespaceAware(true); - try { - return factory.newDocumentBuilder(); - } catch (ParserConfigurationException e) { - throw new IllegalStateException("Error creating document builder " + e.getMessage(), e); - } + return documentBuilderThreadLocal.get(); } public static Document parseDocument(String doc) { @@ -230,28 +237,16 @@ public static Document parseFile(String filePath) { public static Document parseFile(File file) { try { - DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); - factory.setNamespaceAware(true); - DocumentBuilder loader = factory.newDocumentBuilder(); - return loader.parse(file); - } catch (SAXException | IOException | ParserConfigurationException ex) { + return documentBuilderThreadLocal.get().parse(file); + } catch (SAXException | IOException ex) { throw new IllegalStateException("Error parsing XML document " + ex.getMessage(),ex); } } public static Document parse(InputStream inputStream) throws IOException { try { - DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); - factory.setNamespaceAware(true); - factory.setFeature("http://xml.org/sax/features/namespaces", true); - // voodoo to turn off reading of DTDs during parsing. This is needed e.g. to pre-parse schemas - factory.setValidating(false); - factory.setFeature("http://xml.org/sax/features/validation", false); - factory.setFeature("http://apache.org/xml/features/nonvalidating/load-dtd-grammar", false); - factory.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false); - DocumentBuilder loader = factory.newDocumentBuilder(); - return loader.parse(inputStream); - } catch (SAXException | ParserConfigurationException ex) { + return documentBuilderThreadLocal.get().parse(inputStream); + } catch (SAXException ex) { throw new IllegalStateException("Error parsing XML document " + ex.getMessage(),ex); } } @@ -271,21 +266,12 @@ public static StringBuffer printDom(Node node) { public static StringBuffer printDom(Node node, boolean indent, boolean omitXmlDeclaration) { StringWriter writer = new StringWriter(); - TransformerFactory transfac = TransformerFactory.newInstance(); - Transformer trans; - try { - trans = transfac.newTransformer(); - } catch (TransformerConfigurationException e) { - throw new SystemException("Error in XML configuration: "+e.getMessage(),e); - } - trans.setOutputProperty(OutputKeys.INDENT, (indent ? "yes" : "no")); - trans.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4"); // XALAN-specific - trans.setParameter(OutputKeys.ENCODING, "utf-8"); - // Note: serialized XML does not contain xml declaration - trans.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, (omitXmlDeclaration ? "yes" : "no")); - DOMSource source = new DOMSource(node); try { + Transformer trans = transformerThreadLocal.get(); + trans.setOutputProperty(OutputKeys.INDENT, (indent ? "yes" : "no")); + // Note: serialized XML does not contain xml declaration + trans.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, (omitXmlDeclaration ? "yes" : "no")); trans.transform(source, new StreamResult(writer)); } catch (TransformerException e) { throw new SystemException("Error in XML transformation: "+e.getMessage(),e); diff --git a/infra/ws-util/pom.xml b/infra/ws-util/pom.xml index e261f9d875d..ef58adfb7f3 100644 --- a/infra/ws-util/pom.xml +++ b/infra/ws-util/pom.xml @@ -24,7 +24,7 @@ <parent> <artifactId>infra</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </parent> <scm> <connection>https://github.com/Evolveum/midpoint.git</connection> @@ -81,7 +81,7 @@ <dependency> <groupId>com.evolveum.midpoint.tools</groupId> <artifactId>test-ng</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> </dependencies> diff --git a/model/certification-api/pom.xml b/model/certification-api/pom.xml index e367eb00afb..5f826096d13 100644 --- a/model/certification-api/pom.xml +++ b/model/certification-api/pom.xml @@ -21,7 +21,7 @@ <parent> <artifactId>model</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <name>midPoint Access Certification - api</name> @@ -37,22 +37,22 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>prism</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>schema</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>task-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>org.jetbrains</groupId> @@ -61,7 +61,7 @@ <dependency> <groupId>com.evolveum.midpoint.tools</groupId> <artifactId>test-ng</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> </dependencies> diff --git a/model/certification-impl/pom.xml b/model/certification-impl/pom.xml index 27916b7a254..6275ea1943b 100644 --- a/model/certification-impl/pom.xml +++ b/model/certification-impl/pom.xml @@ -24,7 +24,7 @@ <parent> <artifactId>model</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </parent> <scm> <connection>https://github.com/Evolveum/midpoint.git</connection> @@ -35,72 +35,72 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>prism</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>schema</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>certification-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-common</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>model-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>model-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>model-common</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>common</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>security-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>security-enforcer-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>task-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>workflow-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> @@ -136,62 +136,62 @@ <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>notifications-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>system-init</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-sql-impl-test</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>model-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <type>test-jar</type> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>test-util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>notifications-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>workflow-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>report-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>report-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.icf</groupId> <artifactId>dummy-resource</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> @@ -202,7 +202,7 @@ <dependency> <groupId>com.evolveum.midpoint.tools</groupId> <artifactId>test-ng</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> @@ -228,43 +228,43 @@ <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-test-util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>task-quartz-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>audit-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>security-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>security-enforcer-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.provisioning</groupId> <artifactId>provisioning-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>model-test</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> diff --git a/model/model-api/pom.xml b/model/model-api/pom.xml index a37b63665d8..59e4de133be 100644 --- a/model/model-api/pom.xml +++ b/model/model-api/pom.xml @@ -24,7 +24,7 @@ <parent> <artifactId>model</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </parent> <organization> <name>Evolveum</name> @@ -50,47 +50,47 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>prism</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>schema</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>common</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>task-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>security-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>security-enforcer-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>audit-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.tools</groupId> <artifactId>test-ng</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> diff --git a/model/model-client/pom.xml b/model/model-client/pom.xml index 2008060b782..b70e5e6d1d3 100644 --- a/model/model-client/pom.xml +++ b/model/model-client/pom.xml @@ -24,7 +24,7 @@ <parent> <artifactId>model</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </parent> <scm> <connection>https://github.com/Evolveum/midpoint.git</connection> @@ -115,7 +115,7 @@ <dependency> <groupId>com.evolveum.midpoint.tools</groupId> <artifactId>test-ng</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> </dependencies> @@ -214,7 +214,7 @@ <dependency> <groupId>com.evolveum.midpoint.tools</groupId> <artifactId>xjc-plugin</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> </dependencies> </plugin> diff --git a/model/model-common/pom.xml b/model/model-common/pom.xml index 38d9b5659c9..e0a6375930e 100644 --- a/model/model-common/pom.xml +++ b/model/model-common/pom.xml @@ -24,7 +24,7 @@ <parent> <artifactId>model</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </parent> <organization> <name>Evolveum</name> @@ -50,52 +50,52 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>prism</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>schema</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>common</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>model-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>audit-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-common</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>task-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>security-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <!-- <dependency> <groupId>org.jetbrains</groupId> @@ -168,19 +168,19 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>test-util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-test-util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.tools</groupId> <artifactId>test-ng</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> </dependencies> diff --git a/model/model-impl/pom.xml b/model/model-impl/pom.xml index 414ccda6485..e84174fa569 100644 --- a/model/model-impl/pom.xml +++ b/model/model-impl/pom.xml @@ -24,7 +24,7 @@ <parent> <artifactId>model</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </parent> <organization> <name>Evolveum</name> @@ -50,98 +50,98 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>prism</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>schema</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>common</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>report-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>model-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>model-common</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>system-init</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>task-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>audit-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-cache</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-common</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.provisioning</groupId> <artifactId>provisioning-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>workflow-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>certification-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>security-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>security-enforcer-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>notifications-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> @@ -285,79 +285,79 @@ <dependency> <groupId>com.evolveum.icf</groupId> <artifactId>dummy-connector</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.icf</groupId> <artifactId>dummy-connector-fake</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.icf</groupId> <artifactId>dummy-resource</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.provisioning</groupId> <artifactId>provisioning-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>task-quartz-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>audit-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>security-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>security-enforcer-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>model-test</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-sql-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-sql-impl-test</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-test-util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>test-util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> @@ -390,7 +390,7 @@ <dependency> <groupId>com.evolveum.midpoint.tools</groupId> <artifactId>test-ng</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> diff --git a/model/model-intest/pom.xml b/model/model-intest/pom.xml index 892cd754de0..0de8c4f4aea 100644 --- a/model/model-intest/pom.xml +++ b/model/model-intest/pom.xml @@ -24,7 +24,7 @@ <parent> <artifactId>model</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </parent> <organization> <name>Evolveum</name> @@ -51,187 +51,187 @@ <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>model-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>task-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>common</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>prism</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>schema</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>model-common</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>notifications-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>model-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>audit-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>security-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>security-enforcer-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-cache</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.provisioning</groupId> <artifactId>provisioning-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.icf</groupId> <artifactId>dummy-connector</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.icf</groupId> <artifactId>dummy-connector-fake</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.icf</groupId> <artifactId>dummy-resource</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.provisioning</groupId> <artifactId>provisioning-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.provisioning</groupId> <artifactId>ucf-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>task-quartz-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>audit-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>security-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>security-enforcer-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-sql-impl-test</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>model-test</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>notifications-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-sql-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-test-util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>test-util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.provisioning</groupId> <artifactId>ucf-impl-builtin</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> @@ -263,7 +263,7 @@ <dependency> <groupId>com.evolveum.midpoint.tools</groupId> <artifactId>test-ng</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> @@ -279,7 +279,7 @@ <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>system-init</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> diff --git a/model/model-test/pom.xml b/model/model-test/pom.xml index 091b6174f3b..644c29e7199 100644 --- a/model/model-test/pom.xml +++ b/model/model-test/pom.xml @@ -24,7 +24,7 @@ <parent> <artifactId>model</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </parent> <organization> <name>Evolveum</name> @@ -50,100 +50,100 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>test-util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>prism</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>schema</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>common</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>model-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>model-common</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>notifications-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>audit-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>security-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>security-enforcer-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>task-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-cache</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>runtime</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.provisioning</groupId> <artifactId>provisioning-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.icf</groupId> <artifactId>dummy-connector</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>runtime</scope> </dependency> <dependency> <groupId>com.evolveum.icf</groupId> <artifactId>dummy-connector-fake</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>runtime</scope> </dependency> <dependency> <groupId>com.evolveum.icf</groupId> <artifactId>dummy-resource</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-test-util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> @@ -198,25 +198,25 @@ <dependency> <groupId>com.evolveum.midpoint.provisioning</groupId> <artifactId>provisioning-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>task-quartz-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>audit-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-sql-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> @@ -243,7 +243,7 @@ <dependency> <groupId>com.evolveum.midpoint.tools</groupId> <artifactId>test-ng</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> @@ -254,7 +254,7 @@ <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>system-init</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> diff --git a/model/model-test/src/main/java/com/evolveum/midpoint/model/test/AbstractModelIntegrationTest.java b/model/model-test/src/main/java/com/evolveum/midpoint/model/test/AbstractModelIntegrationTest.java index eaaaab488a7..561b55285ba 100644 --- a/model/model-test/src/main/java/com/evolveum/midpoint/model/test/AbstractModelIntegrationTest.java +++ b/model/model-test/src/main/java/com/evolveum/midpoint/model/test/AbstractModelIntegrationTest.java @@ -3856,7 +3856,7 @@ protected <O extends ObjectType> void assertLdapPassword(ProtectedStringType pro String decryptedUserPassword = protector.decryptString(protectedStringType); assertNotNull("Null password in " + source, decryptedUserPassword); if (decryptedUserPassword.startsWith("{") || decryptedUserPassword.contains("}")) { - assertTrue("Wrong password hash in "+source+": "+decryptedUserPassword+", expected "+expectedPassword, ldapShaPasswordEncoder.isPasswordValid(decryptedUserPassword, expectedPassword, null)); + assertTrue("Wrong password hash in "+source+": "+decryptedUserPassword+", expected "+expectedPassword, ldapShaPasswordEncoder.matches(decryptedUserPassword, expectedPassword)); } else { assertEquals("Wrong password in "+source, expectedPassword, decryptedUserPassword); } diff --git a/model/notifications-api/pom.xml b/model/notifications-api/pom.xml index 8d33dfed2ce..2508e8772ab 100644 --- a/model/notifications-api/pom.xml +++ b/model/notifications-api/pom.xml @@ -24,7 +24,7 @@ <parent> <artifactId>model</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </parent> <scm> <connection>https://github.com/Evolveum/midpoint.git</connection> @@ -35,37 +35,37 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>prism</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>schema</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>model-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>workflow-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.provisioning</groupId> <artifactId>provisioning-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>task-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> @@ -81,7 +81,7 @@ <dependency> <groupId>com.evolveum.midpoint.tools</groupId> <artifactId>test-ng</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> </dependencies> diff --git a/model/notifications-impl/pom.xml b/model/notifications-impl/pom.xml index 2c7635890b6..6f1e9a5cc09 100644 --- a/model/notifications-impl/pom.xml +++ b/model/notifications-impl/pom.xml @@ -24,7 +24,7 @@ <parent> <artifactId>model</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </parent> <scm> <connection>https://github.com/Evolveum/midpoint.git</connection> @@ -35,68 +35,68 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>prism</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>schema</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>notifications-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>model-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>model-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>workflow-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>certification-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-common</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-cache</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.provisioning</groupId> <artifactId>provisioning-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>task-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> @@ -163,55 +163,55 @@ <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>task-quartz-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.provisioning</groupId> <artifactId>provisioning-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-sql-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-sql-impl-test</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-test-util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>audit-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>security-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>security-enforcer-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>system-init</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> @@ -222,7 +222,7 @@ <dependency> <groupId>com.evolveum.midpoint.tools</groupId> <artifactId>test-ng</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> diff --git a/model/pom.xml b/model/pom.xml index 5cd790ee209..775b14ded17 100644 --- a/model/pom.xml +++ b/model/pom.xml @@ -23,7 +23,7 @@ <parent> <artifactId>parent</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <relativePath>../build-system/pom.xml</relativePath> </parent> <organization> diff --git a/model/report-api/pom.xml b/model/report-api/pom.xml index 56795a333fb..01c1e10b315 100644 --- a/model/report-api/pom.xml +++ b/model/report-api/pom.xml @@ -24,7 +24,7 @@ <parent> <artifactId>model</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </parent> <organization> <name>Evolveum</name> @@ -50,33 +50,33 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>prism</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>schema</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>audit-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>task-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.tools</groupId> <artifactId>test-ng</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> </dependencies> diff --git a/model/report-impl/pom.xml b/model/report-impl/pom.xml index 37bc8fc0c21..702bd8982a9 100644 --- a/model/report-impl/pom.xml +++ b/model/report-impl/pom.xml @@ -24,7 +24,7 @@ <parent> <artifactId>model</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </parent> <organization> <name>Evolveum</name> @@ -51,67 +51,67 @@ <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>report-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>schema</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>prism</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>audit-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>task-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-common</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>common</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>model-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>certification-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>model-common</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>model-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>workflow-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> @@ -196,67 +196,67 @@ <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-cache</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.provisioning</groupId> <artifactId>provisioning-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>task-quartz-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.icf</groupId> <artifactId>dummy-resource</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>audit-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>security-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>security-enforcer-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>model-test</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-sql-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-test-util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>test-util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> @@ -267,7 +267,7 @@ <dependency> <groupId>com.evolveum.midpoint.tools</groupId> <artifactId>test-ng</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> @@ -283,13 +283,13 @@ <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>system-init</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-sql-impl-test</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <!-- needed as runtime dependency otherwise spring won't start --> diff --git a/model/report-impl/src/main/java/com/evolveum/midpoint/report/impl/ReportFunctions.java b/model/report-impl/src/main/java/com/evolveum/midpoint/report/impl/ReportFunctions.java index 68482f047cb..355f75b080c 100644 --- a/model/report-impl/src/main/java/com/evolveum/midpoint/report/impl/ReportFunctions.java +++ b/model/report-impl/src/main/java/com/evolveum/midpoint/report/impl/ReportFunctions.java @@ -25,10 +25,7 @@ import com.evolveum.midpoint.prism.query.ObjectFilter; import com.evolveum.midpoint.prism.query.ObjectQuery; import com.evolveum.midpoint.prism.query.builder.QueryBuilder; -import com.evolveum.midpoint.schema.GetOperationOptions; -import com.evolveum.midpoint.schema.ResultHandler; -import com.evolveum.midpoint.schema.RetrieveOption; -import com.evolveum.midpoint.schema.SelectorOptions; +import com.evolveum.midpoint.schema.*; import com.evolveum.midpoint.schema.constants.SchemaConstants; import com.evolveum.midpoint.schema.result.OperationResult; import com.evolveum.midpoint.schema.util.ObjectTypeUtil; @@ -52,6 +49,7 @@ import java.util.Objects; import java.util.stream.Collectors; +import static com.evolveum.midpoint.schema.GetOperationOptions.resolveItemsNamed; import static com.evolveum.midpoint.xml.ns._public.common.common_3.AccessCertificationCampaignStateType.CLOSED; import static com.evolveum.midpoint.xml.ns._public.common.common_3.AccessCertificationCampaignType.F_STATE; import static com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType.F_NAME; @@ -336,6 +334,20 @@ <C extends Containerable, T> ObjectFilter createEqualFilter(ItemPath propertyPat // return prismContext.parserFor(xml).xml().parseAnyData(); // } + public List<PrismContainerValue<WorkItemType>> searchApprovalWorkItems() + throws CommunicationException, ObjectNotFoundException, SchemaException, SecurityViolationException, + ConfigurationException, ExpressionEvaluationException { + Task task = taskManager.createTaskInstance(); + OperationResult result = task.getResult(); + SearchResultList<WorkItemType> workItems = model.searchContainers(WorkItemType.class, null, + resolveItemsNamed( + WorkItemType.F_ASSIGNEE_REF, + new ItemPath(PrismConstants.T_PARENT, WfContextType.F_OBJECT_REF), + new ItemPath(PrismConstants.T_PARENT, WfContextType.F_TARGET_REF), + new ItemPath(PrismConstants.T_PARENT, WfContextType.F_REQUESTER_REF)), task, result); + return PrismContainerValue.toPcvList(workItems); + } + /** * Retrieves all definitions. * Augments them by count of campaigns (all + open ones). diff --git a/model/workflow-api/pom.xml b/model/workflow-api/pom.xml index f7a5614567f..0000b448d2f 100644 --- a/model/workflow-api/pom.xml +++ b/model/workflow-api/pom.xml @@ -21,7 +21,7 @@ <parent> <artifactId>model</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <name>midPoint Workflow - api</name> @@ -37,43 +37,43 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>prism</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>schema</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>task-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.tools</groupId> <artifactId>test-ng</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>model-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>security-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> diff --git a/model/workflow-impl/pom.xml b/model/workflow-impl/pom.xml index 456202be80e..e524aee948d 100644 --- a/model/workflow-impl/pom.xml +++ b/model/workflow-impl/pom.xml @@ -24,7 +24,7 @@ <parent> <artifactId>model</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </parent> <scm> <connection>https://github.com/Evolveum/midpoint.git</connection> @@ -35,82 +35,82 @@ <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>workflow-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-common</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>model-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>model-common</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>model-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.provisioning</groupId> <artifactId>provisioning-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>task-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>audit-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>security-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>security-enforcer-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>system-init</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>prism</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>schema</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>common</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> @@ -130,7 +130,7 @@ <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-sql-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>provided</scope> </dependency> <dependency> @@ -186,44 +186,44 @@ <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>notifications-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>test-util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>model-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <type>test-jar</type> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>notifications-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>report-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>report-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-sql-impl-test</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> @@ -234,7 +234,7 @@ <dependency> <groupId>com.evolveum.midpoint.tools</groupId> <artifactId>test-ng</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> @@ -260,43 +260,43 @@ <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-test-util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>task-quartz-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>audit-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>security-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>security-enforcer-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.provisioning</groupId> <artifactId>provisioning-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>model-test</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> diff --git a/pom.xml b/pom.xml index 78fd80a20d6..7971a9a61c8 100644 --- a/pom.xml +++ b/pom.xml @@ -21,7 +21,7 @@ <name>midPoint Project</name> <groupId>com.evolveum.midpoint</groupId> <artifactId>midpoint</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <packaging>pom</packaging> <description>Utility module to compile all of the maven based midPoint projects.</description> <organization> diff --git a/provisioning/pom.xml b/provisioning/pom.xml index 8b352640480..74ad575efba 100644 --- a/provisioning/pom.xml +++ b/provisioning/pom.xml @@ -23,7 +23,7 @@ <parent> <artifactId>parent</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <relativePath>../build-system/pom.xml</relativePath> </parent> <organization> diff --git a/provisioning/provisioning-api/pom.xml b/provisioning/provisioning-api/pom.xml index 11851565ce5..b38342ddf1c 100644 --- a/provisioning/provisioning-api/pom.xml +++ b/provisioning/provisioning-api/pom.xml @@ -25,7 +25,7 @@ <parent> <artifactId>provisioning</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </parent> <scm> <connection>https://github.com/Evolveum/midpoint.git</connection> @@ -36,32 +36,32 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>prism</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>schema</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>common</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>task-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.tools</groupId> <artifactId>test-ng</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> </dependencies> diff --git a/provisioning/provisioning-impl/pom.xml b/provisioning/provisioning-impl/pom.xml index 9f77e1af161..72b8a0fc57c 100644 --- a/provisioning/provisioning-impl/pom.xml +++ b/provisioning/provisioning-impl/pom.xml @@ -24,7 +24,7 @@ <parent> <artifactId>provisioning</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </parent> <scm> <connection>https://github.com/Evolveum/midpoint.git</connection> @@ -35,70 +35,70 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>prism</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>schema</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>common</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.provisioning</groupId> <artifactId>provisioning-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.provisioning</groupId> <artifactId>ucf-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-cache</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>system-init</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>task-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.provisioning</groupId> <artifactId>ucf-impl-connid</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>runtime</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.provisioning</groupId> <artifactId>ucf-impl-builtin</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>runtime</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-common</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>commons-lang</groupId> @@ -126,19 +126,19 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>test-util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>audit-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-sql-impl-test</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> @@ -149,19 +149,19 @@ <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-sql-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>task-quartz-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>security-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> @@ -172,13 +172,13 @@ <dependency> <groupId>com.evolveum.midpoint.tools</groupId> <artifactId>test-ng</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-test-util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> @@ -221,13 +221,13 @@ <dependency> <groupId>com.evolveum.icf</groupId> <artifactId>dummy-connector</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.icf</groupId> <artifactId>dummy-resource</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> diff --git a/provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/impl/ConnectorManager.java b/provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/impl/ConnectorManager.java index e13f93564a2..bafec754514 100644 --- a/provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/impl/ConnectorManager.java +++ b/provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/impl/ConnectorManager.java @@ -549,8 +549,14 @@ public void shutdown() { for (Entry<ConfiguredConnectorCacheKey, ConfiguredConnectorInstanceEntry> connectorInstanceCacheEntry: connectorInstanceCache.entrySet()) { connectorInstanceCacheEntry.getValue().connectorInstance.dispose(); } - for (ConnectorFactory connectorFactory: getConnectorFactories()) { - connectorFactory.shutdown(); + if (connectorFactories != null) { + // Skip this in the very rare case that we are shutting down before we were fully + // initialized. This should not happen under normal circumstances. + // Generally, do not call getConnectorFactories() from here. This is + // spring "destroy" method. We should not work with spring context here. + for (ConnectorFactory connectorFactory: connectorFactories) { + connectorFactory.shutdown(); + } } } diff --git a/provisioning/ucf-api/pom.xml b/provisioning/ucf-api/pom.xml index 6782f4c7c6b..f9b9b34b179 100644 --- a/provisioning/ucf-api/pom.xml +++ b/provisioning/ucf-api/pom.xml @@ -25,7 +25,7 @@ <parent> <artifactId>provisioning</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </parent> <scm> <connection>https://github.com/Evolveum/midpoint.git</connection> @@ -36,22 +36,22 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>prism</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>schema</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>task-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>commons-lang</groupId> @@ -64,7 +64,7 @@ <dependency> <groupId>com.evolveum.midpoint.tools</groupId> <artifactId>test-ng</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> </dependencies> diff --git a/provisioning/ucf-impl-builtin/pom.xml b/provisioning/ucf-impl-builtin/pom.xml index 70740e9236d..567fd13c4bb 100644 --- a/provisioning/ucf-impl-builtin/pom.xml +++ b/provisioning/ucf-impl-builtin/pom.xml @@ -24,7 +24,7 @@ <parent> <artifactId>provisioning</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </parent> <description>Implementation for the built-in midpoint connectors, such as the built-in "manaual connector" capability.</description> <scm> @@ -36,37 +36,37 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>prism</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>schema</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>task-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.provisioning</groupId> <artifactId>ucf-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>common</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>commons-lang</groupId> @@ -94,19 +94,19 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>test-util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>audit-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-sql-impl-test</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> @@ -117,19 +117,19 @@ <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-sql-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>task-quartz-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>security-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> @@ -140,13 +140,13 @@ <dependency> <groupId>com.evolveum.midpoint.tools</groupId> <artifactId>test-ng</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-test-util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> @@ -162,7 +162,7 @@ <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>system-init</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <!-- needed as runtime dependency otherwise spring won't start --> diff --git a/provisioning/ucf-impl-connid/pom.xml b/provisioning/ucf-impl-connid/pom.xml index e3b2a3da8b1..ef452370774 100644 --- a/provisioning/ucf-impl-connid/pom.xml +++ b/provisioning/ucf-impl-connid/pom.xml @@ -24,7 +24,7 @@ <parent> <artifactId>provisioning</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </parent> <scm> <connection>https://github.com/Evolveum/midpoint.git</connection> @@ -35,32 +35,32 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>prism</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>schema</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>common</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.provisioning</groupId> <artifactId>ucf-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>task-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> @@ -107,19 +107,19 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>test-util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>audit-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-sql-impl-test</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> @@ -130,19 +130,19 @@ <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-sql-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>task-quartz-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>security-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> @@ -153,13 +153,13 @@ <dependency> <groupId>com.evolveum.midpoint.tools</groupId> <artifactId>test-ng</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-test-util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> @@ -202,13 +202,13 @@ <dependency> <groupId>com.evolveum.icf</groupId> <artifactId>dummy-connector</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.icf</groupId> <artifactId>dummy-resource</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> @@ -229,7 +229,7 @@ <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>system-init</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> diff --git a/repo/audit-api/pom.xml b/repo/audit-api/pom.xml index 4a973eff87f..b592522e3ba 100644 --- a/repo/audit-api/pom.xml +++ b/repo/audit-api/pom.xml @@ -24,7 +24,7 @@ <parent> <artifactId>repo</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </parent> <scm> <connection>https://github.com/Evolveum/midpoint.git</connection> @@ -35,17 +35,17 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>prism</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>schema</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>commons-configuration</groupId> @@ -55,13 +55,13 @@ <dependency> <groupId>com.evolveum.midpoint.tools</groupId> <artifactId>test-ng</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>task-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>org.jetbrains</groupId> diff --git a/repo/audit-impl/pom.xml b/repo/audit-impl/pom.xml index 303f5651362..f839fc5caa1 100644 --- a/repo/audit-impl/pom.xml +++ b/repo/audit-impl/pom.xml @@ -24,7 +24,7 @@ <parent> <artifactId>repo</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </parent> <scm> <connection>https://github.com/Evolveum/midpoint.git</connection> @@ -35,32 +35,32 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>prism</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>schema</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>common</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>task-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>audit-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>commons-configuration</groupId> @@ -84,7 +84,7 @@ <dependency> <groupId>com.evolveum.midpoint.tools</groupId> <artifactId>test-ng</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> @@ -100,13 +100,13 @@ <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-sql-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-test-util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> @@ -117,7 +117,7 @@ <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>system-init</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> diff --git a/repo/pom.xml b/repo/pom.xml index 63a1fa057ac..0bf3995455c 100644 --- a/repo/pom.xml +++ b/repo/pom.xml @@ -22,7 +22,7 @@ <parent> <artifactId>parent</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <relativePath>../build-system/pom.xml</relativePath> </parent> <scm> diff --git a/repo/repo-api/pom.xml b/repo/repo-api/pom.xml index 13ca3b83ec3..50d49cd5b91 100644 --- a/repo/repo-api/pom.xml +++ b/repo/repo-api/pom.xml @@ -24,7 +24,7 @@ <parent> <artifactId>repo</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </parent> <scm> <connection>https://github.com/Evolveum/midpoint.git</connection> @@ -35,17 +35,17 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>prism</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>schema</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>commons-lang</groupId> @@ -62,7 +62,7 @@ <dependency> <groupId>com.evolveum.midpoint.tools</groupId> <artifactId>test-ng</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> </dependencies> diff --git a/repo/repo-cache/pom.xml b/repo/repo-cache/pom.xml index a18b380a01a..cecb8aa7643 100644 --- a/repo/repo-cache/pom.xml +++ b/repo/repo-cache/pom.xml @@ -24,7 +24,7 @@ <parent> <artifactId>repo</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </parent> <scm> <connection>https://github.com/Evolveum/midpoint.git</connection> @@ -35,27 +35,27 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>prism</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>common</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>schema</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>commons-lang</groupId> @@ -89,7 +89,7 @@ <dependency> <groupId>com.evolveum.midpoint.tools</groupId> <artifactId>test-ng</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> diff --git a/repo/repo-common/pom.xml b/repo/repo-common/pom.xml index 3eab069740d..c48721386d5 100644 --- a/repo/repo-common/pom.xml +++ b/repo/repo-common/pom.xml @@ -24,7 +24,7 @@ <parent> <artifactId>repo</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </parent> <organization> <name>Evolveum</name> @@ -50,42 +50,42 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>prism</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>schema</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>common</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>task-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-cache</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>security-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>org.jetbrains</groupId> @@ -132,49 +132,49 @@ <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>task-quartz-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>security-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>audit-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-sql-impl-test</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>system-init</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-test-util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>test-util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.tools</groupId> <artifactId>test-ng</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> diff --git a/repo/repo-sql-impl-test/pom.xml b/repo/repo-sql-impl-test/pom.xml index d568754a62c..b79aec36732 100644 --- a/repo/repo-sql-impl-test/pom.xml +++ b/repo/repo-sql-impl-test/pom.xml @@ -25,7 +25,7 @@ <parent> <artifactId>repo</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </parent> <scm> <connection>https://github.com/Evolveum/midpoint.git</connection> @@ -36,37 +36,37 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>prism</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>schema</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>audit-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>task-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-sql-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> @@ -102,6 +102,12 @@ <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> + <exclusions> + <exclusion> + <groupId>org.javassist</groupId> + <artifactId>javassist</artifactId> + </exclusion> + </exclusions> </dependency> <dependency> <groupId>org.jetbrains</groupId> @@ -129,16 +135,21 @@ <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> + <dependency> + <groupId>com.microsoft.sqlserver</groupId> + <artifactId>mssql-jdbc</artifactId> + <scope>runtime</scope> + </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>common</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>system-init</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> @@ -177,7 +188,7 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>test-util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> </dependencies> diff --git a/repo/repo-sql-impl-test/src/test/java/com/evolveum/midpoint/repo/sql/ModifyTest.java b/repo/repo-sql-impl-test/src/test/java/com/evolveum/midpoint/repo/sql/ModifyTest.java index 94c68c5c46b..ddb074fd3e3 100644 --- a/repo/repo-sql-impl-test/src/test/java/com/evolveum/midpoint/repo/sql/ModifyTest.java +++ b/repo/repo-sql-impl-test/src/test/java/com/evolveum/midpoint/repo/sql/ModifyTest.java @@ -24,7 +24,10 @@ import com.evolveum.midpoint.prism.delta.ReferenceDelta; import com.evolveum.midpoint.prism.delta.builder.DeltaBuilder; import com.evolveum.midpoint.prism.path.ItemPath; +import com.evolveum.midpoint.prism.polystring.PolyString; +import com.evolveum.midpoint.prism.query.ObjectFilter; import com.evolveum.midpoint.prism.query.ObjectQuery; +import com.evolveum.midpoint.prism.query.QueryJaxbConvertor; import com.evolveum.midpoint.prism.util.PrismAsserts; import com.evolveum.midpoint.prism.query.builder.QueryBuilder; import com.evolveum.midpoint.prism.util.PrismTestUtil; @@ -52,6 +55,7 @@ import com.evolveum.midpoint.util.logging.TraceManager; import com.evolveum.midpoint.xml.ns._public.common.api_types_3.ObjectModificationType; import com.evolveum.midpoint.xml.ns._public.common.common_3.*; +import com.evolveum.prism.xml.ns._public.query_3.SearchFilterType; import com.evolveum.prism.xml.ns._public.types_3.ObjectDeltaType; import com.evolveum.prism.xml.ns._public.types_3.PolyStringType; import org.hibernate.Session; @@ -930,4 +934,57 @@ private <T> void assertAttribute(PrismObject<ShadowType> shadow, QName attrQName PrismAsserts.assertPropertyValue(attr, expectedValues); } } + + @Test + public void test210ModifyObjectCollection() throws Exception { + final String TEST_NAME = "test210ModifyObjectCollection"; + TestUtil.displayTestTitle(TEST_NAME); + + OperationResult result = new OperationResult("test210ModifyObjectCollection"); + + ObjectCollectionType collection = prismContext.createObjectable(ObjectCollectionType.class) + .name("collection") + .type(UserType.COMPLEX_TYPE); + repositoryService.addObject(collection.asPrismObject(), null, result); + + List<ItemDelta<?, ?>> deltas1 = DeltaBuilder.deltaFor(ObjectCollectionType.class, prismContext) + .item(ObjectCollectionType.F_NAME).replace(PolyString.fromOrig("collection2")) + .asItemDeltas(); + repositoryService.modifyObject(ObjectCollectionType.class, collection.getOid(), deltas1, result); + + ItemDelta.applyTo(deltas1, collection.asPrismObject()); + PrismObject<ObjectCollectionType> afterChange1 = repositoryService + .getObject(ObjectCollectionType.class, collection.getOid(), null, result); + assertEquals("Objects differ after change 1", collection.asPrismObject(), afterChange1); + + ObjectFilter filter = QueryBuilder.queryFor(UserType.class, prismContext) + .item(UserType.F_COST_CENTER).eq("100") + .buildFilter(); + SearchFilterType filterBean = QueryJaxbConvertor.createSearchFilterType(filter, prismContext); + + List<ItemDelta<?, ?>> deltas2 = DeltaBuilder.deltaFor(ObjectCollectionType.class, prismContext) + .item(ObjectCollectionType.F_DESCRIPTION).replace("description") + .item(ObjectCollectionType.F_FILTER).replace(filterBean) + .asItemDeltas(); + repositoryService.modifyObject(ObjectCollectionType.class, collection.getOid(), deltas2, result); + + ItemDelta.applyTo(deltas2, collection.asPrismObject()); + PrismObject<ObjectCollectionType> afterChange2 = repositoryService + .getObject(ObjectCollectionType.class, collection.getOid(), null, result); + + // it's hard to compare filters, so we have to do the test in a special way + PrismObject<ObjectCollectionType> fromRepoWithoutFilter = afterChange2.clone(); + fromRepoWithoutFilter.asObjectable().setFilter(null); + PrismObject<ObjectCollectionType> expectedWithoutFilter = collection.asPrismObject().clone(); + expectedWithoutFilter.asObjectable().setFilter(null); + assertEquals("Objects (without filter) differ after change 2", expectedWithoutFilter, fromRepoWithoutFilter); + + SearchFilterType filterFromRepo = afterChange2.asObjectable().getFilter(); + SearchFilterType filterExpected = collection.getFilter(); + ObjectFilter filterFromRepoParsed = QueryJaxbConvertor.createObjectFilter(UserType.class, filterFromRepo, prismContext); + ObjectFilter filterExpectedParsed = QueryJaxbConvertor.createObjectFilter(UserType.class, filterExpected, prismContext); + //noinspection ConstantConditions + assertTrue("Filters differ", filterExpectedParsed.equals(filterFromRepoParsed, false)); + } + } diff --git a/repo/repo-sql-impl-test/src/test/java/com/evolveum/midpoint/repo/sql/SearchTest.java b/repo/repo-sql-impl-test/src/test/java/com/evolveum/midpoint/repo/sql/SearchTest.java index 4c750cb33dc..019a1df5f1a 100644 --- a/repo/repo-sql-impl-test/src/test/java/com/evolveum/midpoint/repo/sql/SearchTest.java +++ b/repo/repo-sql-impl-test/src/test/java/com/evolveum/midpoint/repo/sql/SearchTest.java @@ -911,4 +911,36 @@ public void testExtensionReferenceNonNull() throws SchemaException { assertEquals("Should find 1 object", 1, cases.size()); } + @Test + public void testObjectCollection() throws SchemaException { + ObjectQuery query = QueryBuilder.queryFor(ObjectCollectionType.class, prismContext) + .item(ObjectType.F_NAME).eqPoly("collection1", "collection1").matchingOrig() + .build(); + OperationResult result = new OperationResult("search"); + List<PrismObject<ObjectCollectionType>> collections = repositoryService.searchObjects(ObjectCollectionType.class, query, null, result); + result.recomputeStatus(); + assertTrue(result.isSuccess()); + assertEquals("Should find 1 object", 1, collections.size()); + } + + @Test + public void testAllObjectCollections() throws SchemaException { + OperationResult result = new OperationResult("search"); + List<PrismObject<ObjectCollectionType>> collections = repositoryService.searchObjects(ObjectCollectionType.class, null, null, result); + result.recomputeStatus(); + assertTrue(result.isSuccess()); + assertEquals("Should find 1 object", 1, collections.size()); + } + + @Test + public void testFunctionLibrary() throws SchemaException { + ObjectQuery query = QueryBuilder.queryFor(FunctionLibraryType.class, prismContext) + .item(ObjectType.F_NAME).eqPoly("fl1", "fl1").matchingOrig() + .build(); + OperationResult result = new OperationResult("search"); + List<PrismObject<FunctionLibraryType>> collections = repositoryService.searchObjects(FunctionLibraryType.class, query, null, result); + result.recomputeStatus(); + assertTrue(result.isSuccess()); + assertEquals("Should find 1 object", 1, collections.size()); + } } diff --git a/repo/repo-sql-impl-test/src/test/resources/basic/objects.xml b/repo/repo-sql-impl-test/src/test/resources/basic/objects.xml index 68369d8b5d9..1fbbd7a962c 100644 --- a/repo/repo-sql-impl-test/src/test/resources/basic/objects.xml +++ b/repo/repo-sql-impl-test/src/test/resources/basic/objects.xml @@ -1696,4 +1696,19 @@ </operationExecution> </case> + <objectCollection> + <name>collection1</name> + <type>UserType</type> + <filter> + <q:equal> + <q:path>subtype</q:path> + <q:value>EMP</q:value> + </q:equal> + </filter> + </objectCollection> + + <functionLibrary> + <name>fl1</name> + </functionLibrary> + </objects> diff --git a/repo/repo-sql-impl/pom.xml b/repo/repo-sql-impl/pom.xml index cc486064f16..60ccfa737fa 100644 --- a/repo/repo-sql-impl/pom.xml +++ b/repo/repo-sql-impl/pom.xml @@ -25,7 +25,7 @@ <parent> <artifactId>repo</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </parent> <scm> <connection>https://github.com/Evolveum/midpoint.git</connection> @@ -36,12 +36,12 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>schema</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <exclusions> <exclusion> <groupId>commons-beanutils</groupId> @@ -52,27 +52,27 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>prism</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>common</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>task-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>audit-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> @@ -147,6 +147,12 @@ <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> + <exclusions> + <exclusion> + <groupId>org.javassist</groupId> + <artifactId>javassist</artifactId> + </exclusion> + </exclusions> </dependency> <dependency> <groupId>org.hibernate.javax.persistence</groupId> @@ -178,7 +184,7 @@ <dependency> <groupId>com.evolveum.midpoint.tools</groupId> <artifactId>test-ng</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> diff --git a/repo/repo-sql-impl/src/main/java/com/evolveum/midpoint/repo/sql/data/common/RFunctionLibrary.java b/repo/repo-sql-impl/src/main/java/com/evolveum/midpoint/repo/sql/data/common/RFunctionLibrary.java index 147ed1520f7..21311bd5667 100644 --- a/repo/repo-sql-impl/src/main/java/com/evolveum/midpoint/repo/sql/data/common/RFunctionLibrary.java +++ b/repo/repo-sql-impl/src/main/java/com/evolveum/midpoint/repo/sql/data/common/RFunctionLibrary.java @@ -79,5 +79,6 @@ public int hashCode() { public static void copyFromJAXB(FunctionLibraryType jaxb, RFunctionLibrary repo, RepositoryContext repositoryContext, IdGeneratorResult generatorResult) throws DtoTranslationException { RObject.copyFromJAXB(jaxb, repo, repositoryContext, generatorResult); + repo.setNameCopy(RPolyString.copyFromJAXB(jaxb.getName())); } } diff --git a/repo/repo-sql-impl/src/main/java/com/evolveum/midpoint/repo/sql/data/common/RObjectCollection.java b/repo/repo-sql-impl/src/main/java/com/evolveum/midpoint/repo/sql/data/common/RObjectCollection.java new file mode 100644 index 00000000000..5013159e834 --- /dev/null +++ b/repo/repo-sql-impl/src/main/java/com/evolveum/midpoint/repo/sql/data/common/RObjectCollection.java @@ -0,0 +1,84 @@ +/* + * Copyright (c) 2010-2018 Evolveum + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.evolveum.midpoint.repo.sql.data.common; + +import com.evolveum.midpoint.repo.sql.data.RepositoryContext; +import com.evolveum.midpoint.repo.sql.data.common.embedded.RPolyString; +import com.evolveum.midpoint.repo.sql.query.definition.JaxbName; +import com.evolveum.midpoint.repo.sql.util.DtoTranslationException; +import com.evolveum.midpoint.repo.sql.util.IdGeneratorResult; +import com.evolveum.midpoint.repo.sql.util.MidPointJoinedPersister; +import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectCollectionType; +import org.hibernate.annotations.ForeignKey; +import org.hibernate.annotations.Persister; + +import javax.persistence.*; +import java.util.Objects; + +/** + * + * @author mederly + */ +@Entity +@ForeignKey(name = "fk_object_collection") +@Table(uniqueConstraints = @UniqueConstraint(name = "uc_object_collection_name", columnNames = {"name_norm"}), + indexes = { + @Index(name = "iObjectCollectionNameOrig", columnList = "name_orig"), + } +) +@Persister(impl = MidPointJoinedPersister.class) +public class RObjectCollection extends RObject<ObjectCollectionType> { + + private RPolyString nameCopy; + + @JaxbName(localPart = "name") + @AttributeOverrides({ + @AttributeOverride(name = "orig", column = @Column(name = "name_orig")), + @AttributeOverride(name = "norm", column = @Column(name = "name_norm")) + }) + @Embedded + public RPolyString getNameCopy() { + return nameCopy; + } + + public void setNameCopy(RPolyString nameCopy) { + this.nameCopy = nameCopy; + } + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (!(o instanceof RObjectCollection)) + return false; + if (!super.equals(o)) + return false; + RObjectCollection that = (RObjectCollection) o; + return Objects.equals(nameCopy, that.nameCopy); + } + + @Override + public int hashCode() { + return Objects.hash(super.hashCode(), nameCopy); + } + + public static void copyFromJAXB(ObjectCollectionType jaxb, RObjectCollection repo, RepositoryContext repositoryContext, + IdGeneratorResult generatorResult) throws DtoTranslationException { + RObject.copyFromJAXB(jaxb, repo, repositoryContext, generatorResult); + repo.setNameCopy(RPolyString.copyFromJAXB(jaxb.getName())); + } +} diff --git a/repo/repo-sql-impl/src/main/java/com/evolveum/midpoint/repo/sql/data/common/other/RObjectType.java b/repo/repo-sql-impl/src/main/java/com/evolveum/midpoint/repo/sql/data/common/other/RObjectType.java index acfecb3c97e..e70b9fe8b48 100644 --- a/repo/repo-sql-impl/src/main/java/com/evolveum/midpoint/repo/sql/data/common/other/RObjectType.java +++ b/repo/repo-sql-impl/src/main/java/com/evolveum/midpoint/repo/sql/data/common/other/RObjectType.java @@ -34,7 +34,8 @@ public enum RObjectType { SERVICE(RService.class, ServiceType.class), FORM(RForm.class, FormType.class), CASE(RCase.class, CaseType.class), - FUNCTION_LIBRARY(RFunctionLibrary.class, FunctionLibraryType.class); + FUNCTION_LIBRARY(RFunctionLibrary.class, FunctionLibraryType.class), + OBJECT_COLLECTION(RObjectCollection.class, ObjectCollectionType.class); private Class<? extends RObject> clazz; private Class<? extends ObjectType> jaxbClass; diff --git a/repo/repo-sql-impl/src/main/java/com/evolveum/midpoint/repo/sql/helpers/mapper/EnumMapper.java b/repo/repo-sql-impl/src/main/java/com/evolveum/midpoint/repo/sql/helpers/mapper/EnumMapper.java index 1e81b597b16..13e6fd7d69c 100644 --- a/repo/repo-sql-impl/src/main/java/com/evolveum/midpoint/repo/sql/helpers/mapper/EnumMapper.java +++ b/repo/repo-sql-impl/src/main/java/com/evolveum/midpoint/repo/sql/helpers/mapper/EnumMapper.java @@ -16,10 +16,12 @@ package com.evolveum.midpoint.repo.sql.helpers.mapper; +import com.evolveum.midpoint.repo.sql.data.common.enums.RExportType; import com.evolveum.midpoint.repo.sql.data.common.enums.SchemaEnum; import com.evolveum.midpoint.repo.sql.helpers.modify.MapperContext; import com.evolveum.midpoint.repo.sql.util.RUtil; import com.evolveum.midpoint.util.exception.SystemException; +import com.evolveum.midpoint.xml.ns._public.common.common_3.ExportType; import org.apache.commons.lang.StringUtils; /** @@ -32,10 +34,14 @@ public SchemaEnum map(Enum input, MapperContext context) { String repoEnumClass = null; try { String className = input.getClass().getSimpleName(); - className = StringUtils.left(className, className.length() - 4); - - repoEnumClass = "com.evolveum.midpoint.repo.sql.data.common.enums.R" + className; - Class clazz = Class.forName(repoEnumClass); + Class clazz; + if (input instanceof ExportType) { + clazz = RExportType.class; // todo fix this brutal hack + } else { + className = StringUtils.left(className, className.length() - 4); + repoEnumClass = "com.evolveum.midpoint.repo.sql.data.common.enums.R" + className; + clazz = Class.forName(repoEnumClass); + } if (!SchemaEnum.class.isAssignableFrom(clazz)) { throw new SystemException("Can't translate enum value " + input); diff --git a/repo/repo-sql-impl/src/main/java/com/evolveum/midpoint/repo/sql/query2/resolution/ItemPathResolutionState.java b/repo/repo-sql-impl/src/main/java/com/evolveum/midpoint/repo/sql/query2/resolution/ItemPathResolutionState.java index fab12386032..3664468d983 100644 --- a/repo/repo-sql-impl/src/main/java/com/evolveum/midpoint/repo/sql/query2/resolution/ItemPathResolutionState.java +++ b/repo/repo-sql-impl/src/main/java/com/evolveum/midpoint/repo/sql/query2/resolution/ItemPathResolutionState.java @@ -105,7 +105,7 @@ public ItemPathResolutionState nextState(ItemDefinition itemDefinition, boolean DataSearchResult<?> result = hqlDataInstance.getJpaDefinition().nextLinkDefinition(remainingItemPath, itemDefinition, prismContext); LOGGER.trace("nextLinkDefinition on '{}' returned '{}'", remainingItemPath, result != null ? result.getLinkDefinition() : "(null)"); if (result == null) { // sorry we failed (however, this should be caught before -> so IllegalStateException) - throw new IllegalStateException("Couldn't find '" + remainingItemPath + "' in " + hqlDataInstance.getJpaDefinition()); + throw new IllegalStateException("Couldn't find '" + remainingItemPath + "' in " + hqlDataInstance.getJpaDefinition() +", looks like item can't be used in search."); } JpaLinkDefinition linkDefinition = result.getLinkDefinition(); String newHqlPath = hqlDataInstance.getHqlPath(); diff --git a/repo/repo-sql-impl/src/main/java/com/evolveum/midpoint/repo/sql/util/ClassMapper.java b/repo/repo-sql-impl/src/main/java/com/evolveum/midpoint/repo/sql/util/ClassMapper.java index 0e916ff21da..6c21353777f 100644 --- a/repo/repo-sql-impl/src/main/java/com/evolveum/midpoint/repo/sql/util/ClassMapper.java +++ b/repo/repo-sql-impl/src/main/java/com/evolveum/midpoint/repo/sql/util/ClassMapper.java @@ -69,6 +69,7 @@ private ClassMapper() { types.put(ObjectTypes.FORM, RObjectType.FORM); types.put(ObjectTypes.CASE, RObjectType.CASE); types.put(ObjectTypes.FUNCTION_LIBRARY, RObjectType.FUNCTION_LIBRARY); + types.put(ObjectTypes.OBJECT_COLLECTION, RObjectType.OBJECT_COLLECTION); for (ObjectTypes type : ObjectTypes.values()) { if (!types.containsKey(type)) { diff --git a/repo/repo-test-util/pom.xml b/repo/repo-test-util/pom.xml index 2e60e997810..457c689e559 100644 --- a/repo/repo-test-util/pom.xml +++ b/repo/repo-test-util/pom.xml @@ -23,7 +23,7 @@ <parent> <artifactId>repo</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </parent> <scm> <connection>https://github.com/Evolveum/midpoint.git</connection> @@ -34,47 +34,47 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>prism</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>schema</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>common</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-cache</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>task-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>audit-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>test-util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> @@ -113,7 +113,7 @@ <dependency> <groupId>com.evolveum.icf</groupId> <artifactId>dummy-resource</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>org.forgerock.opendj</groupId> @@ -122,7 +122,7 @@ <dependency> <groupId>com.evolveum.midpoint.tools</groupId> <artifactId>test-ng</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>org.slf4j</groupId> diff --git a/repo/repo-test-util/src/main/java/com/evolveum/midpoint/test/AbstractIntegrationTest.java b/repo/repo-test-util/src/main/java/com/evolveum/midpoint/test/AbstractIntegrationTest.java index 8d764812b36..36d961479b1 100644 --- a/repo/repo-test-util/src/main/java/com/evolveum/midpoint/test/AbstractIntegrationTest.java +++ b/repo/repo-test-util/src/main/java/com/evolveum/midpoint/test/AbstractIntegrationTest.java @@ -106,7 +106,7 @@ import org.opends.server.types.SearchResultEntry; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.security.authentication.encoding.LdapShaPasswordEncoder; +import org.springframework.security.crypto.password.LdapShaPasswordEncoder; import org.springframework.test.context.testng.AbstractTestNGSpringContextTests; import org.testng.Assert; import org.testng.AssertJUnit; diff --git a/repo/security-api/pom.xml b/repo/security-api/pom.xml index d675e7e0878..d3d57f7efbd 100644 --- a/repo/security-api/pom.xml +++ b/repo/security-api/pom.xml @@ -24,7 +24,7 @@ <parent> <artifactId>repo</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </parent> <scm> <connection>https://github.com/Evolveum/midpoint.git</connection> @@ -35,17 +35,17 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>prism</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>schema</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> @@ -79,7 +79,7 @@ <dependency> <groupId>com.evolveum.midpoint.tools</groupId> <artifactId>test-ng</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> </dependencies> diff --git a/repo/security-api/src/main/java/com/evolveum/midpoint/security/api/AuthorizationConstants.java b/repo/security-api/src/main/java/com/evolveum/midpoint/security/api/AuthorizationConstants.java index 9ad74249973..61733603747 100644 --- a/repo/security-api/src/main/java/com/evolveum/midpoint/security/api/AuthorizationConstants.java +++ b/repo/security-api/src/main/java/com/evolveum/midpoint/security/api/AuthorizationConstants.java @@ -401,6 +401,9 @@ public class AuthorizationConstants { public static final QName AUTZ_UI_ADMIN_UNASSIGN_MEMBER_ACTION_QNAME = new QName(NS_AUTHORIZATION_UI, "adminUnassignMember"); public static final String AUTZ_UI_ADMIN_UNASSIGN_MEMBER_TAB_ACTION_URI = QNameUtil.qNameToUri(AUTZ_UI_ADMIN_UNASSIGN_MEMBER_ACTION_QNAME); + + public static final QName AUTZ_UI_ADMIN_UNASSIGN_ALL_MEMBERS_ACTION_QNAME = new QName(NS_AUTHORIZATION_UI, "adminUnassignAllMembers"); + public static final String AUTZ_UI_ADMIN_UNASSIGN_ALL_MEMBERS_TAB_ACTION_URI = QNameUtil.qNameToUri(AUTZ_UI_ADMIN_UNASSIGN_ALL_MEMBERS_ACTION_QNAME); public static final QName AUTZ_UI_ADMIN_RECOMPUTE_MEMBER_ACTION_QNAME = new QName(NS_AUTHORIZATION_UI, "adminRecomputeMember"); public static final String AUTZ_UI_ADMIN_RECOMPUTE_MEMBER_ACTION_URI = QNameUtil.qNameToUri(AUTZ_UI_ADMIN_RECOMPUTE_MEMBER_ACTION_QNAME); diff --git a/repo/security-enforcer-api/pom.xml b/repo/security-enforcer-api/pom.xml index 52631bee9e7..66f154d192a 100644 --- a/repo/security-enforcer-api/pom.xml +++ b/repo/security-enforcer-api/pom.xml @@ -24,7 +24,7 @@ <parent> <artifactId>repo</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </parent> <scm> <connection>https://github.com/Evolveum/midpoint.git</connection> @@ -35,27 +35,27 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>prism</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>schema</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>security-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>task-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> @@ -74,7 +74,7 @@ <dependency> <groupId>com.evolveum.midpoint.tools</groupId> <artifactId>test-ng</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> </dependencies> diff --git a/repo/security-enforcer-impl/pom.xml b/repo/security-enforcer-impl/pom.xml index dd217c1fde9..979558788d7 100644 --- a/repo/security-enforcer-impl/pom.xml +++ b/repo/security-enforcer-impl/pom.xml @@ -24,7 +24,7 @@ <parent> <artifactId>repo</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </parent> <scm> <connection>https://github.com/Evolveum/midpoint.git</connection> @@ -35,42 +35,42 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>prism</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>schema</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>security-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>security-enforcer-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-common</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>task-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> @@ -98,7 +98,7 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>common</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> @@ -109,7 +109,7 @@ <dependency> <groupId>com.evolveum.midpoint.tools</groupId> <artifactId>test-ng</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> @@ -120,31 +120,31 @@ <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-sql-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>test-util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-test-util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>system-init</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>audit-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> diff --git a/repo/security-impl/pom.xml b/repo/security-impl/pom.xml index ca478ff49f9..6baafee9ea3 100644 --- a/repo/security-impl/pom.xml +++ b/repo/security-impl/pom.xml @@ -24,7 +24,7 @@ <parent> <artifactId>repo</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </parent> <scm> <connection>https://github.com/Evolveum/midpoint.git</connection> @@ -35,33 +35,33 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>prism</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>schema</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>security-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>task-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> @@ -94,7 +94,7 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>common</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> @@ -105,7 +105,7 @@ <dependency> <groupId>com.evolveum.midpoint.tools</groupId> <artifactId>test-ng</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> @@ -116,31 +116,31 @@ <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-sql-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>test-util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-test-util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>system-init</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>audit-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> diff --git a/repo/system-init/pom.xml b/repo/system-init/pom.xml index 79941af167b..009db59bd2a 100644 --- a/repo/system-init/pom.xml +++ b/repo/system-init/pom.xml @@ -24,7 +24,7 @@ <parent> <artifactId>repo</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </parent> <scm> <connection>https://github.com/Evolveum/midpoint.git</connection> @@ -43,42 +43,42 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>prism</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>schema</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>common</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>task-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>audit-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>security-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>commons-lang</groupId> @@ -130,13 +130,13 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>test-util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.tools</groupId> <artifactId>test-ng</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> diff --git a/repo/task-api/pom.xml b/repo/task-api/pom.xml index 04a063d4ae6..bd5584d07a2 100644 --- a/repo/task-api/pom.xml +++ b/repo/task-api/pom.xml @@ -24,7 +24,7 @@ <parent> <artifactId>repo</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </parent> <scm> <connection>https://github.com/Evolveum/midpoint.git</connection> @@ -35,22 +35,22 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>prism</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>schema</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>stax</groupId> @@ -64,7 +64,7 @@ <dependency> <groupId>com.evolveum.midpoint.tools</groupId> <artifactId>test-ng</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> </dependencies> diff --git a/repo/task-quartz-impl/pom.xml b/repo/task-quartz-impl/pom.xml index 803366d8ded..40096826fc4 100644 --- a/repo/task-quartz-impl/pom.xml +++ b/repo/task-quartz-impl/pom.xml @@ -24,7 +24,7 @@ <parent> <artifactId>repo</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </parent> <scm> <connection>https://github.com/Evolveum/midpoint.git</connection> @@ -35,37 +35,37 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>prism</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>schema</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>common</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>security-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>task-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>commons-lang</groupId> @@ -96,6 +96,10 @@ <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-jcl</artifactId> + </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-core</artifactId> @@ -116,12 +120,18 @@ <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> + <exclusions> + <exclusion> + <groupId>org.javassist</groupId> + <artifactId>javassist</artifactId> + </exclusion> + </exclusions> </dependency> <!-- this one is needed to get SQL configuration from the repository --> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-sql-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>provided</scope> </dependency> @@ -134,19 +144,19 @@ <dependency> <groupId>com.evolveum.midpoint.tools</groupId> <artifactId>test-ng</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>test-util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>security-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> @@ -162,7 +172,7 @@ <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>audit-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <!-- needed as runtime dependency otherwise spring won't start --> @@ -179,7 +189,7 @@ <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-test-util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> @@ -190,13 +200,13 @@ <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>system-init</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-sql-impl-test</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> diff --git a/samples/model-client-sample/pom.xml b/samples/model-client-sample/pom.xml index 6317be9f7ae..331ae1f578d 100644 --- a/samples/model-client-sample/pom.xml +++ b/samples/model-client-sample/pom.xml @@ -21,7 +21,7 @@ <groupId>com.evolveum.midpoint.samples</groupId> <artifactId>model-client-sample</artifactId> <!-- NOTE: no parent. We want this to be completely stand-alone. --> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <properties> <project.source.version>1.8</project.source.version> <cxf.version>3.1.6</cxf.version> @@ -159,7 +159,7 @@ <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>model-client</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>org.apache.cxf</groupId> diff --git a/samples/pom.xml b/samples/pom.xml index 85996cc72ac..fabf89e5eba 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -23,7 +23,7 @@ <parent> <artifactId>parent</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <relativePath>../build-system/pom.xml</relativePath> </parent> <organization> diff --git a/samples/reports/report-work-items.xml b/samples/reports/report-work-items.xml new file mode 100644 index 00000000000..6639e39563e --- /dev/null +++ b/samples/reports/report-work-items.xml @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (c) 2010-2018 Evolveum + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License. + --> + +<report xmlns="http://midpoint.evolveum.com/xml/ns/public/common/common-3" + xmlns:q="http://prism.evolveum.com/xml/ns/public/query-3" + xmlns:c="http://midpoint.evolveum.com/xml/ns/public/common/common-3" + xmlns:t="http://prism.evolveum.com/xml/ns/public/types-3" + xmlns:org="http://midpoint.evolveum.com/xml/ns/public/common/org-3" + xmlns:icfs="http://midpoint.evolveum.com/xml/ns/public/connector/icf-1/resource-schema-3" + xmlns:ri="http://midpoint.evolveum.com/xml/ns/public/resource/instance-3" + oid="695c6b4e-6162-48bb-81a8-cc80952f2fdb"> + <name>Work items report</name> + <description>Currently open work items.</description> + <template>UEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlCbGJtTnZaR2x1WnowaVZWUkdMVGdpUHo0S1BHcGhjM0JsY2xKbGNHOXlkQ0I0Yld4dWN6MGlhSFIwY0RvdkwycGhjM0JsY25KbGNHOXlkSE11YzI5MWNtTmxabTl5WjJVdWJtVjBMMnBoYzNCbGNuSmxjRzl5ZEhNaUlIaHRiRzV6T25oemFUMGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TVM5WVRVeFRZMmhsYldFdGFXNXpkR0Z1WTJVaUlIaHphVHB6WTJobGJXRk1iMk5oZEdsdmJqMGlhSFIwY0RvdkwycGhjM0JsY25KbGNHOXlkSE11YzI5MWNtTmxabTl5WjJVdWJtVjBMMnBoYzNCbGNuSmxjRzl5ZEhNZ2FIUjBjRG92TDJwaGMzQmxjbkpsY0c5eWRITXVjMjkxY21ObFptOXlaMlV1Ym1WMEwzaHpaQzlxWVhOd1pYSnlaWEJ2Y25RdWVITmtJaUJ1WVcxbFBTSnlaWEJ2Y25SVmMyVnlUR2x6ZENJZ2NHRm5aVmRwWkhSb1BTSXhOVEl3SWlCd1lXZGxTR1ZwWjJoMFBTSTFPVFVpSUc5eWFXVnVkR0YwYVc5dVBTSk1ZVzVrYzJOaGNHVWlJSGRvWlc1T2IwUmhkR0ZVZVhCbFBTSkJiR3hUWldOMGFXOXVjMDV2UkdWMFlXbHNJaUJqYjJ4MWJXNVhhV1IwYUQwaU1UUTRNQ0lnYkdWbWRFMWhjbWRwYmowaU1qQWlJSEpwWjJoMFRXRnlaMmx1UFNJeU1DSWdkRzl3VFdGeVoybHVQU0l6TUNJZ1ltOTBkRzl0VFdGeVoybHVQU0l6TUNJZ2RYVnBaRDBpTmpkbE5EWTFZelV0TkRabFlTMDBNR1F5TFdKbFlUQXRORFk1WXpaalpqTTRPVE0zSWo0S0NUeHdjbTl3WlhKMGVTQnVZVzFsUFNKdVpYUXVjMll1YW1GemNHVnljbVZ3YjNKMGN5NXdjbWx1ZEM1clpXVndMbVoxYkd3dWRHVjRkQ0lnZG1Gc2RXVTlJblJ5ZFdVaUx6NEtDVHh3Y205d1pYSjBlU0J1WVcxbFBTSnVaWFF1YzJZdWFtRnpjR1Z5Y21Wd2IzSjBjeTVsZUhCdmNuUXVlR3h6TG5KbGJXOTJaUzVsYlhCMGVTNXpjR0ZqWlM1aVpYUjNaV1Z1TG1OdmJIVnRibk1pSUhaaGJIVmxQU0owY25WbElpOCtDZ2s4Y0hKdmNHVnlkSGtnYm1GdFpUMGlibVYwTG5ObUxtcGhjM0JsY25KbGNHOXlkSE11Wlhod2IzSjBMbmhzY3k1eVpXMXZkbVV1Wlcxd2RIa3VjM0JoWTJVdVltVjBkMlZsYmk1eWIzZHpJaUIyWVd4MVpUMGlkSEoxWlNJdlBnb0pQSEJ5YjNCbGNuUjVJRzVoYldVOUltNWxkQzV6Wmk1cVlYTndaWEp5WlhCdmNuUnpMbVY0Y0c5eWRDNXdaR1l1Wm05eVkyVXViR2x1WldKeVpXRnJMbkJ2YkdsamVTSWdkbUZzZFdVOUluUnlkV1VpTHo0S0NUeHdjbTl3WlhKMGVTQnVZVzFsUFNKdVpYUXVjMll1YW1GemNHVnljbVZ3YjNKMGN5NWxlSEJ2Y25RdVkzTjJMbVY0WTJ4MVpHVXViM0pwWjJsdUxtSmhibVF1TVNJZ2RtRnNkV1U5SW5ScGRHeGxJaTgrQ2drOGNISnZjR1Z5ZEhrZ2JtRnRaVDBpYm1WMExuTm1MbXBoYzNCbGNuSmxjRzl5ZEhNdVpYaHdiM0owTG5oc2N5NWxlR05zZFdSbExtOXlhV2RwYmk1aVlXNWtMakVpSUhaaGJIVmxQU0p3WVdkbFNHVmhaR1Z5SWk4K0NnazhjSEp2Y0dWeWRIa2dibUZ0WlQwaWJtVjBMbk5tTG1waGMzQmxjbkpsY0c5eWRITXVaWGh3YjNKMExuaHNjeTVsZUdOc2RXUmxMbTl5YVdkcGJpNXJaV1Z3TG1acGNuTjBMbUpoYm1RdU1pSWdkbUZzZFdVOUltTnZiSFZ0YmtobFlXUmxjaUl2UGdvSlBIQnliM0JsY25SNUlHNWhiV1U5SW01bGRDNXpaaTVxWVhOd1pYSnlaWEJ2Y25SekxtVjRjRzl5ZEM1NGJITXVaR1YwWldOMExtTmxiR3d1ZEhsd1pTSWdkbUZzZFdVOUluUnlkV1VpTHo0S0NUeHdjbTl3WlhKMGVTQnVZVzFsUFNKdVpYUXVjMll1YW1GemNHVnljbVZ3YjNKMGN5NWxlSEJ2Y25RdWVHeHpMbmR5WVhBdWRHVjRkQ0lnZG1Gc2RXVTlJblJ5ZFdVaUx6NEtDVHh3Y205d1pYSjBlU0J1WVcxbFBTSnVaWFF1YzJZdWFtRnpjR1Z5Y21Wd2IzSjBjeTVsZUhCdmNuUXVlR3h6TG1GMWRHOHVabWwwTG5KdmR5SWdkbUZzZFdVOUluUnlkV1VpTHo0S0NUeHdjbTl3WlhKMGVTQnVZVzFsUFNKdVpYUXVjMll1YW1GemNHVnljbVZ3YjNKMGN5NWxlSEJ2Y25RdWVHeHpMbUYxZEc4dVptbDBMbU52YkhWdGJpSWdkbUZzZFdVOUluUnlkV1VpTHo0S0NUeHdjbTl3WlhKMGVTQnVZVzFsUFNKdVpYUXVjMll1YW1GemNHVnljbVZ3YjNKMGN5NWhkM1F1YVdkdWIzSmxMbTFwYzNOcGJtY3VabTl1ZENJZ2RtRnNkV1U5SW5SeWRXVWlMejRLQ1R4d2NtOXdaWEowZVNCdVlXMWxQU0pwY21Wd2IzSjBMbnB2YjIwaUlIWmhiSFZsUFNJeExqQWlMejRLQ1R4d2NtOXdaWEowZVNCdVlXMWxQU0pwY21Wd2IzSjBMbmdpSUhaaGJIVmxQU0l4TmlJdlBnb0pQSEJ5YjNCbGNuUjVJRzVoYldVOUltbHlaWEJ2Y25RdWVTSWdkbUZzZFdVOUlqRTBJaTgrQ2drOGNISnZjR1Z5ZEhrZ2JtRnRaVDBpWTI5dExtcGhjM0JsY25OdlpuUXVjM1IxWkdsdkxtUmhkR0V1WkdWbVlYVnNkR1JoZEdGaFpHRndkR1Z5SWlCMllXeDFaVDBpYlhGc0xuaHRiQ0l2UGdvSlBHbHRjRzl5ZENCMllXeDFaVDBpWTI5dExtVjJiMngyWlhWdExtMXBaSEJ2YVc1MExuaHRiQzV1Y3k1ZmNIVmliR2xqTG1OdmJXMXZiaTVqYjIxdGIyNWZNeTRxSWk4K0NnazhhVzF3YjNKMElIWmhiSFZsUFNKamIyMHVaWFp2YkhabGRXMHViV2xrY0c5cGJuUXVjMk5vWlcxaExuVjBhV3d1S2lJdlBnb0pQR2x0Y0c5eWRDQjJZV3gxWlQwaVkyOXRMbVYyYjJ4MlpYVnRMbTFwWkhCdmFXNTBMbkpsY0c5eWRDNXBiWEJzTGxKbGNHOXlkRlYwYVd4eklpOCtDZ2s4YzNSNWJHVWdibUZ0WlQwaVFtRnpaU0lnYVhORVpXWmhkV3gwUFNKMGNuVmxJaUJvVkdWNGRFRnNhV2R1UFNKTVpXWjBJaUJvU1cxaFoyVkJiR2xuYmowaVRHVm1kQ0lnZGxSbGVIUkJiR2xuYmowaVRXbGtaR3hsSWlCMlNXMWhaMlZCYkdsbmJqMGlUV2xrWkd4bElpQm1iMjUwVG1GdFpUMGlSR1ZxWVZaMUlGTmhibk1pSUdadmJuUlRhWHBsUFNJeE1DSWdjR1JtUm05dWRFNWhiV1U5SWtSbGFtRldkVk5oYm5NdWRIUm1JaUJ3WkdaRmJtTnZaR2x1WnowaVNXUmxiblJwZEhrdFNDSWdhWE5RWkdaRmJXSmxaR1JsWkQwaWRISjFaU0l2UGdvSlBITjBlV3hsSUc1aGJXVTlJbFJwZEd4bElpQnpkSGxzWlQwaVFtRnpaU0lnYlc5a1pUMGlUM0JoY1hWbElpQm1iM0psWTI5c2IzSTlJaU5HUmtaR1JrWWlJR0poWTJ0amIyeHZjajBpSXpJMk56azVOQ0lnWm05dWRGTnBlbVU5SWpJMklpOCtDZ2s4YzNSNWJHVWdibUZ0WlQwaVVHRm5aU0JvWldGa1pYSWlJSE4wZVd4bFBTSkNZWE5sSWlCbWIzSmxZMjlzYjNJOUlpTXdNREF3TURBaUlHWnZiblJUYVhwbFBTSXhNaUl2UGdvSlBITjBlV3hsSUc1aGJXVTlJa052YkhWdGJpQm9aV0ZrWlhJaUlITjBlV3hsUFNKQ1lYTmxJaUJ0YjJSbFBTSlBjR0Z4ZFdVaUlHWnZjbVZqYjJ4dmNqMGlJMFpHUmtaR1JpSWdZbUZqYTJOdmJHOXlQU0lqTXpNek16TXpJaUJvVkdWNGRFRnNhV2R1UFNKRFpXNTBaWElpSUdoSmJXRm5aVUZzYVdkdVBTSkRaVzUwWlhJaUlHWnZiblJUYVhwbFBTSXhNaUl2UGdvSlBITjBlV3hsSUc1aGJXVTlJa1JsZEdGcGJDSWdjM1I1YkdVOUlrSmhjMlVpSUdselFtOXNaRDBpWm1Gc2MyVWlMejRLQ1R4emRIbHNaU0J1WVcxbFBTSkRiMlJsSWlCemRIbHNaVDBpUW1GelpTSWdabTl1ZEZOcGVtVTlJamtpSUdselFtOXNaRDBpWm1Gc2MyVWlMejRLQ1R4eGRXVnllVk4wY21sdVp5QnNZVzVuZFdGblpUMGliWEZzSWo0S0NRazhJVnREUkVGVVFWczhZMjlrWlQ0Z0lDQWdJQ0FnSUFvZ0lDQWdjbVZ3YjNKMExuTmxZWEpqYUVGd2NISnZkbUZzVjI5eWEwbDBaVzF6S0NrS1BDOWpiMlJsUGwxZFBnb0pQQzl4ZFdWeWVWTjBjbWx1Wno0S0NUeG1hV1ZzWkNCdVlXMWxQU0pmZEdocGMxOGlJR05zWVhOelBTSmpiMjB1WlhadmJIWmxkVzB1Yldsa2NHOXBiblF1Y0hKcGMyMHVVSEpwYzIxRGIyNTBZV2x1WlhKV1lXeDFaU0l2UGdvSlBHWnBaV3hrSUc1aGJXVTlJbTVoYldVaUlHTnNZWE56UFNKcVlYWmhMbXhoYm1jdVUzUnlhVzVuSWk4K0NnazhabWxsYkdRZ2JtRnRaVDBpWTNKbFlYUmxWR2x0WlhOMFlXMXdJaUJqYkdGemN6MGlhbUYyWVhndWVHMXNMbVJoZEdGMGVYQmxMbGhOVEVkeVpXZHZjbWxoYmtOaGJHVnVaR0Z5SWk4K0NnazhabWxsYkdRZ2JtRnRaVDBpWkdWaFpHeHBibVVpSUdOc1lYTnpQU0pxWVhaaGVDNTRiV3d1WkdGMFlYUjVjR1V1V0UxTVIzSmxaMjl5YVdGdVEyRnNaVzVrWVhJaUx6NEtDVHhtYVdWc1pDQnVZVzFsUFNKbGVIUmxjbTVoYkVsa0lpQmpiR0Z6Y3owaWFtRjJZUzVzWVc1bkxsTjBjbWx1WnlJdlBnb0pQR0poWTJ0bmNtOTFibVErQ2drSlBHSmhibVFnYUdWcFoyaDBQU0l6TUNJZ2MzQnNhWFJVZVhCbFBTSlRkSEpsZEdOb0lpOCtDZ2s4TDJKaFkydG5jbTkxYm1RK0NnazhkR2wwYkdVK0Nna0pQR0poYm1RZ2FHVnBaMmgwUFNJeE1qTWlJSE53YkdsMFZIbHdaVDBpVTNSeVpYUmphQ0krQ2drSkNUeG1jbUZ0WlQ0S0NRa0pDVHh5WlhCdmNuUkZiR1Z0Wlc1MElITjBlV3hsUFNKVWFYUnNaU0lnYlc5a1pUMGlUM0JoY1hWbElpQjRQU0l3SWlCNVBTSXdJaUIzYVdSMGFEMGlNVFE0TUNJZ2FHVnBaMmgwUFNJMk55SWdZbUZqYTJOdmJHOXlQU0lqTWpZM09UazBJaUIxZFdsa1BTSTBOR0psWkdGall5MW1ZVEl6TFRSbVpURXRZamN4WmkxbE5XRm1ZVGswTTJZMU5UTWlMejRLQ1FrSkNUeHpkR0YwYVdOVVpYaDBQZ29KQ1FrSkNUeHlaWEJ2Y25SRmJHVnRaVzUwSUhOMGVXeGxQU0pVYVhSc1pTSWdlRDBpTUNJZ2VUMGlNVFFpSUhkcFpIUm9QU0l4TkRnd0lpQm9aV2xuYUhROUlqTTRJaUIxZFdsa1BTSm1NbVE1T1dOaFpDMDVaRGcwTFRSbU5UQXRZalExTlMwME5UTmpPRGRtTmpKak5HTWlMejRLQ1FrSkNRazhkR1Y0ZEVWc1pXMWxiblFnZG1WeWRHbGpZV3hCYkdsbmJtMWxiblE5SWsxcFpHUnNaU0l2UGdvSkNRa0pDVHgwWlhoMFBqd2hXME5FUVZSQlcxZHZjbXNnU1hSbGJYTWdVbVZ3YjNKMFhWMCtQQzkwWlhoMFBnb0pDUWtKUEM5emRHRjBhV05VWlhoMFBnb0pDUWs4TDJaeVlXMWxQZ29KQ1R3dlltRnVaRDRLQ1R3dmRHbDBiR1UrQ2drOGNHRm5aVWhsWVdSbGNqNEtDUWs4WW1GdVpDQnpjR3hwZEZSNWNHVTlJbE4wY21WMFkyZ2lMejRLQ1R3dmNHRm5aVWhsWVdSbGNqNEtDVHhqYjJ4MWJXNUlaV0ZrWlhJK0Nna0pQR0poYm1RZ2FHVnBaMmgwUFNJeU1DSWdjM0JzYVhSVWVYQmxQU0pUZEhKbGRHTm9JajRLQ1FrSlBIQnliM0JsY25SNUlHNWhiV1U5SW1OdmJTNXFZWE53WlhKemIyWjBMbk4wZFdScGJ5NTFibWwwTG1obGFXZG9kQ0lnZG1Gc2RXVTlJbkJwZUdWc0lpOCtDZ2tKQ1R4d2NtOXdaWEowZVNCdVlXMWxQU0pqYjIwdWFtRnpjR1Z5YzI5bWRDNXpkSFZrYVc4dWJHRjViM1YwSWlCMllXeDFaVDBpWTI5dExtcGhjM0JsY25OdlpuUXVjM1IxWkdsdkxtVmthWFJ2Y2k1c1lYbHZkWFF1U0c5eWFYcHZiblJoYkZKdmQweGhlVzkxZENJdlBnb0pDUWs4YzNSaGRHbGpWR1Y0ZEQ0S0NRa0pDVHh5WlhCdmNuUkZiR1Z0Wlc1MElITjBlV3hsUFNKRGIyeDFiVzRnYUdWaFpHVnlJaUI0UFNJd0lpQjVQU0l3SWlCM2FXUjBhRDBpTlRZd0lpQm9aV2xuYUhROUlqSXdJaUIxZFdsa1BTSXdORGs0T1RBNVlpMWtNMk0xTFRSbFpUTXRZamhqT1MxbU1EQmhPREE0WldaaE4yRWlMejRLQ1FrSkNUeDBaWGgwUld4bGJXVnVkQ0IyWlhKMGFXTmhiRUZzYVdkdWJXVnVkRDBpVFdsa1pHeGxJaTgrQ2drSkNRazhkR1Y0ZEQ0OElWdERSRUZVUVZ0T1lXMWxYVjArUEM5MFpYaDBQZ29KQ1FrOEwzTjBZWFJwWTFSbGVIUStDZ2tKQ1R4emRHRjBhV05VWlhoMFBnb0pDUWtKUEhKbGNHOXlkRVZzWlcxbGJuUWdjM1I1YkdVOUlrTnZiSFZ0YmlCb1pXRmtaWElpSUhnOUlqVTJNQ0lnZVQwaU1DSWdkMmxrZEdnOUlqRTFNQ0lnYUdWcFoyaDBQU0l5TUNJZ2RYVnBaRDBpWXpVek1EVTFObUl0WlRZM05DMDBOMk0yTFdFM09Ua3RObVl4WkRWaU5XSmpaVFl4SWo0S0NRa0pDUWs4Y0hKdmNHVnlkSGtnYm1GdFpUMGlZMjl0TG1waGMzQmxjbk52Wm5RdWMzUjFaR2x2TG5WdWFYUXVkMmxrZEdnaUlIWmhiSFZsUFNKd2FYaGxiQ0l2UGdvSkNRa0pQQzl5WlhCdmNuUkZiR1Z0Wlc1MFBnb0pDUWtKUEhSbGVIUkZiR1Z0Wlc1MElIWmxjblJwWTJGc1FXeHBaMjV0Wlc1MFBTSk5hV1JrYkdVaUx6NEtDUWtKQ1R4MFpYaDBQandoVzBORVFWUkJXMUpsY1hWbGMzUmxaQ0J2YmwxZFBqd3ZkR1Y0ZEQ0S0NRa0pQQzl6ZEdGMGFXTlVaWGgwUGdvSkNRazhjM1JoZEdsalZHVjRkRDRLQ1FrSkNUeHlaWEJ2Y25SRmJHVnRaVzUwSUhOMGVXeGxQU0pEYjJ4MWJXNGdhR1ZoWkdWeUlpQjRQU0kzTVRBaUlIazlJakFpSUhkcFpIUm9QU0l4TVRBaUlHaGxhV2RvZEQwaU1qQWlJSFYxYVdROUlqazJOekV5WW1Ka0xURTBOell0TkdJNU9TMDVORFpoTFRJNU5USXpOV0U1T0RKbVpTSStDZ2tKQ1FrSlBIQnliM0JsY25SNUlHNWhiV1U5SW1OdmJTNXFZWE53WlhKemIyWjBMbk4wZFdScGJ5NTFibWwwTG5naUlIWmhiSFZsUFNKd2FYaGxiQ0l2UGdvSkNRa0pDVHh3Y205d1pYSjBlU0J1WVcxbFBTSmpiMjB1YW1GemNHVnljMjltZEM1emRIVmthVzh1ZFc1cGRDNTNhV1IwYUNJZ2RtRnNkV1U5SW5CcGVHVnNJaTgrQ2drSkNRazhMM0psY0c5eWRFVnNaVzFsYm5RK0Nna0pDUWs4ZEdWNGRFVnNaVzFsYm5RZ2RtVnlkR2xqWVd4QmJHbG5ibTFsYm5ROUlrMXBaR1JzWlNJdlBnb0pDUWtKUEhSbGVIUStQQ0ZiUTBSQlZFRmJRWE56YVdkdVpXVW9jeWxkWFQ0OEwzUmxlSFErQ2drSkNUd3ZjM1JoZEdsalZHVjRkRDRLQ1FrSlBITjBZWFJwWTFSbGVIUStDZ2tKQ1FrOGNtVndiM0owUld4bGJXVnVkQ0J6ZEhsc1pUMGlRMjlzZFcxdUlHaGxZV1JsY2lJZ2VEMGlPREl3SWlCNVBTSXdJaUIzYVdSMGFEMGlNVEV3SWlCb1pXbG5hSFE5SWpJd0lpQjFkV2xrUFNJMk5ESmhObU13TlMwelptUTBMVFJrTURndE9EYzBOUzFsWkRNM1pEa3dNelEwTnpNaVBnb0pDUWtKQ1R4d2NtOXdaWEowZVNCdVlXMWxQU0pqYjIwdWFtRnpjR1Z5YzI5bWRDNXpkSFZrYVc4dWRXNXBkQzU0SWlCMllXeDFaVDBpY0dsNFpXd2lMejRLQ1FrSkNRazhjSEp2Y0dWeWRIa2dibUZ0WlQwaVkyOXRMbXBoYzNCbGNuTnZablF1YzNSMVpHbHZMblZ1YVhRdWQybGtkR2dpSUhaaGJIVmxQU0p3YVhobGJDSXZQZ29KQ1FrSlBDOXlaWEJ2Y25SRmJHVnRaVzUwUGdvSkNRa0pQSFJsZUhSRmJHVnRaVzUwSUhabGNuUnBZMkZzUVd4cFoyNXRaVzUwUFNKTmFXUmtiR1VpTHo0S0NRa0pDVHgwWlhoMFBqd2hXME5FUVZSQlcxSmxjWFZsYzNSbFpWMWRQand2ZEdWNGRENEtDUWtKUEM5emRHRjBhV05VWlhoMFBnb0pDUWs4YzNSaGRHbGpWR1Y0ZEQ0S0NRa0pDVHh5WlhCdmNuUkZiR1Z0Wlc1MElITjBlV3hsUFNKRGIyeDFiVzRnYUdWaFpHVnlJaUI0UFNJNU16QWlJSGs5SWpBaUlIZHBaSFJvUFNJeE1UQWlJR2hsYVdkb2REMGlNakFpSUhWMWFXUTlJbUl4WW1NMVlUWXhMV1UzTURRdE5EVmxNaTFoWkRCa0xXTTVNemswWmpWa05UTXdNaUkrQ2drSkNRa0pQSEJ5YjNCbGNuUjVJRzVoYldVOUltTnZiUzVxWVhOd1pYSnpiMlowTG5OMGRXUnBieTUxYm1sMExuZ2lJSFpoYkhWbFBTSndhWGhsYkNJdlBnb0pDUWtKQ1R4d2NtOXdaWEowZVNCdVlXMWxQU0pqYjIwdWFtRnpjR1Z5YzI5bWRDNXpkSFZrYVc4dWRXNXBkQzUzYVdSMGFDSWdkbUZzZFdVOUluQnBlR1ZzSWk4K0Nna0pDUWs4TDNKbGNHOXlkRVZzWlcxbGJuUStDZ2tKQ1FrOGRHVjRkRVZzWlcxbGJuUWdkbVZ5ZEdsallXeEJiR2xuYm0xbGJuUTlJazFwWkdSc1pTSXZQZ29KQ1FrSlBIUmxlSFErUENGYlEwUkJWRUZiVkdGeVoyVjBYVjArUEM5MFpYaDBQZ29KQ1FrOEwzTjBZWFJwWTFSbGVIUStDZ2tKQ1R4emRHRjBhV05VWlhoMFBnb0pDUWtKUEhKbGNHOXlkRVZzWlcxbGJuUWdjM1I1YkdVOUlrTnZiSFZ0YmlCb1pXRmtaWElpSUhnOUlqRXdOREFpSUhrOUlqQWlJSGRwWkhSb1BTSXhNVEFpSUdobGFXZG9kRDBpTWpBaUlIVjFhV1E5SWpkbFpqUTVZMkl3TFdNMFpUZ3RORFpoWlMwNU1qTTJMVFl3TUdNek56WTJZMkZrTkNJK0Nna0pDUWtKUEhCeWIzQmxjblI1SUc1aGJXVTlJbU52YlM1cVlYTndaWEp6YjJaMExuTjBkV1JwYnk1MWJtbDBMbmdpSUhaaGJIVmxQU0p3YVhobGJDSXZQZ29KQ1FrSkNUeHdjbTl3WlhKMGVTQnVZVzFsUFNKamIyMHVhbUZ6Y0dWeWMyOW1kQzV6ZEhWa2FXOHVkVzVwZEM1M2FXUjBhQ0lnZG1Gc2RXVTlJbkJwZUdWc0lpOCtDZ2tKQ1FrOEwzSmxjRzl5ZEVWc1pXMWxiblErQ2drSkNRazhkR1Y0ZEVWc1pXMWxiblFnZG1WeWRHbGpZV3hCYkdsbmJtMWxiblE5SWsxcFpHUnNaU0l2UGdvSkNRa0pQSFJsZUhRK1BDRmJRMFJCVkVGYlVtVnhkV1Z6ZEdWeVhWMCtQQzkwWlhoMFBnb0pDUWs4TDNOMFlYUnBZMVJsZUhRK0Nna0pDVHh6ZEdGMGFXTlVaWGgwUGdvSkNRa0pQSEpsY0c5eWRFVnNaVzFsYm5RZ2MzUjViR1U5SWtOdmJIVnRiaUJvWldGa1pYSWlJSGc5SWpFeE5UQWlJSGs5SWpBaUlIZHBaSFJvUFNJeE1UQWlJR2hsYVdkb2REMGlNakFpSUhWMWFXUTlJakJpT1dRMlpUa3hMV1kyTTJRdE5EUTJOQzA1TVdFekxURXdNemN6T0RReE5UWXlOU0krQ2drSkNRa0pQSEJ5YjNCbGNuUjVJRzVoYldVOUltTnZiUzVxWVhOd1pYSnpiMlowTG5OMGRXUnBieTUxYm1sMExuZ2lJSFpoYkhWbFBTSndhWGhsYkNJdlBnb0pDUWtKQ1R4d2NtOXdaWEowZVNCdVlXMWxQU0pqYjIwdWFtRnpjR1Z5YzI5bWRDNXpkSFZrYVc4dWRXNXBkQzUzYVdSMGFDSWdkbUZzZFdVOUluQnBlR1ZzSWk4K0Nna0pDUWs4TDNKbGNHOXlkRVZzWlcxbGJuUStDZ2tKQ1FrOGRHVjRkRVZzWlcxbGJuUWdkbVZ5ZEdsallXeEJiR2xuYm0xbGJuUTlJazFwWkdSc1pTSXZQZ29KQ1FrSlBIUmxlSFErUENGYlEwUkJWRUZiVjJGcGRHbHVaeUJ6YVc1alpWMWRQand2ZEdWNGRENEtDUWtKUEM5emRHRjBhV05VWlhoMFBnb0pDUWs4YzNSaGRHbGpWR1Y0ZEQ0S0NRa0pDVHh5WlhCdmNuUkZiR1Z0Wlc1MElITjBlV3hsUFNKRGIyeDFiVzRnYUdWaFpHVnlJaUI0UFNJeE1qWXdJaUI1UFNJd0lpQjNhV1IwYUQwaU1URXdJaUJvWldsbmFIUTlJakl3SWlCMWRXbGtQU0l4Tmprek5XWXhNeTAyWVRnd0xUUXpZbVF0WVRReE9TMWpPVEZsTWpoa05HWTFPRGNpUGdvSkNRa0pDVHh3Y205d1pYSjBlU0J1WVcxbFBTSmpiMjB1YW1GemNHVnljMjltZEM1emRIVmthVzh1ZFc1cGRDNTRJaUIyWVd4MVpUMGljR2w0Wld3aUx6NEtDUWtKQ1FrOGNISnZjR1Z5ZEhrZ2JtRnRaVDBpWTI5dExtcGhjM0JsY25OdlpuUXVjM1IxWkdsdkxuVnVhWFF1ZDJsa2RHZ2lJSFpoYkhWbFBTSndhWGhsYkNJdlBnb0pDUWtKUEM5eVpYQnZjblJGYkdWdFpXNTBQZ29KQ1FrSlBIUmxlSFJGYkdWdFpXNTBJSFpsY25ScFkyRnNRV3hwWjI1dFpXNTBQU0pOYVdSa2JHVWlMejRLQ1FrSkNUeDBaWGgwUGp3aFcwTkVRVlJCVzBSbFlXUnNhVzVsWFYwK1BDOTBaWGgwUGdvSkNRazhMM04wWVhScFkxUmxlSFErQ2drSkNUeHpkR0YwYVdOVVpYaDBQZ29KQ1FrSlBISmxjRzl5ZEVWc1pXMWxiblFnYzNSNWJHVTlJa052YkhWdGJpQm9aV0ZrWlhJaUlIZzlJakV6TnpBaUlIazlJakFpSUhkcFpIUm9QU0l4TVRBaUlHaGxhV2RvZEQwaU1qQWlJSFYxYVdROUlqaGtNakk0TWpGa0xXVTJZVGt0TkRSallpMDRNemszTFRkbU9XVTFOVGxqWlRJd09TSStDZ2tKQ1FrSlBIQnliM0JsY25SNUlHNWhiV1U5SW1OdmJTNXFZWE53WlhKemIyWjBMbk4wZFdScGJ5NTFibWwwTG5naUlIWmhiSFZsUFNKd2FYaGxiQ0l2UGdvSkNRa0pDVHh3Y205d1pYSjBlU0J1WVcxbFBTSmpiMjB1YW1GemNHVnljMjltZEM1emRIVmthVzh1ZFc1cGRDNTNhV1IwYUNJZ2RtRnNkV1U5SW5CcGVHVnNJaTgrQ2drSkNRazhMM0psY0c5eWRFVnNaVzFsYm5RK0Nna0pDUWs4ZEdWNGRFVnNaVzFsYm5RZ2RtVnlkR2xqWVd4QmJHbG5ibTFsYm5ROUlrMXBaR1JzWlNJdlBnb0pDUWtKUEhSbGVIUStQQ0ZiUTBSQlZFRmJWMjl5YXlCcGRHVnRJRWxFWFYwK1BDOTBaWGgwUGdvSkNRazhMM04wWVhScFkxUmxlSFErQ2drSlBDOWlZVzVrUGdvSlBDOWpiMngxYlc1SVpXRmtaWEkrQ2drOFpHVjBZV2xzUGdvSkNUeGlZVzVrSUdobGFXZG9kRDBpTWpRaUlITndiR2wwVkhsd1pUMGlVM1J5WlhSamFDSStDZ2tKQ1R4d2NtOXdaWEowZVNCdVlXMWxQU0pqYjIwdWFtRnpjR1Z5YzI5bWRDNXpkSFZrYVc4dWRXNXBkQzVvWldsbmFIUWlJSFpoYkhWbFBTSndhWGhsYkNJdlBnb0pDUWs4Y0hKdmNHVnlkSGtnYm1GdFpUMGlZMjl0TG1waGMzQmxjbk52Wm5RdWMzUjFaR2x2TG14aGVXOTFkQ0lnZG1Gc2RXVTlJbU52YlM1cVlYTndaWEp6YjJaMExuTjBkV1JwYnk1bFpHbDBiM0l1YkdGNWIzVjBMa2h2Y21sNmIyNTBZV3hTYjNkTVlYbHZkWFFpTHo0S0NRa0pQR1p5WVcxbFBnb0pDUWtKUEhKbGNHOXlkRVZzWlcxbGJuUWdjM1I1YkdVOUlrUmxkR0ZwYkNJZ2MzUnlaWFJqYUZSNWNHVTlJbEpsYkdGMGFYWmxWRzlVWVd4c1pYTjBUMkpxWldOMElpQnRiMlJsUFNKUGNHRnhkV1VpSUhnOUlqQWlJSGs5SWpBaUlIZHBaSFJvUFNJeE5EZ3dJaUJvWldsbmFIUTlJakkwSWlCMWRXbGtQU0k0Tm1SaU5qVXpOeTA0TVdZd0xUUXlZakV0WWpjMFlTMWtNbUpsTnpBNU1qY3hZMlFpUGdvSkNRa0pDVHh3Y205d1pYSjBlU0J1WVcxbFBTSmpiMjB1YW1GemNHVnljMjltZEM1emRIVmthVzh1YkdGNWIzVjBJaUIyWVd4MVpUMGlZMjl0TG1waGMzQmxjbk52Wm5RdWMzUjFaR2x2TG1Wa2FYUnZjaTVzWVhsdmRYUXVTRzl5YVhwdmJuUmhiRkp2ZDB4aGVXOTFkQ0l2UGdvSkNRa0pQQzl5WlhCdmNuUkZiR1Z0Wlc1MFBnb0pDUWtKUEhSbGVIUkdhV1ZzWkQ0S0NRa0pDUWs4Y21Wd2IzSjBSV3hsYldWdWRDQjRQU0l3SWlCNVBTSXdJaUIzYVdSMGFEMGlOVFl3SWlCb1pXbG5hSFE5SWpJMElpQjFkV2xrUFNKak9EazBPR000TlMxbFl6TXhMVFJpTXprdE9EZzVZUzAwTTJOaVkyVTNNR1kzWmpnaVBnb0pDUWtKQ1FrOGNISnZjR1Z5ZEhrZ2JtRnRaVDBpWTI5dExtcGhjM0JsY25OdlpuUXVjM1IxWkdsdkxuVnVhWFF1ZDJsa2RHZ2lJSFpoYkhWbFBTSndhWGhsYkNJdlBnb0pDUWtKQ1R3dmNtVndiM0owUld4bGJXVnVkRDRLQ1FrSkNRazhkR1Y0ZEVacFpXeGtSWGh3Y21WemMybHZiajQ4SVZ0RFJFRlVRVnNrUm50dVlXMWxmVjFkUGp3dmRHVjRkRVpwWld4a1JYaHdjbVZ6YzJsdmJqNEtDUWtKQ1R3dmRHVjRkRVpwWld4a1Bnb0pDUWtKUEhSbGVIUkdhV1ZzWkQ0S0NRa0pDUWs4Y21Wd2IzSjBSV3hsYldWdWRDQjRQU0kxTmpBaUlIazlJakFpSUhkcFpIUm9QU0l4TlRBaUlHaGxhV2RvZEQwaU1qUWlJSFYxYVdROUlqYzFZbVprTkdFd0xUVTRNREF0TkRkaE5TMWhOVE5qTFRRMU9EQXlOVGN6TUdKaU15SStDZ2tKQ1FrSkNUeHdjbTl3WlhKMGVTQnVZVzFsUFNKamIyMHVhbUZ6Y0dWeWMyOW1kQzV6ZEhWa2FXOHVkVzVwZEM1NElpQjJZV3gxWlQwaWNHbDRaV3dpTHo0S0NRa0pDUWtKUEhCeWIzQmxjblI1SUc1aGJXVTlJbU52YlM1cVlYTndaWEp6YjJaMExuTjBkV1JwYnk1MWJtbDBMbmRwWkhSb0lpQjJZV3gxWlQwaWNHbDRaV3dpTHo0S0NRa0pDUWs4TDNKbGNHOXlkRVZzWlcxbGJuUStDZ2tKQ1FrSlBIUmxlSFJHYVdWc1pFVjRjSEpsYzNOcGIyNCtQQ0ZiUTBSQlZFRmJVbVZ3YjNKMFZYUnBiSE11Y0hKbGRIUjVVSEpwYm5SR2IzSlNaWEJ2Y25Rb1YyWkRiMjUwWlhoMFZYUnBiQzVuWlhSVGRHRnlkRlJwYldWemRHRnRjQ2drUm50ZmRHaHBjMTk5S1NsZFhUNDhMM1JsZUhSR2FXVnNaRVY0Y0hKbGMzTnBiMjQrQ2drSkNRazhMM1JsZUhSR2FXVnNaRDRLQ1FrSkNUeDBaWGgwUm1sbGJHUStDZ2tKQ1FrSlBISmxjRzl5ZEVWc1pXMWxiblFnZUQwaU56RXdJaUI1UFNJd0lpQjNhV1IwYUQwaU1URXdJaUJvWldsbmFIUTlJakkwSWlCMWRXbGtQU0kzTmpOa05qVmlNeTB4TVRnMkxUUmpNV010WVdSaU9TMDFaakEwTVdaallUVXpaallpUGdvSkNRa0pDUWs4Y0hKdmNHVnlkSGtnYm1GdFpUMGlZMjl0TG1waGMzQmxjbk52Wm5RdWMzUjFaR2x2TG5WdWFYUXVlQ0lnZG1Gc2RXVTlJbkJwZUdWc0lpOCtDZ2tKQ1FrSkNUeHdjbTl3WlhKMGVTQnVZVzFsUFNKamIyMHVhbUZ6Y0dWeWMyOW1kQzV6ZEhWa2FXOHVkVzVwZEM1M2FXUjBhQ0lnZG1Gc2RXVTlJbkJwZUdWc0lpOCtDZ2tKQ1FrSlBDOXlaWEJ2Y25SRmJHVnRaVzUwUGdvSkNRa0pDVHgwWlhoMFJXeGxiV1Z1ZENCMFpYaDBRV3hwWjI1dFpXNTBQU0pEWlc1MFpYSWlMejRLQ1FrSkNRazhkR1Y0ZEVacFpXeGtSWGh3Y21WemMybHZiajQ4SVZ0RFJFRlVRVnRTWlhCdmNuUlZkR2xzY3k1d2NtVjBkSGxRY21sdWRGVnpaWEp6Um05eVVtVndiM0owS0Nnb1YyOXlhMGwwWlcxVWVYQmxLU0FrUm50ZmRHaHBjMTk5TG1GelEyOXVkR0ZwYm1WeVlXSnNaU2dwS1M1blpYUkJjM05wWjI1bFpWSmxaaWdwS1YxZFBqd3ZkR1Y0ZEVacFpXeGtSWGh3Y21WemMybHZiajRLQ1FrSkNUd3ZkR1Y0ZEVacFpXeGtQZ29KQ1FrSlBIUmxlSFJHYVdWc1pENEtDUWtKQ1FrOGNtVndiM0owUld4bGJXVnVkQ0I0UFNJNE1qQWlJSGs5SWpBaUlIZHBaSFJvUFNJeE1UQWlJR2hsYVdkb2REMGlNalFpSUhWMWFXUTlJbUV6WVdNNE1qRmxMVFZoTWprdE5EazNZaTFpTkRKakxURTNObUpoTm1ZeU16RTNNQ0krQ2drSkNRa0pDVHh3Y205d1pYSjBlU0J1WVcxbFBTSmpiMjB1YW1GemNHVnljMjltZEM1emRIVmthVzh1ZFc1cGRDNTRJaUIyWVd4MVpUMGljR2w0Wld3aUx6NEtDUWtKQ1FrSlBIQnliM0JsY25SNUlHNWhiV1U5SW1OdmJTNXFZWE53WlhKemIyWjBMbk4wZFdScGJ5NTFibWwwTG5kcFpIUm9JaUIyWVd4MVpUMGljR2w0Wld3aUx6NEtDUWtKQ1FrOEwzSmxjRzl5ZEVWc1pXMWxiblErQ2drSkNRa0pQSFJsZUhSRmJHVnRaVzUwSUhSbGVIUkJiR2xuYm0xbGJuUTlJa05sYm5SbGNpSXZQZ29KQ1FrSkNUeDBaWGgwUm1sbGJHUkZlSEJ5WlhOemFXOXVQandoVzBORVFWUkJXMUpsY0c5eWRGVjBhV3h6TG5CeVpYUjBlVkJ5YVc1MFJtOXlVbVZ3YjNKMEtGZG1RMjl1ZEdWNGRGVjBhV3d1WjJWMFQySnFaV04wVW1WbUtDUkdlMTkwYUdselgzMHBMQ0JtWVd4elpTbGRYVDQ4TDNSbGVIUkdhV1ZzWkVWNGNISmxjM05wYjI0K0Nna0pDUWs4TDNSbGVIUkdhV1ZzWkQ0S0NRa0pDVHgwWlhoMFJtbGxiR1ErQ2drSkNRa0pQSEpsY0c5eWRFVnNaVzFsYm5RZ2VEMGlPVE13SWlCNVBTSXdJaUIzYVdSMGFEMGlNVEV3SWlCb1pXbG5hSFE5SWpJMElpQjFkV2xrUFNKak9XSmxNbVUyWlMwd01qWXpMVFF5TnpNdE9EVTRNaTFpTWpZNU9UQTJNbVJqTlRNaVBnb0pDUWtKQ1FrOGNISnZjR1Z5ZEhrZ2JtRnRaVDBpWTI5dExtcGhjM0JsY25OdlpuUXVjM1IxWkdsdkxuVnVhWFF1ZUNJZ2RtRnNkV1U5SW5CcGVHVnNJaTgrQ2drSkNRa0pDVHh3Y205d1pYSjBlU0J1WVcxbFBTSmpiMjB1YW1GemNHVnljMjltZEM1emRIVmthVzh1ZFc1cGRDNTNhV1IwYUNJZ2RtRnNkV1U5SW5CcGVHVnNJaTgrQ2drSkNRa0pQQzl5WlhCdmNuUkZiR1Z0Wlc1MFBnb0pDUWtKQ1R4MFpYaDBSV3hsYldWdWRDQjBaWGgwUVd4cFoyNXRaVzUwUFNKRFpXNTBaWElpTHo0S0NRa0pDUWs4ZEdWNGRFWnBaV3hrUlhod2NtVnpjMmx2Ymo0OElWdERSRUZVUVZ0U1pYQnZjblJWZEdsc2N5NXdjbVYwZEhsUWNtbHVkRVp2Y2xKbGNHOXlkQ2hYWmtOdmJuUmxlSFJWZEdsc0xtZGxkRlJoY21kbGRGSmxaaWdrUm50ZmRHaHBjMTk5S1N3Z1ptRnNjMlVwWFYwK1BDOTBaWGgwUm1sbGJHUkZlSEJ5WlhOemFXOXVQZ29KQ1FrSlBDOTBaWGgwUm1sbGJHUStDZ2tKQ1FrOGRHVjRkRVpwWld4a1Bnb0pDUWtKQ1R4eVpYQnZjblJGYkdWdFpXNTBJSGc5SWpFd05EQWlJSGs5SWpBaUlIZHBaSFJvUFNJeE1UQWlJR2hsYVdkb2REMGlNalFpSUhWMWFXUTlJak0zTldJek5XSXpMVFZsTUdZdE5EazROUzA1TmprNUxUY3dNakV5TW1VMFl6VTNOeUkrQ2drSkNRa0pDVHh3Y205d1pYSjBlU0J1WVcxbFBTSmpiMjB1YW1GemNHVnljMjltZEM1emRIVmthVzh1ZFc1cGRDNTRJaUIyWVd4MVpUMGljR2w0Wld3aUx6NEtDUWtKQ1FrSlBIQnliM0JsY25SNUlHNWhiV1U5SW1OdmJTNXFZWE53WlhKemIyWjBMbk4wZFdScGJ5NTFibWwwTG5kcFpIUm9JaUIyWVd4MVpUMGljR2w0Wld3aUx6NEtDUWtKQ1FrOEwzSmxjRzl5ZEVWc1pXMWxiblErQ2drSkNRa0pQSFJsZUhSRmJHVnRaVzUwSUhSbGVIUkJiR2xuYm0xbGJuUTlJa05sYm5SbGNpSXZQZ29KQ1FrSkNUeDBaWGgwUm1sbGJHUkZlSEJ5WlhOemFXOXVQandoVzBORVFWUkJXMUpsY0c5eWRGVjBhV3h6TG5CeVpYUjBlVkJ5YVc1MFJtOXlVbVZ3YjNKMEtGZG1RMjl1ZEdWNGRGVjBhV3d1WjJWMFVtVnhkV1Z6ZEdWeVVtVm1LQ1JHZTE5MGFHbHpYMzBwTENCbVlXeHpaU2xkWFQ0OEwzUmxlSFJHYVdWc1pFVjRjSEpsYzNOcGIyNCtDZ2tKQ1FrOEwzUmxlSFJHYVdWc1pENEtDUWtKQ1R4MFpYaDBSbWxsYkdRK0Nna0pDUWtKUEhKbGNHOXlkRVZzWlcxbGJuUWdlRDBpTVRFMU1DSWdlVDBpTUNJZ2QybGtkR2c5SWpFeE1DSWdhR1ZwWjJoMFBTSXlOQ0lnZFhWcFpEMGlZemxqWWpOaVkyRXRabVEzTWkwME1ETTBMV0ptTVdZdFlUSXdZbUl6WkRBMFpqTm1JajRLQ1FrSkNRa0pQSEJ5YjNCbGNuUjVJRzVoYldVOUltTnZiUzVxWVhOd1pYSnpiMlowTG5OMGRXUnBieTUxYm1sMExuZ2lJSFpoYkhWbFBTSndhWGhsYkNJdlBnb0pDUWtKQ1FrOGNISnZjR1Z5ZEhrZ2JtRnRaVDBpWTI5dExtcGhjM0JsY25OdlpuUXVjM1IxWkdsdkxuVnVhWFF1ZDJsa2RHZ2lJSFpoYkhWbFBTSndhWGhsYkNJdlBnb0pDUWtKQ1R3dmNtVndiM0owUld4bGJXVnVkRDRLQ1FrSkNRazhkR1Y0ZEVWc1pXMWxiblFnZEdWNGRFRnNhV2R1YldWdWREMGlRMlZ1ZEdWeUlpOCtDZ2tKQ1FrSlBIUmxlSFJHYVdWc1pFVjRjSEpsYzNOcGIyNCtQQ0ZiUTBSQlZFRmJVbVZ3YjNKMFZYUnBiSE11Y0hKbGRIUjVVSEpwYm5SR2IzSlNaWEJ2Y25Rb0pFWjdZM0psWVhSbFZHbHRaWE4wWVcxd2ZTbGRYVDQ4TDNSbGVIUkdhV1ZzWkVWNGNISmxjM05wYjI0K0Nna0pDUWs4TDNSbGVIUkdhV1ZzWkQ0S0NRa0pDVHgwWlhoMFJtbGxiR1ErQ2drSkNRa0pQSEpsY0c5eWRFVnNaVzFsYm5RZ2VEMGlNVEkyTUNJZ2VUMGlNQ0lnZDJsa2RHZzlJakV4TUNJZ2FHVnBaMmgwUFNJeU5DSWdkWFZwWkQwaU9XRTNaV1prTnprdFlXVmpOQzAwTm1SaExXRm1aalV0TldWaE56QTBZVEEzWXpKaElqNEtDUWtKQ1FrSlBIQnliM0JsY25SNUlHNWhiV1U5SW1OdmJTNXFZWE53WlhKemIyWjBMbk4wZFdScGJ5NTFibWwwTG5naUlIWmhiSFZsUFNKd2FYaGxiQ0l2UGdvSkNRa0pDUWs4Y0hKdmNHVnlkSGtnYm1GdFpUMGlZMjl0TG1waGMzQmxjbk52Wm5RdWMzUjFaR2x2TG5WdWFYUXVkMmxrZEdnaUlIWmhiSFZsUFNKd2FYaGxiQ0l2UGdvSkNRa0pDVHd2Y21Wd2IzSjBSV3hsYldWdWRENEtDUWtKQ1FrOGRHVjRkRVZzWlcxbGJuUWdkR1Y0ZEVGc2FXZHViV1Z1ZEQwaVEyVnVkR1Z5SWk4K0Nna0pDUWtKUEhSbGVIUkdhV1ZzWkVWNGNISmxjM05wYjI0K1BDRmJRMFJCVkVGYlVtVndiM0owVlhScGJITXVjSEpsZEhSNVVISnBiblJHYjNKU1pYQnZjblFvSkVaN1pHVmhaR3hwYm1WOUtWMWRQand2ZEdWNGRFWnBaV3hrUlhod2NtVnpjMmx2Ymo0S0NRa0pDVHd2ZEdWNGRFWnBaV3hrUGdvSkNRa0pQSFJsZUhSR2FXVnNaRDRLQ1FrSkNRazhjbVZ3YjNKMFJXeGxiV1Z1ZENCNFBTSXhNemN3SWlCNVBTSXdJaUIzYVdSMGFEMGlNVEV3SWlCb1pXbG5hSFE5SWpJMElpQjFkV2xrUFNJek5XUmpPV0UwT0MwMU1HSTNMVFJtWVRZdFlUUmxNUzFqWW1GbFpqSmxaVE5tTXpRaVBnb0pDUWtKQ1FrOGNISnZjR1Z5ZEhrZ2JtRnRaVDBpWTI5dExtcGhjM0JsY25OdlpuUXVjM1IxWkdsdkxuVnVhWFF1ZUNJZ2RtRnNkV1U5SW5CcGVHVnNJaTgrQ2drSkNRa0pDVHh3Y205d1pYSjBlU0J1WVcxbFBTSmpiMjB1YW1GemNHVnljMjltZEM1emRIVmthVzh1ZFc1cGRDNTNhV1IwYUNJZ2RtRnNkV1U5SW5CcGVHVnNJaTgrQ2drSkNRa0pQQzl5WlhCdmNuUkZiR1Z0Wlc1MFBnb0pDUWtKQ1R4MFpYaDBSV3hsYldWdWRDQjBaWGgwUVd4cFoyNXRaVzUwUFNKRFpXNTBaWElpTHo0S0NRa0pDUWs4ZEdWNGRFWnBaV3hrUlhod2NtVnpjMmx2Ymo0OElWdERSRUZVUVZ0U1pYQnZjblJWZEdsc2N5NXdjbVYwZEhsUWNtbHVkRVp2Y2xKbGNHOXlkQ2drUm50bGVIUmxjbTVoYkVsa2ZTbGRYVDQ4TDNSbGVIUkdhV1ZzWkVWNGNISmxjM05wYjI0K0Nna0pDUWs4TDNSbGVIUkdhV1ZzWkQ0S0NRa0pQQzltY21GdFpUNEtDUWs4TDJKaGJtUStDZ2s4TDJSbGRHRnBiRDRLUEM5cVlYTndaWEpTWlhCdmNuUStDZz09</template> + <export>xlsx</export> +</report> diff --git a/samples/samples-test/pom.xml b/samples/samples-test/pom.xml index 36b77c178a4..3ba4f199c61 100644 --- a/samples/samples-test/pom.xml +++ b/samples/samples-test/pom.xml @@ -23,7 +23,7 @@ <parent> <artifactId>parent</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <relativePath>../../build-system/pom.xml</relativePath> </parent> <scm> @@ -72,49 +72,49 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>prism</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>schema</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>common</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>task-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>model-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>model-test</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> @@ -125,7 +125,7 @@ <dependency> <groupId>com.evolveum.midpoint.tools</groupId> <artifactId>test-ng</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> @@ -152,61 +152,61 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>test-util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.provisioning</groupId> <artifactId>provisioning-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>task-quartz-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>audit-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>security-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>security-enforcer-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>model-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-test-util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-sql-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-sql-impl-test</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> @@ -217,7 +217,7 @@ <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>system-init</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> diff --git a/testing/conntest/pom.xml b/testing/conntest/pom.xml index 96b4f3a3bae..1ccf5325dc5 100644 --- a/testing/conntest/pom.xml +++ b/testing/conntest/pom.xml @@ -23,7 +23,7 @@ <parent> <artifactId>parent</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <relativePath>../../build-system/pom.xml</relativePath> </parent> <scm> @@ -60,94 +60,94 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>schema</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>prism</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>common</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>task-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.provisioning</groupId> <artifactId>provisioning-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>model-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>model-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>runtime</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>model-test</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.provisioning</groupId> <artifactId>provisioning-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>runtime</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>task-quartz-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>runtime</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>audit-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>runtime</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>security-enforcer-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>runtime</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>security-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>runtime</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-common</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>runtime</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-test-util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>org.apache.directory.api</groupId> @@ -172,7 +172,7 @@ <dependency> <groupId>com.evolveum.midpoint.tools</groupId> <artifactId>test-ng</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> @@ -195,19 +195,19 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>test-util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-sql-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-sql-impl-test</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> @@ -223,7 +223,7 @@ <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>system-init</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> diff --git a/testing/consistency-mechanism/pom.xml b/testing/consistency-mechanism/pom.xml index 5ee3c8a842e..af97f1d591d 100644 --- a/testing/consistency-mechanism/pom.xml +++ b/testing/consistency-mechanism/pom.xml @@ -22,7 +22,7 @@ <parent> <artifactId>parent</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <relativePath>../../build-system/pom.xml</relativePath> </parent> <scm> @@ -66,91 +66,91 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>prism</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>schema</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>common</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>task-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>model-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>model-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.provisioning</groupId> <artifactId>provisioning-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.provisioning</groupId> <artifactId>provisioning-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>task-quartz-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>audit-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>security-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>security-enforcer-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-test-util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> @@ -161,7 +161,7 @@ <dependency> <groupId>com.evolveum.midpoint.tools</groupId> <artifactId>test-ng</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> @@ -183,25 +183,25 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>test-util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-sql-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-sql-impl-test</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>model-test</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> @@ -212,7 +212,7 @@ <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>system-init</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> diff --git a/testing/longtest/pom.xml b/testing/longtest/pom.xml index c21e0186d53..8759ca1fd36 100644 --- a/testing/longtest/pom.xml +++ b/testing/longtest/pom.xml @@ -23,7 +23,7 @@ <parent> <artifactId>parent</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <relativePath>../../build-system/pom.xml</relativePath> </parent> <scm> @@ -60,87 +60,87 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>prism</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>schema</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>common</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>model-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>model-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>model-test</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.provisioning</groupId> <artifactId>provisioning-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>runtime</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>task-quartz-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>runtime</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>audit-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>runtime</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>task-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>security-enforcer-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>runtime</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>security-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>runtime</scope> </dependency> <dependency> <groupId>com.evolveum.icf</groupId> <artifactId>dummy-resource</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-test-util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> @@ -169,7 +169,7 @@ <dependency> <groupId>com.evolveum.midpoint.tools</groupId> <artifactId>test-ng</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> @@ -192,19 +192,19 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>test-util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-sql-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-sql-impl-test</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> @@ -220,7 +220,7 @@ <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>system-init</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> diff --git a/testing/minipoint/pom.xml b/testing/minipoint/pom.xml index 76a3c26b8ea..4f5e2eaf1ea 100644 --- a/testing/minipoint/pom.xml +++ b/testing/minipoint/pom.xml @@ -26,7 +26,7 @@ </parent> <artifactId>minipoint</artifactId> <groupId>com.evolveum.midpoint.testing</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <name>midPoint Testing - MiniPoint</name> <issueManagement> <system>Atlassian JIRA</system> @@ -38,7 +38,7 @@ <url>https://fisheye.evolveum.com/browse/midPoint</url> </scm> <properties> - <midpoint.version>3.8-SNAPSHOT</midpoint.version> + <midpoint.version>3.9-SNAPSHOT</midpoint.version> <testng.version>6.8.8</testng.version> <connid.version>1.4.0.49</connid.version> </properties> diff --git a/testing/pom.xml b/testing/pom.xml index 282f370597d..2520c03ee88 100644 --- a/testing/pom.xml +++ b/testing/pom.xml @@ -24,7 +24,7 @@ <parent> <artifactId>parent</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <relativePath>../build-system/pom.xml</relativePath> </parent> <scm> diff --git a/testing/rest/pom.xml b/testing/rest/pom.xml index 2295a28e832..4f1cfd55f05 100644 --- a/testing/rest/pom.xml +++ b/testing/rest/pom.xml @@ -20,7 +20,7 @@ <parent> <groupId>com.evolveum.midpoint</groupId> <artifactId>parent</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <relativePath>../../build-system/pom.xml</relativePath> </parent> <artifactId>rest</artifactId> @@ -43,54 +43,54 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>schema</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>prism</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>task-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>model-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>model-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>runtime</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.provisioning</groupId> <artifactId>provisioning-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.provisioning</groupId> <artifactId>provisioning-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>runtime</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>task-quartz-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>runtime</scope> </dependency> <dependency> @@ -102,13 +102,13 @@ <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>audit-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>runtime</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-test-util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> @@ -139,19 +139,19 @@ <dependency> <groupId>com.evolveum.midpoint.tools</groupId> <artifactId>test-ng</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>security-enforcer-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>security-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> @@ -173,25 +173,25 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>test-util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-sql-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-sql-impl-test</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>model-test</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> @@ -207,7 +207,7 @@ <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>system-init</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> diff --git a/testing/sanity/pom.xml b/testing/sanity/pom.xml index fc5fa9e70cc..fe93c770c51 100644 --- a/testing/sanity/pom.xml +++ b/testing/sanity/pom.xml @@ -23,7 +23,7 @@ <parent> <artifactId>parent</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <relativePath>../../build-system/pom.xml</relativePath> </parent> <scm> @@ -60,115 +60,115 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>prism</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>schema</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>common</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>task-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>model-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>model-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>model-test</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.provisioning</groupId> <artifactId>provisioning-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.provisioning</groupId> <artifactId>provisioning-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>task-quartz-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>audit-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>security-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>security-enforcer-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-test-util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>report-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>notifications-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>workflow-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> @@ -209,7 +209,7 @@ <dependency> <groupId>com.evolveum.midpoint.tools</groupId> <artifactId>test-ng</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> @@ -232,19 +232,19 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>test-util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-sql-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-sql-impl-test</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> @@ -255,7 +255,7 @@ <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>system-init</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> diff --git a/testing/selenidetest/pom.xml b/testing/selenidetest/pom.xml index 6e45398d331..c9347f1b63d 100644 --- a/testing/selenidetest/pom.xml +++ b/testing/selenidetest/pom.xml @@ -11,7 +11,7 @@ <parent> <artifactId>testing</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </parent> <scm> <connection>https://github.com/Evolveum/midpoint.git</connection> @@ -57,7 +57,7 @@ <dependency> <groupId>com.evolveum.midpoint.tools</groupId> <artifactId>test-ng</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> diff --git a/testing/story/pom.xml b/testing/story/pom.xml index 9b0945f2640..ea403cc95e5 100644 --- a/testing/story/pom.xml +++ b/testing/story/pom.xml @@ -23,7 +23,7 @@ <parent> <artifactId>parent</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <relativePath>../../build-system/pom.xml</relativePath> </parent> <scm> @@ -60,123 +60,123 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>prism</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>schema</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>common</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-cache</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>audit-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>model-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>model-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>model-common</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>workflow-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>workflow-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>runtime</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>notifications-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>notifications-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>runtime</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>model-test</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.provisioning</groupId> <artifactId>provisioning-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.provisioning</groupId> <artifactId>provisioning-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>runtime</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>task-api</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>task-quartz-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>runtime</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>audit-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>runtime</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>security-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>runtime</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-test-util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.evolveum.icf</groupId> <artifactId>dummy-resource</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> @@ -209,7 +209,7 @@ <dependency> <groupId>com.evolveum.midpoint.tools</groupId> <artifactId>test-ng</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> @@ -237,25 +237,25 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>test-util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-sql-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>security-enforcer-impl</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>repo-sql-impl-test</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> @@ -271,7 +271,7 @@ <dependency> <groupId>com.evolveum.midpoint.repo</groupId> <artifactId>system-init</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> diff --git a/testing/wstest/pom.xml b/testing/wstest/pom.xml index be40fecb6f2..de425d95b9b 100644 --- a/testing/wstest/pom.xml +++ b/testing/wstest/pom.xml @@ -22,7 +22,7 @@ <parent> <groupId>com.evolveum.midpoint</groupId> <artifactId>parent</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <relativePath>../../build-system/pom.xml</relativePath> </parent> <artifactId>wstest</artifactId> @@ -42,7 +42,7 @@ <dependency> <groupId>com.evolveum.midpoint.model</groupId> <artifactId>model-client</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> @@ -106,13 +106,13 @@ <dependency> <groupId>com.evolveum.midpoint.tools</groupId> <artifactId>test-ng</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>test-util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> @@ -123,7 +123,7 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> diff --git a/tools/midpoint-war-layout/pom.xml b/tools/midpoint-war-layout/pom.xml index 78f56c6064a..df558fbe8a9 100644 --- a/tools/midpoint-war-layout/pom.xml +++ b/tools/midpoint-war-layout/pom.xml @@ -21,7 +21,7 @@ <parent> <artifactId>tools</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> diff --git a/tools/ninja/pom.xml b/tools/ninja/pom.xml index 33b24e8a8c6..32f770cdb7f 100644 --- a/tools/ninja/pom.xml +++ b/tools/ninja/pom.xml @@ -23,12 +23,12 @@ <parent> <groupId>com.evolveum.midpoint</groupId> <artifactId>tools</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </parent> <groupId>com.evolveum.midpoint.tools</groupId> <artifactId>ninja</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <packaging>jar</packaging> <name>ninja</name> diff --git a/tools/pom.xml b/tools/pom.xml index c644e9c0e49..c6285d0abbb 100644 --- a/tools/pom.xml +++ b/tools/pom.xml @@ -24,7 +24,7 @@ <parent> <artifactId>parent</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <relativePath>../build-system/pom.xml</relativePath> </parent> <organization> diff --git a/tools/schema-dist-maven-plugin/pom.xml b/tools/schema-dist-maven-plugin/pom.xml index cd384c5fa7b..62632458187 100644 --- a/tools/schema-dist-maven-plugin/pom.xml +++ b/tools/schema-dist-maven-plugin/pom.xml @@ -25,7 +25,7 @@ <parent> <artifactId>tools</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </parent> <scm> <connection>https://github.com/Evolveum/midpoint.git</connection> @@ -72,7 +72,7 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>util</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> </dependencies> <build> diff --git a/tools/schrodinger/pom.xml b/tools/schrodinger/pom.xml index 723eabddf68..7132ce5e924 100644 --- a/tools/schrodinger/pom.xml +++ b/tools/schrodinger/pom.xml @@ -22,14 +22,14 @@ <parent> <artifactId>tools</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <groupId>com.evolveum.midpoint.tools</groupId> <artifactId>schrodinger</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <packaging>jar</packaging> <name>schrodinger</name> diff --git a/tools/test-ng/pom.xml b/tools/test-ng/pom.xml index ad17fc0972b..1461258fd81 100644 --- a/tools/test-ng/pom.xml +++ b/tools/test-ng/pom.xml @@ -24,7 +24,7 @@ <parent> <artifactId>tools</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </parent> <scm> <connection>https://github.com/Evolveum/midpoint.git</connection> diff --git a/tools/xjc-plugin/pom.xml b/tools/xjc-plugin/pom.xml index cafc3decae2..d7e13af0234 100644 --- a/tools/xjc-plugin/pom.xml +++ b/tools/xjc-plugin/pom.xml @@ -19,13 +19,13 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.evolveum.midpoint.tools</groupId> <artifactId>xjc-plugin</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <packaging>jar</packaging> <name>midPoint Infrastructure - xjc plugin</name> <parent> <artifactId>tools</artifactId> <groupId>com.evolveum.midpoint</groupId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </parent> <scm> <connection>https://github.com/Evolveum/midpoint.git</connection> @@ -36,7 +36,7 @@ <dependency> <groupId>com.evolveum.midpoint.infra</groupId> <artifactId>prism</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> </dependency> <dependency> <groupId>com.sun.xml.bind</groupId> diff --git a/weblogic-build/pom.xml b/weblogic-build/pom.xml index f9e12c6f1f0..1cc5c10b4bb 100644 --- a/weblogic-build/pom.xml +++ b/weblogic-build/pom.xml @@ -1,5 +1,5 @@ <!-- - ~ Copyright (c) 2010-2017 Evolveum + ~ Copyright (c) 2010-2018 Evolveum ~ ~ Licensed under the Apache License, Version 2.0 (the "License"); ~ you may not use this file except in compliance with the License. @@ -20,7 +20,7 @@ <groupId>com.evolveum.midpoint.dist</groupId> <artifactId>midPoint-weblogic</artifactId> <packaging>ear</packaging> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <description>midPoint distribution for WebLogic Server</description> <scm> <connection>https://github.com/Evolveum/midpoint.git</connection> @@ -31,12 +31,16 @@ <finalName>midpoint</finalName> </build> <repositories> + <repository> + <id>my-alternate-repository</id> + <url>http://myrepo.net/repo</url> + </repository> </repositories> <dependencies> <dependency> <groupId>com.evolveum.midpoint.gui</groupId> <artifactId>admin-gui</artifactId> - <version>3.8-SNAPSHOT</version> + <version>3.9-SNAPSHOT</version> <type>war</type> </dependency> <dependency> @@ -50,17 +54,6 @@ </exclusion> </exclusions> </dependency> - <dependency> - <groupId>org.apache.abdera</groupId> - <artifactId>abdera-core</artifactId> - <version>1.1.3</version> - <exclusions> - <exclusion> - <groupId>*</groupId> - <artifactId>*</artifactId> - </exclusion> - </exclusions> - </dependency> <dependency> <groupId>org.apache.abdera</groupId> <artifactId>abdera-i18n</artifactId> @@ -106,6 +99,28 @@ </exclusion> </exclusions> </dependency> + <dependency> + <groupId>javax.cache</groupId> + <artifactId>cache-api</artifactId> + <version>1.1.0</version> + <exclusions> + <exclusion> + <groupId>*</groupId> + <artifactId>*</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>org.jsr107.ri</groupId> + <artifactId>cache-ri-impl</artifactId> + <version>1.1.0</version> + <exclusions> + <exclusion> + <groupId>*</groupId> + <artifactId>*</artifactId> + </exclusion> + </exclusions> + </dependency> </dependencies> <profiles> <profile> @@ -153,6 +168,16 @@ <artifactId>commons-logging</artifactId> <bundleDir>/APP-INF/lib/</bundleDir> </jarModule> + <jarModule> + <groupId>javax.cache</groupId> + <artifactId>cache-api</artifactId> + <bundleDir>/APP-INF/lib/</bundleDir> + </jarModule> + <jarModule> + <groupId>org.jsr107.ri</groupId> + <artifactId>cache-ri-impl</artifactId> + <bundleDir>/APP-INF/lib/</bundleDir> + </jarModule> </modules> </configuration> </plugin> diff --git a/weblogic-build/src/main/app/META-INF/weblogic-application.xml b/weblogic-build/src/main/app/META-INF/weblogic-application.xml index 7433c8aa5ca..d2a48c9b45d 100644 --- a/weblogic-build/src/main/app/META-INF/weblogic-application.xml +++ b/weblogic-build/src/main/app/META-INF/weblogic-application.xml @@ -113,6 +113,8 @@ http://xmlns.oracle.com/weblogic/weblogic-application/1.0/weblogic-application.x <package-name>org.aopalliance.intercept.*</package-name> <package-name>org.jboss.logging.*</package-name> <!-- <package-name>org.w3c.dom.*</package-name> --> + + <package-name>javax.ws.rs.*</package-name> </prefer-application-packages> <prefer-application-resources> <resource-name>META-INF/services/javax.ws.rs.ext.RuntimeDelegate</resource-name>