func (c DistributedConfigDownloader) DownloadConfiguration(securityToken string, namespace string, class string) StoreConfiguration {

	//Getting Auto Increment Information
	//	incrementConfigs := cebadapter.GetGlobalConfig("AutoIncrementMetaStore")
	//retIncrementConfig := getDefaultConfigurations(getConfigurationIndex("Default", incrementConfigs), incrementConfigs)

	//Getting Objectstore Settings
	configAll := cebadapter.GetGlobalConfig("StoreConfig")

	//Get Default Configurations
	retConfig := getDefaultConfigurations(getConfigurationIndex("Default", configAll), configAll)

	//Check for overriding Configurations
	isOverride, overrideIndex := CheckIfOverridable(configAll, namespace, class)
	//if Overridable ->
	if isOverride {

		for _, value := range overrideIndex {
			retConfig = overrideConfigurations(value, configAll, retConfig)
		}

	}
	//Copy Auto Incremental Settings to Final return Configurations
	//retConfig.AutoIncrementMetaData = retIncrementConfig.AutoIncrementMetaData
	return retConfig

}
func (c DistributedConfigDownloader) DownloadConfiguration() StoreServiceConfiguration {
	configAll := cebadapter.GetGlobalConfig("ServiceConfig")
	configMap := configAll[0].(map[string]interface{})
	retConfig := StoreServiceConfiguration{}

	retConfig.ServerConfiguration = make(map[string]map[string]string)

	//retConfig.StorageEngine = configMap["StorageEngine"].(string)
	//retConfig.StoreId = configMap["StoreId"].(string)

	for k, v := range configMap["ServerConfiguration"].(map[string]interface{}) {
		inMap := make(map[string]string)

		for k1, v2 := range v.(map[string]interface{}) {
			inMap[k1] = v2.(string)
		}
		retConfig.ServerConfiguration[k] = inMap
	}

	retConfig.PublisherConfiguration = make(map[string]map[string]RoutingKeys)

	for k, v := range configMap["PublisherConfiguration"].(map[string]interface{}) {

		inMap := make(map[string]RoutingKeys)

		for k1, v2 := range v.(map[string]interface{}) {

			temp := ""

			if reflect.TypeOf(v2) == reflect.TypeOf(temp) {
				inMap[k1] = RoutingKeys{}
			} else {

				var routeKeyMap map[string]string
				routeKeyMap = make(map[string]string)

				for kk, vv := range v2.(map[string]interface{}) {
					routeKeyMap[kk] = vv.(string)
				}

				inMap[k1] = RoutingKeys{routeKeyMap}

			}

		}

		retConfig.PublisherConfiguration[k] = inMap
	}

	return retConfig

}
func (c DistributedConfigDownloader) DownloadConfiguration() NotifierConfiguration {
	configAll := cebadapter.GetGlobalConfig("DuoNotifier")
	configMap := configAll[0].(map[string]interface{})
	retConfig := NotifierConfiguration{}

	retConfig.NotifyMethodsConfig = make(map[string]map[string]string)

	retConfig.NotifyId = configMap["NotifyId"].(string)

	for k, v := range configMap["NotifyMethodsConfig"].(map[string]interface{}) {
		inMap := make(map[string]string)

		for k1, v2 := range v.(map[string]interface{}) {
			inMap[k1] = v2.(string)
		}
		retConfig.NotifyMethodsConfig[k] = inMap
	}
	return retConfig

}