int get_test_main() { remote_registry_t *remote_registry = NULL; const axutil_env_t *env = NULL; axis2_char_t *path = "/test/10000.txt"; remote_registry_resource_t *res = NULL; remote_registry_resource_t *resource = NULL; axis2_status_t status; axis2_char_t *content = NULL; int i = 0; axutil_array_list_t *child_paths = NULL; int res_len = 0; env = axutil_env_create_all("test.log", AXIS2_LOG_LEVEL_TRACE); remote_registry = remote_registry_create(env, "http://localhost:9762/registry", "admin", "admin"); // getting the resource resource = remote_registry_get(remote_registry, env, path, NULL); content = remote_registry_resource_get_content(resource, env); printf("%s\n", content); resource = remote_registry_get(remote_registry, env, path, NULL); content = remote_registry_resource_get_content(resource, env); printf("%s\n", content); path = "/test/"; resource = remote_registry_get(remote_registry, env, path, NULL); child_paths = remote_registry_resource_get_children(resource, env); for(i = 0; i < axutil_array_list_size(child_paths, env); i ++) { axis2_char_t *child_path = axutil_array_list_get(child_paths, env, i); printf("%d: %s\n", i, child_path); } resource = remote_registry_get(remote_registry, env, path, NULL); child_paths = remote_registry_resource_get_children(resource, env); for(i = 0; i < axutil_array_list_size(child_paths, env); i ++) { axis2_char_t *child_path = axutil_array_list_get(child_paths, env, i); printf("%d: %s\n", i, child_path); } return 0; }
void remove_subscriber(axis2_char_t *id) { remote_registry_t *remote_registry = NULL; const axutil_env_t *env = NULL; remote_registry_resource_t *res = NULL; axis2_char_t *val; axis2_char_t *index_path = NULL; axis2_status_t status = AXIS2_FAILURE; axis2_char_t *path = NULL; axis2_char_t *reg_url = "http://localhost:9762/registry"; env = axutil_env_create_all("test.log", AXIS2_LOG_LEVEL_TRACE); remote_registry = remote_registry_create(env, reg_url, "admin", "admin"); res = remote_registry_get(remote_registry, env, TOPIC_INDEX, NULL); if(!res) { return; } printf("\n\nroot resource id:%s\n\n",remote_registry_resource_get_id(res, env)); val = remote_registry_resource_get_property(res, env, id); if(val) { path = axutil_strcat(env, val, "/", id, NULL); printf("path:%s\n", path); status = remote_registry_delete(remote_registry, env, path); } if(AXIS2_SUCCESS != status) { printf("\nSubscription deletion failed\n"); } res = remote_registry_get(remote_registry, env, TOPIC_INDEX, NULL); if(!res) { return; } printf("\n\nroot resource id:%s\n\n",remote_registry_resource_get_id(res, env)); /*remote_registry_resource_remove_property(res, env, id); remote_registry_resource_set_content(res, env, NULL); remote_registry_resource_set_content_len(res, env, 0); remote_registry_resource_set_parent_path(res, env, "/eventing/index"); index_path = axutil_strcat(env, TOPIC_INDEX, "/TopicIndex", NULL); remote_registry_put(remote_registry, env, index_path, res);*/ remote_registry_resource_free(res, env); }
static void topic_index_init() { remote_registry_t *remote_registry = NULL; const axutil_env_t *env = NULL; remote_registry_resource_t *res = NULL; axis2_char_t *id = NULL; axis2_char_t *reg_url = "http://localhost:9762/registry"; env = axutil_env_create_all("test.log", AXIS2_LOG_LEVEL_TRACE); remote_registry = remote_registry_create(env, reg_url, "admin", "admin"); res = remote_registry_get(remote_registry, env, TOPIC_INDEX, NULL); if(!res) { res = remote_registry_resource_create(env); id = axutil_strcat(env, reg_url, TOPIC_INDEX, NULL); remote_registry_resource_set_properties(res, env, axutil_hash_make(env)); /*remote_registry_resource_set_author_name(res, env, "admin"); */ remote_registry_resource_set_description(res, env, ""); /*remote_registry_resource_set_last_modified_time(res, env, axutil_date_time_create(env));*/ remote_registry_put(remote_registry, env, TOPIC_INDEX, res); return; } }
void get_all_subscribers() { remote_registry_t *remote_registry = NULL; const axutil_env_t *env = NULL; remote_registry_resource_t *res = NULL; axutil_hash_t *properties = NULL; axis2_char_t *path = NULL; axis2_char_t *reg_url = "http://localhost:9762/registry"; env = axutil_env_create_all("test.log", AXIS2_LOG_LEVEL_TRACE); remote_registry = remote_registry_create(env, reg_url, "admin", "admin"); res = remote_registry_get(remote_registry, env, TOPIC_INDEX, NULL); if(!res) { return; } properties = remote_registry_resource_get_properties(res, env); if(properties) { axutil_hash_index_t *hi; void *val; void *key; for (hi = axutil_hash_first(properties, env); hi; hi = axutil_hash_next(env, hi)) { axutil_hash_this(hi, (const void**)&key, NULL, &val); path = axutil_strcat(env, val, "/", key, NULL); res = remote_registry_get(remote_registry, env, path, NULL); if(res) { if(res) { printf("\n\nresource id:%s\n\n",remote_registry_resource_get_id(res, env)); } } remove_subscriber((axis2_char_t *) key); } } remote_registry_resource_free(res, env); }
void get_all_subscribers_for_topic(axis2_char_t *topic) { remote_registry_t *remote_registry = NULL; const axutil_env_t *env = NULL; remote_registry_resource_t *res = NULL; axutil_hash_t *properties = NULL; remote_registry_resource_t *topic_resource = NULL; axis2_char_t *path = NULL; axis2_char_t *reg_url = "http://localhost:9762/registry"; env = axutil_env_create_all("test.log", AXIS2_LOG_LEVEL_TRACE); remote_registry = remote_registry_create(env, reg_url, "admin", "admin"); topic_resource = remote_registry_get(remote_registry, env, topic, NULL); if(topic_resource) { axutil_array_list_t *child_entries = NULL; int i = 0; child_entries = remote_registry_resource_get_entries(topic_resource, env); if(child_entries) { /* load the child entries recursively */ for(i = 0; i < axutil_array_list_size(child_entries, env); i ++) { remote_registry_resource_t *child_resource = NULL; child_resource = (remote_registry_resource_t*)axutil_array_list_get(child_entries, env, i); /* loading the resources */ /*remote_registry_load_content_for_resource(remote_registry, env, child_resource); */ if(child_resource) { printf("\n\nresource id:%s\n\n",remote_registry_resource_get_id(child_resource, env)); } } } } }
int add_subscriber() { remote_registry_t *remote_registry = NULL; const axutil_env_t *env = NULL; axis2_char_t *subscription_id = NULL; axis2_char_t *id = NULL; axis2_char_t *path = NULL; axis2_char_t *index_path = NULL; remote_registry_resource_t *res = NULL; axutil_hash_t *properties = NULL; char *content = (char *) strdup("<subscription><syn:endpoint xmlns:syn=\"http://ws.apache.org/ns/synapse\"><syn:address uri=\"http://localhost:9000/services/SimpleStockQuoteService\" /></syn:endpoint></subscription>"); axis2_char_t *epr_type = "application/vnd.epr"; axis2_char_t *filter = "/weather/4/"; axis2_char_t *reg_url = "http://localhost:9762/registry"; env = axutil_env_create_all("test.log", AXIS2_LOG_LEVEL_TRACE); subscription_id = axutil_strcat(env, "urn:uuid:", axutil_uuid_gen(env), NULL); path = axutil_strcat(env, filter, SUBSCRIPTION_COLLECTION_NAME, "/", subscription_id, NULL); id = axutil_strcat(env, reg_url, filter, SUBSCRIPTION_COLLECTION_NAME, "/", subscription_id, NULL); remote_registry = remote_registry_create(env, reg_url, "admin", "admin"); topic_index_init(); res = remote_registry_resource_create(env); remote_registry_resource_set_content(res, env, content); remote_registry_resource_set_content_len(res, env, axutil_strlen(content)); remote_registry_resource_set_media_type(res, env, epr_type); remote_registry_resource_set_description(res, env, ""); properties = axutil_hash_make(env); if(properties) { axutil_hash_set(properties, axutil_strdup(env, "expires"), AXIS2_HASH_KEY_STRING, axutil_strdup(env, "*")); axutil_hash_set(properties, axutil_strdup(env, "staticFlag"), AXIS2_HASH_KEY_STRING, axutil_strdup(env, "false")); axutil_hash_set(properties, axutil_strdup(env, "filterValue"), AXIS2_HASH_KEY_STRING, axutil_strdup(env, filter)); axutil_hash_set(properties, axutil_strdup(env, "subManagerURI"), AXIS2_HASH_KEY_STRING, axutil_strdup(env, "http://10.100.1.44:8280/services/SampleEventSource")); axutil_hash_set(properties, axutil_strdup(env, "filterDialect"), AXIS2_HASH_KEY_STRING, axutil_strdup(env, "http://synapse.apache.org/eventing/dialect/topicFilter")); remote_registry_resource_set_properties(res, env, properties); } remote_registry_put(remote_registry, env, path, res); if(id) { AXIS2_FREE(env->allocator, id); } if(path) { AXIS2_FREE(env->allocator, path); path = NULL; } if(res) { remote_registry_resource_free(res, env); res = NULL; } res = remote_registry_get(remote_registry, env, TOPIC_INDEX, NULL); if(!res) { return 0; } id = axutil_strcat(env, reg_url, TOPIC_INDEX, NULL); properties = remote_registry_resource_get_properties(res, env); if(properties) { path = axutil_strcat(env, filter, SUBSCRIPTION_COLLECTION_NAME, NULL); axutil_hash_set(properties, subscription_id, AXIS2_HASH_KEY_STRING, path); remote_registry_resource_set_properties(res, env, properties); } remote_registry_resource_set_content(res, env, NULL); remote_registry_resource_set_content_len(res, env, 0); index_path = axutil_strcat(env, TOPIC_INDEX, "/TopicIndex", NULL); remote_registry_put(remote_registry, env, TOPIC_INDEX, res); if(id) { AXIS2_FREE(env->allocator, id); } if(res) { remote_registry_resource_free(res, env); res = NULL; } printf("\n"); return 0; }