diff --git a/pom.xml b/pom.xml index d4d18d7054..cfb60bf9d2 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ 5.22.0 42.2.5 5.1.47 - 2.3.0 + 2.0.1 3.5.2 4.5.0.Final 3.3.2.Final diff --git a/src/main/java/org/alfresco/repo/domain/dialect/DialectFactory.java b/src/main/java/org/alfresco/repo/domain/dialect/DialectFactory.java index 0fadb3559a..bfb746b98b 100644 --- a/src/main/java/org/alfresco/repo/domain/dialect/DialectFactory.java +++ b/src/main/java/org/alfresco/repo/domain/dialect/DialectFactory.java @@ -158,5 +158,8 @@ public class DialectFactory MAPPERS.put( "Microsoft SQL Server Database", new VersionInsensitiveMapper( "org.alfresco.repo.domain.dialect.SQLServerDialect" ) ); MAPPERS.put( "Microsoft SQL Server", new VersionInsensitiveMapper( "org.alfresco.repo.domain.dialect.SQLServerDialect" ) ); MAPPERS.put( "Oracle", new VersionInsensitiveMapper( "org.alfresco.repo.domain.dialect.Oracle9Dialect" ) ); + + // MariaDB is distinguished by driver name + MAPPERS.put( "MariaDB connector/J", new VersionInsensitiveMapper("org.alfresco.repo.domain.dialect.MariaDBDialect")); } } diff --git a/src/main/java/org/alfresco/repo/domain/dialect/MariaDBDialect.java b/src/main/java/org/alfresco/repo/domain/dialect/MariaDBDialect.java new file mode 100644 index 0000000000..4ffa61b5c6 --- /dev/null +++ b/src/main/java/org/alfresco/repo/domain/dialect/MariaDBDialect.java @@ -0,0 +1,38 @@ +/* + * #%L + * Alfresco Repository + * %% + * Copyright (C) 2005 - 2016 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + * #L% + */ +package org.alfresco.repo.domain.dialect; + +/** + * @author eknizat + * @since 6.0 + */ +public class MariaDBDialect extends MySQLInnoDBDialect +{ + public MariaDBDialect() + { + super(); + } +} diff --git a/src/main/resources/alfresco/dbscripts/create/org.alfresco.repo.domain.dialect.MariaDBDialect/Schema-Reference-ACT.xml b/src/main/resources/alfresco/dbscripts/create/org.alfresco.repo.domain.dialect.MariaDBDialect/Schema-Reference-ACT.xml new file mode 100644 index 0000000000..a7bbc3293e --- /dev/null +++ b/src/main/resources/alfresco/dbscripts/create/org.alfresco.repo.domain.dialect.MariaDBDialect/Schema-Reference-ACT.xml @@ -0,0 +1,2148 @@ + + + + + + .* + + + + + + + + + varchar(64) + false + false + + + int + true + false + + + varchar(255) + true + false + + + varchar(64) + true + false + + + longblob + true + false + + + tinyint + true + false + + + + + ID_ + + + + + DEPLOYMENT_ID_ + act_re_deployment + ID_ + + + + + + ID_ + + + + + DEPLOYMENT_ID_ + + + +
+ + + + varchar(64) + false + false + + + varchar(300) + true + false + + + int + true + false + + + + + NAME_ + + + + + + + NAME_ + + + +
+ + + + varchar(64) + false + false + + + varchar(64) + false + false + + + varchar(64) + false + false + + + varchar(64) + false + false + + + varchar(255) + false + false + + + varchar(64) + true + false + + + varchar(64) + true + false + + + varchar(255) + true + false + + + varchar(255) + false + false + + + varchar(255) + true + false + + + datetime + false + false + + + datetime + true + false + + + bigint + true + false + + + varchar(255) + true + false + + + + + ID_ + + + + + + + ID_ + + + + + START_TIME_ + + + + + END_TIME_ + + + + + PROC_INST_ID_ + ACT_ID_ + + + + + EXECUTION_ID_ + ACT_ID_ + + + +
+ + + + varchar(64) + false + false + + + int + true + false + + + varchar(255) + true + false + + + varchar(255) + true + false + + + varchar(4000) + true + false + + + varchar(255) + true + false + + + varchar(64) + true + false + + + varchar(64) + true + false + + + varchar(4000) + true + false + + + varchar(64) + true + false + + + datetime + true + false + + + + + ID_ + + + + + + + ID_ + + + +
+ + + + varchar(64) + false + false + + + varchar(255) + true + false + + + datetime + false + false + + + varchar(255) + true + false + + + varchar(64) + true + false + + + varchar(64) + true + false + + + varchar(255) + true + false + + + varchar(4000) + true + false + + + longblob + true + false + + + + + ID_ + + + + + + + ID_ + + + +
+ + + + varchar(64) + false + false + + + varchar(255) + false + false + + + varchar(64) + true + false + + + varchar(64) + true + false + + + varchar(64) + true + false + + + varchar(64) + true + false + + + varchar(255) + false + false + + + varchar(255) + true + false + + + int + true + false + + + datetime + false + false + + + varchar(64) + true + false + + + double + true + false + + + bigint + true + false + + + varchar(4000) + true + false + + + varchar(4000) + true + false + + + + + ID_ + + + + + + + ID_ + + + + + PROC_INST_ID_ + + + + + ACT_INST_ID_ + + + + + TIME_ + + + + + NAME_ + + + + + TASK_ID_ + + + +
+ + + + varchar(64) + false + false + + + varchar(255) + true + false + + + varchar(255) + true + false + + + varchar(255) + true + false + + + varchar(64) + true + false + + + varchar(64) + true + false + + + + + ID_ + + + + + + + ID_ + + + + + USER_ID_ + + + + + TASK_ID_ + + + + + PROC_INST_ID_ + + + +
+ + + + varchar(64) + false + false + + + varchar(64) + false + false + + + varchar(255) + true + false + + + varchar(64) + false + false + + + datetime + false + false + + + datetime + true + false + + + bigint + true + false + + + varchar(255) + true + false + + + varchar(255) + true + false + + + varchar(255) + true + false + + + varchar(64) + true + false + + + varchar(4000) + true + false + + + varchar(255) + true + false + + + varchar(255) + true + false + + + + + ID_ + + + + + + + ID_ + + + + + PROC_INST_ID_ + + + + + END_TIME_ + + + + + BUSINESS_KEY_ + + + +
+ + + + varchar(64) + false + false + + + varchar(64) + true + false + + + varchar(255) + true + false + + + varchar(64) + true + false + + + varchar(64) + true + false + + + varchar(255) + true + false + + + varchar(64) + true + false + + + varchar(4000) + true + false + + + varchar(255) + true + false + + + varchar(255) + true + false + + + datetime + false + false + + + datetime + true + false + + + datetime + true + false + + + bigint + true + false + + + varchar(4000) + true + false + + + int + true + false + + + datetime + true + false + + + varchar(255) + true + false + + + varchar(255) + true + false + + + varchar(255) + true + false + + + + + ID_ + + + + + + + ID_ + + + + + PROC_INST_ID_ + + + +
+ + + + varchar(64) + false + false + + + varchar(64) + true + false + + + varchar(64) + true + false + + + varchar(64) + true + false + + + varchar(255) + false + false + + + varchar(100) + true + false + + + int + true + false + + + varchar(64) + true + false + + + double + true + false + + + bigint + true + false + + + varchar(4000) + true + false + + + varchar(4000) + true + false + + + datetime + true + false + + + datetime + true + false + + + + + ID_ + + + + + + + ID_ + + + + + PROC_INST_ID_ + + + + + NAME_ + VAR_TYPE_ + + + + + TASK_ID_ + + + +
+ + + + varchar(64) + false + false + + + int + true + false + + + varchar(255) + true + false + + + varchar(255) + true + false + + + + + ID_ + + + + + + + ID_ + + + +
+ + + + varchar(64) + false + false + + + int + true + false + + + varchar(64) + true + false + + + varchar(64) + true + false + + + varchar(255) + true + false + + + varchar(255) + true + false + + + longblob + true + false + + + varchar(255) + true + false + + + + + ID_ + + + + + + + ID_ + + + +
+ + + + varchar(64) + false + false + + + varchar(64) + false + false + + + + + GROUP_ID_ + USER_ID_ + + + + + USER_ID_ + act_id_user + ID_ + + + GROUP_ID_ + act_id_group + ID_ + + + + + + USER_ID_ + GROUP_ID_ + + + + + GROUP_ID_ + + + +
+ + + + varchar(64) + false + false + + + int + true + false + + + varchar(255) + true + false + + + varchar(255) + true + false + + + varchar(255) + true + false + + + varchar(255) + true + false + + + varchar(64) + true + false + + + + + ID_ + + + + + + + ID_ + + + +
+ + + + varchar(64) + false + false + + + varchar(255) + true + false + + + varchar(255) + true + false + + + varchar(255) + true + false + + + timestamp + true + false + + + + + ID_ + + + + + + + ID_ + + + +
+ + + + varchar(64) + false + false + + + int + true + false + + + varchar(255) + true + false + + + varchar(255) + true + false + + + varchar(255) + true + false + + + timestamp + true + false + + + timestamp + true + false + + + int + true + false + + + varchar(4000) + true + false + + + varchar(64) + true + false + + + varchar(64) + true + false + + + varchar(64) + true + false + + + varchar(255) + true + false + + + + + ID_ + + + + + DEPLOYMENT_ID_ + act_re_deployment + ID_ + + + EDITOR_SOURCE_VALUE_ID_ + act_ge_bytearray + ID_ + + + EDITOR_SOURCE_EXTRA_VALUE_ID_ + act_ge_bytearray + ID_ + + + + + + ID_ + + + + + EDITOR_SOURCE_VALUE_ID_ + + + + + EDITOR_SOURCE_EXTRA_VALUE_ID_ + + + + + DEPLOYMENT_ID_ + + + +
+ + + + varchar(64) + false + false + + + int + true + false + + + varchar(255) + true + false + + + varchar(255) + true + false + + + varchar(255) + false + false + + + int + false + false + + + varchar(64) + true + false + + + varchar(4000) + true + false + + + varchar(4000) + true + false + + + varchar(4000) + true + false + + + tinyint + true + false + + + int + true + false + + + varchar(255) + true + false + + + tinyint + true + false + + + + + ID_ + + + + + + + ID_ + + + + + KEY_ + VERSION_ + TENANT_ID_ + + + +
+ + + + varchar(64) + false + false + + + int + true + false + + + varchar(255) + false + false + + + varchar(255) + true + false + + + varchar(64) + true + false + + + varchar(64) + true + false + + + varchar(64) + true + false + + + varchar(255) + true + false + + + timestamp + false + false + + + varchar(64) + true + false + + + varchar(255) + true + false + + + + + ID_ + + + + + EXECUTION_ID_ + act_ru_execution + ID_ + + + + + + ID_ + + + + + CONFIGURATION_ + + + + + EXECUTION_ID_ + + + +
+ + + + varchar(64) + false + false + + + int + true + false + + + varchar(64) + true + false + + + varchar(255) + true + false + + + varchar(64) + true + false + + + varchar(64) + true + false + + + varchar(64) + true + false + + + varchar(255) + true + false + + + tinyint + true + false + + + tinyint + true + false + + + tinyint + true + false + + + tinyint + true + false + + + int + true + false + + + int + true + false + + + varchar(255) + true + false + + + varchar(255) + true + false + + + timestamp + true + false + + + + + ID_ + + + + + PROC_DEF_ID_ + act_re_procdef + ID_ + + + PARENT_ID_ + act_ru_execution + ID_ + + + PROC_INST_ID_ + act_ru_execution + ID_ + + + SUPER_EXEC_ + act_ru_execution + ID_ + + + + + + ID_ + + + + + BUSINESS_KEY_ + + + + + PROC_INST_ID_ + + + + + PARENT_ID_ + + + + + SUPER_EXEC_ + + + + + PROC_DEF_ID_ + + + +
+ + + + varchar(64) + false + false + + + int + true + false + + + varchar(255) + true + false + + + varchar(255) + true + false + + + varchar(255) + true + false + + + varchar(64) + true + false + + + varchar(64) + true + false + + + varchar(64) + true + false + + + + + ID_ + + + + + PROC_INST_ID_ + act_ru_execution + ID_ + + + PROC_DEF_ID_ + act_re_procdef + ID_ + + + TASK_ID_ + act_ru_task + ID_ + + + + + + ID_ + + + + + USER_ID_ + + + + + GROUP_ID_ + + + + + PROC_DEF_ID_ + + + + + TASK_ID_ + + + + + PROC_INST_ID_ + + + +
+ + + + varchar(64) + false + false + + + int + true + false + + + varchar(255) + false + false + + + timestamp + true + false + + + varchar(255) + true + false + + + bit + true + false + + + varchar(64) + true + false + + + varchar(64) + true + false + + + varchar(64) + true + false + + + int + true + false + + + varchar(64) + true + false + + + varchar(4000) + true + false + + + timestamp + true + false + + + varchar(255) + true + false + + + varchar(255) + true + false + + + varchar(4000) + true + false + + + varchar(255) + true + false + + + + + ID_ + + + + + EXCEPTION_STACK_ID_ + act_ge_bytearray + ID_ + + + + + + ID_ + + + + + EXCEPTION_STACK_ID_ + + + +
+ + + + varchar(64) + false + false + + + int + true + false + + + varchar(64) + true + false + + + varchar(64) + true + false + + + varchar(64) + true + false + + + varchar(255) + true + false + + + varchar(64) + true + false + + + varchar(4000) + true + false + + + varchar(255) + true + false + + + varchar(255) + true + false + + + varchar(255) + true + false + + + varchar(64) + true + false + + + int + true + false + + + timestamp + true + false + + + datetime + true + false + + + varchar(255) + true + false + + + int + true + false + + + varchar(255) + true + false + + + varchar(255) + true + false + + + + + ID_ + + + + + PROC_DEF_ID_ + act_re_procdef + ID_ + + + EXECUTION_ID_ + act_ru_execution + ID_ + + + PROC_INST_ID_ + act_ru_execution + ID_ + + + + + + ID_ + + + + + CREATE_TIME_ + + + + + EXECUTION_ID_ + + + + + PROC_INST_ID_ + + + + + PROC_DEF_ID_ + + + +
+ + + + varchar(64) + false + false + + + int + true + false + + + varchar(255) + false + false + + + varchar(255) + false + false + + + varchar(64) + true + false + + + varchar(64) + true + false + + + varchar(64) + true + false + + + varchar(64) + true + false + + + double + true + false + + + bigint + true + false + + + varchar(4000) + true + false + + + varchar(4000) + true + false + + + + + ID_ + + + + + BYTEARRAY_ID_ + act_ge_bytearray + ID_ + + + EXECUTION_ID_ + act_ru_execution + ID_ + + + PROC_INST_ID_ + act_ru_execution + ID_ + + + + + + ID_ + + + + + TASK_ID_ + + + + + EXECUTION_ID_ + + + + + PROC_INST_ID_ + + + + + BYTEARRAY_ID_ + + + +
+ + + + bigint + false + true + + + varchar(64) + true + false + + + varchar(64) + true + false + + + varchar(64) + true + false + + + varchar(64) + true + false + + + varchar(64) + true + false + + + timestamp + false + false + + + varchar(255) + true + false + + + longblob + true + false + + + varchar(255) + true + false + + + timestamp + true + false + + + tinyint + true + false + + + + + LOG_NR_ + + + + + + + LOG_NR_ + + + +
+ + + + + + varchar(64) + false + false + + + varchar(64) + false + false + + + int + true + false + + + varchar(64) + true + false + + + + + ID_ + + + + + INFO_JSON_ID_ + ACT_GE_BYTEARRAY + ID_ + + + PROC_DEF_ID_ + ACT_RE_PROCDEF + ID_ + + + + + + ID_ + + + + + PROC_DEF_ID_ + + + + + PROC_DEF_ID_ + + + + + INFO_JSON_ID_ + + + +
+
+
diff --git a/src/main/resources/alfresco/dbscripts/create/org.alfresco.repo.domain.dialect.MariaDBDialect/Schema-Reference-ALF.xml b/src/main/resources/alfresco/dbscripts/create/org.alfresco.repo.domain.dialect.MariaDBDialect/Schema-Reference-ALF.xml new file mode 100644 index 0000000000..f7537c5411 --- /dev/null +++ b/src/main/resources/alfresco/dbscripts/create/org.alfresco.repo.domain.dialect.MariaDBDialect/Schema-Reference-ALF.xml @@ -0,0 +1,2976 @@ + + + + + + .* + + + + + + + + + bigint + false + true + + + bigint + false + false + + + bigint + false + false + + + bigint + false + false + + + bit + false + false + + + int + false + false + + + bigint + true + false + + + + + id + + + + + authority_id + alf_authority + id + + + context_id + alf_ace_context + id + + + permission_id + alf_permission + id + + + + + + id + + + + + permission_id + authority_id + allowed + applies + + + + + context_id + + + + + permission_id + + + + + authority_id + + + + +
+ + + + bigint + false + true + + + bigint + false + false + + + varchar(36) + false + false + + + bit + false + false + + + bigint + false + false + + + bit + false + false + + + bigint + true + false + + + int + false + false + + + bigint + true + false + + + bit + false + false + + + bit + false + false + + + bigint + true + false + + + + + id + + + + + acl_change_set + alf_acl_change_set + id + + + + + + id + + + + + acl_id + latest + acl_version + + + + + inherits + inherits_from + + + + + acl_change_set + + + +
+ + + + bigint + false + true + + + bigint + false + false + + + text + true + false + + + text + true + false + + + text + true + false + + + + + id + + + + + + + id + + + +
+ + + + bigint + false + true + + + bigint + true + false + + + + + id + + + + + + + id + + + + + commit_time_ms + + + +
+ + + + bigint + false + true + + + bigint + false + false + + + bigint + false + false + + + bigint + false + false + + + int + false + false + + + + + id + + + + + ace_id + alf_access_control_entry + id + + + acl_id + alf_access_control_list + id + + + + + + id + + + + + acl_id + ace_id + pos + + + + + acl_id + + + + + ace_id + + + +
+ + + + bigint + false + true + + + bigint + true + false + + + datetime + false + false + + + text + true + false + + + varchar(255) + true + false + + + varchar(255) + false + false + + + varchar(255) + true + false + + + varchar(36) + true + false + + + varchar(255) + false + false + + + datetime + false + false + + + + + id + + + + + + + id + + + + + post_date + + + + + post_user_id + + + + + feed_user_id + + + + + site_network + + + +
+ + + + bigint + false + true + + + varchar(255) + false + false + + + varchar(255) + true + false + + + varchar(36) + true + false + + + datetime + false + false + + + + + id + + + + + + + id + + + + + feed_user_id + + + +
+ + + + bigint + false + true + + + datetime + false + false + + + varchar(10) + false + false + + + text + false + false + + + varchar(255) + false + false + + + int + false + false + + + varchar(255) + true + false + + + varchar(36) + true + false + + + varchar(255) + false + false + + + datetime + false + false + + + + + sequence_id + + + + + + + sequence_id + + + + + job_task_node + + + + + status + + + +
+ + + + varchar(64) + false + false + + + text + true + false + + + int + true + false + + + int + true + false + + + int + true + false + + + int + true + false + + + datetime + true + false + + + varchar(64) + true + false + + + bit + true + false + + + bit + true + false + + + text + true + false + + + + + id + + + + + + + id + + + +
+ + + + bigint + false + true + + + smallint + false + false + + + bigint + false + false + + + bigint + false + false + + + bigint + false + false + + + + + id + + + + + app_name_id + alf_prop_value + id + + + audit_model_id + alf_audit_model + id + + + disabled_paths_id + alf_prop_root + id + + + + + + id + + + + + app_name_id + + + + + audit_model_id + + + + + disabled_paths_id + + + +
+ + + + bigint + false + true + + + bigint + false + false + + + bigint + false + false + + + bigint + true + false + + + bigint + true + false + + + + + id + + + + + audit_app_id + alf_audit_app + id + + + audit_user_id + alf_prop_value + id + + + audit_values_id + alf_prop_root + id + + + + + + id + + + + + audit_app_id + + + + + audit_time + + + + + audit_user_id + + + + + audit_values_id + + + +
+ + + + bigint + false + true + + + bigint + false + false + + + bigint + false + false + + + + + id + + + + + content_data_id + alf_content_data + id + + + + + + id + + + + + content_crc + + + + + content_data_id + + + +
+ + + + bigint + false + true + + + varchar(100) + false + false + + + bit + false + false + + + bit + false + false + + + blob + false + false + + + varchar(10) + false + false + + + + + id + + + + + + + id + + + + + username + authorized + + + + + deleted + + + + + authaction + + + +
+ + + + bigint + false + true + + + bigint + false + false + + + varchar(100) + true + false + + + bigint + true + false + + + + + id + + + + + + + id + + + + + authority + crc + + + + + authority + + + +
+ + + + bigint + false + true + + + bigint + false + false + + + bigint + false + false + + + bigint + false + false + + + + + id + + + + + auth_id + alf_authority + id + + + alias_id + alf_authority + id + + + + + + id + + + + + auth_id + alias_id + + + + + alias_id + + + + + auth_id + + + +
+ + + + bigint + false + true + + + bigint + false + false + + + bigint + false + false + + + bigint + false + false + + + bigint + false + false + + + varchar(50) + false + false + + + bigint + false + false + + + bigint + false + false + + + varchar(255) + false + false + + + bigint + false + false + + + bit + true + false + + + int + true + false + + + + + id + + + + + child_node_id + alf_node + id + + + parent_node_id + alf_node + id + + + qname_ns_id + alf_namespace + id + + + type_qname_id + alf_qname + id + + + + + + id + + + + + parent_node_id + type_qname_id + child_node_name_crc + child_node_name + + + + + parent_node_id + assoc_index + id + + + + + child_node_id + + + + + type_qname_id + + + + + qname_ns_id + + + + + qname_crc + type_qname_id + parent_node_id + + + + + parent_node_id + is_primary + child_node_id + + + +
+ + + + bigint + false + true + + + bigint + false + false + + + bigint + true + false + + + bigint + true + false + + + bigint + true + false + + + bigint + true + false + + + + + id + + + + + content_url_id + alf_content_url + id + + + content_mimetype_id + alf_mimetype + id + + + content_encoding_id + alf_encoding + id + + + content_locale_id + alf_locale + id + + + + + + id + + + + + content_url_id + + + + + content_mimetype_id + + + + + content_encoding_id + + + + + content_locale_id + + + +
+ + + + bigint + false + true + + + varchar(255) + false + false + + + varchar(12) + false + false + + + bigint + false + false + + + bigint + false + false + + + bigint + true + false + + + + + id + + + + + + + id + + + + + content_url_short + content_url_crc + + + + + orphan_time + + + + + content_size + + + +
+ + + + bigint + false + true + + + bigint + false + false + + + varchar(10) + false + false + + + int + false + false + + + blob + false + false + + + varchar(20) + false + false + + + varchar(15) + false + false + + + bigint + true + false + + + + + id + + + + + content_url_id + alf_content_url + id + + + + + + id + + + + + content_url_id + + + + + master_key_alias + + + +
+ + + + bigint + false + true + + + bigint + false + false + + + varchar(100) + false + false + + + + + id + + + + + + + id + + + + + encoding_str + + + +
+ + + + bigint + false + true + + + bigint + false + false + + + varchar(20) + false + false + + + + + id + + + + + + + id + + + + + locale_str + + + +
+ + + + bigint + false + true + + + bigint + false + false + + + bigint + false + false + + + bigint + false + false + + + varchar(36) + false + false + + + bigint + false + false + + + bigint + false + false + + + + + id + + + + + shared_resource_id + alf_lock_resource + id + + + excl_resource_id + alf_lock_resource + id + + + + + + id + + + + + shared_resource_id + excl_resource_id + + + + + excl_resource_id + + + +
+ + + + bigint + false + true + + + bigint + false + false + + + bigint + false + false + + + varchar(255) + false + false + + + + + id + + + + + qname_ns_id + alf_namespace + id + + + + + + id + + + + + qname_ns_id + qname_localname + + + +
+ + + + bigint + false + true + + + bigint + false + false + + + varchar(100) + false + false + + + + + id + + + + + + + id + + + + + mimetype_str + + + +
+ + + + bigint + false + true + + + bigint + false + false + + + varchar(100) + false + false + + + + + id + + + + + + + id + + + + + uri + + + +
+ + + + bigint + false + true + + + bigint + false + false + + + bigint + false + false + + + varchar(36) + false + false + + + bigint + false + false + + + bigint + false + false + + + bigint + false + false + + + bigint + true + false + + + varchar(255) + true + false + + + varchar(30) + true + false + + + varchar(255) + true + false + + + varchar(30) + true + false + + + varchar(30) + true + false + + + + + id + + + + + acl_id + alf_access_control_list + id + + + store_id + alf_store + id + + + type_qname_id + alf_qname + id + + + transaction_id + alf_transaction + id + + + locale_id + alf_locale + id + + + + + + id + + + + + store_id + uuid + + + + + acl_id + + + + + store_id + + + + + type_qname_id + store_id + id + + + + + locale_id + + + + + transaction_id + type_qname_id + + + + + store_id + type_qname_id + + + + + audit_creator + store_id + type_qname_id + + + + + audit_created + store_id + type_qname_id + + + + + audit_modifier + store_id + type_qname_id + + + + + audit_modified + store_id + type_qname_id + + + +
+ + + + bigint + false + false + + + bigint + false + false + + + + + node_id + qname_id + + + + + node_id + alf_node + id + + + qname_id + alf_qname + id + + + + + + node_id + qname_id + + + + + node_id + + + + + qname_id + + + +
+ + + + bigint + false + true + + + bigint + false + false + + + bigint + false + false + + + bigint + false + false + + + bigint + false + false + + + bigint + false + false + + + + + id + + + + + source_node_id + alf_node + id + + + target_node_id + alf_node + id + + + type_qname_id + alf_qname + id + + + + + + id + + + + + source_node_id + target_node_id + type_qname_id + + + + + source_node_id + type_qname_id + assoc_index + + + + + target_node_id + type_qname_id + + + + + type_qname_id + + + +
+ + + + bigint + false + false + + + int + false + false + + + int + false + false + + + bit + true + false + + + bigint + true + false + + + float + true + false + + + double + true + false + + + text + true + false + + + blob + true + false + + + bigint + false + false + + + int + false + false + + + bigint + false + false + + + + + list_index + locale_id + node_id + qname_id + + + + + locale_id + alf_locale + id + + + node_id + alf_node + id + + + qname_id + alf_qname + id + + + + + + + node_id + qname_id + list_index + locale_id + + + + + + node_id + + + + + qname_id + + + + + locale_id + + + + + qname_id + string_value + + + + + qname_id + long_value + + + + + qname_id + boolean_value + + + + + qname_id + double_value + + + + + qname_id + float_value + + + +
+ + + + bigint + false + true + + + bigint + false + false + + + bigint + false + false + + + varchar(100) + false + false + + + + + id + + + + + type_qname_id + alf_qname + id + + + + + + id + + + + + type_qname_id + name + + + + + type_qname_id + + + +
+ + + + bigint + false + true + + + varchar(255) + false + false + + + varchar(32) + false + false + + + bigint + false + false + + + + + id + + + + + + + id + + + + + java_class_name_crc + java_class_name_short + + + + + java_class_name + + + +
+ + + + bigint + false + false + + + smallint + false + false + + + tinyint + false + false + + + tinyint + false + false + + + tinyint + false + false + + + tinyint + false + false + + + tinyint + false + false + + + smallint + false + false + + + tinyint + false + false + + + tinyint + false + false + + + + + date_value + + + + + + + date_value + + + + + full_year + month_of_year + day_of_month + + + +
+ + + + bigint + false + true + + + double + false + false + + + + + id + + + + + + + id + + + + + double_value + + + +
+ + + + bigint + false + false + + + bigint + false + false + + + bigint + false + false + + + bigint + false + false + + + bigint + false + false + + + + + contained_in + prop_index + root_prop_id + + + + + root_prop_id + alf_prop_root + id + + + key_prop_id + alf_prop_value + id + + + value_prop_id + alf_prop_value + id + + + + + + root_prop_id + contained_in + prop_index + + + + + + key_prop_id + + + + + value_prop_id + + + + + root_prop_id + key_prop_id + value_prop_id + + + +
+ + + + bigint + false + true + + + smallint + false + false + + + + + id + + + + + + + id + + + +
+ + + + bigint + false + true + + + blob + false + false + + + + + id + + + + + + + id + + + +
+ + + + bigint + false + true + + + text + false + false + + + varchar(16) + false + false + + + bigint + false + false + + + + + id + + + + + + + id + + + + + string_end_lower + string_crc + + + + + string_value + + + +
+ + + + bigint + false + true + + + smallint + false + false + + + bigint + false + false + + + bigint + false + false + + + bigint + false + false + + + bigint + true + false + + + + + id + + + + + value1_prop_id + alf_prop_value + id + + + value2_prop_id + alf_prop_value + id + + + value3_prop_id + alf_prop_value + id + + + prop1_id + alf_prop_root + id + + + + + + id + + + + + value1_prop_id + value2_prop_id + value3_prop_id + + + + + value2_prop_id + + + + + value3_prop_id + + + + + prop1_id + + + +
+ + + + bigint + false + true + + + bigint + false + false + + + tinyint + false + false + + + bigint + false + false + + + + + id + + + + + + + id + + + + + actual_type_id + long_value + + + + + persisted_type + long_value + + + +
+ + + + bigint + false + true + + + bigint + false + false + + + bigint + false + false + + + varchar(200) + false + false + + + + + id + + + + + ns_id + alf_namespace + id + + + + + + id + + + + + ns_id + local_name + + + +
+ + + + bigint + false + true + + + bigint + false + false + + + varchar(39) + false + false + + + + + id + + + + + + + id + + + + + ip_address + + + +
+ + + + bigint + false + true + + + bigint + false + false + + + varchar(50) + false + false + + + varchar(100) + false + false + + + bigint + true + false + + + + + id + + + + + root_node_id + alf_node + id + + + + + + id + + + + + protocol + identifier + + + + + root_node_id + + + +
+ + + + bigint + false + false + + + bigint + false + false + + + + + node_id + user_node_id + + + + + user_node_id + alf_node + id + + + node_id + alf_node + id + + + + + + user_node_id + node_id + + + + + node_id + + + +
+ + + + varchar(75) + false + false + + + bigint + false + false + + + bit + false + false + + + varchar(75) + true + false + + + varchar(255) + true + false + + + varchar(255) + true + false + + + + + tenant_domain + + + + + + + tenant_domain + + + +
+ + + + bigint + false + true + + + bigint + false + false + + + bigint + true + false + + + varchar(56) + false + false + + + bigint + true + false + + + + + id + + + + + server_id + alf_server + id + + + + + + id + + + + + commit_time_ms + + + + + server_id + + + +
+ + + + bigint + false + true + + + bigint + false + false + + + bigint + false + false + + + bigint + false + false + + + + + id + + + + + node_id + alf_node + id + + + + + + id + + + + + node_id + + + +
+
+
diff --git a/src/test/java/org/alfresco/AllUnitTestsSuite.java b/src/test/java/org/alfresco/AllUnitTestsSuite.java index 433528dd36..ec217a1184 100644 --- a/src/test/java/org/alfresco/AllUnitTestsSuite.java +++ b/src/test/java/org/alfresco/AllUnitTestsSuite.java @@ -195,6 +195,7 @@ import org.junit.runners.Suite; org.alfresco.heartbeat.ModelUsageDataCollectorTest.class, org.alfresco.heartbeat.SystemUsageDataCollectorTest.class, + org.alfresco.repo.domain.DialectFactoryBeanTest.class, org.alfresco.util.BeanExtenderUnitTest.class, org.alfresco.util.bean.HierarchicalBeanLoaderTest.class, org.alfresco.util.resource.HierarchicalResourceLoaderTest.class, diff --git a/src/test/java/org/alfresco/repo/domain/DialectFactoryBeanTest.java b/src/test/java/org/alfresco/repo/domain/DialectFactoryBeanTest.java new file mode 100644 index 0000000000..c88dd4c73c --- /dev/null +++ b/src/test/java/org/alfresco/repo/domain/DialectFactoryBeanTest.java @@ -0,0 +1,73 @@ +/* + * #%L + * Alfresco Repository + * %% + * Copyright (C) 2005 - 2018 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + * #L% + */ +package org.alfresco.repo.domain; + +import java.util.HashMap; +import java.util.Map; +import java.util.Properties; +import org.alfresco.repo.domain.dialect.DialectFactoryBean; +import org.junit.Test; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; + + +/** + * @author Erik Knizat + */ +public class DialectFactoryBeanTest +{ + private static final String MARIADB_DIALECT_NAME = "org.alfresco.repo.domain.dialect.MariaDBDialect"; + private static final String MARIA_DB_DRIVER_NAME = "MariaDB connector/J"; + + @Test + public void testMariaDBDialectGetsAdded() + { +// DialectFactoryBean dfb = new DialectFactoryBean(); +// Map driverDialectMap = new HashMap<>(); +// driverDialectMap.put(MARIA_DB_DRIVER_NAME, MARIADB_DIALECT_NAME); +// dfb.setDriverDialectMap(driverDialectMap); +// Properties props = new Properties(); +// dfb.overrideDialectPropertyForDriver(props, MARIA_DB_DRIVER_NAME); +// +// assertNotNull("The dialect property was not set for the driver.", props.getProperty((Environment.DIALECT))); +// assertEquals("Dialect name did not match.", MARIADB_DIALECT_NAME, props.getProperty((Environment.DIALECT))); + } + + @Test + public void testDialectNotAddedIfNotSpecifiedForDriver() + { +// DialectFactoryBean dfb = new DialectFactoryBean(); +// Map driverDialectMap = new HashMap<>(); +// dfb.setDriverDialectMap(driverDialectMap); // Add empty dialect driver map +// Properties props = new Properties(); +// dfb.overrideDialectPropertyForDriver(props, MARIA_DB_DRIVER_NAME); +// +// assertNull("Dialect name property was set for unspecified driver name.", props.getProperty((Environment.DIALECT))); + } + +} diff --git a/src/test/java/org/alfresco/util/schemacomp/ExportDbTest.java b/src/test/java/org/alfresco/util/schemacomp/ExportDbTest.java index 1cc54a5521..e06e531042 100644 --- a/src/test/java/org/alfresco/util/schemacomp/ExportDbTest.java +++ b/src/test/java/org/alfresco/util/schemacomp/ExportDbTest.java @@ -29,12 +29,14 @@ package org.alfresco.util.schemacomp; import javax.sql.DataSource; import org.alfresco.repo.domain.dialect.Dialect; +import org.alfresco.repo.domain.dialect.MariaDBDialect; import org.alfresco.repo.domain.dialect.MySQLInnoDBDialect; import org.alfresco.repo.domain.dialect.PostgreSQLDialect; import org.alfresco.test_category.OwnJVMTestsCategory; import org.alfresco.util.ApplicationContextHelper; import org.alfresco.util.schemacomp.model.Schema; import org.alfresco.util.schemacomp.test.exportdb.AbstractExportTester; +import org.alfresco.util.schemacomp.test.exportdb.AlfrescoMariaDBDialectExportTester; import org.alfresco.util.schemacomp.test.exportdb.MySQLDialectExportTester; import org.alfresco.util.schemacomp.test.exportdb.PostgreSQLDialectExportTester; import org.alfresco.util.testing.category.DBTests; @@ -96,6 +98,10 @@ public class ExportDbTest { exportTester = new PostgreSQLDialectExportTester(exporter, tx, jdbcTemplate); } + else if (MariaDBDialect.class.isAssignableFrom(dialectClass)) + { + exportTester = new AlfrescoMariaDBDialectExportTester(exporter, tx, jdbcTemplate); + } else if (MySQLInnoDBDialect.class.isAssignableFrom(dialectClass)) { exportTester = new MySQLDialectExportTester(exporter, tx, jdbcTemplate); diff --git a/src/test/java/org/alfresco/util/schemacomp/test/exportdb/AlfrescoMariaDBDialectExportTester.java b/src/test/java/org/alfresco/util/schemacomp/test/exportdb/AlfrescoMariaDBDialectExportTester.java new file mode 100644 index 0000000000..e50758b1c2 --- /dev/null +++ b/src/test/java/org/alfresco/util/schemacomp/test/exportdb/AlfrescoMariaDBDialectExportTester.java @@ -0,0 +1,311 @@ +/* + * #%L + * Alfresco Repository + * %% + * Copyright (C) 2005 - 2016 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + * #L% + */ +package org.alfresco.util.schemacomp.test.exportdb; + +import java.util.Iterator; +import org.alfresco.util.schemacomp.ExportDb; +import org.alfresco.util.schemacomp.ExportDbTest; +import org.alfresco.util.schemacomp.model.Column; +import org.alfresco.util.schemacomp.model.DbObject; +import org.alfresco.util.schemacomp.model.ForeignKey; +import org.alfresco.util.schemacomp.model.Index; +import org.alfresco.util.schemacomp.model.PrimaryKey; +import org.alfresco.util.schemacomp.model.Schema; +import org.alfresco.util.schemacomp.model.Table; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.transaction.PlatformTransactionManager; +import org.springframework.transaction.TransactionStatus; +import org.springframework.transaction.support.TransactionCallbackWithoutResult; +import org.springframework.transaction.support.TransactionTemplate; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertSame; + +/** + * MySQL specific test for the ExportDb class. + * + * @see ExportDbTest + * @author eknizat + */ +public class AlfrescoMariaDBDialectExportTester extends AbstractExportTester +{ + /** + * Constructor. + * + * @param exporter + * @param tx + * @param jdbcTemplate + */ + public AlfrescoMariaDBDialectExportTester(ExportDb exporter, PlatformTransactionManager tx, + JdbcTemplate jdbcTemplate) + { + super(exporter, tx, jdbcTemplate); + } + + + @Override + protected void doExportTest() throws Exception + { + Schema schema = getSchema(); + Table exampleTable = null; + Table otherTable = null; + + for (DbObject dbo : schema) + { + if (dbo.getName().equals("export_test_example")) + { + exampleTable = (Table) dbo; + } + if (dbo.getName().equals("export_test_other")) + { + otherTable = (Table) dbo; + } + } + + checkExampleTable(schema, exampleTable); + checkOtherTable(schema, otherTable); + } + + + + private void checkOtherTable(Schema schema, Table otherTable) + { + + assertNotNull("Couldn't find table export_test_other", otherTable); + assertSame("Incorrect parent or no parent set", schema, otherTable.getParent()); + + Iterator colIt = otherTable.getColumns().iterator(); + Column col = colIt.next(); + assertSame("Incorrect parent or no parent set", otherTable, col.getParent()); + assertEquals("id", col.getName()); + assertEquals("bigint", col.getType()); + assertEquals(false, col.isNullable()); + assertEquals(1, col.getOrder()); + assertEquals(false, col.isAutoIncrement()); + + col = colIt.next(); + assertSame("Incorrect parent or no parent set", otherTable, col.getParent()); + assertEquals("version", col.getName()); + assertEquals("bigint", col.getType()); + assertEquals(false, col.isNullable()); + assertEquals(2, col.getOrder()); + + col = colIt.next(); + assertSame("Incorrect parent or no parent set", otherTable, col.getParent()); + assertEquals("ex_id", col.getName()); + assertEquals("bigint", col.getType()); + assertEquals(false, col.isNullable()); + assertEquals(3, col.getOrder()); + + col = colIt.next(); + assertSame("Incorrect parent or no parent set", otherTable, col.getParent()); + assertSame("Incorrect parent or no parent set", otherTable, col.getParent()); + assertEquals("local_name", col.getName()); + assertEquals("varchar(200)", col.getType()); + assertEquals(false, col.isNullable()); + assertEquals(4, col.getOrder()); + + assertEquals(3, otherTable.getIndexes().size()); + Iterator indexIt = otherTable.getIndexes().iterator(); + + Index index = indexIt.next(); + assertSame("Incorrect parent or no parent set", otherTable, index.getParent()); + assertEquals("export_test_idx_other_1", index.getName()); + assertEquals(true, index.isUnique()); + assertEquals(2, index.getColumnNames().size()); + assertEquals("ex_id", index.getColumnNames().get(0)); + assertEquals("local_name", index.getColumnNames().get(1)); + + index = indexIt.next(); + assertSame("Incorrect parent or no parent set", otherTable, index.getParent()); + assertEquals("PRIMARY", index.getName()); + assertEquals(1, index.getColumnNames().size()); + assertEquals("id", index.getColumnNames().get(0)); + + PrimaryKey pk = otherTable.getPrimaryKey(); + assertSame("Incorrect parent or no parent set", otherTable, pk.getParent()); + assertEquals("id", pk.getColumnNames().get(0)); + assertEquals(1, pk.getColumnOrders().get(0).intValue()); + + assertEquals(1, otherTable.getForeignKeys().size()); + ForeignKey fk = otherTable.getForeignKeys().get(0); + assertSame("Incorrect parent or no parent set", otherTable, fk.getParent()); + assertEquals("export_test_fk_example", fk.getName()); + assertEquals("ex_id", fk.getLocalColumn()); + assertEquals("export_test_example", fk.getTargetTable()); + assertEquals("id", fk.getTargetColumn()); + } + + + private void checkExampleTable(Schema schema, Table exampleTable) + { + assertNotNull("Couldn't find export_test_example", exampleTable); + + assertSame("Incorrect parent or no parent set", schema, exampleTable.getParent()); + assertEquals("export_test_example", exampleTable.getName()); + Iterator colIt = exampleTable.getColumns().iterator(); + Column col = colIt.next(); + assertSame("Incorrect parent or no parent set", exampleTable, col.getParent()); + assertEquals("id", col.getName()); + assertEquals("bigint", col.getType()); + assertEquals(false, col.isNullable()); + assertEquals(1, col.getOrder()); + assertEquals(true, col.isAutoIncrement()); + + col = colIt.next(); + assertSame("Incorrect parent or no parent set", exampleTable, col.getParent()); + assertEquals("description", col.getName()); + assertEquals("text", col.getType()); + assertEquals(true, col.isNullable()); + assertEquals(2, col.getOrder()); + + col = colIt.next(); + assertSame("Incorrect parent or no parent set", exampleTable, col.getParent()); + assertEquals("fixes_from_schema", col.getName()); + assertEquals("int", col.getType()); + assertEquals(true, col.isNullable()); + assertEquals(3, col.getOrder()); + + col = colIt.next(); + assertSame("Incorrect parent or no parent set", exampleTable, col.getParent()); + assertEquals("fixes_to_schema", col.getName()); + assertEquals("int", col.getType()); + assertEquals(true, col.isNullable()); + assertEquals(4, col.getOrder()); + + col = colIt.next(); + assertSame("Incorrect parent or no parent set", exampleTable, col.getParent()); + assertEquals("applied_to_schema", col.getName()); + assertEquals("int", col.getType()); + assertEquals(true, col.isNullable()); + assertEquals(5, col.getOrder()); + + col = colIt.next(); + assertSame("Incorrect parent or no parent set", exampleTable, col.getParent()); + assertEquals("target_schema", col.getName()); + assertEquals("int", col.getType()); + assertEquals(true, col.isNullable()); + assertEquals(6, col.getOrder()); + + col = colIt.next(); + assertSame("Incorrect parent or no parent set", exampleTable, col.getParent()); + assertEquals("applied_on_date", col.getName()); + assertEquals("datetime", col.getType()); + assertEquals(true, col.isNullable()); + assertEquals(7, col.getOrder()); + + col = colIt.next(); + assertSame("Incorrect parent or no parent set", exampleTable, col.getParent()); + assertEquals("applied_to_server", col.getName()); + assertEquals("varchar(64)", col.getType()); + assertEquals(true, col.isNullable()); + assertEquals(8, col.getOrder()); + + col = colIt.next(); + assertSame("Incorrect parent or no parent set", exampleTable, col.getParent()); + assertEquals("was_executed", col.getName()); + assertEquals("bit", col.getType()); + assertEquals(true, col.isNullable()); + assertEquals(9, col.getOrder()); + + col = colIt.next(); + assertSame("Incorrect parent or no parent set", exampleTable, col.getParent()); + assertEquals("succeeded", col.getName()); + assertEquals("bit", col.getType()); + assertEquals(true, col.isNullable()); + assertEquals(10, col.getOrder()); + + col = colIt.next(); + assertSame("Incorrect parent or no parent set", exampleTable, col.getParent()); + assertEquals("report", col.getName()); + assertEquals("text", col.getType()); + assertEquals(true, col.isNullable()); + assertEquals(11, col.getOrder()); + + PrimaryKey pk = exampleTable.getPrimaryKey(); + assertSame("Incorrect parent or no parent set", exampleTable, pk.getParent()); + assertEquals("id", pk.getColumnNames().get(0)); + assertEquals(1, pk.getColumnOrders().get(0).intValue()); + } + + + @Override + protected void doDatabaseSetup() + { + // Create database objects: this decouples test code from the actual schema which is + // free to change without breaking these tests. + + final String[] createStatements = new String[] + { + "DROP TABLE IF EXISTS export_test_other CASCADE", + "DROP TABLE IF EXISTS export_test_example CASCADE", + + "CREATE TABLE export_test_example" + + " (" + + " id BIGINT NOT NULL AUTO_INCREMENT," + + " description TEXT," + + " fixes_from_schema INTEGER," + + " fixes_to_schema INTEGER," + + " applied_to_schema INTEGER," + + " target_schema INTEGER," + + " applied_on_date DATETIME," + + " applied_to_server VARCHAR(64)," + + " was_executed BIT," + + " succeeded BIT," + + " report TEXT," + + " PRIMARY KEY (id)" + + " ) ENGINE=InnoDB", + + "CREATE TABLE export_test_other" + + " (" + + " id BIGINT NOT NULL," + + " version BIGINT NOT NULL," + + " ex_id BIGINT NOT NULL," + + " local_name VARCHAR(200) NOT NULL," + + " CONSTRAINT export_test_fk_example FOREIGN KEY (ex_id) REFERENCES export_test_example (id)," + + " PRIMARY KEY (id)" + + " ) ENGINE=InnoDB", + + "CREATE UNIQUE INDEX export_test_idx_other_1 ON export_test_other (ex_id, local_name)", + + "CREATE INDEX export_test_idx_other_2 ON export_test_other (ex_id)" + }; + + TransactionTemplate tt = new TransactionTemplate(tx); + tt.execute(new TransactionCallbackWithoutResult() + { + @Override + protected void doInTransactionWithoutResult(TransactionStatus status) + { + for (String sql : createStatements) + { + jdbcTemplate.update(sql); + } + } + }); + } +}