/*
* Copyright 2015 herd contributors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.finra.herd.dao;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.xml.datatype.XMLGregorianCalendar;
import com.amazonaws.services.s3.AmazonS3;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.MapPropertySource;
import org.springframework.core.env.MutablePropertySources;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.transaction.annotation.Transactional;
import org.finra.herd.core.AbstractCoreTest;
import org.finra.herd.core.HerdDateUtils;
import org.finra.herd.dao.config.DaoSpringModuleConfig;
import org.finra.herd.dao.config.DaoTestSpringModuleConfig;
import org.finra.herd.dao.helper.HerdCollectionHelper;
import org.finra.herd.dao.helper.JavaPropertiesHelper;
import org.finra.herd.model.api.xml.Attribute;
import org.finra.herd.model.api.xml.AttributeDefinition;
import org.finra.herd.model.api.xml.DataProviderKey;
import org.finra.herd.model.api.xml.NamespacePermissionEnum;
import org.finra.herd.model.api.xml.SampleDataFile;
import org.finra.herd.model.api.xml.Schema;
import org.finra.herd.model.api.xml.SchemaColumn;
/**
* This is an abstract base class that provides useful methods for DAO test drivers.
*/
@ContextConfiguration(classes = DaoTestSpringModuleConfig.class, inheritLocations = false)
@Transactional(value = DaoSpringModuleConfig.HERD_TRANSACTION_MANAGER_BEAN_NAME)
public abstract class AbstractDaoTest extends AbstractCoreTest
{
public static final String ACTIVITI_ID = "UT_Activiti_ID_1_" + RANDOM_SUFFIX;
public static final String ACTIVITI_ID_2 = "UT_Activiti_ID_2_" + RANDOM_SUFFIX;
public static final String ACTIVITI_ID_3 = "UT_Activiti_ID_3_" + RANDOM_SUFFIX;
public static final String ACTIVITI_ID_4 = "UT_Activiti_ID_4_" + RANDOM_SUFFIX;
public static final String ALLOWED_ATTRIBUTE_VALUE = "UT_ALLOWED_ATTRIBUTE_VALUE" + RANDOM_SUFFIX;
public static final Boolean ALLOW_DUPLICATE_BUSINESS_OBJECT_DATA = true;
public static final String ATTRIBUTE_NAME_1_MIXED_CASE = "Attribute Name 1";
public static final String ATTRIBUTE_NAME_2_MIXED_CASE = "Attribute Name 2";
public static final String ATTRIBUTE_NAME_3_MIXED_CASE = "Attribute Name 3";
public static final String ATTRIBUTE_NAME_4_MIXED_CASE = "Attribute Name 4";
public static final String ATTRIBUTE_VALUE_1 = "Attribute Value 1";
public static final String ATTRIBUTE_VALUE_1_UPDATED = "Attribute Value 1 Updated";
public static final String ATTRIBUTE_VALUE_2 = " Attribute Value 2 ";
public static final String ATTRIBUTE_VALUE_3 = "Attribute Value 3";
public static final String ATTRIBUTE_VALUE_4 = "Attribute Value 4";
public static final String ATTRIBUTE_VALUE_LIST = "UT_Attribute_Value_list_1_" + RANDOM_SUFFIX;
public static final int ATTRIBUTE_VALUE_LIST_ID = 1009;
public static final String ATTRIBUTE_VALUE_LIST_NAME = "UT_Attribute_Value_List_Name_1_" + RANDOM_SUFFIX;
public static final String ATTRIBUTE_VALUE_LIST_NAME_2 = "UT_Attribute_Value_List_Name_2_" + RANDOM_SUFFIX;
public static final String ATTRIBUTE_VALUE_LIST_NAMESPACE = "UT_Attribute_Value_List_Namespace_1_" + RANDOM_SUFFIX;
public static final String ATTRIBUTE_VALUE_LIST_NAMESPACE_2 = "UT_Attribute_Value_List_Namespace_2_" + RANDOM_SUFFIX;
public static final String AWS_ACCOUNT_ID = "UT_AwsAccountId_1_" + RANDOM_SUFFIX;
public static final String AWS_ASSUMED_ROLE_ACCESS_KEY = "UT_AwsAssumedRoleAccessKey_1_" + RANDOM_SUFFIX;
public static final String AWS_ASSUMED_ROLE_SECRET_KEY = "UT_AwsAssumedRoleSecretKey_1_" + RANDOM_SUFFIX;
public static final XMLGregorianCalendar AWS_ASSUMED_ROLE_SESSION_EXPIRATION_TIME = HerdDateUtils.getXMLGregorianCalendarValue(getRandomDate());
public static final String AWS_ASSUMED_ROLE_SESSION_TOKEN = "UT_AwsAssumedRoleSessionToken_1_" + RANDOM_SUFFIX;
public static final String AWS_KMS_KEY_ID = "UT_AwsKmsKeyId_" + RANDOM_SUFFIX;
public static final String AWS_REGION = "UT_Region" + RANDOM_SUFFIX;
public static final String AWS_ROLE_ARN = "UT_AwsRoleArn" + RANDOM_SUFFIX;
public static final String BACKSLASH = "\\";
public static final Integer BDATA_AGE_IN_DAYS = 1000;
public static final Integer BDATA_PARTITION_VALUE_AGE_IN_DAYS = 1000;
public static final String BDATA_STATUS = "UT_Status_1_" + RANDOM_SUFFIX;
public static final String BDATA_STATUS_2 = "UT_Status_2_" + RANDOM_SUFFIX;
public static final String BDATA_STATUS_3 = "UT_Status_3_" + RANDOM_SUFFIX;
public static final String BDATA_STATUS_4 = "UT_Status_4_" + RANDOM_SUFFIX;
public static final Boolean BDATA_STATUS_PRE_REGISTRATION_FLAG_SET = true;
public static final String BDEF_COLUMN_DESCRIPTION = "UT_BusinessObjectDefinition_Column_Description_1_" + RANDOM_SUFFIX;
public static final String BDEF_COLUMN_DESCRIPTION_2 = "UT_BusinessObjectDefinition_Column_Description_2_" + RANDOM_SUFFIX;
public static final String BDEF_COLUMN_NAME = "UT_BusinessObjectDefinition_Column_Name_1_" + RANDOM_SUFFIX;
public static final String BDEF_COLUMN_NAME_2 = "UT_BusinessObjectDefinition_Column_Name_2_" + RANDOM_SUFFIX;
public static final String BDEF_DESCRIPTION = "UT_BusinessObjectDefinition_Description_" + RANDOM_SUFFIX;
public static final String BDEF_DESCRIPTION_2 = "UT_BusinessObjectDefinition_Description_" + RANDOM_SUFFIX_2;
public static final String BDEF_DESCRIPTION_WITH_HTML_AND_CARET_VALUES = "Test Description. Value should be <30> <div> <p> value should be <40> </p>";
public static final String BDEF_DISPLAY_NAME = "UT_BusinessObjectDefinition_Display_Name_1_" + RANDOM_SUFFIX;
public static final String BDEF_DISPLAY_NAME_2 = "UT_BusinessObjectDefinition_Display_Name_2_" + RANDOM_SUFFIX;
public static final String BDEF_DISPLAY_NAME_3 = "UT_BusinessObjectDefinition_Display_Name_3_" + RANDOM_SUFFIX;
public static final String BDEF_NAME = "UT_BusinessObjectDefinition_Name_1_" + RANDOM_SUFFIX;
public static final String BDEF_NAMESPACE = "UT_BusinessObjectDefinition_Namespace_1_" + RANDOM_SUFFIX;
public static final String BDEF_NAMESPACE_2 = "UT_BusinessObjectDefinition_Namespace_2_" + RANDOM_SUFFIX;
public static final String BDEF_NAME_2 = "UT_BusinessObjectDefinition_Name_2_" + RANDOM_SUFFIX;
public static final String BDEF_NAME_3 = "UT_BusinessObjectDefinition_Name_3_" + RANDOM_SUFFIX;
public static final String BDEF_SHORT_DESCRIPTION = "UT_BusinessObjectDefinition_ShortDescription_" + RANDOM_SUFFIX;
public static final String BDEF_SHORT_DESCRIPTION_2 = "UT_BusinessObjectDefinition_ShortDescription_2_" + RANDOM_SUFFIX;
public static final String BUSINESS_OBJECT_DEFINITION_INDEX = "bdef";
public static final float BUSINESS_OBJECT_DEFINITION_INDEX_BOOST = 1f;
public static final String CODE = "code";
public static final String COLUMN_DATA_TYPE = "UT_Column_Data_Type_1_" + RANDOM_SUFFIX;
public static final String COLUMN_DATA_TYPE_2 = "UT_Column_Data_Type_2_" + RANDOM_SUFFIX;
public static final String COLUMN_DATA_TYPE_CHAR = "CHAR";
public static final String COLUMN_DEFAULT_VALUE = "UT_Column_Default_Value" + RANDOM_SUFFIX;
public static final String COLUMN_DESCRIPTION = "UT_Column_Description_1_" + RANDOM_SUFFIX;
public static final String COLUMN_DESCRIPTION_2 = "UT_Column_Description_2_" + RANDOM_SUFFIX;
public static final String COLUMN_DESCRIPTION_3 = "UT_Column_Description_3_" + RANDOM_SUFFIX;
public static final String COLUMN_DESCRIPTION_4 = "UT_Column_Description_4_" + RANDOM_SUFFIX;
public static final String COLUMN_NAME = "UT_Column_Name_1_" + RANDOM_SUFFIX;
public static final String COLUMN_NAME_2 = "UT_Column_Name_2_" + RANDOM_SUFFIX;
public static final Boolean COLUMN_REQUIRED = true;
public static final String COLUMN_SIZE = "1" + RANDOM_SUFFIX;
public static final String COLUMN_SIZE_2 = "2" + RANDOM_SUFFIX;
public static final String CONFIGURATION_KEY = "UT_Configuration_Key_" + RANDOM_SUFFIX;
public static final String CONFIGURATION_VALUE = "UT_Configuration_Value_" + RANDOM_SUFFIX;
public static final String CORRELATION_DATA = "UT_Correlation_Data" + RANDOM_SUFFIX;
public static final String CORRELATION_DATA_2 = "UT_Correlation_Data_2" + RANDOM_SUFFIX;
public static final String CORRELATION_DATA_3 = "UT_Correlation_Data_3" + RANDOM_SUFFIX;
public static final XMLGregorianCalendar CREATED_ON = HerdDateUtils.getXMLGregorianCalendarValue(getRandomDate());
public static final String CUSTOM_DDL_NAME = "UT_CustomDdl" + RANDOM_SUFFIX;
public static final String CUSTOM_DDL_NAME_2 = "UT_CustomDdl_2" + RANDOM_SUFFIX;
public static final List<DataProviderKey> DATA_PROVIDER_KEYS = Collections
.unmodifiableList(Arrays.asList(new DataProviderKey("UT_DataProvider_1_" + RANDOM_SUFFIX), new DataProviderKey("UT_DataProvider_2_" + RANDOM_SUFFIX)));
public static final String DATA_PROVIDER_NAME = "UT_DataProvider_1_" + RANDOM_SUFFIX;
public static final String DATA_PROVIDER_NAME_2 = "UT_DataProvider_2_" + RANDOM_SUFFIX;
public static final Integer DATA_VERSION = (int) (Math.random() * Integer.MAX_VALUE);
public static final String DESCRIPTION = "UT_Description_1_" + RANDOM_SUFFIX;
public static final String DESCRIPTION_2 = "UT_Description_2_" + RANDOM_SUFFIX;
public static final String DISPLAY_NAME_FIELD = "displayname";
public static final Double DOUBLE_VALUE = Math.random() * Double.MAX_VALUE;
public static final String DOWNLOADER_ROLE_ARN = "UT_DownloaderRoleArn" + RANDOM_SUFFIX;
public static final String EC2_INSTANCE_ID = "UT_Ec2InstanceId" + RANDOM_SUFFIX;
public static final String EC2_INSTANCE_TYPE = "UT_Ec2InstanceType" + RANDOM_SUFFIX;
public static final String EC2_SECURITY_GROUP_1 = "UT_Ec2SecurityGroup1" + RANDOM_SUFFIX;
public static final String EC2_SECURITY_GROUP_2 = "UT_Ec2SecurityGroup2" + RANDOM_SUFFIX;
public static final String EMPTY_S3_BUCKET_NAME = "";
public static final String EMPTY_STRING = "";
public static final String EMR_CLUSTER_DEFINITION_NAME = "UT_EMR_CLUSTER_DFN" + RANDOM_SUFFIX;
public static final String EMR_CLUSTER_DEFINITION_NAME_2 = "UT_EMR_CLUSTER_DFN_2" + RANDOM_SUFFIX;
public static final String EMR_CLUSTER_DEFINITION_XML_FILE_MINIMAL_CLASSPATH = "classpath:testEmrClusterDefinitionMinimal.xml";
public static final String EMR_CLUSTER_DEFINITION_XML_FILE_WITH_CLASSPATH = "classpath:testEmrClusterDefinition.xml";
public static final String EMR_CLUSTER_NAME = "UT_EMR_CLUSTER" + RANDOM_SUFFIX;
public static final String ENVIRONMENT_NAME = "TEST";
public static final String ERROR_CODE = "UT_Error_Code_" + RANDOM_SUFFIX;
public static final String ERROR_MESSAGE = "UT_Error_Message_" + RANDOM_SUFFIX;
public static final Integer EXPIRATION_IN_DAYS = (int) (Math.random() * Integer.MAX_VALUE);
public static final String FIELD_DISPLAY_NAME = "displayName";
public static final String FIELD_SHORT_DESCRIPTION = "shortDescription";
public static final Integer FIFTH_FORMAT_VERSION = 4;
public static final String FIRST_COLUMN_DATA_TYPE = "TINYINT";
public static final String FIRST_COLUMN_NAME = "COLUMN001";
public static final String FIRST_PARTITION_COLUMN_NAME = "PRTN_CLMN001";
public static final String FORMAT_DESCRIPTION = "UT_Format_1_" + RANDOM_SUFFIX;
public static final String FORMAT_DESCRIPTION_2 = "UT_Format_2_" + RANDOM_SUFFIX;
public static final String FORMAT_DESCRIPTION_3 = "UT_Format_3_" + RANDOM_SUFFIX;
public static final String FORMAT_FILE_TYPE_CODE = "UT_FileType" + RANDOM_SUFFIX;
public static final String FORMAT_FILE_TYPE_CODE_2 = "UT_FileType_2" + RANDOM_SUFFIX;
public static final String FORMAT_FILE_TYPE_DESCRIPTION = "UT_Description of " + FORMAT_FILE_TYPE_CODE;
public static final String FORMAT_USAGE_CODE = "UT_Usage" + RANDOM_SUFFIX;
public static final String FORMAT_USAGE_CODE_2 = "UT_Usage_2" + RANDOM_SUFFIX;
public static final String FORMAT_USAGE_CODE_3 = "UT_Usage_3" + RANDOM_SUFFIX;
public static final Integer FORMAT_VERSION = (int) (Math.random() * Integer.MAX_VALUE);
public static final Integer FORMAT_VERSION_2 = (int) (Math.random() * Integer.MAX_VALUE);
public static final Integer FOURTH_FORMAT_VERSION = 3;
public static final Integer GLOBAL_ATTRIBUTE_DEFINITON_ID = (int) (Math.random() * Integer.MAX_VALUE);
public static final String GLOBAL_ATTRIBUTE_DEFINITON_INVALID_LEVEL = "BUS_OBJECT_FORMAT";
public static final String GLOBAL_ATTRIBUTE_DEFINITON_LEVEL = "BUS_OBJCT_FRMT";
public static final String GLOBAL_ATTRIBUTE_DEFINITON_NAME = "UT_GlobalAttributeDefinitionName_1_" + RANDOM_SUFFIX;
public static final String GLOBAL_ATTRIBUTE_DEFINITON_NAME_2 = "UT_GlobalAttributeDefinitionName_2_" + RANDOM_SUFFIX;
public static final boolean HIT_HIGHLIGHTING_DISABLED = false;
public static final boolean HIT_HIGHLIGHTING_ENABLED = true;
public static final String HTTP_PROXY_HOST = "UT_ProxyHost" + RANDOM_SUFFIX;
public static final Integer HTTP_PROXY_PORT = (int) (Math.random() * Integer.MAX_VALUE);
public static final Boolean INCLUDE_TAG_HIERARCHY = true;
public static final Integer INITIAL_DATA_VERSION = 0;
public static final Integer INITIAL_FORMAT_VERSION = 0;
public static final Integer INITIAL_VERSION = 0;
public static final Integer INTEGER_VALUE = (int) (Math.random() * Integer.MAX_VALUE);
public static final Integer INTEGER_VALUE_2 = (int) (Math.random() * Integer.MAX_VALUE);
public static final Integer INVALID_DATA_VERSION = -1 * DATA_VERSION;
public static final Integer INVALID_FORMAT_VERSION = -1 * FORMAT_VERSION;
public static final String I_DO_NOT_EXIST = "I_DO_NOT_EXIST";
public static final String JMS_QUEUE_NAME = "UT_JmsQueueName" + RANDOM_SUFFIX;
public static final String JMS_QUEUE_NAME_2 = "UT_JmsQueueName_2" + RANDOM_SUFFIX;
public static final String JOB_DESCRIPTION = "UT_JobDescription" + RANDOM_SUFFIX;
public static final String JOB_NAME = "UT_Job" + RANDOM_SUFFIX;
public static final String JOB_NAMESPACE = "UT_Job_Namespace" + RANDOM_SUFFIX;
public static final String JOB_NAMESPACE_2 = "UT_Job_Namespace_2" + RANDOM_SUFFIX;
public static final String JOB_NAMESPACE_3 = "UT_Job_Namespace_3" + RANDOM_SUFFIX;
public static final String JOB_NAME_2 = "UT_Job_2" + RANDOM_SUFFIX;
public static final String JOB_NAME_3 = "UT_Job_3" + RANDOM_SUFFIX;
public static final String JSON_STRING = "UT_JsonString_" + RANDOM_SUFFIX;
public static final Boolean LATEST_VERSION_FLAG_SET = true;
public static final String LOCAL_FILE = "foo.dat";
public static final List<String> LOCAL_FILES = Arrays.asList("foo1.dat", "Foo2.dat", "FOO3.DAT", "folder/foo3.dat", "folder/foo2.dat", "folder/foo1.dat");
public static final List<String> LOCAL_FILES_SUBSET = Arrays.asList("Foo2.dat", "FOO3.DAT", "folder/foo2.dat");
public static final Long LONG_VALUE = (long) (Math.random() * Long.MAX_VALUE);
public static final Integer MAX_COLUMNS = 10;
public static final Integer MAX_PARTITIONS = 5;
public static final Integer MAX_RESULT = 10;
public static final Integer MAX_RESULTS_1 = 1;
public static final String MESSAGE_TEXT = "UT_Message_Text" + RANDOM_SUFFIX;
public static final String MESSAGE_TEXT_2 = "UT_Message_Text_2" + RANDOM_SUFFIX;
public static final List<String> MULTI_STORAGE_AVAILABLE_PARTITION_VALUES_INTERSECTION = Collections.unmodifiableList(Arrays.asList("2014-04-08"));
public static final List<String> MULTI_STORAGE_AVAILABLE_PARTITION_VALUES_UNION =
Collections.unmodifiableList(Arrays.asList("2014-04-02", "2014-04-02A", "2014-04-03", "2014-04-05", "2014-04-06", "2014-04-08"));
public static final List<String> MULTI_STORAGE_NOT_AVAILABLE_PARTITION_VALUES = Collections.unmodifiableList(Arrays.asList("2014-04-04", "2014-04-07"));
public static final String NAMESPACE = "UT_Namespace_1_" + RANDOM_SUFFIX;
public static final String NAMESPACE_2 = "UT_Namespace_2_" + RANDOM_SUFFIX;
public static final String NAMESPACE_3 = "UT_Namespace_3_" + RANDOM_SUFFIX;
public static final String NAMESPACE_CODE = "UT_NamespaceCode_1_" + RANDOM_SUFFIX;
public static final String NOTIFICATION_EVENT_TYPE = "UT_Ntfcn_Event" + RANDOM_SUFFIX;
public static final String NOTIFICATION_EVENT_TYPE_2 = "UT_Ntfcn_Event_2" + RANDOM_SUFFIX;
public static final String NOTIFICATION_NAME = "UT_Ntfcn_Name" + RANDOM_SUFFIX;
public static final String NOTIFICATION_NAME_2 = "UT_Ntfcn_Name_2" + RANDOM_SUFFIX;
public static final Boolean NOT_INCLUDE_TAG_HIERARCHY = false;
public static final List<String> NO_ALLOWED_ATTRIBUTE_VALUES = new ArrayList<>();
public static final Boolean NO_ALLOW_DUPLICATE_BUSINESS_OBJECT_DATA = false;
public static final List<Attribute> NO_ATTRIBUTES = new ArrayList<>();
public static final List<AttributeDefinition> NO_ATTRIBUTE_DEFINITIONS = new ArrayList<>();
public static final String NO_BDATA_STATUS = null;
public static final Boolean NO_BDATA_STATUS_PRE_REGISTRATION_FLAG_SET = false;
public static final String NO_BDEF_COLUMN_DESCRIPTION = null;
public static final String NO_BDEF_DESCRIPTION = null;
public static final String NO_BDEF_DISPLAY_NAME = null;
public static final String NO_BDEF_NAME = null;
public static final String NO_BDEF_NAMESPACE = null;
public static final String NO_BDEF_SHORT_DESCRIPTION = null;
public static final String NO_COLUMN_NAME = null;
public static final XMLGregorianCalendar NO_CREATED_ON = null;
public static final Timestamp NO_CREATED_ON_TIMESTAMP = null;
public static final String NO_CUSTOM_DDL_NAME = null;
public static final Integer NO_DATA_VERSION = null;
public static final Boolean NO_EXCLUSION_SEARCH_FILTER = Boolean.FALSE;
public static final Integer NO_EXPIRATION_IN_DAYS = null;
public static final String NO_FORMAT_DESCRIPTION = null;
public static final String NO_FORMAT_FILE_TYPE_CODE = null;
public static final String NO_FORMAT_USAGE_CODE = null;
public static final Integer NO_FORMAT_VERSION = null;
public static final Boolean NO_IS_PARENT_TAG_NULL_FLAG = null;
public static final String NO_JOB_NAME = null;
public static final String NO_JOB_NAMESPACE = null;
public static final Boolean NO_LATEST_VERSION_FLAG_SET = false;
public static final Integer NO_MAX_RESULTS = null;
public static final String NO_NAMESPACE = null;
public static final String NO_PARENT_TAG_CODE = null;
public static final List<SchemaColumn> NO_PARTITION_COLUMNS = null;
public static final String NO_PARTITION_KEY = null;
public static final String NO_PARTITION_KEY_GROUP = null;
public static final Boolean NO_PUBLISH_ATTRIBUTE = false;
public static final String NO_S3_BUCKET_NAME = null;
public static final AmazonS3 NO_S3_CLIENT = null;
public static final String NO_S3_ENDPOINT = null;
public static final List<SampleDataFile> NO_SAMPLE_DATA_FILES = new ArrayList<>();
public static final Schema NO_SCHEMA = null;
public static final Boolean NO_SELECT_ONLY_AVAILABLE_STORAGE_UNITS = false;
public static final String NO_STORAGE_DIRECTORY_PATH = null;
public static final String NO_STORAGE_NAME = null;
public static final List<String> NO_STORAGE_NAMES = null;
public static final String NO_STORAGE_UNIT_STATUS = null;
public static final Boolean NO_STORAGE_UNIT_STATUS_AVAILABLE_FLAG_SET = false;
public static final List<String> NO_SUBPARTITION_VALUES = new ArrayList<>();
public static final SchemaColumn[] NO_SUB_PARTITION_KEYS = null;
public static final String NO_TAG_DESCRIPTION = null;
public static final String NO_TAG_DISPLAY_NAME = null;
public static final Boolean NO_TAG_HAS_CHILDREN_FLAG = null;
public static final String NO_TAG_TYPE_DESCRIPTION = null;
public static final String NO_TAG_TYPE_DISPLAY_NAME = null;
public static final Integer NO_TAG_TYPE_ORDER = null;
public static final XMLGregorianCalendar NO_UPDATED_ON = null;
public static final Timestamp NO_UPDATED_ON_TIMESTAMP = null;
public static final String NO_USER_TELEPHONE_NUMBER = null;
public static final String OOZIE_WORKFLOW_LOCATION = "UT_Oozie_workflow_2" + RANDOM_SUFFIX;
public static final Boolean PARENT_TAG_IS_NOT_NULL = false;
public static final Boolean PARENT_TAG_IS_NULL = true;
public static final String[][] PARTITION_COLUMNS =
new String[][] {{"DATE", null}, {"STRING", null}, {"INT", null}, {"NUMBER", null}, {"BOOLEAN", null}, {"NUMBER", null}, {"NUMBER", null}};
public static final String PARTITION_KEY = "UT_PartitionKey" + RANDOM_SUFFIX;
public static final String PARTITION_KEY_GROUP = "UT_Calendar_A" + RANDOM_SUFFIX;
public static final String PARTITION_KEY_GROUP_2 = "UT_Calendar_B" + RANDOM_SUFFIX;
public static final String PARTITION_VALUE = "UT_2014-12-31" + RANDOM_SUFFIX;
public static final String PARTITION_VALUE_2 = "UT_2015-01-13" + RANDOM_SUFFIX;
public static final String PARTITION_VALUE_3 = "UT_2015-08-20" + RANDOM_SUFFIX;
public static final String PARTITION_VALUE_4 = "UT_2016-04-11" + RANDOM_SUFFIX;
public static final String PARTITION_VALUE_5 = "UT_2016-06-20" + RANDOM_SUFFIX;
public static final Boolean PUBLISH_ATTRIBUTE = true;
public static final String REASON = "UT_Reason_1_" + RANDOM_SUFFIX;
public static final String S3_ATTRIBUTE_NAME_BUCKET_NAME = "UT_S3_Attribute_Name_Bucket_Name_" + RANDOM_SUFFIX;
public static final String S3_ATTRIBUTE_NAME_VALIDATE_FILE_EXISTENCE = "UT_S3_Attribute_Name_Validate_File_Existence_" + RANDOM_SUFFIX;
public static final String S3_ATTRIBUTE_NAME_VALIDATE_FILE_SIZE = "UT_S3_Attribute_Name_Validate_File_Size_" + RANDOM_SUFFIX;
public static final String S3_ATTRIBUTE_NAME_VALIDATE_PATH_PREFIX = "UT_S3_Attribute_Name_Validate_Path_Prefix_" + RANDOM_SUFFIX;
public static final String S3_BUCKET_NAME = "UT_S3_Bucket_Name" + RANDOM_SUFFIX;
public static final String S3_BUCKET_NAME_2 = "UT_S3_Bucket_Name2" + RANDOM_SUFFIX;
public static final List<String> S3_DIRECTORY_MARKERS = Arrays.asList("", "folder");
public static final String S3_ENDPOINT = "UT_S3_Endpoint_" + RANDOM_SUFFIX;
public static final String S3_KEY = "UT_S3_Key_1_" + RANDOM_SUFFIX;
public static final String S3_KEY_2 = "UT_S3_Key_2_" + RANDOM_SUFFIX;
public static final String S3_KEY_PREFIX = "UT_S3_Key_Prefix_" + RANDOM_SUFFIX;
public static final String S3_OBJECT_TAGGER_ROLE_ARN = "UT_S3_Object_Tagger_Role_Arn_" + RANDOM_SUFFIX;
public static final String S3_OBJECT_TAGGER_ROLE_SESSION_NAME = "UT_S3_Object_Tagger_Role_Session_Name_" + RANDOM_SUFFIX;
public static final String S3_OBJECT_TAG_KEY = "UT_S3_Object_Tag_Key_1_" + RANDOM_SUFFIX;
public static final String S3_OBJECT_TAG_KEY_2 = "UT_S3_Object_Tag_Key_2_" + RANDOM_SUFFIX;
public static final String S3_OBJECT_TAG_VALUE = "UT_S3_Object_Tag_Value_1_" + RANDOM_SUFFIX;
public static final String S3_OBJECT_TAG_VALUE_2 = "UT_S3_Object_Tag_Value_2_" + RANDOM_SUFFIX;
public static final Integer S3_RESTORE_OBJECT_EXPIRATION_IN_DAYS = 7;
public static final String S3_VERSION_ID = "UT_S3_Version_ID_" + RANDOM_SUFFIX;
public static final String[][] SCHEMA_COLUMNS =
new String[][] {{"TINYINT", null}, {"SMALLINT", null}, {"INT", null}, {"BIGINT", null}, {"FLOAT", null}, {"DOUBLE", null}, {"DECIMAL", null},
{"DECIMAL", "p,s"}, {"NUMBER", null}, {"NUMBER", "p"}, {"NUMBER", "p,s"}, {"TIMESTAMP", null}, {"DATE", null}, {"STRING", null}, {"VARCHAR", "n"},
{"VARCHAR2", "n"}, {"CHAR", "n"}, {"BOOLEAN", null}, {"BINARY", null}};
public static final String SCHEMA_COLUMN_NAME_PREFIX = "Clmn-Name";
public static final String SCHEMA_DELIMITER_COMMA = ",";
public static final String SCHEMA_DELIMITER_PIPE = "|";
public static final String SCHEMA_ESCAPE_CHARACTER_BACKSLASH = "\\";
public static final String SCHEMA_ESCAPE_CHARACTER_TILDE = "~";
public static final String SCHEMA_NULL_VALUE_BACKSLASH_N = "\\N";
public static final String SCHEMA_NULL_VALUE_NULL_WORD = "NULL";
public static final String SCHEMA_PARTITION_COLUMN_NAME_PREFIX = "Prtn-Clmn-Name";
public static final String SEARCH_INDEX_DOCUMENT_TYPE = "UT_SearchIndex_DocumentType_" + RANDOM_SUFFIX;
public static final String SEARCH_INDEX_MAPPING = "UT_SearchIndex_Mapping_" + RANDOM_SUFFIX;
public static final String SEARCH_INDEX_NAME = "UT_SearchIndexName_1_" + RANDOM_SUFFIX;
public static final String SEARCH_INDEX_NAME_2 = "UT_SearchIndexName_2_" + RANDOM_SUFFIX;
public static final String SEARCH_INDEX_SETTINGS = "UT_SearchIndex_Settings_" + RANDOM_SUFFIX;
public static final String SEARCH_INDEX_STATUS = "UT_SearchIndexStatus_1_" + RANDOM_SUFFIX;
public static final String SEARCH_INDEX_STATUS_2 = "UT_SearchIndexStatus_2_" + RANDOM_SUFFIX;
public static final String SEARCH_INDEX_TYPE = "UT_SearchIndexType_1_" + RANDOM_SUFFIX;
public static final String SEARCH_INDEX_TYPE_2 = "UT_SearchIndexType_2_" + RANDOM_SUFFIX;
public static final int SEARCH_RESULT_SIZE = 200;
public static final String SEARCH_TERM = "Search Term";
public static final Integer SECOND_DATA_VERSION = 1;
public static final Integer SECOND_FORMAT_VERSION = 1;
public static final Integer SECOND_VERSION = 1;
public static final String SECURITY_FUNCTION = "FN_UT_SECURITY_FUNCTION_1_" + RANDOM_SUFFIX;
public static final String SECURITY_FUNCTION_2 = "FN_UT_SECURITY_FUNCTION_2_" + RANDOM_SUFFIX;
public static final String SECURITY_FUNCTION_3 = "FN_UT_SECURITY_FUNCTION_3_" + RANDOM_SUFFIX;
public static final String SECURITY_ROLE = "FN_UT_SECURITY_ROLE_1_" + RANDOM_SUFFIX;
public static final Boolean SELECT_ONLY_AVAILABLE_STORAGE_UNITS = true;
public static final String SESSION_NAME = "UT_SessionName" + RANDOM_SUFFIX;
public static final String SHORT_DESCRIPTION_FIELD = "shortdescription";
public static final String SINGLE_QUOTE = "'";
public static final List<String> SORTED_LOCAL_FILES =
Arrays.asList("FOO3.DAT", "Foo2.dat", "folder/foo1.dat", "folder/foo2.dat", "folder/foo3.dat", "foo1.dat");
public static final List<String> SORTED_PARTITION_VALUES =
Arrays.asList("2014-04-02", "2014-04-02A", "2014-04-03", "2014-04-04", "2014-04-05", "2014-04-06", "2014-04-07", "2014-04-08");
public static final List<String> STORAGE_1_AVAILABLE_PARTITION_VALUES =
Collections.unmodifiableList(Arrays.asList("2014-04-02", "2014-04-02A", "2014-04-03", "2014-04-05", "2014-04-08"));
public static final String STORAGE_1_GREATEST_PARTITION_VALUE = STORAGE_1_AVAILABLE_PARTITION_VALUES.get(STORAGE_1_AVAILABLE_PARTITION_VALUES.size() - 1);
public static final String STORAGE_1_LEAST_PARTITION_VALUE = STORAGE_1_AVAILABLE_PARTITION_VALUES.get(0);
public static final List<String> STORAGE_1_NOT_AVAILABLE_PARTITION_VALUES =
Collections.unmodifiableList(Arrays.asList("2014-04-04", "2014-04-06", "2014-04-07"));
public static final List<String> STORAGE_2_AVAILABLE_PARTITION_VALUES = Collections.unmodifiableList(Arrays.asList("2014-04-06", "2014-04-08"));
public static final String STORAGE_DIRECTORY_PATH = "UT_Storage_Directory/Some_Path/" + RANDOM_SUFFIX;
public static final String STORAGE_NAME = "UT_Storage_1_" + RANDOM_SUFFIX;
public static final List<String> STORAGE_NAMES = Arrays.asList("UT_Storage_1_" + RANDOM_SUFFIX, "UT_Storage_2_" + RANDOM_SUFFIX);
public static final String STORAGE_NAME_2 = "UT_Storage_2_" + RANDOM_SUFFIX;
public static final String STORAGE_NAME_3 = "UT_Storage_3_" + RANDOM_SUFFIX;
public static final String STORAGE_NAME_4 = "UT_Storage_4_" + RANDOM_SUFFIX;
public static final String STORAGE_NAME_5 = "UT_Storage_5_" + RANDOM_SUFFIX;
public static final String STORAGE_PLATFORM_CODE = "UT_StoragePlatform_1_" + RANDOM_SUFFIX;
public static final String STORAGE_PLATFORM_CODE_2 = "UT_StoragePlatform_2_" + RANDOM_SUFFIX;
public static final String STORAGE_POLICY_NAME = "UT_Storage_Policy_Name_1_" + RANDOM_SUFFIX;
public static final String STORAGE_POLICY_NAMESPACE_CD = "UT_Storage_Policy_Namespace_1_" + RANDOM_SUFFIX;
public static final String STORAGE_POLICY_NAMESPACE_CD_2 = "UT_Storage_Policy_Namespace_2_" + RANDOM_SUFFIX;
public static final String STORAGE_POLICY_NAME_2 = "UT_Storage_Policy_Name_2_" + RANDOM_SUFFIX;
public static final String STORAGE_POLICY_RULE_TYPE = "UT_Storage_Policy_Rule_Type_1_" + RANDOM_SUFFIX;
public static final String STORAGE_POLICY_RULE_TYPE_2 = "UT_Storage_Policy_Rule_Type_2_" + RANDOM_SUFFIX;
public static final Integer STORAGE_POLICY_RULE_VALUE = (int) (Math.random() * Integer.MAX_VALUE);
public static final Integer STORAGE_POLICY_RULE_VALUE_2 = (int) (Math.random() * Integer.MAX_VALUE);
public static final String STORAGE_POLICY_TRANSITION_TYPE = "UT_Storage_Policy_Transition_Type_1_" + RANDOM_SUFFIX;
public static final String STORAGE_POLICY_TRANSITION_TYPE_2 = "UT_Storage_Policy_Transition_Type_2_" + RANDOM_SUFFIX;
public static final Integer STORAGE_POLICY_VERSION = (int) (Math.random() * Integer.MAX_VALUE);
public static final String STORAGE_UNIT_STATUS = "UT_SU_Status_1_" + RANDOM_SUFFIX;
public static final String STORAGE_UNIT_STATUS_2 = "UT_SU_Status_2_" + RANDOM_SUFFIX;
public static final String STORAGE_UNIT_STATUS_3 = "UT_SU_Status_3_" + RANDOM_SUFFIX;
public static final String STORAGE_UNIT_STATUS_4 = "UT_SU_Status_4_" + RANDOM_SUFFIX;
public static final Boolean STORAGE_UNIT_STATUS_AVAILABLE_FLAG_SET = true;
public static final String STRING_VALUE = "UT_SomeText" + RANDOM_SUFFIX;
public static final String STRING_VALUE_2 = "UT_SomeText_2_" + RANDOM_SUFFIX;
public static final List<String> SUBPARTITION_VALUES =
Arrays.asList("Aa" + RANDOM_SUFFIX, "Bb" + RANDOM_SUFFIX, "Cc" + RANDOM_SUFFIX, "Dd" + RANDOM_SUFFIX);
public static final List<String> SUBPARTITION_VALUES_2 =
Arrays.asList("Ee" + RANDOM_SUFFIX, "Ff" + RANDOM_SUFFIX, "Gg" + RANDOM_SUFFIX, "Hh" + RANDOM_SUFFIX);
public static final String SUB_PARTITION_VALUE_1 = "UT_SubPartition_1_" + RANDOM_SUFFIX;
public static final String SUB_PARTITION_VALUE_2 = "UT_SubPartition_2_" + RANDOM_SUFFIX;
public static final List<NamespacePermissionEnum> SUPPORTED_NAMESPACE_PERMISSIONS = Collections.unmodifiableList(
Arrays.asList(NamespacePermissionEnum.READ, NamespacePermissionEnum.WRITE, NamespacePermissionEnum.EXECUTE, NamespacePermissionEnum.GRANT));
public static final String TABLE_NAME = "Test_Table" + RANDOM_SUFFIX;
public static final String TAG_CODE = "UT_TagCode_1_" + RANDOM_SUFFIX;
public static final String TAG_CODE_2 = "UT_TagCode_2_" + RANDOM_SUFFIX;
public static final String TAG_CODE_3 = "UT_TagCode_3_" + RANDOM_SUFFIX;
public static final String TAG_CODE_4 = "UT_TagCode_4_" + RANDOM_SUFFIX;
public static final String TAG_CODE_5 = "UT_TagCode_5_" + RANDOM_SUFFIX;
public static final long TAG_COUNT = 120;
public static final String TAG_DESCRIPTION = "UT_TagDescription_1_" + RANDOM_SUFFIX;
public static final String TAG_DESCRIPTION_2 = "UT_TagDescription_2_" + RANDOM_SUFFIX;
public static final String TAG_DESCRIPTION_3 = "UT_TagDescription_3_" + RANDOM_SUFFIX;
public static final String TAG_DESCRIPTION_4 = "UT_TagDescription_4_" + RANDOM_SUFFIX;
public static final String TAG_DESCRIPTION_5 = "UT_TagDescription_5_" + RANDOM_SUFFIX;
public static final String TAG_DISPLAY_NAME = "UT_TagDisplayName_1_" + RANDOM_SUFFIX;
public static final String TAG_DISPLAY_NAME_2 = "UT_TagDisplayName_2_" + RANDOM_SUFFIX;
public static final String TAG_DISPLAY_NAME_3 = "UT_TagDisplayName_3_" + RANDOM_SUFFIX;
public static final String TAG_DISPLAY_NAME_4 = "UT_TagDisplayName_4_" + RANDOM_SUFFIX;
public static final String TAG_DISPLAY_NAME_5 = "UT_TagDisplayName_5_" + RANDOM_SUFFIX;
public static final Boolean TAG_HAS_CHILDREN = true;
public static final Boolean TAG_HAS_NO_CHILDREN = false;
public static final String TAG_INDEX = "tag";
public static final float TAG_INDEX_BOOST = 1000f;
public static final String TAG_TYPE = "UT_TagType_1_" + RANDOM_SUFFIX;
public static final String TAG_TYPE_2 = "UT_TagType_2_" + RANDOM_SUFFIX;
public static final String TAG_TYPE_CODE = "UT_TagTypeCode_1_" + RANDOM_SUFFIX;
public static final long TAG_TYPE_COUNT = 240;
public static final String TAG_TYPE_DESCRIPTION = "UT_TagTypeDescription_1_" + RANDOM_SUFFIX;
public static final String TAG_TYPE_DESCRIPTION_2 = "UT_TagTypeDescription_2_" + RANDOM_SUFFIX;
public static final String TAG_TYPE_DISPLAY_NAME = "UT_TagTypeDisplayName_1_" + RANDOM_SUFFIX;
public static final String TAG_TYPE_DISPLAY_NAME_2 = "UT_TagTypeDisplayName_2_" + RANDOM_SUFFIX;
public static final Integer TAG_TYPE_ORDER = 1;
public static final Integer TAG_TYPE_ORDER_2 = 2;
public static final String TARGET_S3_KEY = "herd-dao-test-key-prefix" + RANDOM_SUFFIX + "/" + LOCAL_FILE;
public static final String TEST_DDL = "CREATE EXTERNAL TABLE `ITEMS` (\n" +
" `ORGNL_TRANSFORM` INT,\n" +
" `DATA` DOUBLE)\n" +
"PARTITIONED BY (`TRANSFORM` INT)\n" +
"ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' ESCAPED BY '\\\\' NULL DEFINED AS '\\001'\n" +
"STORED AS TEXTFILE;";
public static final String TEST_DDL_2 = "DROP TABLE `Test`;\n" + "CREATE EXTERNAL TABLE `TEST`;";
public static final String TEST_S3_KEY_PREFIX = "herd-dao-test-key-prefix" + RANDOM_SUFFIX;
public static final String TEST_S3_KEY_PREFIX_2 = "herd-dao-test-key-prefix-2-" + RANDOM_SUFFIX;
public static final Integer THIRD_DATA_VERSION = 2;
public static final Integer THIRD_FORMAT_VERSION = 2;
public static final Integer THIRD_VERSION = 2;
public static final List<String> UNSORTED_PARTITION_VALUES =
Arrays.asList("2014-04-02", "2014-04-04", "2014-04-03", "2014-04-02A", "2014-04-08", "2014-04-07", "2014-04-05", "2014-04-06");
public static final XMLGregorianCalendar UPDATED_ON = HerdDateUtils.getXMLGregorianCalendarValue(getRandomDate());
public static final String UPLOADER_ROLE_ARN = "UT_UploaderRoleArn" + RANDOM_SUFFIX;
public static final String USER_EMAIL_ADDRESS = "UT_User_Email_Address_" + RANDOM_SUFFIX;
public static final String USER_FULL_NAME = "UT_User_Full_Name_" + RANDOM_SUFFIX;
public static final String USER_ID = "UT_User_Id_1_" + RANDOM_SUFFIX;
public static final String USER_ID_2 = "UT_User_Id_2_" + RANDOM_SUFFIX;
public static final String USER_ID_3 = "UT_User_Id_3_" + RANDOM_SUFFIX;
public static final String USER_JOB_TITLE = "UT_User_Job_Title_" + RANDOM_SUFFIX;
public static final String USER_TELEPHONE_NUMBER = "UT_User_Telephone_Number_" + RANDOM_SUFFIX;
private static final String OVERRIDE_PROPERTY_SOURCE_MAP_NAME = "overrideMapPropertySource";
// A holding location for a property source.
// When we remove the property source from the environment, we will place it here as a holding area. Then when we want to add it back into the
// environment, we will take it from this holding area and put it back in the environment. When the property source is in the environment, we
// set this holder to null.
public ReloadablePropertySource propertySourceHoldingLocation;
@Autowired
protected AllowedAttributeValueDaoTestHelper allowedAttributeValueDaoTestHelper;
@Autowired
protected AttributeValueListDao attributeValueListDao;
@Autowired
protected AttributeValueListDaoTestHelper attributeValueListDaoTestHelper;
@Autowired
protected BusinessObjectDataAttributeDao businessObjectDataAttributeDao;
@Autowired
protected BusinessObjectDataAttributeDaoTestHelper businessObjectDataAttributeDaoTestHelper;
@Autowired
protected BusinessObjectDataAvailabilityTestHelper businessObjectDataAvailabilityTestHelper;
@Autowired
protected BusinessObjectDataDao businessObjectDataDao;
@Autowired
protected BusinessObjectDataDaoTestHelper businessObjectDataDaoTestHelper;
@Autowired
protected BusinessObjectDataNotificationRegistrationDao businessObjectDataNotificationRegistrationDao;
@Autowired
protected BusinessObjectDataStatusDao businessObjectDataStatusDao;
@Autowired
protected BusinessObjectDataStatusDaoTestHelper businessObjectDataStatusDaoTestHelper;
@Autowired
protected BusinessObjectDefinitionColumnDao businessObjectDefinitionColumnDao;
@Autowired
protected BusinessObjectDefinitionColumnDaoTestHelper businessObjectDefinitionColumnDaoTestHelper;
@Autowired
protected BusinessObjectDefinitionDao businessObjectDefinitionDao;
@Autowired
protected BusinessObjectDefinitionDaoTestHelper businessObjectDefinitionDaoTestHelper;
@Autowired
protected BusinessObjectDefinitionSubjectMatterExpertDao businessObjectDefinitionSubjectMatterExpertDao;
@Autowired
protected BusinessObjectDefinitionSubjectMatterExpertDaoTestHelper businessObjectDefinitionSubjectMatterExpertDaoTestHelper;
@Autowired
protected BusinessObjectDefinitionTagDao businessObjectDefinitionTagDao;
@Autowired
protected BusinessObjectDefinitionTagDaoTestHelper businessObjectDefinitionTagDaoTestHelper;
@Autowired
protected BusinessObjectFormatDao businessObjectFormatDao;
@Autowired
protected BusinessObjectFormatDaoTestHelper businessObjectFormatDaoTestHelper;
@Autowired
protected ConfigurationDao configurationDao;
@Autowired
protected CustomDdlDao customDdlDao;
@Autowired
protected CustomDdlDaoTestHelper customDdlDaoTestHelper;
@Autowired
protected DataProviderDao dataProviderDao;
@Autowired
protected DataProviderDaoTestHelper dataProviderDaoTestHelper;
@Autowired
protected Ec2Dao ec2Dao;
@Autowired
protected EmrClusterDefinitionDao emrClusterDefinitionDao;
@Autowired
protected EmrClusterDefinitionDaoTestHelper emrClusterDefinitionDaoTestHelper;
@Autowired
protected EmrDao emrDao;
@PersistenceContext
protected EntityManager entityManager;
@Autowired
protected ExpectedPartitionValueDao expectedPartitionValueDao;
@Autowired
protected ExpectedPartitionValueDaoTestHelper expectedPartitionValueDaoTestHelper;
@Autowired
protected FileTypeDao fileTypeDao;
@Autowired
protected FileTypeDaoTestHelper fileTypeDaoTestHelper;
@Autowired
protected GlobalAttributeDefinitionDao globalAttributeDefinitionDao;
@Autowired
protected GlobalAttributeDefinitionDaoTestHelper globalAttributeDefinitionDaoTestHelper;
@Autowired
protected GlobalAttributeDefinitionLevelDao globalAttributeDefinitionLevelDao;
@Autowired
protected GlobalAttributeDefinitionLevelDaoTestHelper globalAttributeDefinitionLevelDaoTestHelper;
@Autowired
protected HerdCollectionHelper herdCollectionHelper;
// Provide easy access to the herd DAO for all test methods.
@Autowired
protected HerdDao herdDao;
@Autowired
protected JavaPropertiesHelper javaPropertiesHelper;
@Autowired
protected JdbcDao jdbcDao;
@Autowired
protected JmsMessageDao jmsMessageDao;
@Autowired
protected JmsMessageDaoTestHelper jmsMessageDaoTestHelper;
@Autowired
protected JobDefinitionDao jobDefinitionDao;
@Autowired
protected JobDefinitionDaoTestHelper jobDefinitionDaoTestHelper;
@Autowired
protected KmsDao kmsDao;
@Autowired
protected NamespaceDao namespaceDao;
@Autowired
protected NamespaceDaoTestHelper namespaceDaoTestHelper;
@Autowired
protected NotificationEventTypeDao notificationEventTypeDao;
@Autowired
protected NotificationRegistrationDao notificationRegistrationDao;
@Autowired
protected NotificationRegistrationDaoTestHelper notificationRegistrationDaoTestHelper;
@Autowired
protected NotificationRegistrationStatusDao notificationRegistrationStatusDao;
@Autowired
protected OnDemandPriceDao onDemandPriceDao;
@Autowired
protected PartitionKeyGroupDao partitionKeyGroupDao;
@Autowired
protected PartitionKeyGroupDaoTestHelper partitionKeyGroupDaoTestHelper;
// Provide easy access to the S3 DAO for all test methods.
@Autowired
protected S3Dao s3Dao;
@Autowired
protected S3DaoTestHelper s3DaoTestHelper;
@Autowired
protected S3Operations s3Operations;
@Autowired
protected SchemaColumnDao schemaColumnDao;
@Autowired
protected SchemaColumnDaoTestHelper schemaColumnDaoTestHelper;
@Autowired
protected SearchIndexDao searchIndexDao;
@Autowired
protected SearchIndexDaoTestHelper searchIndexDaoTestHelper;
@Autowired
protected SearchIndexStatusDao searchIndexStatusDao;
@Autowired
protected SearchIndexStatusDaoTestHelper searchIndexStatusDaoTestHelper;
@Autowired
protected SearchIndexTypeDao searchIndexTypeDao;
@Autowired
protected SearchIndexTypeDaoTestHelper searchIndexTypeDaoTestHelper;
@Autowired
protected SecurityFunctionDao securityFunctionDao;
@Autowired
protected SqsDao sqsDao;
@Autowired
protected StorageDao storageDao;
@Autowired
protected StorageDaoTestHelper storageDaoTestHelper;
@Autowired
protected StorageFileDao storageFileDao;
@Autowired
protected StorageFileDaoTestHelper storageFileDaoTestHelper;
@Autowired
protected StoragePlatformDao storagePlatformDao;
@Autowired
protected StoragePlatformDaoTestHelper storagePlatformDaoTestHelper;
@Autowired
protected StoragePolicyDao storagePolicyDao;
@Autowired
protected StoragePolicyDaoTestHelper storagePolicyDaoTestHelper;
@Autowired
protected StoragePolicyRuleTypeDao storagePolicyRuleTypeDao;
@Autowired
protected StoragePolicyRuleTypeDaoTestHelper storagePolicyRuleTypeDaoTestHelper;
@Autowired
protected StoragePolicyStatusDao storagePolicyStatusDao;
@Autowired
protected StoragePolicyTransitionTypeDao storagePolicyTransitionTypeDao;
@Autowired
protected StoragePolicyTransitionTypeDaoTestHelper storagePolicyTransitionTypeDaoTestHelper;
@Autowired
protected StorageUnitDao storageUnitDao;
@Autowired
protected StorageUnitDaoTestHelper storageUnitDaoTestHelper;
@Autowired
protected StorageUnitNotificationRegistrationDao storageUnitNotificationRegistrationDao;
@Autowired
protected StorageUnitStatusDao storageUnitStatusDao;
@Autowired
protected StorageUnitStatusDaoTestHelper storageUnitStatusDaoTestHelper;
@Autowired
protected StsDao stsDao;
@Autowired
protected SubjectMatterExpertDao subjectMatterExpertDao;
@Autowired
protected TagDao tagDao;
@Autowired
protected TagDaoTestHelper tagDaoTestHelper;
@Autowired
protected TagTypeDao tagTypeDao;
@Autowired
protected TagTypeDaoTestHelper tagTypeDaoTestHelper;
@Autowired
protected TrustingAccountDao trustingAccountDao;
@Autowired
protected TrustingAccountDaoTestHelper trustingAccountDaoTestHelper;
@Autowired
protected UserDao userDao;
@Autowired
protected UserDaoTestHelper userDaoTestHelper;
@Autowired
protected UserNamespaceAuthorizationDao userNamespaceAuthorizationDao;
@Autowired
protected UserNamespaceAuthorizationDaoTestHelper userNamespaceAuthorizationDaoTestHelper;
/**
* Modifies the re-loadable property source. Copies all the existing properties and overrides with the properties passed in the map.
*
* @param overrideMap a map containing the properties.
*
* @throws Exception if the property source couldn't be modified.
*/
protected void modifyPropertySourceInEnvironment(Map<String, Object> overrideMap) throws Exception
{
removeReloadablePropertySourceFromEnvironment();
Map<String, Object> updatedPropertiesMap = new HashMap<>();
updatedPropertiesMap.putAll(propertySourceHoldingLocation.getSource());
updatedPropertiesMap.putAll(overrideMap);
// Re-add in the property source we previously removed.
getMutablePropertySources().addLast(new MapPropertySource(OVERRIDE_PROPERTY_SOURCE_MAP_NAME, updatedPropertiesMap));
}
/**
* Removes the re-loadable properties source from the environment. It must not have been removed already. It can be added back using the
* addReloadablePropertySourceToEnvironment method.
*
* @throws Exception if the property source couldn't be removed.
*/
protected void removeReloadablePropertySourceFromEnvironment() throws Exception
{
// If the property source is in the holding location, then it has already been removed from the environment so throw an exception since it
// shouldn't be removed again (i.e. it should be re-added first and then possibly removed again if needed).
if (propertySourceHoldingLocation != null)
{
throw new Exception("Reloadable property source has already been removed.");
}
MutablePropertySources mutablePropertySources = getMutablePropertySources();
propertySourceHoldingLocation = (ReloadablePropertySource) mutablePropertySources.remove(ReloadablePropertySource.class.getName());
// Verify that the property source was removed and returned.
if (propertySourceHoldingLocation == null)
{
throw new Exception("Property source with name \"" + ReloadablePropertySource.class.getName() +
"\" is not configured and couldn't be removed from the environment.");
}
}
/**
* Restores the re-loadable property source back into the environment. It must have first been removed using the modifyPropertySourceInEnvironment method.
*
* @throws Exception if the property source wasn't previously removed or couldn't be re-added.
*/
protected void restorePropertySourceInEnvironment() throws Exception
{
// If the property source isn't in the holding area, then it hasn't yet been removed from the environment so throw an exception informing the
// caller that it first needs to be removed before it can be added back in.
if (propertySourceHoldingLocation == null)
{
throw new Exception("Reloadable property source hasn't yet been removed so it can not be re-added.");
}
// Remove the modified map
MutablePropertySources mutablePropertySources = getMutablePropertySources();
mutablePropertySources.remove(OVERRIDE_PROPERTY_SOURCE_MAP_NAME);
// Re-add in the property source we previously removed.
getMutablePropertySources().addLast(propertySourceHoldingLocation);
// Remove the property source so we know it was re-added.
propertySourceHoldingLocation = null;
}
}