diff --git a/.gitignore b/.gitignore index 656af3176f7..80ff21e54ce 100644 --- a/.gitignore +++ b/.gitignore @@ -16,4 +16,6 @@ dependency-reduced-pom.xml /nb-configuration.xml /nbactions.xml -.DS_Store \ No newline at end of file +.DS_Store + +tools/schrodinger/build \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index 8e1fc38dc8a..a395bfc44ab 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,7 +15,7 @@ before_install: - unzip -qq apache-maven-3.5.0-bin.zip - export M2_HOME=$PWD/apache-maven-3.5.0 - export PATH=$M2_HOME/bin:$PATH - - export MAVEN_OPTS='-Xmx4g' + - export MAVEN_OPTS='-Xmx6g' # custom script is used so build and tests are done in one mvn command, separating it (as Travis does by default) leads to problem with ConnId (notably DummyResource) script: mvn clean install @@ -26,6 +26,10 @@ addons: #packages: #- oracle-java8-installer # install newest JDK8 +env: + global: + - MALLOC_ARENA_MAX=2 + jdk: #- openjdk7 #- oraclejdk7 diff --git a/README.md b/README.md index 765ceea6ced..88659fd7135 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ Other features: - User provisioning and deprovisioning - Administration GUI -- Identity repository implemention (SQL) +- Identity repository implementation (SQL) - Custom schema extensibility - Identity synchronization (liveSync, reconciliation, discovery, import) - Support for expressions in synchronization mappings (Groovy, JavaScript, Python) @@ -35,9 +35,9 @@ Other features: - Reporting - Notifications - Local Java APIs, Remote web service interface (SOAP), REST API -- High availablity (HA) support +- High availability (HA) support -For more information bout midPoint identity manager please go to: +For more information about midPoint identity manager please go to: http://midpoint.evolveum.com/ For bugtracking system please go to: @@ -53,5 +53,5 @@ https://github.com/Evolveum/midpoint.git git@github.com:Evolveum/midpoint.git This project is developed under Apache license (version 2.0) You may get copy -of licence in LICENSE file. Please also see NOTICE file for addtional +of licence in LICENSE file. Please also see NOTICE file for additional copyright statements. diff --git a/build-system/pom.xml b/build-system/pom.xml index 34e9ab90a2a..05a7fdfabc5 100644 --- a/build-system/pom.xml +++ b/build-system/pom.xml @@ -49,7 +49,7 @@ 2.6 3.7 1.2 - 3.2.1 + 3.2.4 3.2.0 2.2.0 2.4.7 @@ -62,28 +62,29 @@ 2.3.0.e2 1.0.1 1.7.25 - 1.1.11 - 1.5.8.e1 - 4.3.12.RELEASE - 4.2.3.RELEASE - 3.4.1 + 1.2.3 + 1.5.8.e1 + 4.3.14.RELEASE + 4.2.4.RELEASE + 3.5.0 6.8.8 1.2 2.1.1 2.2.3 - 4.3.11.Final + 5.2.12.Final 1.4.193 9.4.1212.jre7 1.5.5 - 6.0.5 - 7.9.0 - 2.4.0 + 6.0.6 + 7.10.0 + 2.4.14 5.22.0 5.22.0 1.3 2.0.6 - 1.4.3.0 - 6.4.1 + 1.4.3.11 + 6.5.0 10.11.1.1 1.8.0 2.8.9 @@ -240,13 +241,12 @@ xml-apis xml-apis + + javax.annotation + jsr250-api + - - org.hibernate - hibernate-c3p0 - ${hibernate.version} - org.hibernate.javax.persistence hibernate-jpa-2.1-api @@ -255,8 +255,13 @@ com.mchange c3p0 - 0.9.2.1 + 0.9.5.2 + + com.zaxxer + HikariCP + 2.7.8 + org.slf4j jul-to-slf4j @@ -686,7 +691,7 @@ com.evolveum.polygon connector-csv - 2.1 + 2.2 com.evolveum.polygon @@ -744,6 +749,10 @@ com.mchange mchange-commons-java + + com.zaxxer + * + @@ -1161,7 +1170,7 @@ org.apache.directory.api api-all - 1.0.0-RC2 + 1.0.0 slf4j-api diff --git a/config/sql/_all/h2-3.7-all.sql b/config/sql/_all/h2-3.8-all.sql similarity index 50% rename from config/sql/_all/h2-3.7-all.sql rename to config/sql/_all/h2-3.8-all.sql index 61c3d1ba3c3..a9960fc102a 100644 --- a/config/sql/_all/h2-3.7-all.sql +++ b/config/sql/_all/h2-3.8-all.sql @@ -2,21 +2,6 @@ -- 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_abstract_role ( - approvalProcess VARCHAR(255), - 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 BOOLEAN, - riskLevel VARCHAR(255), - oid VARCHAR(36) NOT NULL, - PRIMARY KEY (oid) -); - CREATE TABLE m_acc_cert_campaign ( definitionRef_relation VARCHAR(157), definitionRef_targetOid VARCHAR(36), @@ -34,7 +19,6 @@ CREATE TABLE m_acc_cert_campaign ( oid VARCHAR(36) NOT NULL, PRIMARY KEY (oid) ); - CREATE TABLE m_acc_cert_case ( id INTEGER NOT NULL, owner_oid VARCHAR(36) NOT NULL, @@ -67,9 +51,8 @@ CREATE TABLE m_acc_cert_case ( tenantRef_relation VARCHAR(157), tenantRef_targetOid VARCHAR(36), tenantRef_type INTEGER, - PRIMARY KEY (id, owner_oid) + PRIMARY KEY (owner_oid, id) ); - CREATE TABLE m_acc_cert_definition ( handlerUri VARCHAR(255), lastCampaignClosedTimestamp TIMESTAMP, @@ -82,7 +65,6 @@ CREATE TABLE m_acc_cert_definition ( oid VARCHAR(36) NOT NULL, PRIMARY KEY (oid) ); - CREATE TABLE m_acc_cert_wi ( id INTEGER NOT NULL, owner_id INTEGER NOT NULL, @@ -94,9 +76,8 @@ CREATE TABLE m_acc_cert_wi ( performerRef_targetOid VARCHAR(36), performerRef_type INTEGER, stageNumber INTEGER, - PRIMARY KEY (id, owner_id, owner_owner_oid) + PRIMARY KEY (owner_owner_oid, owner_id, id) ); - CREATE TABLE m_acc_cert_wi_reference ( owner_id INTEGER NOT NULL, owner_owner_id INTEGER NOT NULL, @@ -104,9 +85,8 @@ CREATE TABLE m_acc_cert_wi_reference ( relation VARCHAR(157) NOT NULL, targetOid VARCHAR(36) NOT NULL, targetType INTEGER, - PRIMARY KEY (owner_id, owner_owner_id, owner_owner_owner_oid, relation, targetOid) + PRIMARY KEY (owner_owner_owner_oid, owner_owner_id, owner_id, relation, targetOid) ); - CREATE TABLE m_assignment ( id INTEGER NOT NULL, owner_oid VARCHAR(36) NOT NULL, @@ -147,84 +127,53 @@ CREATE TABLE m_assignment ( tenantRef_type INTEGER, extId INTEGER, extOid VARCHAR(36), - PRIMARY KEY (id, owner_oid) + PRIMARY KEY (owner_oid, id) ); - CREATE TABLE m_assignment_ext_boolean ( - eName VARCHAR(157) NOT NULL, - anyContainer_owner_id INTEGER NOT NULL, - anyContainer_owner_owner_oid VARCHAR(36) NOT NULL, - booleanValue BOOLEAN NOT NULL, - extensionType INTEGER, - dynamicDef BOOLEAN, - eType VARCHAR(157), - valueType INTEGER, - PRIMARY KEY (eName, anyContainer_owner_id, anyContainer_owner_owner_oid, booleanValue) + item_id INTEGER NOT NULL, + anyContainer_owner_id INTEGER NOT NULL, + anyContainer_owner_owner_oid VARCHAR(36) NOT NULL, + booleanValue BOOLEAN NOT NULL, + PRIMARY KEY (anyContainer_owner_owner_oid, anyContainer_owner_id, item_id, booleanValue) ); - CREATE TABLE m_assignment_ext_date ( - eName VARCHAR(157) NOT NULL, - anyContainer_owner_id INTEGER NOT NULL, - anyContainer_owner_owner_oid VARCHAR(36) NOT NULL, - dateValue TIMESTAMP NOT NULL, - extensionType INTEGER, - dynamicDef BOOLEAN, - eType VARCHAR(157), - valueType INTEGER, - PRIMARY KEY (eName, anyContainer_owner_id, anyContainer_owner_owner_oid, dateValue) + item_id INTEGER NOT NULL, + anyContainer_owner_id INTEGER NOT NULL, + anyContainer_owner_owner_oid VARCHAR(36) NOT NULL, + dateValue TIMESTAMP NOT NULL, + PRIMARY KEY (anyContainer_owner_owner_oid, anyContainer_owner_id, item_id, dateValue) ); - CREATE TABLE m_assignment_ext_long ( - eName VARCHAR(157) NOT NULL, - anyContainer_owner_id INTEGER NOT NULL, - anyContainer_owner_owner_oid VARCHAR(36) NOT NULL, - longValue BIGINT NOT NULL, - extensionType INTEGER, - dynamicDef BOOLEAN, - eType VARCHAR(157), - valueType INTEGER, - PRIMARY KEY (eName, anyContainer_owner_id, anyContainer_owner_owner_oid, longValue) + 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) ); - CREATE TABLE m_assignment_ext_poly ( - eName VARCHAR(157) NOT NULL, + item_id INTEGER NOT NULL, anyContainer_owner_id INTEGER NOT NULL, anyContainer_owner_owner_oid VARCHAR(36) NOT NULL, orig VARCHAR(255) NOT NULL, - extensionType INTEGER, - dynamicDef BOOLEAN, norm VARCHAR(255), - eType VARCHAR(157), - valueType INTEGER, - PRIMARY KEY (eName, anyContainer_owner_id, anyContainer_owner_owner_oid, orig) + PRIMARY KEY (anyContainer_owner_owner_oid, anyContainer_owner_id, item_id, orig) ); - CREATE TABLE m_assignment_ext_reference ( - eName VARCHAR(157) NOT NULL, - anyContainer_owner_id INTEGER NOT NULL, - anyContainer_owner_owner_oid VARCHAR(36) NOT NULL, - targetoid VARCHAR(36) NOT NULL, - extensionType INTEGER, - dynamicDef BOOLEAN, + 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, - eType VARCHAR(157), - valueType INTEGER, - PRIMARY KEY (eName, anyContainer_owner_id, anyContainer_owner_owner_oid, targetoid) + PRIMARY KEY (anyContainer_owner_owner_oid, anyContainer_owner_id, item_id, targetoid) ); - CREATE TABLE m_assignment_ext_string ( - eName VARCHAR(157) NOT NULL, + item_id INTEGER NOT NULL, anyContainer_owner_id INTEGER NOT NULL, anyContainer_owner_owner_oid VARCHAR(36) NOT NULL, stringValue VARCHAR(255) NOT NULL, - extensionType INTEGER, - dynamicDef BOOLEAN, - eType VARCHAR(157), - valueType INTEGER, - PRIMARY KEY (eName, anyContainer_owner_id, anyContainer_owner_owner_oid, stringValue) + PRIMARY KEY (anyContainer_owner_owner_oid, anyContainer_owner_id, item_id, stringValue) ); - CREATE TABLE m_assignment_extension ( owner_id INTEGER NOT NULL, owner_owner_oid VARCHAR(36) NOT NULL, @@ -234,15 +183,13 @@ CREATE TABLE m_assignment_extension ( polysCount SMALLINT, referencesCount SMALLINT, stringsCount SMALLINT, - PRIMARY KEY (owner_id, owner_owner_oid) + PRIMARY KEY (owner_owner_oid, owner_id) ); - CREATE TABLE m_assignment_policy_situation ( assignment_id INTEGER NOT NULL, assignment_oid VARCHAR(36) NOT NULL, policySituation VARCHAR(255) ); - CREATE TABLE m_assignment_reference ( owner_id INTEGER NOT NULL, owner_owner_oid VARCHAR(36) NOT NULL, @@ -250,27 +197,25 @@ CREATE TABLE m_assignment_reference ( relation VARCHAR(157) NOT NULL, targetOid VARCHAR(36) NOT NULL, targetType INTEGER, - PRIMARY KEY (owner_id, owner_owner_oid, reference_type, relation, targetOid) + PRIMARY KEY (owner_owner_oid, owner_id, reference_type, relation, targetOid) ); - CREATE TABLE m_audit_delta ( checksum VARCHAR(32) NOT NULL, record_id BIGINT NOT NULL, - delta CLOB, + delta BLOB, deltaOid VARCHAR(36), deltaType INTEGER, - fullResult CLOB, + 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 (checksum, record_id) + PRIMARY KEY (record_id, checksum) ); - CREATE TABLE m_audit_event ( - id BIGINT NOT NULL, + id BIGINT GENERATED BY DEFAULT AS IDENTITY, attorneyName VARCHAR(255), attorneyOid VARCHAR(36), channel VARCHAR(255), @@ -292,158 +237,78 @@ CREATE TABLE m_audit_event ( 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(900) NOT NULL, + changedItemPath VARCHAR(255) NOT NULL, record_id BIGINT NOT NULL, - PRIMARY KEY (changedItemPath, record_id) + PRIMARY KEY (record_id, changedItemPath) ); - CREATE TABLE m_audit_prop_value ( - id BIGINT NOT NULL, + 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 NOT NULL, + id BIGINT GENERATED BY DEFAULT AS IDENTITY, name VARCHAR(255), - oid 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 ( - name_norm VARCHAR(255), - name_orig VARCHAR(255), - oid VARCHAR(36) NOT NULL, - PRIMARY KEY (oid) -); - -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) -); - -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) +CREATE TABLE m_case_wi ( + id INTEGER NOT NULL, + owner_oid VARCHAR(36) NOT NULL, + closeTimestamp TIMESTAMP, + deadline TIMESTAMP, + 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) +); +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) ); - CREATE TABLE m_connector_target_system ( connector_oid VARCHAR(36) NOT NULL, targetSystemType VARCHAR(255) ); - -CREATE TABLE m_exclusion ( - id INTEGER NOT NULL, - owner_oid VARCHAR(36) NOT NULL, - policy INTEGER, - targetRef_relation VARCHAR(157), - targetRef_targetOid VARCHAR(36), - targetRef_type INTEGER, - PRIMARY KEY (id, owner_oid) -); - -CREATE TABLE m_focus ( - administrativeStatus INTEGER, - archiveTimestamp TIMESTAMP, - disableReason VARCHAR(255), - disableTimestamp TIMESTAMP, - effectiveStatus INTEGER, - enableTimestamp TIMESTAMP, - validFrom TIMESTAMP, - validTo TIMESTAMP, - validityChangeTimestamp TIMESTAMP, - validityStatus INTEGER, - hasPhoto BOOLEAN DEFAULT FALSE NOT NULL, - oid VARCHAR(36) NOT NULL, - PRIMARY KEY (oid) +CREATE TABLE m_ext_item ( + id INTEGER GENERATED BY DEFAULT AS IDENTITY, + kind INTEGER, + itemName VARCHAR(157), + itemType VARCHAR(157), + PRIMARY KEY (id) ); - CREATE TABLE m_focus_photo ( owner_oid VARCHAR(36) NOT NULL, photo BLOB, PRIMARY KEY (owner_oid) ); - CREATE TABLE m_focus_policy_situation ( focus_oid VARCHAR(36) NOT NULL, policySituation VARCHAR(255) ); - -CREATE TABLE m_form ( - name_norm VARCHAR(255), - name_orig VARCHAR(255), - oid VARCHAR(36) NOT NULL, - PRIMARY KEY (oid) -); - -CREATE TABLE m_function_library ( - name_norm VARCHAR(255), - name_orig VARCHAR(255), - oid VARCHAR(36) NOT NULL, - PRIMARY KEY (oid) -); - -CREATE TABLE m_generic_object ( - name_norm VARCHAR(255), - name_orig VARCHAR(255), - objectType VARCHAR(255), - oid VARCHAR(36) NOT NULL, - PRIMARY KEY (oid) -); - -CREATE TABLE m_lookup_table ( - name_norm VARCHAR(255), - name_orig VARCHAR(255), - oid VARCHAR(36) NOT NULL, - PRIMARY KEY (oid) -); - -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 TIMESTAMP, - row_value VARCHAR(255), - PRIMARY KEY (id, owner_oid) -); - -CREATE TABLE m_node ( - name_norm VARCHAR(255), - name_orig VARCHAR(255), - nodeIdentifier VARCHAR(255), - oid VARCHAR(36) NOT NULL, - PRIMARY KEY (oid) -); - CREATE TABLE m_object ( oid VARCHAR(36) NOT NULL, booleansCount SMALLINT, @@ -473,90 +338,60 @@ CREATE TABLE m_object ( version INTEGER NOT NULL, PRIMARY KEY (oid) ); - CREATE TABLE m_object_ext_boolean ( - eName VARCHAR(157) NOT NULL, - owner_oid VARCHAR(36) NOT NULL, - ownerType INTEGER NOT NULL, - booleanValue BOOLEAN NOT NULL, - dynamicDef BOOLEAN, - eType VARCHAR(157), - valueType INTEGER, - PRIMARY KEY (eName, owner_oid, ownerType, booleanValue) + item_id INTEGER NOT NULL, + owner_oid VARCHAR(36) NOT NULL, + ownerType INTEGER NOT NULL, + booleanValue BOOLEAN NOT NULL, + PRIMARY KEY (owner_oid, ownerType, item_id, booleanValue) ); - CREATE TABLE m_object_ext_date ( - eName VARCHAR(157) NOT NULL, - owner_oid VARCHAR(36) NOT NULL, - ownerType INTEGER NOT NULL, - dateValue TIMESTAMP NOT NULL, - dynamicDef BOOLEAN, - eType VARCHAR(157), - valueType INTEGER, - PRIMARY KEY (eName, owner_oid, ownerType, dateValue) + item_id INTEGER NOT NULL, + owner_oid VARCHAR(36) NOT NULL, + ownerType INTEGER NOT NULL, + dateValue TIMESTAMP NOT NULL, + PRIMARY KEY (owner_oid, ownerType, item_id, dateValue) ); - CREATE TABLE m_object_ext_long ( - eName VARCHAR(157) NOT NULL, - owner_oid VARCHAR(36) NOT NULL, - ownerType INTEGER NOT NULL, - longValue BIGINT NOT NULL, - dynamicDef BOOLEAN, - eType VARCHAR(157), - valueType INTEGER, - PRIMARY KEY (eName, owner_oid, ownerType, longValue) + 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) ); - CREATE TABLE m_object_ext_poly ( - eName VARCHAR(157) NOT NULL, - owner_oid VARCHAR(36) NOT NULL, - ownerType INTEGER NOT NULL, - orig VARCHAR(255) NOT NULL, - dynamicDef BOOLEAN, - norm VARCHAR(255), - eType VARCHAR(157), - valueType INTEGER, - PRIMARY KEY (eName, owner_oid, ownerType, orig) + 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) ); - CREATE TABLE m_object_ext_reference ( - eName VARCHAR(157) NOT NULL, - owner_oid VARCHAR(36) NOT NULL, - ownerType INTEGER NOT NULL, - targetoid VARCHAR(36) NOT NULL, - dynamicDef BOOLEAN, + 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, - eType VARCHAR(157), - valueType INTEGER, - PRIMARY KEY (eName, owner_oid, ownerType, targetoid) + PRIMARY KEY (owner_oid, ownerType, item_id, targetoid) ); - CREATE TABLE m_object_ext_string ( - eName VARCHAR(157) NOT NULL, + item_id INTEGER NOT NULL, owner_oid VARCHAR(36) NOT NULL, ownerType INTEGER NOT NULL, stringValue VARCHAR(255) NOT NULL, - dynamicDef BOOLEAN, - eType VARCHAR(157), - valueType INTEGER, - PRIMARY KEY (eName, owner_oid, ownerType, stringValue) + PRIMARY KEY (owner_oid, ownerType, item_id, stringValue) ); - -CREATE TABLE m_object_template ( - name_norm VARCHAR(255), - name_orig VARCHAR(255), - type INTEGER, - oid VARCHAR(36) NOT NULL, - PRIMARY KEY (oid) +CREATE TABLE m_object_subtype ( + object_oid VARCHAR(36) NOT NULL, + subType VARCHAR(255) ); - CREATE TABLE m_object_text_info ( owner_oid VARCHAR(36) NOT NULL, text VARCHAR(255) NOT NULL, PRIMARY KEY (owner_oid, text) ); - CREATE TABLE m_operation_execution ( id INTEGER NOT NULL, owner_oid VARCHAR(36) NOT NULL, @@ -568,33 +403,18 @@ CREATE TABLE m_operation_execution ( taskRef_targetOid VARCHAR(36), taskRef_type INTEGER, timestampValue TIMESTAMP, - PRIMARY KEY (id, owner_oid) -); - -CREATE TABLE m_org ( - costCenter VARCHAR(255), - displayOrder INTEGER, - locality_norm VARCHAR(255), - locality_orig VARCHAR(255), - name_norm VARCHAR(255), - name_orig VARCHAR(255), - tenant BOOLEAN, - oid VARCHAR(36) NOT NULL, - PRIMARY KEY (oid) + PRIMARY KEY (owner_oid, id) ); - 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) ); - CREATE TABLE m_org_org_type ( org_oid VARCHAR(36) NOT NULL, orgType VARCHAR(255) ); - CREATE TABLE m_reference ( owner_oid VARCHAR(36) NOT NULL, reference_type INTEGER NOT NULL, @@ -603,77 +423,10 @@ CREATE TABLE m_reference ( targetType INTEGER, PRIMARY KEY (owner_oid, reference_type, relation, targetOid) ); - -CREATE TABLE m_report ( - export INTEGER, - name_norm VARCHAR(255), - name_orig VARCHAR(255), - orientation INTEGER, - parent BOOLEAN, - useHibernateSession BOOLEAN, - oid VARCHAR(36) NOT NULL, - PRIMARY KEY (oid) -); - -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) -); - -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) -); - -CREATE TABLE m_role ( - name_norm VARCHAR(255), - name_orig VARCHAR(255), - roleType VARCHAR(255), - oid VARCHAR(36) NOT NULL, - PRIMARY KEY (oid) -); - -CREATE TABLE m_security_policy ( - name_norm VARCHAR(255), - name_orig VARCHAR(255), - oid VARCHAR(36) NOT NULL, - PRIMARY KEY (oid) -); - -CREATE TABLE m_sequence ( - name_norm VARCHAR(255), - name_orig VARCHAR(255), - oid VARCHAR(36) NOT NULL, - PRIMARY KEY (oid) -); - -CREATE TABLE m_service ( - displayOrder INTEGER, - locality_norm VARCHAR(255), - locality_orig VARCHAR(255), - name_norm VARCHAR(255), - name_orig VARCHAR(255), - oid VARCHAR(36) NOT NULL, - PRIMARY KEY (oid) -); - CREATE TABLE m_service_type ( service_oid VARCHAR(36) NOT NULL, serviceType VARCHAR(255) ); - CREATE TABLE m_shadow ( attemptNumber INTEGER, dead BOOLEAN, @@ -695,38 +448,30 @@ CREATE TABLE m_shadow ( oid VARCHAR(36) NOT NULL, PRIMARY KEY (oid) ); - -CREATE TABLE m_system_configuration ( - name_norm VARCHAR(255), - name_orig VARCHAR(255), - oid VARCHAR(36) NOT NULL, - PRIMARY KEY (oid) -); - CREATE TABLE m_task ( - binding INTEGER, - canRunOnNode VARCHAR(255), - category VARCHAR(255), - completionTimestamp TIMESTAMP, - executionStatus INTEGER, - handlerUri VARCHAR(255), - lastRunFinishTimestamp TIMESTAMP, - lastRunStartTimestamp TIMESTAMP, - 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, + binding INTEGER, + canRunOnNode VARCHAR(255), + category VARCHAR(255), + completionTimestamp TIMESTAMP, + executionStatus INTEGER, + handlerUri VARCHAR(255), + lastRunFinishTimestamp TIMESTAMP, + lastRunStartTimestamp TIMESTAMP, + 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 TIMESTAMP, wfObjectRef_relation VARCHAR(157), wfObjectRef_targetOid VARCHAR(36), @@ -739,28 +484,224 @@ CREATE TABLE m_task ( wfTargetRef_relation VARCHAR(157), wfTargetRef_targetOid VARCHAR(36), wfTargetRef_type INTEGER, - oid VARCHAR(36) NOT NULL, + oid VARCHAR(36) NOT NULL, PRIMARY KEY (oid) ); - CREATE TABLE m_task_dependent ( task_oid VARCHAR(36) NOT NULL, dependent VARCHAR(255) ); - -CREATE TABLE m_trigger ( - id INTEGER NOT NULL, - owner_oid VARCHAR(36) NOT NULL, - handlerUri VARCHAR(255), - timestampValue TIMESTAMP, - PRIMARY KEY (id, owner_oid) +CREATE TABLE m_user_employee_type ( + user_oid VARCHAR(36) NOT NULL, + employeeType VARCHAR(255) +); +CREATE TABLE m_user_organization ( + user_oid VARCHAR(36) NOT NULL, + norm VARCHAR(255), + orig VARCHAR(255) +); +CREATE TABLE m_user_organizational_unit ( + user_oid VARCHAR(36) NOT NULL, + norm VARCHAR(255), + orig VARCHAR(255) +); +CREATE TABLE m_abstract_role ( + approvalProcess VARCHAR(255), + 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 BOOLEAN, + riskLevel VARCHAR(255), + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +); +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) +); +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) +); +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) +); +CREATE TABLE m_focus ( + administrativeStatus INTEGER, + archiveTimestamp TIMESTAMP, + disableReason VARCHAR(255), + disableTimestamp TIMESTAMP, + effectiveStatus INTEGER, + enableTimestamp TIMESTAMP, + validFrom TIMESTAMP, + validTo TIMESTAMP, + validityChangeTimestamp TIMESTAMP, + validityStatus INTEGER, + costCenter VARCHAR(255), + emailAddress VARCHAR(255), + 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, + PRIMARY KEY (oid) +); +CREATE TABLE m_form ( + name_norm VARCHAR(255), + name_orig VARCHAR(255), + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +); +CREATE TABLE m_function_library ( + name_norm VARCHAR(255), + name_orig VARCHAR(255), + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +); +CREATE TABLE m_generic_object ( + name_norm VARCHAR(255), + name_orig VARCHAR(255), + objectType VARCHAR(255), + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +); +CREATE TABLE m_lookup_table ( + name_norm VARCHAR(255), + name_orig VARCHAR(255), + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +); +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 TIMESTAMP, + row_value VARCHAR(255), + PRIMARY KEY (owner_oid, id) +); +CREATE TABLE m_node ( + name_norm VARCHAR(255), + name_orig VARCHAR(255), + nodeIdentifier 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) +); +CREATE TABLE m_org ( + displayOrder INTEGER, + name_norm VARCHAR(255), + name_orig VARCHAR(255), + tenant BOOLEAN, + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +); +CREATE TABLE m_report ( + export INTEGER, + name_norm VARCHAR(255), + name_orig VARCHAR(255), + orientation INTEGER, + parent BOOLEAN, + useHibernateSession BOOLEAN, + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +); +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) +); +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) +); +CREATE TABLE m_role ( + name_norm VARCHAR(255), + name_orig VARCHAR(255), + roleType VARCHAR(255), + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +); +CREATE TABLE m_security_policy ( + name_norm VARCHAR(255), + name_orig VARCHAR(255), + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +); +CREATE TABLE m_sequence ( + name_norm VARCHAR(255), + name_orig VARCHAR(255), + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +); +CREATE TABLE m_service ( + displayOrder INTEGER, + name_norm VARCHAR(255), + name_orig VARCHAR(255), + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +); +CREATE TABLE m_system_configuration ( + name_norm VARCHAR(255), + name_orig VARCHAR(255), + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +); +CREATE TABLE m_trigger ( + id INTEGER NOT NULL, + owner_oid VARCHAR(36) NOT NULL, + handlerUri VARCHAR(255), + timestampValue TIMESTAMP, + PRIMARY KEY (owner_oid, id) ); - CREATE TABLE m_user ( additionalName_norm VARCHAR(255), additionalName_orig VARCHAR(255), - costCenter VARCHAR(255), - emailAddress VARCHAR(255), employeeNumber VARCHAR(255), familyName_norm VARCHAR(255), familyName_orig VARCHAR(255), @@ -772,592 +713,424 @@ CREATE TABLE m_user ( honorificPrefix_orig VARCHAR(255), honorificSuffix_norm VARCHAR(255), honorificSuffix_orig VARCHAR(255), - locale VARCHAR(255), - locality_norm VARCHAR(255), - locality_orig VARCHAR(255), name_norm VARCHAR(255), name_orig VARCHAR(255), nickName_norm VARCHAR(255), nickName_orig VARCHAR(255), - preferredLanguage VARCHAR(255), - status INTEGER, - telephoneNumber VARCHAR(255), - timezone VARCHAR(255), title_norm VARCHAR(255), title_orig VARCHAR(255), oid VARCHAR(36) NOT NULL, PRIMARY KEY (oid) ); - -CREATE TABLE m_user_employee_type ( - user_oid VARCHAR(36) NOT NULL, - employeeType VARCHAR(255) -); - -CREATE TABLE m_user_organization ( - user_oid VARCHAR(36) NOT NULL, - norm VARCHAR(255), - orig VARCHAR(255) -); - -CREATE TABLE m_user_organizational_unit ( - user_oid VARCHAR(36) NOT NULL, - norm VARCHAR(255), - orig VARCHAR(255) -); - CREATE TABLE m_value_policy ( name_norm VARCHAR(255), name_orig VARCHAR(255), oid VARCHAR(36) NOT NULL, PRIMARY KEY (oid) ); - -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 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); - + 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 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 (extensionType, eName, booleanValue); - -CREATE INDEX iAExtensionDate ON m_assignment_ext_date (extensionType, eName, dateValue); - -CREATE INDEX iAExtensionLong ON m_assignment_ext_long (extensionType, eName, longValue); - -CREATE INDEX iAExtensionPolyString ON m_assignment_ext_poly (extensionType, eName, orig); - -CREATE INDEX iAExtensionReference ON m_assignment_ext_reference (extensionType, eName, targetoid); - -CREATE INDEX iAExtensionString ON m_assignment_ext_string (extensionType, eName, stringValue); - -CREATE INDEX iAssignmentReferenceTargetOid ON m_assignment_reference (targetOid); - -CREATE INDEX iTimestampValue ON m_audit_event (timestampValue); - -CREATE INDEX iChangedItemPath ON m_audit_item (changedItemPath); - + 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 iTimestampValue + ON m_audit_event (timestampValue); +CREATE INDEX iChangedItemPath + ON m_audit_item (changedItemPath); 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); +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); - + 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); - + 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); - + ADD CONSTRAINT uc_lookup_name UNIQUE (name_norm); ALTER TABLE m_lookup_table_row -ADD CONSTRAINT uc_row_key UNIQUE (owner_oid, row_key); - + 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 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 (ownerType, eName, booleanValue); - -CREATE INDEX iExtensionBooleanDef ON m_object_ext_boolean (owner_oid, ownerType); - -CREATE INDEX iExtensionDate ON m_object_ext_date (ownerType, eName, dateValue); - -CREATE INDEX iExtensionDateDef ON m_object_ext_date (owner_oid, ownerType); - -CREATE INDEX iExtensionLong ON m_object_ext_long (ownerType, eName, longValue); - -CREATE INDEX iExtensionLongDef ON m_object_ext_long (owner_oid, ownerType); - -CREATE INDEX iExtensionPolyString ON m_object_ext_poly (ownerType, eName, orig); - -CREATE INDEX iExtensionPolyStringDef ON m_object_ext_poly (owner_oid, ownerType); - -CREATE INDEX iExtensionReference ON m_object_ext_reference (ownerType, eName, targetoid); - -CREATE INDEX iExtensionReferenceDef ON m_object_ext_reference (owner_oid, ownerType); - -CREATE INDEX iExtensionString ON m_object_ext_string (ownerType, eName, stringValue); - -CREATE INDEX iExtensionStringDef ON m_object_ext_string (owner_oid, ownerType); - + ADD CONSTRAINT uc_node_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 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); - + 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 iDisplayOrder ON m_org (displayOrder); - -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 iReferenceTargetOid ON m_reference (targetOid); - + 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 iReportParent ON m_report (parent); - + 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); - + 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); - + 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); - + 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 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); - + 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); - -ALTER TABLE m_task - ADD CONSTRAINT uc_task_identifier UNIQUE (taskIdentifier); - -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 iTriggerTimestamp ON m_trigger (timestampValue); - + 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 iEmployeeNumber ON m_user (employeeNumber); - -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 iLocality ON m_user (locality_orig); - + 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_abstract_role -ADD CONSTRAINT fk_abstract_role -FOREIGN KEY (oid) -REFERENCES m_focus; - + 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; - + 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; - + 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; - + 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_id, owner_owner_oid) -REFERENCES m_acc_cert_case; - + 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_id, owner_owner_id, owner_owner_owner_oid) -REFERENCES m_acc_cert_wi; - + 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; - + ADD CONSTRAINT fk_assignment_owner FOREIGN KEY (owner_oid) REFERENCES m_object; ALTER TABLE m_assignment_ext_boolean -ADD CONSTRAINT fk_assignment_ext_boolean -FOREIGN KEY (anyContainer_owner_id, anyContainer_owner_owner_oid) -REFERENCES m_assignment_extension; - + 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; ALTER TABLE m_assignment_ext_date -ADD CONSTRAINT fk_assignment_ext_date -FOREIGN KEY (anyContainer_owner_id, anyContainer_owner_owner_oid) -REFERENCES m_assignment_extension; - + 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; ALTER TABLE m_assignment_ext_long -ADD CONSTRAINT fk_assignment_ext_long -FOREIGN KEY (anyContainer_owner_id, anyContainer_owner_owner_oid) -REFERENCES m_assignment_extension; - + 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; ALTER TABLE m_assignment_ext_poly -ADD CONSTRAINT fk_assignment_ext_poly -FOREIGN KEY (anyContainer_owner_id, anyContainer_owner_owner_oid) -REFERENCES m_assignment_extension; - + 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; ALTER TABLE m_assignment_ext_reference -ADD CONSTRAINT fk_assignment_ext_reference -FOREIGN KEY (anyContainer_owner_id, anyContainer_owner_owner_oid) -REFERENCES m_assignment_extension; - + 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; ALTER TABLE m_assignment_ext_string -ADD CONSTRAINT fk_assignment_ext_string -FOREIGN KEY (anyContainer_owner_id, anyContainer_owner_owner_oid) -REFERENCES m_assignment_extension; - + 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; ALTER TABLE m_assignment_policy_situation - ADD CONSTRAINT fk_assignment_policy_situation -FOREIGN KEY (assignment_id, assignment_oid) -REFERENCES m_assignment; - + 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_id, owner_owner_oid) -REFERENCES m_assignment; - + 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; - + 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; - + 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; - + 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 - ADD CONSTRAINT fk_case -FOREIGN KEY (oid) -REFERENCES m_object; - -ALTER TABLE m_connector -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; - + 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 + 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; - -ALTER TABLE m_exclusion -ADD CONSTRAINT fk_exclusion_owner -FOREIGN KEY (owner_oid) -REFERENCES m_object; - -ALTER TABLE m_focus -ADD CONSTRAINT fk_focus -FOREIGN KEY (oid) -REFERENCES m_object; - + 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; - + 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; - -ALTER TABLE m_form - 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; - -ALTER TABLE m_generic_object -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; - -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; - + ADD CONSTRAINT fk_focus_policy_situation FOREIGN KEY (focus_oid) REFERENCES m_focus; ALTER TABLE m_object_ext_boolean -ADD CONSTRAINT fk_object_ext_boolean -FOREIGN KEY (owner_oid) -REFERENCES m_object; - + 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; ALTER TABLE m_object_ext_date -ADD CONSTRAINT fk_object_ext_date -FOREIGN KEY (owner_oid) -REFERENCES m_object; - + 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; ALTER TABLE m_object_ext_long -ADD CONSTRAINT fk_object_ext_long -FOREIGN KEY (owner_oid) -REFERENCES m_object; - + 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; ALTER TABLE m_object_ext_poly -ADD CONSTRAINT fk_object_ext_poly -FOREIGN KEY (owner_oid) -REFERENCES m_object; - + 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; ALTER TABLE m_object_ext_reference -ADD CONSTRAINT fk_object_ext_reference -FOREIGN KEY (owner_oid) -REFERENCES m_object; - + 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; ALTER TABLE m_object_ext_string -ADD CONSTRAINT fk_object_ext_string -FOREIGN KEY (owner_oid) -REFERENCES m_object; - -ALTER TABLE m_object_template -ADD CONSTRAINT fk_object_template -FOREIGN KEY (oid) -REFERENCES m_object; - + 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; +ALTER TABLE m_object_subtype + 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; - + 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; - -ALTER TABLE m_org -ADD CONSTRAINT fk_org -FOREIGN KEY (oid) -REFERENCES m_abstract_role; - + 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; - + 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; - + 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; - + 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; - + 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; +ALTER TABLE m_shadow + ADD CONSTRAINT fk_shadow FOREIGN KEY (oid) REFERENCES m_object; +ALTER TABLE m_task + 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; +ALTER TABLE m_user_employee_type + 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; +ALTER TABLE m_user_organizational_unit + 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; +ALTER TABLE m_case + ADD CONSTRAINT fk_case FOREIGN KEY (oid) REFERENCES m_object; +ALTER TABLE m_connector + 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; +ALTER TABLE m_focus + ADD CONSTRAINT fk_focus FOREIGN KEY (oid) REFERENCES m_object; +ALTER TABLE m_form + 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; +ALTER TABLE m_generic_object + 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; +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_template + 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; ALTER TABLE m_report -ADD CONSTRAINT fk_report -FOREIGN KEY (oid) -REFERENCES m_object; - + 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; - + 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; - + 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; - + 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; - + 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; - + 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; - -ALTER TABLE m_service_type - 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; - + 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; - -ALTER TABLE m_task -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; - + 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; - + 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; - -ALTER TABLE m_user_employee_type -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; - -ALTER TABLE m_user_organizational_unit -ADD CONSTRAINT fk_user_org_unit -FOREIGN KEY (user_oid) -REFERENCES m_user; - + 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; - -CREATE SEQUENCE hibernate_sequence START WITH 1 INCREMENT BY 1; + ADD CONSTRAINT fk_value_policy FOREIGN KEY (oid) REFERENCES m_object; -commit; +COMMIT; diff --git a/config/sql/_all/h2-upgrade-3.6-3.7-quartz.sql b/config/sql/_all/h2-upgrade-3.6-3.7-quartz.sql deleted file mode 100644 index 38d4561b4d0..00000000000 --- a/config/sql/_all/h2-upgrade-3.6-3.7-quartz.sql +++ /dev/null @@ -1,2 +0,0 @@ -ALTER TABLE QRTZ_TRIGGERS ADD COLUMN EXECUTION_GROUP VARCHAR(200) NULL; -ALTER TABLE QRTZ_FIRED_TRIGGERS ADD COLUMN EXECUTION_GROUP VARCHAR(200) NULL; diff --git a/config/sql/_all/h2-upgrade-3.6-3.7.sql b/config/sql/_all/h2-upgrade-3.6-3.7.sql deleted file mode 100644 index 209cf598545..00000000000 --- a/config/sql/_all/h2-upgrade-3.6-3.7.sql +++ /dev/null @@ -1,29 +0,0 @@ -CREATE TABLE m_function_library ( - name_norm VARCHAR(255), - name_orig VARCHAR(255), - oid VARCHAR(36) NOT NULL, - PRIMARY KEY (oid) -); - -ALTER TABLE m_function_library - ADD CONSTRAINT uc_function_library_name UNIQUE (name_norm); - -ALTER TABLE m_function_library - ADD CONSTRAINT fk_function_library -FOREIGN KEY (oid) -REFERENCES m_object; - -ALTER TABLE m_abstract_role ADD COLUMN autoassign_enabled BOOLEAN; - -CREATE INDEX iAutoassignEnabled - ON m_abstract_role (autoassign_enabled); - -ALTER TABLE m_task - ADD CONSTRAINT uc_task_identifier UNIQUE (taskIdentifier); - -ALTER TABLE m_audit_event ADD COLUMN attorneyName VARCHAR(255); -ALTER TABLE m_audit_event ADD COLUMN attorneyOid VARCHAR(36); -ALTER TABLE m_audit_event ADD COLUMN initiatorType INTEGER; - -CREATE INDEX iOpExecOwnerOid - ON m_operation_execution (owner_oid); diff --git a/config/sql/_all/h2-upgrade-3.7-3.8.sql b/config/sql/_all/h2-upgrade-3.7-3.8.sql new file mode 100644 index 00000000000..1cdde2c3b66 --- /dev/null +++ b/config/sql/_all/h2-upgrade-3.7-3.8.sql @@ -0,0 +1,8 @@ +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/mysql-3.8-all-utf8mb4.sql b/config/sql/_all/mysql-3.8-all-utf8mb4.sql new file mode 100644 index 00000000000..9ff42cc5799 --- /dev/null +++ b/config/sql/_all/mysql-3.8-all-utf8mb4.sql @@ -0,0 +1,2116 @@ +-- 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) CHARSET utf8 COLLATE utf8_bin, + definitionRef_type INTEGER, + endTimestamp DATETIME(6), + handlerUri VARCHAR(255), + name_norm VARCHAR(191), + name_orig VARCHAR(191), + ownerRef_relation VARCHAR(157), + ownerRef_targetOid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin , + ownerRef_type INTEGER, + stageNumber INTEGER, + startTimestamp DATETIME(6), + state INTEGER, + 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_acc_cert_case ( + id INTEGER NOT NULL, + owner_oid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin 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) CHARSET utf8 COLLATE utf8_bin , + objectRef_type INTEGER, + orgRef_relation VARCHAR(157), + orgRef_targetOid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin , + 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) CHARSET utf8 COLLATE utf8_bin , + targetRef_type INTEGER, + tenantRef_relation VARCHAR(157), + tenantRef_targetOid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin , + tenantRef_type INTEGER, + PRIMARY KEY (owner_oid, id) +) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; +CREATE TABLE m_acc_cert_definition ( + handlerUri VARCHAR(255), + lastCampaignClosedTimestamp DATETIME(6), + lastCampaignStartedTimestamp DATETIME(6), + name_norm VARCHAR(191), + name_orig VARCHAR(191), + ownerRef_relation VARCHAR(157), + ownerRef_targetOid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin, + ownerRef_type INTEGER, + 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_acc_cert_wi ( + id INTEGER NOT NULL, + owner_id INTEGER NOT NULL, + owner_owner_oid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin NOT NULL, + closeTimestamp DATETIME(6), + outcome VARCHAR(255), + outputChangeTimestamp DATETIME(6), + performerRef_relation VARCHAR(157), + performerRef_targetOid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin , + performerRef_type INTEGER, + stageNumber INTEGER, + PRIMARY KEY (owner_owner_oid, owner_id, id) +) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_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) CHARSET utf8 COLLATE utf8_bin NOT NULL, + relation VARCHAR(157) NOT NULL, + targetOid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin NOT NULL, + targetType INTEGER, + PRIMARY KEY (owner_owner_owner_oid, owner_owner_id, owner_id, relation, targetOid) +) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; +CREATE TABLE m_assignment ( + id INTEGER NOT NULL, + owner_oid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin 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) CHARSET utf8 COLLATE utf8_bin , + creatorRef_type INTEGER, + lifecycleState VARCHAR(255), + modifierRef_relation VARCHAR(157), + modifierRef_targetOid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin , + modifierRef_type INTEGER, + modifyChannel VARCHAR(255), + modifyTimestamp DATETIME(6), + orderValue INTEGER, + orgRef_relation VARCHAR(157), + orgRef_targetOid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin , + orgRef_type INTEGER, + resourceRef_relation VARCHAR(157), + resourceRef_targetOid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin , + resourceRef_type INTEGER, + targetRef_relation VARCHAR(157), + targetRef_targetOid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin , + targetRef_type INTEGER, + tenantRef_relation VARCHAR(157), + tenantRef_targetOid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin , + tenantRef_type INTEGER, + extId INTEGER, + extOid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin , + PRIMARY KEY (owner_oid, id) +) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_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) CHARSET utf8 COLLATE utf8_bin NOT NULL, + booleanValue BIT NOT NULL, + PRIMARY KEY (anyContainer_owner_owner_oid, anyContainer_owner_id, item_id, booleanValue) +) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_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) CHARSET utf8 COLLATE utf8_bin NOT NULL, + dateValue DATETIME(6) NOT NULL, + PRIMARY KEY (anyContainer_owner_owner_oid, anyContainer_owner_id, item_id, dateValue) +) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_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) CHARSET utf8 COLLATE utf8_bin NOT NULL, + longValue BIGINT NOT NULL, + PRIMARY KEY (anyContainer_owner_owner_oid, anyContainer_owner_id, item_id, longValue) +) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_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) CHARSET utf8 COLLATE utf8_bin NOT NULL, + orig VARCHAR(191) NOT NULL, + norm VARCHAR(191), + PRIMARY KEY (anyContainer_owner_owner_oid, anyContainer_owner_id, item_id, orig) +) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_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) CHARSET utf8 COLLATE utf8_bin NOT NULL, + targetoid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin NOT NULL, + relation VARCHAR(157), + targetType INTEGER, + PRIMARY KEY (anyContainer_owner_owner_oid, anyContainer_owner_id, item_id, targetoid) +) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_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) CHARSET utf8 COLLATE utf8_bin NOT NULL, + stringValue VARCHAR(191) NOT NULL, + PRIMARY KEY (anyContainer_owner_owner_oid, anyContainer_owner_id, item_id, stringValue) +) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; +CREATE TABLE m_assignment_extension ( + owner_id INTEGER NOT NULL, + owner_owner_oid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin NOT NULL, + booleansCount SMALLINT, + datesCount SMALLINT, + longsCount SMALLINT, + polysCount SMALLINT, + referencesCount SMALLINT, + stringsCount SMALLINT, + PRIMARY KEY (owner_owner_oid, owner_id) +) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; +CREATE TABLE m_assignment_policy_situation ( + assignment_id INTEGER NOT NULL, + assignment_oid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin NOT NULL, + policySituation VARCHAR(255) +) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; +CREATE TABLE m_assignment_reference ( + owner_id INTEGER NOT NULL, + owner_owner_oid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin NOT NULL, + reference_type INTEGER NOT NULL, + relation VARCHAR(157) NOT NULL, + targetOid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin NOT NULL, + targetType INTEGER, + PRIMARY KEY (owner_owner_oid, owner_id, reference_type, relation, targetOid) +) + 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, + closeTimestamp DATETIME(6), + deadline DATETIME(6), + originalAssigneeRef_relation VARCHAR(157), + originalAssigneeRef_targetOid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin, + originalAssigneeRef_type INTEGER, + outcome VARCHAR(255), + performerRef_relation VARCHAR(157), + performerRef_targetOid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin, + performerRef_type INTEGER, + stageNumber INTEGER, + PRIMARY KEY (owner_oid, id) +) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; +CREATE TABLE m_case_wi_reference ( + owner_id INTEGER NOT NULL, + owner_owner_oid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin NOT NULL, + relation VARCHAR(157) NOT NULL, + targetOid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin NOT NULL, + targetType INTEGER, + PRIMARY KEY (owner_owner_oid, owner_id, targetOid, relation) +) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; +CREATE TABLE m_connector_target_system ( + connector_oid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin NOT NULL, + targetSystemType VARCHAR(255) +) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_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 utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; +CREATE TABLE m_focus_photo ( + owner_oid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin NOT NULL, + photo LONGBLOB, + PRIMARY KEY (owner_oid) +) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; +CREATE TABLE m_focus_policy_situation ( + focus_oid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin NOT NULL, + policySituation VARCHAR(255) +) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; +CREATE TABLE m_object ( + oid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin NOT NULL, + booleansCount SMALLINT, + createChannel VARCHAR(255), + createTimestamp DATETIME(6), + creatorRef_relation VARCHAR(157), + creatorRef_targetOid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin , + creatorRef_type INTEGER, + datesCount SMALLINT, + fullObject LONGBLOB, + lifecycleState VARCHAR(191), + longsCount SMALLINT, + modifierRef_relation VARCHAR(157), + modifierRef_targetOid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin , + modifierRef_type INTEGER, + modifyChannel VARCHAR(255), + modifyTimestamp DATETIME(6), + name_norm VARCHAR(191), + name_orig VARCHAR(191), + objectTypeClass INTEGER, + polysCount SMALLINT, + referencesCount SMALLINT, + stringsCount SMALLINT, + tenantRef_relation VARCHAR(157), + tenantRef_targetOid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin , + tenantRef_type INTEGER, + version INTEGER NOT NULL, + PRIMARY KEY (oid) +) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; +CREATE TABLE m_object_ext_boolean ( + item_id INTEGER NOT NULL, + owner_oid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin NOT NULL, + ownerType INTEGER NOT NULL, + booleanValue BIT NOT NULL, + PRIMARY KEY (owner_oid, ownerType, item_id, booleanValue) +) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; +CREATE TABLE m_object_ext_date ( + item_id INTEGER NOT NULL, + owner_oid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin NOT NULL, + ownerType INTEGER NOT NULL, + dateValue DATETIME(6) NOT NULL, + PRIMARY KEY (owner_oid, ownerType, item_id, dateValue) +) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; +CREATE TABLE m_object_ext_long ( + item_id INTEGER NOT NULL, + owner_oid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin NOT NULL, + ownerType INTEGER NOT NULL, + longValue BIGINT NOT NULL, + PRIMARY KEY (owner_oid, ownerType, item_id, longValue) +) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; +CREATE TABLE m_object_ext_poly ( + item_id INTEGER NOT NULL, + owner_oid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin NOT NULL, + ownerType INTEGER NOT NULL, + orig VARCHAR(191) NOT NULL, + norm VARCHAR(191), + PRIMARY KEY (owner_oid, ownerType, item_id, orig) +) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; +CREATE TABLE m_object_ext_reference ( + item_id INTEGER NOT NULL, + owner_oid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin NOT NULL, + ownerType INTEGER NOT NULL, + targetoid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin NOT NULL, + relation VARCHAR(157), + targetType INTEGER, + PRIMARY KEY (owner_oid, ownerType, item_id, targetoid) +) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; +CREATE TABLE m_object_ext_string ( + item_id INTEGER NOT NULL, + owner_oid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin NOT NULL, + ownerType INTEGER NOT NULL, + stringValue VARCHAR(191) NOT NULL, + PRIMARY KEY (owner_oid, ownerType, item_id, stringValue) +) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; +CREATE TABLE m_object_subtype ( + object_oid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin NOT NULL, + subType VARCHAR(255) +) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; +CREATE TABLE m_object_text_info ( + owner_oid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin NOT NULL, + text VARCHAR(191) NOT NULL, + PRIMARY KEY (owner_oid, text) +) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; +CREATE TABLE m_operation_execution ( + id INTEGER NOT NULL, + owner_oid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin NOT NULL, + initiatorRef_relation VARCHAR(157), + initiatorRef_targetOid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin , + initiatorRef_type INTEGER, + status INTEGER, + taskRef_relation VARCHAR(157), + taskRef_targetOid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin , + taskRef_type INTEGER, + timestampValue DATETIME(6), + PRIMARY KEY (owner_oid, id) +) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; +CREATE TABLE m_org_closure ( + ancestor_oid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin NOT NULL, + descendant_oid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin NOT NULL, + val INTEGER, + PRIMARY KEY (ancestor_oid, descendant_oid) +) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; +CREATE TABLE m_org_org_type ( + org_oid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin NOT NULL, + orgType VARCHAR(255) +) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; +CREATE TABLE m_reference ( + owner_oid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin NOT NULL, + reference_type INTEGER NOT NULL, + relation VARCHAR(157) NOT NULL, + targetOid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin NOT NULL, + targetType INTEGER, + PRIMARY KEY (owner_oid, reference_type, relation, targetOid) +) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; +CREATE TABLE m_service_type ( + service_oid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin NOT NULL, + serviceType VARCHAR(255) +) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; +CREATE TABLE m_shadow ( + attemptNumber INTEGER, + dead BIT, + exist BIT, + failedOperationType INTEGER, + fullSynchronizationTimestamp DATETIME(6), + intent VARCHAR(191), + kind INTEGER, + name_norm VARCHAR(191), + name_orig VARCHAR(191), + objectClass VARCHAR(157), + pendingOperationCount INTEGER, + resourceRef_relation VARCHAR(157), + resourceRef_targetOid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin , + resourceRef_type INTEGER, + status INTEGER, + synchronizationSituation INTEGER, + synchronizationTimestamp DATETIME(6), + 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_task ( + binding INTEGER, + canRunOnNode VARCHAR(255), + category VARCHAR(255), + completionTimestamp DATETIME(6), + executionStatus INTEGER, + handlerUri VARCHAR(255), + lastRunFinishTimestamp DATETIME(6), + lastRunStartTimestamp DATETIME(6), + name_norm VARCHAR(191), + name_orig VARCHAR(191), + node VARCHAR(255), + objectRef_relation VARCHAR(157), + objectRef_targetOid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin , + objectRef_type INTEGER, + ownerRef_relation VARCHAR(157), + ownerRef_targetOid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin , + ownerRef_type INTEGER, + parent VARCHAR(191), + recurrence INTEGER, + status INTEGER, + taskIdentifier VARCHAR(191), + threadStopAction INTEGER, + waitingReason INTEGER, + wfEndTimestamp DATETIME(6), + wfObjectRef_relation VARCHAR(157), + wfObjectRef_targetOid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin , + wfObjectRef_type INTEGER, + wfProcessInstanceId VARCHAR(191), + wfRequesterRef_relation VARCHAR(157), + wfRequesterRef_targetOid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin , + wfRequesterRef_type INTEGER, + wfStartTimestamp DATETIME(6), + wfTargetRef_relation VARCHAR(157), + wfTargetRef_targetOid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin , + wfTargetRef_type INTEGER, + 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_task_dependent ( + task_oid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin NOT NULL, + dependent VARCHAR(255) +) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; +CREATE TABLE m_user_employee_type ( + user_oid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin NOT NULL, + employeeType VARCHAR(255) +) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; +CREATE TABLE m_user_organization ( + user_oid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin NOT NULL, + norm VARCHAR(255), + orig VARCHAR(255) +) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; +CREATE TABLE m_user_organizational_unit ( + user_oid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin NOT NULL, + norm VARCHAR(255), + orig VARCHAR(255) +) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; +CREATE TABLE m_abstract_role ( + approvalProcess VARCHAR(255), + autoassign_enabled BIT, + displayName_norm VARCHAR(255), + displayName_orig VARCHAR(255), + identifier VARCHAR(191), + ownerRef_relation VARCHAR(157), + ownerRef_targetOid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin , + ownerRef_type INTEGER, + requestable BIT, + riskLevel VARCHAR(255), + 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_case ( + name_norm VARCHAR(191), + name_orig VARCHAR(191), + objectRef_relation VARCHAR(157), + objectRef_targetOid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin, + objectRef_type INTEGER, + state VARCHAR(255), + 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_connector ( + connectorBundle VARCHAR(255), + connectorHostRef_relation VARCHAR(157), + connectorHostRef_targetOid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin , + connectorHostRef_type INTEGER, + connectorType VARCHAR(255), + connectorVersion VARCHAR(255), + framework VARCHAR(255), + 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_connector_host ( + hostname VARCHAR(255), + name_norm VARCHAR(191), + name_orig VARCHAR(191), + port VARCHAR(255), + 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_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(191), + preferredLanguage VARCHAR(255), + telephoneNumber VARCHAR(255), + timezone VARCHAR(255), + 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_form ( + 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_function_library ( + 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_generic_object ( + name_norm VARCHAR(191), + name_orig VARCHAR(191), + objectType VARCHAR(255), + 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_lookup_table ( + 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_lookup_table_row ( + id INTEGER NOT NULL, + owner_oid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin NOT NULL, + row_key VARCHAR(191), + label_norm VARCHAR(255), + label_orig VARCHAR(255), + lastChangeTimestamp DATETIME(6), + row_value VARCHAR(255), + PRIMARY KEY (owner_oid, id) +) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; +CREATE TABLE m_node ( + name_norm VARCHAR(191), + name_orig VARCHAR(191), + nodeIdentifier VARCHAR(255), + 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), + type INTEGER, + 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_org ( + displayOrder INTEGER, + name_norm VARCHAR(191), + name_orig VARCHAR(191), + tenant BIT, + 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_report ( + export INTEGER, + name_norm VARCHAR(191), + name_orig VARCHAR(191), + orientation INTEGER, + parent BIT, + useHibernateSession BIT, + 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_report_output ( + name_norm VARCHAR(191), + name_orig VARCHAR(191), + reportRef_relation VARCHAR(157), + reportRef_targetOid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin , + reportRef_type INTEGER, + 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_resource ( + administrativeState INTEGER, + connectorRef_relation VARCHAR(157), + connectorRef_targetOid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin , + connectorRef_type INTEGER, + name_norm VARCHAR(191), + name_orig VARCHAR(191), + o16_lastAvailabilityStatus INTEGER, + 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_role ( + name_norm VARCHAR(191), + name_orig VARCHAR(191), + roleType VARCHAR(255), + 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_security_policy ( + 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_sequence ( + 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_service ( + displayOrder INTEGER, + 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_system_configuration ( + 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_trigger ( + id INTEGER NOT NULL, + owner_oid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin NOT NULL, + handlerUri VARCHAR(255), + timestampValue DATETIME(6), + PRIMARY KEY (owner_oid, id) +) + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_bin + ENGINE = InnoDB; +CREATE TABLE m_user ( + additionalName_norm VARCHAR(255), + additionalName_orig VARCHAR(255), + employeeNumber VARCHAR(191), + familyName_norm VARCHAR(191), + familyName_orig VARCHAR(191), + fullName_norm VARCHAR(191), + fullName_orig VARCHAR(191), + givenName_norm VARCHAR(191), + givenName_orig VARCHAR(191), + honorificPrefix_norm VARCHAR(255), + honorificPrefix_orig VARCHAR(255), + honorificSuffix_norm VARCHAR(255), + honorificSuffix_orig VARCHAR(255), + name_norm VARCHAR(191), + name_orig VARCHAR(191), + nickName_norm VARCHAR(255), + nickName_orig VARCHAR(255), + title_norm VARCHAR(255), + title_orig VARCHAR(255), + 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_value_policy ( + 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 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 iTimestampValue + ON m_audit_event (timestampValue); +CREATE INDEX iChangedItemPath + ON m_audit_item (changedItemPath); +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); +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 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_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(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.7-all.sql b/config/sql/_all/mysql-3.8-all.sql similarity index 68% rename from config/sql/_all/mysql-3.7-all.sql rename to config/sql/_all/mysql-3.8-all.sql index c8ccfc2caff..970c5a71271 100644 --- a/config/sql/_all/mysql-3.7-all.sql +++ b/config/sql/_all/mysql-3.8-all.sql @@ -1,33 +1,4 @@ -# use for db create -# CREATE DATABASE -# CHARACTER SET utf8 -# DEFAULT CHARACTER SET utf8 -# COLLATE utf8_bin -# DEFAULT COLLATE utf8_bin -# ; - -# replace "ENGINE=InnoDB" with "DEFAULT CHARACTER SET utf8 COLLATE utf8_bin ENGINE=InnoDB" -# replace "DATETIME" with "DATETIME(6)" - -# remove iAncestor and iDescendant index, they are the same as FK for that fields - -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; +-- remove iAncestor and iDescendant index, they are the same as FK for that fields CREATE TABLE m_acc_cert_campaign ( definitionRef_relation VARCHAR(157), @@ -49,7 +20,6 @@ CREATE TABLE m_acc_cert_campaign ( 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, @@ -82,12 +52,11 @@ CREATE TABLE m_acc_cert_case ( tenantRef_relation VARCHAR(157), tenantRef_targetOid VARCHAR(36), tenantRef_type INTEGER, - PRIMARY KEY (id, owner_oid) + 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), @@ -103,7 +72,6 @@ CREATE TABLE m_acc_cert_definition ( DEFAULT CHARACTER SET utf8 COLLATE utf8_bin ENGINE = InnoDB; - CREATE TABLE m_acc_cert_wi ( id INTEGER NOT NULL, owner_id INTEGER NOT NULL, @@ -115,12 +83,11 @@ CREATE TABLE m_acc_cert_wi ( performerRef_targetOid VARCHAR(36), performerRef_type INTEGER, stageNumber INTEGER, - PRIMARY KEY (id, owner_id, owner_owner_oid) + 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, @@ -128,12 +95,11 @@ CREATE TABLE m_acc_cert_wi_reference ( relation VARCHAR(157) NOT NULL, targetOid VARCHAR(36) NOT NULL, targetType INTEGER, - PRIMARY KEY (owner_id, owner_owner_id, owner_owner_owner_oid, relation, targetOid) + 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, @@ -174,105 +140,74 @@ CREATE TABLE m_assignment ( tenantRef_type INTEGER, extId INTEGER, extOid VARCHAR(36), - PRIMARY KEY (id, owner_oid) + PRIMARY KEY (owner_oid, id) ) DEFAULT CHARACTER SET utf8 COLLATE utf8_bin ENGINE = InnoDB; - CREATE TABLE m_assignment_ext_boolean ( - eName VARCHAR(157) NOT NULL, - anyContainer_owner_id INTEGER NOT NULL, - anyContainer_owner_owner_oid VARCHAR(36) NOT NULL, - booleanValue BIT NOT NULL, - extensionType INTEGER, - dynamicDef BIT, - eType VARCHAR(157), - valueType INTEGER, - PRIMARY KEY (eName, anyContainer_owner_id, anyContainer_owner_owner_oid, booleanValue) + 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 ( - eName VARCHAR(157) NOT NULL, - anyContainer_owner_id INTEGER NOT NULL, - anyContainer_owner_owner_oid VARCHAR(36) NOT NULL, - dateValue DATETIME(6) NOT NULL, - extensionType INTEGER, - dynamicDef BIT, - eType VARCHAR(157), - valueType INTEGER, - PRIMARY KEY (eName, anyContainer_owner_id, anyContainer_owner_owner_oid, dateValue) + 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 ( - eName VARCHAR(157) NOT NULL, - anyContainer_owner_id INTEGER NOT NULL, - anyContainer_owner_owner_oid VARCHAR(36) NOT NULL, - longValue BIGINT NOT NULL, - extensionType INTEGER, - dynamicDef BIT, - eType VARCHAR(157), - valueType INTEGER, - PRIMARY KEY (eName, anyContainer_owner_id, anyContainer_owner_owner_oid, longValue) + 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 ( - eName VARCHAR(157) NOT NULL, + item_id INTEGER NOT NULL, anyContainer_owner_id INTEGER NOT NULL, anyContainer_owner_owner_oid VARCHAR(36) NOT NULL, orig VARCHAR(255) NOT NULL, - extensionType INTEGER, - dynamicDef BIT, norm VARCHAR(255), - eType VARCHAR(157), - valueType INTEGER, - PRIMARY KEY (eName, anyContainer_owner_id, anyContainer_owner_owner_oid, orig) + 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 ( - eName VARCHAR(157) NOT NULL, - anyContainer_owner_id INTEGER NOT NULL, - anyContainer_owner_owner_oid VARCHAR(36) NOT NULL, - targetoid VARCHAR(36) NOT NULL, - extensionType INTEGER, - dynamicDef BIT, + 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, - eType VARCHAR(157), - valueType INTEGER, - PRIMARY KEY (eName, anyContainer_owner_id, anyContainer_owner_owner_oid, targetoid) + 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 ( - eName VARCHAR(157) NOT NULL, + item_id INTEGER NOT NULL, anyContainer_owner_id INTEGER NOT NULL, anyContainer_owner_owner_oid VARCHAR(36) NOT NULL, stringValue VARCHAR(255) NOT NULL, - extensionType INTEGER, - dynamicDef BIT, - eType VARCHAR(157), - valueType INTEGER, - PRIMARY KEY (eName, anyContainer_owner_id, anyContainer_owner_owner_oid, stringValue) + 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, @@ -282,12 +217,11 @@ CREATE TABLE m_assignment_extension ( polysCount SMALLINT, referencesCount SMALLINT, stringsCount SMALLINT, - PRIMARY KEY (owner_id, owner_owner_oid) + 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, @@ -296,7 +230,6 @@ CREATE TABLE m_assignment_policy_situation ( 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, @@ -304,33 +237,31 @@ CREATE TABLE m_assignment_reference ( relation VARCHAR(157) NOT NULL, targetOid VARCHAR(36) NOT NULL, targetType INTEGER, - PRIMARY KEY (owner_id, owner_owner_oid, reference_type, relation, targetOid) + 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 LONGTEXT, - deltaOid VARCHAR(36), - deltaType INTEGER, - fullResult LONGTEXT, + 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 (checksum, record_id) + 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, + id BIGINT NOT NULL AUTO_INCREMENT, attorneyName VARCHAR(255), attorneyOid VARCHAR(36), channel VARCHAR(255), @@ -352,6 +283,7 @@ CREATE TABLE m_audit_event ( targetOid VARCHAR(36), targetOwnerName VARCHAR(255), targetOwnerOid VARCHAR(36), + targetOwnerType INTEGER, targetType INTEGER, taskIdentifier VARCHAR(255), taskOID VARCHAR(255), @@ -361,18 +293,16 @@ CREATE TABLE m_audit_event ( 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 (changedItemPath, record_id) + PRIMARY KEY (record_id, changedItemPath) ) DEFAULT CHARACTER SET utf8 COLLATE utf8_bin ENGINE = InnoDB; - CREATE TABLE m_audit_prop_value ( - id BIGINT NOT NULL, + id BIGINT NOT NULL AUTO_INCREMENT, name VARCHAR(255), record_id BIGINT, value VARCHAR(1024), @@ -381,11 +311,10 @@ CREATE TABLE m_audit_prop_value ( DEFAULT CHARACTER SET utf8 COLLATE utf8_bin ENGINE = InnoDB; - CREATE TABLE m_audit_ref_value ( - id BIGINT NOT NULL, + id BIGINT NOT NULL AUTO_INCREMENT, name VARCHAR(255), - oid VARCHAR(255), + oid VARCHAR(36), record_id BIGINT, targetName_norm VARCHAR(255), targetName_orig VARCHAR(255), @@ -395,46 +324,35 @@ CREATE TABLE m_audit_ref_value ( DEFAULT CHARACTER SET utf8 COLLATE utf8_bin ENGINE = InnoDB; - -CREATE TABLE m_case ( - 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 ( - 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) +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_connector_host ( - hostname VARCHAR(255), - name_norm VARCHAR(255), - name_orig VARCHAR(255), - port VARCHAR(255), - oid VARCHAR(36) NOT NULL, - PRIMARY KEY (oid) +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) @@ -442,39 +360,16 @@ CREATE TABLE m_connector_target_system ( DEFAULT CHARACTER SET utf8 COLLATE utf8_bin ENGINE = InnoDB; - -CREATE TABLE m_exclusion ( - id INTEGER NOT NULL, - owner_oid VARCHAR(36) NOT NULL, - policy INTEGER, - targetRef_relation VARCHAR(157), - targetRef_targetOid VARCHAR(36), - targetRef_type INTEGER, - PRIMARY KEY (id, owner_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, - hasPhoto BIT DEFAULT FALSE NOT NULL, - oid VARCHAR(36) NOT NULL, - PRIMARY KEY (oid) +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, @@ -483,7 +378,6 @@ CREATE TABLE m_focus_photo ( DEFAULT CHARACTER SET utf8 COLLATE utf8_bin ENGINE = InnoDB; - CREATE TABLE m_focus_policy_situation ( focus_oid VARCHAR(36) NOT NULL, policySituation VARCHAR(255) @@ -491,73 +385,6 @@ CREATE TABLE m_focus_policy_situation ( 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 (id, owner_oid) -) - 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 ( oid VARCHAR(36) NOT NULL, booleansCount SMALLINT, @@ -590,105 +417,76 @@ CREATE TABLE m_object ( DEFAULT CHARACTER SET utf8 COLLATE utf8_bin ENGINE = InnoDB; - CREATE TABLE m_object_ext_boolean ( - eName VARCHAR(157) NOT NULL, - owner_oid VARCHAR(36) NOT NULL, - ownerType INTEGER NOT NULL, - booleanValue BIT NOT NULL, - dynamicDef BIT, - eType VARCHAR(157), - valueType INTEGER, - PRIMARY KEY (eName, owner_oid, ownerType, booleanValue) + 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 ( - eName VARCHAR(157) NOT NULL, - owner_oid VARCHAR(36) NOT NULL, - ownerType INTEGER NOT NULL, - dateValue DATETIME(6) NOT NULL, - dynamicDef BIT, - eType VARCHAR(157), - valueType INTEGER, - PRIMARY KEY (eName, owner_oid, ownerType, dateValue) + 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 ( - eName VARCHAR(157) NOT NULL, - owner_oid VARCHAR(36) NOT NULL, - ownerType INTEGER NOT NULL, - longValue BIGINT NOT NULL, - dynamicDef BIT, - eType VARCHAR(157), - valueType INTEGER, - PRIMARY KEY (eName, owner_oid, ownerType, longValue) + 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 ( - eName VARCHAR(157) NOT NULL, - owner_oid VARCHAR(36) NOT NULL, - ownerType INTEGER NOT NULL, - orig VARCHAR(255) NOT NULL, - dynamicDef BIT, - norm VARCHAR(255), - eType VARCHAR(157), - valueType INTEGER, - PRIMARY KEY (eName, owner_oid, ownerType, orig) + 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 ( - eName VARCHAR(157) NOT NULL, - owner_oid VARCHAR(36) NOT NULL, - ownerType INTEGER NOT NULL, - targetoid VARCHAR(36) NOT NULL, - dynamicDef BIT, + 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, - eType VARCHAR(157), - valueType INTEGER, - PRIMARY KEY (eName, owner_oid, ownerType, targetoid) + PRIMARY KEY (owner_oid, ownerType, item_id, targetoid) ) DEFAULT CHARACTER SET utf8 COLLATE utf8_bin ENGINE = InnoDB; - CREATE TABLE m_object_ext_string ( - eName VARCHAR(157) NOT NULL, + item_id INTEGER NOT NULL, owner_oid VARCHAR(36) NOT NULL, ownerType INTEGER NOT NULL, stringValue VARCHAR(255) NOT NULL, - dynamicDef BIT, - eType VARCHAR(157), - valueType INTEGER, - PRIMARY KEY (eName, owner_oid, ownerType, stringValue) + PRIMARY KEY (owner_oid, ownerType, item_id, stringValue) ) 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) +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, @@ -697,7 +495,6 @@ CREATE TABLE m_object_text_info ( DEFAULT CHARACTER SET utf8 COLLATE utf8_bin ENGINE = InnoDB; - CREATE TABLE m_operation_execution ( id INTEGER NOT NULL, owner_oid VARCHAR(36) NOT NULL, @@ -709,27 +506,11 @@ CREATE TABLE m_operation_execution ( taskRef_targetOid VARCHAR(36), taskRef_type INTEGER, timestampValue DATETIME(6), - PRIMARY KEY (id, owner_oid) -) - DEFAULT CHARACTER SET utf8 - COLLATE utf8_bin - ENGINE = InnoDB; - -CREATE TABLE m_org ( - costCenter VARCHAR(255), - displayOrder INTEGER, - locality_norm VARCHAR(255), - locality_orig VARCHAR(255), - name_norm VARCHAR(255), - name_orig VARCHAR(255), - tenant BIT, - oid VARCHAR(36) NOT NULL, - PRIMARY KEY (oid) + 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, @@ -739,7 +520,6 @@ CREATE TABLE m_org_closure ( DEFAULT CHARACTER SET utf8 COLLATE utf8_bin ENGINE = InnoDB; - CREATE TABLE m_org_org_type ( org_oid VARCHAR(36) NOT NULL, orgType VARCHAR(255) @@ -747,7 +527,6 @@ CREATE TABLE m_org_org_type ( DEFAULT CHARACTER SET utf8 COLLATE utf8_bin ENGINE = InnoDB; - CREATE TABLE m_reference ( owner_oid VARCHAR(36) NOT NULL, reference_type INTEGER NOT NULL, @@ -759,61 +538,193 @@ CREATE TABLE m_reference ( 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) +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_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, +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_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 +CREATE TABLE m_task ( + binding INTEGER, + canRunOnNode VARCHAR(255), + category VARCHAR(255), + completionTimestamp DATETIME(6), + executionStatus INTEGER, + 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_role ( +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), - roleType 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_security_policy ( +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, @@ -822,8 +733,7 @@ CREATE TABLE m_security_policy ( DEFAULT CHARACTER SET utf8 COLLATE utf8_bin ENGINE = InnoDB; - -CREATE TABLE m_sequence ( +CREATE TABLE m_function_library ( name_norm VARCHAR(255), name_orig VARCHAR(255), oid VARCHAR(36) NOT NULL, @@ -832,187 +742,191 @@ CREATE TABLE m_sequence ( DEFAULT CHARACTER SET utf8 COLLATE utf8_bin ENGINE = InnoDB; - -CREATE TABLE m_service ( - displayOrder INTEGER, - locality_norm VARCHAR(255), - locality_orig VARCHAR(255), - name_norm VARCHAR(255), - name_orig VARCHAR(255), - oid VARCHAR(36) NOT NULL, +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_service_type ( - service_oid VARCHAR(36) NOT NULL, - serviceType VARCHAR(255) +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_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, +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_system_configuration ( +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_task ( - binding INTEGER, - canRunOnNode VARCHAR(255), - category VARCHAR(255), - completionTimestamp DATETIME(6), - executionStatus INTEGER, - 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, +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_task_dependent ( - task_oid VARCHAR(36) NOT NULL, - dependent VARCHAR(255) +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_trigger ( - id INTEGER NOT NULL, - owner_oid VARCHAR(36) NOT NULL, - handlerUri VARCHAR(255), - timestampValue DATETIME(6), - PRIMARY KEY (id, owner_oid) +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_user ( - additionalName_norm VARCHAR(255), - additionalName_orig VARCHAR(255), - costCenter VARCHAR(255), - emailAddress 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), - locale VARCHAR(255), - locality_norm VARCHAR(255), - locality_orig VARCHAR(255), - name_norm VARCHAR(255), - name_orig VARCHAR(255), - nickName_norm VARCHAR(255), - nickName_orig VARCHAR(255), - preferredLanguage VARCHAR(255), - status INTEGER, - telephoneNumber VARCHAR(255), - timezone VARCHAR(255), - title_norm VARCHAR(255), - title_orig VARCHAR(255), - oid VARCHAR(36) NOT NULL, +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_user_employee_type ( - user_oid VARCHAR(36) NOT NULL, - employeeType VARCHAR(255) +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_user_organization ( - user_oid VARCHAR(36) NOT NULL, - norm VARCHAR(255), - orig VARCHAR(255) +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_user_organizational_unit ( - user_oid VARCHAR(36) NOT NULL, - norm VARCHAR(255), - orig VARCHAR(255) +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), @@ -1022,559 +936,408 @@ CREATE TABLE m_value_policy ( DEFAULT CHARACTER SET utf8 COLLATE utf8_bin ENGINE = InnoDB; - -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 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); - + 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 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 (extensionType, eName, booleanValue); - -CREATE INDEX iAExtensionDate ON m_assignment_ext_date (extensionType, eName, dateValue); - -CREATE INDEX iAExtensionLong ON m_assignment_ext_long (extensionType, eName, longValue); - -CREATE INDEX iAExtensionPolyString ON m_assignment_ext_poly (extensionType, eName, orig); - -CREATE INDEX iAExtensionReference ON m_assignment_ext_reference (extensionType, eName, targetoid); - -CREATE INDEX iAExtensionString ON m_assignment_ext_string (extensionType, eName, stringValue); - -CREATE INDEX iAssignmentReferenceTargetOid ON m_assignment_reference (targetOid); - -CREATE INDEX iTimestampValue ON m_audit_event (timestampValue); - -CREATE INDEX iChangedItemPath ON m_audit_item (changedItemPath); - + 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 iTimestampValue + ON m_audit_event (timestampValue); +CREATE INDEX iChangedItemPath + ON m_audit_item (changedItemPath); 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); +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); - + 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); - + 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); - + ADD CONSTRAINT uc_lookup_name UNIQUE (name_norm); ALTER TABLE m_lookup_table_row -ADD CONSTRAINT uc_row_key UNIQUE (owner_oid, row_key); - + 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 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 (ownerType, eName, booleanValue); - -CREATE INDEX iExtensionBooleanDef ON m_object_ext_boolean (owner_oid, ownerType); - -CREATE INDEX iExtensionDate ON m_object_ext_date (ownerType, eName, dateValue); - -CREATE INDEX iExtensionDateDef ON m_object_ext_date (owner_oid, ownerType); - -CREATE INDEX iExtensionLong ON m_object_ext_long (ownerType, eName, longValue); - -CREATE INDEX iExtensionLongDef ON m_object_ext_long (owner_oid, ownerType); - -CREATE INDEX iExtensionPolyString ON m_object_ext_poly (ownerType, eName, orig); - -CREATE INDEX iExtensionPolyStringDef ON m_object_ext_poly (owner_oid, ownerType); - -CREATE INDEX iExtensionReference ON m_object_ext_reference (ownerType, eName, targetoid); - -CREATE INDEX iExtensionReferenceDef ON m_object_ext_reference (owner_oid, ownerType); - -CREATE INDEX iExtensionString ON m_object_ext_string (ownerType, eName, stringValue); - -CREATE INDEX iExtensionStringDef ON m_object_ext_string (owner_oid, ownerType); - + ADD CONSTRAINT uc_node_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 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); - + 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 iDisplayOrder ON m_org (displayOrder); - --- Not needed [FK already creates this index] --- CREATE INDEX iAncestor ON m_org_closure (ancestor_oid); - --- Not needed [FK already creates this index] --- CREATE INDEX iDescendant ON m_org_closure (descendant_oid); - -CREATE INDEX iDescendantAncestor ON m_org_closure (descendant_oid, ancestor_oid); - -CREATE INDEX iReferenceTargetOid ON m_reference (targetOid); - + 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 iReportParent ON m_report (parent); - + 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); - + 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); - + 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); - + 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 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); - + 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); - -ALTER TABLE m_task - ADD CONSTRAINT uc_task_identifier UNIQUE (taskIdentifier); - -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 iTriggerTimestamp ON m_trigger (timestampValue); - + 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 iEmployeeNumber ON m_user (employeeNumber); - -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 iLocality ON m_user (locality_orig); - + 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_abstract_role -ADD CONSTRAINT fk_abstract_role -FOREIGN KEY (oid) -REFERENCES m_focus (oid); - + 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 (oid); 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 (oid); 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 (oid); ALTER TABLE m_acc_cert_wi - ADD CONSTRAINT fk_acc_cert_wi_owner -FOREIGN KEY (owner_id, owner_owner_oid) -REFERENCES m_acc_cert_case (id, owner_oid); - + 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_id, owner_owner_id, owner_owner_owner_oid) -REFERENCES m_acc_cert_wi (id, owner_id, owner_owner_oid); - + 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); - + ADD CONSTRAINT fk_assignment_owner FOREIGN KEY (owner_oid) REFERENCES m_object (oid); ALTER TABLE m_assignment_ext_boolean -ADD CONSTRAINT fk_assignment_ext_boolean -FOREIGN KEY (anyContainer_owner_id, anyContainer_owner_owner_oid) -REFERENCES m_assignment_extension (owner_id, owner_owner_oid); - + 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_assignment_ext_date -FOREIGN KEY (anyContainer_owner_id, anyContainer_owner_owner_oid) -REFERENCES m_assignment_extension (owner_id, owner_owner_oid); - + 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_assignment_ext_long -FOREIGN KEY (anyContainer_owner_id, anyContainer_owner_owner_oid) -REFERENCES m_assignment_extension (owner_id, owner_owner_oid); - + 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_assignment_ext_poly -FOREIGN KEY (anyContainer_owner_id, anyContainer_owner_owner_oid) -REFERENCES m_assignment_extension (owner_id, owner_owner_oid); - + 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_assignment_ext_reference -FOREIGN KEY (anyContainer_owner_id, anyContainer_owner_owner_oid) -REFERENCES m_assignment_extension (owner_id, owner_owner_oid); - + 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_assignment_ext_string -FOREIGN KEY (anyContainer_owner_id, anyContainer_owner_owner_oid) -REFERENCES m_assignment_extension (owner_id, owner_owner_oid); - + 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_id, assignment_oid) -REFERENCES m_assignment (id, owner_oid); - + 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_id, owner_owner_oid) -REFERENCES m_assignment (id, owner_oid); - + 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); - + 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); - + 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); - + 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 - 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); - + 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_exclusion -ADD CONSTRAINT fk_exclusion_owner -FOREIGN KEY (owner_oid) -REFERENCES m_object (oid); - -ALTER TABLE m_focus -ADD CONSTRAINT fk_focus -FOREIGN KEY (oid) -REFERENCES m_object (oid); - + 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); - + 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_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); - + ADD CONSTRAINT fk_focus_policy_situation FOREIGN KEY (focus_oid) REFERENCES m_focus (oid); ALTER TABLE m_object_ext_boolean -ADD CONSTRAINT fk_object_ext_boolean -FOREIGN KEY (owner_oid) -REFERENCES m_object (oid); - + 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_object_ext_date -FOREIGN KEY (owner_oid) -REFERENCES m_object (oid); - + 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); - + 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_object_ext_poly -FOREIGN KEY (owner_oid) -REFERENCES m_object (oid); - + 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_object_ext_reference -FOREIGN KEY (owner_oid) -REFERENCES m_object (oid); - + 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_template -ADD CONSTRAINT fk_object_template -FOREIGN KEY (oid) -REFERENCES m_object (oid); - + 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); - + 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 -ADD CONSTRAINT fk_org -FOREIGN KEY (oid) -REFERENCES m_abstract_role (oid); - + 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); - + 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); - + 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); - + 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); - + 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_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); - + 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); - + 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); - + 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); - + 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); - + 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); - + 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_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); - + 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_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); - + 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); - + 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_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); - + 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); - -CREATE TABLE hibernate_sequence ( - next_val BIGINT -); - -INSERT INTO hibernate_sequence VALUES (1); + 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. diff --git a/config/sql/_all/mysql-upgrade-3.6-3.7.sql b/config/sql/_all/mysql-upgrade-3.6-3.7.sql deleted file mode 100644 index d27a5a7c32f..00000000000 --- a/config/sql/_all/mysql-upgrade-3.6-3.7.sql +++ /dev/null @@ -1,35 +0,0 @@ -ALTER TABLE QRTZ_TRIGGERS ADD COLUMN EXECUTION_GROUP VARCHAR(200) NULL; -ALTER TABLE QRTZ_FIRED_TRIGGERS ADD COLUMN EXECUTION_GROUP VARCHAR(200) NULL; - -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; - -ALTER TABLE m_function_library - ADD CONSTRAINT uc_function_library_name UNIQUE (name_norm); - -ALTER TABLE m_function_library - ADD CONSTRAINT fk_function_library -FOREIGN KEY (oid) -REFERENCES m_object (oid); - -ALTER TABLE m_abstract_role ADD COLUMN autoassign_enabled BIT; - -CREATE INDEX iAutoassignEnabled - ON m_abstract_role (autoassign_enabled); - -ALTER TABLE m_task - ADD CONSTRAINT uc_task_identifier UNIQUE (taskIdentifier); - -ALTER TABLE m_audit_event ADD COLUMN attorneyName VARCHAR(255); -ALTER TABLE m_audit_event ADD COLUMN attorneyOid VARCHAR(36); -ALTER TABLE m_audit_event ADD COLUMN initiatorType INTEGER; - -CREATE INDEX iOpExecOwnerOid - ON m_operation_execution (owner_oid); diff --git a/config/sql/_all/mysql-upgrade-3.7-3.8.sql b/config/sql/_all/mysql-upgrade-3.7-3.8.sql new file mode 100644 index 00000000000..4dbad12c0c3 --- /dev/null +++ b/config/sql/_all/mysql-upgrade-3.7-3.8.sql @@ -0,0 +1,12 @@ +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; + +DROP TABLE m_exclusion; diff --git a/config/sql/_all/oracle-3.7-all.sql b/config/sql/_all/oracle-3.8-all.sql similarity index 68% rename from config/sql/_all/oracle-3.7-all.sql rename to config/sql/_all/oracle-3.8-all.sql index 1c8af772c55..260e6397353 100644 --- a/config/sql/_all/oracle-3.7-all.sql +++ b/config/sql/_all/oracle-3.8-all.sql @@ -1,21 +1,3 @@ --- INITRANS added because we use serializable transactions http://docs.oracle.com/cd/B14117_01/appdev.101/b10795/adfns_sq.htm#1025374 --- replace ");" with ") INITRANS 30;" - -CREATE TABLE m_abstract_role ( - approvalProcess VARCHAR2(255 CHAR), - autoassign_enabled NUMBER(1, 0), - displayName_norm VARCHAR2(255 CHAR), - displayName_orig VARCHAR2(255 CHAR), - identifier VARCHAR2(255 CHAR), - ownerRef_relation VARCHAR2(157 CHAR), - ownerRef_targetOid VARCHAR2(36 CHAR), - ownerRef_type NUMBER(10, 0), - requestable NUMBER(1, 0), - riskLevel VARCHAR2(255 CHAR), - oid VARCHAR2(36 CHAR) NOT NULL, - PRIMARY KEY (oid) -) INITRANS 30; - CREATE TABLE m_acc_cert_campaign ( definitionRef_relation VARCHAR2(157 CHAR), definitionRef_targetOid VARCHAR2(36 CHAR), @@ -33,7 +15,6 @@ CREATE TABLE m_acc_cert_campaign ( oid VARCHAR2(36 CHAR) NOT NULL, PRIMARY KEY (oid) ) INITRANS 30; - CREATE TABLE m_acc_cert_case ( id NUMBER(10, 0) NOT NULL, owner_oid VARCHAR2(36 CHAR) NOT NULL, @@ -66,9 +47,8 @@ CREATE TABLE m_acc_cert_case ( tenantRef_relation VARCHAR2(157 CHAR), tenantRef_targetOid VARCHAR2(36 CHAR), tenantRef_type NUMBER(10, 0), - PRIMARY KEY (id, owner_oid) + PRIMARY KEY (owner_oid, id) ) INITRANS 30; - CREATE TABLE m_acc_cert_definition ( handlerUri VARCHAR2(255 CHAR), lastCampaignClosedTimestamp TIMESTAMP, @@ -81,7 +61,6 @@ CREATE TABLE m_acc_cert_definition ( oid VARCHAR2(36 CHAR) NOT NULL, PRIMARY KEY (oid) ) INITRANS 30; - CREATE TABLE m_acc_cert_wi ( id NUMBER(10, 0) NOT NULL, owner_id NUMBER(10, 0) NOT NULL, @@ -93,9 +72,8 @@ CREATE TABLE m_acc_cert_wi ( performerRef_targetOid VARCHAR2(36 CHAR), performerRef_type NUMBER(10, 0), stageNumber NUMBER(10, 0), - PRIMARY KEY (id, owner_id, owner_owner_oid) + PRIMARY KEY (owner_owner_oid, owner_id, id) ) INITRANS 30; - CREATE TABLE m_acc_cert_wi_reference ( owner_id NUMBER(10, 0) NOT NULL, owner_owner_id NUMBER(10, 0) NOT NULL, @@ -103,9 +81,8 @@ CREATE TABLE m_acc_cert_wi_reference ( relation VARCHAR2(157 CHAR) NOT NULL, targetOid VARCHAR2(36 CHAR) NOT NULL, targetType NUMBER(10, 0), - PRIMARY KEY (owner_id, owner_owner_id, owner_owner_owner_oid, relation, targetOid) + PRIMARY KEY (owner_owner_owner_oid, owner_owner_id, owner_id, relation, targetOid) ) INITRANS 30; - CREATE TABLE m_assignment ( id NUMBER(10, 0) NOT NULL, owner_oid VARCHAR2(36 CHAR) NOT NULL, @@ -146,84 +123,53 @@ CREATE TABLE m_assignment ( tenantRef_type NUMBER(10, 0), extId NUMBER(10, 0), extOid VARCHAR2(36 CHAR), - PRIMARY KEY (id, owner_oid) + PRIMARY KEY (owner_oid, id) ) INITRANS 30; - CREATE TABLE m_assignment_ext_boolean ( - eName VARCHAR2(157 CHAR) NOT NULL, - anyContainer_owner_id NUMBER(10, 0) NOT NULL, - anyContainer_owner_owner_oid VARCHAR2(36 CHAR) NOT NULL, - booleanValue NUMBER(1, 0) NOT NULL, - extensionType NUMBER(10, 0), - dynamicDef NUMBER(1, 0), - eType VARCHAR2(157 CHAR), - valueType NUMBER(10, 0), - PRIMARY KEY (eName, anyContainer_owner_id, anyContainer_owner_owner_oid, booleanValue) + item_id NUMBER(10, 0) NOT NULL, + anyContainer_owner_id NUMBER(10, 0) NOT NULL, + anyContainer_owner_owner_oid VARCHAR2(36 CHAR) NOT NULL, + booleanValue NUMBER(1, 0) NOT NULL, + PRIMARY KEY (anyContainer_owner_owner_oid, anyContainer_owner_id, item_id, booleanValue) ) INITRANS 30; - CREATE TABLE m_assignment_ext_date ( - eName VARCHAR2(157 CHAR) NOT NULL, - anyContainer_owner_id NUMBER(10, 0) NOT NULL, - anyContainer_owner_owner_oid VARCHAR2(36 CHAR) NOT NULL, - dateValue TIMESTAMP NOT NULL, - extensionType NUMBER(10, 0), - dynamicDef NUMBER(1, 0), - eType VARCHAR2(157 CHAR), - valueType NUMBER(10, 0), - PRIMARY KEY (eName, anyContainer_owner_id, anyContainer_owner_owner_oid, dateValue) + item_id NUMBER(10, 0) NOT NULL, + anyContainer_owner_id NUMBER(10, 0) NOT NULL, + anyContainer_owner_owner_oid VARCHAR2(36 CHAR) NOT NULL, + dateValue TIMESTAMP NOT NULL, + PRIMARY KEY (anyContainer_owner_owner_oid, anyContainer_owner_id, item_id, dateValue) ) INITRANS 30; - CREATE TABLE m_assignment_ext_long ( - eName VARCHAR2(157 CHAR) NOT NULL, - anyContainer_owner_id NUMBER(10, 0) NOT NULL, - anyContainer_owner_owner_oid VARCHAR2(36 CHAR) NOT NULL, - longValue NUMBER(19, 0) NOT NULL, - extensionType NUMBER(10, 0), - dynamicDef NUMBER(1, 0), - eType VARCHAR2(157 CHAR), - valueType NUMBER(10, 0), - PRIMARY KEY (eName, anyContainer_owner_id, anyContainer_owner_owner_oid, longValue) + item_id NUMBER(10, 0) NOT NULL, + anyContainer_owner_id NUMBER(10, 0) NOT NULL, + anyContainer_owner_owner_oid VARCHAR2(36 CHAR) NOT NULL, + longValue NUMBER(19, 0) NOT NULL, + PRIMARY KEY (anyContainer_owner_owner_oid, anyContainer_owner_id, item_id, longValue) ) INITRANS 30; - CREATE TABLE m_assignment_ext_poly ( - eName VARCHAR2(157 CHAR) NOT NULL, + item_id NUMBER(10, 0) NOT NULL, anyContainer_owner_id NUMBER(10, 0) NOT NULL, anyContainer_owner_owner_oid VARCHAR2(36 CHAR) NOT NULL, orig VARCHAR2(255 CHAR) NOT NULL, - extensionType NUMBER(10, 0), - dynamicDef NUMBER(1, 0), norm VARCHAR2(255 CHAR), - eType VARCHAR2(157 CHAR), - valueType NUMBER(10, 0), - PRIMARY KEY (eName, anyContainer_owner_id, anyContainer_owner_owner_oid, orig) + PRIMARY KEY (anyContainer_owner_owner_oid, anyContainer_owner_id, item_id, orig) ) INITRANS 30; - CREATE TABLE m_assignment_ext_reference ( - eName VARCHAR2(157 CHAR) NOT NULL, - anyContainer_owner_id NUMBER(10, 0) NOT NULL, - anyContainer_owner_owner_oid VARCHAR2(36 CHAR) NOT NULL, - targetoid VARCHAR2(36 CHAR) NOT NULL, - extensionType NUMBER(10, 0), - dynamicDef NUMBER(1, 0), + item_id NUMBER(10, 0) NOT NULL, + anyContainer_owner_id NUMBER(10, 0) NOT NULL, + anyContainer_owner_owner_oid VARCHAR2(36 CHAR) NOT NULL, + targetoid VARCHAR2(36 CHAR) NOT NULL, relation VARCHAR2(157 CHAR), targetType NUMBER(10, 0), - eType VARCHAR2(157 CHAR), - valueType NUMBER(10, 0), - PRIMARY KEY (eName, anyContainer_owner_id, anyContainer_owner_owner_oid, targetoid) + PRIMARY KEY (anyContainer_owner_owner_oid, anyContainer_owner_id, item_id, targetoid) ) INITRANS 30; - CREATE TABLE m_assignment_ext_string ( - eName VARCHAR2(157 CHAR) NOT NULL, + item_id NUMBER(10, 0) NOT NULL, anyContainer_owner_id NUMBER(10, 0) NOT NULL, anyContainer_owner_owner_oid VARCHAR2(36 CHAR) NOT NULL, stringValue VARCHAR2(255 CHAR) NOT NULL, - extensionType NUMBER(10, 0), - dynamicDef NUMBER(1, 0), - eType VARCHAR2(157 CHAR), - valueType NUMBER(10, 0), - PRIMARY KEY (eName, anyContainer_owner_id, anyContainer_owner_owner_oid, stringValue) + PRIMARY KEY (anyContainer_owner_owner_oid, anyContainer_owner_id, item_id, stringValue) ) INITRANS 30; - CREATE TABLE m_assignment_extension ( owner_id NUMBER(10, 0) NOT NULL, owner_owner_oid VARCHAR2(36 CHAR) NOT NULL, @@ -233,15 +179,13 @@ CREATE TABLE m_assignment_extension ( polysCount NUMBER(5, 0), referencesCount NUMBER(5, 0), stringsCount NUMBER(5, 0), - PRIMARY KEY (owner_id, owner_owner_oid) + PRIMARY KEY (owner_owner_oid, owner_id) ) INITRANS 30; - CREATE TABLE m_assignment_policy_situation ( assignment_id NUMBER(10, 0) NOT NULL, assignment_oid VARCHAR2(36 CHAR) NOT NULL, policySituation VARCHAR2(255 CHAR) ) INITRANS 30; - CREATE TABLE m_assignment_reference ( owner_id NUMBER(10, 0) NOT NULL, owner_owner_oid VARCHAR2(36 CHAR) NOT NULL, @@ -249,27 +193,25 @@ CREATE TABLE m_assignment_reference ( relation VARCHAR2(157 CHAR) NOT NULL, targetOid VARCHAR2(36 CHAR) NOT NULL, targetType NUMBER(10, 0), - PRIMARY KEY (owner_id, owner_owner_oid, reference_type, relation, targetOid) + 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 CLOB, - deltaOid VARCHAR2(36 CHAR), - deltaType NUMBER(10, 0), - fullResult CLOB, + 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 (checksum, record_id) + status NUMBER(10, 0), + PRIMARY KEY (record_id, checksum) ) INITRANS 30; - CREATE TABLE m_audit_event ( - id NUMBER(19, 0) NOT NULL, + id NUMBER(19, 0) GENERATED AS IDENTITY, attorneyName VARCHAR2(255 CHAR), attorneyOid VARCHAR2(36 CHAR), channel VARCHAR2(255 CHAR), @@ -291,158 +233,78 @@ CREATE TABLE m_audit_event ( 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(900 CHAR) NOT NULL, + changedItemPath VARCHAR2(255 CHAR) NOT NULL, record_id NUMBER(19, 0) NOT NULL, - PRIMARY KEY (changedItemPath, record_id) + PRIMARY KEY (record_id, changedItemPath) ) INITRANS 30; - CREATE TABLE m_audit_prop_value ( - id NUMBER(19, 0) NOT NULL, + 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) NOT NULL, + id NUMBER(19, 0) GENERATED AS IDENTITY, name VARCHAR2(255 CHAR), - oid 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 ( - name_norm VARCHAR2(255 CHAR), - name_orig VARCHAR2(255 CHAR), - oid VARCHAR2(36 CHAR) NOT NULL, - PRIMARY KEY (oid) -) INITRANS 30; - -CREATE TABLE m_connector ( - connectorBundle VARCHAR2(255 CHAR), - connectorHostRef_relation VARCHAR2(157 CHAR), - connectorHostRef_targetOid VARCHAR2(36 CHAR), - connectorHostRef_type NUMBER(10, 0), - connectorType VARCHAR2(255 CHAR), - connectorVersion VARCHAR2(255 CHAR), - framework VARCHAR2(255 CHAR), - name_norm VARCHAR2(255 CHAR), - name_orig VARCHAR2(255 CHAR), - oid VARCHAR2(36 CHAR) NOT NULL, - PRIMARY KEY (oid) -) INITRANS 30; - -CREATE TABLE m_connector_host ( - hostname VARCHAR2(255 CHAR), - name_norm VARCHAR2(255 CHAR), - name_orig VARCHAR2(255 CHAR), - port VARCHAR2(255 CHAR), - oid VARCHAR2(36 CHAR) NOT NULL, - PRIMARY KEY (oid) +CREATE TABLE m_case_wi ( + id NUMBER(10, 0) NOT NULL, + owner_oid VARCHAR2(36 CHAR) NOT NULL, + closeTimestamp TIMESTAMP, + deadline TIMESTAMP, + originalAssigneeRef_relation VARCHAR2(157 CHAR), + originalAssigneeRef_targetOid VARCHAR2(36 CHAR), + originalAssigneeRef_type NUMBER(10, 0), + outcome VARCHAR2(255 CHAR), + performerRef_relation VARCHAR2(157 CHAR), + performerRef_targetOid VARCHAR2(36 CHAR), + performerRef_type NUMBER(10, 0), + stageNumber NUMBER(10, 0), + PRIMARY KEY (owner_oid, id) +) INITRANS 30; +CREATE TABLE m_case_wi_reference ( + owner_id NUMBER(10, 0) NOT NULL, + owner_owner_oid VARCHAR2(36 CHAR) NOT NULL, + relation VARCHAR2(157 CHAR) NOT NULL, + targetOid VARCHAR2(36 CHAR) NOT NULL, + targetType NUMBER(10, 0), + PRIMARY KEY (owner_owner_oid, owner_id, targetOid, relation) ) INITRANS 30; - CREATE TABLE m_connector_target_system ( connector_oid VARCHAR2(36 CHAR) NOT NULL, targetSystemType VARCHAR2(255 CHAR) ) INITRANS 30; - -CREATE TABLE m_exclusion ( - id NUMBER(10, 0) NOT NULL, - owner_oid VARCHAR2(36 CHAR) NOT NULL, - policy NUMBER(10, 0), - targetRef_relation VARCHAR2(157 CHAR), - targetRef_targetOid VARCHAR2(36 CHAR), - targetRef_type NUMBER(10, 0), - PRIMARY KEY (id, owner_oid) -) INITRANS 30; - -CREATE TABLE m_focus ( - administrativeStatus NUMBER(10, 0), - archiveTimestamp TIMESTAMP, - disableReason VARCHAR2(255 CHAR), - disableTimestamp TIMESTAMP, - effectiveStatus NUMBER(10, 0), - enableTimestamp TIMESTAMP, - validFrom TIMESTAMP, - validTo TIMESTAMP, - validityChangeTimestamp TIMESTAMP, - validityStatus NUMBER(10, 0), - hasPhoto NUMBER(1, 0) DEFAULT 0 NOT NULL, - oid VARCHAR2(36 CHAR) NOT NULL, - PRIMARY KEY (oid) +CREATE TABLE m_ext_item ( + id NUMBER(10, 0) GENERATED AS IDENTITY, + kind NUMBER(10, 0), + itemName VARCHAR2(157 CHAR), + itemType VARCHAR2(157 CHAR), + PRIMARY KEY (id) ) INITRANS 30; - CREATE TABLE m_focus_photo ( owner_oid VARCHAR2(36 CHAR) NOT NULL, photo BLOB, PRIMARY KEY (owner_oid) ) INITRANS 30; - CREATE TABLE m_focus_policy_situation ( focus_oid VARCHAR2(36 CHAR) NOT NULL, policySituation VARCHAR2(255 CHAR) ) INITRANS 30; - -CREATE TABLE m_form ( - name_norm VARCHAR2(255 CHAR), - name_orig VARCHAR2(255 CHAR), - oid VARCHAR2(36 CHAR) NOT NULL, - PRIMARY KEY (oid) -) INITRANS 30; - -CREATE TABLE m_function_library ( - name_norm VARCHAR2(255 CHAR), - name_orig VARCHAR2(255 CHAR), - oid VARCHAR2(36 CHAR) NOT NULL, - PRIMARY KEY (oid) -) INITRANS 30; - -CREATE TABLE m_generic_object ( - name_norm VARCHAR2(255 CHAR), - name_orig VARCHAR2(255 CHAR), - objectType VARCHAR2(255 CHAR), - oid VARCHAR2(36 CHAR) NOT NULL, - PRIMARY KEY (oid) -) INITRANS 30; - -CREATE TABLE m_lookup_table ( - name_norm VARCHAR2(255 CHAR), - name_orig VARCHAR2(255 CHAR), - oid VARCHAR2(36 CHAR) NOT NULL, - PRIMARY KEY (oid) -) INITRANS 30; - -CREATE TABLE m_lookup_table_row ( - id NUMBER(10, 0) NOT NULL, - owner_oid VARCHAR2(36 CHAR) NOT NULL, - row_key VARCHAR2(255 CHAR), - label_norm VARCHAR2(255 CHAR), - label_orig VARCHAR2(255 CHAR), - lastChangeTimestamp TIMESTAMP, - row_value VARCHAR2(255 CHAR), - PRIMARY KEY (id, owner_oid) -) INITRANS 30; - -CREATE TABLE m_node ( - name_norm VARCHAR2(255 CHAR), - name_orig VARCHAR2(255 CHAR), - nodeIdentifier VARCHAR2(255 CHAR), - oid VARCHAR2(36 CHAR) NOT NULL, - PRIMARY KEY (oid) -) INITRANS 30; - CREATE TABLE m_object ( oid VARCHAR2(36 CHAR) NOT NULL, booleansCount NUMBER(5, 0), @@ -472,90 +334,60 @@ CREATE TABLE m_object ( version NUMBER(10, 0) NOT NULL, PRIMARY KEY (oid) ) INITRANS 30; - CREATE TABLE m_object_ext_boolean ( - eName VARCHAR2(157 CHAR) NOT NULL, - owner_oid VARCHAR2(36 CHAR) NOT NULL, - ownerType NUMBER(10, 0) NOT NULL, - booleanValue NUMBER(1, 0) NOT NULL, - dynamicDef NUMBER(1, 0), - eType VARCHAR2(157 CHAR), - valueType NUMBER(10, 0), - PRIMARY KEY (eName, owner_oid, ownerType, booleanValue) + item_id NUMBER(10, 0) NOT NULL, + owner_oid VARCHAR2(36 CHAR) NOT NULL, + ownerType NUMBER(10, 0) NOT NULL, + booleanValue NUMBER(1, 0) NOT NULL, + PRIMARY KEY (owner_oid, ownerType, item_id, booleanValue) ) INITRANS 30; - CREATE TABLE m_object_ext_date ( - eName VARCHAR2(157 CHAR) NOT NULL, - owner_oid VARCHAR2(36 CHAR) NOT NULL, - ownerType NUMBER(10, 0) NOT NULL, - dateValue TIMESTAMP NOT NULL, - dynamicDef NUMBER(1, 0), - eType VARCHAR2(157 CHAR), - valueType NUMBER(10, 0), - PRIMARY KEY (eName, owner_oid, ownerType, dateValue) + item_id NUMBER(10, 0) NOT NULL, + owner_oid VARCHAR2(36 CHAR) NOT NULL, + ownerType NUMBER(10, 0) NOT NULL, + dateValue TIMESTAMP NOT NULL, + PRIMARY KEY (owner_oid, ownerType, item_id, dateValue) ) INITRANS 30; - CREATE TABLE m_object_ext_long ( - eName VARCHAR2(157 CHAR) NOT NULL, - owner_oid VARCHAR2(36 CHAR) NOT NULL, - ownerType NUMBER(10, 0) NOT NULL, - longValue NUMBER(19, 0) NOT NULL, - dynamicDef NUMBER(1, 0), - eType VARCHAR2(157 CHAR), - valueType NUMBER(10, 0), - PRIMARY KEY (eName, owner_oid, ownerType, longValue) + item_id NUMBER(10, 0) NOT NULL, + owner_oid VARCHAR2(36 CHAR) NOT NULL, + ownerType NUMBER(10, 0) NOT NULL, + longValue NUMBER(19, 0) NOT NULL, + PRIMARY KEY (owner_oid, ownerType, item_id, longValue) ) INITRANS 30; - CREATE TABLE m_object_ext_poly ( - eName VARCHAR2(157 CHAR) NOT NULL, - owner_oid VARCHAR2(36 CHAR) NOT NULL, - ownerType NUMBER(10, 0) NOT NULL, - orig VARCHAR2(255 CHAR) NOT NULL, - dynamicDef NUMBER(1, 0), - norm VARCHAR2(255 CHAR), - eType VARCHAR2(157 CHAR), - valueType NUMBER(10, 0), - PRIMARY KEY (eName, owner_oid, ownerType, orig) + item_id NUMBER(10, 0) NOT NULL, + owner_oid VARCHAR2(36 CHAR) NOT NULL, + ownerType NUMBER(10, 0) NOT NULL, + orig VARCHAR2(255 CHAR) NOT NULL, + norm VARCHAR2(255 CHAR), + PRIMARY KEY (owner_oid, ownerType, item_id, orig) ) INITRANS 30; - CREATE TABLE m_object_ext_reference ( - eName VARCHAR2(157 CHAR) NOT NULL, - owner_oid VARCHAR2(36 CHAR) NOT NULL, - ownerType NUMBER(10, 0) NOT NULL, - targetoid VARCHAR2(36 CHAR) NOT NULL, - dynamicDef NUMBER(1, 0), + item_id NUMBER(10, 0) NOT NULL, + owner_oid VARCHAR2(36 CHAR) NOT NULL, + ownerType NUMBER(10, 0) NOT NULL, + targetoid VARCHAR2(36 CHAR) NOT NULL, relation VARCHAR2(157 CHAR), targetType NUMBER(10, 0), - eType VARCHAR2(157 CHAR), - valueType NUMBER(10, 0), - PRIMARY KEY (eName, owner_oid, ownerType, targetoid) + PRIMARY KEY (owner_oid, ownerType, item_id, targetoid) ) INITRANS 30; - CREATE TABLE m_object_ext_string ( - eName VARCHAR2(157 CHAR) NOT NULL, + item_id NUMBER(10, 0) NOT NULL, owner_oid VARCHAR2(36 CHAR) NOT NULL, ownerType NUMBER(10, 0) NOT NULL, stringValue VARCHAR2(255 CHAR) NOT NULL, - dynamicDef NUMBER(1, 0), - eType VARCHAR2(157 CHAR), - valueType NUMBER(10, 0), - PRIMARY KEY (eName, owner_oid, ownerType, stringValue) + PRIMARY KEY (owner_oid, ownerType, item_id, stringValue) ) INITRANS 30; - -CREATE TABLE m_object_template ( - name_norm VARCHAR2(255 CHAR), - name_orig VARCHAR2(255 CHAR), - type NUMBER(10, 0), - oid VARCHAR2(36 CHAR) NOT NULL, - PRIMARY KEY (oid) +CREATE TABLE m_object_subtype ( + object_oid VARCHAR2(36 CHAR) NOT NULL, + subType VARCHAR2(255 CHAR) ) INITRANS 30; - CREATE TABLE m_object_text_info ( owner_oid VARCHAR2(36 CHAR) NOT NULL, text VARCHAR2(255 CHAR) NOT NULL, PRIMARY KEY (owner_oid, text) ) INITRANS 30; - CREATE TABLE m_operation_execution ( id NUMBER(10, 0) NOT NULL, owner_oid VARCHAR2(36 CHAR) NOT NULL, @@ -567,40 +399,18 @@ CREATE TABLE m_operation_execution ( taskRef_targetOid VARCHAR2(36 CHAR), taskRef_type NUMBER(10, 0), timestampValue TIMESTAMP, - PRIMARY KEY (id, owner_oid) -) INITRANS 30; - -CREATE TABLE m_org ( - costCenter VARCHAR2(255 CHAR), - displayOrder NUMBER(10, 0), - locality_norm VARCHAR2(255 CHAR), - locality_orig VARCHAR2(255 CHAR), - name_norm VARCHAR2(255 CHAR), - name_orig VARCHAR2(255 CHAR), - tenant NUMBER(1, 0), - oid VARCHAR2(36 CHAR) NOT NULL, - PRIMARY KEY (oid) + PRIMARY KEY (owner_oid, id) ) INITRANS 30; - CREATE TABLE m_org_closure ( ancestor_oid VARCHAR2(36 CHAR) NOT NULL, descendant_oid VARCHAR2(36 CHAR) NOT NULL, val NUMBER(10, 0), PRIMARY KEY (ancestor_oid, descendant_oid) ) INITRANS 30; - -CREATE GLOBAL TEMPORARY TABLE m_org_closure_temp_delta ( - descendant_oid VARCHAR2(36 CHAR) NOT NULL, - ancestor_oid VARCHAR2(36 CHAR) NOT NULL, - val NUMBER (10, 0) NOT NULL, - PRIMARY KEY (descendant_oid, ancestor_oid) -) ON COMMIT DELETE ROWS; - CREATE TABLE m_org_org_type ( org_oid VARCHAR2(36 CHAR) NOT NULL, orgType VARCHAR2(255 CHAR) ) INITRANS 30; - CREATE TABLE m_reference ( owner_oid VARCHAR2(36 CHAR) NOT NULL, reference_type NUMBER(10, 0) NOT NULL, @@ -609,77 +419,10 @@ CREATE TABLE m_reference ( targetType NUMBER(10, 0), PRIMARY KEY (owner_oid, reference_type, relation, targetOid) ) INITRANS 30; - -CREATE TABLE m_report ( - export NUMBER(10, 0), - name_norm VARCHAR2(255 CHAR), - name_orig VARCHAR2(255 CHAR), - orientation NUMBER(10, 0), - parent NUMBER(1, 0), - useHibernateSession NUMBER(1, 0), - oid VARCHAR2(36 CHAR) NOT NULL, - PRIMARY KEY (oid) -) INITRANS 30; - -CREATE TABLE m_report_output ( - name_norm VARCHAR2(255 CHAR), - name_orig VARCHAR2(255 CHAR), - reportRef_relation VARCHAR2(157 CHAR), - reportRef_targetOid VARCHAR2(36 CHAR), - reportRef_type NUMBER(10, 0), - oid VARCHAR2(36 CHAR) NOT NULL, - PRIMARY KEY (oid) -) INITRANS 30; - -CREATE TABLE m_resource ( - administrativeState NUMBER(10, 0), - connectorRef_relation VARCHAR2(157 CHAR), - connectorRef_targetOid VARCHAR2(36 CHAR), - connectorRef_type NUMBER(10, 0), - name_norm VARCHAR2(255 CHAR), - name_orig VARCHAR2(255 CHAR), - o16_lastAvailabilityStatus NUMBER(10, 0), - oid VARCHAR2(36 CHAR) NOT NULL, - PRIMARY KEY (oid) -) INITRANS 30; - -CREATE TABLE m_role ( - name_norm VARCHAR2(255 CHAR), - name_orig VARCHAR2(255 CHAR), - roleType VARCHAR2(255 CHAR), - oid VARCHAR2(36 CHAR) NOT NULL, - PRIMARY KEY (oid) -) INITRANS 30; - -CREATE TABLE m_security_policy ( - name_norm VARCHAR2(255 CHAR), - name_orig VARCHAR2(255 CHAR), - oid VARCHAR2(36 CHAR) NOT NULL, - PRIMARY KEY (oid) -) INITRANS 30; - -CREATE TABLE m_sequence ( - name_norm VARCHAR2(255 CHAR), - name_orig VARCHAR2(255 CHAR), - oid VARCHAR2(36 CHAR) NOT NULL, - PRIMARY KEY (oid) -) INITRANS 30; - -CREATE TABLE m_service ( - displayOrder NUMBER(10, 0), - locality_norm VARCHAR2(255 CHAR), - locality_orig VARCHAR2(255 CHAR), - name_norm VARCHAR2(255 CHAR), - name_orig VARCHAR2(255 CHAR), - oid VARCHAR2(36 CHAR) NOT NULL, - PRIMARY KEY (oid) -) INITRANS 30; - CREATE TABLE m_service_type ( service_oid VARCHAR2(36 CHAR) NOT NULL, serviceType VARCHAR2(255 CHAR) ) INITRANS 30; - CREATE TABLE m_shadow ( attemptNumber NUMBER(10, 0), dead NUMBER(1, 0), @@ -701,38 +444,30 @@ CREATE TABLE m_shadow ( oid VARCHAR2(36 CHAR) NOT NULL, PRIMARY KEY (oid) ) INITRANS 30; - -CREATE TABLE m_system_configuration ( - name_norm VARCHAR2(255 CHAR), - name_orig VARCHAR2(255 CHAR), - oid VARCHAR2(36 CHAR) NOT NULL, - PRIMARY KEY (oid) -) INITRANS 30; - CREATE TABLE m_task ( - binding NUMBER(10, 0), - canRunOnNode VARCHAR2(255 CHAR), - category VARCHAR2(255 CHAR), - completionTimestamp TIMESTAMP, - executionStatus NUMBER(10, 0), - handlerUri VARCHAR2(255 CHAR), - lastRunFinishTimestamp TIMESTAMP, - lastRunStartTimestamp TIMESTAMP, - name_norm VARCHAR2(255 CHAR), - name_orig VARCHAR2(255 CHAR), - node VARCHAR2(255 CHAR), - objectRef_relation VARCHAR2(157 CHAR), - objectRef_targetOid VARCHAR2(36 CHAR), - objectRef_type NUMBER(10, 0), - ownerRef_relation VARCHAR2(157 CHAR), - ownerRef_targetOid VARCHAR2(36 CHAR), - ownerRef_type NUMBER(10, 0), - parent VARCHAR2(255 CHAR), - recurrence NUMBER(10, 0), - status NUMBER(10, 0), - taskIdentifier VARCHAR2(255 CHAR), - threadStopAction NUMBER(10, 0), - waitingReason NUMBER(10, 0), + binding NUMBER(10, 0), + canRunOnNode VARCHAR2(255 CHAR), + category VARCHAR2(255 CHAR), + completionTimestamp TIMESTAMP, + executionStatus NUMBER(10, 0), + handlerUri VARCHAR2(255 CHAR), + lastRunFinishTimestamp TIMESTAMP, + lastRunStartTimestamp TIMESTAMP, + name_norm VARCHAR2(255 CHAR), + name_orig VARCHAR2(255 CHAR), + node VARCHAR2(255 CHAR), + objectRef_relation VARCHAR2(157 CHAR), + objectRef_targetOid VARCHAR2(36 CHAR), + objectRef_type NUMBER(10, 0), + ownerRef_relation VARCHAR2(157 CHAR), + ownerRef_targetOid VARCHAR2(36 CHAR), + ownerRef_type NUMBER(10, 0), + parent VARCHAR2(255 CHAR), + recurrence NUMBER(10, 0), + status NUMBER(10, 0), + taskIdentifier VARCHAR2(255 CHAR), + threadStopAction NUMBER(10, 0), + waitingReason NUMBER(10, 0), wfEndTimestamp TIMESTAMP, wfObjectRef_relation VARCHAR2(157 CHAR), wfObjectRef_targetOid VARCHAR2(36 CHAR), @@ -745,28 +480,224 @@ CREATE TABLE m_task ( wfTargetRef_relation VARCHAR2(157 CHAR), wfTargetRef_targetOid VARCHAR2(36 CHAR), wfTargetRef_type NUMBER(10, 0), - oid VARCHAR2(36 CHAR) NOT NULL, + oid VARCHAR2(36 CHAR) NOT NULL, PRIMARY KEY (oid) ) INITRANS 30; - CREATE TABLE m_task_dependent ( task_oid VARCHAR2(36 CHAR) NOT NULL, dependent VARCHAR2(255 CHAR) ) INITRANS 30; - -CREATE TABLE m_trigger ( - id NUMBER(10, 0) NOT NULL, - owner_oid VARCHAR2(36 CHAR) NOT NULL, - handlerUri VARCHAR2(255 CHAR), - timestampValue TIMESTAMP, - PRIMARY KEY (id, owner_oid) -) INITRANS 30; - +CREATE TABLE m_user_employee_type ( + user_oid VARCHAR2(36 CHAR) NOT NULL, + employeeType VARCHAR2(255 CHAR) +) INITRANS 30; +CREATE TABLE m_user_organization ( + user_oid VARCHAR2(36 CHAR) NOT NULL, + norm VARCHAR2(255 CHAR), + orig VARCHAR2(255 CHAR) +) INITRANS 30; +CREATE TABLE m_user_organizational_unit ( + user_oid VARCHAR2(36 CHAR) NOT NULL, + norm VARCHAR2(255 CHAR), + orig VARCHAR2(255 CHAR) +) INITRANS 30; +CREATE TABLE m_abstract_role ( + approvalProcess VARCHAR2(255 CHAR), + autoassign_enabled NUMBER(1, 0), + displayName_norm VARCHAR2(255 CHAR), + displayName_orig VARCHAR2(255 CHAR), + identifier VARCHAR2(255 CHAR), + ownerRef_relation VARCHAR2(157 CHAR), + ownerRef_targetOid VARCHAR2(36 CHAR), + ownerRef_type NUMBER(10, 0), + requestable NUMBER(1, 0), + riskLevel VARCHAR2(255 CHAR), + oid VARCHAR2(36 CHAR) NOT NULL, + PRIMARY KEY (oid) +) INITRANS 30; +CREATE TABLE m_case ( + name_norm VARCHAR2(255 CHAR), + name_orig VARCHAR2(255 CHAR), + objectRef_relation VARCHAR2(157 CHAR), + objectRef_targetOid VARCHAR2(36 CHAR), + objectRef_type NUMBER(10, 0), + state VARCHAR2(255 CHAR), + oid VARCHAR2(36 CHAR) NOT NULL, + PRIMARY KEY (oid) +) INITRANS 30; +CREATE TABLE m_connector ( + connectorBundle VARCHAR2(255 CHAR), + connectorHostRef_relation VARCHAR2(157 CHAR), + connectorHostRef_targetOid VARCHAR2(36 CHAR), + connectorHostRef_type NUMBER(10, 0), + connectorType VARCHAR2(255 CHAR), + connectorVersion VARCHAR2(255 CHAR), + framework VARCHAR2(255 CHAR), + name_norm VARCHAR2(255 CHAR), + name_orig VARCHAR2(255 CHAR), + oid VARCHAR2(36 CHAR) NOT NULL, + PRIMARY KEY (oid) +) INITRANS 30; +CREATE TABLE m_connector_host ( + hostname VARCHAR2(255 CHAR), + name_norm VARCHAR2(255 CHAR), + name_orig VARCHAR2(255 CHAR), + port VARCHAR2(255 CHAR), + oid VARCHAR2(36 CHAR) NOT NULL, + PRIMARY KEY (oid) +) INITRANS 30; +CREATE TABLE m_focus ( + administrativeStatus NUMBER(10, 0), + archiveTimestamp TIMESTAMP, + disableReason VARCHAR2(255 CHAR), + disableTimestamp TIMESTAMP, + effectiveStatus NUMBER(10, 0), + enableTimestamp TIMESTAMP, + validFrom TIMESTAMP, + validTo TIMESTAMP, + validityChangeTimestamp TIMESTAMP, + validityStatus NUMBER(10, 0), + costCenter VARCHAR2(255 CHAR), + emailAddress VARCHAR2(255 CHAR), + hasPhoto NUMBER(1, 0) DEFAULT 0 NOT NULL, + locale VARCHAR2(255 CHAR), + locality_norm VARCHAR2(255 CHAR), + locality_orig VARCHAR2(255 CHAR), + preferredLanguage VARCHAR2(255 CHAR), + telephoneNumber VARCHAR2(255 CHAR), + timezone VARCHAR2(255 CHAR), + oid VARCHAR2(36 CHAR) NOT NULL, + PRIMARY KEY (oid) +) INITRANS 30; +CREATE TABLE m_form ( + name_norm VARCHAR2(255 CHAR), + name_orig VARCHAR2(255 CHAR), + oid VARCHAR2(36 CHAR) NOT NULL, + PRIMARY KEY (oid) +) INITRANS 30; +CREATE TABLE m_function_library ( + name_norm VARCHAR2(255 CHAR), + name_orig VARCHAR2(255 CHAR), + oid VARCHAR2(36 CHAR) NOT NULL, + PRIMARY KEY (oid) +) INITRANS 30; +CREATE TABLE m_generic_object ( + name_norm VARCHAR2(255 CHAR), + name_orig VARCHAR2(255 CHAR), + objectType VARCHAR2(255 CHAR), + oid VARCHAR2(36 CHAR) NOT NULL, + PRIMARY KEY (oid) +) INITRANS 30; +CREATE TABLE m_lookup_table ( + name_norm VARCHAR2(255 CHAR), + name_orig VARCHAR2(255 CHAR), + oid VARCHAR2(36 CHAR) NOT NULL, + PRIMARY KEY (oid) +) INITRANS 30; +CREATE TABLE m_lookup_table_row ( + id NUMBER(10, 0) NOT NULL, + owner_oid VARCHAR2(36 CHAR) NOT NULL, + row_key VARCHAR2(255 CHAR), + label_norm VARCHAR2(255 CHAR), + label_orig VARCHAR2(255 CHAR), + lastChangeTimestamp TIMESTAMP, + row_value VARCHAR2(255 CHAR), + PRIMARY KEY (owner_oid, id) +) INITRANS 30; +CREATE TABLE m_node ( + name_norm VARCHAR2(255 CHAR), + name_orig VARCHAR2(255 CHAR), + nodeIdentifier 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), + type NUMBER(10, 0), + oid VARCHAR2(36 CHAR) NOT NULL, + PRIMARY KEY (oid) +) INITRANS 30; +CREATE TABLE m_org ( + displayOrder NUMBER(10, 0), + name_norm VARCHAR2(255 CHAR), + name_orig VARCHAR2(255 CHAR), + tenant NUMBER(1, 0), + oid VARCHAR2(36 CHAR) NOT NULL, + PRIMARY KEY (oid) +) INITRANS 30; +CREATE TABLE m_report ( + export NUMBER(10, 0), + name_norm VARCHAR2(255 CHAR), + name_orig VARCHAR2(255 CHAR), + orientation NUMBER(10, 0), + parent NUMBER(1, 0), + useHibernateSession NUMBER(1, 0), + oid VARCHAR2(36 CHAR) NOT NULL, + PRIMARY KEY (oid) +) INITRANS 30; +CREATE TABLE m_report_output ( + name_norm VARCHAR2(255 CHAR), + name_orig VARCHAR2(255 CHAR), + reportRef_relation VARCHAR2(157 CHAR), + reportRef_targetOid VARCHAR2(36 CHAR), + reportRef_type NUMBER(10, 0), + oid VARCHAR2(36 CHAR) NOT NULL, + PRIMARY KEY (oid) +) INITRANS 30; +CREATE TABLE m_resource ( + administrativeState NUMBER(10, 0), + connectorRef_relation VARCHAR2(157 CHAR), + connectorRef_targetOid VARCHAR2(36 CHAR), + connectorRef_type NUMBER(10, 0), + name_norm VARCHAR2(255 CHAR), + name_orig VARCHAR2(255 CHAR), + o16_lastAvailabilityStatus NUMBER(10, 0), + oid VARCHAR2(36 CHAR) NOT NULL, + PRIMARY KEY (oid) +) INITRANS 30; +CREATE TABLE m_role ( + name_norm VARCHAR2(255 CHAR), + name_orig VARCHAR2(255 CHAR), + roleType VARCHAR2(255 CHAR), + oid VARCHAR2(36 CHAR) NOT NULL, + PRIMARY KEY (oid) +) INITRANS 30; +CREATE TABLE m_security_policy ( + name_norm VARCHAR2(255 CHAR), + name_orig VARCHAR2(255 CHAR), + oid VARCHAR2(36 CHAR) NOT NULL, + PRIMARY KEY (oid) +) INITRANS 30; +CREATE TABLE m_sequence ( + name_norm VARCHAR2(255 CHAR), + name_orig VARCHAR2(255 CHAR), + oid VARCHAR2(36 CHAR) NOT NULL, + PRIMARY KEY (oid) +) INITRANS 30; +CREATE TABLE m_service ( + displayOrder NUMBER(10, 0), + name_norm VARCHAR2(255 CHAR), + name_orig VARCHAR2(255 CHAR), + oid VARCHAR2(36 CHAR) NOT NULL, + PRIMARY KEY (oid) +) INITRANS 30; +CREATE TABLE m_system_configuration ( + name_norm VARCHAR2(255 CHAR), + name_orig VARCHAR2(255 CHAR), + oid VARCHAR2(36 CHAR) NOT NULL, + PRIMARY KEY (oid) +) INITRANS 30; +CREATE TABLE m_trigger ( + id NUMBER(10, 0) NOT NULL, + owner_oid VARCHAR2(36 CHAR) NOT NULL, + handlerUri VARCHAR2(255 CHAR), + timestampValue TIMESTAMP, + PRIMARY KEY (owner_oid, id) +) INITRANS 30; CREATE TABLE m_user ( additionalName_norm VARCHAR2(255 CHAR), additionalName_orig VARCHAR2(255 CHAR), - costCenter VARCHAR2(255 CHAR), - emailAddress VARCHAR2(255 CHAR), employeeNumber VARCHAR2(255 CHAR), familyName_norm VARCHAR2(255 CHAR), familyName_orig VARCHAR2(255 CHAR), @@ -778,593 +709,425 @@ CREATE TABLE m_user ( honorificPrefix_orig VARCHAR2(255 CHAR), honorificSuffix_norm VARCHAR2(255 CHAR), honorificSuffix_orig VARCHAR2(255 CHAR), - locale VARCHAR2(255 CHAR), - locality_norm VARCHAR2(255 CHAR), - locality_orig VARCHAR2(255 CHAR), name_norm VARCHAR2(255 CHAR), name_orig VARCHAR2(255 CHAR), nickName_norm VARCHAR2(255 CHAR), nickName_orig VARCHAR2(255 CHAR), - preferredLanguage VARCHAR2(255 CHAR), - status NUMBER(10, 0), - telephoneNumber VARCHAR2(255 CHAR), - timezone VARCHAR2(255 CHAR), title_norm VARCHAR2(255 CHAR), title_orig VARCHAR2(255 CHAR), oid VARCHAR2(36 CHAR) NOT NULL, PRIMARY KEY (oid) ) INITRANS 30; - -CREATE TABLE m_user_employee_type ( - user_oid VARCHAR2(36 CHAR) NOT NULL, - employeeType VARCHAR2(255 CHAR) -) INITRANS 30; - -CREATE TABLE m_user_organization ( - user_oid VARCHAR2(36 CHAR) NOT NULL, - norm VARCHAR2(255 CHAR), - orig VARCHAR2(255 CHAR) -) INITRANS 30; - -CREATE TABLE m_user_organizational_unit ( - user_oid VARCHAR2(36 CHAR) NOT NULL, - norm VARCHAR2(255 CHAR), - orig VARCHAR2(255 CHAR) -) INITRANS 30; - CREATE TABLE m_value_policy ( name_norm VARCHAR2(255 CHAR), name_orig VARCHAR2(255 CHAR), oid VARCHAR2(36 CHAR) NOT NULL, PRIMARY KEY (oid) ) INITRANS 30; - -CREATE INDEX iAbstractRoleIdentifier ON m_abstract_role (identifier) INITRANS 30; - -CREATE INDEX iRequestable ON m_abstract_role (requestable) INITRANS 30; - -CREATE INDEX iAutoassignEnabled - ON m_abstract_role (autoassign_enabled) INITRANS 30; - +CREATE INDEX iCertCampaignNameOrig + ON m_acc_cert_campaign (name_orig) INITRANS 30; ALTER TABLE m_acc_cert_campaign - ADD CONSTRAINT uc_acc_cert_campaign_name UNIQUE (name_norm) INITRANS 30; - -CREATE INDEX iCaseObjectRefTargetOid ON m_acc_cert_case (objectRef_targetOid) INITRANS 30; - -CREATE INDEX iCaseTargetRefTargetOid ON m_acc_cert_case (targetRef_targetOid) INITRANS 30; - -CREATE INDEX iCaseTenantRefTargetOid ON m_acc_cert_case (tenantRef_targetOid) INITRANS 30; - -CREATE INDEX iCaseOrgRefTargetOid ON m_acc_cert_case (orgRef_targetOid) INITRANS 30; - + ADD CONSTRAINT uc_acc_cert_campaign_name UNIQUE (name_norm); +CREATE INDEX iCaseObjectRefTargetOid + ON m_acc_cert_case (objectRef_targetOid) INITRANS 30; +CREATE INDEX iCaseTargetRefTargetOid + ON m_acc_cert_case (targetRef_targetOid) INITRANS 30; +CREATE INDEX iCaseTenantRefTargetOid + ON m_acc_cert_case (tenantRef_targetOid) INITRANS 30; +CREATE INDEX iCaseOrgRefTargetOid + ON m_acc_cert_case (orgRef_targetOid) INITRANS 30; +CREATE INDEX iCertDefinitionNameOrig + ON m_acc_cert_definition (name_orig) INITRANS 30; ALTER TABLE m_acc_cert_definition - ADD CONSTRAINT uc_acc_cert_definition_name UNIQUE (name_norm) INITRANS 30; - -CREATE INDEX iCertWorkItemRefTargetOid ON m_acc_cert_wi_reference (targetOid) INITRANS 30; - -CREATE INDEX iAssignmentAdministrative ON m_assignment (administrativeStatus) INITRANS 30; - -CREATE INDEX iAssignmentEffective ON m_assignment (effectiveStatus) INITRANS 30; - -CREATE INDEX iTargetRefTargetOid ON m_assignment (targetRef_targetOid) INITRANS 30; - -CREATE INDEX iTenantRefTargetOid ON m_assignment (tenantRef_targetOid) INITRANS 30; - -CREATE INDEX iOrgRefTargetOid ON m_assignment (orgRef_targetOid) INITRANS 30; - -CREATE INDEX iResourceRefTargetOid ON m_assignment (resourceRef_targetOid) INITRANS 30; - -CREATE INDEX iAExtensionBoolean ON m_assignment_ext_boolean (extensionType, eName, booleanValue) INITRANS 30; - -CREATE INDEX iAExtensionDate ON m_assignment_ext_date (extensionType, eName, dateValue) INITRANS 30; - -CREATE INDEX iAExtensionLong ON m_assignment_ext_long (extensionType, eName, longValue) INITRANS 30; - -CREATE INDEX iAExtensionPolyString ON m_assignment_ext_poly (extensionType, eName, orig) INITRANS 30; - -CREATE INDEX iAExtensionReference ON m_assignment_ext_reference (extensionType, eName, targetoid) INITRANS 30; - -CREATE INDEX iAExtensionString ON m_assignment_ext_string (extensionType, eName, stringValue) INITRANS 30; - -CREATE INDEX iAssignmentReferenceTargetOid ON m_assignment_reference (targetOid) INITRANS 30; - -CREATE INDEX iTimestampValue ON m_audit_event (timestampValue) INITRANS 30; - -CREATE INDEX iChangedItemPath ON m_audit_item (changedItemPath) INITRANS 30; - + ADD CONSTRAINT uc_acc_cert_definition_name UNIQUE (name_norm); +CREATE INDEX iCertWorkItemRefTargetOid + ON m_acc_cert_wi_reference (targetOid) INITRANS 30; +CREATE INDEX iAssignmentAdministrative + ON m_assignment (administrativeStatus) INITRANS 30; +CREATE INDEX iAssignmentEffective + ON m_assignment (effectiveStatus) INITRANS 30; +CREATE INDEX iAssignmentValidFrom + ON m_assignment (validFrom) INITRANS 30; +CREATE INDEX iAssignmentValidTo + ON m_assignment (validTo) INITRANS 30; +CREATE INDEX iTargetRefTargetOid + ON m_assignment (targetRef_targetOid) INITRANS 30; +CREATE INDEX iTenantRefTargetOid + ON m_assignment (tenantRef_targetOid) INITRANS 30; +CREATE INDEX iOrgRefTargetOid + ON m_assignment (orgRef_targetOid) INITRANS 30; +CREATE INDEX iResourceRefTargetOid + ON m_assignment (resourceRef_targetOid) INITRANS 30; +CREATE INDEX iAExtensionBoolean + ON m_assignment_ext_boolean (booleanValue) INITRANS 30; +CREATE INDEX iAExtensionDate + ON m_assignment_ext_date (dateValue) INITRANS 30; +CREATE INDEX iAExtensionLong + ON m_assignment_ext_long (longValue) INITRANS 30; +CREATE INDEX iAExtensionPolyString + ON m_assignment_ext_poly (orig) INITRANS 30; +CREATE INDEX iAExtensionReference + ON m_assignment_ext_reference (targetoid) INITRANS 30; +CREATE INDEX iAExtensionString + ON m_assignment_ext_string (stringValue) INITRANS 30; +CREATE INDEX iAssignmentReferenceTargetOid + ON m_assignment_reference (targetOid) INITRANS 30; +CREATE INDEX iTimestampValue + ON m_audit_event (timestampValue) INITRANS 30; +CREATE INDEX iChangedItemPath + ON m_audit_item (changedItemPath) 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; +CREATE INDEX iObjectNameOrig + ON m_object (name_orig) INITRANS 30; +CREATE INDEX iObjectNameNorm + ON m_object (name_norm) INITRANS 30; +CREATE INDEX iObjectTypeClass + ON m_object (objectTypeClass) INITRANS 30; +CREATE INDEX iObjectCreateTimestamp + ON m_object (createTimestamp) INITRANS 30; +CREATE INDEX iObjectLifecycleState + ON m_object (lifecycleState) INITRANS 30; +CREATE INDEX iExtensionBoolean + ON m_object_ext_boolean (booleanValue) INITRANS 30; +CREATE INDEX iExtensionDate + ON m_object_ext_date (dateValue) INITRANS 30; +CREATE INDEX iExtensionLong + ON m_object_ext_long (longValue) INITRANS 30; +CREATE INDEX iExtensionPolyString + ON m_object_ext_poly (orig) INITRANS 30; +CREATE INDEX iExtensionReference + ON m_object_ext_reference (targetoid) INITRANS 30; +CREATE INDEX iExtensionString + ON m_object_ext_string (stringValue) INITRANS 30; +CREATE INDEX iOpExecTaskOid + ON m_operation_execution (taskRef_targetOid) INITRANS 30; +CREATE INDEX iOpExecInitiatorOid + ON m_operation_execution (initiatorRef_targetOid) INITRANS 30; +CREATE INDEX iOpExecStatus + ON m_operation_execution (status) INITRANS 30; +CREATE INDEX iOpExecOwnerOid + ON m_operation_execution (owner_oid) INITRANS 30; +CREATE INDEX iAncestor + ON m_org_closure (ancestor_oid) INITRANS 30; +CREATE INDEX iDescendant + ON m_org_closure (descendant_oid) INITRANS 30; +CREATE INDEX iDescendantAncestor + ON m_org_closure (descendant_oid, ancestor_oid) INITRANS 30; +CREATE INDEX iReferenceTargetTypeRelation + ON m_reference (targetOid, reference_type, relation) INITRANS 30; +CREATE INDEX iShadowResourceRef + ON m_shadow (resourceRef_targetOid) INITRANS 30; +CREATE INDEX iShadowDead + ON m_shadow (dead) INITRANS 30; +CREATE INDEX iShadowKind + ON m_shadow (kind) INITRANS 30; +CREATE INDEX iShadowIntent + ON m_shadow (intent) INITRANS 30; +CREATE INDEX iShadowObjectClass + ON m_shadow (objectClass) INITRANS 30; +CREATE INDEX iShadowFailedOperationType + ON m_shadow (failedOperationType) INITRANS 30; +CREATE INDEX iShadowSyncSituation + ON m_shadow (synchronizationSituation) INITRANS 30; +CREATE INDEX iShadowPendingOperationCount + ON m_shadow (pendingOperationCount) INITRANS 30; +CREATE INDEX iShadowNameOrig + ON m_shadow (name_orig) INITRANS 30; +CREATE INDEX iShadowNameNorm + ON m_shadow (name_norm) INITRANS 30; +CREATE INDEX iParent + ON m_task (parent) INITRANS 30; +CREATE INDEX iTaskWfProcessInstanceId + ON m_task (wfProcessInstanceId) INITRANS 30; +CREATE INDEX iTaskWfStartTimestamp + ON m_task (wfStartTimestamp) INITRANS 30; +CREATE INDEX iTaskWfEndTimestamp + ON m_task (wfEndTimestamp) INITRANS 30; +CREATE INDEX iTaskWfRequesterOid + ON m_task (wfRequesterRef_targetOid) INITRANS 30; +CREATE INDEX iTaskWfObjectOid + ON m_task (wfObjectRef_targetOid) INITRANS 30; +CREATE INDEX iTaskWfTargetOid + ON m_task (wfTargetRef_targetOid) INITRANS 30; +CREATE INDEX iTaskNameOrig + ON m_task (name_orig) INITRANS 30; +ALTER TABLE m_task + ADD CONSTRAINT uc_task_identifier UNIQUE (taskIdentifier); +CREATE INDEX iAbstractRoleIdentifier + ON m_abstract_role (identifier) INITRANS 30; +CREATE INDEX iRequestable + ON m_abstract_role (requestable) INITRANS 30; +CREATE INDEX iAutoassignEnabled + ON m_abstract_role (autoassign_enabled) INITRANS 30; +CREATE INDEX iCaseNameOrig + ON m_case (name_orig) INITRANS 30; ALTER TABLE m_case - ADD CONSTRAINT uc_case_name UNIQUE (name_norm) INITRANS 30; - + ADD CONSTRAINT uc_case_name UNIQUE (name_norm); +CREATE INDEX iConnectorNameOrig + ON m_connector (name_orig) INITRANS 30; +CREATE INDEX iConnectorNameNorm + ON m_connector (name_norm) INITRANS 30; +CREATE INDEX iConnectorHostNameOrig + ON m_connector_host (name_orig) INITRANS 30; ALTER TABLE m_connector_host -ADD CONSTRAINT uc_connector_host_name UNIQUE (name_norm) INITRANS 30; - -CREATE INDEX iFocusAdministrative ON m_focus (administrativeStatus) INITRANS 30; - -CREATE INDEX iFocusEffective ON m_focus (effectiveStatus) INITRANS 30; - + ADD CONSTRAINT uc_connector_host_name UNIQUE (name_norm); +CREATE INDEX iFocusAdministrative + ON m_focus (administrativeStatus) INITRANS 30; +CREATE INDEX iFocusEffective + ON m_focus (effectiveStatus) INITRANS 30; +CREATE INDEX iLocality + ON m_focus (locality_orig) INITRANS 30; +CREATE INDEX iFocusValidFrom + ON m_focus (validFrom) INITRANS 30; +CREATE INDEX iFocusValidTo + ON m_focus (validTo) INITRANS 30; +CREATE INDEX iFormNameOrig + ON m_form (name_orig) INITRANS 30; ALTER TABLE m_form - ADD CONSTRAINT uc_form_name UNIQUE (name_norm) INITRANS 30; - + ADD CONSTRAINT uc_form_name UNIQUE (name_norm); +CREATE INDEX iFunctionLibraryNameOrig + ON m_function_library (name_orig) INITRANS 30; ALTER TABLE m_function_library - ADD CONSTRAINT uc_function_library_name UNIQUE (name_norm) INITRANS 30; - + ADD CONSTRAINT uc_function_library_name UNIQUE (name_norm); +CREATE INDEX iGenericObjectNameOrig + ON m_generic_object (name_orig) INITRANS 30; ALTER TABLE m_generic_object -ADD CONSTRAINT uc_generic_object_name UNIQUE (name_norm) INITRANS 30; - + ADD CONSTRAINT uc_generic_object_name UNIQUE (name_norm); +CREATE INDEX iLookupTableNameOrig + ON m_lookup_table (name_orig) INITRANS 30; ALTER TABLE m_lookup_table -ADD CONSTRAINT uc_lookup_name UNIQUE (name_norm) INITRANS 30; - + ADD CONSTRAINT uc_lookup_name UNIQUE (name_norm); ALTER TABLE m_lookup_table_row -ADD CONSTRAINT uc_row_key UNIQUE (owner_oid, row_key) INITRANS 30; - + ADD CONSTRAINT uc_row_key UNIQUE (owner_oid, row_key); +CREATE INDEX iNodeNameOrig + ON m_node (name_orig) INITRANS 30; ALTER TABLE m_node -ADD CONSTRAINT uc_node_name UNIQUE (name_norm) INITRANS 30; - -CREATE INDEX iObjectNameOrig ON m_object (name_orig) INITRANS 30; - -CREATE INDEX iObjectNameNorm ON m_object (name_norm) INITRANS 30; - -CREATE INDEX iObjectTypeClass ON m_object (objectTypeClass) INITRANS 30; - -CREATE INDEX iObjectCreateTimestamp ON m_object (createTimestamp) INITRANS 30; - -CREATE INDEX iObjectLifecycleState ON m_object (lifecycleState) INITRANS 30; - -CREATE INDEX iExtensionBoolean ON m_object_ext_boolean (ownerType, eName, booleanValue) INITRANS 30; - -CREATE INDEX iExtensionBooleanDef ON m_object_ext_boolean (owner_oid, ownerType) INITRANS 30; - -CREATE INDEX iExtensionDate ON m_object_ext_date (ownerType, eName, dateValue) INITRANS 30; - -CREATE INDEX iExtensionDateDef ON m_object_ext_date (owner_oid, ownerType) INITRANS 30; - -CREATE INDEX iExtensionLong ON m_object_ext_long (ownerType, eName, longValue) INITRANS 30; - -CREATE INDEX iExtensionLongDef ON m_object_ext_long (owner_oid, ownerType) INITRANS 30; - -CREATE INDEX iExtensionPolyString ON m_object_ext_poly (ownerType, eName, orig) INITRANS 30; - -CREATE INDEX iExtensionPolyStringDef ON m_object_ext_poly (owner_oid, ownerType) INITRANS 30; - -CREATE INDEX iExtensionReference ON m_object_ext_reference (ownerType, eName, targetoid) INITRANS 30; - -CREATE INDEX iExtensionReferenceDef ON m_object_ext_reference (owner_oid, ownerType) INITRANS 30; - -CREATE INDEX iExtensionString ON m_object_ext_string (ownerType, eName, stringValue) INITRANS 30; - -CREATE INDEX iExtensionStringDef ON m_object_ext_string (owner_oid, ownerType) INITRANS 30; - + ADD CONSTRAINT uc_node_name UNIQUE (name_norm); +CREATE INDEX iObjectTemplateNameOrig + ON m_object_template (name_orig) INITRANS 30; ALTER TABLE m_object_template - ADD CONSTRAINT uc_object_template_name UNIQUE (name_norm) INITRANS 30; - -CREATE INDEX iOpExecTaskOid - ON m_operation_execution (taskRef_targetOid) INITRANS 30; - -CREATE INDEX iOpExecInitiatorOid - ON m_operation_execution (initiatorRef_targetOid) INITRANS 30; - -CREATE INDEX iOpExecStatus - ON m_operation_execution (status) INITRANS 30; - -CREATE INDEX iOpExecOwnerOid - ON m_operation_execution (owner_oid) INITRANS 30; - + ADD CONSTRAINT uc_object_template_name UNIQUE (name_norm); +CREATE INDEX iDisplayOrder + ON m_org (displayOrder) INITRANS 30; +CREATE INDEX iOrgNameOrig + ON m_org (name_orig) INITRANS 30; ALTER TABLE m_org -ADD CONSTRAINT uc_org_name UNIQUE (name_norm) INITRANS 30; - -CREATE INDEX iDisplayOrder ON m_org (displayOrder) INITRANS 30; - -CREATE INDEX iAncestor ON m_org_closure (ancestor_oid) INITRANS 30; - -CREATE INDEX iDescendant ON m_org_closure (descendant_oid) INITRANS 30; - -CREATE INDEX iDescendantAncestor ON m_org_closure (descendant_oid, ancestor_oid) INITRANS 30; - -CREATE INDEX iReferenceTargetOid ON m_reference (targetOid) INITRANS 30; - + ADD CONSTRAINT uc_org_name UNIQUE (name_norm); +CREATE INDEX iReportParent + ON m_report (parent) INITRANS 30; +CREATE INDEX iReportNameOrig + ON m_report (name_orig) INITRANS 30; ALTER TABLE m_report -ADD CONSTRAINT uc_report_name UNIQUE (name_norm) INITRANS 30; - -CREATE INDEX iReportParent ON m_report (parent) INITRANS 30; - + ADD CONSTRAINT uc_report_name UNIQUE (name_norm); +CREATE INDEX iReportOutputNameOrig + ON m_report_output (name_orig) INITRANS 30; +CREATE INDEX iReportOutputNameNorm + ON m_report_output (name_norm) INITRANS 30; +CREATE INDEX iResourceNameOrig + ON m_resource (name_orig) INITRANS 30; ALTER TABLE m_resource -ADD CONSTRAINT uc_resource_name UNIQUE (name_norm) INITRANS 30; - + ADD CONSTRAINT uc_resource_name UNIQUE (name_norm); +CREATE INDEX iRoleNameOrig + ON m_role (name_orig) INITRANS 30; ALTER TABLE m_role -ADD CONSTRAINT uc_role_name UNIQUE (name_norm) INITRANS 30; - + ADD CONSTRAINT uc_role_name UNIQUE (name_norm); +CREATE INDEX iSecurityPolicyNameOrig + ON m_security_policy (name_orig) INITRANS 30; ALTER TABLE m_security_policy -ADD CONSTRAINT uc_security_policy_name UNIQUE (name_norm) INITRANS 30; - + ADD CONSTRAINT uc_security_policy_name UNIQUE (name_norm); +CREATE INDEX iSequenceNameOrig + ON m_sequence (name_orig) INITRANS 30; ALTER TABLE m_sequence -ADD CONSTRAINT uc_sequence_name UNIQUE (name_norm) INITRANS 30; - -CREATE INDEX iShadowResourceRef ON m_shadow (resourceRef_targetOid) INITRANS 30; - -CREATE INDEX iShadowDead ON m_shadow (dead) INITRANS 30; - -CREATE INDEX iShadowKind ON m_shadow (kind) INITRANS 30; - -CREATE INDEX iShadowIntent ON m_shadow (intent) INITRANS 30; - -CREATE INDEX iShadowObjectClass ON m_shadow (objectClass) INITRANS 30; - -CREATE INDEX iShadowFailedOperationType ON m_shadow (failedOperationType) INITRANS 30; - -CREATE INDEX iShadowSyncSituation ON m_shadow (synchronizationSituation) INITRANS 30; - -CREATE INDEX iShadowPendingOperationCount ON m_shadow (pendingOperationCount) INITRANS 30; - + ADD CONSTRAINT uc_sequence_name UNIQUE (name_norm); +CREATE INDEX iServiceNameOrig + ON m_service (name_orig) INITRANS 30; +CREATE INDEX iServiceNameNorm + ON m_service (name_norm) INITRANS 30; +CREATE INDEX iSystemConfigurationNameOrig + ON m_system_configuration (name_orig) INITRANS 30; ALTER TABLE m_system_configuration -ADD CONSTRAINT uc_system_configuration_name UNIQUE (name_norm) INITRANS 30; - -ALTER TABLE m_task - ADD CONSTRAINT uc_task_identifier UNIQUE (taskIdentifier) INITRANS 30; - -CREATE INDEX iParent ON m_task (parent) INITRANS 30; - -CREATE INDEX iTaskWfProcessInstanceId ON m_task (wfProcessInstanceId) INITRANS 30; - -CREATE INDEX iTaskWfStartTimestamp ON m_task (wfStartTimestamp) INITRANS 30; - -CREATE INDEX iTaskWfEndTimestamp ON m_task (wfEndTimestamp) INITRANS 30; - -CREATE INDEX iTaskWfRequesterOid ON m_task (wfRequesterRef_targetOid) INITRANS 30; - -CREATE INDEX iTaskWfObjectOid ON m_task (wfObjectRef_targetOid) INITRANS 30; - -CREATE INDEX iTaskWfTargetOid ON m_task (wfTargetRef_targetOid) INITRANS 30; - -CREATE INDEX iTriggerTimestamp ON m_trigger (timestampValue) INITRANS 30; - + ADD CONSTRAINT uc_system_configuration_name UNIQUE (name_norm); +CREATE INDEX iTriggerTimestamp + ON m_trigger (timestampValue) INITRANS 30; +CREATE INDEX iFullName + ON m_user (fullName_orig) INITRANS 30; +CREATE INDEX iFamilyName + ON m_user (familyName_orig) INITRANS 30; +CREATE INDEX iGivenName + ON m_user (givenName_orig) INITRANS 30; +CREATE INDEX iEmployeeNumber + ON m_user (employeeNumber) INITRANS 30; +CREATE INDEX iUserNameOrig + ON m_user (name_orig) INITRANS 30; ALTER TABLE m_user -ADD CONSTRAINT uc_user_name UNIQUE (name_norm) INITRANS 30; - -CREATE INDEX iEmployeeNumber ON m_user (employeeNumber) INITRANS 30; - -CREATE INDEX iFullName ON m_user (fullName_orig) INITRANS 30; - -CREATE INDEX iFamilyName ON m_user (familyName_orig) INITRANS 30; - -CREATE INDEX iGivenName ON m_user (givenName_orig) INITRANS 30; - -CREATE INDEX iLocality ON m_user (locality_orig) INITRANS 30; - + ADD CONSTRAINT uc_user_name UNIQUE (name_norm); +CREATE INDEX iValuePolicyNameOrig + ON m_value_policy (name_orig) INITRANS 30; ALTER TABLE m_value_policy -ADD CONSTRAINT uc_value_policy_name UNIQUE (name_norm) INITRANS 30; - -ALTER TABLE m_abstract_role -ADD CONSTRAINT fk_abstract_role -FOREIGN KEY (oid) -REFERENCES m_focus; - + 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; - + 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; - + 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; - + 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_id, owner_owner_oid) -REFERENCES m_acc_cert_case; - + 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_id, owner_owner_id, owner_owner_owner_oid) -REFERENCES m_acc_cert_wi; - + 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; - + ADD CONSTRAINT fk_assignment_owner FOREIGN KEY (owner_oid) REFERENCES m_object; ALTER TABLE m_assignment_ext_boolean -ADD CONSTRAINT fk_assignment_ext_boolean -FOREIGN KEY (anyContainer_owner_id, anyContainer_owner_owner_oid) -REFERENCES m_assignment_extension; - + 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; ALTER TABLE m_assignment_ext_date -ADD CONSTRAINT fk_assignment_ext_date -FOREIGN KEY (anyContainer_owner_id, anyContainer_owner_owner_oid) -REFERENCES m_assignment_extension; - + 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; ALTER TABLE m_assignment_ext_long -ADD CONSTRAINT fk_assignment_ext_long -FOREIGN KEY (anyContainer_owner_id, anyContainer_owner_owner_oid) -REFERENCES m_assignment_extension; - + 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; ALTER TABLE m_assignment_ext_poly -ADD CONSTRAINT fk_assignment_ext_poly -FOREIGN KEY (anyContainer_owner_id, anyContainer_owner_owner_oid) -REFERENCES m_assignment_extension; - + 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; ALTER TABLE m_assignment_ext_reference -ADD CONSTRAINT fk_assignment_ext_reference -FOREIGN KEY (anyContainer_owner_id, anyContainer_owner_owner_oid) -REFERENCES m_assignment_extension; - + 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; ALTER TABLE m_assignment_ext_string -ADD CONSTRAINT fk_assignment_ext_string -FOREIGN KEY (anyContainer_owner_id, anyContainer_owner_owner_oid) -REFERENCES m_assignment_extension; - + 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; ALTER TABLE m_assignment_policy_situation - ADD CONSTRAINT fk_assignment_policy_situation -FOREIGN KEY (assignment_id, assignment_oid) -REFERENCES m_assignment; - + 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_id, owner_owner_oid) -REFERENCES m_assignment; - + 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; - + 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; - + 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; - + 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 - ADD CONSTRAINT fk_case -FOREIGN KEY (oid) -REFERENCES m_object; - -ALTER TABLE m_connector -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; - + 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 + 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; - -ALTER TABLE m_exclusion -ADD CONSTRAINT fk_exclusion_owner -FOREIGN KEY (owner_oid) -REFERENCES m_object; - -ALTER TABLE m_focus -ADD CONSTRAINT fk_focus -FOREIGN KEY (oid) -REFERENCES m_object; - + 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; - + 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; - -ALTER TABLE m_form - 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; - -ALTER TABLE m_generic_object -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; - -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; - + ADD CONSTRAINT fk_focus_policy_situation FOREIGN KEY (focus_oid) REFERENCES m_focus; ALTER TABLE m_object_ext_boolean -ADD CONSTRAINT fk_object_ext_boolean -FOREIGN KEY (owner_oid) -REFERENCES m_object; - + 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; ALTER TABLE m_object_ext_date -ADD CONSTRAINT fk_object_ext_date -FOREIGN KEY (owner_oid) -REFERENCES m_object; - + 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; ALTER TABLE m_object_ext_long -ADD CONSTRAINT fk_object_ext_long -FOREIGN KEY (owner_oid) -REFERENCES m_object; - + 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; ALTER TABLE m_object_ext_poly -ADD CONSTRAINT fk_object_ext_poly -FOREIGN KEY (owner_oid) -REFERENCES m_object; - + 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; ALTER TABLE m_object_ext_reference -ADD CONSTRAINT fk_object_ext_reference -FOREIGN KEY (owner_oid) -REFERENCES m_object; - + 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; ALTER TABLE m_object_ext_string -ADD CONSTRAINT fk_object_ext_string -FOREIGN KEY (owner_oid) -REFERENCES m_object; - -ALTER TABLE m_object_template -ADD CONSTRAINT fk_object_template -FOREIGN KEY (oid) -REFERENCES m_object; - + 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; +ALTER TABLE m_object_subtype + 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; - + 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; - -ALTER TABLE m_org -ADD CONSTRAINT fk_org -FOREIGN KEY (oid) -REFERENCES m_abstract_role; - + 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; - + 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; - + 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; - + 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; - + 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; +ALTER TABLE m_shadow + ADD CONSTRAINT fk_shadow FOREIGN KEY (oid) REFERENCES m_object; +ALTER TABLE m_task + 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; +ALTER TABLE m_user_employee_type + 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; +ALTER TABLE m_user_organizational_unit + 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; +ALTER TABLE m_case + ADD CONSTRAINT fk_case FOREIGN KEY (oid) REFERENCES m_object; +ALTER TABLE m_connector + 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; +ALTER TABLE m_focus + ADD CONSTRAINT fk_focus FOREIGN KEY (oid) REFERENCES m_object; +ALTER TABLE m_form + 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; +ALTER TABLE m_generic_object + 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; +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_template + 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; ALTER TABLE m_report -ADD CONSTRAINT fk_report -FOREIGN KEY (oid) -REFERENCES m_object; - + 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; - + 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; - + 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; - + 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; - + 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; - + 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; - -ALTER TABLE m_service_type - 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; - + 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; - -ALTER TABLE m_task -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; - + 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; - + 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; - -ALTER TABLE m_user_employee_type -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; - -ALTER TABLE m_user_organizational_unit -ADD CONSTRAINT fk_user_org_unit -FOREIGN KEY (user_oid) -REFERENCES m_user; - + 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; - -CREATE SEQUENCE hibernate_sequence START WITH 1 INCREMENT BY 1; + 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 diff --git a/config/sql/_all/oracle-upgrade-3.6-3.7.sql b/config/sql/_all/oracle-upgrade-3.6-3.7.sql deleted file mode 100644 index b8be12358a4..00000000000 --- a/config/sql/_all/oracle-upgrade-3.6-3.7.sql +++ /dev/null @@ -1,32 +0,0 @@ -ALTER TABLE qrtz_triggers ADD (EXECUTION_GROUP VARCHAR2(200) NULL); -ALTER TABLE qrtz_fired_triggers ADD (EXECUTION_GROUP VARCHAR2(200) NULL); - -CREATE TABLE m_function_library ( - name_norm VARCHAR2(255 CHAR), - name_orig VARCHAR2(255 CHAR), - oid VARCHAR2(36 CHAR) NOT NULL, - PRIMARY KEY (oid) -) INITRANS 30; - -ALTER TABLE m_function_library - ADD CONSTRAINT uc_function_library_name UNIQUE (name_norm) INITRANS 30; - -ALTER TABLE m_function_library - ADD CONSTRAINT fk_function_library -FOREIGN KEY (oid) -REFERENCES m_object; - -ALTER TABLE m_abstract_role ADD autoassign_enabled NUMBER(1, 0); - -CREATE INDEX iAutoassignEnabled - ON m_abstract_role (autoassign_enabled) INITRANS 30; - -ALTER TABLE m_task - ADD CONSTRAINT uc_task_identifier UNIQUE (taskIdentifier) INITRANS 30; - -ALTER TABLE m_audit_event ADD attorneyName VARCHAR2(255 CHAR); -ALTER TABLE m_audit_event ADD attorneyOid VARCHAR2(36 CHAR); -ALTER TABLE m_audit_event ADD initiatorType NUMBER(10, 0); - -CREATE INDEX iOpExecOwnerOid - ON m_operation_execution (owner_oid) INITRANS 30; diff --git a/config/sql/_all/oracle-upgrade-3.7-3.8.sql b/config/sql/_all/oracle-upgrade-3.7-3.8.sql new file mode 100644 index 00000000000..24d3a6b0e5f --- /dev/null +++ b/config/sql/_all/oracle-upgrade-3.7-3.8.sql @@ -0,0 +1,91 @@ +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), + 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; + +DROP TABLE m_exclusion; \ No newline at end of file diff --git a/config/sql/_all/postgresql-3.7-all.sql b/config/sql/_all/postgresql-3.8-all.sql similarity index 63% rename from config/sql/_all/postgresql-3.7-all.sql rename to config/sql/_all/postgresql-3.8-all.sql index 91c34294c84..a10b89b2de5 100644 --- a/config/sql/_all/postgresql-3.7-all.sql +++ b/config/sql/_all/postgresql-3.8-all.sql @@ -1,18 +1,3 @@ -CREATE TABLE m_abstract_role ( - approvalProcess VARCHAR(255), - autoassign_enabled BOOLEAN, - displayName_norm VARCHAR(255), - displayName_orig VARCHAR(255), - identifier VARCHAR(255), - ownerRef_relation VARCHAR(157), - ownerRef_targetOid VARCHAR(36), - ownerRef_type INT4, - requestable BOOLEAN, - riskLevel VARCHAR(255), - oid VARCHAR(36) NOT NULL, - PRIMARY KEY (oid) -); - CREATE TABLE m_acc_cert_campaign ( definitionRef_relation VARCHAR(157), definitionRef_targetOid VARCHAR(36), @@ -30,7 +15,6 @@ CREATE TABLE m_acc_cert_campaign ( oid VARCHAR(36) NOT NULL, PRIMARY KEY (oid) ); - CREATE TABLE m_acc_cert_case ( id INT4 NOT NULL, owner_oid VARCHAR(36) NOT NULL, @@ -63,9 +47,8 @@ CREATE TABLE m_acc_cert_case ( tenantRef_relation VARCHAR(157), tenantRef_targetOid VARCHAR(36), tenantRef_type INT4, - PRIMARY KEY (id, owner_oid) + PRIMARY KEY (owner_oid, id) ); - CREATE TABLE m_acc_cert_definition ( handlerUri VARCHAR(255), lastCampaignClosedTimestamp TIMESTAMP, @@ -78,7 +61,6 @@ CREATE TABLE m_acc_cert_definition ( oid VARCHAR(36) NOT NULL, PRIMARY KEY (oid) ); - CREATE TABLE m_acc_cert_wi ( id INT4 NOT NULL, owner_id INT4 NOT NULL, @@ -90,9 +72,8 @@ CREATE TABLE m_acc_cert_wi ( performerRef_targetOid VARCHAR(36), performerRef_type INT4, stageNumber INT4, - PRIMARY KEY (id, owner_id, owner_owner_oid) + PRIMARY KEY (owner_owner_oid, owner_id, id) ); - CREATE TABLE m_acc_cert_wi_reference ( owner_id INT4 NOT NULL, owner_owner_id INT4 NOT NULL, @@ -100,9 +81,8 @@ CREATE TABLE m_acc_cert_wi_reference ( relation VARCHAR(157) NOT NULL, targetOid VARCHAR(36) NOT NULL, targetType INT4, - PRIMARY KEY (owner_id, owner_owner_id, owner_owner_owner_oid, relation, targetOid) + PRIMARY KEY (owner_owner_owner_oid, owner_owner_id, owner_id, relation, targetOid) ); - CREATE TABLE m_assignment ( id INT4 NOT NULL, owner_oid VARCHAR(36) NOT NULL, @@ -143,84 +123,53 @@ CREATE TABLE m_assignment ( tenantRef_type INT4, extId INT4, extOid VARCHAR(36), - PRIMARY KEY (id, owner_oid) + PRIMARY KEY (owner_oid, id) ); - CREATE TABLE m_assignment_ext_boolean ( - eName VARCHAR(157) NOT NULL, - anyContainer_owner_id INT4 NOT NULL, - anyContainer_owner_owner_oid VARCHAR(36) NOT NULL, - booleanValue BOOLEAN NOT NULL, - extensionType INT4, - dynamicDef BOOLEAN, - eType VARCHAR(157), - valueType INT4, - PRIMARY KEY (eName, anyContainer_owner_id, anyContainer_owner_owner_oid, booleanValue) + item_id INT4 NOT NULL, + anyContainer_owner_id INT4 NOT NULL, + anyContainer_owner_owner_oid VARCHAR(36) NOT NULL, + booleanValue BOOLEAN NOT NULL, + PRIMARY KEY (anyContainer_owner_owner_oid, anyContainer_owner_id, item_id, booleanValue) ); - CREATE TABLE m_assignment_ext_date ( - eName VARCHAR(157) NOT NULL, - anyContainer_owner_id INT4 NOT NULL, - anyContainer_owner_owner_oid VARCHAR(36) NOT NULL, - dateValue TIMESTAMP NOT NULL, - extensionType INT4, - dynamicDef BOOLEAN, - eType VARCHAR(157), - valueType INT4, - PRIMARY KEY (eName, anyContainer_owner_id, anyContainer_owner_owner_oid, dateValue) + item_id INT4 NOT NULL, + anyContainer_owner_id INT4 NOT NULL, + anyContainer_owner_owner_oid VARCHAR(36) NOT NULL, + dateValue TIMESTAMP NOT NULL, + PRIMARY KEY (anyContainer_owner_owner_oid, anyContainer_owner_id, item_id, dateValue) ); - CREATE TABLE m_assignment_ext_long ( - eName VARCHAR(157) NOT NULL, - anyContainer_owner_id INT4 NOT NULL, - anyContainer_owner_owner_oid VARCHAR(36) NOT NULL, - longValue INT8 NOT NULL, - extensionType INT4, - dynamicDef BOOLEAN, - eType VARCHAR(157), - valueType INT4, - PRIMARY KEY (eName, anyContainer_owner_id, anyContainer_owner_owner_oid, longValue) + item_id INT4 NOT NULL, + anyContainer_owner_id INT4 NOT NULL, + anyContainer_owner_owner_oid VARCHAR(36) NOT NULL, + longValue INT8 NOT NULL, + PRIMARY KEY (anyContainer_owner_owner_oid, anyContainer_owner_id, item_id, longValue) ); - CREATE TABLE m_assignment_ext_poly ( - eName VARCHAR(157) NOT NULL, + item_id INT4 NOT NULL, anyContainer_owner_id INT4 NOT NULL, anyContainer_owner_owner_oid VARCHAR(36) NOT NULL, orig VARCHAR(255) NOT NULL, - extensionType INT4, - dynamicDef BOOLEAN, norm VARCHAR(255), - eType VARCHAR(157), - valueType INT4, - PRIMARY KEY (eName, anyContainer_owner_id, anyContainer_owner_owner_oid, orig) + PRIMARY KEY (anyContainer_owner_owner_oid, anyContainer_owner_id, item_id, orig) ); - CREATE TABLE m_assignment_ext_reference ( - eName VARCHAR(157) NOT NULL, - anyContainer_owner_id INT4 NOT NULL, - anyContainer_owner_owner_oid VARCHAR(36) NOT NULL, - targetoid VARCHAR(36) NOT NULL, - extensionType INT4, - dynamicDef BOOLEAN, + item_id INT4 NOT NULL, + anyContainer_owner_id INT4 NOT NULL, + anyContainer_owner_owner_oid VARCHAR(36) NOT NULL, + targetoid VARCHAR(36) NOT NULL, relation VARCHAR(157), targetType INT4, - eType VARCHAR(157), - valueType INT4, - PRIMARY KEY (eName, anyContainer_owner_id, anyContainer_owner_owner_oid, targetoid) + PRIMARY KEY (anyContainer_owner_owner_oid, anyContainer_owner_id, item_id, targetoid) ); - CREATE TABLE m_assignment_ext_string ( - eName VARCHAR(157) NOT NULL, + item_id INT4 NOT NULL, anyContainer_owner_id INT4 NOT NULL, anyContainer_owner_owner_oid VARCHAR(36) NOT NULL, stringValue VARCHAR(255) NOT NULL, - extensionType INT4, - dynamicDef BOOLEAN, - eType VARCHAR(157), - valueType INT4, - PRIMARY KEY (eName, anyContainer_owner_id, anyContainer_owner_owner_oid, stringValue) + PRIMARY KEY (anyContainer_owner_owner_oid, anyContainer_owner_id, item_id, stringValue) ); - CREATE TABLE m_assignment_extension ( owner_id INT4 NOT NULL, owner_owner_oid VARCHAR(36) NOT NULL, @@ -230,15 +179,13 @@ CREATE TABLE m_assignment_extension ( polysCount INT2, referencesCount INT2, stringsCount INT2, - PRIMARY KEY (owner_id, owner_owner_oid) + PRIMARY KEY (owner_owner_oid, owner_id) ); - CREATE TABLE m_assignment_policy_situation ( assignment_id INT4 NOT NULL, assignment_oid VARCHAR(36) NOT NULL, policySituation VARCHAR(255) ); - CREATE TABLE m_assignment_reference ( owner_id INT4 NOT NULL, owner_owner_oid VARCHAR(36) NOT NULL, @@ -246,27 +193,25 @@ CREATE TABLE m_assignment_reference ( relation VARCHAR(157) NOT NULL, targetOid VARCHAR(36) NOT NULL, targetType INT4, - PRIMARY KEY (owner_id, owner_owner_oid, reference_type, relation, targetOid) + 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 TEXT, + delta BYTEA, deltaOid VARCHAR(36), deltaType INT4, - fullResult TEXT, + 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 (checksum, record_id) + PRIMARY KEY (record_id, checksum) ); - CREATE TABLE m_audit_event ( - id INT8 NOT NULL, + id BIGSERIAL NOT NULL, attorneyName VARCHAR(255), attorneyOid VARCHAR(36), channel VARCHAR(255), @@ -288,158 +233,78 @@ CREATE TABLE m_audit_event ( 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(900) NOT NULL, + changedItemPath VARCHAR(255) NOT NULL, record_id INT8 NOT NULL, - PRIMARY KEY (changedItemPath, record_id) + PRIMARY KEY (record_id, changedItemPath) ); - CREATE TABLE m_audit_prop_value ( - id INT8 NOT NULL, + id BIGSERIAL NOT NULL, name VARCHAR(255), record_id INT8, value VARCHAR(1024), PRIMARY KEY (id) ); - CREATE TABLE m_audit_ref_value ( - id INT8 NOT NULL, + id BIGSERIAL NOT NULL, name VARCHAR(255), - oid 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 ( - name_norm VARCHAR(255), - name_orig VARCHAR(255), - oid VARCHAR(36) NOT NULL, - PRIMARY KEY (oid) -); - -CREATE TABLE m_connector ( - connectorBundle VARCHAR(255), - connectorHostRef_relation VARCHAR(157), - connectorHostRef_targetOid VARCHAR(36), - connectorHostRef_type INT4, - 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) -); - -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) +CREATE TABLE m_case_wi ( + id INT4 NOT NULL, + owner_oid VARCHAR(36) NOT NULL, + closeTimestamp TIMESTAMP, + deadline TIMESTAMP, + originalAssigneeRef_relation VARCHAR(157), + originalAssigneeRef_targetOid VARCHAR(36), + originalAssigneeRef_type INT4, + outcome VARCHAR(255), + performerRef_relation VARCHAR(157), + performerRef_targetOid VARCHAR(36), + performerRef_type INT4, + stageNumber INT4, + PRIMARY KEY (owner_oid, id) +); +CREATE TABLE m_case_wi_reference ( + owner_id INT4 NOT NULL, + owner_owner_oid VARCHAR(36) NOT NULL, + relation VARCHAR(157) NOT NULL, + targetOid VARCHAR(36) NOT NULL, + targetType INT4, + PRIMARY KEY (owner_owner_oid, owner_id, targetOid, relation) ); - CREATE TABLE m_connector_target_system ( connector_oid VARCHAR(36) NOT NULL, targetSystemType VARCHAR(255) ); - -CREATE TABLE m_exclusion ( - id INT4 NOT NULL, - owner_oid VARCHAR(36) NOT NULL, - policy INT4, - targetRef_relation VARCHAR(157), - targetRef_targetOid VARCHAR(36), - targetRef_type INT4, - PRIMARY KEY (id, owner_oid) -); - -CREATE TABLE m_focus ( - administrativeStatus INT4, - archiveTimestamp TIMESTAMP, - disableReason VARCHAR(255), - disableTimestamp TIMESTAMP, - effectiveStatus INT4, - enableTimestamp TIMESTAMP, - validFrom TIMESTAMP, - validTo TIMESTAMP, - validityChangeTimestamp TIMESTAMP, - validityStatus INT4, - hasPhoto BOOLEAN DEFAULT FALSE NOT NULL, - oid VARCHAR(36) NOT NULL, - PRIMARY KEY (oid) +CREATE TABLE m_ext_item ( + id SERIAL NOT NULL, + kind INT4, + itemName VARCHAR(157), + itemType VARCHAR(157), + PRIMARY KEY (id) ); - CREATE TABLE m_focus_photo ( owner_oid VARCHAR(36) NOT NULL, photo BYTEA, PRIMARY KEY (owner_oid) ); - CREATE TABLE m_focus_policy_situation ( focus_oid VARCHAR(36) NOT NULL, policySituation VARCHAR(255) ); - -CREATE TABLE m_form ( - name_norm VARCHAR(255), - name_orig VARCHAR(255), - oid VARCHAR(36) NOT NULL, - PRIMARY KEY (oid) -); - -CREATE TABLE m_function_library ( - name_norm VARCHAR(255), - name_orig VARCHAR(255), - oid VARCHAR(36) NOT NULL, - PRIMARY KEY (oid) -); - -CREATE TABLE m_generic_object ( - name_norm VARCHAR(255), - name_orig VARCHAR(255), - objectType VARCHAR(255), - oid VARCHAR(36) NOT NULL, - PRIMARY KEY (oid) -); - -CREATE TABLE m_lookup_table ( - name_norm VARCHAR(255), - name_orig VARCHAR(255), - oid VARCHAR(36) NOT NULL, - PRIMARY KEY (oid) -); - -CREATE TABLE m_lookup_table_row ( - id INT4 NOT NULL, - owner_oid VARCHAR(36) NOT NULL, - row_key VARCHAR(255), - label_norm VARCHAR(255), - label_orig VARCHAR(255), - lastChangeTimestamp TIMESTAMP, - row_value VARCHAR(255), - PRIMARY KEY (id, owner_oid) -); - -CREATE TABLE m_node ( - name_norm VARCHAR(255), - name_orig VARCHAR(255), - nodeIdentifier VARCHAR(255), - oid VARCHAR(36) NOT NULL, - PRIMARY KEY (oid) -); - CREATE TABLE m_object ( oid VARCHAR(36) NOT NULL, booleansCount INT2, @@ -469,90 +334,60 @@ CREATE TABLE m_object ( version INT4 NOT NULL, PRIMARY KEY (oid) ); - CREATE TABLE m_object_ext_boolean ( - eName VARCHAR(157) NOT NULL, - owner_oid VARCHAR(36) NOT NULL, - ownerType INT4 NOT NULL, - booleanValue BOOLEAN NOT NULL, - dynamicDef BOOLEAN, - eType VARCHAR(157), - valueType INT4, - PRIMARY KEY (eName, owner_oid, ownerType, booleanValue) + item_id INT4 NOT NULL, + owner_oid VARCHAR(36) NOT NULL, + ownerType INT4 NOT NULL, + booleanValue BOOLEAN NOT NULL, + PRIMARY KEY (owner_oid, ownerType, item_id, booleanValue) ); - CREATE TABLE m_object_ext_date ( - eName VARCHAR(157) NOT NULL, - owner_oid VARCHAR(36) NOT NULL, - ownerType INT4 NOT NULL, - dateValue TIMESTAMP NOT NULL, - dynamicDef BOOLEAN, - eType VARCHAR(157), - valueType INT4, - PRIMARY KEY (eName, owner_oid, ownerType, dateValue) + item_id INT4 NOT NULL, + owner_oid VARCHAR(36) NOT NULL, + ownerType INT4 NOT NULL, + dateValue TIMESTAMP NOT NULL, + PRIMARY KEY (owner_oid, ownerType, item_id, dateValue) ); - CREATE TABLE m_object_ext_long ( - eName VARCHAR(157) NOT NULL, - owner_oid VARCHAR(36) NOT NULL, - ownerType INT4 NOT NULL, - longValue INT8 NOT NULL, - dynamicDef BOOLEAN, - eType VARCHAR(157), - valueType INT4, - PRIMARY KEY (eName, owner_oid, ownerType, longValue) + item_id INT4 NOT NULL, + owner_oid VARCHAR(36) NOT NULL, + ownerType INT4 NOT NULL, + longValue INT8 NOT NULL, + PRIMARY KEY (owner_oid, ownerType, item_id, longValue) ); - CREATE TABLE m_object_ext_poly ( - eName VARCHAR(157) NOT NULL, - owner_oid VARCHAR(36) NOT NULL, - ownerType INT4 NOT NULL, - orig VARCHAR(255) NOT NULL, - dynamicDef BOOLEAN, - norm VARCHAR(255), - eType VARCHAR(157), - valueType INT4, - PRIMARY KEY (eName, owner_oid, ownerType, orig) + item_id INT4 NOT NULL, + owner_oid VARCHAR(36) NOT NULL, + ownerType INT4 NOT NULL, + orig VARCHAR(255) NOT NULL, + norm VARCHAR(255), + PRIMARY KEY (owner_oid, ownerType, item_id, orig) ); - CREATE TABLE m_object_ext_reference ( - eName VARCHAR(157) NOT NULL, - owner_oid VARCHAR(36) NOT NULL, - ownerType INT4 NOT NULL, - targetoid VARCHAR(36) NOT NULL, - dynamicDef BOOLEAN, + item_id INT4 NOT NULL, + owner_oid VARCHAR(36) NOT NULL, + ownerType INT4 NOT NULL, + targetoid VARCHAR(36) NOT NULL, relation VARCHAR(157), targetType INT4, - eType VARCHAR(157), - valueType INT4, - PRIMARY KEY (eName, owner_oid, ownerType, targetoid) + PRIMARY KEY (owner_oid, ownerType, item_id, targetoid) ); - CREATE TABLE m_object_ext_string ( - eName VARCHAR(157) NOT NULL, + item_id INT4 NOT NULL, owner_oid VARCHAR(36) NOT NULL, ownerType INT4 NOT NULL, stringValue VARCHAR(255) NOT NULL, - dynamicDef BOOLEAN, - eType VARCHAR(157), - valueType INT4, - PRIMARY KEY (eName, owner_oid, ownerType, stringValue) + PRIMARY KEY (owner_oid, ownerType, item_id, stringValue) ); - -CREATE TABLE m_object_template ( - name_norm VARCHAR(255), - name_orig VARCHAR(255), - type INT4, - oid VARCHAR(36) NOT NULL, - PRIMARY KEY (oid) +CREATE TABLE m_object_subtype ( + object_oid VARCHAR(36) NOT NULL, + subType VARCHAR(255) ); - CREATE TABLE m_object_text_info ( owner_oid VARCHAR(36) NOT NULL, text VARCHAR(255) NOT NULL, PRIMARY KEY (owner_oid, text) ); - CREATE TABLE m_operation_execution ( id INT4 NOT NULL, owner_oid VARCHAR(36) NOT NULL, @@ -564,33 +399,18 @@ CREATE TABLE m_operation_execution ( taskRef_targetOid VARCHAR(36), taskRef_type INT4, timestampValue TIMESTAMP, - PRIMARY KEY (id, owner_oid) -); - -CREATE TABLE m_org ( - costCenter VARCHAR(255), - displayOrder INT4, - locality_norm VARCHAR(255), - locality_orig VARCHAR(255), - name_norm VARCHAR(255), - name_orig VARCHAR(255), - tenant BOOLEAN, - oid VARCHAR(36) NOT NULL, - PRIMARY KEY (oid) + PRIMARY KEY (owner_oid, id) ); - CREATE TABLE m_org_closure ( ancestor_oid VARCHAR(36) NOT NULL, descendant_oid VARCHAR(36) NOT NULL, val INT4, PRIMARY KEY (ancestor_oid, descendant_oid) ); - CREATE TABLE m_org_org_type ( org_oid VARCHAR(36) NOT NULL, orgType VARCHAR(255) ); - CREATE TABLE m_reference ( owner_oid VARCHAR(36) NOT NULL, reference_type INT4 NOT NULL, @@ -599,77 +419,10 @@ CREATE TABLE m_reference ( targetType INT4, PRIMARY KEY (owner_oid, reference_type, relation, targetOid) ); - -CREATE TABLE m_report ( - export INT4, - name_norm VARCHAR(255), - name_orig VARCHAR(255), - orientation INT4, - parent BOOLEAN, - useHibernateSession BOOLEAN, - oid VARCHAR(36) NOT NULL, - PRIMARY KEY (oid) -); - -CREATE TABLE m_report_output ( - name_norm VARCHAR(255), - name_orig VARCHAR(255), - reportRef_relation VARCHAR(157), - reportRef_targetOid VARCHAR(36), - reportRef_type INT4, - oid VARCHAR(36) NOT NULL, - PRIMARY KEY (oid) -); - -CREATE TABLE m_resource ( - administrativeState INT4, - connectorRef_relation VARCHAR(157), - connectorRef_targetOid VARCHAR(36), - connectorRef_type INT4, - name_norm VARCHAR(255), - name_orig VARCHAR(255), - o16_lastAvailabilityStatus INT4, - oid VARCHAR(36) NOT NULL, - PRIMARY KEY (oid) -); - -CREATE TABLE m_role ( - name_norm VARCHAR(255), - name_orig VARCHAR(255), - roleType VARCHAR(255), - oid VARCHAR(36) NOT NULL, - PRIMARY KEY (oid) -); - -CREATE TABLE m_security_policy ( - name_norm VARCHAR(255), - name_orig VARCHAR(255), - oid VARCHAR(36) NOT NULL, - PRIMARY KEY (oid) -); - -CREATE TABLE m_sequence ( - name_norm VARCHAR(255), - name_orig VARCHAR(255), - oid VARCHAR(36) NOT NULL, - PRIMARY KEY (oid) -); - -CREATE TABLE m_service ( - displayOrder INT4, - locality_norm VARCHAR(255), - locality_orig VARCHAR(255), - name_norm VARCHAR(255), - name_orig VARCHAR(255), - oid VARCHAR(36) NOT NULL, - PRIMARY KEY (oid) -); - CREATE TABLE m_service_type ( service_oid VARCHAR(36) NOT NULL, serviceType VARCHAR(255) ); - CREATE TABLE m_shadow ( attemptNumber INT4, dead BOOLEAN, @@ -691,38 +444,30 @@ CREATE TABLE m_shadow ( oid VARCHAR(36) NOT NULL, PRIMARY KEY (oid) ); - -CREATE TABLE m_system_configuration ( - name_norm VARCHAR(255), - name_orig VARCHAR(255), - oid VARCHAR(36) NOT NULL, - PRIMARY KEY (oid) -); - CREATE TABLE m_task ( - binding INT4, - canRunOnNode VARCHAR(255), - category VARCHAR(255), - completionTimestamp TIMESTAMP, - executionStatus INT4, - handlerUri VARCHAR(255), - lastRunFinishTimestamp TIMESTAMP, - lastRunStartTimestamp TIMESTAMP, - name_norm VARCHAR(255), - name_orig VARCHAR(255), - node VARCHAR(255), - objectRef_relation VARCHAR(157), - objectRef_targetOid VARCHAR(36), - objectRef_type INT4, - ownerRef_relation VARCHAR(157), - ownerRef_targetOid VARCHAR(36), - ownerRef_type INT4, - parent VARCHAR(255), - recurrence INT4, - status INT4, - taskIdentifier VARCHAR(255), - threadStopAction INT4, - waitingReason INT4, + binding INT4, + canRunOnNode VARCHAR(255), + category VARCHAR(255), + completionTimestamp TIMESTAMP, + executionStatus INT4, + handlerUri VARCHAR(255), + lastRunFinishTimestamp TIMESTAMP, + lastRunStartTimestamp TIMESTAMP, + name_norm VARCHAR(255), + name_orig VARCHAR(255), + node VARCHAR(255), + objectRef_relation VARCHAR(157), + objectRef_targetOid VARCHAR(36), + objectRef_type INT4, + ownerRef_relation VARCHAR(157), + ownerRef_targetOid VARCHAR(36), + ownerRef_type INT4, + parent VARCHAR(255), + recurrence INT4, + status INT4, + taskIdentifier VARCHAR(255), + threadStopAction INT4, + waitingReason INT4, wfEndTimestamp TIMESTAMP, wfObjectRef_relation VARCHAR(157), wfObjectRef_targetOid VARCHAR(36), @@ -735,28 +480,224 @@ CREATE TABLE m_task ( wfTargetRef_relation VARCHAR(157), wfTargetRef_targetOid VARCHAR(36), wfTargetRef_type INT4, - oid VARCHAR(36) NOT NULL, + oid VARCHAR(36) NOT NULL, PRIMARY KEY (oid) ); - CREATE TABLE m_task_dependent ( task_oid VARCHAR(36) NOT NULL, dependent VARCHAR(255) ); - -CREATE TABLE m_trigger ( - id INT4 NOT NULL, - owner_oid VARCHAR(36) NOT NULL, - handlerUri VARCHAR(255), - timestampValue TIMESTAMP, - PRIMARY KEY (id, owner_oid) +CREATE TABLE m_user_employee_type ( + user_oid VARCHAR(36) NOT NULL, + employeeType VARCHAR(255) +); +CREATE TABLE m_user_organization ( + user_oid VARCHAR(36) NOT NULL, + norm VARCHAR(255), + orig VARCHAR(255) +); +CREATE TABLE m_user_organizational_unit ( + user_oid VARCHAR(36) NOT NULL, + norm VARCHAR(255), + orig VARCHAR(255) +); +CREATE TABLE m_abstract_role ( + approvalProcess VARCHAR(255), + autoassign_enabled BOOLEAN, + displayName_norm VARCHAR(255), + displayName_orig VARCHAR(255), + identifier VARCHAR(255), + ownerRef_relation VARCHAR(157), + ownerRef_targetOid VARCHAR(36), + ownerRef_type INT4, + requestable BOOLEAN, + riskLevel VARCHAR(255), + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +); +CREATE TABLE m_case ( + name_norm VARCHAR(255), + name_orig VARCHAR(255), + objectRef_relation VARCHAR(157), + objectRef_targetOid VARCHAR(36), + objectRef_type INT4, + state VARCHAR(255), + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +); +CREATE TABLE m_connector ( + connectorBundle VARCHAR(255), + connectorHostRef_relation VARCHAR(157), + connectorHostRef_targetOid VARCHAR(36), + connectorHostRef_type INT4, + 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) +); +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) +); +CREATE TABLE m_focus ( + administrativeStatus INT4, + archiveTimestamp TIMESTAMP, + disableReason VARCHAR(255), + disableTimestamp TIMESTAMP, + effectiveStatus INT4, + enableTimestamp TIMESTAMP, + validFrom TIMESTAMP, + validTo TIMESTAMP, + validityChangeTimestamp TIMESTAMP, + validityStatus INT4, + costCenter VARCHAR(255), + emailAddress VARCHAR(255), + 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, + PRIMARY KEY (oid) +); +CREATE TABLE m_form ( + name_norm VARCHAR(255), + name_orig VARCHAR(255), + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +); +CREATE TABLE m_function_library ( + name_norm VARCHAR(255), + name_orig VARCHAR(255), + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +); +CREATE TABLE m_generic_object ( + name_norm VARCHAR(255), + name_orig VARCHAR(255), + objectType VARCHAR(255), + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +); +CREATE TABLE m_lookup_table ( + name_norm VARCHAR(255), + name_orig VARCHAR(255), + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +); +CREATE TABLE m_lookup_table_row ( + id INT4 NOT NULL, + owner_oid VARCHAR(36) NOT NULL, + row_key VARCHAR(255), + label_norm VARCHAR(255), + label_orig VARCHAR(255), + lastChangeTimestamp TIMESTAMP, + row_value VARCHAR(255), + PRIMARY KEY (owner_oid, id) +); +CREATE TABLE m_node ( + name_norm VARCHAR(255), + name_orig VARCHAR(255), + nodeIdentifier VARCHAR(255), + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +); +CREATE TABLE m_object_template ( + name_norm VARCHAR(255), + name_orig VARCHAR(255), + type INT4, + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +); +CREATE TABLE m_org ( + displayOrder INT4, + name_norm VARCHAR(255), + name_orig VARCHAR(255), + tenant BOOLEAN, + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +); +CREATE TABLE m_report ( + export INT4, + name_norm VARCHAR(255), + name_orig VARCHAR(255), + orientation INT4, + parent BOOLEAN, + useHibernateSession BOOLEAN, + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +); +CREATE TABLE m_report_output ( + name_norm VARCHAR(255), + name_orig VARCHAR(255), + reportRef_relation VARCHAR(157), + reportRef_targetOid VARCHAR(36), + reportRef_type INT4, + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +); +CREATE TABLE m_resource ( + administrativeState INT4, + connectorRef_relation VARCHAR(157), + connectorRef_targetOid VARCHAR(36), + connectorRef_type INT4, + name_norm VARCHAR(255), + name_orig VARCHAR(255), + o16_lastAvailabilityStatus INT4, + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +); +CREATE TABLE m_role ( + name_norm VARCHAR(255), + name_orig VARCHAR(255), + roleType VARCHAR(255), + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +); +CREATE TABLE m_security_policy ( + name_norm VARCHAR(255), + name_orig VARCHAR(255), + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +); +CREATE TABLE m_sequence ( + name_norm VARCHAR(255), + name_orig VARCHAR(255), + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +); +CREATE TABLE m_service ( + displayOrder INT4, + name_norm VARCHAR(255), + name_orig VARCHAR(255), + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +); +CREATE TABLE m_system_configuration ( + name_norm VARCHAR(255), + name_orig VARCHAR(255), + oid VARCHAR(36) NOT NULL, + PRIMARY KEY (oid) +); +CREATE TABLE m_trigger ( + id INT4 NOT NULL, + owner_oid VARCHAR(36) NOT NULL, + handlerUri VARCHAR(255), + timestampValue TIMESTAMP, + PRIMARY KEY (owner_oid, id) ); - CREATE TABLE m_user ( additionalName_norm VARCHAR(255), additionalName_orig VARCHAR(255), - costCenter VARCHAR(255), - emailAddress VARCHAR(255), employeeNumber VARCHAR(255), familyName_norm VARCHAR(255), familyName_orig VARCHAR(255), @@ -768,593 +709,425 @@ CREATE TABLE m_user ( honorificPrefix_orig VARCHAR(255), honorificSuffix_norm VARCHAR(255), honorificSuffix_orig VARCHAR(255), - locale VARCHAR(255), - locality_norm VARCHAR(255), - locality_orig VARCHAR(255), name_norm VARCHAR(255), name_orig VARCHAR(255), nickName_norm VARCHAR(255), nickName_orig VARCHAR(255), - preferredLanguage VARCHAR(255), - status INT4, - telephoneNumber VARCHAR(255), - timezone VARCHAR(255), title_norm VARCHAR(255), title_orig VARCHAR(255), oid VARCHAR(36) NOT NULL, PRIMARY KEY (oid) ); - -CREATE TABLE m_user_employee_type ( - user_oid VARCHAR(36) NOT NULL, - employeeType VARCHAR(255) -); - -CREATE TABLE m_user_organization ( - user_oid VARCHAR(36) NOT NULL, - norm VARCHAR(255), - orig VARCHAR(255) -); - -CREATE TABLE m_user_organizational_unit ( - user_oid VARCHAR(36) NOT NULL, - norm VARCHAR(255), - orig VARCHAR(255) -); - CREATE TABLE m_value_policy ( name_norm VARCHAR(255), name_orig VARCHAR(255), oid VARCHAR(36) NOT NULL, PRIMARY KEY (oid) ); - -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); - -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); - -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 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 (extensionType, eName, booleanValue); - -CREATE INDEX iAExtensionDate ON m_assignment_ext_date (extensionType, eName, dateValue); - -CREATE INDEX iAExtensionLong ON m_assignment_ext_long (extensionType, eName, longValue); - -CREATE INDEX iAExtensionPolyString ON m_assignment_ext_poly (extensionType, eName, orig); - -CREATE INDEX iAExtensionReference ON m_assignment_ext_reference (extensionType, eName, targetoid); - -CREATE INDEX iAExtensionString ON m_assignment_ext_string (extensionType, eName, stringValue); - -CREATE INDEX iAssignmentReferenceTargetOid ON m_assignment_reference (targetOid); - -CREATE INDEX iTimestampValue ON m_audit_event (timestampValue); - -CREATE INDEX iChangedItemPath ON m_audit_item (changedItemPath); - +CREATE INDEX iCertCampaignNameOrig + ON m_acc_cert_campaign (name_orig); +ALTER TABLE IF EXISTS 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 IF EXISTS 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 iTimestampValue + ON m_audit_event (timestampValue); +CREATE INDEX iChangedItemPath + ON m_audit_item (changedItemPath); CREATE INDEX iAuditPropValRecordId ON m_audit_prop_value (record_id); - CREATE INDEX iAuditRefValRecordId ON m_audit_ref_value (record_id); - -ALTER TABLE m_case - ADD CONSTRAINT uc_case_name UNIQUE (name_norm); - -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); - -ALTER TABLE m_form - ADD CONSTRAINT uc_form_name UNIQUE (name_norm); - -ALTER TABLE m_function_library - ADD CONSTRAINT uc_function_library_name UNIQUE (name_norm); - -ALTER TABLE m_generic_object -ADD CONSTRAINT uc_generic_object_name UNIQUE (name_norm); - -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); - -ALTER TABLE m_node -ADD CONSTRAINT uc_node_name UNIQUE (name_norm); - -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 (ownerType, eName, booleanValue); - -CREATE INDEX iExtensionBooleanDef ON m_object_ext_boolean (owner_oid, ownerType); - -CREATE INDEX iExtensionDate ON m_object_ext_date (ownerType, eName, dateValue); - -CREATE INDEX iExtensionDateDef ON m_object_ext_date (owner_oid, ownerType); - -CREATE INDEX iExtensionLong ON m_object_ext_long (ownerType, eName, longValue); - -CREATE INDEX iExtensionLongDef ON m_object_ext_long (owner_oid, ownerType); - -CREATE INDEX iExtensionPolyString ON m_object_ext_poly (ownerType, eName, orig); - -CREATE INDEX iExtensionPolyStringDef ON m_object_ext_poly (owner_oid, ownerType); - -CREATE INDEX iExtensionReference ON m_object_ext_reference (ownerType, eName, targetoid); - -CREATE INDEX iExtensionReferenceDef ON m_object_ext_reference (owner_oid, ownerType); - -CREATE INDEX iExtensionString ON m_object_ext_string (ownerType, eName, stringValue); - -CREATE INDEX iExtensionStringDef ON m_object_ext_string (owner_oid, ownerType); - -ALTER TABLE m_object_template -ADD CONSTRAINT uc_object_template_name UNIQUE (name_norm); - +CREATE INDEX iCaseWorkItemRefTargetOid + ON m_case_wi_reference (targetOid); +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); - -ALTER TABLE m_org -ADD CONSTRAINT uc_org_name UNIQUE (name_norm); - -CREATE INDEX iDisplayOrder ON m_org (displayOrder); - -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 iReferenceTargetOid ON m_reference (targetOid); - -ALTER TABLE m_report -ADD CONSTRAINT uc_report_name UNIQUE (name_norm); - -CREATE INDEX iReportParent ON m_report (parent); - -ALTER TABLE m_resource -ADD CONSTRAINT uc_resource_name UNIQUE (name_norm); - -ALTER TABLE m_role -ADD CONSTRAINT uc_role_name UNIQUE (name_norm); - -ALTER TABLE m_security_policy -ADD CONSTRAINT uc_security_policy_name UNIQUE (name_norm); - -ALTER TABLE m_sequence -ADD CONSTRAINT uc_sequence_name UNIQUE (name_norm); - -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); - -ALTER TABLE m_system_configuration -ADD CONSTRAINT uc_system_configuration_name UNIQUE (name_norm); - -ALTER TABLE m_task +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 IF EXISTS m_task ADD CONSTRAINT uc_task_identifier UNIQUE (taskIdentifier); - -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 iTriggerTimestamp ON m_trigger (timestampValue); - -ALTER TABLE m_user -ADD CONSTRAINT uc_user_name UNIQUE (name_norm); - -CREATE INDEX iEmployeeNumber ON m_user (employeeNumber); - -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 iLocality ON m_user (locality_orig); - -ALTER TABLE m_value_policy -ADD CONSTRAINT uc_value_policy_name UNIQUE (name_norm); - -ALTER TABLE m_abstract_role -ADD CONSTRAINT fk_abstract_role -FOREIGN KEY (oid) -REFERENCES m_focus; - -ALTER TABLE m_acc_cert_campaign - 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; - -ALTER TABLE m_acc_cert_definition - 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_id, owner_owner_oid) -REFERENCES m_acc_cert_case; - -ALTER TABLE m_acc_cert_wi_reference - ADD CONSTRAINT fk_acc_cert_wi_ref_owner -FOREIGN KEY (owner_id, owner_owner_id, owner_owner_owner_oid) -REFERENCES m_acc_cert_wi; - -ALTER TABLE m_assignment -ADD CONSTRAINT fk_assignment_owner -FOREIGN KEY (owner_oid) -REFERENCES m_object; - -ALTER TABLE m_assignment_ext_boolean -ADD CONSTRAINT fk_assignment_ext_boolean -FOREIGN KEY (anyContainer_owner_id, anyContainer_owner_owner_oid) -REFERENCES m_assignment_extension; - -ALTER TABLE m_assignment_ext_date -ADD CONSTRAINT fk_assignment_ext_date -FOREIGN KEY (anyContainer_owner_id, anyContainer_owner_owner_oid) -REFERENCES m_assignment_extension; - -ALTER TABLE m_assignment_ext_long -ADD CONSTRAINT fk_assignment_ext_long -FOREIGN KEY (anyContainer_owner_id, anyContainer_owner_owner_oid) -REFERENCES m_assignment_extension; - -ALTER TABLE m_assignment_ext_poly -ADD CONSTRAINT fk_assignment_ext_poly -FOREIGN KEY (anyContainer_owner_id, anyContainer_owner_owner_oid) -REFERENCES m_assignment_extension; - -ALTER TABLE m_assignment_ext_reference -ADD CONSTRAINT fk_assignment_ext_reference -FOREIGN KEY (anyContainer_owner_id, anyContainer_owner_owner_oid) -REFERENCES m_assignment_extension; - -ALTER TABLE m_assignment_ext_string -ADD CONSTRAINT fk_assignment_ext_string -FOREIGN KEY (anyContainer_owner_id, anyContainer_owner_owner_oid) -REFERENCES m_assignment_extension; - -ALTER TABLE m_assignment_policy_situation - ADD CONSTRAINT fk_assignment_policy_situation -FOREIGN KEY (assignment_id, assignment_oid) -REFERENCES m_assignment; - -ALTER TABLE m_assignment_reference -ADD CONSTRAINT fk_assignment_reference -FOREIGN KEY (owner_id, owner_owner_oid) -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 - ADD CONSTRAINT fk_case -FOREIGN KEY (oid) -REFERENCES m_object; - -ALTER TABLE m_connector -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; - -ALTER TABLE m_connector_target_system -ADD CONSTRAINT fk_connector_target_system -FOREIGN KEY (connector_oid) -REFERENCES m_connector; - -ALTER TABLE m_exclusion -ADD CONSTRAINT fk_exclusion_owner -FOREIGN KEY (owner_oid) -REFERENCES m_object; - -ALTER TABLE m_focus -ADD CONSTRAINT fk_focus -FOREIGN KEY (oid) -REFERENCES m_object; - -ALTER TABLE m_focus_photo -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; - -ALTER TABLE m_form - 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; - -ALTER TABLE m_generic_object -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; - -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_ext_boolean -ADD CONSTRAINT fk_object_ext_boolean -FOREIGN KEY (owner_oid) -REFERENCES m_object; - -ALTER TABLE m_object_ext_date -ADD CONSTRAINT fk_object_ext_date -FOREIGN KEY (owner_oid) -REFERENCES m_object; - -ALTER TABLE m_object_ext_long -ADD CONSTRAINT fk_object_ext_long -FOREIGN KEY (owner_oid) -REFERENCES m_object; - -ALTER TABLE m_object_ext_poly -ADD CONSTRAINT fk_object_ext_poly -FOREIGN KEY (owner_oid) -REFERENCES m_object; - -ALTER TABLE m_object_ext_reference -ADD CONSTRAINT fk_object_ext_reference -FOREIGN KEY (owner_oid) -REFERENCES m_object; - -ALTER TABLE m_object_ext_string -ADD CONSTRAINT fk_object_ext_string -FOREIGN KEY (owner_oid) -REFERENCES m_object; - -ALTER TABLE m_object_template -ADD CONSTRAINT fk_object_template -FOREIGN KEY (oid) -REFERENCES m_object; - -ALTER TABLE m_object_text_info - 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; - -ALTER TABLE m_org -ADD CONSTRAINT fk_org -FOREIGN KEY (oid) -REFERENCES m_abstract_role; - -ALTER TABLE m_org_closure -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; - -ALTER TABLE m_org_org_type -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; - -ALTER TABLE m_report -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; - -ALTER TABLE m_resource -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; - -ALTER TABLE m_security_policy -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; - -ALTER TABLE m_service - ADD CONSTRAINT fk_service -FOREIGN KEY (oid) -REFERENCES m_abstract_role; - -ALTER TABLE m_service_type - 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; - -ALTER TABLE m_system_configuration -ADD CONSTRAINT fk_system_configuration -FOREIGN KEY (oid) -REFERENCES m_object; - -ALTER TABLE m_task -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; - -ALTER TABLE m_trigger -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; - -ALTER TABLE m_user_employee_type -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; - -ALTER TABLE m_user_organizational_unit -ADD CONSTRAINT fk_user_org_unit -FOREIGN KEY (user_oid) -REFERENCES m_user; - -ALTER TABLE m_value_policy -ADD CONSTRAINT fk_value_policy -FOREIGN KEY (oid) -REFERENCES m_object; - -CREATE SEQUENCE hibernate_sequence START 1 INCREMENT 1; +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 IF EXISTS 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 IF EXISTS 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 IF EXISTS m_form + ADD CONSTRAINT uc_form_name UNIQUE (name_norm); +CREATE INDEX iFunctionLibraryNameOrig + ON m_function_library (name_orig); +ALTER TABLE IF EXISTS m_function_library + ADD CONSTRAINT uc_function_library_name UNIQUE (name_norm); +CREATE INDEX iGenericObjectNameOrig + ON m_generic_object (name_orig); +ALTER TABLE IF EXISTS m_generic_object + ADD CONSTRAINT uc_generic_object_name UNIQUE (name_norm); +CREATE INDEX iLookupTableNameOrig + ON m_lookup_table (name_orig); +ALTER TABLE IF EXISTS m_lookup_table + ADD CONSTRAINT uc_lookup_name UNIQUE (name_norm); +ALTER TABLE IF EXISTS m_lookup_table_row + ADD CONSTRAINT uc_row_key UNIQUE (owner_oid, row_key); +CREATE INDEX iNodeNameOrig + ON m_node (name_orig); +ALTER TABLE IF EXISTS m_node + ADD CONSTRAINT uc_node_name UNIQUE (name_norm); +CREATE INDEX iObjectTemplateNameOrig + ON m_object_template (name_orig); +ALTER TABLE IF EXISTS 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 IF EXISTS 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 IF EXISTS 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 IF EXISTS m_resource + ADD CONSTRAINT uc_resource_name UNIQUE (name_norm); +CREATE INDEX iRoleNameOrig + ON m_role (name_orig); +ALTER TABLE IF EXISTS m_role + ADD CONSTRAINT uc_role_name UNIQUE (name_norm); +CREATE INDEX iSecurityPolicyNameOrig + ON m_security_policy (name_orig); +ALTER TABLE IF EXISTS m_security_policy + ADD CONSTRAINT uc_security_policy_name UNIQUE (name_norm); +CREATE INDEX iSequenceNameOrig + ON m_sequence (name_orig); +ALTER TABLE IF EXISTS 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 IF EXISTS 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 IF EXISTS m_user + ADD CONSTRAINT uc_user_name UNIQUE (name_norm); +CREATE INDEX iValuePolicyNameOrig + ON m_value_policy (name_orig); +ALTER TABLE IF EXISTS m_value_policy + ADD CONSTRAINT uc_value_policy_name UNIQUE (name_norm); +ALTER TABLE IF EXISTS m_acc_cert_campaign + ADD CONSTRAINT fk_acc_cert_campaign FOREIGN KEY (oid) REFERENCES m_object; +ALTER TABLE IF EXISTS m_acc_cert_case + ADD CONSTRAINT fk_acc_cert_case_owner FOREIGN KEY (owner_oid) REFERENCES m_acc_cert_campaign; +ALTER TABLE IF EXISTS m_acc_cert_definition + ADD CONSTRAINT fk_acc_cert_definition FOREIGN KEY (oid) REFERENCES m_object; +ALTER TABLE IF EXISTS m_acc_cert_wi + ADD CONSTRAINT fk_acc_cert_wi_owner FOREIGN KEY (owner_owner_oid, owner_id) REFERENCES m_acc_cert_case; +ALTER TABLE IF EXISTS 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; +ALTER TABLE IF EXISTS m_assignment + ADD CONSTRAINT fk_assignment_owner FOREIGN KEY (owner_oid) REFERENCES m_object; +ALTER TABLE IF EXISTS m_assignment_ext_boolean + ADD CONSTRAINT fk_a_ext_boolean_owner FOREIGN KEY (anyContainer_owner_owner_oid, anyContainer_owner_id) REFERENCES m_assignment_extension; +ALTER TABLE IF EXISTS m_assignment_ext_boolean + ADD CONSTRAINT fk_a_ext_boolean_item FOREIGN KEY (item_id) REFERENCES m_ext_item; +ALTER TABLE IF EXISTS m_assignment_ext_date + ADD CONSTRAINT fk_a_ext_date_owner FOREIGN KEY (anyContainer_owner_owner_oid, anyContainer_owner_id) REFERENCES m_assignment_extension; +ALTER TABLE IF EXISTS m_assignment_ext_date + ADD CONSTRAINT fk_a_ext_date_item FOREIGN KEY (item_id) REFERENCES m_ext_item; +ALTER TABLE IF EXISTS m_assignment_ext_long + ADD CONSTRAINT fk_a_ext_long_owner FOREIGN KEY (anyContainer_owner_owner_oid, anyContainer_owner_id) REFERENCES m_assignment_extension; +ALTER TABLE IF EXISTS m_assignment_ext_long + ADD CONSTRAINT fk_a_ext_long_item FOREIGN KEY (item_id) REFERENCES m_ext_item; +ALTER TABLE IF EXISTS m_assignment_ext_poly + ADD CONSTRAINT fk_a_ext_poly_owner FOREIGN KEY (anyContainer_owner_owner_oid, anyContainer_owner_id) REFERENCES m_assignment_extension; +ALTER TABLE IF EXISTS m_assignment_ext_poly + ADD CONSTRAINT fk_a_ext_poly_item FOREIGN KEY (item_id) REFERENCES m_ext_item; +ALTER TABLE IF EXISTS m_assignment_ext_reference + ADD CONSTRAINT fk_a_ext_reference_owner FOREIGN KEY (anyContainer_owner_owner_oid, anyContainer_owner_id) REFERENCES m_assignment_extension; +ALTER TABLE IF EXISTS m_assignment_ext_reference + ADD CONSTRAINT fk_a_ext_boolean_reference FOREIGN KEY (item_id) REFERENCES m_ext_item; +ALTER TABLE IF EXISTS m_assignment_ext_string + ADD CONSTRAINT fk_a_ext_string_owner FOREIGN KEY (anyContainer_owner_owner_oid, anyContainer_owner_id) REFERENCES m_assignment_extension; +ALTER TABLE IF EXISTS m_assignment_ext_string + ADD CONSTRAINT fk_a_ext_string_item FOREIGN KEY (item_id) REFERENCES m_ext_item; +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 + ADD CONSTRAINT fk_case_wi_reference_owner FOREIGN KEY (owner_owner_oid, owner_id) REFERENCES m_case_wi; +ALTER TABLE IF EXISTS m_connector_target_system + ADD CONSTRAINT fk_connector_target_system FOREIGN KEY (connector_oid) REFERENCES m_connector; +ALTER TABLE IF EXISTS m_focus_photo + ADD CONSTRAINT fk_focus_photo FOREIGN KEY (owner_oid) REFERENCES m_focus; +ALTER TABLE IF EXISTS m_focus_policy_situation + ADD CONSTRAINT fk_focus_policy_situation FOREIGN KEY (focus_oid) REFERENCES m_focus; +ALTER TABLE IF EXISTS m_object_ext_boolean + ADD CONSTRAINT fk_o_ext_boolean_owner FOREIGN KEY (owner_oid) REFERENCES m_object; +ALTER TABLE IF EXISTS m_object_ext_boolean + ADD CONSTRAINT fk_o_ext_boolean_item FOREIGN KEY (item_id) REFERENCES m_ext_item; +ALTER TABLE IF EXISTS m_object_ext_date + ADD CONSTRAINT fk_o_ext_date_owner FOREIGN KEY (owner_oid) REFERENCES m_object; +ALTER TABLE IF EXISTS m_object_ext_date + ADD CONSTRAINT fk_o_ext_date_item FOREIGN KEY (item_id) REFERENCES m_ext_item; +ALTER TABLE IF EXISTS m_object_ext_long + ADD CONSTRAINT fk_object_ext_long FOREIGN KEY (owner_oid) REFERENCES m_object; +ALTER TABLE IF EXISTS m_object_ext_long + ADD CONSTRAINT fk_o_ext_long_item FOREIGN KEY (item_id) REFERENCES m_ext_item; +ALTER TABLE IF EXISTS m_object_ext_poly + ADD CONSTRAINT fk_o_ext_poly_owner FOREIGN KEY (owner_oid) REFERENCES m_object; +ALTER TABLE IF EXISTS m_object_ext_poly + ADD CONSTRAINT fk_o_ext_poly_item FOREIGN KEY (item_id) REFERENCES m_ext_item; +ALTER TABLE IF EXISTS m_object_ext_reference + ADD CONSTRAINT fk_o_ext_reference_owner FOREIGN KEY (owner_oid) REFERENCES m_object; +ALTER TABLE IF EXISTS m_object_ext_reference + ADD CONSTRAINT fk_o_ext_reference_item FOREIGN KEY (item_id) REFERENCES m_ext_item; +ALTER TABLE IF EXISTS m_object_ext_string + ADD CONSTRAINT fk_object_ext_string FOREIGN KEY (owner_oid) REFERENCES m_object; +ALTER TABLE IF EXISTS m_object_ext_string + ADD CONSTRAINT fk_o_ext_string_item FOREIGN KEY (item_id) REFERENCES m_ext_item; +ALTER TABLE IF EXISTS m_object_subtype + ADD CONSTRAINT fk_object_subtype FOREIGN KEY (object_oid) REFERENCES m_object; +ALTER TABLE IF EXISTS m_object_text_info + ADD CONSTRAINT fk_object_text_info_owner FOREIGN KEY (owner_oid) REFERENCES m_object; +ALTER TABLE IF EXISTS m_operation_execution + ADD CONSTRAINT fk_op_exec_owner FOREIGN KEY (owner_oid) REFERENCES m_object; +ALTER TABLE IF EXISTS m_org_closure + ADD CONSTRAINT fk_ancestor FOREIGN KEY (ancestor_oid) REFERENCES m_object; +ALTER TABLE IF EXISTS m_org_closure + ADD CONSTRAINT fk_descendant FOREIGN KEY (descendant_oid) REFERENCES m_object; +ALTER TABLE IF EXISTS m_org_org_type + ADD CONSTRAINT fk_org_org_type FOREIGN KEY (org_oid) REFERENCES m_org; +ALTER TABLE IF EXISTS m_reference + ADD CONSTRAINT fk_reference_owner FOREIGN KEY (owner_oid) REFERENCES m_object; +ALTER TABLE IF EXISTS m_service_type + ADD CONSTRAINT fk_service_type FOREIGN KEY (service_oid) REFERENCES m_service; +ALTER TABLE IF EXISTS m_shadow + ADD CONSTRAINT fk_shadow FOREIGN KEY (oid) REFERENCES m_object; +ALTER TABLE IF EXISTS m_task + ADD CONSTRAINT fk_task FOREIGN KEY (oid) REFERENCES m_object; +ALTER TABLE IF EXISTS m_task_dependent + ADD CONSTRAINT fk_task_dependent FOREIGN KEY (task_oid) REFERENCES m_task; +ALTER TABLE IF EXISTS m_user_employee_type + ADD CONSTRAINT fk_user_employee_type FOREIGN KEY (user_oid) REFERENCES m_user; +ALTER TABLE IF EXISTS m_user_organization + ADD CONSTRAINT fk_user_organization FOREIGN KEY (user_oid) REFERENCES m_user; +ALTER TABLE IF EXISTS m_user_organizational_unit + ADD CONSTRAINT fk_user_org_unit FOREIGN KEY (user_oid) REFERENCES m_user; +ALTER TABLE IF EXISTS m_abstract_role + ADD CONSTRAINT fk_abstract_role FOREIGN KEY (oid) REFERENCES m_focus; +ALTER TABLE IF EXISTS m_case + ADD CONSTRAINT fk_case FOREIGN KEY (oid) REFERENCES m_object; +ALTER TABLE IF EXISTS m_connector + ADD CONSTRAINT fk_connector FOREIGN KEY (oid) REFERENCES m_object; +ALTER TABLE IF EXISTS m_connector_host + ADD CONSTRAINT fk_connector_host FOREIGN KEY (oid) REFERENCES m_object; +ALTER TABLE IF EXISTS m_focus + ADD CONSTRAINT fk_focus FOREIGN KEY (oid) REFERENCES m_object; +ALTER TABLE IF EXISTS m_form + ADD CONSTRAINT fk_form FOREIGN KEY (oid) REFERENCES m_object; +ALTER TABLE IF EXISTS m_function_library + ADD CONSTRAINT fk_function_library FOREIGN KEY (oid) REFERENCES m_object; +ALTER TABLE IF EXISTS m_generic_object + ADD CONSTRAINT fk_generic_object FOREIGN KEY (oid) REFERENCES m_object; +ALTER TABLE IF EXISTS m_lookup_table + ADD CONSTRAINT fk_lookup_table FOREIGN KEY (oid) REFERENCES m_object; +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_template + ADD CONSTRAINT fk_object_template FOREIGN KEY (oid) REFERENCES m_object; +ALTER TABLE IF EXISTS m_org + ADD CONSTRAINT fk_org FOREIGN KEY (oid) REFERENCES m_abstract_role; +ALTER TABLE IF EXISTS m_report + ADD CONSTRAINT fk_report FOREIGN KEY (oid) REFERENCES m_object; +ALTER TABLE IF EXISTS m_report_output + ADD CONSTRAINT fk_report_output FOREIGN KEY (oid) REFERENCES m_object; +ALTER TABLE IF EXISTS m_resource + ADD CONSTRAINT fk_resource FOREIGN KEY (oid) REFERENCES m_object; +ALTER TABLE IF EXISTS m_role + ADD CONSTRAINT fk_role FOREIGN KEY (oid) REFERENCES m_abstract_role; +ALTER TABLE IF EXISTS m_security_policy + ADD CONSTRAINT fk_security_policy FOREIGN KEY (oid) REFERENCES m_object; +ALTER TABLE IF EXISTS m_sequence + ADD CONSTRAINT fk_sequence FOREIGN KEY (oid) REFERENCES m_object; +ALTER TABLE IF EXISTS m_service + ADD CONSTRAINT fk_service FOREIGN KEY (oid) REFERENCES m_abstract_role; +ALTER TABLE IF EXISTS m_system_configuration + ADD CONSTRAINT fk_system_configuration FOREIGN KEY (oid) REFERENCES m_object; +ALTER TABLE IF EXISTS m_trigger + ADD CONSTRAINT fk_trigger_owner FOREIGN KEY (owner_oid) REFERENCES m_object; +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... -- diff --git a/config/sql/_all/postgresql-upgrade-3.6-3.7.sql b/config/sql/_all/postgresql-upgrade-3.6-3.7.sql deleted file mode 100644 index 2653dbefb1e..00000000000 --- a/config/sql/_all/postgresql-upgrade-3.6-3.7.sql +++ /dev/null @@ -1,32 +0,0 @@ -ALTER TABLE qrtz_triggers ADD COLUMN EXECUTION_GROUP VARCHAR(200) NULL; -ALTER TABLE qrtz_fired_triggers ADD COLUMN EXECUTION_GROUP VARCHAR(200) NULL; - -CREATE TABLE m_function_library ( - name_norm VARCHAR(255), - name_orig VARCHAR(255), - oid VARCHAR(36) NOT NULL, - PRIMARY KEY (oid) -); - -ALTER TABLE m_function_library - ADD CONSTRAINT uc_function_library_name UNIQUE (name_norm); - -ALTER TABLE m_function_library - ADD CONSTRAINT fk_function_library -FOREIGN KEY (oid) -REFERENCES m_object; - -ALTER TABLE m_abstract_role ADD COLUMN autoassign_enabled BOOLEAN; - -CREATE INDEX iAutoassignEnabled - ON m_abstract_role (autoassign_enabled); - -ALTER TABLE m_task - ADD CONSTRAINT uc_task_identifier UNIQUE (taskIdentifier); - -ALTER TABLE m_audit_event ADD COLUMN attorneyName VARCHAR(255); -ALTER TABLE m_audit_event ADD COLUMN attorneyOid VARCHAR(36); -ALTER TABLE m_audit_event ADD COLUMN initiatorType INT4; - -CREATE INDEX iOpExecOwnerOid - ON m_operation_execution (owner_oid); diff --git a/config/sql/_all/postgresql-upgrade-3.7-3.8.sql b/config/sql/_all/postgresql-upgrade-3.7-3.8.sql new file mode 100644 index 00000000000..a50742d9834 --- /dev/null +++ b/config/sql/_all/postgresql-upgrade-3.7-3.8.sql @@ -0,0 +1,21 @@ +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); + +DROP TABLE m_exclusion; + diff --git a/config/sql/_all/sqlserver-3.7-all.sql b/config/sql/_all/sqlserver-3.8-all.sql similarity index 71% rename from config/sql/_all/sqlserver-3.7-all.sql rename to config/sql/_all/sqlserver-3.8-all.sql index b691367bdbd..51f141bcc3c 100644 --- a/config/sql/_all/sqlserver-3.7-all.sql +++ b/config/sql/_all/sqlserver-3.8-all.sql @@ -1,18 +1,3 @@ -CREATE TABLE m_abstract_role ( - approvalProcess NVARCHAR(255) COLLATE database_default, - autoassign_enabled BIT, - displayName_norm NVARCHAR(255) COLLATE database_default, - displayName_orig NVARCHAR(255) COLLATE database_default, - identifier NVARCHAR(255) COLLATE database_default, - ownerRef_relation NVARCHAR(157) COLLATE database_default, - ownerRef_targetOid NVARCHAR(36) COLLATE database_default, - ownerRef_type INT, - requestable BIT, - riskLevel NVARCHAR(255) COLLATE database_default, - oid NVARCHAR(36) COLLATE database_default NOT NULL, - PRIMARY KEY (oid) -); - CREATE TABLE m_acc_cert_campaign ( definitionRef_relation NVARCHAR(157) COLLATE database_default, definitionRef_targetOid NVARCHAR(36) COLLATE database_default, @@ -30,7 +15,6 @@ CREATE TABLE m_acc_cert_campaign ( oid NVARCHAR(36) COLLATE database_default NOT NULL, PRIMARY KEY (oid) ); - CREATE TABLE m_acc_cert_case ( id INT NOT NULL, owner_oid NVARCHAR(36) COLLATE database_default NOT NULL, @@ -63,9 +47,8 @@ CREATE TABLE m_acc_cert_case ( tenantRef_relation NVARCHAR(157) COLLATE database_default, tenantRef_targetOid NVARCHAR(36) COLLATE database_default, tenantRef_type INT, - PRIMARY KEY (id, owner_oid) + PRIMARY KEY (owner_oid, id) ); - CREATE TABLE m_acc_cert_definition ( handlerUri NVARCHAR(255) COLLATE database_default, lastCampaignClosedTimestamp DATETIME2, @@ -78,7 +61,6 @@ CREATE TABLE m_acc_cert_definition ( oid NVARCHAR(36) COLLATE database_default NOT NULL, PRIMARY KEY (oid) ); - CREATE TABLE m_acc_cert_wi ( id INT NOT NULL, owner_id INT NOT NULL, @@ -90,9 +72,8 @@ CREATE TABLE m_acc_cert_wi ( performerRef_targetOid NVARCHAR(36) COLLATE database_default, performerRef_type INT, stageNumber INT, - PRIMARY KEY (id, owner_id, owner_owner_oid) + PRIMARY KEY (owner_owner_oid, owner_id, id) ); - CREATE TABLE m_acc_cert_wi_reference ( owner_id INT NOT NULL, owner_owner_id INT NOT NULL, @@ -100,9 +81,8 @@ CREATE TABLE m_acc_cert_wi_reference ( relation NVARCHAR(157) COLLATE database_default NOT NULL, targetOid NVARCHAR(36) COLLATE database_default NOT NULL, targetType INT, - PRIMARY KEY (owner_id, owner_owner_id, owner_owner_owner_oid, relation, targetOid) + PRIMARY KEY (owner_owner_owner_oid, owner_owner_id, owner_id, relation, targetOid) ); - CREATE TABLE m_assignment ( id INT NOT NULL, owner_oid NVARCHAR(36) COLLATE database_default NOT NULL, @@ -143,84 +123,53 @@ CREATE TABLE m_assignment ( tenantRef_type INT, extId INT, extOid NVARCHAR(36) COLLATE database_default, - PRIMARY KEY (id, owner_oid) + PRIMARY KEY (owner_oid, id) ); - CREATE TABLE m_assignment_ext_boolean ( - eName NVARCHAR(157) COLLATE database_default NOT NULL, - anyContainer_owner_id INT NOT NULL, - anyContainer_owner_owner_oid NVARCHAR(36) COLLATE database_default NOT NULL, - booleanValue BIT NOT NULL, - extensionType INT, - dynamicDef BIT, - eType NVARCHAR(157) COLLATE database_default, - valueType INT, - PRIMARY KEY (eName, anyContainer_owner_id, anyContainer_owner_owner_oid, booleanValue) + item_id INT NOT NULL, + anyContainer_owner_id INT NOT NULL, + anyContainer_owner_owner_oid NVARCHAR(36) COLLATE database_default NOT NULL, + booleanValue BIT NOT NULL, + PRIMARY KEY ( anyContainer_owner_owner_oid, anyContainer_owner_id, item_id, booleanValue) ); - CREATE TABLE m_assignment_ext_date ( - eName NVARCHAR(157) COLLATE database_default NOT NULL, - anyContainer_owner_id INT NOT NULL, - anyContainer_owner_owner_oid NVARCHAR(36) COLLATE database_default NOT NULL, - dateValue DATETIME2 NOT NULL, - extensionType INT, - dynamicDef BIT, - eType NVARCHAR(157) COLLATE database_default, - valueType INT, - PRIMARY KEY (eName, anyContainer_owner_id, anyContainer_owner_owner_oid, dateValue) + item_id INT NOT NULL, + anyContainer_owner_id INT NOT NULL, + anyContainer_owner_owner_oid NVARCHAR(36) COLLATE database_default NOT NULL, + dateValue DATETIME2 NOT NULL, + PRIMARY KEY ( anyContainer_owner_owner_oid, anyContainer_owner_id, item_id, dateValue) ); - CREATE TABLE m_assignment_ext_long ( - eName NVARCHAR(157) COLLATE database_default NOT NULL, - anyContainer_owner_id INT NOT NULL, - anyContainer_owner_owner_oid NVARCHAR(36) COLLATE database_default NOT NULL, - longValue BIGINT NOT NULL, - extensionType INT, - dynamicDef BIT, - eType NVARCHAR(157) COLLATE database_default, - valueType INT, - PRIMARY KEY (eName, anyContainer_owner_id, anyContainer_owner_owner_oid, longValue) + item_id INT NOT NULL, + anyContainer_owner_id INT NOT NULL, + anyContainer_owner_owner_oid NVARCHAR(36) COLLATE database_default NOT NULL, + longValue BIGINT NOT NULL, + PRIMARY KEY ( anyContainer_owner_owner_oid, anyContainer_owner_id, item_id, longValue) ); - CREATE TABLE m_assignment_ext_poly ( - eName NVARCHAR(157) COLLATE database_default NOT NULL, + item_id INT NOT NULL, anyContainer_owner_id INT NOT NULL, anyContainer_owner_owner_oid NVARCHAR(36) COLLATE database_default NOT NULL, orig NVARCHAR(255) COLLATE database_default NOT NULL, - extensionType INT, - dynamicDef BIT, norm NVARCHAR(255) COLLATE database_default, - eType NVARCHAR(157) COLLATE database_default, - valueType INT, - PRIMARY KEY (eName, anyContainer_owner_id, anyContainer_owner_owner_oid, orig) + PRIMARY KEY ( anyContainer_owner_owner_oid, anyContainer_owner_id, item_id, orig) ); - CREATE TABLE m_assignment_ext_reference ( - eName NVARCHAR(157) COLLATE database_default NOT NULL, - anyContainer_owner_id INT NOT NULL, - anyContainer_owner_owner_oid NVARCHAR(36) COLLATE database_default NOT NULL, - targetoid NVARCHAR(36) COLLATE database_default NOT NULL, - extensionType INT, - dynamicDef BIT, + item_id INT NOT NULL, + anyContainer_owner_id INT NOT NULL, + anyContainer_owner_owner_oid NVARCHAR(36) COLLATE database_default NOT NULL, + targetoid NVARCHAR(36) COLLATE database_default NOT NULL, relation NVARCHAR(157) COLLATE database_default, targetType INT, - eType NVARCHAR(157) COLLATE database_default, - valueType INT, - PRIMARY KEY (eName, anyContainer_owner_id, anyContainer_owner_owner_oid, targetoid) + PRIMARY KEY ( anyContainer_owner_owner_oid, anyContainer_owner_id, item_id, targetoid) ); - CREATE TABLE m_assignment_ext_string ( - eName NVARCHAR(157) COLLATE database_default NOT NULL, + item_id INT NOT NULL, anyContainer_owner_id INT NOT NULL, anyContainer_owner_owner_oid NVARCHAR(36) COLLATE database_default NOT NULL, stringValue NVARCHAR(255) COLLATE database_default NOT NULL, - extensionType INT, - dynamicDef BIT, - eType NVARCHAR(157) COLLATE database_default, - valueType INT, - PRIMARY KEY (eName, anyContainer_owner_id, anyContainer_owner_owner_oid, stringValue) + PRIMARY KEY ( anyContainer_owner_owner_oid, anyContainer_owner_id, item_id, stringValue) ); - CREATE TABLE m_assignment_extension ( owner_id INT NOT NULL, owner_owner_oid NVARCHAR(36) COLLATE database_default NOT NULL, @@ -230,15 +179,13 @@ CREATE TABLE m_assignment_extension ( polysCount SMALLINT, referencesCount SMALLINT, stringsCount SMALLINT, - PRIMARY KEY (owner_id, owner_owner_oid) + PRIMARY KEY (owner_owner_oid, owner_id) ); - CREATE TABLE m_assignment_policy_situation ( assignment_id INT NOT NULL, assignment_oid NVARCHAR(36) COLLATE database_default NOT NULL, policySituation NVARCHAR(255) COLLATE database_default ); - CREATE TABLE m_assignment_reference ( owner_id INT NOT NULL, owner_owner_oid NVARCHAR(36) COLLATE database_default NOT NULL, @@ -246,27 +193,25 @@ CREATE TABLE m_assignment_reference ( relation NVARCHAR(157) COLLATE database_default NOT NULL, targetOid NVARCHAR(36) COLLATE database_default NOT NULL, targetType INT, - PRIMARY KEY (owner_id, owner_owner_oid, reference_type, relation, targetOid) + 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 NVARCHAR(MAX), + delta VARBINARY(MAX), deltaOid NVARCHAR(36) COLLATE database_default, deltaType INT, - fullResult NVARCHAR(MAX), + 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 (checksum, record_id) + PRIMARY KEY (record_id, checksum) ); - CREATE TABLE m_audit_event ( - id BIGINT NOT NULL, + id BIGINT IDENTITY NOT NULL, attorneyName NVARCHAR(255) COLLATE database_default, attorneyOid NVARCHAR(36) COLLATE database_default, channel NVARCHAR(255) COLLATE database_default, @@ -288,158 +233,78 @@ CREATE TABLE m_audit_event ( 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(900) COLLATE database_default NOT NULL, + changedItemPath NVARCHAR(255) COLLATE database_default NOT NULL, record_id BIGINT NOT NULL, - PRIMARY KEY (changedItemPath, record_id) + PRIMARY KEY (record_id, changedItemPath) ); - CREATE TABLE m_audit_prop_value ( - id BIGINT NOT NULL, + 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 NOT NULL, + id BIGINT IDENTITY NOT NULL, name NVARCHAR(255) COLLATE database_default, - oid 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 ( - 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_connector ( - connectorBundle NVARCHAR(255) COLLATE database_default, - connectorHostRef_relation NVARCHAR(157) COLLATE database_default, - connectorHostRef_targetOid NVARCHAR(36) COLLATE database_default, - connectorHostRef_type INT, - connectorType NVARCHAR(255) COLLATE database_default, - connectorVersion NVARCHAR(255) COLLATE database_default, - framework NVARCHAR(255) COLLATE database_default, - 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_connector_host ( - hostname NVARCHAR(255) COLLATE database_default, - name_norm NVARCHAR(255) COLLATE database_default, - name_orig NVARCHAR(255) COLLATE database_default, - port NVARCHAR(255) COLLATE database_default, - oid NVARCHAR(36) COLLATE database_default NOT NULL, - PRIMARY KEY (oid) +CREATE TABLE m_case_wi ( + id INT NOT NULL, + owner_oid NVARCHAR(36) COLLATE database_default NOT NULL, + closeTimestamp DATETIME2, + deadline DATETIME2, + originalAssigneeRef_relation NVARCHAR(157) COLLATE database_default, + originalAssigneeRef_targetOid NVARCHAR(36) COLLATE database_default, + originalAssigneeRef_type INT, + outcome NVARCHAR(255) COLLATE database_default, + performerRef_relation NVARCHAR(157) COLLATE database_default, + performerRef_targetOid NVARCHAR(36) COLLATE database_default, + performerRef_type INT, + stageNumber INT, + PRIMARY KEY (owner_oid, id) +); +CREATE TABLE m_case_wi_reference ( + owner_id INT NOT NULL, + owner_owner_oid NVARCHAR(36) COLLATE database_default NOT NULL, + relation NVARCHAR(157) COLLATE database_default NOT NULL, + targetOid NVARCHAR(36) COLLATE database_default NOT NULL, + targetType INT, + PRIMARY KEY (owner_owner_oid, owner_id, targetOid, relation) ); - CREATE TABLE m_connector_target_system ( connector_oid NVARCHAR(36) COLLATE database_default NOT NULL, targetSystemType NVARCHAR(255) COLLATE database_default ); - -CREATE TABLE m_exclusion ( - id INT NOT NULL, - owner_oid NVARCHAR(36) COLLATE database_default NOT NULL, - policy INT, - targetRef_relation NVARCHAR(157) COLLATE database_default, - targetRef_targetOid NVARCHAR(36) COLLATE database_default, - targetRef_type INT, - PRIMARY KEY (id, owner_oid) -); - -CREATE TABLE m_focus ( - administrativeStatus INT, - archiveTimestamp DATETIME2, - disableReason NVARCHAR(255) COLLATE database_default, - disableTimestamp DATETIME2, - effectiveStatus INT, - enableTimestamp DATETIME2, - validFrom DATETIME2, - validTo DATETIME2, - validityChangeTimestamp DATETIME2, - validityStatus INT, - hasPhoto BIT DEFAULT 0 NOT NULL, - oid NVARCHAR(36) COLLATE database_default NOT NULL, - PRIMARY KEY (oid) +CREATE TABLE m_ext_item ( + id INT IDENTITY NOT NULL, + kind INT, + itemName NVARCHAR(157) COLLATE database_default, + itemType NVARCHAR(157) COLLATE database_default, + PRIMARY KEY (id) ); - CREATE TABLE m_focus_photo ( owner_oid NVARCHAR(36) COLLATE database_default NOT NULL, photo VARBINARY(MAX), PRIMARY KEY (owner_oid) ); - CREATE TABLE m_focus_policy_situation ( focus_oid NVARCHAR(36) COLLATE database_default NOT NULL, policySituation NVARCHAR(255) COLLATE database_default ); - -CREATE TABLE m_form ( - 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_function_library ( - 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_generic_object ( - name_norm NVARCHAR(255) COLLATE database_default, - name_orig NVARCHAR(255) COLLATE database_default, - objectType NVARCHAR(255) COLLATE database_default, - oid NVARCHAR(36) COLLATE database_default NOT NULL, - PRIMARY KEY (oid) -); - -CREATE TABLE m_lookup_table ( - 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_lookup_table_row ( - id INT NOT NULL, - owner_oid NVARCHAR(36) COLLATE database_default NOT NULL, - row_key NVARCHAR(255) COLLATE database_default, - label_norm NVARCHAR(255) COLLATE database_default, - label_orig NVARCHAR(255) COLLATE database_default, - lastChangeTimestamp DATETIME2, - row_value NVARCHAR(255) COLLATE database_default, - PRIMARY KEY (id, owner_oid) -); - -CREATE TABLE m_node ( - name_norm NVARCHAR(255) COLLATE database_default, - name_orig NVARCHAR(255) COLLATE database_default, - nodeIdentifier NVARCHAR(255) COLLATE database_default, - oid NVARCHAR(36) COLLATE database_default NOT NULL, - PRIMARY KEY (oid) -); - CREATE TABLE m_object ( oid NVARCHAR(36) COLLATE database_default NOT NULL, booleansCount SMALLINT, @@ -469,90 +334,60 @@ CREATE TABLE m_object ( version INT NOT NULL, PRIMARY KEY (oid) ); - CREATE TABLE m_object_ext_boolean ( - eName NVARCHAR(157) COLLATE database_default NOT NULL, - owner_oid NVARCHAR(36) COLLATE database_default NOT NULL, - ownerType INT NOT NULL, - booleanValue BIT NOT NULL, - dynamicDef BIT, - eType NVARCHAR(157) COLLATE database_default, - valueType INT, - PRIMARY KEY (eName, owner_oid, ownerType, booleanValue) + item_id INT NOT NULL, + owner_oid NVARCHAR(36) COLLATE database_default NOT NULL, + ownerType INT NOT NULL, + booleanValue BIT NOT NULL, + PRIMARY KEY (owner_oid, ownerType, item_id, booleanValue) ); - CREATE TABLE m_object_ext_date ( - eName NVARCHAR(157) COLLATE database_default NOT NULL, - owner_oid NVARCHAR(36) COLLATE database_default NOT NULL, - ownerType INT NOT NULL, - dateValue DATETIME2 NOT NULL, - dynamicDef BIT, - eType NVARCHAR(157) COLLATE database_default, - valueType INT, - PRIMARY KEY (eName, owner_oid, ownerType, dateValue) + item_id INT NOT NULL, + owner_oid NVARCHAR(36) COLLATE database_default NOT NULL, + ownerType INT NOT NULL, + dateValue DATETIME2 NOT NULL, + PRIMARY KEY (owner_oid, ownerType, item_id, dateValue) ); - CREATE TABLE m_object_ext_long ( - eName NVARCHAR(157) COLLATE database_default NOT NULL, - owner_oid NVARCHAR(36) COLLATE database_default NOT NULL, - ownerType INT NOT NULL, - longValue BIGINT NOT NULL, - dynamicDef BIT, - eType NVARCHAR(157) COLLATE database_default, - valueType INT, - PRIMARY KEY (eName, owner_oid, ownerType, longValue) + item_id INT NOT NULL, + owner_oid NVARCHAR(36) COLLATE database_default NOT NULL, + ownerType INT NOT NULL, + longValue BIGINT NOT NULL, + PRIMARY KEY (owner_oid, ownerType, item_id, longValue) ); - CREATE TABLE m_object_ext_poly ( - eName NVARCHAR(157) COLLATE database_default NOT NULL, - owner_oid NVARCHAR(36) COLLATE database_default NOT NULL, - ownerType INT NOT NULL, - orig NVARCHAR(255) COLLATE database_default NOT NULL, - dynamicDef BIT, - norm NVARCHAR(255) COLLATE database_default, - eType NVARCHAR(157) COLLATE database_default, - valueType INT, - PRIMARY KEY (eName, owner_oid, ownerType, orig) + item_id INT NOT NULL, + owner_oid NVARCHAR(36) COLLATE database_default NOT NULL, + ownerType INT NOT NULL, + orig NVARCHAR(255) COLLATE database_default NOT NULL, + norm NVARCHAR(255) COLLATE database_default, + PRIMARY KEY (owner_oid, ownerType, item_id, orig) ); - CREATE TABLE m_object_ext_reference ( - eName NVARCHAR(157) COLLATE database_default NOT NULL, - owner_oid NVARCHAR(36) COLLATE database_default NOT NULL, - ownerType INT NOT NULL, - targetoid NVARCHAR(36) COLLATE database_default NOT NULL, - dynamicDef BIT, + item_id INT NOT NULL, + owner_oid NVARCHAR(36) COLLATE database_default NOT NULL, + ownerType INT NOT NULL, + targetoid NVARCHAR(36) COLLATE database_default NOT NULL, relation NVARCHAR(157) COLLATE database_default, targetType INT, - eType NVARCHAR(157) COLLATE database_default, - valueType INT, - PRIMARY KEY (eName, owner_oid, ownerType, targetoid) + PRIMARY KEY (owner_oid, ownerType, item_id, targetoid) ); - CREATE TABLE m_object_ext_string ( - eName NVARCHAR(157) COLLATE database_default NOT NULL, + item_id INT NOT NULL, owner_oid NVARCHAR(36) COLLATE database_default NOT NULL, ownerType INT NOT NULL, stringValue NVARCHAR(255) COLLATE database_default NOT NULL, - dynamicDef BIT, - eType NVARCHAR(157) COLLATE database_default, - valueType INT, - PRIMARY KEY (eName, owner_oid, ownerType, stringValue) + PRIMARY KEY (owner_oid, ownerType, item_id, stringValue) ); - -CREATE TABLE m_object_template ( - name_norm NVARCHAR(255) COLLATE database_default, - name_orig NVARCHAR(255) COLLATE database_default, - type INT, - oid NVARCHAR(36) COLLATE database_default NOT NULL, - PRIMARY KEY (oid) +CREATE TABLE m_object_subtype ( + object_oid NVARCHAR(36) COLLATE database_default NOT NULL, + subType NVARCHAR(255) COLLATE database_default ); - CREATE TABLE m_object_text_info ( owner_oid NVARCHAR(36) COLLATE database_default NOT NULL, text NVARCHAR(255) COLLATE database_default NOT NULL, PRIMARY KEY (owner_oid, text) ); - CREATE TABLE m_operation_execution ( id INT NOT NULL, owner_oid NVARCHAR(36) COLLATE database_default NOT NULL, @@ -564,33 +399,18 @@ CREATE TABLE m_operation_execution ( taskRef_targetOid NVARCHAR(36) COLLATE database_default, taskRef_type INT, timestampValue DATETIME2, - PRIMARY KEY (id, owner_oid) -); - -CREATE TABLE m_org ( - costCenter NVARCHAR(255) COLLATE database_default, - displayOrder INT, - locality_norm NVARCHAR(255) COLLATE database_default, - locality_orig NVARCHAR(255) COLLATE database_default, - name_norm NVARCHAR(255) COLLATE database_default, - name_orig NVARCHAR(255) COLLATE database_default, - tenant BIT, - oid NVARCHAR(36) COLLATE database_default NOT NULL, - PRIMARY KEY (oid) + PRIMARY KEY (owner_oid, id) ); - CREATE TABLE m_org_closure ( ancestor_oid NVARCHAR(36) COLLATE database_default NOT NULL, descendant_oid NVARCHAR(36) COLLATE database_default NOT NULL, val INT, PRIMARY KEY (ancestor_oid, descendant_oid) ); - CREATE TABLE m_org_org_type ( org_oid NVARCHAR(36) COLLATE database_default NOT NULL, orgType NVARCHAR(255) COLLATE database_default ); - CREATE TABLE m_reference ( owner_oid NVARCHAR(36) COLLATE database_default NOT NULL, reference_type INT NOT NULL, @@ -599,77 +419,10 @@ CREATE TABLE m_reference ( targetType INT, PRIMARY KEY (owner_oid, reference_type, relation, targetOid) ); - -CREATE TABLE m_report ( - export INT, - name_norm NVARCHAR(255) COLLATE database_default, - name_orig NVARCHAR(255) COLLATE database_default, - orientation INT, - parent BIT, - useHibernateSession BIT, - oid NVARCHAR(36) COLLATE database_default NOT NULL, - PRIMARY KEY (oid) -); - -CREATE TABLE m_report_output ( - name_norm NVARCHAR(255) COLLATE database_default, - name_orig NVARCHAR(255) COLLATE database_default, - reportRef_relation NVARCHAR(157) COLLATE database_default, - reportRef_targetOid NVARCHAR(36) COLLATE database_default, - reportRef_type INT, - oid NVARCHAR(36) COLLATE database_default NOT NULL, - PRIMARY KEY (oid) -); - -CREATE TABLE m_resource ( - administrativeState INT, - connectorRef_relation NVARCHAR(157) COLLATE database_default, - connectorRef_targetOid NVARCHAR(36) COLLATE database_default, - connectorRef_type INT, - name_norm NVARCHAR(255) COLLATE database_default, - name_orig NVARCHAR(255) COLLATE database_default, - o16_lastAvailabilityStatus INT, - oid NVARCHAR(36) COLLATE database_default NOT NULL, - PRIMARY KEY (oid) -); - -CREATE TABLE m_role ( - name_norm NVARCHAR(255) COLLATE database_default, - name_orig NVARCHAR(255) COLLATE database_default, - roleType NVARCHAR(255) COLLATE database_default, - oid NVARCHAR(36) COLLATE database_default NOT NULL, - PRIMARY KEY (oid) -); - -CREATE TABLE m_security_policy ( - 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_sequence ( - 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_service ( - displayOrder INT, - locality_norm NVARCHAR(255) COLLATE database_default, - locality_orig NVARCHAR(255) COLLATE database_default, - 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_service_type ( service_oid NVARCHAR(36) COLLATE database_default NOT NULL, serviceType NVARCHAR(255) COLLATE database_default ); - CREATE TABLE m_shadow ( attemptNumber INT, dead BIT, @@ -691,38 +444,30 @@ CREATE TABLE m_shadow ( oid NVARCHAR(36) COLLATE database_default NOT NULL, PRIMARY KEY (oid) ); - -CREATE TABLE m_system_configuration ( - 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_task ( - binding INT, - canRunOnNode NVARCHAR(255) COLLATE database_default, - category NVARCHAR(255) COLLATE database_default, - completionTimestamp DATETIME2, - executionStatus INT, - handlerUri NVARCHAR(255) COLLATE database_default, - lastRunFinishTimestamp DATETIME2, - lastRunStartTimestamp DATETIME2, - name_norm NVARCHAR(255) COLLATE database_default, - name_orig NVARCHAR(255) COLLATE database_default, - node NVARCHAR(255) COLLATE database_default, - objectRef_relation NVARCHAR(157) COLLATE database_default, - objectRef_targetOid NVARCHAR(36) COLLATE database_default, - objectRef_type INT, - ownerRef_relation NVARCHAR(157) COLLATE database_default, - ownerRef_targetOid NVARCHAR(36) COLLATE database_default, - ownerRef_type INT, - parent NVARCHAR(255) COLLATE database_default, - recurrence INT, - status INT, - taskIdentifier NVARCHAR(255) COLLATE database_default, - threadStopAction INT, - waitingReason INT, + binding INT, + canRunOnNode NVARCHAR(255) COLLATE database_default, + category NVARCHAR(255) COLLATE database_default, + completionTimestamp DATETIME2, + executionStatus INT, + handlerUri NVARCHAR(255) COLLATE database_default, + lastRunFinishTimestamp DATETIME2, + lastRunStartTimestamp DATETIME2, + name_norm NVARCHAR(255) COLLATE database_default, + name_orig NVARCHAR(255) COLLATE database_default, + node NVARCHAR(255) COLLATE database_default, + objectRef_relation NVARCHAR(157) COLLATE database_default, + objectRef_targetOid NVARCHAR(36) COLLATE database_default, + objectRef_type INT, + ownerRef_relation NVARCHAR(157) COLLATE database_default, + ownerRef_targetOid NVARCHAR(36) COLLATE database_default, + ownerRef_type INT, + parent NVARCHAR(255) COLLATE database_default, + recurrence INT, + status INT, + taskIdentifier NVARCHAR(255) COLLATE database_default, + threadStopAction INT, + waitingReason INT, wfEndTimestamp DATETIME2, wfObjectRef_relation NVARCHAR(157) COLLATE database_default, wfObjectRef_targetOid NVARCHAR(36) COLLATE database_default, @@ -735,28 +480,224 @@ CREATE TABLE m_task ( wfTargetRef_relation NVARCHAR(157) COLLATE database_default, wfTargetRef_targetOid NVARCHAR(36) COLLATE database_default, wfTargetRef_type INT, - oid NVARCHAR(36) COLLATE database_default NOT NULL, + oid NVARCHAR(36) COLLATE database_default NOT NULL, PRIMARY KEY (oid) ); - CREATE TABLE m_task_dependent ( task_oid NVARCHAR(36) COLLATE database_default NOT NULL, dependent NVARCHAR(255) COLLATE database_default ); - -CREATE TABLE m_trigger ( - id INT NOT NULL, - owner_oid NVARCHAR(36) COLLATE database_default NOT NULL, - handlerUri NVARCHAR(255) COLLATE database_default, - timestampValue DATETIME2, - PRIMARY KEY (id, owner_oid) +CREATE TABLE m_user_employee_type ( + user_oid NVARCHAR(36) COLLATE database_default NOT NULL, + employeeType NVARCHAR(255) COLLATE database_default ); - -CREATE TABLE m_user ( +CREATE TABLE m_user_organization ( + user_oid NVARCHAR(36) COLLATE database_default NOT NULL, + norm NVARCHAR(255) COLLATE database_default, + orig NVARCHAR(255) COLLATE database_default +); +CREATE TABLE m_user_organizational_unit ( + user_oid NVARCHAR(36) COLLATE database_default NOT NULL, + norm NVARCHAR(255) COLLATE database_default, + orig NVARCHAR(255) COLLATE database_default +); +CREATE TABLE m_abstract_role ( + approvalProcess NVARCHAR(255) COLLATE database_default, + autoassign_enabled BIT, + displayName_norm NVARCHAR(255) COLLATE database_default, + displayName_orig NVARCHAR(255) COLLATE database_default, + identifier NVARCHAR(255) COLLATE database_default, + ownerRef_relation NVARCHAR(157) COLLATE database_default, + ownerRef_targetOid NVARCHAR(36) COLLATE database_default, + ownerRef_type INT, + requestable BIT, + riskLevel NVARCHAR(255) COLLATE database_default, + oid NVARCHAR(36) COLLATE database_default NOT NULL, + PRIMARY KEY (oid) +); +CREATE TABLE m_case ( + name_norm NVARCHAR(255) COLLATE database_default, + name_orig NVARCHAR(255) COLLATE database_default, + objectRef_relation NVARCHAR(157) COLLATE database_default, + objectRef_targetOid NVARCHAR(36) COLLATE database_default, + objectRef_type INT, + state NVARCHAR(255) COLLATE database_default, + oid NVARCHAR(36) COLLATE database_default NOT NULL, + PRIMARY KEY (oid) +); +CREATE TABLE m_connector ( + connectorBundle NVARCHAR(255) COLLATE database_default, + connectorHostRef_relation NVARCHAR(157) COLLATE database_default, + connectorHostRef_targetOid NVARCHAR(36) COLLATE database_default, + connectorHostRef_type INT, + connectorType NVARCHAR(255) COLLATE database_default, + connectorVersion NVARCHAR(255) COLLATE database_default, + framework NVARCHAR(255) COLLATE database_default, + 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_connector_host ( + hostname NVARCHAR(255) COLLATE database_default, + name_norm NVARCHAR(255) COLLATE database_default, + name_orig NVARCHAR(255) COLLATE database_default, + port NVARCHAR(255) COLLATE database_default, + oid NVARCHAR(36) COLLATE database_default NOT NULL, + PRIMARY KEY (oid) +); +CREATE TABLE m_focus ( + administrativeStatus INT, + archiveTimestamp DATETIME2, + disableReason NVARCHAR(255) COLLATE database_default, + disableTimestamp DATETIME2, + effectiveStatus INT, + enableTimestamp DATETIME2, + validFrom DATETIME2, + validTo DATETIME2, + validityChangeTimestamp DATETIME2, + validityStatus INT, + costCenter NVARCHAR(255) COLLATE database_default, + emailAddress NVARCHAR(255) COLLATE database_default, + hasPhoto BIT DEFAULT FALSE NOT NULL, + locale NVARCHAR(255) COLLATE database_default, + locality_norm NVARCHAR(255) COLLATE database_default, + locality_orig NVARCHAR(255) COLLATE database_default, + preferredLanguage NVARCHAR(255) COLLATE database_default, + telephoneNumber NVARCHAR(255) COLLATE database_default, + timezone NVARCHAR(255) COLLATE database_default, + oid NVARCHAR(36) COLLATE database_default NOT NULL, + PRIMARY KEY (oid) +); +CREATE TABLE m_form ( + 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_function_library ( + 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_generic_object ( + name_norm NVARCHAR(255) COLLATE database_default, + name_orig NVARCHAR(255) COLLATE database_default, + objectType NVARCHAR(255) COLLATE database_default, + oid NVARCHAR(36) COLLATE database_default NOT NULL, + PRIMARY KEY (oid) +); +CREATE TABLE m_lookup_table ( + 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_lookup_table_row ( + id INT NOT NULL, + owner_oid NVARCHAR(36) COLLATE database_default NOT NULL, + row_key NVARCHAR(255) COLLATE database_default, + label_norm NVARCHAR(255) COLLATE database_default, + label_orig NVARCHAR(255) COLLATE database_default, + lastChangeTimestamp DATETIME2, + row_value NVARCHAR(255) COLLATE database_default, + PRIMARY KEY (owner_oid, id) +); +CREATE TABLE m_node ( + name_norm NVARCHAR(255) COLLATE database_default, + name_orig NVARCHAR(255) COLLATE database_default, + nodeIdentifier 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, + type INT, + oid NVARCHAR(36) COLLATE database_default NOT NULL, + PRIMARY KEY (oid) +); +CREATE TABLE m_org ( + displayOrder INT, + name_norm NVARCHAR(255) COLLATE database_default, + name_orig NVARCHAR(255) COLLATE database_default, + tenant BIT, + oid NVARCHAR(36) COLLATE database_default NOT NULL, + PRIMARY KEY (oid) +); +CREATE TABLE m_report ( + export INT, + name_norm NVARCHAR(255) COLLATE database_default, + name_orig NVARCHAR(255) COLLATE database_default, + orientation INT, + parent BIT, + useHibernateSession BIT, + oid NVARCHAR(36) COLLATE database_default NOT NULL, + PRIMARY KEY (oid) +); +CREATE TABLE m_report_output ( + name_norm NVARCHAR(255) COLLATE database_default, + name_orig NVARCHAR(255) COLLATE database_default, + reportRef_relation NVARCHAR(157) COLLATE database_default, + reportRef_targetOid NVARCHAR(36) COLLATE database_default, + reportRef_type INT, + oid NVARCHAR(36) COLLATE database_default NOT NULL, + PRIMARY KEY (oid) +); +CREATE TABLE m_resource ( + administrativeState INT, + connectorRef_relation NVARCHAR(157) COLLATE database_default, + connectorRef_targetOid NVARCHAR(36) COLLATE database_default, + connectorRef_type INT, + name_norm NVARCHAR(255) COLLATE database_default, + name_orig NVARCHAR(255) COLLATE database_default, + o16_lastAvailabilityStatus INT, + oid NVARCHAR(36) COLLATE database_default NOT NULL, + PRIMARY KEY (oid) +); +CREATE TABLE m_role ( + name_norm NVARCHAR(255) COLLATE database_default, + name_orig NVARCHAR(255) COLLATE database_default, + roleType NVARCHAR(255) COLLATE database_default, + oid NVARCHAR(36) COLLATE database_default NOT NULL, + PRIMARY KEY (oid) +); +CREATE TABLE m_security_policy ( + 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_sequence ( + 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_service ( + displayOrder INT, + 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_system_configuration ( + 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_trigger ( + id INT NOT NULL, + owner_oid NVARCHAR(36) COLLATE database_default NOT NULL, + handlerUri NVARCHAR(255) COLLATE database_default, + timestampValue DATETIME2, + PRIMARY KEY (owner_oid, id) +); +CREATE TABLE m_user ( additionalName_norm NVARCHAR(255) COLLATE database_default, additionalName_orig NVARCHAR(255) COLLATE database_default, - costCenter NVARCHAR(255) COLLATE database_default, - emailAddress NVARCHAR(255) COLLATE database_default, employeeNumber NVARCHAR(255) COLLATE database_default, familyName_norm NVARCHAR(255) COLLATE database_default, familyName_orig NVARCHAR(255) COLLATE database_default, @@ -768,597 +709,425 @@ CREATE TABLE m_user ( honorificPrefix_orig NVARCHAR(255) COLLATE database_default, honorificSuffix_norm NVARCHAR(255) COLLATE database_default, honorificSuffix_orig NVARCHAR(255) COLLATE database_default, - locale NVARCHAR(255) COLLATE database_default, - locality_norm NVARCHAR(255) COLLATE database_default, - locality_orig NVARCHAR(255) COLLATE database_default, name_norm NVARCHAR(255) COLLATE database_default, name_orig NVARCHAR(255) COLLATE database_default, nickName_norm NVARCHAR(255) COLLATE database_default, nickName_orig NVARCHAR(255) COLLATE database_default, - preferredLanguage NVARCHAR(255) COLLATE database_default, - status INT, - telephoneNumber NVARCHAR(255) COLLATE database_default, - timezone NVARCHAR(255) COLLATE database_default, title_norm NVARCHAR(255) COLLATE database_default, title_orig NVARCHAR(255) COLLATE database_default, oid NVARCHAR(36) COLLATE database_default NOT NULL, PRIMARY KEY (oid) ); - -CREATE TABLE m_user_employee_type ( - user_oid NVARCHAR(36) COLLATE database_default NOT NULL, - employeeType NVARCHAR(255) COLLATE database_default -); - -CREATE TABLE m_user_organization ( - user_oid NVARCHAR(36) COLLATE database_default NOT NULL, - norm NVARCHAR(255) COLLATE database_default, - orig NVARCHAR(255) COLLATE database_default -); - -CREATE TABLE m_user_organizational_unit ( - user_oid NVARCHAR(36) COLLATE database_default NOT NULL, - norm NVARCHAR(255) COLLATE database_default, - orig NVARCHAR(255) COLLATE database_default -); - CREATE TABLE m_value_policy ( 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 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 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); - + 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 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 (extensionType, eName, booleanValue); - -CREATE INDEX iAExtensionDate ON m_assignment_ext_date (extensionType, eName, dateValue); - -CREATE INDEX iAExtensionLong ON m_assignment_ext_long (extensionType, eName, longValue); - -CREATE INDEX iAExtensionPolyString ON m_assignment_ext_poly (extensionType, eName, orig); - -CREATE INDEX iAExtensionReference ON m_assignment_ext_reference (extensionType, eName, targetoid); - -CREATE INDEX iAExtensionString ON m_assignment_ext_string (extensionType, eName, stringValue); - -CREATE INDEX iAssignmentReferenceTargetOid ON m_assignment_reference (targetOid); - -CREATE INDEX iTimestampValue ON m_audit_event (timestampValue); - -CREATE INDEX iChangedItemPath ON m_audit_item (changedItemPath); - + 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 iTimestampValue + ON m_audit_event (timestampValue); +CREATE INDEX iChangedItemPath + ON m_audit_item (changedItemPath); 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); +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); - + 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); - + 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); - + ADD CONSTRAINT uc_lookup_name UNIQUE (name_norm); ALTER TABLE m_lookup_table_row -ADD CONSTRAINT uc_row_key UNIQUE (owner_oid, row_key); - + 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 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 (ownerType, eName, booleanValue); - -CREATE INDEX iExtensionBooleanDef ON m_object_ext_boolean (owner_oid, ownerType); - -CREATE INDEX iExtensionDate ON m_object_ext_date (ownerType, eName, dateValue); - -CREATE INDEX iExtensionDateDef ON m_object_ext_date (owner_oid, ownerType); - -CREATE INDEX iExtensionLong ON m_object_ext_long (ownerType, eName, longValue); - -CREATE INDEX iExtensionLongDef ON m_object_ext_long (owner_oid, ownerType); - -CREATE INDEX iExtensionPolyString ON m_object_ext_poly (ownerType, eName, orig); - -CREATE INDEX iExtensionPolyStringDef ON m_object_ext_poly (owner_oid, ownerType); - -CREATE INDEX iExtensionReference ON m_object_ext_reference (ownerType, eName, targetoid); - -CREATE INDEX iExtensionReferenceDef ON m_object_ext_reference (owner_oid, ownerType); - -CREATE INDEX iExtensionString ON m_object_ext_string (ownerType, eName, stringValue); - -CREATE INDEX iExtensionStringDef ON m_object_ext_string (owner_oid, ownerType); - + ADD CONSTRAINT uc_node_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 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); - + 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 iDisplayOrder ON m_org (displayOrder); - -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 iReferenceTargetOid ON m_reference (targetOid); - + 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 iReportParent ON m_report (parent); - + 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); - + 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); - + 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); - + 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 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); - + 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); - -ALTER TABLE m_task - ADD CONSTRAINT uc_task_identifier UNIQUE (taskIdentifier); - -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 iTriggerTimestamp ON m_trigger (timestampValue); - + 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 iEmployeeNumber ON m_user (employeeNumber); - -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 iLocality ON m_user (locality_orig); - + 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_abstract_role -ADD CONSTRAINT fk_abstract_role -FOREIGN KEY (oid) -REFERENCES m_focus; - + 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; - + 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; - + 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; - + 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_id, owner_owner_oid) -REFERENCES m_acc_cert_case; - + 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_id, owner_owner_id, owner_owner_owner_oid) -REFERENCES m_acc_cert_wi; - + 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; - + ADD CONSTRAINT fk_assignment_owner FOREIGN KEY (owner_oid) REFERENCES m_object; ALTER TABLE m_assignment_ext_boolean -ADD CONSTRAINT fk_assignment_ext_boolean -FOREIGN KEY (anyContainer_owner_id, anyContainer_owner_owner_oid) -REFERENCES m_assignment_extension; - + 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; ALTER TABLE m_assignment_ext_date -ADD CONSTRAINT fk_assignment_ext_date -FOREIGN KEY (anyContainer_owner_id, anyContainer_owner_owner_oid) -REFERENCES m_assignment_extension; - + 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; ALTER TABLE m_assignment_ext_long -ADD CONSTRAINT fk_assignment_ext_long -FOREIGN KEY (anyContainer_owner_id, anyContainer_owner_owner_oid) -REFERENCES m_assignment_extension; - + 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; ALTER TABLE m_assignment_ext_poly -ADD CONSTRAINT fk_assignment_ext_poly -FOREIGN KEY (anyContainer_owner_id, anyContainer_owner_owner_oid) -REFERENCES m_assignment_extension; - + 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; ALTER TABLE m_assignment_ext_reference -ADD CONSTRAINT fk_assignment_ext_reference -FOREIGN KEY (anyContainer_owner_id, anyContainer_owner_owner_oid) -REFERENCES m_assignment_extension; - + 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; ALTER TABLE m_assignment_ext_string -ADD CONSTRAINT fk_assignment_ext_string -FOREIGN KEY (anyContainer_owner_id, anyContainer_owner_owner_oid) -REFERENCES m_assignment_extension; - + 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; ALTER TABLE m_assignment_policy_situation - ADD CONSTRAINT fk_assignment_policy_situation -FOREIGN KEY (assignment_id, assignment_oid) -REFERENCES m_assignment; - + 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_id, owner_owner_oid) -REFERENCES m_assignment; - + 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; - + 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; - + 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; - + 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 - ADD CONSTRAINT fk_case -FOREIGN KEY (oid) -REFERENCES m_object; - -ALTER TABLE m_connector -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; - + 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 + 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; - -ALTER TABLE m_exclusion -ADD CONSTRAINT fk_exclusion_owner -FOREIGN KEY (owner_oid) -REFERENCES m_object; - -ALTER TABLE m_focus -ADD CONSTRAINT fk_focus -FOREIGN KEY (oid) -REFERENCES m_object; - + 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; - + 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; - -ALTER TABLE m_form - 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; - -ALTER TABLE m_generic_object -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; - -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; - + ADD CONSTRAINT fk_focus_policy_situation FOREIGN KEY (focus_oid) REFERENCES m_focus; ALTER TABLE m_object_ext_boolean -ADD CONSTRAINT fk_object_ext_boolean -FOREIGN KEY (owner_oid) -REFERENCES m_object; - + 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; ALTER TABLE m_object_ext_date -ADD CONSTRAINT fk_object_ext_date -FOREIGN KEY (owner_oid) -REFERENCES m_object; - + 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; ALTER TABLE m_object_ext_long -ADD CONSTRAINT fk_object_ext_long -FOREIGN KEY (owner_oid) -REFERENCES m_object; - + 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; ALTER TABLE m_object_ext_poly -ADD CONSTRAINT fk_object_ext_poly -FOREIGN KEY (owner_oid) -REFERENCES m_object; - + 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; ALTER TABLE m_object_ext_reference -ADD CONSTRAINT fk_object_ext_reference -FOREIGN KEY (owner_oid) -REFERENCES m_object; - + 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; ALTER TABLE m_object_ext_string -ADD CONSTRAINT fk_object_ext_string -FOREIGN KEY (owner_oid) -REFERENCES m_object; - -ALTER TABLE m_object_template -ADD CONSTRAINT fk_object_template -FOREIGN KEY (oid) -REFERENCES m_object; - + 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; +ALTER TABLE m_object_subtype + 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; - + 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; - -ALTER TABLE m_org -ADD CONSTRAINT fk_org -FOREIGN KEY (oid) -REFERENCES m_abstract_role; - + 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; - + 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; - + 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; - + 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; - + 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; +ALTER TABLE m_shadow + ADD CONSTRAINT fk_shadow FOREIGN KEY (oid) REFERENCES m_object; +ALTER TABLE m_task + 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; +ALTER TABLE m_user_employee_type + 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; +ALTER TABLE m_user_organizational_unit + 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; +ALTER TABLE m_case + ADD CONSTRAINT fk_case FOREIGN KEY (oid) REFERENCES m_object; +ALTER TABLE m_connector + 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; +ALTER TABLE m_focus + ADD CONSTRAINT fk_focus FOREIGN KEY (oid) REFERENCES m_object; +ALTER TABLE m_form + 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; +ALTER TABLE m_generic_object + 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; +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_template + 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; ALTER TABLE m_report -ADD CONSTRAINT fk_report -FOREIGN KEY (oid) -REFERENCES m_object; - + 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; - + 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; - + 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; - + 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; - + 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; - + 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; - -ALTER TABLE m_service_type - 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; - + 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; - -ALTER TABLE m_task -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; - + 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; - + 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; - -ALTER TABLE m_user_employee_type -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; - -ALTER TABLE m_user_organizational_unit -ADD CONSTRAINT fk_user_org_unit -FOREIGN KEY (user_oid) -REFERENCES m_user; - + 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; - -CREATE TABLE hibernate_sequence ( - next_val BIGINT -); - -INSERT INTO hibernate_sequence VALUES (1); + ADD CONSTRAINT fk_value_policy FOREIGN KEY (oid) REFERENCES m_object; --# thanks to George Papastamatopoulos for submitting this ... and Marko Lahma for --# updating it. diff --git a/config/sql/_all/sqlserver-upgrade-3.6-3.7.sql b/config/sql/_all/sqlserver-upgrade-3.6-3.7.sql deleted file mode 100644 index a6d748fe253..00000000000 --- a/config/sql/_all/sqlserver-upgrade-3.6-3.7.sql +++ /dev/null @@ -1,32 +0,0 @@ -ALTER TABLE QRTZ_TRIGGERS ADD EXECUTION_GROUP VARCHAR (200) NULL; -ALTER TABLE QRTZ_FIRED_TRIGGERS ADD EXECUTION_GROUP VARCHAR (200) NULL; - -CREATE TABLE m_function_library ( - 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) -); - -ALTER TABLE m_function_library - ADD CONSTRAINT uc_function_library_name UNIQUE (name_norm); - -ALTER TABLE m_function_library - ADD CONSTRAINT fk_function_library -FOREIGN KEY (oid) -REFERENCES m_object; - -ALTER TABLE m_abstract_role ADD autoassign_enabled BIT; - -CREATE INDEX iAutoassignEnabled - ON m_abstract_role (autoassign_enabled); - -ALTER TABLE m_task - ADD CONSTRAINT uc_task_identifier UNIQUE (taskIdentifier); - -ALTER TABLE m_audit_event ADD attorneyName NVARCHAR(255) COLLATE database_default; -ALTER TABLE m_audit_event ADD attorneyOid NVARCHAR(36) COLLATE database_default; -ALTER TABLE m_audit_event ADD initiatorType INT; - -CREATE INDEX iOpExecOwnerOid - ON m_operation_execution (owner_oid); diff --git a/config/sql/_all/sqlserver-upgrade-3.7-3.8.sql b/config/sql/_all/sqlserver-upgrade-3.7-3.8.sql new file mode 100644 index 00000000000..5e594936009 --- /dev/null +++ b/config/sql/_all/sqlserver-upgrade-3.7-3.8.sql @@ -0,0 +1,98 @@ +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, + 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; + +DROP TABLE m_exclusion; \ No newline at end of file diff --git a/config/sql/midpoint/3.7/h2/h2-upgrade-3.7-3.8.sql b/config/sql/midpoint/3.7/h2/h2-upgrade-3.7-3.8.sql new file mode 100644 index 00000000000..5fe0533f460 --- /dev/null +++ b/config/sql/midpoint/3.7/h2/h2-upgrade-3.7-3.8.sql @@ -0,0 +1,2 @@ +ALTER TABLE m_audit_delta ALTER COLUMN delta BLOB; +ALTER TABLE m_audit_delta ALTER COLUMN fullResult BLOB; diff --git a/config/sql/midpoint/3.7/mysql/mysql-upgrade-3.7-3.8.sql b/config/sql/midpoint/3.7/mysql/mysql-upgrade-3.7-3.8.sql new file mode 100644 index 00000000000..5415d36b142 --- /dev/null +++ b/config/sql/midpoint/3.7/mysql/mysql-upgrade-3.7-3.8.sql @@ -0,0 +1,2 @@ +ALTER TABLE m_audit_delta MODIFY COLUMN delta BLOB; +ALTER TABLE m_audit_delta MODIFY COLUMN fullResult BLOB; diff --git a/config/sql/midpoint/3.7/oracle/oracle-upgrade-3.7-3.8.sql b/config/sql/midpoint/3.7/oracle/oracle-upgrade-3.7-3.8.sql new file mode 100644 index 00000000000..55d22bff585 --- /dev/null +++ b/config/sql/midpoint/3.7/oracle/oracle-upgrade-3.7-3.8.sql @@ -0,0 +1,2 @@ +ALTER TABLE m_audit_delta MODIFY delta BLOB; +ALTER TABLE m_audit_delta MODIFY fullResult BLOB; diff --git a/config/sql/midpoint/3.7/postgresql/postgresql-upgrade-3.7-3.8.sql b/config/sql/midpoint/3.7/postgresql/postgresql-upgrade-3.7-3.8.sql new file mode 100644 index 00000000000..b48ba6da8b1 --- /dev/null +++ b/config/sql/midpoint/3.7/postgresql/postgresql-upgrade-3.7-3.8.sql @@ -0,0 +1,2 @@ +ALTER TABLE m_audit_delta ALTER COLUMN delta TYPE BLOB; +ALTER TABLE m_audit_delta ALTER COLUMN fullResult TYPE BLOB; diff --git a/config/sql/midpoint/3.7/sqlserver/sqlserver-upgrade-3.7-3.8.sql b/config/sql/midpoint/3.7/sqlserver/sqlserver-upgrade-3.7-3.8.sql new file mode 100644 index 00000000000..ddc7ae785dc --- /dev/null +++ b/config/sql/midpoint/3.7/sqlserver/sqlserver-upgrade-3.7-3.8.sql @@ -0,0 +1,2 @@ +ALTER TABLE m_audit_delta ALTER COLUMN delta VARBINARY(MAX); +ALTER TABLE m_audit_delta ALTER COLUMN fullResult VARBINARY(MAX); diff --git a/dist/src/main/bin/midpoint.bat b/dist/src/main/bin/midpoint.bat index db8024a8d7e..fd70b6fb8fd 100644 --- a/dist/src/main/bin/midpoint.bat +++ b/dist/src/main/bin/midpoint.bat @@ -63,7 +63,10 @@ goto execStop :execStart echo "%cd%\lib\midpoint.war" start /b javaw -jar -Xms2048M -Xmx2048M -Dpython.cachedir="%MIDPOINT_HOME%\tmp" -Djavax.net.ssl.trustStore="%MIDPOINT_HOME%\keystore.jceks" -Djavax.net.ssl.trustStoreType=jceks -Dmidpoint.home="%MIDPOINT_HOME%" "%cd%\lib\midpoint.war" > "%BOOT_OUT%" 2>&1 & +goto end :execStop echo "%cd%\lib\midpoint.war" -FOR /F "usebackq tokens=5" %%i IN (`netstat -aon ^| findstr "0.0.0.0:8080"`) DO taskkill /F /PID %%i \ No newline at end of file +FOR /F "usebackq tokens=5" %%i IN (`netstat -aon ^| findstr "0.0.0.0:8080"`) DO taskkill /F /PID %%i + +:end diff --git a/dist/src/main/bin/midpoint.exe b/dist/src/main/bin/midpoint.exe new file mode 100644 index 00000000000..acd94f25076 Binary files /dev/null and b/dist/src/main/bin/midpoint.exe differ diff --git a/dist/src/main/bin/midpointw.exe b/dist/src/main/bin/midpointw.exe new file mode 100644 index 00000000000..e5d4b55d916 Binary files /dev/null and b/dist/src/main/bin/midpointw.exe differ diff --git a/dist/src/main/bin/ninja.bat b/dist/src/main/bin/ninja.bat new file mode 100644 index 00000000000..77c533d4bb8 --- /dev/null +++ b/dist/src/main/bin/ninja.bat @@ -0,0 +1,51 @@ +@echo off + +setlocal + +set "BIN_DIR=%~dp0" + +rem if script for execution is in bin directory +if exist "%BIN_DIR%\ninja.bat" goto okBoot +echo %BIN_DIR% +echo The keys.bat file is not in \bin +goto end +:okBoot + +rem set midpoint.home +if not "%MIDPOINT_HOME%" == "" goto gotHome +cd "%BIN_DIR%.." +if exist "%BIN_DIR%..\var" goto setHome +echo %BIN_DIR% +echo ERROR: midpoint.home directory desn't exist +goto end +:setHome + +set "MIDPOINT_HOME=%cd%\var" +echo %MIDPOINT_HOME% +echo %BIN_DIR% +:gotHome + +rem NINJA_JAR if not defined +if exist "%cd%\lib\ninja.jar" goto gotJar +echo The ninja.jar is not in \lib directory +echo Can not start ninja +goto end +:gotJar + +if "%MIDPOINT_HOME%" == "%MIDPOINT_HOME:;=%" goto homeNoSemicolon +echo Using MIDPOINT_HOME: "%MIDPOINT_HOME%" +echo Unable to start as MIDPOINT_HOME contains a semicolon (;) character +goto end +:homeNoSemicolon + + +rem ----- Execute The Requested Command --------------------------------------- + +echo Using MIDPOINT_HOME: "%MIDPOINT_HOME%" + +start /b java -jar "%cd%\lib\ninja.jar" -m "%MIDPOINT_HOME%" %* +goto end + + +:end + diff --git a/dist/src/main/bin/ninja.sh b/dist/src/main/bin/ninja.sh new file mode 100755 index 00000000000..bd52ce9bdd6 --- /dev/null +++ b/dist/src/main/bin/ninja.sh @@ -0,0 +1,71 @@ +#!/bin/bash +# +# 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. +# +# Parts of this file Copyright (c) 2017 Evolveum +# + +SCRIPT_PATH=$(cd $(dirname "$0") && pwd -P)/ + +# resolve links - $0 may be a softlink +PRG="$0" + +while [ -h "$PRG" ]; do +ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`/"$link" + fi +done + +# Get standard environment variable +PRGDIR=`dirname "$PRG"` + +cd "$PRGDIR/.." >/dev/null + +cd "$SCRIPT_PATH/.." + +if [ ! -d var ] ; then + echo "ERROR: midpoint.home directory desn't exist" + exit 1 +else + MIDPOINT_HOME=$(cd "$SCRIPT_PATH../var"; pwd) +fi + +[ -z "$MIDPOINT_HOME" ] && MIDPOINT_HOME=`cd "$SCRIPT_PATH../var" >/dev/null; pwd` + +cd "$SCRIPT_PATH../lib" + +if [ ! -f ninja.jar ] ; then + echo "ERROR: ninja.jar is not in /lib directory" + exit 1 +fi + +# Set UMASK unless it has been overridden +if [ -z "$UMASK" ]; then + UMASK="0027" +fi +umask $UMASK + +if [ -z "$JAVA_HOME" ] ; then + _RUNJAVA=java +else + _RUNJAVA="$JAVA_HOME"/bin/java +fi + + +exec "$_RUNJAVA" -jar $SCRIPT_PATH../lib/ninja.jar -m $MIDPOINT_HOME $@ + + diff --git a/dist/src/main/bin/service.bat b/dist/src/main/bin/service.bat new file mode 100644 index 00000000000..9c17e67e45e --- /dev/null +++ b/dist/src/main/bin/service.bat @@ -0,0 +1,161 @@ +@echo off +set SERVICE_NAME=MidPoint +set "BIN_DIR=%~dp0%~2" + +if not "%MIDPOINT_HOME%" == "" goto gotHome +cd "%BIN_DIR%.." +mkdir var +cd var +mkdir log +cd "%BIN_DIR%.." +set "MIDPOINT_HOME=%cd%\var" +:gotHome + +REM if script for service exists +if exist "%BIN_DIR%\service.bat" goto okBoot +echo The service.bat file is not in \bin directory or is no accessible +goto end +:okBoot + +if exist "%BIN_DIR%\midpoint.exe" goto okHome +echo The midpoint.exe was not found… +goto end +:okHome +rem Make sure prerequisite environment variables are set +if not "%JAVA_HOME%" == "" goto gotJdkHome +if not "%JRE_HOME%" == "" goto gotJreHome +echo Neither the JAVA_HOME nor the JRE_HOME environment variable is defined +echo Service will try to guess them from the registry. +goto okJavaHome +:gotJreHome + +if not exist "%JRE_HOME%\bin\java.exe" goto noJavaHome +if not exist "%JRE_HOME%\bin\javaw.exe" goto noJavaHome +goto okJavaHome +:gotJdkHome + +if not exist "%JAVA_HOME%\bin\javac.exe" goto noJavaHome +rem Java 9 has a different directory structure +if exist "%JAVA_HOME%\jre\bin\java.exe" goto preJava9Layout +if not exist "%JAVA_HOME%\bin\java.exe" goto noJavaHome +if not exist "%JAVA_HOME%\bin\javaw.exe" goto noJavaHome +if not "%JRE_HOME%" == "" goto okJavaHome +set "JRE_HOME=%JAVA_HOME%" +goto okJavaHome +:preJava9Layout + +if not exist "%JAVA_HOME%\jre\bin\javaw.exe" goto noJavaHome +if not "%JRE_HOME%" == "" goto okJavaHome +set "JRE_HOME=%JAVA_HOME%\jre" +goto okJavaHome +:noJavaHome + +echo The JAVA_HOME environment variable is not defined correctly +echo This environment variable is needed to run this program +echo NB: JAVA_HOME should point to a JDK not a JRE +goto end +:okJavaHome + +REM MIDPOINT_WAR if not defined +if exist "%cd%\lib\midpoint.war" goto gotWar +echo The midpoint.war is not in \lib directory +echo Can not start midPoint +goto end +:gotWar + +if "%MIDPOINT_HOME%" == "%MIDPOINT_HOME:;=%" goto homeNoSemicolon +echo Using MIDPOINT_HOME: "%MIDPOINT_HOME%" +echo Unable to start as MIDPOINT_HOME contains a semicolon (;) character +goto end +:homeNoSemicolon + +REM ----- Execute The Requested Command --------------------------------------- + +set EXECUTABLE=%BIN_DIR%\midpoint.exe +set PR_INSTALL=%EXECUTABLE% +set MIDPOINT_START_CLASS=com.evolveum.midpoint.tools.layout.MidPointWarLauncher + +REM Service log configuration +set PR_LOGPREFIX=%SERVICE_NAME% +set PR_LOGPATH=%MIDPOINT_HOME%\log +set PR_STDOUTPUT=auto +set PR_STDERROR=auto +set PR_LOGLEVEL=Error + +REM Path to java installation +REM Try to use the server jvm +set "PR_JVM=%JRE_HOME%\bin\server\jvm.dll" +if exist "%PR_JVM%" goto foundJvm +REM Try to use the client jvm +set "PR_JVM=%JRE_HOME%\bin\client\jvm.dll" +if exist "%PR_JVM%" goto foundJvm +echo Warning: Neither 'server' nor 'client' jvm.dll was found at JRE_HOME. +set PR_JVM=auto +:foundJvm + +set PR_CLASSPATH=%cd%\lib\midpoint.war + +REM Statup configuration +set PR_STARTUP=auto +set PR_STARTMODE=jvm +set PR_STARTMETHOD=main +set PR_STARTPARAMS=start +set PR_STARTCLASS=%MIDPOINT_START_CLASS% + +REM Shutdown configuration +set PR_STOPMODE=jvm +set PR_STOPMETHOD=%PR_STARTMETHOD% +set PR_STOPPARAMS=stop +set PR_STOPCLASS=%MIDPOINT_START_CLASS% + +REM JVM configuration +set PR_JVMMS=1024 +set PR_JVMMX=1024 + +if %1 == install goto doInstall +if %1 == remove goto doRemove +if %1 == uninstall goto doRemove +echo Unknown parameter "%1" + +:doRemove +rem Remove the service +"%EXECUTABLE%" //DS//%SERVICE_NAME% +echo The service '%SERVICE_NAME%' has been removed +goto end + +:doInstall +REM Install the service +echo Installing the service '%SERVICE_NAME%' ... +echo Using MIDPOINT_HOME: "%MIDPOINT_HOME%" +echo Using JAVA_HOME: "%JAVA_HOME%" +echo Using JRE_HOME: "%JRE_HOME%" + +REM Install service +"%PR_INSTALL%" //IS//%SERVICE_NAME% ^ +--StartMode="%PR_STARTMODE%" ^ +--StartClass="%PR_STARTCLASS%" ^ +--StartMethod="%PR_STARTMETHOD%" ^ +--StopMode="%PR_STOPMODE%" ^ +--StopClass="%PR_STOPCLASS%" ^ +--StopMethod="%PR_STOPMETHOD%" ^ +--StartParams="%PR_STARTPARAMS%" ^ +--StopParams="%PR_STOPPARAMS%" ^ +--Jvm="%PR_JVM%" ^ +--JvmMs="%PR_JVMMS%" ^ +--JvmMx="%PR_JVMMX%" ^ +--Startup="%PR_STARTUP%" ^ +--LogPath="%PR_LOGPATH%" ^ +--LogPrefix="%SERVICE_NAME%" ^ +--LogLevel="%PR_LOGLEVEL%" ^ +--StdOutput="%PR_STDOUTPUT%" ^ +--StdError="%PR_STDERROR%" ^ +--JvmOptions -Dmidpoint.home="%MIDPOINT_HOME%";-Dpython.cachedir="%MIDPOINT_HOME%\tmp";-Djavax.net.ssl.trustStore="%MIDPOINT_HOME%\keystore.jceks";-Djavax.net.ssl.trustStoreType=jceks ^ +--Classpath="%PR_CLASSPATH%" + +if not errorlevel 1 goto installed +echo Failed installing '%SERVICE_NAME%' service +goto end +:installed + +:end +cd %CURRENT_DIR% \ No newline at end of file diff --git a/gui/admin-gui/pom.xml b/gui/admin-gui/pom.xml index 2fff425fc48..60c9a8fd74c 100644 --- a/gui/admin-gui/pom.xml +++ b/gui/admin-gui/pom.xml @@ -387,6 +387,11 @@ task-api 3.8-SNAPSHOT + + com.evolveum.midpoint.repo + system-init + 3.8-SNAPSHOT + com.evolveum.midpoint.repo @@ -492,12 +497,6 @@ provisioning-impl 3.8-SNAPSHOT runtime - - - com.evolveum.midpoint.repo - system-init - 3.8-SNAPSHOT - runtime com.evolveum.midpoint.model diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/ComponentConstants.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/ComponentConstants.java index 6916b112b74..9eebb79e30f 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/ComponentConstants.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/ComponentConstants.java @@ -45,6 +45,9 @@ public class ComponentConstants { public static final QName UI_FOCUS_TAB_POLICY_RULES = new QName(NS_COMPONENTS_PREFIX, "focusTabPolicyRules"); public static final String UI_FOCUS_TAB_POLICY_RULES_URL = QNameUtil.qNameToUri(UI_FOCUS_TAB_POLICY_RULES); + public static final QName UI_FOCUS_TAB_APPLICABLE_POLICIES = new QName(NS_COMPONENTS_PREFIX, "focusTabApplicablePolicies"); + public static final String UI_FOCUS_TAB_APPLICABLE_POLICIES_URL = QNameUtil.qNameToUri(UI_FOCUS_TAB_APPLICABLE_POLICIES); + public static final QName UI_FOCUS_TAB_CONSENTS = new QName(NS_COMPONENTS_PREFIX, "focusTabConsents"); public static final String UI_FOCUS_TAB_CONSENTS_URL = QNameUtil.qNameToUri(UI_FOCUS_TAB_CONSENTS); diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/DisplayNamePanel.html b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/DisplayNamePanel.html index af22b81d051..ab49e22a013 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/DisplayNamePanel.html +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/DisplayNamePanel.html @@ -29,6 +29,7 @@ () +
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/DisplayNamePanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/DisplayNamePanel.java index 0a4adbcd77d..d95c80e0c07 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/DisplayNamePanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/DisplayNamePanel.java @@ -15,10 +15,9 @@ */ package com.evolveum.midpoint.gui.api.component; -import java.util.Collection; - import javax.xml.namespace.QName; +import org.apache.commons.lang3.StringUtils; import org.apache.wicket.AttributeModifier; import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.basic.Label; @@ -46,6 +45,7 @@ public class DisplayNamePanel extends BasePanel{ private final static String ID_DISPLAY_NAME = "displayName"; private final static String ID_IDENTIFIER = "identifier"; private final static String ID_RELATION = "relation"; + private final static String ID_KIND_INTENT = "kindIntent"; private final static String ID_DESCRIPTION = "description"; public DisplayNamePanel(String id, IModel model) { @@ -74,6 +74,12 @@ private void initLayout() { relation.add(new VisibleBehaviour(() -> isRelationVisible())); add(relation); + IModel kindIntentLabelModel = getKindIntentLabelModel(); + Label kindIntent = new Label(ID_KIND_INTENT, kindIntentLabelModel); + kindIntent.setOutputMarkupId(true); + kindIntent.add(new VisibleBehaviour(() -> isKindIntentVisible(kindIntentLabelModel))); + add(kindIntent); + add(new Label(ID_DESCRIPTION, new PropertyModel(getModel(), ObjectType.F_DESCRIPTION.getLocalPart()))); } @@ -131,6 +137,10 @@ private boolean isRelationVisible() { return relation != null && !QNameUtil.match(SchemaConstants.ORG_DEFAULT, relation); } + private boolean isKindIntentVisible(IModel kindIntentLabelModel) { + return kindIntentLabelModel != null && StringUtils.isNotEmpty(kindIntentLabelModel.getObject()); + } + private String getRelationLabel() { QName relation = getRelation(); if (relation == null) { @@ -140,6 +150,11 @@ private String getRelationLabel() { return relation.getLocalPart(); } + protected IModel getKindIntentLabelModel() { + // To be overriden in subclasses + return Model.of(""); + } + protected QName getRelation() { // To be overriden in subclasses return null; diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/MainObjectListPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/MainObjectListPanel.java index 881dd56d4cd..6decae9b25e 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/MainObjectListPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/MainObjectListPanel.java @@ -20,21 +20,13 @@ import com.evolveum.midpoint.xml.ns._public.common.common_3.ShadowType; import org.apache.commons.lang.StringUtils; import org.apache.wicket.Component; -import org.apache.wicket.WicketRuntimeException; import org.apache.wicket.ajax.AjaxRequestTarget; -import org.apache.wicket.behavior.Behavior; -import org.apache.wicket.event.Broadcast; -import org.apache.wicket.event.IEventSink; import org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable; import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn; -import org.apache.wicket.extensions.markup.html.repeater.data.table.export.CSVDataExporter; -import org.apache.wicket.extensions.markup.html.repeater.data.table.export.ExportToolbar; import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.panel.Fragment; import org.apache.wicket.model.IModel; import org.apache.wicket.model.Model; -import org.apache.wicket.request.component.IRequestablePage; -import org.apache.wicket.util.resource.IResourceStream; import com.evolveum.midpoint.gui.api.component.button.CsvDownloadButtonPanel; import com.evolveum.midpoint.gui.api.page.PageBase; @@ -47,7 +39,6 @@ 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.AbstractAjaxDownloadBehavior; import com.evolveum.midpoint.web.component.AjaxIconButton; import com.evolveum.midpoint.web.component.data.column.CheckBoxHeaderColumn; import com.evolveum.midpoint.web.component.data.column.ObjectNameColumn; @@ -260,4 +251,4 @@ protected PrismObject getNewObjectListObject(){ private void adoptNewObject(PrismObject object) throws SchemaException{ getPageBase().getMidpointApplication().getPrismContext().adopt(object); } -} \ No newline at end of file +} diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/ObjectBrowserPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/ObjectBrowserPanel.java index d7615f5bb9c..9fc88daa53a 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/ObjectBrowserPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/ObjectBrowserPanel.java @@ -28,7 +28,6 @@ import com.evolveum.midpoint.schema.GetOperationOptions; import com.evolveum.midpoint.schema.SelectorOptions; import com.evolveum.midpoint.schema.constants.ObjectTypes; -import com.evolveum.midpoint.web.component.data.SelectableBeanObjectDataProvider; import org.apache.wicket.Component; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.form.OnChangeAjaxBehavior; @@ -41,13 +40,10 @@ import com.evolveum.midpoint.gui.api.model.LoadableModel; import com.evolveum.midpoint.gui.api.page.PageBase; -import com.evolveum.midpoint.prism.PrismObjectDefinition; import com.evolveum.midpoint.web.component.AjaxButton; import com.evolveum.midpoint.web.component.dialog.Popupable; -import com.evolveum.midpoint.web.component.input.QNameChoiceRenderer; import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour; import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType; -import com.evolveum.midpoint.xml.ns._public.common.common_3.UserType; public class ObjectBrowserPanel extends BasePanel implements Popupable { @@ -62,7 +58,7 @@ public class ObjectBrowserPanel extends BasePanel imple private PageBase parentPage; private ObjectFilter queryFilter; - private List selectedObjectsList = new ArrayList(); + private List selectedObjectsList = new ArrayList<>(); /** * @param defaultType specifies type of the object that will be selected by default @@ -77,7 +73,7 @@ public ObjectBrowserPanel(String id, final Class defaultType, List< */ public ObjectBrowserPanel(String id, final Class defaultType, List supportedTypes, boolean multiselect, PageBase parentPage, ObjectFilter queryFilter) { - this(id, defaultType, supportedTypes, multiselect, parentPage, queryFilter, new ArrayList()); + this(id, defaultType, supportedTypes, multiselect, parentPage, queryFilter, new ArrayList<>()); } public ObjectBrowserPanel(String id, final Class defaultType, List supportedTypes, boolean multiselect, @@ -122,8 +118,8 @@ public boolean isVisible() { }); add(typePanel); - DropDownChoice typeSelect = new DropDownChoice(ID_TYPE, typeModel, - new ListModel<>(supported), new EnumChoiceRenderer<>(this)); + DropDownChoice typeSelect = new DropDownChoice<>(ID_TYPE, typeModel, + new ListModel<>(supported), new EnumChoiceRenderer<>(this)); typeSelect.add(new OnChangeAjaxBehavior() { private static final long serialVersionUID = 1L; 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 a9283b5321f..17b7e231f9a 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 @@ -17,8 +17,10 @@ import java.util.*; +import com.evolveum.midpoint.prism.*; import com.evolveum.midpoint.schema.constants.ObjectTypes; import com.evolveum.midpoint.xml.ns._public.common.common_3.*; +import com.evolveum.prism.xml.ns._public.types_3.ItemPathType; import org.apache.commons.lang3.StringUtils; import org.apache.wicket.Component; import org.apache.wicket.ajax.AjaxRequestTarget; @@ -55,6 +57,7 @@ import com.evolveum.midpoint.web.component.util.SelectableBean; import com.evolveum.midpoint.web.session.PageStorage; import com.evolveum.midpoint.web.session.UserProfileStorage.TableId; +import org.jetbrains.annotations.NotNull; /** * @author katkav @@ -92,17 +95,17 @@ public Class getType() { */ public ObjectListPanel(String id, Class defaultType, TableId tableId, Collection> options, PageBase parentPage) { - this(id, defaultType, options, false, parentPage, null); + this(id, defaultType, tableId, options, false, parentPage, null); } /** * @param defaultType specifies type of the object that will be selected by default. It can be changed. */ - ObjectListPanel(String id, Class defaultType, boolean multiselect, PageBase parentPage) { - this(id, defaultType, null, multiselect, parentPage, null); + ObjectListPanel(String id, Class defaultType, TableId tableId, boolean multiselect, PageBase parentPage) { + this(id, defaultType, tableId, null, multiselect, parentPage, null); } - public ObjectListPanel(String id, Class defaultType, Collection> options, + public ObjectListPanel(String id, Class defaultType, TableId tableId, Collection> options, boolean multiselect, PageBase parentPage, List selectedObjectsList) { super(id); this.type = defaultType != null ? ObjectTypes.getObjectType(defaultType) : null; @@ -110,6 +113,7 @@ public ObjectListPanel(String id, Class defaultType, Collection getSelectedObjects() { } private void initLayout() { - Form mainForm = new com.evolveum.midpoint.web.component.form.Form(ID_MAIN_FORM); + Form mainForm = new com.evolveum.midpoint.web.component.form.Form<>(ID_MAIN_FORM); add(mainForm); searchModel = initSearchModel(); @@ -223,7 +227,7 @@ protected WebMarkupContainer createHeader(String headerId) { protected List, String>> initCustomColumns() { LOGGER.trace("Start to init custom columns for table of type {}", type); - List, String>> columns = new ArrayList, String>>(); + List, String>> columns = new ArrayList<>(); List customColumns = getGuiObjectColumnTypeList(); if (customColumns == null){ return columns; @@ -247,7 +251,7 @@ protected List, String>> initCustomColumns() { } protected List, String>> getCustomColumnsTransformed(List customColumns){ - List, String>> columns = new ArrayList, String>>(); + List, String>> columns = new ArrayList<>(); if (customColumns == null || customColumns.size() == 0){ return columns; } @@ -259,9 +263,46 @@ protected List, String>> getCustomColumnsTransformed(L Model.of(customColumn.getDisplay().getLabel()) : createStringResource(getItemDisplayName(customColumn)), customColumn.getPath().toString()); } else { - column = new PropertyColumn(customColumn.getDisplay() != null && customColumn.getDisplay().getLabel() != null ? + column = new PropertyColumn, String>(customColumn.getDisplay() != null && customColumn.getDisplay().getLabel() != null ? Model.of(customColumn.getDisplay().getLabel()) : createStringResource(getItemDisplayName(customColumn)), null, - SelectableBean.F_VALUE + "." + customColumn.getPath()); + SelectableBean.F_VALUE + "." + customColumn.getPath().toString().replaceAll("/", ".")){ + private static final long serialVersionUID = 1L; + + @Override + public IModel getDataModel(IModel> rowModel) { + ItemPathType itemPathType = customColumn.getPath(); + if (itemPathType != null + && itemPathType.getItemPath() != null) { + if (itemPathType.getItemPath().toString().contains(ObjectType.F_EXTENSION.getLocalPart() + "/")) { + + O rowModelObject = rowModel.getObject().getValue(); + if (rowModelObject.getExtension() != null) { + ExtensionType extensionType = rowModelObject.getExtension(); + Item item = extensionType.asPrismContainerValue().findItem(itemPathType.getItemPath().lastNamed().getName()); + if (item != null && item.getValues() != null) { + StringBuilder sb = new StringBuilder(); + item.getValues().forEach(itemValue -> { + if (StringUtils.isNotEmpty(sb.toString())) { + sb.append(", "); + } + if (itemValue instanceof PrismPropertyValue) { + sb.append(((PrismPropertyValue) itemValue).getValue().toString()); + } else { + sb.append(itemValue.toString() + " "); + } + }); + return Model.of(sb.toString()); + } + } + } else { + return super.getDataModel(rowModel); + } + } + return Model.of(""); + + } + + }; } columns.add(column); } @@ -271,7 +312,7 @@ protected List, String>> getCustomColumnsTransformed(L protected List, String>> initColumns() { LOGGER.trace("Start to init columns for table of type {}", type); - List, String>> columns = new ArrayList, String>>(); + List, String>> columns = new ArrayList<>(); CheckBoxHeaderColumn> checkboxColumn = (CheckBoxHeaderColumn>) createCheckboxColumn(); if (checkboxColumn != null) { @@ -295,7 +336,7 @@ protected List, String>> initColumns() { } protected BaseSortableDataProvider> initProvider() { - Set selectedObjectsSet = selectedObjects == null ? null : new HashSet(selectedObjects); + Set selectedObjectsSet = selectedObjects == null ? null : new HashSet<>(selectedObjects); SelectableBeanObjectDataProvider provider = new SelectableBeanObjectDataProvider( parentPage, (Class) type.getClassDefinition(), selectedObjectsSet) { private static final long serialVersionUID = 1L; @@ -321,6 +362,7 @@ public SelectableBean createDataObjectWrapper(O obj) { return bean; } + @NotNull @Override protected List createObjectOrderings(SortParam sortParam) { List customOrdering = createCustomOrdering(sortParam); @@ -496,11 +538,7 @@ private void saveSearchModel(ObjectPaging paging) { } public void clearCache() { - BaseSortableDataProvider> provider = getDataProvider(); - provider.clearCache(); - if (provider instanceof SelectableBeanObjectDataProvider) { - ((SelectableBeanObjectDataProvider) provider).clearSelectedObjects(); - } + WebComponentUtil.clearProviderCache(getDataProvider()); } public ObjectQuery getQuery() { diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/PopupObjectListPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/PopupObjectListPanel.java index 6dafb8edf17..02d80c088a8 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/PopupObjectListPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/PopupObjectListPanel.java @@ -34,6 +34,7 @@ import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItem; import com.evolveum.midpoint.web.component.util.SelectableBean; import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType; +import org.apache.wicket.model.Model; public abstract class PopupObjectListPanel extends ObjectListPanel { private static final long serialVersionUID = 1L; @@ -42,13 +43,13 @@ public abstract class PopupObjectListPanel extends ObjectL * @param defaultType specifies type of the object that will be selected by default */ public PopupObjectListPanel(String id, Class defaultType, boolean multiselect, PageBase parentPage) { - super(id, defaultType, multiselect, parentPage); + super(id, defaultType, null, multiselect, parentPage); } public PopupObjectListPanel(String id, Class defaultType, Collection> options, boolean multiselect, PageBase parentPage, List selectedObjectsList) { - super(id, defaultType, options, multiselect, parentPage, selectedObjectsList); + super(id, defaultType, null, options, multiselect, parentPage, selectedObjectsList); } @@ -70,6 +71,10 @@ protected void onUpdateHeader(AjaxRequestTarget target, boolean selected, DataTa onUpdateCheckbox(target); } + @Override + protected IModel getEnabled(IModel> rowModel) { + return PopupObjectListPanel.this.getCheckBoxEnableModel(rowModel); + } @Override protected IModel getCheckBoxValueModel(IModel> rowModel){ @@ -136,4 +141,7 @@ protected void onUpdateCheckbox(AjaxRequestTarget target){ } + protected IModel getCheckBoxEnableModel(IModel> rowModel){ + return Model.of(true); + } } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/TypedAssignablePanel.html b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/TypedAssignablePanel.html index 4bb2a304c6c..f5caba31b0b 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/TypedAssignablePanel.html +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/TypedAssignablePanel.html @@ -7,20 +7,7 @@ ~ ~ http://www.apache.org/licenses/LICENSE-2.0 ~ - ~ Unless required by applicable law or agr
-
-
- - -
-
-
eed to in writing, software + ~ 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 @@ -38,32 +25,50 @@ -
+
+
+ + +
+
+ + +
+
+ + +
-
-
- -
-
- -
-
- -
-
- -
-
+ + + + + + + + + + + + + + + + + +
@@ -71,6 +76,7 @@
+

diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/TypedAssignablePanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/TypedAssignablePanel.java index eba47c48d45..331108d96d2 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/TypedAssignablePanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/TypedAssignablePanel.java @@ -15,10 +15,13 @@ */ package com.evolveum.midpoint.gui.api.component; +import java.util.ArrayList; import java.util.List; import javax.xml.namespace.QName; +import com.evolveum.midpoint.common.refinery.RefinedObjectClassDefinition; +import com.evolveum.midpoint.common.refinery.RefinedResourceSchema; import com.evolveum.midpoint.model.api.ModelInteractionService; import com.evolveum.midpoint.model.api.RoleSelectionSpecification; import com.evolveum.midpoint.prism.query.ObjectFilter; @@ -27,40 +30,36 @@ import com.evolveum.midpoint.schema.constants.SchemaConstants; import com.evolveum.midpoint.schema.result.OperationResult; import com.evolveum.midpoint.task.api.Task; +import com.evolveum.midpoint.util.exception.SchemaException; 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.page.admin.orgs.OrgTreeAssignablePanel; import com.evolveum.midpoint.web.security.SecurityUtils; +import com.evolveum.midpoint.xml.ns._public.common.common_3.*; import org.apache.wicket.Component; +import org.apache.wicket.ajax.AjaxEventBehavior; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior; import org.apache.wicket.ajax.form.OnChangeAjaxBehavior; import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.basic.Label; -import org.apache.wicket.markup.html.form.DropDownChoice; +import org.apache.wicket.markup.html.form.CheckBox; import org.apache.wicket.markup.html.form.EnumChoiceRenderer; import org.apache.wicket.model.IModel; import org.apache.wicket.model.Model; import org.apache.wicket.model.StringResourceModel; -import org.apache.wicket.model.util.ListModel; import com.evolveum.midpoint.gui.api.model.LoadableModel; import com.evolveum.midpoint.gui.api.page.PageBase; import com.evolveum.midpoint.gui.api.util.WebComponentUtil; -import com.evolveum.midpoint.prism.PrismObjectDefinition; import com.evolveum.midpoint.web.component.AjaxButton; import com.evolveum.midpoint.web.component.assignment.RelationTypes; import com.evolveum.midpoint.web.component.dialog.Popupable; import com.evolveum.midpoint.web.component.input.DropDownChoicePanel; -import com.evolveum.midpoint.web.component.input.QNameChoiceRenderer; 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.ObjectType; -import com.evolveum.midpoint.xml.ns._public.common.common_3.OrgType; -import com.evolveum.midpoint.xml.ns._public.common.common_3.ResourceType; -import com.evolveum.midpoint.xml.ns._public.common.common_3.RoleType; -import com.evolveum.midpoint.xml.ns._public.common.common_3.ServiceType; -import com.evolveum.midpoint.xml.ns._public.common.common_3.UserType; public class TypedAssignablePanel extends BasePanel implements Popupable{ @@ -68,9 +67,17 @@ public class TypedAssignablePanel extends BasePanel imp private static final String ID_TYPE = "type"; private static final String ID_RELATION = "relation"; + private static final String ID_KIND = "kind"; + private static final String ID_INTENT = "intent"; + private static final String ID_RELATION_CONTAINER = "relationContainer"; + private static final String ID_KIND_CONTAINER = "kindContainer"; + private static final String ID_INTENT_CONTAINER = "intentContainer"; private static final String ID_ROLE_TABLE = "roleTable"; private static final String ID_RESOURCE_TABLE = "resourceTable"; private static final String ID_ORG_TABLE = "orgTable"; + private static final String ID_ORG_TREE_VIEW = "orgTreeView"; + private static final String ID_ORG_TREE_VIEW_CONTAINER = "orgTreeViewContainer"; + private static final String ID_ORG_TREE_VIEW_PANEL = "orgTreeViewPanel"; private static final String ID_SELECTED_ROLES = "rolesSelected"; private static final String ID_SELECTED_RESOURCES = "resourcesSelected"; @@ -88,6 +95,10 @@ public class TypedAssignablePanel extends BasePanel imp private static final String OPERATION_LOAD_ASSIGNABLE_ROLES = DOT_CLASS + "loadAssignableRoles"; protected IModel typeModel; + private IModel orgTreeViewModel; + private IModel intentValueModel; + private LoadableModel> intentValues; + String intent; public TypedAssignablePanel(String id, final Class type) { super(id); @@ -104,6 +115,26 @@ protected ObjectTypes load() { return ObjectTypes.getObjectType(type); } }; + orgTreeViewModel = Model.of(false); + intentValues = getIntentAvailableValuesModel(); + 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() { + + } + }; } @Override @@ -124,8 +155,30 @@ protected void onInitialize() { PopupObjectListPanel listServicePanel = createObjectListPanel(ID_SERVICE_TABLE, ID_SELECTED_SERVICES, ObjectTypes.SERVICE); tablesContainer.add(listServicePanel); - WebMarkupContainer countContainer = createCountContainer(); - add(countContainer); + OrgTreeAssignablePanel orgTreePanel = new OrgTreeAssignablePanel( + ID_ORG_TREE_VIEW_PANEL, true, getPageBase()) { + private static final long serialVersionUID = 1L; + + @Override + protected void assignSelectedOrgPerformed(List selectedOrgs, AjaxRequestTarget target) { + TypedAssignablePanel.this.assignButtonClicked(target, (List)selectedOrgs); + } + }; + orgTreePanel.setOutputMarkupId(true); + orgTreePanel.add(new VisibleEnableBehaviour(){ + private static final long serialVersionUID = 1L; + + @Override + public boolean isVisible(){ + return OrgType.COMPLEX_TYPE.equals(typeModel.getObject().getTypeQName()) && isOrgTreeViewSelected(); + } + }); + tablesContainer.add(orgTreePanel); + + //todo now it's usually hiden by object list panel - bad layout; need to discuss: if count panel should be visible + //after org tree panel is added +// WebMarkupContainer countContainer = createCountContainer(); +// add(countContainer); AjaxButton addButton = new AjaxButton(ID_BUTTON_ASSIGN, @@ -135,11 +188,7 @@ protected void onInitialize() { @Override public void onClick(AjaxRequestTarget target) { - List selected = getSelectedData(ID_ROLE_TABLE); - selected.addAll(getSelectedData(ID_RESOURCE_TABLE)); - selected.addAll(getSelectedData(ID_ORG_TABLE)); - selected.addAll(getSelectedData(ID_SERVICE_TABLE)); - TypedAssignablePanel.this.addPerformed(target, selected, getSelectedRelation()); + TypedAssignablePanel.this.assignButtonClicked(target, new ArrayList<>()); } }; @@ -147,18 +196,31 @@ public void onClick(AjaxRequestTarget target) { private static final long serialVersionUID = 1L; -// @Override -// public boolean isVisible() { -// return multiselect; -// } + @Override + public boolean isVisible() { + return !isOrgTreeViewSelected(); + } }); add(addButton); } + private void assignButtonClicked(AjaxRequestTarget target, List selectedOrgs){ + List selected = getSelectedData(ID_ROLE_TABLE); + selected.addAll(getSelectedData(ID_RESOURCE_TABLE)); + selected.addAll(getSelectedData(ID_SERVICE_TABLE)); + if (isOrgTreeViewSelected()){ + selected.addAll(selectedOrgs); + } else { + selected.addAll(getSelectedData(ID_ORG_TABLE)); + } + addPerformed(target, selected, getSelectedRelation(), getKind(), getIntent()); + } + + protected void initAssignmentParametersPanel(){ DropDownChoicePanel typeSelect = new DropDownChoicePanel<>( - ID_TYPE, typeModel, Model.ofList(WebComponentUtil.createAssignableTypesList()), new EnumChoiceRenderer<>()); + ID_TYPE, typeModel, Model.ofList(getObjectTypesList()), new EnumChoiceRenderer<>()); typeSelect.getBaseFormComponent().add(new OnChangeAjaxBehavior() { private static final long serialVersionUID = 1L; @@ -173,27 +235,125 @@ protected void onUpdate(AjaxRequestTarget target) { add(typeSelect); + WebMarkupContainer relationContainer = new WebMarkupContainer(ID_RELATION_CONTAINER); + relationContainer.add(new VisibleEnableBehaviour(){ + private static final long serialVersionUID = 1L; + + @Override + public boolean isVisible() { + return TypedAssignablePanel.this.isRelationPanelVisible() && + !ResourceType.COMPLEX_TYPE.equals(typeModel.getObject().getTypeQName()); + } + + }); + relationContainer.setOutputMarkupId(true); + add(relationContainer); + DropDownChoicePanel relationSelector = WebComponentUtil.createEnumPanel(RelationTypes.class, ID_RELATION, WebComponentUtil.createReadonlyModelFromEnum(RelationTypes.class), Model.of(RelationTypes.MEMBER), TypedAssignablePanel.this, false); relationSelector.getBaseFormComponent().add(new EmptyOnChangeAjaxFormUpdatingBehavior()); - relationSelector.add(new VisibleEnableBehaviour(){ + relationSelector.setOutputMarkupId(true); + relationSelector.setOutputMarkupPlaceholderTag(true); + relationContainer.add(relationSelector); + + WebMarkupContainer kindContainer = new WebMarkupContainer(ID_KIND_CONTAINER); + kindContainer.add(new VisibleEnableBehaviour(){ + private static final long serialVersionUID = 1L; + + @Override + public boolean isVisible() { + return ResourceType.COMPLEX_TYPE.equals(typeModel.getObject().getTypeQName()); + } + }); + kindContainer.setOutputMarkupId(true); + add(kindContainer); + + DropDownChoicePanel kindSelector = WebComponentUtil.createEnumPanel(ShadowKindType.class, ID_KIND, + WebComponentUtil.createReadonlyModelFromEnum(ShadowKindType.class), Model.of(ShadowKindType.ACCOUNT),TypedAssignablePanel.this, false); + kindSelector.setOutputMarkupId(true); + kindSelector.getBaseFormComponent().add(new VisibleEnableBehaviour(){ + private static final long serialVersionUID = 1L; + + @Override + public boolean isEnabled(){ + return ResourceType.COMPLEX_TYPE.equals(typeModel.getObject().getTypeQName()) && getSelectedResourceCount() > 0; + } + }); + kindSelector.getBaseFormComponent().add(new AjaxFormComponentUpdatingBehavior("change") { + + @Override + protected void onUpdate(AjaxRequestTarget target) { + target.add(TypedAssignablePanel.this); + } + }); + kindSelector.getBaseFormComponent().add(new EmptyOnChangeAjaxFormUpdatingBehavior()); + kindSelector.setOutputMarkupPlaceholderTag(true); + kindContainer.add(kindSelector); + + WebMarkupContainer intentContainer = new WebMarkupContainer(ID_INTENT_CONTAINER); + intentContainer.add(new VisibleEnableBehaviour(){ + private static final long serialVersionUID = 1L; + + @Override + public boolean isVisible() { + return ResourceType.COMPLEX_TYPE.equals(typeModel.getObject().getTypeQName()); + } + }); + intentContainer.setOutputMarkupId(true); + add(intentContainer); + + DropDownChoicePanel intentSelector = new DropDownChoicePanel(ID_INTENT, + intentValueModel, intentValues); + intentSelector.getBaseFormComponent().add(new EmptyOnChangeAjaxFormUpdatingBehavior()); + intentSelector.getBaseFormComponent().add(new AjaxFormComponentUpdatingBehavior("change") { + + @Override + protected void onUpdate(AjaxRequestTarget target) { + target.add(TypedAssignablePanel.this); + } + }); + intentSelector.getBaseFormComponent().add(new EmptyOnChangeAjaxFormUpdatingBehavior()); + intentSelector.setOutputMarkupId(true); + intentSelector.setOutputMarkupPlaceholderTag(true); + intentSelector.getBaseFormComponent().add(new VisibleEnableBehaviour(){ private static final long serialVersionUID = 1L; @Override public boolean isEnabled(){ - return !ResourceType.COMPLEX_TYPE.equals(typeModel.getObject()); + return ResourceType.COMPLEX_TYPE.equals(typeModel.getObject().getTypeQName()) && getSelectedResourceCount() > 0; } + }); + intentContainer.add(intentSelector); - @Override - public boolean isVisible() { - return TypedAssignablePanel.this.isRelationPanelVisible(); - } + WebMarkupContainer orgTreeViewContainer = new WebMarkupContainer(ID_ORG_TREE_VIEW_CONTAINER); + orgTreeViewContainer.setOutputMarkupId(true); + orgTreeViewContainer.add(new VisibleEnableBehaviour(){ + private static final long serialVersionUID = 1L; - }); - relationSelector.setOutputMarkupId(true); - relationSelector.setOutputMarkupPlaceholderTag(true); - add(relationSelector); + @Override + public boolean isVisible(){ + boolean res= OrgType.COMPLEX_TYPE.equals(typeModel.getObject().getTypeQName()); + return res; + } + }); + add(orgTreeViewContainer); + + CheckBox orgTreeViewCheckbox = new CheckBox(ID_ORG_TREE_VIEW, orgTreeViewModel); + orgTreeViewCheckbox.add(new AjaxEventBehavior("change") { + @Override + protected void onEvent(AjaxRequestTarget ajaxRequestTarget) { + orgTreeViewModel.setObject(!orgTreeViewModel.getObject()); + ajaxRequestTarget.add(TypedAssignablePanel.this); + } + }); + orgTreeViewCheckbox.setOutputMarkupId(true); + orgTreeViewContainer.add(orgTreeViewCheckbox); + + } + private boolean isOrgTreeViewSelected(){ + CheckBox checkPanel = (CheckBox) TypedAssignablePanel.this.get(ID_ORG_TREE_VIEW_CONTAINER).get(ID_ORG_TREE_VIEW); + return checkPanel.getModel().getObject(); } private List getSelectedData(String id){ @@ -201,7 +361,7 @@ private List getSelectedData(String id){ } private QName getSelectedRelation(){ - DropDownChoicePanel relationPanel = (DropDownChoicePanel) get(ID_RELATION); + DropDownChoicePanel relationPanel = (DropDownChoicePanel) get(ID_RELATION_CONTAINER).get(ID_RELATION); RelationTypes relation = relationPanel.getModel().getObject(); if (relation == null) { return SchemaConstants.ORG_DEFAULT; @@ -209,6 +369,21 @@ private QName getSelectedRelation(){ return relation.getRelation(); } + private ShadowKindType getKind(){ + DropDownChoicePanel kindPanel = getKindDropdownComponent(); + ShadowKindType kind = kindPanel.getModel().getObject(); + if (kind == null) { + return ShadowKindType.ACCOUNT; + } + return kind; + } + + private String getIntent(){ + DropDownChoicePanel intentPanel = getIntentDropdownComponent(); + String intent = intentPanel.getBaseFormComponent().getModelObject(); + return intent == null ? "default" : intent; + } + private WebMarkupContainer createCountContainer(){ WebMarkupContainer countContainer = new WebMarkupContainer(ID_COUNT_CONTAINER); countContainer.setOutputMarkupId(true); @@ -230,8 +405,8 @@ protected void onClick(AjaxRequestTarget target, T focus) { } private void refreshCounts(AjaxRequestTarget target) { - addOrReplace(createCountContainer()); - target.add(get(ID_COUNT_CONTAINER)); +// addOrReplace(createCountContainer()); +// target.add(get(ID_COUNT_CONTAINER)); } private PopupObjectListPanel createObjectListPanel(String id, final String countId, final ObjectTypes type) { @@ -239,12 +414,30 @@ private PopupObjectListPanel createObjectListPanel(String id, final String co private static final long serialVersionUID = 1L; - @Override protected void onUpdateCheckbox(AjaxRequestTarget target) { + if (type.equals(ObjectTypes.RESOURCE)) { + target.add(TypedAssignablePanel.this); + } refreshCounts(target); } + @Override + protected IModel getCheckBoxEnableModel(IModel> rowModel){ + if (type.equals(ObjectTypes.RESOURCE)) { + return new LoadableModel() { + private static final long serialVersionUID = 1L; + + @Override + protected Boolean load() { + return getSelectedResourceCount() == 0 || (rowModel != null && rowModel.getObject().isSelected()); + } + }; + + } else { + return Model.of(true); + } + } @Override protected ObjectQuery addFilterToContentQuery(ObjectQuery query) { @@ -283,6 +476,9 @@ protected ObjectQuery addFilterToContentQuery(ObjectQuery query) { @Override public boolean isVisible() { + if (typeModel.getObject().getTypeQName().equals(OrgType.COMPLEX_TYPE)){ + return type.equals(typeModel.getObject()) && !isOrgTreeViewSelected(); + } return type.equals(typeModel.getObject()); } }); @@ -293,7 +489,7 @@ protected boolean isRelationPanelVisible() { return true; } - protected void addPerformed(AjaxRequestTarget target, List selected, QName relation) { + protected void addPerformed(AjaxRequestTarget target, List selected, QName relation, ShadowKindType kind, String intent) { getPageBase().hideMainPopup(target); } @@ -317,4 +513,55 @@ public Component getComponent() { return this; } + private LoadableModel> getIntentAvailableValuesModel(){ + return new LoadableModel>(true){ + private static final long serialVersionUID = 1L; + + @Override + protected List load(){ + List availableIntentValues = new ArrayList<>(); + if (getResourceTable() != null) { + List selectedResources = getResourceTable().getSelectedObjects(); + if (selectedResources != null && selectedResources.size() > 0) { + ResourceType selectedResource = (ResourceType) selectedResources.get(0); + + try { + RefinedResourceSchema refinedSchema = RefinedResourceSchema.getRefinedSchema(selectedResource.asPrismObject()); + if (refinedSchema != null) { + ShadowKindType kind = (ShadowKindType) TypedAssignablePanel.this.getKindDropdownComponent().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()); + } + + } + } + return availableIntentValues; + } + }; + } + + private DropDownChoicePanel getKindDropdownComponent(){ + return (DropDownChoicePanel)get(ID_KIND_CONTAINER).get(ID_KIND); + } + + private DropDownChoicePanel getIntentDropdownComponent(){ + return (DropDownChoicePanel)get(ID_INTENT_CONTAINER).get(ID_INTENT); + } + + private PopupObjectListPanel getResourceTable(){ + return (PopupObjectListPanel)get(createComponentPath(ID_TABLES_CONTAINER, ID_RESOURCE_TABLE)); + } + private int getSelectedResourceCount(){ + return getResourceTable().getSelectedObjectsCount(); + + } + + protected List getObjectTypesList(){ + return WebComponentUtil.createAssignableTypesList(); + } } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/autocomplete/AutoCompleteItemDefinitionPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/autocomplete/AutoCompleteItemDefinitionPanel.java index 75dc48442e0..0ea9239a09f 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/autocomplete/AutoCompleteItemDefinitionPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/autocomplete/AutoCompleteItemDefinitionPanel.java @@ -1,14 +1,26 @@ +/* + * Copyright (c) 2010-2017 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.autocomplete; import java.util.ArrayList; -import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; -import javax.xml.namespace.QName; - import org.apache.commons.lang3.StringUtils; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.form.OnChangeAjaxBehavior; @@ -16,9 +28,7 @@ import org.apache.wicket.markup.html.form.FormComponent; import org.apache.wicket.model.IModel; import org.apache.wicket.model.Model; -import org.apache.wicket.util.convert.IConverter; -import com.evolveum.midpoint.gui.api.component.path.ItemPathDto; import com.evolveum.midpoint.prism.ItemDefinition; public class AutoCompleteItemDefinitionPanel extends AbstractAutoCompletePanel { @@ -33,7 +43,7 @@ public AutoCompleteItemDefinitionPanel(String id, final IModel } private void initLayout(final IModel> model) { - final Model itemDefinitionAsStringModel = new Model(null); + final Model itemDefinitionAsStringModel = new Model<>(null); AutoCompleteTextField input = new AutoCompleteTextField( ID_INPUT, itemDefinitionAsStringModel, String.class, createAutoCompleteSettings()) { @@ -76,7 +86,7 @@ protected void onUpdate(AjaxRequestTarget target) { } protected Map> listChoices(String input){ - return new HashMap>(); + return new HashMap<>(); } @Override diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/autocomplete/AutoCompleteTextPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/autocomplete/AutoCompleteTextPanel.java index a1983316936..cc9653d216e 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/autocomplete/AutoCompleteTextPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/autocomplete/AutoCompleteTextPanel.java @@ -16,7 +16,6 @@ package com.evolveum.midpoint.gui.api.component.autocomplete; -import com.evolveum.midpoint.web.component.prism.PrismValuePanel; import com.evolveum.midpoint.web.model.LookupPropertyModel; import org.apache.wicket.ajax.AjaxRequestTarget; @@ -104,7 +103,9 @@ public void checkInputValue(AutoCompleteTextField input, AjaxRequestTarget targe if (input.getInput() == null || input.getInput().trim().equals("")){ model.setObject(input.getInput()); } - if (getIterator(input.getInput()).hasNext() && getIterator(input.getInput()).next() instanceof String) { + if (!getIterator(input.getInput()).hasNext()) { + updateFeedbackPanel(input, true, target); + } else { Iterator lookupTableValuesIterator = (Iterator) getIterator(input.getInput()); String value = input.getInput(); diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/captcha/CaptchaPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/captcha/CaptchaPanel.java index 22be2fdfd32..974e335d30a 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/captcha/CaptchaPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/captcha/CaptchaPanel.java @@ -1,16 +1,12 @@ package com.evolveum.midpoint.gui.api.component.captcha; -import java.util.Random; - import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.markup.html.AjaxLink; import org.apache.wicket.extensions.markup.html.captcha.CaptchaImageResource; -import org.apache.wicket.feedback.ComponentFeedbackMessageFilter; import org.apache.wicket.feedback.ContainerFeedbackMessageFilter; import org.apache.wicket.markup.ComponentTag; import org.apache.wicket.markup.html.form.RequiredTextField; import org.apache.wicket.markup.html.image.Image; -import org.apache.wicket.markup.html.panel.FeedbackPanel; import org.apache.wicket.model.PropertyModel; import com.evolveum.midpoint.gui.api.component.BasePanel; @@ -57,7 +53,7 @@ public void onClick(AjaxRequestTarget target) { add(changeCaptchaLink); add(new RequiredTextField("text", - new PropertyModel(CaptchaPanel.this, "captchaText"), String.class) { + new PropertyModel<>(CaptchaPanel.this, "captchaText"), String.class) { private static final long serialVersionUID = 1L; @Override diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssignmentDataTablePanel.html b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/form/CheckBoxPanel.html similarity index 51% rename from gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssignmentDataTablePanel.html rename to gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/form/CheckBoxPanel.html index 94b0003c8e7..c155bf9d3ab 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssignmentDataTablePanel.html +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/form/CheckBoxPanel.html @@ -1,5 +1,5 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AbstractAssignmentDetailsPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AbstractAssignmentDetailsPanel.java index a3366ef6fb8..20c11824e59 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AbstractAssignmentDetailsPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AbstractAssignmentDetailsPanel.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2015-2017 Evolveum + * Copyright (c) 2015-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,29 +20,20 @@ import javax.xml.namespace.QName; -import com.evolveum.midpoint.prism.PrismContainer; -import com.evolveum.midpoint.prism.PrismContainerValue; -import com.evolveum.midpoint.util.exception.SchemaException; import com.evolveum.midpoint.web.component.prism.*; import com.evolveum.midpoint.xml.ns._public.common.common_3.*; -import org.apache.wicket.markup.html.WebMarkupContainer; -import org.apache.wicket.markup.html.list.ListItem; -import org.apache.wicket.markup.html.list.ListView; import org.apache.wicket.model.AbstractReadOnlyModel; import org.apache.wicket.model.IModel; import org.apache.wicket.model.Model; -import org.apache.wicket.model.PropertyModel; import com.evolveum.midpoint.gui.api.component.BasePanel; import com.evolveum.midpoint.gui.api.component.DisplayNamePanel; -import com.evolveum.midpoint.gui.api.page.PageBase; import com.evolveum.midpoint.gui.api.util.WebComponentUtil; import com.evolveum.midpoint.gui.api.util.WebModelServiceUtils; import com.evolveum.midpoint.prism.Containerable; import com.evolveum.midpoint.prism.path.ItemPath; import com.evolveum.midpoint.task.api.Task; import com.evolveum.midpoint.web.component.form.Form; -import com.evolveum.midpoint.web.model.ContainerValueWrapperFromObjectWrapperModel; import com.evolveum.midpoint.web.model.ContainerWrapperFromObjectWrapperModel; import com.evolveum.midpoint.web.model.ContainerWrapperListFromObjectWrapperModel; import com.evolveum.midpoint.web.page.admin.PageAdminObjectDetails; @@ -109,7 +100,18 @@ protected QName getRelation() { return null; } } - }; + + @Override + protected IModel getKindIntentLabelModel() { + AssignmentType assignment = AbstractAssignmentDetailsPanel.this.getModelObject().getContainerValue().getValue(); + if (assignment.getConstruction() != null){ + return createStringResource("DisplayNamePanel.kindIntentLabel", assignment.getConstruction().getKind(), + assignment.getConstruction().getIntent()); + } + return Model.of(); + } + + }; displayNamePanel.setOutputMarkupId(true); add(displayNamePanel); @@ -129,55 +131,46 @@ protected QName getRelation() { add(assignmentPanel); - ContainerWrapperFromObjectWrapperModel activationModel = new ContainerWrapperFromObjectWrapperModel(pageBase.getObjectModel(), assignmentPath.append(AssignmentType.F_ACTIVATION)); + ContainerWrapperFromObjectWrapperModel activationModel = new ContainerWrapperFromObjectWrapperModel<>(pageBase.getObjectModel(), assignmentPath.append(AssignmentType.F_ACTIVATION)); PrismContainerPanel acitvationContainer = new PrismContainerPanel<>(ID_ACTIVATION_PANEL, activationModel, true, form, itemWrapper -> getActivationVisibileItems(itemWrapper.getPath(), assignmentPath), pageBase); add(acitvationContainer); initContainersPanel(form, pageBase); } - protected void initContainersPanel(Form form, PageAdminObjectDetails pageBase){ - ContainerWrapperListFromObjectWrapperModel containerModel = - new ContainerWrapperListFromObjectWrapperModel(pageBase.getObjectModel(), collectContainersToShow()); + protected void initContainersPanel(Form form, PageAdminObjectDetails pageBase) { ItemPath assignmentPath = getModelObject().getPath(); - if (containerModel != null && containerModel.getObject() != null){ - containerModel.getObject().forEach(container -> { - if (container.getName().equals(AssignmentType.F_CONSTRUCTION)) { - container.setAddContainerButtonVisible(true); - container.setShowEmpty(true, false); - - ContainerWrapper associationWrapper = container.findContainerWrapper(container.getPath().append(ConstructionType.F_ASSOCIATION)); - if (associationWrapper != null) { - associationWrapper.setRemoveContainerButtonVisible(true); - } - } - }); - } - - PrismPanel containers = new PrismPanel(ID_SPECIFIC_CONTAINERS, containerModel, - null, form, - itemWrapper -> getSpecificContainersItemsVisibility(itemWrapper, assignmentPath), pageBase) ; - add(containers); + PrismContainerPanel constraintsContainerPanel = new PrismContainerPanel(ID_SPECIFIC_CONTAINERS, + getSpecificContainerModel(), false, form, + itemWrapper -> getSpecificContainersItemsVisibility(itemWrapper, assignmentPath), pageBase); + constraintsContainerPanel.setOutputMarkupId(true); + add(constraintsContainerPanel); } protected ItemPath getAssignmentPath() { return getModelObject().getContainerValue().getValue().asPrismContainerValue().getPath(); } - protected abstract List collectContainersToShow(); + protected abstract IModel getSpecificContainerModel(); - protected boolean getSpecificContainersItemsVisibility(ItemWrapper itemWrapper, ItemPath parentAssignmentPath) { + protected ItemVisibility getSpecificContainersItemsVisibility(ItemWrapper itemWrapper, ItemPath parentAssignmentPath) { if (ContainerWrapper.class.isAssignableFrom(itemWrapper.getClass())){ - return true; + return ItemVisibility.AUTO; } List pathsToHide = new ArrayList<>(); pathsToHide.add(parentAssignmentPath.append(AssignmentType.F_CONSTRUCTION).append(ConstructionType.F_RESOURCE_REF)); - return PropertyOrReferenceWrapper.class.isAssignableFrom(itemWrapper.getClass()) && !WebComponentUtil.isItemVisible(pathsToHide, itemWrapper.getPath()); + pathsToHide.add(parentAssignmentPath.append(AssignmentType.F_CONSTRUCTION).append(ConstructionType.F_AUXILIARY_OBJECT_CLASS)); + pathsToHide.add(parentAssignmentPath.append(AssignmentType.F_CONSTRUCTION).append(ConstructionType.F_STRENGTH)); + if (PropertyOrReferenceWrapper.class.isAssignableFrom(itemWrapper.getClass()) && !WebComponentUtil.isItemVisible(pathsToHide, itemWrapper.getPath())) { + return ItemVisibility.AUTO; + } else { + return ItemVisibility.HIDDEN; + } } - private boolean getAssignmentBasicTabVisibity(ItemWrapper itemWrapper, ItemPath parentAssignmentPath) { + private ItemVisibility getAssignmentBasicTabVisibity(ItemWrapper itemWrapper, ItemPath parentAssignmentPath) { if (itemWrapper.getPath().equals(getAssignmentPath().append(AssignmentType.F_METADATA))){ - return true; + return ItemVisibility.AUTO; } AssignmentType assignment = getModelObject().getContainerValue().getValue(); ObjectReferenceType targetRef = assignment.getTargetRef(); @@ -203,20 +196,24 @@ private boolean getAssignmentBasicTabVisibity(ItemWrapper itemWrapper, ItemPath pathsToHide.add(parentAssignmentPath.append(AssignmentType.F_POLICY_RULE)); - return PropertyOrReferenceWrapper.class.isAssignableFrom(itemWrapper.getClass()) && !WebComponentUtil.isItemVisible(pathsToHide, itemWrapper.getPath()); + if (PropertyOrReferenceWrapper.class.isAssignableFrom(itemWrapper.getClass()) && !WebComponentUtil.isItemVisible(pathsToHide, itemWrapper.getPath())) { + return ItemVisibility.AUTO; + } else { + return ItemVisibility.HIDDEN; + } } - private boolean getActivationVisibileItems(ItemPath pathToCheck, ItemPath assignmentPath) { - if (assignmentPath.append(new ItemPath(AssignmentType.F_ACTIVATION, ActivationType.F_LOCKOUT_EXPIRATION_TIMESTAMP)).equivalent(pathToCheck)){ - return false; + private ItemVisibility getActivationVisibileItems(ItemPath pathToCheck, ItemPath assignmentPath) { + if (assignmentPath.append(new ItemPath(AssignmentType.F_ACTIVATION, ActivationType.F_LOCKOUT_EXPIRATION_TIMESTAMP)).equivalent(pathToCheck)) { + return ItemVisibility.HIDDEN; } - if (assignmentPath.append(new ItemPath(AssignmentType.F_ACTIVATION, ActivationType.F_LOCKOUT_STATUS)).equivalent(pathToCheck)){ - return false; + if (assignmentPath.append(new ItemPath(AssignmentType.F_ACTIVATION, ActivationType.F_LOCKOUT_STATUS)).equivalent(pathToCheck)) { + return ItemVisibility.HIDDEN; } - return true; + return ItemVisibility.AUTO; } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AbstractAssignmentListPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AbstractAssignmentListPanel.java index 5c5d350e2e3..9fda34c2c8e 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AbstractAssignmentListPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AbstractAssignmentListPanel.java @@ -16,10 +16,8 @@ package com.evolveum.midpoint.web.component.assignment; import com.evolveum.midpoint.gui.api.component.BasePanel; -import com.evolveum.midpoint.gui.api.page.PageBase; import com.evolveum.midpoint.prism.path.ItemPath; import com.evolveum.midpoint.schema.constants.SchemaConstants; -import com.evolveum.midpoint.util.MiscUtil; import com.evolveum.midpoint.util.exception.SchemaException; import com.evolveum.midpoint.util.logging.LoggingUtils; import com.evolveum.midpoint.util.logging.Trace; diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AbstractRoleAssignmentDetailsPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AbstractRoleAssignmentDetailsPanel.java index 6eac55c89ef..5e1a2a7f340 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AbstractRoleAssignmentDetailsPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AbstractRoleAssignmentDetailsPanel.java @@ -18,12 +18,19 @@ import java.util.ArrayList; import java.util.List; +import com.evolveum.midpoint.prism.Containerable; +import com.evolveum.midpoint.web.component.input.QNameEditorPanel; import com.evolveum.midpoint.web.component.prism.ContainerValueWrapper; +import com.evolveum.midpoint.web.component.prism.ContainerWrapper; +import com.evolveum.midpoint.web.model.ContainerWrapperListFromObjectWrapperModel; import com.evolveum.midpoint.xml.ns._public.common.common_3.*; import org.apache.wicket.model.IModel; import com.evolveum.midpoint.prism.path.ItemPath; import com.evolveum.midpoint.web.component.form.Form; +import org.apache.wicket.model.Model; + +import javax.xml.namespace.QName; /** * TODO: is this class abstract or not? @@ -38,16 +45,33 @@ public AbstractRoleAssignmentDetailsPanel(String id, Form form, IModel collectContainersToShow() { - List pathsToShow = new ArrayList<>(); + protected IModel getSpecificContainerModel() { if (ConstructionType.COMPLEX_TYPE.equals(AssignmentsUtil.getTargetType(getModelObject().getContainerValue().getValue()))) { - pathsToShow.add(getAssignmentPath().append(AssignmentType.F_CONSTRUCTION)); + ContainerWrapper constructionWrapper = getModelObject().findContainerWrapper(new ItemPath(getModelObject().getPath(), + AssignmentType.F_CONSTRUCTION)); + + constructionWrapper.setAddContainerButtonVisible(true); + constructionWrapper.setShowEmpty(true, false); + if (constructionWrapper != null && constructionWrapper.getValues() != null) { + constructionWrapper.getValues().forEach(vw -> vw.setShowEmpty(true, false)); + } + ContainerWrapper associationWrapper = constructionWrapper.findContainerWrapper(constructionWrapper.getPath().append(ConstructionType.F_ASSOCIATION)); + if (associationWrapper != null) { + associationWrapper.setRemoveContainerButtonVisible(true); + } + return Model.of(constructionWrapper); } if (PersonaConstructionType.COMPLEX_TYPE.equals(AssignmentsUtil.getTargetType(getModelObject().getContainerValue().getValue()))) { - pathsToShow.add(getAssignmentPath().append(AssignmentType.F_PERSONA_CONSTRUCTION)); + ContainerWrapper personasWrapper = getModelObject().findContainerWrapper(new ItemPath(getModelObject().getPath(), + AssignmentType.F_PERSONA_CONSTRUCTION)); + if (personasWrapper != null && personasWrapper.getValues() != null) { + personasWrapper.getValues().forEach(vw -> vw.setShowEmpty(true, false)); + } + + return Model.of(personasWrapper); } - return pathsToShow; + return Model.of(); } } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AbstractRoleAssignmentPanel.html b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AbstractRoleAssignmentPanel.html index 5bb40e6a1f5..c25d512e3d0 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AbstractRoleAssignmentPanel.html +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AbstractRoleAssignmentPanel.html @@ -20,12 +20,12 @@

-
+
-
+
-
-
+
+
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 e4a59ad86a8..7b3ca17a581 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 @@ -17,17 +17,15 @@ package com.evolveum.midpoint.web.component.assignment; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.List; import javax.xml.namespace.QName; import com.evolveum.midpoint.prism.PrismContainerValue; -import com.evolveum.midpoint.prism.query.builder.S_AtomicFilterEntry; -import com.evolveum.midpoint.prism.query.builder.S_AtomicFilterExit; -import com.evolveum.midpoint.prism.query.builder.S_FilterEntryOrEmpty; +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.web.component.prism.*; import com.evolveum.midpoint.web.page.admin.PageAdminFocus; import com.evolveum.midpoint.web.page.admin.users.component.AssignmentInfoDto; @@ -53,6 +51,7 @@ import com.evolveum.midpoint.prism.query.ObjectQuery; import com.evolveum.midpoint.prism.query.builder.QueryBuilder; import com.evolveum.midpoint.schema.util.ObjectTypeUtil; +import com.evolveum.midpoint.task.api.Task; import com.evolveum.midpoint.web.component.AjaxButton; import com.evolveum.midpoint.web.component.form.Form; import com.evolveum.midpoint.web.component.input.DropDownChoicePanel; @@ -68,8 +67,10 @@ public class AbstractRoleAssignmentPanel extends AssignmentPanel { private static final long serialVersionUID = 1L; private static final String ID_RELATION = "relation"; + private static final String ID_RELATION_CONTAINER = "relationContainer"; private static final String ID_SHOW_ALL_ASSIGNMENTS_BUTTON = "showAllAssignmentsButton"; + private RelationTypes relationValue = null; public AbstractRoleAssignmentPanel(String id, IModel> assignmentContainerWrapperModel){ super(id, assignmentContainerWrapperModel); @@ -77,8 +78,39 @@ public AbstractRoleAssignmentPanel(String id, IModel relation = WebComponentUtil.createEnumPanel(RelationTypes.class, ID_RELATION, - WebComponentUtil.createReadonlyModelFromEnum(RelationTypes.class), Model.of(), this, true); + WebComponentUtil.createReadonlyModelFromEnum(RelationTypes.class), + new IModel() { + @Override + public RelationTypes getObject() { + return relationValue; + } + + @Override + public void setObject(RelationTypes relationTypes) { + relationValue = relationTypes; + } + + @Override + public void detach() { + + } + }, this, true, + createStringResource("RelationTypes.ANY").getString()); relation.getBaseFormComponent().add(new AjaxFormComponentUpdatingBehavior("change") { private static final long serialVersionUID = 1L; @@ -89,17 +121,7 @@ protected void onUpdate(AjaxRequestTarget target) { }); relation.setOutputMarkupId(true); relation.setOutputMarkupPlaceholderTag(true); - relation.add(new VisibleEnableBehaviour() { - - private static final long serialVersionUID = 1L; - - @Override - public boolean isVisible() { - return AbstractRoleAssignmentPanel.this.isRelationVisible(); - } - - }); - assignmentsContainer.addOrReplace(relation); + relationContainer.addOrReplace(relation); AjaxButton showAllAssignmentsButton = new AjaxButton(ID_SHOW_ALL_ASSIGNMENTS_BUTTON, createStringResource("AssignmentTablePanel.menu.showAllAssignments")) { @@ -124,7 +146,7 @@ public boolean isVisible(){ } private DropDownChoicePanel getRelationPanel() { - return (DropDownChoicePanel) getAssignmentContainer().get(ID_RELATION); + return (DropDownChoicePanel) getAssignmentContainer().get(ID_RELATION_CONTAINER).get(ID_RELATION); } @@ -143,15 +165,20 @@ protected void showAllAssignments(AjaxRequestTarget target) { @Override protected void newAssignmentClickPerformed(AjaxRequestTarget target) { - TypedAssignablePanel panel = new TypedAssignablePanel( - getPageBase().getMainPopupBodyId(), RoleType.class) { + TypedAssignablePanel panel = new TypedAssignablePanel( + getPageBase().getMainPopupBodyId(), getDefaultNewAssignmentFocusType()) { private static final long serialVersionUID = 1L; @Override - protected void addPerformed(AjaxRequestTarget target, List selected, QName relation) { - super.addPerformed(target, selected, relation); - addSelectedAssignmentsPerformed(target, selected, relation); + 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); + } + + @Override + protected List getObjectTypesList(){ + return AbstractRoleAssignmentPanel.this.getObjectTypesList(); } }; @@ -159,7 +186,12 @@ protected void addPerformed(AjaxRequestTarget target, List selected, QName relat getPageBase().showMainPopup(panel, target); } - protected void addSelectedAssignmentsPerformed(AjaxRequestTarget target, List assignmentsList, QName relation){ + protected Class getDefaultNewAssignmentFocusType(){ + return RoleType.class; + } + + protected void addSelectedAssignmentsPerformed(AjaxRequestTarget target, List assignmentsList, QName relation, + ShadowKindType kind, String intent){ if (assignmentsList == null || assignmentsList.isEmpty()){ warn(getParentPage().getString("AssignmentTablePanel.message.noAssignmentSelected")); target.add(getPageBase().getFeedbackPanel()); @@ -173,6 +205,8 @@ protected void addSelectedAssignmentsPerformed(AjaxReques if (ResourceType.class.equals(object.getClass())) { ConstructionType constructionType = new ConstructionType(); constructionType.setResourceRef(ref); + constructionType.setKind(kind); + constructionType.setIntent(intent); assignmentType.setConstruction(constructionType); } else { assignmentType.setTargetRef(ref); @@ -180,8 +214,8 @@ protected void addSelectedAssignmentsPerformed(AjaxReques createNewAssignmentContainerValueWrapper(newAssignment); } - refreshTable(target); - + refreshTable(target); + reloadSavePreviewButtons(target); } protected List, String>> initColumns() { @@ -194,6 +228,25 @@ public void populateItem(Item, String>(createStringResource("AssignmentType.tenant")){ + private static final long serialVersionUID = 1L; + + @Override + public void populateItem(Item>> item, String componentId, + final IModel> rowModel) { + item.add(new Label(componentId, getTenantLabelModel(rowModel.getObject()))); + } + }); + columns.add(new AbstractColumn, String>(createStringResource("AssignmentType.orgReferenceShorten")){ + private static final long serialVersionUID = 1L; + + @Override + public void populateItem(Item>> item, String componentId, + final IModel> rowModel) { + item.add(new Label(componentId, getOrgRefLabelModel(rowModel.getObject()))); + } + }); + return columns; } @@ -263,20 +316,7 @@ protected ObjectQuery createObjectQuery() { } private QName getRelation() { - DropDownChoicePanel relationPanel = getRelationPanel(); - if (relationPanel == null) { - return PrismConstants.Q_ANY; - } - - if (relationPanel.getModel() == null) { - return PrismConstants.Q_ANY; - } - - if (relationPanel.getModel().getObject() == null) { - return PrismConstants.Q_ANY; - } - - return relationPanel.getModel().getObject().getRelation(); + return relationValue == null ? PrismConstants.Q_ANY : relationValue.getRelation(); } @Override @@ -284,8 +324,29 @@ protected AbstractAssignmentDetailsPanel createDetailsPanel(String idAssignmentD return new AbstractRoleAssignmentDetailsPanel(ID_ASSIGNMENT_DETAILS, form, model); } - protected boolean isRelationVisible() { + private IModel getTenantLabelModel(ContainerValueWrapper assignmentContainer){ + if (assignmentContainer == null || assignmentContainer.getContainerValue() == null){ + return Model.of(""); + } + AssignmentType assignment = assignmentContainer.getContainerValue().asContainerable(); + return Model.of(WebComponentUtil.getReferencedObjectDisplayNamesAndNames(Arrays.asList(assignment.getTenantRef()), false)); + + } + + private IModel getOrgRefLabelModel(ContainerValueWrapper assignmentContainer){ + if (assignmentContainer == null || assignmentContainer.getContainerValue() == null){ + return Model.of(""); + } + AssignmentType assignment = assignmentContainer.getContainerValue().asContainerable(); + return Model.of(WebComponentUtil.getReferencedObjectDisplayNamesAndNames(Arrays.asList(assignment.getOrgRef()), false)); + + } + + protected boolean isRelationVisible() { return true; } + protected List getObjectTypesList(){ + return WebComponentUtil.createAssignableTypesList(); + } } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/ApplicablePolicyConfigPanel.html b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/ApplicablePolicyConfigPanel.html new file mode 100644 index 00000000000..ed69603dd8b --- /dev/null +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/ApplicablePolicyConfigPanel.html @@ -0,0 +1,22 @@ + + + + +
+
+
+ diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/ApplicablePolicyConfigPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/ApplicablePolicyConfigPanel.java new file mode 100644 index 00000000000..d6e65df465a --- /dev/null +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/ApplicablePolicyConfigPanel.java @@ -0,0 +1,112 @@ +/** + * Copyright (c) 2015-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.assignment; + +import com.evolveum.midpoint.gui.api.component.BasePanel; +import com.evolveum.midpoint.gui.api.model.LoadableModel; +import com.evolveum.midpoint.gui.api.util.WebModelServiceUtils; +import com.evolveum.midpoint.model.api.util.ModelContextUtil; +import com.evolveum.midpoint.model.api.util.ModelUtils; +import com.evolveum.midpoint.prism.PrismObject; +import com.evolveum.midpoint.schema.result.OperationResult; +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.objectdetails.AbstractObjectMainPanel; +import com.evolveum.midpoint.web.component.prism.ContainerWrapper; +import com.evolveum.midpoint.xml.ns._public.common.common_3.*; +import org.apache.wicket.markup.html.list.ListItem; +import org.apache.wicket.markup.html.list.ListView; +import org.apache.wicket.model.IModel; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by honchar. + */ +public class ApplicablePolicyConfigPanel extends BasePanel>{ + private static final long serialVersionUID = 1L; + + private static final Trace LOGGER = TraceManager.getTrace(ApplicablePolicyConfigPanel.class); + private static final String DOT_CLASS = ApplicablePolicyConfigPanel.class.getName() + "."; + private static final String OPERATION_LOAD_SYS_CONFIG = DOT_CLASS + "loadSystemConfiguration"; + + private static final String ID_POLICY_GROUPS = "policiesGroups"; + private static final String ID_POLICY_GROUP_PANEL = "policyGroupPanel"; + + private LoadableModel> policyGroupsListModel; + + public ApplicablePolicyConfigPanel(String id, IModel> model){ + super(id, model); + } + + @Override + protected void onInitialize(){ + super.onInitialize(); + initModels(); + initLayout(); + } + + private void initModels(){ + policyGroupsListModel = new LoadableModel>(false) { + private static final long serialVersionUID = 1L; + + @Override + protected List load() { + List policyGroupsList = new ArrayList<>(); + OperationResult result = new OperationResult(OPERATION_LOAD_SYS_CONFIG); + try { + SystemConfigurationType sysConfig = getPageBase().getModelInteractionService().getSystemConfiguration(result); + if (sysConfig == null){ + return policyGroupsList; + } else { + ObjectPolicyConfigurationType policyConfig = ModelUtils.determineObjectPolicyConfiguration(getMainPanelFocusObject(), sysConfig); + if (policyConfig != null && policyConfig.getApplicablePolicies() != null){ + return policyConfig.getApplicablePolicies().getPolicyGroupRef(); + } + } + } catch (Exception ex){ + LoggingUtils.logUnexpectedException(LOGGER, "Cannot retrieve system configuration", ex); + } + return policyGroupsList; + } + }; + } + + private void initLayout(){ + ListView policyGroupsPanel = new ListView(ID_POLICY_GROUPS, policyGroupsListModel) { + @Override + protected void populateItem(ListItem listItem) { + ApplicablePolicyGroupPanel groupPanel = new ApplicablePolicyGroupPanel(ID_POLICY_GROUP_PANEL, listItem.getModel(), + ApplicablePolicyConfigPanel.this.getModel()); + groupPanel.setOutputMarkupId(true); + listItem.add(groupPanel); + } + }; + policyGroupsPanel.setOutputMarkupId(true); + add(policyGroupsPanel); + } + + private PrismObject getMainPanelFocusObject(){ + AbstractObjectMainPanel mainPanel = ApplicablePolicyConfigPanel.this.findParent(AbstractObjectMainPanel.class); + if (mainPanel != null){ + return mainPanel.getObject(); + } + return null; + } + +} diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/ApplicablePolicyGroupPanel.html b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/ApplicablePolicyGroupPanel.html new file mode 100644 index 00000000000..2c20f2b9681 --- /dev/null +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/ApplicablePolicyGroupPanel.html @@ -0,0 +1,35 @@ + + + + +
+
+

+
+

+
+
+
+
+
+
+
+
+
+
+
+ \ No newline at end of file diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/ApplicablePolicyGroupPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/ApplicablePolicyGroupPanel.java new file mode 100644 index 00000000000..7f6a21487dd --- /dev/null +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/ApplicablePolicyGroupPanel.java @@ -0,0 +1,189 @@ +/** + * Copyright (c) 2015-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.assignment; + +import com.evolveum.midpoint.gui.api.component.BasePanel; +import com.evolveum.midpoint.gui.api.component.form.CheckBoxPanel; +import com.evolveum.midpoint.gui.api.model.LoadableModel; +import com.evolveum.midpoint.gui.api.util.WebComponentUtil; +import com.evolveum.midpoint.gui.api.util.WebModelServiceUtils; +import com.evolveum.midpoint.prism.ItemDefinition; +import com.evolveum.midpoint.prism.PrismContainerValue; +import com.evolveum.midpoint.prism.PrismObject; +import com.evolveum.midpoint.prism.query.ObjectQuery; +import com.evolveum.midpoint.prism.query.builder.QueryBuilder; +import com.evolveum.midpoint.schema.result.OperationResult; +import com.evolveum.midpoint.schema.util.ObjectTypeUtil; +import com.evolveum.midpoint.task.api.Task; +import com.evolveum.midpoint.util.logging.Trace; +import com.evolveum.midpoint.util.logging.TraceManager; +import com.evolveum.midpoint.web.component.data.column.IsolatedCheckBoxPanel; +import com.evolveum.midpoint.web.component.prism.*; +import com.evolveum.midpoint.xml.ns._public.common.common_3.*; +import org.apache.wicket.ajax.AjaxRequestTarget; +import org.apache.wicket.markup.html.basic.Label; +import org.apache.wicket.markup.html.list.ListItem; +import org.apache.wicket.markup.html.list.ListView; +import org.apache.wicket.model.IModel; +import org.apache.wicket.model.Model; + +import java.util.Collections; +import java.util.Comparator; +import java.util.List; + +/** + * Created by honchar. + */ +public class ApplicablePolicyGroupPanel extends BasePanel{ + private static final long serialVersionUID = 1L; + + private static final Trace LOGGER = TraceManager.getTrace(ApplicablePolicyGroupPanel.class); + private static final String DOT_CLASS = ApplicablePolicyGroupPanel.class.getName() + "."; + private static final String OPERATION_LOAD_POLICY_GROUP_MEMBERS = DOT_CLASS + "loadPolicyGroupMembers"; + private static final String OPERATION_LOAD_POLICY_GROUP_NAME = DOT_CLASS + "loadPolicyGroupName"; + + private static final String ID_POLICY_GROUP_NAME = "policyGroupName"; + private static final String ID_POLICIES_CONTAINER = "policiesContainer"; + private static final String ID_POLICY_CHECK_BOX = "policyCheckBox"; + private LoadableModel>> policiesListModel; + IModel> assignmentsModel; + + public ApplicablePolicyGroupPanel(String id, IModel model, IModel> assignmentsModel){ + super(id, model); + this.assignmentsModel = assignmentsModel; + } + + @Override + protected void onInitialize(){ + super.onInitialize(); + initModels(); + initLayout(); + } + + private void initModels(){ + policiesListModel = new LoadableModel>>(false) { + @Override + protected List> load() { + OperationResult result = new OperationResult(OPERATION_LOAD_POLICY_GROUP_MEMBERS); + + ObjectReferenceType policyGroupObject = ApplicablePolicyGroupPanel.this.getModelObject(); + ObjectQuery membersQuery = QueryBuilder.queryFor(AbstractRoleType.class, getPageBase().getPrismContext()) + .isChildOf(policyGroupObject.getOid()) + .build(); + List> policiesList = WebModelServiceUtils.searchObjects(AbstractRoleType.class, membersQuery, result, getPageBase()); + Collections.sort(policiesList, new Comparator>() { + @Override + public int compare(PrismObject o1, PrismObject o2) { + String displayName1 = WebComponentUtil.getDisplayNameOrName(o1); + String displayName2 = WebComponentUtil.getDisplayNameOrName(o2); + return String.CASE_INSENSITIVE_ORDER.compare(displayName1, displayName2); + } + }); + return policiesList; + } + }; + } + + private void initLayout(){ + Label policyGroupName = new Label(ID_POLICY_GROUP_NAME, Model.of(WebComponentUtil.getDisplayNameOrName(getModelObject(), getPageBase(), OPERATION_LOAD_POLICY_GROUP_NAME))); + policyGroupName.setOutputMarkupId(true); + add(policyGroupName); + + ListView> policiesPanel = new ListView>(ID_POLICIES_CONTAINER, policiesListModel){ + private static final long serialVersionUID = 1L; + + @Override + protected void populateItem(ListItem> listItem) { + PrismObject abstractRole = listItem.getModelObject(); + CheckBoxPanel policyCheckBox = new CheckBoxPanel(ID_POLICY_CHECK_BOX, + getCheckboxModel(abstractRole), + null, // visibility + Model.of(WebComponentUtil.getDisplayNameOrName(abstractRole)), // label + null // tooltip + ) { + private static final long serialVersionUID = 1L; + + @Override + public void onUpdate(AjaxRequestTarget target) { + onPolicyAddedOrRemoved(listItem.getModelObject(), getValue()); + } + }; + policyCheckBox.setOutputMarkupId(true); + listItem.add(policyCheckBox); + } + }; + policiesPanel.setOutputMarkupId(true); + add(policiesPanel); + } + + private IModel getCheckboxModel(PrismObject abstractRole) { + return Model.of(isAssignmentAlreadyInList(abstractRole.getOid()) && + !ValueStatus.DELETED.equals(getExistingAssignmentStatus(abstractRole.getOid()))); + } + + private boolean isAssignmentAlreadyInList(String policyRoleOid){ + for (ContainerValueWrapper assignment : assignmentsModel.getObject().getValues()){ + ObjectReferenceType targetRef = assignment.getContainerValue().getValue().getTargetRef(); + if (targetRef != null && targetRef.getOid().equals(policyRoleOid)){ + return true; + } + } + return false; + } + + private ValueStatus getExistingAssignmentStatus(String policyRoleOid){ + for (ContainerValueWrapper assignment : assignmentsModel.getObject().getValues()){ + ObjectReferenceType targetRef = assignment.getContainerValue().getValue().getTargetRef(); + if (targetRef != null && targetRef.getOid().equals(policyRoleOid)){ + return assignment.getStatus(); + } + } + return null; + } + + private void onPolicyAddedOrRemoved(PrismObject assignmentTargetObject, boolean added){ + if (isAssignmentAlreadyInList(assignmentTargetObject.getOid())){ + ContainerValueWrapper assignmentToRemove = null; + for (ContainerValueWrapper assignment : assignmentsModel.getObject().getValues()){ + ObjectReferenceType targetRef = assignment.getContainerValue().getValue().getTargetRef(); + if (targetRef != null && targetRef.getOid().equals(assignmentTargetObject.getOid())){ + if (added && assignment.getStatus() == ValueStatus.DELETED){ + assignment.setStatus(ValueStatus.NOT_CHANGED); + } else if (!added && assignment.getStatus() == ValueStatus.ADDED){ + assignmentToRemove = assignment; + } else if (!added){ + assignment.setStatus(ValueStatus.DELETED); + } + } + } + assignmentsModel.getObject().getValues().remove(assignmentToRemove); + } else { + if (added){ + //TODO: not sure if this is correct way of creating new value.. this value is added directly to the origin object... what about deltas?? + PrismContainerValue newAssignment = assignmentsModel.getObject().getItem().createNewValue(); + ObjectReferenceType ref = ObjectTypeUtil.createObjectRef(assignmentTargetObject); + AssignmentType assignmentType = newAssignment.asContainerable(); + assignmentType.setTargetRef(ref); + Task task = getPageBase().createSimpleTask("Creating new applicable policy"); + ContainerWrapperFactory factory = new ContainerWrapperFactory(getPageBase()); + ContainerValueWrapper valueWrapper = factory.createContainerValueWrapper(assignmentsModel.getObject(), newAssignment, + assignmentsModel.getObject().getObjectStatus(), ValueStatus.ADDED, assignmentsModel.getObject().getPath(), task); + valueWrapper.setShowEmpty(true, false); + assignmentsModel.getObject().getValues().add(valueWrapper); + } + } + } +} diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssignmentDataTablePanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssignmentDataTablePanel.java deleted file mode 100644 index f0655d6bff5..00000000000 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssignmentDataTablePanel.java +++ /dev/null @@ -1,454 +0,0 @@ -/* - * Copyright (c) 2010-2017 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.assignment; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.xml.namespace.QName; - -import org.apache.commons.lang.StringUtils; -import org.apache.wicket.ajax.AjaxRequestTarget; -import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior; -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.html.basic.Label; -import org.apache.wicket.markup.repeater.Item; -import org.apache.wicket.model.IModel; -import org.apache.wicket.model.Model; -import org.apache.wicket.model.PropertyModel; - -import com.evolveum.midpoint.gui.api.GuiStyleConstants; -import com.evolveum.midpoint.gui.api.component.TypedAssignablePanel; -import com.evolveum.midpoint.gui.api.page.PageBase; -import com.evolveum.midpoint.gui.api.util.WebComponentUtil; -import com.evolveum.midpoint.prism.query.ObjectPaging; -import com.evolveum.midpoint.prism.query.ObjectQuery; -import com.evolveum.midpoint.schema.constants.SchemaConstants; -import com.evolveum.midpoint.security.api.AuthorizationConstants; -import com.evolveum.midpoint.web.component.AjaxButton; -import com.evolveum.midpoint.web.component.AjaxIconButton; -import com.evolveum.midpoint.web.component.data.BoxedTablePanel; -import com.evolveum.midpoint.web.component.data.column.CheckBoxHeaderColumn; -import com.evolveum.midpoint.web.component.data.column.ColumnMenuAction; -import com.evolveum.midpoint.web.component.data.column.DoubleButtonColumn; -import com.evolveum.midpoint.web.component.data.column.IconColumn; -import com.evolveum.midpoint.web.component.data.column.InlineMenuButtonColumn; -import com.evolveum.midpoint.web.component.data.column.LinkColumn; -import com.evolveum.midpoint.web.component.input.DropDownChoicePanel; -import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItem; -import com.evolveum.midpoint.web.component.util.ListDataProvider; -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.ChooseTypePanel; -import com.evolveum.midpoint.web.page.admin.dto.ObjectViewDto; -import com.evolveum.midpoint.web.session.AssignmentsTabStorage; -import com.evolveum.midpoint.web.session.UserProfileStorage; -import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectReferenceType; -import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType; -import com.evolveum.midpoint.xml.ns._public.common.common_3.OrgType; -import com.evolveum.midpoint.xml.ns._public.common.common_3.ResourceType; -import com.evolveum.midpoint.xml.ns._public.common.common_3.RoleType; - -/** - * Created by honchar. - */ -public class AssignmentDataTablePanel extends AbstractAssignmentListPanel { - private static final String ID_ASSIGNMENTS = "assignments"; - private static final String ID_RELATION = "relation"; - private static final String ID_ASSIGNMENTS_TABLE = "assignmentsTable"; - private static final String ID_NEW_ASSIGNMENT_BUTTON = "newAssignmentButton"; - private static final String ID_SHOW_ALL_ASSIGNMENTS_BUTTON = "showAllAssignmentsButton"; - - private Map> relationAssignmentsMap = new HashMap<>(); - private IModel relationModel = Model.of(RelationTypes.MEMBER); - - public AssignmentDataTablePanel(String id, IModel> assignmentsModel, PageBase pageBase){ - super(id, assignmentsModel); - initPaging(); - - } - - @Override - protected void onInitialize() { - super.onInitialize(); - - WebMarkupContainer assignmentsContainer = new WebMarkupContainer(ID_ASSIGNMENTS); - assignmentsContainer.setOutputMarkupId(true); - add(assignmentsContainer); - - addOrReplaceAssignmentsTable(assignmentsContainer); - - AjaxIconButton newObjectIcon = new AjaxIconButton(ID_NEW_ASSIGNMENT_BUTTON, new Model<>("fa fa-plus"), - createStringResource("MainObjectListPanel.newObject")) { - - private static final long serialVersionUID = 1L; - - @Override - public void onClick(AjaxRequestTarget target) { - TypedAssignablePanel panel = new TypedAssignablePanel( - getPageBase().getMainPopupBodyId(), RoleType.class) { - private static final long serialVersionUID = 1L; - - @Override - protected void addPerformed(AjaxRequestTarget target, List selected, QName relation) { - addSelectedAssignmentsPerformed(target, selected, relation); - } - - }; - panel.setOutputMarkupId(true); - getPageBase().showMainPopup(panel, target); - } - }; - newObjectIcon.add(new VisibleEnableBehaviour(){ - private static final long serialVersionUID = 1L; - - @Override - public boolean isVisible(){ - return WebComponentUtil.isAuthorized(AuthorizationConstants.AUTZ_UI_ADMIN_ASSIGN_ACTION_URI); - } - }); - assignmentsContainer.add(newObjectIcon); - - - } - - protected void showAllAssignments(AjaxRequestTarget target) { - } - - private void addSelectedAssignmentsPerformed(AjaxRequestTarget target, List assignmentsList, QName relation){ - if (assignmentsList == null || assignmentsList.isEmpty()){ - warn(getPageBase().getString("AssignmentTablePanel.message.noAssignmentSelected")); - target.add(getPageBase().getFeedbackPanel()); - return; - } - for (ObjectType object : assignmentsList){ - AssignmentEditorDto dto = createAssignmentFromSelectedObjects(object, relation); - getAssignmentModel().getObject().add(0, dto); - } - relationModel.setObject(RelationTypes.getRelationType(relation)); - initPaging(); - addOrReplaceAssignmentsTable(getAssignmentsContainer()); - reloadMainFormButtons(target); - target.add(getAssignmentsContainer()); - } - - private void addOrReplaceAssignmentsTable(WebMarkupContainer assignmentsContainer){ - fillInRelationAssignmentsMap(); - DropDownChoicePanel relation = WebComponentUtil.createEnumPanel(RelationTypes.class, ID_RELATION, - WebComponentUtil.createReadonlyModelFromEnum(RelationTypes.class), relationModel, this, false); - relation.getBaseFormComponent().add(new AjaxFormComponentUpdatingBehavior("change") { - private static final long serialVersionUID = 1L; - - @Override - protected void onUpdate(AjaxRequestTarget target) { - relationModel.setObject((RelationTypes)relation.getBaseFormComponent().getConvertedInput()); - addOrReplaceAssignmentsTable(getAssignmentsContainer()); - target.add(AssignmentDataTablePanel.this.get(ID_ASSIGNMENTS).get(ID_ASSIGNMENTS_TABLE)); - } - }); - relation.setOutputMarkupId(true); - relation.setOutputMarkupPlaceholderTag(true); - assignmentsContainer.addOrReplace(relation); - - AjaxButton showAllAssignmentsButton = new AjaxButton(ID_SHOW_ALL_ASSIGNMENTS_BUTTON, - createStringResource("AssignmentTablePanel.menu.showAllAssignments")) { - @Override - public void onClick(AjaxRequestTarget ajaxRequestTarget) { - showAllAssignments(ajaxRequestTarget); - } - }; - assignmentsContainer.addOrReplace(showAllAssignmentsButton); - - ListDataProvider assignmentsProvider = new ListDataProvider(this, - Model.ofList(relationAssignmentsMap.get(relationModel.getObject())), false){ - private static final long serialVersionUID = 1L; - - @Override - protected void saveProviderPaging(ObjectQuery query, ObjectPaging paging) { - getAssignmentsStorage().setPaging(paging); - } - - }; - BoxedTablePanel assignmentTable = new BoxedTablePanel(ID_ASSIGNMENTS_TABLE, - assignmentsProvider, initColumns(), UserProfileStorage.TableId.ASSIGNMENTS_TAB_TABLE, - (int) getPageBase().getItemsPerPage(UserProfileStorage.TableId.ASSIGNMENTS_TAB_TABLE)){ - private static final long serialVersionUID = 1L; - -// @Override -// protected Item customizeNewRowItem(Item item, IModel model) { -// item.add(AttributeModifier.append("class", AssignmentsUtil.createAssignmentStatusClassModel(model))); -// return item; -// } - - @Override - public int getItemsPerPage() { - return getPageBase().getSessionStorage().getUserProfile().getTables().get(UserProfileStorage.TableId.ASSIGNMENTS_TAB_TABLE); - } - - }; - assignmentTable.setOutputMarkupId(true); - assignmentTable.setCurrentPage(getAssignmentsStorage().getPaging()); - assignmentsContainer.addOrReplace(assignmentTable); - - } - - private List> initColumns() { - List> columns = new ArrayList<>(); - - columns.add(new CheckBoxHeaderColumn()); - - columns.add(new IconColumn(Model.of("")){ - private static final long serialVersionUID = 1L; - - @Override - protected IModel createIconModel(IModel rowModel) { - if (rowModel.getObject().getType() == null){ - return Model.of(""); - } - return Model.of(rowModel.getObject().getType().getIconCssClass()); - } - - @Override - protected IModel createTitleModel(IModel rowModel) { - return AssignmentsUtil.createAssignmentIconTitleModel(AssignmentDataTablePanel.this, rowModel.getObject().getType()); - } - - }); - - columns.add(new LinkColumn(createStringResource("AssignmentDataTablePanel.targetColumnName")){ - private static final long serialVersionUID = 1L; - - @Override - public void populateItem(Item> cellItem, String componentId, - final IModel rowModel) { - if (rowModel.getObject().getTargetRef() == null){ - cellItem.add(new Label(componentId, createLinkModel(rowModel))); - } else { - super.populateItem(cellItem, componentId, rowModel); - } - } - - @Override - protected IModel createLinkModel(IModel rowModel) { - String targetObjectName = rowModel.getObject().getName(); - if (targetObjectName != null && targetObjectName.trim().endsWith("-")){ - targetObjectName = targetObjectName.substring(0, targetObjectName.lastIndexOf("-")); - } - return Model.of(targetObjectName != null ? targetObjectName : ""); - } - - @Override - public void onClick(AjaxRequestTarget target, IModel rowModel) { - ObjectReferenceType targetObject = rowModel.getObject().getTargetRef(); - WebComponentUtil.dispatchToObjectDetailsPage(rowModel.getObject().getType().getType(), targetObject.getOid(), - AssignmentDataTablePanel.this, true); - } - }); - //commented since these columns are not used -// columns.add(new DirectlyEditablePropertyColumn(createStringResource("AssignmentDataTablePanel.descriptionColumnName"), AssignmentEditorDto.F_DESCRIPTION){ -// private static final long serialVersionUID = 1L; -// -// @Override -// public void populateItem(Item> cellItem, String componentId, -// final IModel rowModel) { -// super.populateItem(cellItem, componentId, rowModel); -// cellItem.add(AssignmentsUtil.getEnableBehavior(rowModel)); -// } -// }); -// columns.add(new AbstractColumn(createStringResource("AssignmentDataTablePanel.organizationColumnName")){ -// private static final long serialVersionUID = 1L; -// -// @Override -// public void populateItem(Item> cellItem, String componentId, final IModel rowModel) { -// ObjectQuery orgQuery = QueryBuilder.queryFor(OrgType.class, getPageBase().getPrismContext()) -// .item(OrgType.F_TENANT).eq(false) -// .or().item(OrgType.F_TENANT).isNull() -// .build(); -// ChooseTypePanel orgPanel = getChooseOrgPanel(componentId, rowModel, orgQuery); -// orgPanel.add(visibleIfRoleBehavior(rowModel)); -// cellItem.add(orgPanel); -// cellItem.add(AssignmentsUtil.getEnableBehavior(rowModel)); -// } -// -// }); -// columns.add(new AbstractColumn(createStringResource("AssignmentDataTablePanel.tenantColumnName")){ -// private static final long serialVersionUID = 1L; -// -// @Override -// public void populateItem(Item> cellItem, String componentId, final IModel rowModel) { -// ObjectQuery tenantQuery = QueryBuilder.queryFor(OrgType.class, getPageBase().getPrismContext()) -// .item(OrgType.F_TENANT).eq(true) -// .build(); -// ChooseTypePanel tenantPanel = getChooseOrgPanel(componentId, rowModel, tenantQuery); -// tenantPanel.add(visibleIfRoleBehavior(rowModel)); -// cellItem.add(tenantPanel); -// cellItem.add(AssignmentsUtil.getEnableBehavior(rowModel)); -// } -// -// }); -// columns.add(new LinkColumn(createStringResource("AssignmentDataTablePanel.activationColumnName")) { -// private static final long serialVersionUID = 1L; -// -// @Override -// public void populateItem(Item> cellItem, String componentId, -// final IModel rowModel) { -// super.populateItem(cellItem, componentId, rowModel); -// cellItem.setEnabled(false); -//// cellItem.add(AssignmentsUtil.getEnableBehavior(rowModel)); -// } -// -// @Override -// protected IModel createLinkModel(IModel rowModel) { -// IModel activationLabelModel = AssignmentsUtil.createActivationTitleModel(rowModel,"", AssignmentDataTablePanel.this); -// return StringUtils.isEmpty(activationLabelModel.getObject()) ? -// createStringResource("AssignmentEditorPanel.undefined") : activationLabelModel; -// } -// -// @Override -// public void onClick(AjaxRequestTarget target, IModel rowModel) { -// AssignmentActivationPopupablePanel popupPanel = new AssignmentActivationPopupablePanel(pageBase.getMainPopupBodyId(), rowModel){ -// private static final long serialVersionUID = 1L; -// -// @Override -// protected void reloadDateComponent(AjaxRequestTarget target) { -// target.add(getAssignmentsContainer()); -// } -// }; -// pageBase.showMainPopup(popupPanel, target); -// } -// }); - columns.add(new AbstractColumn(createStringResource("AssignmentDataTablePanel.activationColumnName")) { - @Override - public void populateItem(Item> cellItem, String componentId, - final IModel rowModel) { - IModel activationLabelModel = AssignmentsUtil.createActivationTitleModel(rowModel.getObject().getActivation(),"", AssignmentDataTablePanel.this); - cellItem.add(new Label(componentId, StringUtils.isEmpty(activationLabelModel.getObject()) ? - createStringResource("AssignmentEditorPanel.undefined") : activationLabelModel)); - } - }); - - if (WebComponentUtil.isAuthorized(AuthorizationConstants.AUTZ_UI_ADMIN_UNASSIGN_ACTION_URI)) { - columns.add(new InlineMenuButtonColumn(getAssignmentMenuActions(), 1, getPageBase())); - } - return columns; - } - - private List getAssignmentMenuActions(){ - List menuItems = new ArrayList<>(); - menuItems.add(new InlineMenuItem(createStringResource("PageBase.button.delete"), - new Model(true), new Model(true), false, - new ColumnMenuAction>() { - private static final long serialVersionUID = 1L; - - @Override - public void onClick(AjaxRequestTarget target) { - if (getRowModel() == null){ - deleteAssignmentPerformed(target, null); - } else { - AssignmentEditorDto rowDto = (AssignmentEditorDto)getRowModel().getObject(); - deleteAssignmentPerformed(target, rowDto); - } - } - }, 0, GuiStyleConstants.CLASS_DELETE_MENU_ITEM, DoubleButtonColumn.BUTTON_COLOR_CLASS.DANGER.toString())); - return menuItems; - } - - private VisibleEnableBehaviour visibleIfRoleBehavior(IModel assignmentModel){ - return new VisibleEnableBehaviour(){ - private static final long serialVersionUID = 1L; - - @Override - public boolean isVisible(){ - return AssignmentEditorDtoType.ROLE.equals(assignmentModel.getObject().getType()); - } - }; - } - private ChooseTypePanel getChooseOrgPanel(String id, IModel model, ObjectQuery query){ - ChooseTypePanel chooseOrgPanel = new ChooseTypePanel(id, new PropertyModel(model, AssignmentEditorDto.F_TENANT_REF)) { - private static final long serialVersionUID = 1L; - - @Override - protected ObjectQuery getChooseQuery() { - return query; - } - - @Override - public Class getObjectTypeClass(){ - return OrgType.class; - } - - @Override - protected boolean isSearchEnabled() { - return true; - } - - @Override - protected QName getSearchProperty() { - return OrgType.F_NAME; - } - }; - return chooseOrgPanel; - } - - - private void fillInRelationAssignmentsMap(){ - relationAssignmentsMap = new HashMap<>(); - if (getAssignmentModel() == null || getAssignmentModel().getObject() == null){ - return; - } - for (RelationTypes relation : RelationTypes.values()){ - List assignmentList = new ArrayList<>(); - for (AssignmentEditorDto assignmentDto : getAssignmentModel().getObject()){ - if (relation.equals(RelationTypes.MEMBER) && AssignmentEditorDtoType.CONSTRUCTION.equals(assignmentDto.getType())){ - assignmentList.add(assignmentDto); - continue; - } - if (AssignmentEditorDtoType.USER.equals(assignmentDto.getType()) || AssignmentEditorDtoType.POLICY_RULE.equals(assignmentDto.getType())){ - continue; - } - String relationLocalPart = relation.getRelation() == null ? SchemaConstants.ORG_DEFAULT.getLocalPart() : relation.getRelation().getLocalPart(); - String assignmentDtoRelation = assignmentDto.getRelation(); - if (relationLocalPart.equals(assignmentDtoRelation) || (relation.getRelation() == null && assignmentDtoRelation == null)){ - assignmentList.add(assignmentDto); - } - } - relationAssignmentsMap.put(relation, assignmentList); - } - } - - private WebMarkupContainer getAssignmentsContainer(){ - return (WebMarkupContainer)get(ID_ASSIGNMENTS); - } - - protected void reloadMainAssignmentsComponent(AjaxRequestTarget target){ - addOrReplaceAssignmentsTable(getAssignmentsContainer()); - target.add(getAssignmentsContainer()); - } - - private AssignmentsTabStorage getAssignmentsStorage(){ - return getPageBase().getSessionStorage().getAssignmentsTabStorage(); - } - - private void initPaging(){ - getAssignmentsStorage().setPaging(ObjectPaging.createPaging(0, (int) getPageBase().getItemsPerPage(UserProfileStorage.TableId.ASSIGNMENTS_TAB_TABLE))); - } -} diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssignmentDetailsPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssignmentDetailsPanel.java index 9bc3283b02f..c53026a07f6 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssignmentDetailsPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssignmentDetailsPanel.java @@ -1,7 +1,6 @@ package com.evolveum.midpoint.web.component.assignment; import com.evolveum.midpoint.gui.api.component.BasePanel; -import com.evolveum.midpoint.gui.api.page.PageBase; import org.apache.wicket.model.IModel; /** diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssignmentEditorPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssignmentEditorPanel.java index 99aa98455f3..91f678ec927 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssignmentEditorPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssignmentEditorPanel.java @@ -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. @@ -35,7 +35,7 @@ import com.evolveum.midpoint.schema.GetOperationOptions; import com.evolveum.midpoint.schema.SelectorOptions; import com.evolveum.midpoint.schema.result.OperationResult; -import com.evolveum.midpoint.security.api.ItemSecurityDecisions; +import com.evolveum.midpoint.security.enforcer.api.ItemSecurityConstraints; import com.evolveum.midpoint.task.api.Task; import com.evolveum.midpoint.util.exception.CommunicationException; import com.evolveum.midpoint.util.exception.ConfigurationException; @@ -73,6 +73,7 @@ import org.apache.wicket.markup.html.list.ListView; import org.apache.wicket.model.AbstractReadOnlyModel; import org.apache.wicket.model.IModel; +import org.apache.wicket.model.LoadableDetachableModel; import org.apache.wicket.model.Model; import org.apache.wicket.model.PropertyModel; import org.apache.wicket.request.resource.PackageResourceReference; @@ -138,7 +139,7 @@ public class AssignmentEditorPanel extends BasePanel { protected WebMarkupContainer headerRow; protected IModel> privilegesListModel; protected boolean delegatedToMe; - private LoadableModel decisionsModel; + private LoadableDetachableModel itemSecurityConstraintsModel; public AssignmentEditorPanel(String id, IModel model, boolean delegatedToMe, LoadableModel> privilegesListModel) { @@ -1106,34 +1107,26 @@ protected boolean ignoreMandatoryAttributes(){ return false; } - private void initDecisionsModel(){ - decisionsModel = new LoadableModel(false) { + private void initDecisionsModel() { + itemSecurityConstraintsModel = new LoadableDetachableModel() { @Override - protected ItemSecurityDecisions load() { - return loadSecurityDecisions(); + protected ItemSecurityConstraints load() { + return loadSecurityConstraints(); } }; } - private boolean isItemAllowed(ItemPath itemPath){ - ItemSecurityDecisions decisions = decisionsModel.getObject(); - if (itemPath == null || decisions == null || decisions.getItemDecisionMap() == null - || decisions.getItemDecisionMap().size() == 0){ + private boolean isItemAllowed(ItemPath itemPath) { + ItemSecurityConstraints constraints = itemSecurityConstraintsModel.getObject(); + if (itemPath == null || constraints == null) { return true; } - Map decisionsMap = decisions.getItemDecisionMap(); - boolean isAllowed = false; - for (ItemPath path : decisionsMap.keySet()) { - if (path.equivalent(itemPath) - && AuthorizationDecisionType.ALLOW.value().equals(decisionsMap.get(path).value())) { - return true; - } - } - return isAllowed; + AuthorizationDecisionType decision = constraints.findItemDecision(itemPath); + return AuthorizationDecisionType.ALLOW.equals(decision); } - private ItemSecurityDecisions loadSecurityDecisions(){ + private ItemSecurityConstraints loadSecurityConstraints() { PageBase pageBase = getPageBase(); if (pageBase == null || getModelObject().getTargetRef() == null){ return null; @@ -1159,15 +1152,15 @@ private ItemSecurityDecisions loadSecurityDecisions(){ OperationResult result = new OperationResult(OPERATION_LOAD_TARGET_OBJECT); PrismObject targetRefObject = WebModelServiceUtils.loadObject(AbstractRoleType.class, targetObjectOid, pageBase, task, result); - ItemSecurityDecisions decisions = null; + ItemSecurityConstraints constraints = null; try{ - decisions = + constraints = pageBase.getModelInteractionService().getAllowedRequestAssignmentItems(operationObject, targetRefObject, task, result); } catch (SchemaException | SecurityViolationException | ObjectNotFoundException | ExpressionEvaluationException | CommunicationException | ConfigurationException ex){ - LoggingUtils.logUnexpectedException(LOGGER, "Couldn't load security decisions for assignment items.", ex); + LoggingUtils.logUnexpectedException(LOGGER, "Couldn't load security constraints for assignment items.", ex); } - return decisions; + return constraints; } } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssignmentPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssignmentPanel.java index 87fec4a434b..1726fe83cfd 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssignmentPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssignmentPanel.java @@ -22,15 +22,18 @@ import com.evolveum.midpoint.gui.api.util.WebModelServiceUtils; import com.evolveum.midpoint.prism.PrismContainerValue; +import com.evolveum.midpoint.prism.PrismObject; import com.evolveum.midpoint.prism.path.ItemPath; +import com.evolveum.midpoint.util.logging.Trace; +import com.evolveum.midpoint.util.logging.TraceManager; +import com.evolveum.midpoint.web.component.objectdetails.FocusMainPanel; import com.evolveum.midpoint.web.component.prism.*; -import com.evolveum.midpoint.xml.ns._public.common.common_3.ActivationStatusType; +import com.evolveum.midpoint.xml.ns._public.common.common_3.*; import org.apache.commons.lang.StringUtils; import org.apache.wicket.AttributeModifier; import org.apache.wicket.ajax.AjaxRequestTarget; 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.DataTable; import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn; import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.basic.Label; @@ -49,6 +52,7 @@ import com.evolveum.midpoint.prism.query.ObjectPaging; import com.evolveum.midpoint.prism.query.ObjectQuery; import com.evolveum.midpoint.security.api.AuthorizationConstants; +import com.evolveum.midpoint.task.api.Task; import com.evolveum.midpoint.web.component.AjaxButton; import com.evolveum.midpoint.web.component.AjaxIconButton; import com.evolveum.midpoint.web.component.data.BoxedTablePanel; @@ -65,9 +69,6 @@ import com.evolveum.midpoint.web.session.AssignmentsTabStorage; import com.evolveum.midpoint.web.session.UserProfileStorage; import com.evolveum.midpoint.web.session.UserProfileStorage.TableId; -import com.evolveum.midpoint.xml.ns._public.common.common_3.ActivationType; -import com.evolveum.midpoint.xml.ns._public.common.common_3.AssignmentType; -import com.evolveum.midpoint.xml.ns._public.common.common_3.FocusType; import javax.xml.datatype.XMLGregorianCalendar; @@ -86,6 +87,8 @@ public abstract class AssignmentPanel extends BasePanel> detailsPanelAssignmentsList = new ArrayList<>(); @@ -136,7 +139,13 @@ public void onClick(AjaxRequestTarget target) { @Override public boolean isVisible() { - return WebComponentUtil.isAuthorized(AuthorizationConstants.AUTZ_UI_ADMIN_ASSIGN_ACTION_URI); + try { + return getParentPage().isAuthorized(AuthorizationConstants.AUTZ_UI_ADMIN_ASSIGN_ACTION_URI, + AuthorizationPhaseType.REQUEST, getFocusObject(), + null, null, null); + } catch (Exception ex){ + return WebComponentUtil.isAuthorized(AuthorizationConstants.AUTZ_UI_ADMIN_ASSIGN_ACTION_URI); + } } }); assignmentsContainer.add(newObjectIcon); @@ -169,11 +178,18 @@ protected void saveProviderPaging(ObjectQuery query, ObjectPaging paging) { public ObjectQuery getQuery() { return createObjectQuery(); } + + @Override + protected List> searchThroughList() { + List> resultList = super.searchThroughList(); + return postSearch(resultList); + } }; List, String>> columns = initBasicColumns(); - columns.add(new InlineMenuButtonColumn>(getAssignmentMenuActions(), 2, getPageBase())); + List menuActionsList = getAssignmentMenuActions(); + columns.add(new InlineMenuButtonColumn<>(menuActionsList, menuActionsList.size(), getPageBase())); BoxedTablePanel> assignmentTable = new BoxedTablePanel>(ID_ASSIGNMENTS_TABLE, assignmentsProvider, columns, getTableId(), getItemsPerPage()) { @@ -203,6 +219,10 @@ public String getObject() { return assignmentTable; } + + protected List> postSearch(List> assignments) { + return assignments; + } protected AssignmentsTabStorage getAssignmentsStorage() { return getPageBase().getSessionStorage().getAssignmentsTabStorage(); @@ -210,28 +230,10 @@ protected AssignmentsTabStorage getAssignmentsStorage() { protected abstract ObjectQuery createObjectQuery(); - protected List, String>> initBasicColumns() { + private List, String>> initBasicColumns() { List, String>> columns = new ArrayList<>(); - columns.add(new CheckBoxHeaderColumn>(){ - private static final long serialVersionUID = 1L; - - @Override - protected boolean isTableRowSelected(ContainerValueWrapper object){ - return object.isSelected(); - } - - @Override - protected void onUpdateRow(AjaxRequestTarget target, DataTable table, IModel> rowModel) { - rowModel.getObject().setSelected(!rowModel.getObject().isSelected()); - super.onUpdateRow(target, table, rowModel); - }; - - @Override - protected IModel getCheckBoxValueModel(IModel> rowModel) { - return Model.of(rowModel.getObject().isSelected()); - } - }); + columns.add(new CheckBoxHeaderColumn<>()); columns.add(new IconColumn>(Model.of("")) { @@ -377,11 +379,30 @@ private List> getSelectedAssignments() { private List getAssignmentMenuActions() { List menuItems = new ArrayList<>(); - menuItems.add(new InlineMenuItem(createStringResource("PageBase.button.delete"), new Model(true), - new Model(true), false, createDeleteColumnAction(), 0, GuiStyleConstants.CLASS_DELETE_MENU_ITEM, - DoubleButtonColumn.BUTTON_COLOR_CLASS.DANGER.toString())); - menuItems.add(new InlineMenuItem(createStringResource("PageBase.button.edit"), new Model(true), - new Model(true), false, createEditColumnAction(), 1, GuiStyleConstants.CLASS_EDIT_MENU_ITEM, + PrismObject obj = getFocusObject(); + boolean isUnassignMenuAdded = false; + try { + boolean isUnassignAuthorized = getParentPage().isAuthorized(AuthorizationConstants.AUTZ_UI_ADMIN_UNASSIGN_ACTION_URI, + AuthorizationPhaseType.REQUEST, obj, + null, null, null); + if (isUnassignAuthorized) { + menuItems.add(new InlineMenuItem(createStringResource("PageBase.button.unassign"), new Model<>(true), + new Model<>(true), false, createDeleteColumnAction(), 0, GuiStyleConstants.CLASS_DELETE_MENU_ITEM, + DoubleButtonColumn.BUTTON_COLOR_CLASS.DANGER.toString())); + isUnassignMenuAdded = true; + } + + } catch (Exception ex){ + LOGGER.error("Couldn't check unassign authorization for the object: {}, {}", obj.getName(), ex.getLocalizedMessage()); + if (WebComponentUtil.isAuthorized(AuthorizationConstants.AUTZ_UI_ADMIN_ASSIGN_ACTION_URI)){ + menuItems.add(new InlineMenuItem(createStringResource("PageBase.button.unassign"), new Model<>(true), + new Model<>(true), false, createDeleteColumnAction(), 0, GuiStyleConstants.CLASS_DELETE_MENU_ITEM, + DoubleButtonColumn.BUTTON_COLOR_CLASS.DANGER.toString())); + isUnassignMenuAdded = true; + } + } + menuItems.add(new InlineMenuItem(createStringResource("PageBase.button.edit"), new Model<>(true), + new Model<>(true), false, createEditColumnAction(), isUnassignMenuAdded ? 1 : 0, GuiStyleConstants.CLASS_EDIT_MENU_ITEM, DoubleButtonColumn.BUTTON_COLOR_CLASS.DEFAULT.toString())); return menuItems; } @@ -458,12 +479,14 @@ protected void deleteAssignmentPerformed(AjaxRequestTarget target, List createNewAssignmentContainerValueWrapper(PrismContainerValue newAssignment) { ContainerWrapperFactory factory = new ContainerWrapperFactory(getPageBase()); + Task task = getPageBase().createSimpleTask("Creating new assignment"); ContainerValueWrapper valueWrapper = factory.createContainerValueWrapper(getModelObject(), newAssignment, - getModelObject().getObjectStatus(), ValueStatus.ADDED, new ItemPath(FocusType.F_ASSIGNMENT)); + getModelObject().getObjectStatus(), ValueStatus.ADDED, getModelObject().getPath(), task); valueWrapper.setShowEmpty(true, false); getModelObject().getValues().add(valueWrapper); return valueWrapper; @@ -529,4 +552,19 @@ private IModel getActivationLabelModel(ContainerValueWrapper getLabel() { - return new Model("label"); + return new Model<>("label"); } @@ -217,8 +202,8 @@ public void onClick(AjaxRequestTarget target) { private static final long serialVersionUID = 1L; @Override - protected void addPerformed(AjaxRequestTarget target, List selected, QName relation) { - super.addPerformed(target, selected, relation); + protected void addPerformed(AjaxRequestTarget target, List selected, QName relation, ShadowKindType kind, String intent) { + super.addPerformed(target, selected, relation, kind, intent); addSelectedAssignablePerformed(target, selected, relation, getPageBase().getMainPopup().getId()); reloadMainFormButtons(target); diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssignmentsUtil.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssignmentsUtil.java index 400ab88f211..ee520f0ecf6 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssignmentsUtil.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssignmentsUtil.java @@ -10,16 +10,9 @@ import com.evolveum.midpoint.util.QNameUtil; import com.evolveum.midpoint.web.component.prism.ContainerValueWrapper; 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.ajax.form.AjaxFormComponentUpdatingBehavior; -import org.apache.wicket.markup.html.WebMarkupContainer; -import org.apache.wicket.markup.html.form.FormComponent; import org.apache.wicket.model.AbstractReadOnlyModel; import org.apache.wicket.model.IModel; import org.apache.wicket.model.Model; -import org.apache.wicket.util.visit.IVisit; -import org.apache.wicket.util.visit.IVisitor; import com.evolveum.midpoint.gui.api.component.BasePanel; import com.evolveum.midpoint.gui.api.page.PageBase; @@ -27,10 +20,8 @@ import com.evolveum.midpoint.util.MiscUtil; import com.evolveum.midpoint.util.logging.Trace; import com.evolveum.midpoint.util.logging.TraceManager; -import com.evolveum.midpoint.web.component.prism.InputPanel; import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour; import com.evolveum.midpoint.web.page.admin.users.dto.UserDtoStatus; -import org.exolab.castor.dsml.XML; /** * Created by honchar. diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssociationDetailsPanel.html b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssociationDetailsPanel.html new file mode 100644 index 00000000000..95d6fb44d30 --- /dev/null +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssociationDetailsPanel.html @@ -0,0 +1,61 @@ + + + + + +
+
+ +
+ + +
+
+
+
+ +
+
+
+ +
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+ + diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssociationDetailsPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssociationDetailsPanel.java new file mode 100644 index 00000000000..936e3725aa4 --- /dev/null +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssociationDetailsPanel.java @@ -0,0 +1,94 @@ +/** + * Copyright (c) 2015-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.assignment; + +import com.evolveum.midpoint.gui.api.GuiStyleConstants; +import com.evolveum.midpoint.gui.api.component.BasePanel; +import com.evolveum.midpoint.gui.api.component.togglebutton.ToggleIconButton; +import com.evolveum.midpoint.gui.api.util.WebComponentUtil; +import com.evolveum.midpoint.web.component.input.ExpressionValuePanel; +import com.evolveum.midpoint.web.component.input.QNameEditorPanel; +import com.evolveum.midpoint.web.component.prism.ContainerValueWrapper; +import com.evolveum.midpoint.xml.ns._public.common.common_3.*; +import org.apache.wicket.ajax.AjaxRequestTarget; +import org.apache.wicket.behavior.AttributeAppender; +import org.apache.wicket.model.IModel; +import org.apache.wicket.model.PropertyModel; + +/** + * Created by honchar + */ +public class AssociationDetailsPanel extends BasePanel>{ + private static final long serialVersionUID = 1L; + + private static final String ID_REF_FIELD = "refField"; + private static final String ID_EXPRESSION_PANEL = "expressionPanel"; + private static final String ID_REMOVE_ASSOCIATION = "removeAssociation"; + + private ConstructionType construction; + + public AssociationDetailsPanel(String id, IModel> associationWrapperModel, + ConstructionType construction){ + super(id, associationWrapperModel); + this.construction = construction; + } + + @Override + protected void onInitialize(){ + super.onInitialize(); + initLayout(); + } + + private void initLayout(){ + QNameEditorPanel refField = new QNameEditorPanel(ID_REF_FIELD, WebComponentUtil.createPrismPropertySingleValueModel(getModel(), ResourceObjectAssociationType.F_REF), + null, null, false, false){ + private static final long serialVersionUID = 1L; + @Override + protected AttributeAppender getSpecificLabelStyleAppender() { + return AttributeAppender.append("style", "font-weight: normal !important;"); + } + }; + refField.setOutputMarkupId(true); + add(refField); + + ResourceObjectAssociationType resourceObjectAssociationType = getModelObject().getContainerValue().asContainerable(); + MappingType outbound = resourceObjectAssociationType.getOutbound(); + ExpressionValuePanel expressionValuePanel = new ExpressionValuePanel(ID_EXPRESSION_PANEL, + new PropertyModel<>(outbound, MappingType.F_EXPRESSION.getLocalPart()), + construction, getPageBase()); + expressionValuePanel.setOutputMarkupId(true); + add(expressionValuePanel); + + ToggleIconButton removeAssociationButton = new ToggleIconButton(ID_REMOVE_ASSOCIATION, + GuiStyleConstants.CLASS_MINUS_CIRCLE_DANGER, GuiStyleConstants.CLASS_MINUS_CIRCLE_DANGER) { + private static final long serialVersionUID = 1L; + + @Override + public void onClick(AjaxRequestTarget target) { +// isChildContainersSelectorPanelVisible = true; +// target.add(PrismContainerValueHeaderPanel.this); + } + + @Override + public boolean isOn() { + return true; + } + }; + add(removeAssociationButton); + + + } +} diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/ConstructionAssociationPanel.html b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/ConstructionAssociationPanel.html new file mode 100644 index 00000000000..3b6cd451f1c --- /dev/null +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/ConstructionAssociationPanel.html @@ -0,0 +1,40 @@ + + + + + +
+
+ +
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+ + diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/ConstructionAssociationPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/ConstructionAssociationPanel.java new file mode 100644 index 00000000000..e2c10c755ab --- /dev/null +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/ConstructionAssociationPanel.java @@ -0,0 +1,320 @@ +/** + * Copyright (c) 2015-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.assignment; + +import com.evolveum.midpoint.common.refinery.RefinedAssociationDefinition; +import com.evolveum.midpoint.common.refinery.RefinedObjectClassDefinition; +import com.evolveum.midpoint.common.refinery.RefinedResourceSchema; +import com.evolveum.midpoint.gui.api.component.BasePanel; +import com.evolveum.midpoint.gui.api.component.ObjectBrowserPanel; +import com.evolveum.midpoint.gui.api.model.LoadableModel; +import com.evolveum.midpoint.gui.api.util.WebComponentUtil; +import com.evolveum.midpoint.gui.api.util.WebModelServiceUtils; +import com.evolveum.midpoint.prism.*; +import com.evolveum.midpoint.prism.path.ItemPath; +import com.evolveum.midpoint.prism.path.NameItemPathSegment; +import com.evolveum.midpoint.prism.query.ObjectFilter; +import com.evolveum.midpoint.prism.query.ObjectQuery; +import com.evolveum.midpoint.prism.util.ItemPathUtil; +import com.evolveum.midpoint.schema.result.OperationResult; +import com.evolveum.midpoint.task.api.Task; +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.form.ValueChoosePanel; +import com.evolveum.midpoint.web.component.form.multivalue.GenericMultiValueLabelEditPanel; +import com.evolveum.midpoint.web.component.form.multivalue.MultiValueChoosePanel; +import com.evolveum.midpoint.web.component.input.DropDownChoicePanel; +import com.evolveum.midpoint.web.component.prism.*; +import com.evolveum.midpoint.web.util.ExpressionUtil; +import com.evolveum.midpoint.xml.ns._public.common.common_3.*; +import com.evolveum.prism.xml.ns._public.types_3.ItemPathType; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.wicket.ajax.AjaxRequestTarget; +import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior; +import org.apache.wicket.markup.html.basic.Label; +import org.apache.wicket.markup.html.list.ListItem; +import org.apache.wicket.markup.html.list.ListView; +import org.apache.wicket.model.*; + +import javax.xml.namespace.QName; +import java.util.*; + +/** + * Created by honchar. + */ +public class ConstructionAssociationPanel extends BasePanel> { + private static final long serialVersionUID = 1L; + + private static final String ID_ASSOCIATIONS = "associations"; + private static final String ID_ASSOCIATION_NAME = "associationName"; + private static final String ID_ASSOCIATION_REFERENCE_PANEL = "associationReferencePanel"; + + private static final Trace LOGGER = TraceManager.getTrace(ConstructionAssociationPanel.class); + private static final String DOT_CLASS = ConstructionAssociationPanel.class.getName() + "."; + private static final String OPERATION_LOAD_RESOURCE = DOT_CLASS + "loadResource"; + private static final String OPERATION_LOAD_SHADOW_DISPLAY_NAME = DOT_CLASS + "loadShadowReferenceDisplayName"; + + private static final String ID_LABEL_SIZE = "col-md-4"; + private static final String ID_INPUT_SIZE = "col-md-6"; + + private LoadableDetachableModel> resourceModel; + private ContainerWrapper associationWrapper; + private LoadableDetachableModel> refinedAssociationDefinitionsModel; + + + public ConstructionAssociationPanel(String id, IModel> constructionWrapperModel) { + super(id, constructionWrapperModel); + } + + @Override + protected void onInitialize() { + super.onInitialize(); + initModels(); + initLayout(); + } + + private void initModels() { + resourceModel = new LoadableDetachableModel>() { + @Override + protected PrismObject load() { + ConstructionType construction = getModelObject().getItem().getValue().asContainerable(); + ObjectReferenceType resourceRef = construction.getResourceRef(); + Task loadResourceTask = getPageBase().createSimpleTask(OPERATION_LOAD_RESOURCE); + OperationResult result = new OperationResult(OPERATION_LOAD_RESOURCE); + PrismObject resource = WebModelServiceUtils.loadObject(resourceRef, getPageBase(), loadResourceTask, result); + result.computeStatusIfUnknown(); + if (!result.isAcceptable()) { + LOGGER.error("Cannot find resource referenced from construction. {}", construction, result.getMessage()); + result.recordPartialError("Could not find resource referenced from construction."); + return null; + } + return resource; + } + }; + refinedAssociationDefinitionsModel = new LoadableDetachableModel>() { + @Override + protected List load() { + List associationDefinitions = new ArrayList<>(); + ConstructionType construction = getModelObject().getItem().getValue().asContainerable(); + ShadowKindType kind = construction.getKind(); + String intent = construction.getIntent(); + try { + PrismObject resource = resourceModel.getObject(); + if (resource == null) { + return associationDefinitions; + } + RefinedResourceSchema refinedResourceSchema = RefinedResourceSchema.getRefinedSchema(resource); + RefinedObjectClassDefinition oc = refinedResourceSchema.getRefinedDefinition(kind, intent); + if (oc == null) { + LOGGER.debug("Association for {}/{} not supported by resource {}", kind, intent, resource); + return associationDefinitions; + } + associationDefinitions.addAll(oc.getAssociationDefinitions()); + + if (CollectionUtils.isEmpty(associationDefinitions)) { + LOGGER.debug("Association for {}/{} not supported by resource {}", kind, intent, resource); + return associationDefinitions; + } + } catch (Exception ex) { + LOGGER.error("Association for {}/{} not supported by resource {}", kind, intent, construction.getResourceRef(), ex.getLocalizedMessage()); + } + return associationDefinitions; + } + }; + } + + private void initLayout() { + ListView associationsPanel = + new ListView(ID_ASSOCIATIONS, refinedAssociationDefinitionsModel) { + @Override + protected void populateItem(ListItem item) { + GenericMultiValueLabelEditPanel associationReferencesPanel = new GenericMultiValueLabelEditPanel(ID_ASSOCIATION_REFERENCE_PANEL, + getShadowReferencesModel(item.getModelObject()), getAssociationDisplayNameModel(item.getModel()), ID_LABEL_SIZE, ID_INPUT_SIZE, true) { + private static final long serialVersionUID = 1L; + + @Override + protected boolean isEditButtonEnabled() { + return false; + } + + @Override + protected void addValuePerformed(AjaxRequestTarget target) { + addNewShadowRefValuePerformed(target, item.getModelObject()); + } + + protected void addFirstPerformed(AjaxRequestTarget target){ + addNewShadowRefValuePerformed(target, item.getModelObject()); + } + + @Override + protected IModel createTextModel(final IModel model) { + return new AbstractReadOnlyModel() { + private static final long serialVersionUID = 1L; + @Override + public String getObject() { + ObjectReferenceType obj = model.getObject(); + if (obj == null){ + return ""; + } + return WebComponentUtil.getDisplayNameOrName(obj, getPageBase(), OPERATION_LOAD_SHADOW_DISPLAY_NAME); + } + }; + } + + @Override + protected void removeValuePerformed(AjaxRequestTarget target, ListItem item) { + ObjectReferenceType removedShadowRef = item.getModelObject(); + ContainerWrapper constructionContainerWrapper = ConstructionAssociationPanel.this.getModelObject(); + ContainerWrapper associationWrapper = constructionContainerWrapper.findContainerWrapper(constructionContainerWrapper + .getPath().append(ConstructionType.F_ASSOCIATION)); + associationWrapper.getValues().forEach(associationValueWrapper -> { + if (ValueStatus.DELETED.equals(((ContainerValueWrapper) associationValueWrapper).getStatus())) { + return; + } + PrismContainerValue associationValue = ((ContainerValueWrapper) associationValueWrapper).getContainerValue(); + ResourceObjectAssociationType assoc = (ResourceObjectAssociationType) associationValue.asContainerable(); + if (assoc == null || assoc.getOutbound() == null || assoc.getOutbound().getExpression() == null || + ExpressionUtil.getShadowRefValue(assoc.getOutbound().getExpression()) == null){ + return; + } + ObjectReferenceType shadowRef = ExpressionUtil.getShadowRefValue(assoc.getOutbound().getExpression()); + if (shadowRef.equals(removedShadowRef)){ + ((ContainerValueWrapper) associationValueWrapper).setStatus(ValueStatus.DELETED); + } + }); + super.removeValuePerformed(target, item); + } + + + }; + associationReferencesPanel.setOutputMarkupId(true); + item.add(associationReferencesPanel); + } + }; + + associationsPanel.setOutputMarkupId(true); + add(associationsPanel); + } + + private IModel getAssociationDisplayNameModel(IModel assocDef) { + StringBuilder sb = new StringBuilder(); + if (assocDef.getObject().getDisplayName() != null) { + sb.append(assocDef.getObject().getDisplayName()).append(", "); + } + if (assocDef.getObject().getResourceObjectAssociationType() != null && assocDef.getObject().getResourceObjectAssociationType().getRef() != null) { + sb.append("ref: ").append(assocDef.getObject().getResourceObjectAssociationType().getRef().getItemPath().toString()); + } + return Model.of(sb.toString()); + } + + private IModel> getShadowReferencesModel(RefinedAssociationDefinition def) { + return new LoadableModel>() { + private static final long serialVersionUID = 1L; + + @Override + public List load() { + QName defName = def.getName(); + List shadowsList = new ArrayList<>(); + ContainerWrapper associationWrapper = getModelObject().findContainerWrapper(getModelObject().getPath().append(ConstructionType.F_ASSOCIATION)); + associationWrapper.getValues().forEach(associationValueWrapper -> { + if (ValueStatus.DELETED.equals(((ContainerValueWrapper) associationValueWrapper).getStatus())) { + return; + } + PrismContainerValue associationValue = ((ContainerValueWrapper) associationValueWrapper).getContainerValue(); + ResourceObjectAssociationType assoc = (ResourceObjectAssociationType) associationValue.asContainerable(); + if (assoc == null || assoc.getOutbound() == null || assoc.getOutbound().getExpression() == null + || (ExpressionUtil.getShadowRefValue(assoc.getOutbound().getExpression()) == null + && !ValueStatus.ADDED.equals(((ContainerValueWrapper) associationValueWrapper).getStatus()))) { + return; + } + QName assocRef = ItemPathUtil.getOnlySegmentQName(assoc.getRef()); + if ((defName != null && defName.equals(assocRef)) + || (assocRef == null && ValueStatus.ADDED.equals(((ContainerValueWrapper) associationValueWrapper).getStatus()))) { + shadowsList.add(ExpressionUtil.getShadowRefValue(assoc.getOutbound().getExpression())); + } + }); + return shadowsList; + } + }; + } + + private List getAssociationsShadowRefs(boolean compareName, QName name) { + List shadowsList = new ArrayList<>(); + ContainerWrapper associationWrapper = getModelObject().findContainerWrapper(getModelObject().getPath().append(ConstructionType.F_ASSOCIATION)); + associationWrapper.getValues().forEach(associationValueWrapper -> { + if (ValueStatus.DELETED.equals(((ContainerValueWrapper) associationValueWrapper).getStatus())) { + return; + } + PrismContainerValue associationValue = ((ContainerValueWrapper) associationValueWrapper).getContainerValue(); + ResourceObjectAssociationType assoc = (ResourceObjectAssociationType) associationValue.asContainerable(); + if (assoc == null || assoc.getOutbound() == null || assoc.getOutbound().getExpression() == null + || ExpressionUtil.getShadowRefValue(assoc.getOutbound().getExpression()) == null) { + return; + } + if (compareName) { + QName assocRef = ItemPathUtil.getOnlySegmentQName(assoc.getRef()); + if (name != null && name.equals(assocRef)) { + shadowsList.add(ExpressionUtil.getShadowRefValue(assoc.getOutbound().getExpression())); + } + } else { + shadowsList.add(ExpressionUtil.getShadowRefValue(assoc.getOutbound().getExpression())); + } + }); + return shadowsList; + + } + + private void addNewShadowRefValuePerformed(AjaxRequestTarget target, RefinedAssociationDefinition def){ + ObjectFilter filter = WebComponentUtil.createAssociationShadowRefFilter(def, + getPageBase().getPrismContext(), resourceModel.getObject().getOid()); + Task task = getPageBase().createAnonymousTask("Adding new shadow"); + ObjectBrowserPanel objectBrowserPanel = new ObjectBrowserPanel( + getPageBase().getMainPopupBodyId(), ShadowType.class, Arrays.asList(ShadowType.COMPLEX_TYPE), + false, getPageBase(), + filter) { + private static final long serialVersionUID = 1L; + + @Override + protected void onSelectPerformed(AjaxRequestTarget target, ShadowType object) { + getPageBase().hideMainPopup(target); + ContainerWrapper constructionContainerWrapper = ConstructionAssociationPanel.this.getModelObject(); + ContainerWrapper associationWrapper = constructionContainerWrapper.findContainerWrapper(constructionContainerWrapper + .getPath().append(ConstructionType.F_ASSOCIATION)); + PrismContainerValue newAssociation = associationWrapper.getItem().createNewValue(); + QName associationRefPath = def.getName(); + NameItemPathSegment segment = new NameItemPathSegment(associationRefPath); + ((ResourceObjectAssociationType)newAssociation.asContainerable()) + .setRef(new ItemPathType(new ItemPath(segment))); + ExpressionType newAssociationExpression = ((ResourceObjectAssociationType)newAssociation.asContainerable()).beginOutbound().beginExpression(); + ExpressionUtil.createShadowRefEvaluatorValue(newAssociationExpression, object.getOid(), + getPageBase().getPrismContext()); + ContainerWrapperFactory factory = new ContainerWrapperFactory(getPageBase()); + ContainerValueWrapper valueWrapper = + factory.createContainerValueWrapper(associationWrapper, newAssociation, + associationWrapper.getObjectStatus(), ValueStatus.ADDED, associationWrapper.getPath(), task); +// valueWrapper.setShowEmpty(true, false); + associationWrapper.getValues().add(valueWrapper); + + target.add(ConstructionAssociationPanel.this); + } + + }; + + getPageBase().showMainPopup(objectBrowserPanel, target); + + } +} diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/ConstructionDetailsPanelChainedModel.html b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/ConstructionDetailsPanelChainedModel.html new file mode 100644 index 00000000000..c479b405a5f --- /dev/null +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/ConstructionDetailsPanelChainedModel.html @@ -0,0 +1,53 @@ + + + + + +

+
+ +
+
+
+ +
+
+
+ +
+
+ +
+
+
+
+
+
+
+
+ + diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/ConstructionDetailsPanelChainedModel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/ConstructionDetailsPanelChainedModel.java new file mode 100644 index 00000000000..f11ab8b38cd --- /dev/null +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/ConstructionDetailsPanelChainedModel.java @@ -0,0 +1,245 @@ +/** + * Copyright (c) 2015-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.assignment; + +import com.evolveum.midpoint.common.refinery.RefinedObjectClassDefinition; +import com.evolveum.midpoint.common.refinery.RefinedResourceSchema; +import com.evolveum.midpoint.gui.api.component.BasePanel; +import com.evolveum.midpoint.gui.api.model.LoadableModel; +import com.evolveum.midpoint.gui.api.util.WebComponentUtil; +import com.evolveum.midpoint.gui.api.util.WebModelServiceUtils; +import com.evolveum.midpoint.prism.PrismObject; +import com.evolveum.midpoint.schema.result.OperationResult; +import com.evolveum.midpoint.task.api.Task; +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.input.DropDownChoicePanel; +import com.evolveum.midpoint.web.page.admin.configuration.component.EmptyOnBlurAjaxFormUpdatingBehaviour; +import com.evolveum.midpoint.xml.ns._public.common.common_3.ConstructionType; +import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectReferenceType; +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.AjaxEventBehavior; +import org.apache.wicket.ajax.AjaxRequestTarget; +import org.apache.wicket.markup.html.form.ChoiceRenderer; +import org.apache.wicket.markup.html.form.DropDownChoice; +import org.apache.wicket.markup.html.form.Form; +import org.apache.wicket.markup.html.form.TextField; +import org.apache.wicket.model.*; +import sun.security.provider.SHA; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +/** + * Created by honchar. + */ +public class ConstructionDetailsPanelChainedModel extends BasePanel { + private static final long serialVersionUID = 1L; + + private static final Trace LOGGER = TraceManager.getTrace(ConstructionDetailsPanelChainedModel.class); + private static final String DOT_CLASS = ConstructionDetailsPanelChainedModel.class.getName() + "."; + private static final String OPERATION_LOAD_RESOURCE = DOT_CLASS + "loadResource"; + + private static final String ID_FORM = "constructionForm"; + private static final String ID_KIND_FIELD = "kindField"; + private static final String ID_INTENT_FIELD = "intentField"; + + private IModel intentChoicesModel; + private LoadableDetachableModel> resourceModel; + private IModel kindModel; + + public ConstructionDetailsPanelChainedModel(String id, IModel constructionModel) { + super(id, constructionModel); + } + + @Override + protected void onInitialize() { + super.onInitialize(); + initModels(); + initLayout(); + } + + private void initModels() { + resourceModel = new LoadableDetachableModel>() { + @Override + protected PrismObject load() { + ObjectReferenceType resourceRef = getModelObject().getResourceRef(); + Task loadResourceTask = getPageBase().createSimpleTask(OPERATION_LOAD_RESOURCE); + OperationResult result = new OperationResult(OPERATION_LOAD_RESOURCE); + PrismObject resource = WebModelServiceUtils.loadObject(resourceRef, getPageBase(), loadResourceTask, result); + result.computeStatusIfUnknown(); + if (!result.isAcceptable()) { + LOGGER.error("Cannot find resource referenced from construction. {}", result.getMessage()); + result.recordPartialError("Could not find resource referenced from construction."); + return null; + } + return resource; + } + }; + kindModel = new IModel() { + @Override + public ShadowKindType getObject() { + return getModelObject().getKind(); + } + + @Override + public void setObject(ShadowKindType shadowKindType) { + getModelObject().setKind(shadowKindType); + } + + @Override + public void detach() { + + } + }; + intentChoicesModel = new ChainingModel(kindModel) { + private static final long serialVersionUID = 1L; + + @Override + public String getObject() { + + List availableIntentValues = new ArrayList<>(); + try { + if (resourceModel.getObject() == null) { + return availableIntentValues.toString(); + } + RefinedResourceSchema refinedSchema = RefinedResourceSchema.getRefinedSchema(resourceModel.getObject()); + if (refinedSchema != null) { + ShadowKindType kind = ((IModel) super.getChainedModel()).getObject(); + List definitions = refinedSchema.getRefinedDefinitions(kind); + for (RefinedObjectClassDefinition def : definitions) { + if (def.getIntent() != null) { + availableIntentValues.add(def.getIntent()); + } + } + } + } catch (SchemaException ex) { + LOGGER.error("Cannot get refined resource schema for resource {}. {}", resourceModel.getObject().getName().getOrig(), ex.getLocalizedMessage()); + } + + return availableIntentValues.toString(); + } + + @Override + public void setObject(String o){ + super.setObject(o); + } + }; + } + + private void initLayout() { + CompoundPropertyModel constrModel = new CompoundPropertyModel(getModel()){ + @Override + public Object getObject(){ + Object o = super.getObject(); + return o; + } + + @Override + public void setObject(Object o){ + super.setObject(o); + } + }; + Form form = new Form(ID_FORM, constrModel); + form.setOutputMarkupId(true); + + DropDownChoice kindChoice = new DropDownChoice<>("kind", Model.ofList(Arrays.asList(ShadowKindType.values()))); + kindChoice.setOutputMarkupId(true); + kindChoice.add(new EmptyOnBlurAjaxFormUpdatingBehaviour(){ + @Override + protected void onUpdate(AjaxRequestTarget ajaxRequestTarget) { +// ajaxRequestTarget.add(form); + } + }); +// kindChoice.add(new AjaxEventBehavior("blur") { +// @Override +// protected void onEvent(AjaxRequestTarget ajaxRequestTarget) { +// ajaxRequestTarget.add(form); +// } +// }); + form.add(kindChoice); + DropDownChoice intentDropdown = new DropDownChoice<>("intent", new IModel>() { + @Override + public List getObject() { + List availableIntentValues = new ArrayList<>(); + try { + if (resourceModel.getObject() == null) { + return availableIntentValues; + } + RefinedResourceSchema refinedSchema = RefinedResourceSchema.getRefinedSchema(resourceModel.getObject()); + if (refinedSchema != null) { + ConstructionType m = (ConstructionType) constrModel.getObject(); + ShadowKindType kind = m.getKind(); + List definitions = refinedSchema.getRefinedDefinitions(kind); + for (RefinedObjectClassDefinition def : definitions) { + if (def.getIntent() != null) { + availableIntentValues.add(def.getIntent()); + } + } + } + } catch (SchemaException ex) { + LOGGER.error("Cannot get refined resource schema for resource {}. {}", resourceModel.getObject().getName().getOrig(), ex.getLocalizedMessage()); + } + + return availableIntentValues; + } + @Override + public void setObject(List o) { + // + } + + @Override + public void detach(){ + + } + }); + + intentDropdown.setOutputMarkupId(true); + form.add(intentDropdown); + + add(form); + + +// DropDownChoice kindDropDown = new DropDownChoice(ID_KIND_FIELD, kindModel, Model.ofList(Arrays.asList(ShadowKindType.values()))){ +// @Override +// protected void onSelectionChanged(ShadowKindType newSelection) { +// if (newSelection == null){ +// ConstructionDetailsPanelChainedModel.this.getModelObject().setKind(null); +// return; +// } +// if (newSelection instanceof ShadowKindType){ +// ConstructionDetailsPanelChainedModel.this.getModelObject().setKind((ShadowKindType) newSelection); +// } +// } +// }; +// kindDropDown.add(new EmptyOnBlurAjaxFormUpdatingBehaviour()); +// +// kindDropDown.setOutputMarkupId(true); +// add(kindDropDown); +// +// TextField intentDropDown = new TextField(ID_INTENT_FIELD, intentChoicesModel); +// DropDownChoicePanel intentDropDown = new DropDownChoicePanel(ID_INTENT_FIELD, +// PropertyModel.of(getModel(), ConstructionType.F_INTENT.getLocalPart()), intentChoicesModel); +// intentDropDown.getBaseFormComponent().add(new EmptyOnBlurAjaxFormUpdatingBehaviour()); +// intentDropDown.setOutputMarkupId(true); +// add(intentDropDown); + + } + +} diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/DelegationEditorPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/DelegationEditorPanel.java index b3914a278c6..0fe2d942940 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/DelegationEditorPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/DelegationEditorPanel.java @@ -213,14 +213,14 @@ public boolean isOn() { protected void initBodyLayout(WebMarkupContainer body) { DateInput validFrom = new DateInput(ID_DELEGATION_VALID_FROM, - AssignmentsUtil.createDateModel(new PropertyModel(getModel(), - AssignmentEditorDto.F_ACTIVATION + ".validFrom"))); + AssignmentsUtil.createDateModel(new PropertyModel<>(getModel(), + AssignmentEditorDto.F_ACTIVATION + ".validFrom"))); validFrom.setEnabled(getModel().getObject().isEditable()); body.add(validFrom); DateInput validTo = new DateInput(ID_DELEGATION_VALID_TO, - AssignmentsUtil.createDateModel(new PropertyModel(getModel(), - AssignmentEditorDto.F_ACTIVATION + ".validTo"))); + AssignmentsUtil.createDateModel(new PropertyModel<>(getModel(), + AssignmentEditorDto.F_ACTIVATION + ".validTo"))); validTo.setEnabled(getModel().getObject().isEditable()); body.add(validTo); @@ -439,7 +439,7 @@ public boolean isEnabled(){ body.add(certificationRights); AjaxCheckBox managementWorkItems = new AjaxCheckBox(ID_DELEGATE_MANAGEMENT_WI, - new Model(false)) { + new Model<>(false)) { private static final long serialVersionUID = 1L; @Override 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 02a922e9664..2fe4d6b7e4f 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 @@ -64,7 +64,7 @@ public void populateItem(Item getEnabled() { + protected IModel getEnabled(IModel> rowModel) { return Model.of(Boolean.FALSE); } @@ -102,8 +102,8 @@ protected boolean isRelationVisible() { @Override protected void addSelectedAssignmentsPerformed(AjaxRequestTarget target, List assignmentsList, - QName relation) { - super.addSelectedAssignmentsPerformed(target, assignmentsList, SchemaConstants.ORG_CONSENT); + QName relation, ShadowKindType kind, String intent) { + super.addSelectedAssignmentsPerformed(target, assignmentsList, SchemaConstants.ORG_CONSENT, kind, intent); } protected ObjectQuery createObjectQuery() { diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/GenericAbstractRoleAssignmentPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/GenericAbstractRoleAssignmentPanel.java new file mode 100644 index 00000000000..0aa4a91bce2 --- /dev/null +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/GenericAbstractRoleAssignmentPanel.java @@ -0,0 +1,97 @@ +/* + * Copyright (c) 2010-2017 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.assignment; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import org.apache.wicket.model.IModel; + +import com.evolveum.midpoint.gui.api.util.WebModelServiceUtils; +import com.evolveum.midpoint.prism.PrismObject; +import com.evolveum.midpoint.task.api.Task; +import com.evolveum.midpoint.util.QNameUtil; +import com.evolveum.midpoint.web.component.prism.ContainerValueWrapper; +import com.evolveum.midpoint.web.component.prism.ContainerWrapper; +import com.evolveum.midpoint.xml.ns._public.common.common_3.AssignmentType; +import com.evolveum.midpoint.xml.ns._public.common.common_3.OrgType; + +public class GenericAbstractRoleAssignmentPanel extends AbstractRoleAssignmentPanel { + + private static final long serialVersionUID = 1L; + + public GenericAbstractRoleAssignmentPanel(String id, IModel> assignmentContainerWrapperModel) { + super(id, assignmentContainerWrapperModel); + } + +// @Override +// protected boolean isRelationVisible() { +// return true; +// } + +// @Override +// protected void addSelectedAssignmentsPerformed(AjaxRequestTarget target, List assignmentsList, +// QName relation) { +// super.addSelectedAssignmentsPerformed(target, assignmentsList, SchemaConstants.ORG_DEFAULT); +// } + + @Override + protected List> postSearch(List> assignments) { + + List> resultList = new ArrayList<>(); + Task task = getPageBase().createSimpleTask("load assignment targets"); + Iterator> assignmentIterator = assignments.iterator(); + while (assignmentIterator.hasNext()) { + ContainerValueWrapper ass = assignmentIterator.next(); + AssignmentType assignment = ass.getContainerValue().asContainerable(); + if (QNameUtil.match(assignment.getTargetRef().getType(), OrgType.COMPLEX_TYPE)) { + PrismObject org = WebModelServiceUtils.loadObject(assignment.getTargetRef(), getPageBase(), task, task.getResult()); + if (org != null) { + if (org.asObjectable().getOrgType().contains("access")) { + resultList.add(ass); + } + } + } + + } + + return resultList; + } + +// protected ObjectQuery createObjectQuery() { +// +// List> assignments = getModelObject().getValues(); +// +// Task task = getPageBase().createSimpleTask("load assignment targets"); +// +// List oids = new ArrayList<>(); +// Iterator> assignmentIterator = assignments.iterator(); +// while (assignmentIterator.hasNext()) { +// ContainerValueWrapper ass = assignmentIterator.next(); +// AssignmentType assignment = ass.getContainerValue().asContainerable(); +// PrismObject org = WebModelServiceUtils.loadObject(assignment.getTargetRef(), getPageBase(), task, task.getResult()); +// if (org != null) { +// assignment.setTarget(org.asObjectable()); +// } +// +// } +// ObjectQuery query = QueryBuilder.queryFor(AssignmentType.class, getParentPage().getPrismContext()) +// .item(new ItemPath(AssignmentType.F_TARGET, OrgType.F_ORG_TYPE)).eq("access").build(); +// +// return query; +// } +} diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/GridViewComponent.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/GridViewComponent.java index 57259c1bd16..c9ebe367b98 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/GridViewComponent.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/GridViewComponent.java @@ -23,16 +23,12 @@ import org.apache.wicket.behavior.AttributeAppender; import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.basic.Label; -import org.apache.wicket.markup.html.panel.Fragment; -import org.apache.wicket.markup.repeater.AbstractPageableView; import org.apache.wicket.markup.repeater.Item; -import org.apache.wicket.markup.repeater.data.DataViewBase; import org.apache.wicket.markup.repeater.data.GridView; import org.apache.wicket.markup.repeater.data.IDataProvider; import org.apache.wicket.model.AbstractReadOnlyModel; import org.apache.wicket.model.IModel; -import java.util.Iterator; import java.util.List; /** diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/InducedEntitlementDetailsPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/InducedEntitlementDetailsPanel.java new file mode 100644 index 00000000000..7c0edb6519a --- /dev/null +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/InducedEntitlementDetailsPanel.java @@ -0,0 +1,46 @@ +/* + * 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.assignment; + +import com.evolveum.midpoint.prism.path.ItemPath; +import com.evolveum.midpoint.web.component.form.Form; +import com.evolveum.midpoint.web.component.prism.ContainerValueWrapper; +import com.evolveum.midpoint.web.component.prism.ContainerWrapper; +import com.evolveum.midpoint.web.component.prism.PrismContainerPanel; +import com.evolveum.midpoint.web.page.admin.PageAdminObjectDetails; +import com.evolveum.midpoint.xml.ns._public.common.common_3.*; +import org.apache.wicket.model.IModel; +import org.apache.wicket.model.Model; + +/** + * Created by honchar. + */ +public class InducedEntitlementDetailsPanel extends InducementDetailsPanel { + private static final long serialVersionUID = 1L; + + public InducedEntitlementDetailsPanel(String id, Form form, IModel> assignmentModel) { + super(id, form, assignmentModel); + } + + @Override + protected void initContainersPanel(Form form, PageAdminObjectDetails pageBase) { + ContainerWrapper constructionContainer = getModelObject().findContainerWrapper(getModelObject().getPath().append((AssignmentType.F_CONSTRUCTION))); + ConstructionAssociationPanel constructionDetailsPanel = new ConstructionAssociationPanel(ID_SPECIFIC_CONTAINERS, Model.of(constructionContainer)); + constructionDetailsPanel.setOutputMarkupId(true); + add(constructionDetailsPanel); + } + +} diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/InducedEntitlementsPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/InducedEntitlementsPanel.java index 503cafe26bf..89c9d84718d 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/InducedEntitlementsPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/InducedEntitlementsPanel.java @@ -1,18 +1,35 @@ package com.evolveum.midpoint.web.component.assignment; -import com.evolveum.midpoint.prism.path.ItemPath; +import com.evolveum.midpoint.gui.api.util.WebComponentUtil; import com.evolveum.midpoint.prism.query.AndFilter; import com.evolveum.midpoint.prism.query.ObjectFilter; import com.evolveum.midpoint.prism.query.ObjectPaging; import com.evolveum.midpoint.prism.query.ObjectQuery; import com.evolveum.midpoint.prism.query.builder.QueryBuilder; -import com.evolveum.midpoint.schema.constants.SchemaConstants; +import com.evolveum.midpoint.schema.constants.ObjectTypes; +import com.evolveum.midpoint.util.logging.Trace; +import com.evolveum.midpoint.util.logging.TraceManager; +import com.evolveum.midpoint.web.component.form.Form; +import com.evolveum.midpoint.web.component.prism.ContainerValueWrapper; import com.evolveum.midpoint.web.component.prism.ContainerWrapper; +import com.evolveum.midpoint.web.component.prism.ValueStatus; import com.evolveum.midpoint.web.session.AssignmentsTabStorage; import com.evolveum.midpoint.web.session.UserProfileStorage; -import com.evolveum.midpoint.xml.ns._public.common.common_3.AssignmentType; -import com.evolveum.midpoint.xml.ns._public.common.common_3.ConstructionType; +import com.evolveum.midpoint.web.util.ExpressionUtil; +import com.evolveum.midpoint.xml.ns._public.common.common_3.*; +import org.apache.commons.lang.StringUtils; +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.basic.Label; +import org.apache.wicket.markup.repeater.Item; import org.apache.wicket.model.IModel; +import org.apache.wicket.model.Model; + +import javax.jws.WebParam; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; /** * Created by honchar. @@ -21,6 +38,9 @@ public class InducedEntitlementsPanel extends InducementsPanel{ private static final long serialVersionUID = 1L; + private static final Trace LOGGER = TraceManager.getTrace(InducedEntitlementsPanel.class); + private static final String DOT_CLASS = InducedEntitlementsPanel.class.getName() + "."; + private static final String OPERATION_LOAD_SHADOW_DISPLAY_NAME = DOT_CLASS + "loadShadowDisplayName"; public InducedEntitlementsPanel(String id, IModel> inducementContainerWrapperModel){ super(id, inducementContainerWrapperModel); @@ -46,12 +66,46 @@ private AssignmentsTabStorage getInducedEntitlementsTabStorage(){ return getParentPage().getSessionStorage().getInducedEntitlementsTabStorage(); } + @Override + protected List, String>> initColumns() { + List, String>> columns = new ArrayList<>(); + columns.add(new AbstractColumn, String>(createStringResource("ConstructionType.kind")){ + private static final long serialVersionUID = 1L; + + @Override + public void populateItem(Item>> item, String componentId, + final IModel> rowModel) { + item.add(new Label(componentId, getKindLabelModel(rowModel.getObject()))); + } + }); + columns.add(new AbstractColumn, String>(createStringResource("ConstructionType.intent")){ + private static final long serialVersionUID = 1L; + + @Override + public void populateItem(Item>> item, String componentId, + final IModel> rowModel) { + item.add(new Label(componentId, getIntentLabelModel(rowModel.getObject()))); + } + }); + columns.add(new AbstractColumn, String>(createStringResource("ConstructionType.association")){ + private static final long serialVersionUID = 1L; + + @Override + public void populateItem(Item>> item, String componentId, + final IModel> rowModel) { + item.add(new Label(componentId, getAssociationLabelModel(rowModel.getObject()))); + } + }); + + return columns; + } + @Override protected ObjectQuery createObjectQuery() { ObjectQuery query = super.createObjectQuery(); ObjectFilter filter = query.getFilter(); ObjectQuery entitlementsQuery = QueryBuilder.queryFor(AssignmentType.class, getParentPage().getPrismContext()) - .exists(AssignmentType.F_CONSTRUCTION, ConstructionType.F_ASSOCIATION) + .exists(AssignmentType.F_CONSTRUCTION) .build(); if (filter != null){ query.setFilter(AndFilter.createAnd(filter, entitlementsQuery.getFilter())); @@ -61,6 +115,110 @@ protected ObjectQuery createObjectQuery() { return query; } + @Override + protected InducementDetailsPanel createDetailsPanel(String idAssignmentDetails, Form form, IModel> model) { + return new InducedEntitlementDetailsPanel(ID_ASSIGNMENT_DETAILS, form, model); + } + + @Override + protected Class getDefaultNewAssignmentFocusType(){ + return ResourceType.class; + } + @Override + protected boolean isRelationVisible() { + return false; + } + + protected List getObjectTypesList(){ + return Arrays.asList(ObjectTypes.RESOURCE); + } + private IModel getKindLabelModel(ContainerValueWrapper assignmentWrapper){ + if (assignmentWrapper == null){ + return Model.of(""); + } + AssignmentType assignment = assignmentWrapper.getContainerValue().asContainerable(); + ConstructionType construction = assignment.getConstruction(); + if (construction == null || construction.getKind() == null){ + return Model.of(""); + } + return WebComponentUtil.createLocalizedModelForEnum(construction.getKind(), InducedEntitlementsPanel.this); + + } + + private IModel getIntentLabelModel(ContainerValueWrapper assignmentWrapper){ + if (assignmentWrapper == null){ + return Model.of(""); + } + AssignmentType assignment = assignmentWrapper.getContainerValue().asContainerable(); + ConstructionType construction = assignment.getConstruction(); + if (construction == null || construction.getIntent() == null){ + return Model.of(""); + } + return Model.of(construction.getIntent()); + + } + + private IModel getAssociationLabelModel(ContainerValueWrapper assignmentWrapper){ + if (assignmentWrapper == null){ + return Model.of(""); + } + AssignmentType assignment = assignmentWrapper.getContainerValue().asContainerable(); + ConstructionType construction = assignment.getConstruction(); + if (construction == null || construction.getAssociation() == null){ + return Model.of(""); + } + StringBuilder sb = new StringBuilder(); + for (ResourceObjectAssociationType association : construction.getAssociation()){ + if (association.getOutbound() == null || association.getOutbound().getExpression() == null){ + continue; + } + ObjectReferenceType shadowRefValue = ExpressionUtil.getShadowRefValue(association.getOutbound().getExpression()); + if (shadowRefValue == null || StringUtils.isEmpty(shadowRefValue.getOid())){ + continue; + } + String shadowDisplayName = WebComponentUtil.getDisplayNameOrName(shadowRefValue, getPageBase(), OPERATION_LOAD_SHADOW_DISPLAY_NAME); + if (sb.length() == 0){ + sb.append(createStringResource("ExpressionValuePanel.shadowRefValueTitle").getString() + ":"); + } + if (StringUtils.isNotEmpty(shadowDisplayName)){ + sb.append("\n"); + sb.append(shadowDisplayName); + } + } + return Model.of(sb.toString()); + + } + + @Override + protected List> postSearch(List> assignments) { + List> filteredAssignments = new ArrayList<>(); + assignments.forEach(assignmentWrapper -> { + AssignmentType assignment = assignmentWrapper.getContainerValue().asContainerable(); + if (assignment.getConstruction() != null && assignment.getConstruction().getAssociation() != null) { + List associations = assignment.getConstruction().getAssociation(); + if (associations.size() == 0 && ValueStatus.ADDED.equals(assignmentWrapper.getStatus())){ + filteredAssignments.add(assignmentWrapper); + return; + } + associations.forEach(association -> { + if (!filteredAssignments.contains(assignmentWrapper)) { + if (association.getOutbound() == null && ValueStatus.ADDED.equals(assignmentWrapper.getStatus())) { + filteredAssignments.add(assignmentWrapper); + return; + } + if (association.getOutbound() != null && association.getOutbound().getExpression() != null) { + ObjectReferenceType shadowRef = ExpressionUtil.getShadowRefValue(association.getOutbound().getExpression()); + if ((shadowRef != null || ValueStatus.ADDED.equals(assignmentWrapper.getStatus()))) { + filteredAssignments.add(assignmentWrapper); + return; + } + } + } + }); + } + }); + return filteredAssignments; + } } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/InducementDetailsPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/InducementDetailsPanel.java index 9642a6a4b1a..78c4b97a6a2 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/InducementDetailsPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/InducementDetailsPanel.java @@ -15,22 +15,18 @@ */ package com.evolveum.midpoint.web.component.assignment; -import com.evolveum.midpoint.prism.Containerable; import com.evolveum.midpoint.web.component.form.Form; import com.evolveum.midpoint.web.component.prism.ContainerValueWrapper; -import com.evolveum.midpoint.web.component.prism.ContainerWrapper; -import com.evolveum.midpoint.web.component.prism.PrismPanel; -import com.evolveum.midpoint.web.model.ContainerWrapperListFromObjectWrapperModel; -import com.evolveum.midpoint.web.page.admin.PageAdminObjectDetails; import com.evolveum.midpoint.xml.ns._public.common.common_3.*; import org.apache.wicket.model.IModel; +import javax.xml.namespace.QName; import java.util.List; /** * Created by honchar. */ -public class InducementDetailsPanel extends AbstractRoleAssignmentDetailsPanel { +public class InducementDetailsPanel extends AbstractRoleAssignmentDetailsPanel { private static final long serialVersionUID = 1L; public InducementDetailsPanel(String id, Form form, IModel> assignmentModel) { diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/InducementsPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/InducementsPanel.java index cd722a27206..90e21df0cca 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/InducementsPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/InducementsPanel.java @@ -15,18 +15,13 @@ */ package com.evolveum.midpoint.web.component.assignment; -import com.evolveum.midpoint.prism.query.AndFilter; -import com.evolveum.midpoint.prism.query.ObjectFilter; import com.evolveum.midpoint.prism.query.ObjectPaging; -import com.evolveum.midpoint.prism.query.ObjectQuery; -import com.evolveum.midpoint.prism.query.builder.QueryBuilder; import com.evolveum.midpoint.web.component.form.Form; import com.evolveum.midpoint.web.component.prism.ContainerValueWrapper; import com.evolveum.midpoint.web.component.prism.ContainerWrapper; import com.evolveum.midpoint.web.session.AssignmentsTabStorage; import com.evolveum.midpoint.web.session.UserProfileStorage; import com.evolveum.midpoint.xml.ns._public.common.common_3.AssignmentType; -import com.evolveum.midpoint.xml.ns._public.common.common_3.ConstructionType; import org.apache.wicket.model.IModel; /** diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/MetadataPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/MetadataPanel.java index ea907291392..2355772ee5b 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/MetadataPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/MetadataPanel.java @@ -33,7 +33,6 @@ import javax.xml.datatype.XMLGregorianCalendar; import javax.xml.namespace.QName; -import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -102,8 +101,8 @@ private void initLayout(){ AbstractReadOnlyModel metadataFieldModel = new AbstractReadOnlyModel() { @Override public String getObject() { - PropertyModel tempModel = new PropertyModel(getModel(), - qname.getLocalPart()); + PropertyModel tempModel = new PropertyModel<>(getModel(), + qname.getLocalPart()); if (tempModel.getObject() instanceof XMLGregorianCalendar){ return WebComponentUtil.getLocalizedDate((XMLGregorianCalendar)tempModel.getObject(), DateLabelComponent.MEDIUM_MEDIUM_STYLE); diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/PolicyRuleConstraintsExpandablePanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/PolicyRuleConstraintsExpandablePanel.java index 1e9c5be7a9c..00f0964dcaf 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/PolicyRuleConstraintsExpandablePanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/PolicyRuleConstraintsExpandablePanel.java @@ -1,20 +1,9 @@ package com.evolveum.midpoint.web.component.assignment; import com.evolveum.midpoint.gui.api.component.BasePanel; -import com.evolveum.midpoint.prism.path.ItemPath; -import com.evolveum.midpoint.web.component.AjaxButton; -import com.evolveum.midpoint.web.component.prism.ContainerStatus; import com.evolveum.midpoint.web.component.prism.ContainerWrapper; -import com.evolveum.midpoint.web.component.prism.ContainerWrapperFactory; -import com.evolveum.midpoint.web.component.prism.PrismContainerPanel; import com.evolveum.midpoint.xml.ns._public.common.common_3.AbstractPolicyConstraintType; -import com.evolveum.midpoint.xml.ns._public.common.common_3.AssignmentType; -import com.evolveum.midpoint.xml.ns._public.common.common_3.PolicyConstraintsType; -import com.evolveum.midpoint.xml.ns._public.common.common_3.PolicyRuleType; -import org.apache.wicket.ajax.AjaxRequestTarget; -import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.model.IModel; -import org.apache.wicket.model.Model; /** * Created by honchar diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/PolicyRuleDetailsPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/PolicyRuleDetailsPanel.java index a6093554629..f2fb06cb4b5 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/PolicyRuleDetailsPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/PolicyRuleDetailsPanel.java @@ -26,6 +26,7 @@ import com.evolveum.midpoint.prism.path.ItemPath; import com.evolveum.midpoint.web.component.form.Form; +import org.apache.wicket.model.Model; /** * Created by honchar. @@ -37,27 +38,6 @@ public PolicyRuleDetailsPanel(String id, Form form, IModel pageBase){ - ContainerWrapperFromObjectWrapperModel policyRuleModel = - new ContainerWrapperFromObjectWrapperModel(pageBase.getObjectModel(), - getModelObject().getPath().append(AssignmentType.F_POLICY_RULE)); - - ContainerWrapper policyRules = policyRuleModel.getObject(); - if (policyRules.getValues() != null){ - policyRules.getValues().forEach(policyRuleContainerValueWrapper -> { - policyRuleContainerValueWrapper.setShowEmpty(true, false); - }); - } - policyRules.setShowEmpty(true, false); - setRemoveContainerButtonVisibility(policyRules); - setAddContainerButtonVisibility(policyRules); - - PrismContainerPanel constraintsContainerPanel = new PrismContainerPanel(ID_SPECIFIC_CONTAINERS, policyRuleModel, - false, form, null, pageBase); - constraintsContainerPanel.setOutputMarkupId(true); - add(constraintsContainerPanel); - } - private void setRemoveContainerButtonVisibility(ContainerWrapper policyRulesContainer){ ContainerWrapper constraintsContainer = policyRulesContainer.findContainerWrapper(new ItemPath(policyRulesContainer.getPath(), PolicyRuleType.F_POLICY_CONSTRAINTS)); if (constraintsContainer != null){ @@ -79,11 +59,15 @@ private void setAddContainerButtonVisibility(ContainerWrapper po } @Override - protected List collectContainersToShow() { - List containersToShow = new ArrayList<>(); - containersToShow.add(getAssignmentPath().append(AssignmentType.F_POLICY_RULE)); - - return containersToShow; + protected IModel getSpecificContainerModel() { + ContainerWrapper policyRuleWrapper = getModelObject().findContainerWrapper(new ItemPath(getModelObject().getPath(), AssignmentType.F_POLICY_RULE)); + if (policyRuleWrapper != null && policyRuleWrapper.getValues() != null) { + policyRuleWrapper.getValues().forEach(vw -> vw.setShowEmpty(true, false)); + } + setRemoveContainerButtonVisibility(policyRuleWrapper); + setAddContainerButtonVisibility(policyRuleWrapper); + + return Model.of(policyRuleWrapper); } } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/PolicyRulesPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/PolicyRulesPanel.java index 4a251a3f6d6..aa103d0704f 100755 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/PolicyRulesPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/PolicyRulesPanel.java @@ -19,19 +19,11 @@ import java.util.Arrays; import java.util.List; -import com.evolveum.midpoint.gui.api.util.WebComponentUtil; -import com.evolveum.midpoint.prism.PrismContainer; import com.evolveum.midpoint.prism.PrismContainerValue; -import com.evolveum.midpoint.prism.query.ObjectFilter; -import com.evolveum.midpoint.schema.constants.SchemaConstants; import com.evolveum.midpoint.schema.util.PolicyRuleTypeUtil; import com.evolveum.midpoint.web.component.prism.ContainerValueWrapper; import com.evolveum.midpoint.web.component.prism.ContainerWrapper; -import com.evolveum.midpoint.web.component.prism.ContainerWrapperFactory; -import com.evolveum.midpoint.web.component.prism.ValueStatus; -import com.evolveum.midpoint.web.page.admin.users.dto.UserDtoStatus; import com.evolveum.midpoint.xml.ns._public.common.common_3.*; -import org.apache.commons.lang.StringUtils; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator; import org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractColumn; @@ -42,15 +34,9 @@ import org.apache.wicket.model.IModel; import org.apache.wicket.model.Model; -import com.evolveum.midpoint.gui.api.GuiStyleConstants; -import com.evolveum.midpoint.gui.api.page.PageBase; -import com.evolveum.midpoint.prism.path.ItemPath; import com.evolveum.midpoint.prism.query.ObjectPaging; import com.evolveum.midpoint.prism.query.ObjectQuery; import com.evolveum.midpoint.prism.query.builder.QueryBuilder; -import com.evolveum.midpoint.web.component.data.column.CheckBoxHeaderColumn; -import com.evolveum.midpoint.web.component.data.column.IconColumn; -import com.evolveum.midpoint.web.component.data.column.LinkColumn; import com.evolveum.midpoint.web.component.form.Form; import com.evolveum.midpoint.web.session.AssignmentsTabStorage; import com.evolveum.midpoint.web.session.UserProfileStorage; @@ -155,6 +141,7 @@ protected void newAssignmentClickPerformed(AjaxRequestTarget target) { newAssignment.asContainerable().setPolicyRule(new PolicyRuleType()); ContainerValueWrapper newAssignmentWrapper = createNewAssignmentContainerValueWrapper(newAssignment); newAssignmentWrapper.setShowEmpty(true, false); + newAssignmentWrapper.computeStripes(); assignmentDetailsPerformed(target, Arrays.asList(newAssignmentWrapper)); } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/ResourceListPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/ResourceListPanel.java index a6c15d8d66f..65887da212b 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/ResourceListPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/ResourceListPanel.java @@ -48,7 +48,7 @@ protected void initLayout() { } private List initColumns() { - List columns = new ArrayList(); + List columns = new ArrayList<>(); IColumn column = new LinkColumn>(createStringResource("ObjectType.name"), "name", "value.name") { diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/RoleCatalogItemButton.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/RoleCatalogItemButton.java index 0d70b4f759b..bf6978a6b74 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/RoleCatalogItemButton.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/RoleCatalogItemButton.java @@ -28,13 +28,9 @@ import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour; import com.evolveum.midpoint.web.page.admin.roles.PageRole; import com.evolveum.midpoint.web.page.admin.services.PageService; -import com.evolveum.midpoint.web.page.admin.users.PageMergeObjects; import com.evolveum.midpoint.web.page.admin.users.PageOrgUnit; import com.evolveum.midpoint.web.page.self.PageAssignmentDetails; -import com.evolveum.midpoint.web.page.self.PageAssignmentShoppingKart; import com.evolveum.midpoint.web.session.RoleCatalogStorage; -import com.evolveum.midpoint.web.util.OnePageParameterEncoder; -import com.evolveum.midpoint.xml.ns._public.common.common_3.AbstractRoleType; import com.evolveum.midpoint.xml.ns._public.common.common_3.OrgType; import com.evolveum.midpoint.xml.ns._public.common.common_3.RoleType; import com.evolveum.midpoint.xml.ns._public.common.common_3.ServiceType; @@ -300,7 +296,7 @@ private void addAssignmentPerformed(AssignmentEditorDto assignment, AjaxRequestT plusIconClicked = true; RoleCatalogStorage storage = getPageBase().getSessionStorage().getRoleCatalog(); if (storage.getAssignmentShoppingCart() == null){ - storage.setAssignmentShoppingCart(new ArrayList()); + storage.setAssignmentShoppingCart(new ArrayList<>()); } AssignmentEditorDto dto = assignment.clone(); dto.setDefaultRelation(); diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/SelfConsentPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/SelfConsentPanel.java index 571915b041b..90cbac30fc8 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/SelfConsentPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/SelfConsentPanel.java @@ -21,13 +21,11 @@ import org.apache.wicket.behavior.AttributeAppender; import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.basic.Label; -import org.apache.wicket.model.AbstractReadOnlyModel; import org.apache.wicket.model.IModel; import org.apache.wicket.model.Model; import com.evolveum.midpoint.gui.api.GuiStyleConstants; import com.evolveum.midpoint.gui.api.component.BasePanel; -import com.evolveum.midpoint.gui.api.component.DisplayNamePanel; import com.evolveum.midpoint.gui.api.model.DisplayNameModel; import com.evolveum.midpoint.gui.api.page.PageBase; import com.evolveum.midpoint.gui.api.util.WebModelServiceUtils; @@ -35,16 +33,11 @@ import com.evolveum.midpoint.schema.constants.SchemaConstants; import com.evolveum.midpoint.schema.result.OperationResult; import com.evolveum.midpoint.task.api.Task; -import com.evolveum.midpoint.util.MiscUtil; import com.evolveum.midpoint.web.component.AjaxButton; import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour; -import com.evolveum.midpoint.web.page.self.PageSelfConsents; import com.evolveum.midpoint.web.page.self.PageSelfDashboard; import com.evolveum.midpoint.xml.ns._public.common.common_3.AbstractRoleType; -import com.evolveum.midpoint.xml.ns._public.common.common_3.ActivationStatusType; -import com.evolveum.midpoint.xml.ns._public.common.common_3.ActivationType; import com.evolveum.midpoint.xml.ns._public.common.common_3.AssignmentType; -import com.evolveum.midpoint.xml.ns._public.common.common_3.TimeIntervalStatusType; public class SelfConsentPanel extends BasePanel { diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/ShoppingCartEditorPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/ShoppingCartEditorPanel.java index 739b3261233..8c4c25ca714 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/ShoppingCartEditorPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/ShoppingCartEditorPanel.java @@ -16,18 +16,13 @@ package com.evolveum.midpoint.web.component.assignment; -import com.evolveum.midpoint.gui.api.page.PageBase; import org.apache.wicket.AttributeModifier; import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.model.AbstractReadOnlyModel; import org.apache.wicket.model.IModel; -import org.apache.wicket.model.Model; import org.apache.wicket.model.PropertyModel; -import java.util.ArrayList; -import java.util.List; - /** * Created by honchar. */ diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/SimpleRoleSelector.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/SimpleRoleSelector.java index 74024525d5c..f25f32a4b5a 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/SimpleRoleSelector.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/SimpleRoleSelector.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016 Evolveum + * Copyright (c) 2016-2018 Evolveum * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,7 +19,9 @@ import java.util.List; import com.evolveum.midpoint.web.component.prism.ContainerValueWrapper; +import com.evolveum.midpoint.web.component.prism.ContainerWrapper; import com.evolveum.midpoint.web.component.prism.ValueStatus; + import org.apache.wicket.Component; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.markup.html.AjaxLink; @@ -30,12 +32,10 @@ import org.apache.wicket.model.Model; import com.evolveum.midpoint.gui.api.component.BasePanel; -import com.evolveum.midpoint.gui.api.page.PageBase; import com.evolveum.midpoint.prism.PrismObject; import com.evolveum.midpoint.schema.util.ObjectTypeUtil; import com.evolveum.midpoint.util.logging.Trace; import com.evolveum.midpoint.util.logging.TraceManager; -import com.evolveum.midpoint.web.page.admin.users.dto.UserDtoStatus; import com.evolveum.midpoint.xml.ns._public.common.common_3.AbstractRoleType; import com.evolveum.midpoint.xml.ns._public.common.common_3.AssignmentType; import com.evolveum.midpoint.xml.ns._public.common.common_3.FocusType; @@ -44,7 +44,7 @@ /** * @author semancik */ -public class SimpleRoleSelector extends BasePanel>> { +public class SimpleRoleSelector extends BasePanel> { private static final long serialVersionUID = 1L; private static final Trace LOGGER = TraceManager.getTrace(SimpleRoleSelector.class); @@ -55,7 +55,7 @@ public class SimpleRoleSelector List> availableRoles; - public SimpleRoleSelector(String id, IModel>> assignmentModel, List> availableRoles) { + public SimpleRoleSelector(String id, IModel> assignmentModel, List> availableRoles) { super(id, assignmentModel); this.availableRoles = availableRoles; initLayout(); @@ -69,10 +69,6 @@ public String getExcludeOid() { return null; } - protected IModel>> getAssignmentModel() { - return getModel(); - } - private void initLayout() { setOutputMarkupId(true); ListView> list = new ListView>(ID_LIST, availableRoles) { @@ -101,7 +97,7 @@ private Component createRoleLink(String id, IModel> model) { @Override public IModel getBody() { - return new Model(getModel().getObject().asObjectable().getName().getOrig()); + return new Model<>(getModel().getObject().asObjectable().getName().getOrig()); } @Override @@ -132,7 +128,7 @@ protected void onComponentTag(ComponentTag tag) { private boolean isSelected(PrismObject role) { - for (ContainerValueWrapper assignmentContainer: getAssignmentModel().getObject()) { + for (ContainerValueWrapper assignmentContainer: getModel().getObject().getValues()) { AssignmentType assignment = assignmentContainer.getContainerValue().getValue(); if (willProcessAssignment(assignment)) { ObjectReferenceType targetRef = assignment.getTargetRef(); @@ -147,7 +143,7 @@ private boolean isSelected(PrismObject role) { } private void toggleRole(PrismObject role) { - Iterator> iterator = getAssignmentModel().getObject().iterator(); + Iterator> iterator = getModel().getObject().getValues().iterator(); while (iterator.hasNext()) { ContainerValueWrapper assignmentContainer = iterator.next(); AssignmentType assignment = assignmentContainer.getContainerValue().getValue(); @@ -171,7 +167,7 @@ private void toggleRole(PrismObject role) { } private void reset() { - Iterator> iterator = getAssignmentModel().getObject().iterator(); + Iterator> iterator = getModel().getObject().getValues().iterator(); while (iterator.hasNext()) { ContainerValueWrapper assignmentContainer = iterator.next(); AssignmentType assignment = assignmentContainer.getContainerValue().getValue(); diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/UserSelectionButton.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/UserSelectionButton.java index 5cb2f568bae..c42bfc6b78b 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/UserSelectionButton.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/UserSelectionButton.java @@ -27,7 +27,6 @@ import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.model.AbstractReadOnlyModel; import org.apache.wicket.model.IModel; -import org.apache.wicket.model.Model; import org.apache.wicket.model.StringResourceModel; import javax.xml.namespace.QName; diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/box/InfoBoxPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/box/InfoBoxPanel.java index 599dceb081e..a79a07c5fb7 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/box/InfoBoxPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/box/InfoBoxPanel.java @@ -89,7 +89,7 @@ public boolean isVisible() { return model.getObject().getProgress() != null; } }); - ProgressbarPanel progressBar = new ProgressbarPanel(ID_PROGRESS_BAR, new PropertyModel(model, InfoBoxType.PROGRESS)); + ProgressbarPanel progressBar = new ProgressbarPanel(ID_PROGRESS_BAR, new PropertyModel<>(model, InfoBoxType.PROGRESS)); progress.add(progressBar); Label description = new Label(ID_DESCRIPTION, new PropertyModel(model, InfoBoxType.DESCRIPTION)); diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/breadcrumbs/Breadcrumb.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/breadcrumbs/Breadcrumb.java index 3286edb65ea..69631fbd5e3 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/breadcrumbs/Breadcrumb.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/breadcrumbs/Breadcrumb.java @@ -20,7 +20,6 @@ import com.evolveum.midpoint.util.DebugUtil; import com.evolveum.midpoint.util.logging.Trace; import com.evolveum.midpoint.util.logging.TraceManager; -import org.apache.wicket.Component; import org.apache.wicket.RestartResponseException; import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.model.AbstractReadOnlyModel; diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/breadcrumbs/BreadcrumbPageClass.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/breadcrumbs/BreadcrumbPageClass.java index 953c19a868f..b48fdf76661 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/breadcrumbs/BreadcrumbPageClass.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/breadcrumbs/BreadcrumbPageClass.java @@ -17,7 +17,6 @@ package com.evolveum.midpoint.web.component.breadcrumbs; import org.apache.commons.lang.Validate; -import org.apache.wicket.Component; import org.apache.wicket.IPageFactory; import org.apache.wicket.RestartResponseException; import org.apache.wicket.Session; diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/breadcrumbs/BreadcrumbPageInstance.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/breadcrumbs/BreadcrumbPageInstance.java index 8e8367a618d..54104ec24ba 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/breadcrumbs/BreadcrumbPageInstance.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/breadcrumbs/BreadcrumbPageInstance.java @@ -18,10 +18,7 @@ import com.evolveum.midpoint.web.util.NewWindowNotifyingBehavior; import org.apache.commons.lang.Validate; -import org.apache.wicket.Component; -import org.apache.wicket.IPageFactory; import org.apache.wicket.RestartResponseException; -import org.apache.wicket.Session; import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.model.IModel; import org.apache.wicket.request.mapper.parameter.PageParameters; 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 f2e5bc6bd00..c9c02d2640e 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 @@ -17,6 +17,7 @@ package com.evolveum.midpoint.web.component.data; import com.evolveum.midpoint.gui.api.page.PageBase; +import com.evolveum.midpoint.gui.api.util.WebComponentUtil; import com.evolveum.midpoint.model.api.*; import com.evolveum.midpoint.prism.PrismContext; import com.evolveum.midpoint.prism.path.ItemPath; @@ -25,7 +26,9 @@ import com.evolveum.midpoint.prism.query.ObjectQuery; import com.evolveum.midpoint.prism.query.OrderDirection; import com.evolveum.midpoint.repo.api.RepositoryService; +import com.evolveum.midpoint.schema.GetOperationOptions; import com.evolveum.midpoint.schema.SchemaConstantsGenerated; +import com.evolveum.midpoint.schema.SelectorOptions; import com.evolveum.midpoint.schema.result.OperationResult; import com.evolveum.midpoint.task.api.TaskManager; import com.evolveum.midpoint.util.logging.Trace; @@ -34,6 +37,8 @@ import com.evolveum.midpoint.web.security.MidPointApplication; 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 org.apache.commons.lang.Validate; import org.apache.wicket.Component; import org.apache.wicket.extensions.markup.html.repeater.data.sort.SortOrder; @@ -43,6 +48,7 @@ import org.apache.wicket.model.IModel; import org.apache.wicket.model.Model; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import javax.xml.namespace.QName; import java.io.Serializable; @@ -65,7 +71,7 @@ public abstract class BaseSortableDataProvider extends S // after this amount of time cached size will be removed // from cache and replaced by new value, time in seconds - private Map cache = new HashMap(); + private Map cache = new HashMap<>(); private int cacheCleanupThreshold = 60; private boolean useCache; private boolean exportSize = false; @@ -91,60 +97,60 @@ public BaseSortableDataProvider(Component component, boolean useCache, boolean u } protected ModelService getModel() { - MidPointApplication application = (MidPointApplication) MidPointApplication.get(); + MidPointApplication application = MidPointApplication.get(); return application.getModel(); } protected RepositoryService getRepositoryService() { - MidPointApplication application = (MidPointApplication) MidPointApplication.get(); + MidPointApplication application = MidPointApplication.get(); return application.getRepositoryService(); } protected TaskManager getTaskManager() { - MidPointApplication application = (MidPointApplication) MidPointApplication.get(); + MidPointApplication application = MidPointApplication.get(); return application.getTaskManager(); } protected PrismContext getPrismContext() { - MidPointApplication application = (MidPointApplication) MidPointApplication.get(); + MidPointApplication application = MidPointApplication.get(); return application.getPrismContext(); } protected TaskService getTaskService() { - MidPointApplication application = (MidPointApplication) MidPointApplication.get(); + MidPointApplication application = MidPointApplication.get(); return application.getTaskService(); } protected ModelInteractionService getModelInteractionService() { - MidPointApplication application = (MidPointApplication) MidPointApplication.get(); + MidPointApplication application = MidPointApplication.get(); return application.getModelInteractionService(); } protected WorkflowService getWorkflowService() { - MidPointApplication application = (MidPointApplication) MidPointApplication.get(); + MidPointApplication application = MidPointApplication.get(); return application.getWorkflowService(); } protected ModelAuditService getAuditService() { - MidPointApplication application = (MidPointApplication) MidPointApplication.get(); + MidPointApplication application = MidPointApplication.get(); return application.getAuditService(); } protected WorkflowManager getWorkflowManager() { - MidPointApplication application = (MidPointApplication) MidPointApplication.get(); + MidPointApplication application = MidPointApplication.get(); return application.getWorkflowManager(); } public List getAvailableData() { if (availableData == null) { - availableData = new ArrayList(); + availableData = new ArrayList<>(); } return availableData; } @Override public IModel model(T object) { - return new Model(object); + return new Model<>(object); } protected PageBase getPage() { @@ -187,9 +193,45 @@ public Boolean getObject() { }; } - protected ObjectPaging createPaging(long offset, long pageSize) { - return ObjectPaging.createPaging(safeLongToInteger(offset), safeLongToInteger(pageSize), createObjectOrderings(getSort())); - } + protected boolean checkOrderingSettings() { + return false; + } + + public boolean isDistinct() { + GuiObjectListType def = WebComponentUtil.getDefaultGuiObjectListType((PageBase) component.getPage()); + return def == null || def.getDistinct() != DistinctSearchOptionType.NEVER; // change after other options are added + } + + protected Collection> createDefaultOptions() { + return getDistinctRelatedOptions(); // probably others in the future + } + + @Nullable + protected Collection> getDistinctRelatedOptions() { + if (isDistinct()) { + return SelectorOptions.createCollection(GetOperationOptions.createDistinct()); + } else { + return null; + } + } + + public boolean isOrderingDisabled() { + if (!checkOrderingSettings()) { + return false; + } + GuiObjectListType def = WebComponentUtil.getDefaultGuiObjectListType((PageBase) component.getPage()); + return def != null && def.isDisableSorting(); + } + + protected ObjectPaging createPaging(long offset, long pageSize) { + Integer o = safeLongToInteger(offset); + Integer size = safeLongToInteger(pageSize); + List orderings = null; + if (!isOrderingDisabled()) { + orderings = createObjectOrderings(getSort()); + } + return ObjectPaging.createPaging(o, size, orderings); + } /** * Could be overridden in subclasses. 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 5732b3e55cd..cf01333a00e 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 @@ -18,15 +18,12 @@ import java.util.List; -import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour; import org.apache.wicket.Component; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.behavior.AttributeAppender; import org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable; import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn; import org.apache.wicket.extensions.markup.html.repeater.data.table.ISortableDataProvider; -import org.apache.wicket.extensions.markup.html.repeater.data.table.export.CSVDataExporter; -import org.apache.wicket.extensions.markup.html.repeater.data.table.export.ExportToolbar; import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.navigation.paging.IPageable; diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/MenuMultiButtonPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/MenuMultiButtonPanel.java index 4069b47823a..1342f138d82 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/MenuMultiButtonPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/MenuMultiButtonPanel.java @@ -18,13 +18,11 @@ import com.evolveum.midpoint.gui.api.component.button.DropdownButtonDto; import com.evolveum.midpoint.gui.api.component.button.DropdownButtonPanel; -import com.evolveum.midpoint.web.component.menu.cog.InlineMenu; import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItem; import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour; import org.apache.wicket.model.IModel; import java.io.Serializable; -import java.util.ArrayList; import java.util.List; /** diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/ObjectDataProvider.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/ObjectDataProvider.java index 966ac2f06df..a54f51eaf62 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/ObjectDataProvider.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/ObjectDataProvider.java @@ -78,6 +78,12 @@ public List getSelectedData() { return allSelected; } + // Here we apply the distinct option. It is easier and more reliable to apply it here than to do at all the places + // where options for this provider are defined. + private Collection> getOptionsToUse() { + return GetOperationOptions.merge(options, getDistinctRelatedOptions()); + } + @Override public Iterator internalIterator(long first, long count) { @@ -120,7 +126,7 @@ public Iterator internalIterator(long first, long count) { LOGGER.trace("Query {} with {}", type.getSimpleName(), query.debugDump()); } - List> list = getModel().searchObjects(type, query, options, task, result); + List> list = getModel().searchObjects(type, query, getOptionsToUse(), task, result); if (LOGGER.isTraceEnabled()) { LOGGER.trace("Query {} resulted in {} objects", type.getSimpleName(), list.size()); @@ -144,13 +150,18 @@ public Iterator internalIterator(long first, long count) { return getAvailableData().iterator(); } + @Override + protected boolean checkOrderingSettings() { + return true; + } + protected void handleNotSuccessOrHandledErrorInIterator(OperationResult result){ getPage().showResult(result); throw new RestartResponseException(PageError.class); } public W createDataObjectWrapper(PrismObject obj) { - SelectableBean selectable = new SelectableBean(obj.asObjectable()); + SelectableBean selectable = new SelectableBean<>(obj.asObjectable()); if (selected.contains(obj.asObjectable())){ selectable.setSelected(true); } @@ -164,7 +175,7 @@ protected int internalSize() { OperationResult result = new OperationResult(OPERATION_COUNT_OBJECTS); try { Task task = getPage().createSimpleTask(OPERATION_COUNT_OBJECTS); - count = getModel().countObjects(type, getQuery(), options, task, result); + count = getModel().countObjects(type, getQuery(), getOptionsToUse(), task, result); } catch (Exception ex) { result.recordFatalError("Couldn't count objects.", ex); LoggingUtils.logUnexpectedException(LOGGER, "Couldn't count objects", ex); diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/RepositoryObjectDataProvider.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/RepositoryObjectDataProvider.java index 08953c30034..3411a4fb5b7 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/RepositoryObjectDataProvider.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/RepositoryObjectDataProvider.java @@ -38,6 +38,7 @@ import com.evolveum.midpoint.xml.ns._public.common.common_3.ShadowType; import org.apache.commons.lang.Validate; import org.apache.wicket.Component; +import org.jetbrains.annotations.NotNull; import java.io.Serializable; import java.util.*; @@ -56,7 +57,7 @@ public class RepositoryObjectDataProvider private static final Trace LOGGER = TraceManager.getTrace(RepositoryObjectDataProvider.class); private Class type; - private Map resourceCache = new HashMap(); + private Map resourceCache = new HashMap<>(); public RepositoryObjectDataProvider(Component component, Class type) { super(component, true); @@ -78,12 +79,7 @@ public Iterator internalIterator(long first, long count) { } query.setPaging(paging); - //RAW and DEFAULT retrieve option selected - Collection> options = new ArrayList>(); - GetOperationOptions opt = GetOperationOptions.createRaw(); - opt.setRetrieve(RetrieveOption.DEFAULT); - options.add(SelectorOptions.create(ItemPath.EMPTY_PATH, opt)); - + Collection> options = getOptions(); List> list = getModel().searchObjects((Class) type, query, options, getPage().createSimpleTask(OPERATION_SEARCH_OBJECTS), result); for (PrismObject object : list) { @@ -101,6 +97,20 @@ public Iterator internalIterator(long first, long count) { return getAvailableData().iterator(); } + @NotNull + private Collection> getOptions() { + Collection> options = new ArrayList<>(); + GetOperationOptions opt = GetOperationOptions.createRaw(); + opt.setRetrieve(RetrieveOption.DEFAULT); + options.add(SelectorOptions.create(ItemPath.EMPTY_PATH, opt)); + return GetOperationOptions.merge(createDefaultOptions(), options); + } + + @Override + protected boolean checkOrderingSettings() { + return true; + } + private DebugObjectItem createItem(PrismObject object, OperationResult result) { DebugObjectItem item = DebugObjectItem.createDebugObjectItem(object); if (ShadowType.class.isAssignableFrom(object.getCompileTimeClass())) { @@ -166,16 +176,14 @@ protected int internalSize() { int count = 0; OperationResult result = new OperationResult(OPERATION_COUNT_OBJECTS); try { - count = getModel().countObjects(type, getQuery(), - SelectorOptions.createCollection(ItemPath.EMPTY_PATH, GetOperationOptions.createRaw()), + count = getModel().countObjects(type, getQuery(), getOptions(), getPage().createSimpleTask(OPERATION_COUNT_OBJECTS), result); } catch (Exception ex) { result.recordFatalError("Couldn't count objects.", ex); } finally { result.computeStatusIfUnknown(); } - - getPage().showResult(result, false); + getPage().showResult(result, false); LOGGER.trace("end::internalSize()"); return count; } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/SelectableBeanObjectDataProvider.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/SelectableBeanObjectDataProvider.java index 16a47095798..9bd2d0918a7 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/SelectableBeanObjectDataProvider.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/SelectableBeanObjectDataProvider.java @@ -127,7 +127,11 @@ private void preprocessSelectedDataInternal() { } } } - + + @Override + protected boolean checkOrderingSettings() { + return true; + } @Override public Iterator> internalIterator(long offset, long pageSize) { @@ -157,7 +161,7 @@ public Iterator> internalIterator(long offset, long pageSize) LOGGER.trace("Query {} with {}", type.getSimpleName(), query.debugDump()); } - if (ResourceType.class.equals(type) && (options == null || options.isEmpty())){ + if (ResourceType.class.equals(type) && (options == null || options.isEmpty())) { options = SelectorOptions.createCollection(GetOperationOptions.createNoFetch()); } Collection> currentOptions = options; @@ -174,6 +178,7 @@ public Iterator> internalIterator(long offset, long pageSize) (o) -> o.setDefinitionProcessing(FULL)); } } + currentOptions = GetOperationOptions.merge(currentOptions, getDistinctRelatedOptions()); List> list = (List)getModel().searchObjects(type, query, currentOptions, task, result); if (LOGGER.isTraceEnabled()) { @@ -209,7 +214,7 @@ protected Iterator> handleNotSuccessOrHandledErrorInIterator(O } public SelectableBean createDataObjectWrapper(O obj) { - SelectableBean selectable = new SelectableBean(obj); + SelectableBean selectable = new SelectableBean<>(obj); if (!WebComponentUtil.isSuccessOrHandledError(obj.getFetchResult())) { try { selectable.setResult(obj.getFetchResult()); @@ -233,10 +238,11 @@ protected int internalSize() { return Integer.MAX_VALUE; } int count = 0; - OperationResult result = new OperationResult(OPERATION_COUNT_OBJECTS); + Task task = getPage().createSimpleTask(OPERATION_COUNT_OBJECTS); + OperationResult result = task.getResult(); try { - Task task = getPage().createSimpleTask(OPERATION_COUNT_OBJECTS); - Integer counted = getModel().countObjects(type, getQuery(), options, task, result); + Collection> currentOptions = GetOperationOptions.merge(options, getDistinctRelatedOptions()); + Integer counted = getModel().countObjects(type, getQuery(), currentOptions, task, result); count = defaultIfNull(counted, 0); } catch (Exception ex) { result.recordFatalError("Couldn't count objects.", ex); @@ -244,8 +250,8 @@ protected int internalSize() { } finally { result.computeStatusIfUnknown(); } - - if (!WebComponentUtil.isSuccessOrHandledError(result)) { + + if (!WebComponentUtil.isSuccessOrHandledError(result) && !result.isNotApplicable()) { getPage().showResult(result); // Let us do nothing. The error will be shown on the page and a count of 0 will be used. // Redirecting to the error page does more harm than good (see also MID-4306). diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/SelectableDataTable.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/SelectableDataTable.java index 5ad162b119a..c7779144282 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/SelectableDataTable.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/SelectableDataTable.java @@ -44,7 +44,7 @@ public void component(Component component, IVisit objectIVisit) { @Override protected Item newRowItem(String id, int index, final IModel model) { - final Item rowItem = new SelectableRowItem(id, index, model); + final Item rowItem = new SelectableRowItem<>(id, index, model); rowItem.setOutputMarkupId(true); return rowItem; @@ -60,7 +60,7 @@ public SelectableRowItem(String id, int index, IModel model) { @Override protected Item> newCellItem(String id, int index, IModel> model) { Item item = super.newCellItem(id, index, model); - item.add(new AttributeModifier("style", "max-width: 250px; word-wrap: break-word;")); + item.add(new AttributeModifier("style", "word-wrap: break-word;")); return item; } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/TableHeadersToolbar.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/TableHeadersToolbar.java index eccfaa20276..6f38680a96b 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/TableHeadersToolbar.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/TableHeadersToolbar.java @@ -25,6 +25,7 @@ import org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable; import org.apache.wicket.markup.ComponentTag; import org.apache.wicket.markup.html.WebMarkupContainer; +import org.apache.wicket.markup.repeater.data.IDataProvider; import org.apache.wicket.util.string.Strings; /** @@ -38,6 +39,14 @@ public TableHeadersToolbar(DataTable table, ISortStateLocator stateLo @Override protected WebMarkupContainer newSortableHeader(String headerId, final String property, final ISortStateLocator locator) { + IDataProvider provider = getTable().getDataProvider(); + if (provider instanceof BaseSortableDataProvider) { + BaseSortableDataProvider sortableDataProvider = (BaseSortableDataProvider) provider; + if (sortableDataProvider.isOrderingDisabled()) { + return new WebMarkupContainer(headerId); + } + } + return new AjaxFallbackOrderByBorder(headerId, property, locator) { @Override diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/CheckBoxColumn.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/CheckBoxColumn.java index 841f32c632d..279f0a9acc0 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/CheckBoxColumn.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/CheckBoxColumn.java @@ -34,7 +34,7 @@ public class CheckBoxColumn extends AbstractColumn { private String propertyExpression; - private IModel enabled = new Model(true); + private IModel enabled = new Model<>(true); public CheckBoxColumn(IModel displayModel) { this(displayModel, Selectable.F_SELECTED); @@ -50,7 +50,7 @@ public void populateItem(final Item> cellItem, String componen final IModel rowModel) { IModel selected = getCheckBoxValueModel(rowModel); - CheckBoxPanel check = new CheckBoxPanel(componentId, selected, getEnabled()) { + IsolatedCheckBoxPanel check = new IsolatedCheckBoxPanel(componentId, selected, getEnabled(rowModel)) { @Override public void onUpdate(AjaxRequestTarget target) { @@ -67,7 +67,7 @@ public void onUpdate(AjaxRequestTarget target) { } protected IModel getCheckBoxValueModel(IModel rowModel){ - return new PropertyModel(rowModel, propertyExpression); + return new PropertyModel<>(rowModel, propertyExpression); } @Override @@ -75,7 +75,7 @@ public String getCssClass() { return "icon"; } - protected IModel getEnabled() { + protected IModel getEnabled(IModel rowModel) { return enabled; } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/CheckBoxHeaderColumn.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/CheckBoxHeaderColumn.java index 488597a430c..99ee356d73b 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/CheckBoxHeaderColumn.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/CheckBoxHeaderColumn.java @@ -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. @@ -41,8 +41,9 @@ * @author lazyman */ public class CheckBoxHeaderColumn extends CheckBoxColumn { + private static final long serialVersionUID = 1L; - private static final Trace LOGGER = TraceManager.getTrace(CheckBoxHeaderColumn.class); + private static final Trace LOGGER = TraceManager.getTrace(CheckBoxHeaderColumn.class); public CheckBoxHeaderColumn() { super(null); @@ -52,8 +53,8 @@ public CheckBoxHeaderColumn() { @Override public Component getHeader(final String componentId) { - final IModel model = new Model(false); - CheckBoxPanel panel = new CheckBoxPanel(componentId, model, getEnabled()) { + final IModel model = new Model<>(false); + IsolatedCheckBoxPanel panel = new IsolatedCheckBoxPanel(componentId, model, getEnabled(null)) { @Override public void onUpdate(AjaxRequestTarget target) { @@ -79,7 +80,7 @@ public boolean isVisible() { @Override public String getCssClass() { - return "icon"; + return "check"; } protected boolean isCheckboxVisible(){ @@ -116,7 +117,16 @@ protected void onUpdateHeader(AjaxRequestTarget target, boolean selected, DataTa } } - target.add(table.getBody()); + ComponentHierarchyIterator iterator = table.visitChildren(SelectableDataTable.SelectableRowItem.class); + + while (iterator.hasNext()) { + SelectableDataTable.SelectableRowItem row = (SelectableDataTable.SelectableRowItem) iterator.next(); + if (!row.getOutputMarkupId()) { + //we skip rows that doesn't have outputMarkupId set to true (it would fail) + continue; + } + target.add(row); + } } public boolean shouldBeHeaderSelected(DataTable table) { @@ -152,7 +162,7 @@ protected boolean isTableRowSelected(T object){ @Override protected void onUpdateRow(AjaxRequestTarget target, DataTable table, IModel rowModel) { //update header checkbox - CheckBoxPanel header = findCheckBoxColumnHeader(table); + IsolatedCheckBoxPanel header = findCheckBoxColumnHeader(table); if (header == null) { return; } @@ -161,7 +171,7 @@ protected void onUpdateRow(AjaxRequestTarget target, DataTable table, IModel target.add(header); } - public CheckBoxPanel findCheckBoxColumnHeader(DataTable table) { + public IsolatedCheckBoxPanel findCheckBoxColumnHeader(DataTable table) { WebMarkupContainer topToolbars = table.getTopToolbars(); ComponentHierarchyIterator iterator = topToolbars.visitChildren(TableHeadersToolbar.class); if (!iterator.hasNext()) { @@ -172,14 +182,14 @@ public CheckBoxPanel findCheckBoxColumnHeader(DataTable table) { // simple attempt to find checkbox which is header for our column // todo: this search will fail if there are more checkbox header columns (which is not supported now, // because Selectable.F_SELECTED is hardcoded all over the place... - iterator = toolbar.visitChildren(CheckBoxPanel.class); + iterator = toolbar.visitChildren(IsolatedCheckBoxPanel.class); while (iterator.hasNext()) { Component c = iterator.next(); if (!c.getOutputMarkupId()) { continue; } - return (CheckBoxPanel) c; + return (IsolatedCheckBoxPanel) c; } return null; diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/ColumnUtils.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/ColumnUtils.java index 4f82121daaf..32c7bafa0e5 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/ColumnUtils.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/ColumnUtils.java @@ -56,8 +56,8 @@ public static List> createColumns(List(createStringResource(column.getColumnName()), - column.getColumnValue()); + tableColumn = new PropertyColumn<>(createStringResource(column.getColumnName()), + column.getColumnValue()); } tableColumns.add(tableColumn); @@ -74,7 +74,7 @@ private static PropertyColumn createPropertyColumn(String name, S @Override public void populateItem(Item item, String componentId, IModel rowModel) { if (multivalue) { - IModel values = new PropertyModel(rowModel, expression); + IModel values = new PropertyModel<>(rowModel, expression); RepeatingView repeater = new RepeatingView(componentId); for (final Object task : values.getObject()) { repeater.add(new Label(repeater.newChildId(), task.toString())); @@ -159,7 +159,7 @@ public String getObject() { } private static IColumn, String> getDefaultIcons(){ - return new IconColumn>(createStringResource("userBrowserDialog.type")) { + return new IconColumn>(createIconColumnHeaderModel()) { @Override protected IModel createIconModel(final IModel> rowModel) { @@ -174,6 +174,19 @@ public String getObject() { }; } + + @Override + protected IModel createTitleModel(final IModel> rowModel) { + + return new AbstractReadOnlyModel() { + + @Override + public String getObject() { + T object = rowModel.getObject().getValue(); + return object.asPrismContainer().getDefinition().getTypeName().getLocalPart(); + } + }; + } }; } @@ -405,7 +418,7 @@ public static StringResourceModel createStringResource(String resourceKey, Objec } public static List, String>> getDefaultUserColumns() { - List, String>> columns = new ArrayList, String>>(); + List, String>> columns = new ArrayList<>(); List> columnsDefs = Arrays.asList( new ColumnTypeDto("UserType.givenName", UserType.F_GIVEN_NAME.getLocalPart(), @@ -425,7 +438,7 @@ public static List, String>> ge } public static List, String>> getDefaultTaskColumns() { - List, String>> columns = new ArrayList, String>>(); + List, String>> columns = new ArrayList<>(); columns.add( new AbstractColumn, String>(createStringResource("TaskType.kind")) { @@ -501,7 +514,7 @@ public void populateItem(Item>> cellItem, } public static List, String>> getDefaultRoleColumns() { - List, String>> columns = new ArrayList, String>>(); + List, String>> columns = new ArrayList<>(); columns.addAll((Collection)getDefaultAbstractRoleColumns(RoleType.COMPLEX_TYPE)); @@ -510,7 +523,7 @@ public static List, String>> ge } public static List, String>> getDefaultServiceColumns() { - List, String>> columns = new ArrayList, String>>(); + List, String>> columns = new ArrayList<>(); columns.addAll((Collection)getDefaultAbstractRoleColumns(ServiceType.COMPLEX_TYPE)); @@ -518,7 +531,7 @@ public static List, String>> ge } public static List, String>> getDefaultOrgColumns() { - List, String>> columns = new ArrayList, String>>(); + List, String>> columns = new ArrayList<>(); columns.addAll((Collection)getDefaultAbstractRoleColumns(OrgType.COMPLEX_TYPE)); @@ -549,7 +562,7 @@ private static List, String>> g } public static List, String>> getDefaultResourceColumns() { - List, String>> columns = new ArrayList, String>>(); + List, String>> columns = new ArrayList<>(); List> columnsDefs = Arrays.asList( new ColumnTypeDto("AbstractRoleType.description", null, diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/IconColumn.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/IconColumn.java index 029ca0bb6f6..cd994fa93fd 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/IconColumn.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/IconColumn.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2013 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. @@ -16,15 +16,12 @@ package com.evolveum.midpoint.web.component.data.column; -import org.apache.wicket.Component; 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.export.IExportableColumn; -import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.repeater.Item; import org.apache.wicket.model.IModel; import org.apache.wicket.model.Model; -import org.apache.wicket.model.PropertyModel; /** * @author lazyman diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/InlineMenuButtonColumn.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/InlineMenuButtonColumn.java index 25c2427bf76..43f61d76ac6 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/InlineMenuButtonColumn.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/InlineMenuButtonColumn.java @@ -144,7 +144,7 @@ public List load() { } if (rowModel.getObject() == null || !(rowModel.getObject() instanceof InlineMenuable)) { - return new ArrayList(); + return new ArrayList<>(); } for (InlineMenuItem item : ((InlineMenuable)rowModel.getObject()).getMenuItems()) { if (!(item.getAction() instanceof ColumnMenuAction)) { diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/InlineMenuColumn.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/InlineMenuColumn.java index 343bc799ff0..785a4fa0535 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/InlineMenuColumn.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/InlineMenuColumn.java @@ -50,12 +50,12 @@ private IModel> createMenuModel(final IModel rowModel) { @Override public List load() { if (!(rowModel.getObject() instanceof InlineMenuable)) { - return new ArrayList(); + return new ArrayList<>(); } T row = rowModel.getObject(); if (row.getMenuItems() == null) { - return new ArrayList(); + return new ArrayList<>(); } for (InlineMenuItem item : row.getMenuItems()) { diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/CheckBoxPanel.html b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/IsolatedCheckBoxPanel.html similarity index 100% rename from gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/CheckBoxPanel.html rename to gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/IsolatedCheckBoxPanel.html diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/CheckBoxPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/IsolatedCheckBoxPanel.java similarity index 70% rename from gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/CheckBoxPanel.java rename to gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/IsolatedCheckBoxPanel.java index cc83f4c45d4..72036ddae63 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/CheckBoxPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/IsolatedCheckBoxPanel.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2013 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. @@ -25,33 +25,41 @@ import org.apache.wicket.model.Model; /** + * Isolated checkbox - checkbox that is displayed as (visually) stand-alone component. + * This checkbox is not supposed to have any labels associated with it. + * + * For checkbox in forms see com.evolveum.midpoint.gui.api.component.form.CheckBoxPanel + * * @author lazyman */ -public class CheckBoxPanel extends Panel { +public class IsolatedCheckBoxPanel extends Panel { + private static final long serialVersionUID = 1L; - private static final String ID_CHECK = "check"; + private static final String ID_CHECK = "check"; - public CheckBoxPanel(String id, IModel model) { + public IsolatedCheckBoxPanel(String id, IModel model) { this(id, model, new Model<>(true)); } - public CheckBoxPanel(String id, IModel model, final IModel enabled) { + public IsolatedCheckBoxPanel(String id, IModel model, final IModel enabled) { super(id); AjaxCheckBox check = new AjaxCheckBox(ID_CHECK, model) { + private static final long serialVersionUID = 1L; @Override protected void onUpdate(AjaxRequestTarget target) { - CheckBoxPanel.this.onUpdate(target); + IsolatedCheckBoxPanel.this.onUpdate(target); } @Override protected void updateAjaxAttributes(AjaxRequestAttributes attributes) { - CheckBoxPanel.this.updateAjaxAttributes(attributes); + IsolatedCheckBoxPanel.this.updateAjaxAttributes(attributes); } }; check.setOutputMarkupId(true); check.add(new VisibleEnableBehaviour() { + private static final long serialVersionUID = 1L; @Override public boolean isEnabled() { diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/ObjectLinkColumn.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/ObjectLinkColumn.java index 970d5d08069..c60048a9ec8 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/ObjectLinkColumn.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/ObjectLinkColumn.java @@ -16,13 +16,11 @@ package com.evolveum.midpoint.web.component.data.column; -import com.evolveum.midpoint.web.page.admin.server.dto.TaskDto; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator; import org.apache.wicket.extensions.markup.html.repeater.data.table.export.IExportableColumn; import org.apache.wicket.markup.repeater.Item; import org.apache.wicket.model.IModel; -import org.apache.wicket.model.Model; import org.apache.wicket.model.PropertyModel; import com.evolveum.midpoint.xml.ns._public.common.common_3.FocusType; @@ -52,7 +50,7 @@ public void populateItem(Item> cellItem, String componentId, IModel superModel = createLinkModel(rowModel); final ObjectType targetObjectType = superModel.getObject(); - IModel nameModel = new PropertyModel(superModel, FocusType.F_NAME.getLocalPart() + ".orig"); + IModel nameModel = new PropertyModel<>(superModel, FocusType.F_NAME.getLocalPart() + ".orig"); cellItem.add(new LinkPanel(componentId, nameModel) { private static final long serialVersionUID = 1L; @@ -81,7 +79,7 @@ public void onClick(AjaxRequestTarget target, IModel rowModel, ObjectType tar @Override public IModel getDataModel(IModel rowModel) { IModel superModel = createLinkModel(rowModel); - return new PropertyModel(superModel, FocusType.F_NAME.getLocalPart() + ".orig"); + return new PropertyModel<>(superModel, FocusType.F_NAME.getLocalPart() + ".orig"); } } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/ObjectNameColumn.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/ObjectNameColumn.java index 6a212ab29a0..c32161415ba 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/ObjectNameColumn.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/ObjectNameColumn.java @@ -15,7 +15,6 @@ */ package com.evolveum.midpoint.web.component.data.column; -import org.apache.wicket.AttributeModifier; import org.apache.wicket.RestartResponseException; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator; diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/paging/NavigatorPageLink.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/paging/NavigatorPageLink.java index aecb1fa22c6..177bebc9adc 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/paging/NavigatorPageLink.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/paging/NavigatorPageLink.java @@ -14,7 +14,7 @@ public abstract class NavigatorPageLink extends AjaxLink { private final long pageNumber; public NavigatorPageLink(String id, long pageNumber) { - super(id, new Model(Long.toString(pageNumber + 1))); + super(id, new Model<>(Long.toString(pageNumber + 1))); this.pageNumber = pageNumber; } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/paging/NavigatorPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/paging/NavigatorPanel.java index cfabe0e7bb7..f6085f6d9df 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/paging/NavigatorPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/paging/NavigatorPanel.java @@ -16,7 +16,6 @@ package com.evolveum.midpoint.web.component.data.paging; -import com.evolveum.midpoint.web.component.AjaxButton; import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour; import org.apache.commons.lang.BooleanUtils; import org.apache.wicket.AttributeModifier; diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/dialog/ChooseFocusTypeDialogPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/dialog/ChooseFocusTypeDialogPanel.java index bff1ec78ee6..3da1f596c87 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/dialog/ChooseFocusTypeDialogPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/dialog/ChooseFocusTypeDialogPanel.java @@ -6,20 +6,15 @@ import org.apache.wicket.Component; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.markup.html.form.DropDownChoice; -import org.apache.wicket.markup.html.form.IChoiceRenderer; -import org.apache.wicket.model.IModel; import org.apache.wicket.model.Model; import org.apache.wicket.model.StringResourceModel; import com.evolveum.midpoint.gui.api.component.BasePanel; import com.evolveum.midpoint.gui.api.util.WebComponentUtil; import com.evolveum.midpoint.web.component.AjaxButton; -import com.evolveum.midpoint.web.component.input.QNameChoiceRenderer; import com.evolveum.midpoint.web.page.admin.configuration.component.EmptyOnChangeAjaxFormUpdatingBehavior; import com.evolveum.midpoint.xml.ns._public.common.common_3.UserType; -import java.util.List; - public class ChooseFocusTypeDialogPanel extends BasePanel implements Popupable{ private static final String ID_OBJECT_TYPE = "type"; @@ -31,8 +26,8 @@ public ChooseFocusTypeDialogPanel(String id) { } private void initLayout(){ - DropDownChoice type = new DropDownChoice(ID_OBJECT_TYPE, Model.of(UserType.COMPLEX_TYPE), - WebComponentUtil.createFocusTypeList(), new QNameObjectTypeChoiceRenderer()); + DropDownChoice type = new DropDownChoice<>(ID_OBJECT_TYPE, Model.of(UserType.COMPLEX_TYPE), + WebComponentUtil.createFocusTypeList(), new QNameObjectTypeChoiceRenderer()); type.add(new EmptyOnChangeAjaxFormUpdatingBehavior()); type.setOutputMarkupId(true); add(type); diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/dialog/ConfirmationPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/dialog/ConfirmationPanel.java index 17d33160c26..c0e5fa46095 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/dialog/ConfirmationPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/dialog/ConfirmationPanel.java @@ -53,7 +53,7 @@ public ConfirmationPanel(String id, IModel message) { super(id); if (message == null) { - message = new Model(); + message = new Model<>(); } initLayout(message); } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/dialog/DeleteAllPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/dialog/DeleteAllPanel.java index d45c091c722..b02b2a05ef6 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/dialog/DeleteAllPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/dialog/DeleteAllPanel.java @@ -3,7 +3,6 @@ import com.evolveum.midpoint.gui.api.model.LoadableModel; import com.evolveum.midpoint.gui.api.page.PageBase; import com.evolveum.midpoint.prism.path.ItemPath; -import com.evolveum.midpoint.prism.query.EqualFilter; import com.evolveum.midpoint.prism.query.NotFilter; import com.evolveum.midpoint.prism.query.ObjectFilter; import com.evolveum.midpoint.prism.query.ObjectQuery; @@ -85,7 +84,7 @@ private void updateLabelModel(AjaxRequestTarget target, String labelID){ private void initLayout(WebMarkupContainer content){ - CheckBox deleteUsersCheckbox = new CheckBox(ID_CHB_USERS, new PropertyModel(model, DeleteAllDto.F_USERS)); + CheckBox deleteUsersCheckbox = new CheckBox(ID_CHB_USERS, new PropertyModel<>(model, DeleteAllDto.F_USERS)); deleteUsersCheckbox.add(new OnChangeAjaxBehavior() { @Override @@ -95,7 +94,7 @@ protected void onUpdate(AjaxRequestTarget target) { }); content.add(deleteUsersCheckbox); - CheckBox deleteOrgsCheckbox = new CheckBox(ID_CHB_ORG, new PropertyModel(model, DeleteAllDto.F_ORGS)); + CheckBox deleteOrgsCheckbox = new CheckBox(ID_CHB_ORG, new PropertyModel<>(model, DeleteAllDto.F_ORGS)); deleteOrgsCheckbox.add(new OnChangeAjaxBehavior() { @Override @@ -106,7 +105,7 @@ protected void onUpdate(AjaxRequestTarget target) { content.add(deleteOrgsCheckbox); CheckBox deleteAccountShadowsCheckbox = new CheckBox(ID_CHB_ACCOUNT_SHADOW, - new PropertyModel(model, DeleteAllDto.F_ACC_SHADOW)); + new PropertyModel<>(model, DeleteAllDto.F_ACC_SHADOW)); deleteAccountShadowsCheckbox.add(new OnChangeAjaxBehavior() { @Override @@ -117,7 +116,7 @@ protected void onUpdate(AjaxRequestTarget target) { content.add(deleteAccountShadowsCheckbox); CheckBox deleteNonAccountShadowsCheckbox = new CheckBox(ID_CHB_NON_ACCOUNT_SHADOW, - new PropertyModel(model, DeleteAllDto.F_NON_ACC_SHADOW)); + new PropertyModel<>(model, DeleteAllDto.F_NON_ACC_SHADOW)); deleteNonAccountShadowsCheckbox.add(new OnChangeAjaxBehavior() { @Override diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/dialog/MainPopupDialog.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/dialog/MainPopupDialog.java index 8c029ef538a..98149fdcf57 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/dialog/MainPopupDialog.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/dialog/MainPopupDialog.java @@ -78,7 +78,7 @@ protected void onBeforeRender(){ return; } - setBody(new Label(ID_MAIN_POPUP_BODY, new Model("Not initialized"))); + setBody(new Label(ID_MAIN_POPUP_BODY, new Model<>("Not initialized"))); initialized = true; } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/form/ValueChoosePanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/form/ValueChoosePanel.java index 2e5b7b9b2c2..ee2f2c0924e 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/form/ValueChoosePanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/form/ValueChoosePanel.java @@ -16,7 +16,6 @@ package com.evolveum.midpoint.web.component.form; import java.util.ArrayList; -import java.util.Collection; import java.util.List; import javax.xml.namespace.QName; @@ -69,9 +68,6 @@ public class ValueChoosePanel extends BasePanel { private static final String ID_TEXT = "text"; private static final String ID_FEEDBACK = "feedback"; private static final String ID_EDIT = "edit"; - - protected static final String MODAL_ID_OBJECT_SELECTION_POPUP = "objectSelectionPopup"; - public ValueChoosePanel(String id, IModel value) { super(id, value); @@ -86,7 +82,7 @@ protected void onInitialize() { textWrapper.setOutputMarkupId(true); - TextField text = new TextField(ID_TEXT, createTextModel()); + TextField text = new TextField<>(ID_TEXT, createTextModel()); text.add(new AjaxFormComponentUpdatingBehavior("blur") { private static final long serialVersionUID = 1L; @@ -216,7 +212,7 @@ protected void editValuePerformed(AjaxRequestTarget target) { if (CollectionUtils.isEmpty(supportedTypes)){ supportedTypes = WebComponentUtil.createObjectTypeList(); } - Class defaultType = (Class) WebComponentUtil.qnameToClass(getPageBase().getPrismContext(), supportedTypes.iterator().next()); + Class defaultType = getDefaultType(supportedTypes); ObjectBrowserPanel objectBrowserPanel = new ObjectBrowserPanel( getPageBase().getMainPopupBodyId(), defaultType, supportedTypes, false, getPageBase(), filter) { @@ -237,7 +233,11 @@ protected void onSelectPerformed(AjaxRequestTarget target, O object) { public List getSupportedTypes() { return WebComponentUtil.createObjectTypeList(); } - + + protected Class getDefaultType(List supportedTypes){ + return (Class) WebComponentUtil.qnameToClass(getPageBase().getPrismContext(), supportedTypes.iterator().next()); + } + /* * TODO - this method contains check, if chosen object already is not in diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/form/multivalue/GenericMultiValueLabelEditPanel.html b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/form/multivalue/GenericMultiValueLabelEditPanel.html index 28f9d97c70e..613cecae59d 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/form/multivalue/GenericMultiValueLabelEditPanel.html +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/form/multivalue/GenericMultiValueLabelEditPanel.html @@ -20,7 +20,7 @@ -