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);
+ }
+ }
+ });
+ }
+}