AXIS2_EXTERN axis2_char_t *AXIS2_CALL axis2_arch_file_data_get_name( const axis2_arch_file_data_t * arch_file_data, const axutil_env_t * env) { return axutil_file_get_name(arch_file_data->file, env); }
AXIS2_EXTERN axis2_char_t *AXIS2_CALL axis2_arch_file_data_get_module_name( const axis2_arch_file_data_t * arch_file_data, const axutil_env_t * env) { axis2_char_t *module_name = NULL; if (arch_file_data->file) { module_name = axutil_file_get_name(arch_file_data->file, env); } else { module_name = arch_file_data->module_name; } return module_name; }
AXIS2_EXTERN axis2_arch_file_data_t *AXIS2_CALL axis2_arch_file_data_create_with_type_and_file( const axutil_env_t * env, int type, axutil_file_t * file) { axis2_arch_file_data_t *arch_file_data = NULL; arch_file_data = (axis2_arch_file_data_t *) axis2_arch_file_data_create(env); if (!arch_file_data) { axis2_char_t *file_name = axutil_file_get_name(file, env); AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Could not create arch_file_data for file %s", file_name); return NULL; } arch_file_data->type = type; arch_file_data->file = axutil_file_clone(file, env); return arch_file_data; }
void test_axutil_dir_handler_list_service_or_module_dirs( ) { int i, isize; axutil_file_t *file = NULL; axis2_char_t *filename = NULL; axutil_allocator_t *allocator = axutil_allocator_init(NULL); axutil_error_t *error = axutil_error_create(allocator); axutil_log_t *log = axutil_log_create(allocator, NULL, NULL); const axutil_env_t *env = axutil_env_create_with_error_log(allocator, error, log); axis2_char_t *pathname = axutil_strdup(env, "/tmp/test/"); axutil_array_list_t *arr_folders = axutil_dir_handler_list_service_or_module_dirs(env, pathname); if (arr_folders == NULL) { printf("List of folders is NULL\n"); return; } isize = axutil_array_list_size(arr_folders, env); printf("Folder array size = %d \n", isize); for (i = 0; i < isize; ++i) { file = (axutil_file_t *) axutil_array_list_get(arr_folders, env, i); filename = axutil_file_get_name(file, env); printf("filename = %s \n", filename); } printf ("----end of test_axutil_dir_handler_list_service_or_module_dirs----\n"); }
AXIS2_EXTERN axis2_status_t AXIS2_CALL axis2_ws_info_list_add_ws_info_item( axis2_ws_info_list_t * ws_info_list, const axutil_env_t * env, axutil_file_t * file, int type) { axis2_status_t status = AXIS2_FAILURE; axis2_char_t *file_name = NULL; axis2_char_t *temp_name = NULL; AXIS2_PARAM_CHECK(env->error, file, AXIS2_FAILURE); temp_name = axutil_file_get_name(file, env); file_name = axutil_strdup(env, temp_name); if(!file_name) { return AXIS2_FAILURE; } switch(type) { case AXIS2_SVC: { axis2_ws_info_t *ws_info = NULL; long last_modified_date = 0; axis2_arch_file_data_t *file_data = NULL; last_modified_date = (long)axutil_file_get_timestamp(file, env); /* We are sure that the difference lies within the long range */ ws_info = axis2_ws_info_create_with_file_name_and_last_modified_date_and_type(env, file_name, last_modified_date, AXIS2_SVC); status = axutil_array_list_add(ws_info_list->ws_info_list, env, ws_info); if(AXIS2_SUCCESS != status) { return status; } file_data = axis2_arch_file_data_create_with_type_and_file(env, AXIS2_SVC, file); /* To inform that new web service is to be deployed */ status = axis2_dep_engine_add_ws_to_deploy(ws_info_list->dep_engine, env, file_data); if(AXIS2_SUCCESS != status) { return status; } break; } case AXIS2_MODULE: { axis2_ws_info_t *ws_info = NULL; long last_modified_date = 0; axis2_arch_file_data_t *file_data = NULL; last_modified_date = (long)axutil_file_get_timestamp(file, env); /* We are sure that the difference lies within the long range */ ws_info = axis2_ws_info_create_with_file_name_and_last_modified_date_and_type(env, file_name, last_modified_date, AXIS2_MODULE); status = axutil_array_list_add(ws_info_list->ws_info_list, env, ws_info); if(AXIS2_SUCCESS != status) { return status; } file_data = axis2_arch_file_data_create_with_type_and_file(env, AXIS2_MODULE, file); /* To inform that new module is to be deployed */ status = axis2_dep_engine_add_ws_to_deploy(ws_info_list->dep_engine, env, file_data); if(AXIS2_SUCCESS != status) { return status; } break; } } return axutil_array_list_add(ws_info_list->current_info_list, env, file_name); }
/** * Folder name could be a repository modules or services folder. If it is modules * folder then current_info_list contain the list of axis2 files corresponding to * the modules within it. For services folder it should be understood similarly. */ static axis2_status_t axis2_repos_listener_search( axis2_repos_listener_t * repos_listener, const axutil_env_t * env, axis2_char_t * folder_name, int type) { int size = 0; int i = 0; axutil_array_list_t *current_info_list = NULL; axis2_status_t status = AXIS2_FAILURE; AXIS2_PARAM_CHECK(env->error, repos_listener, AXIS2_FAILURE); AXIS2_PARAM_CHECK(env->error, folder_name, AXIS2_FAILURE); current_info_list = axutil_dir_handler_list_service_or_module_dirs(env, folder_name); if(!current_info_list) { axis2_status_t status_code = AXIS2_FAILURE; status_code = AXIS2_ERROR_GET_STATUS_CODE(env->error); if(AXIS2_SUCCESS != status) { return status; } AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "No %s in the folder.", folder_name); return AXIS2_SUCCESS; } size = axutil_array_list_size(current_info_list, env); for(i = 0; i < size; i++) /* Loop until empty */ { axutil_file_t *file = NULL; file = axutil_array_list_get(current_info_list, env, i); status = axis2_ws_info_list_add_ws_info_item(repos_listener->info_list, env, file, type); if(AXIS2_SUCCESS != status) { int size_j = 0; int j = 0; axis2_char_t* file_name = axutil_file_get_name(file, env); size_j = axutil_array_list_size(current_info_list, env); for(j = 0; j < size_j; j++) { axutil_file_t *del_file = NULL; del_file = axutil_array_list_get(current_info_list, env, j); axutil_file_free(del_file, env); } axutil_array_list_free(current_info_list, env); current_info_list = NULL; AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Adding file %s to ws info list failed", file_name); return status; } } for(i = 0; i < size; i++) { axutil_file_t *del_file = NULL; del_file = axutil_array_list_get(current_info_list, env, i); axutil_file_free(del_file, env); } axutil_array_list_free(current_info_list, env); current_info_list = NULL; return AXIS2_SUCCESS; }