You are viewing a plain text version of this content. The canonical link for it is here.
Posted to savan-dev@ws.apache.org by da...@apache.org on 2007/09/06 13:09:59 UTC
svn commit: r573220 - in /webservices/savan/trunk/c:
samples/client/subscriber/subscriber.c src/subs_mgr/subs_mgr.c
src/util/savan_util.c
Author: damitha
Date: Thu Sep 6 04:09:58 2007
New Revision: 573220
URL: http://svn.apache.org/viewvc?rev=573220&view=rev
Log:
Improving performance
Modified:
webservices/savan/trunk/c/samples/client/subscriber/subscriber.c
webservices/savan/trunk/c/src/subs_mgr/subs_mgr.c
webservices/savan/trunk/c/src/util/savan_util.c
Modified: webservices/savan/trunk/c/samples/client/subscriber/subscriber.c
URL: http://svn.apache.org/viewvc/webservices/savan/trunk/c/samples/client/subscriber/subscriber.c?rev=573220&r1=573219&r2=573220&view=diff
==============================================================================
--- webservices/savan/trunk/c/samples/client/subscriber/subscriber.c (original)
+++ webservices/savan/trunk/c/samples/client/subscriber/subscriber.c Thu Sep 6 04:09:58 2007
@@ -41,7 +41,7 @@
axutil_hash_t *savan_options = NULL;
axis2_status_t status = AXIS2_FAILURE;
savan_client_t *savan_client = NULL;
- axis2_char_t *expire_time = NULL;
+ axis2_char_t *subs_status = NULL;
/* Set up the environment */
env = axutil_env_create_all("subscriber.log", AXIS2_LOG_LEVEL_TRACE);
@@ -112,15 +112,11 @@
endpoint_ref = axis2_options_get_to(options, env);
axis2_endpoint_ref_set_address(endpoint_ref, env, address);
status = savan_client_renew(savan_client, env, svc_client, savan_options);
- expire_time = savan_client_get_status(savan_client, env, svc_client);
if (status == AXIS2_SUCCESS)
{
printf("Renew successful\n");
- if (expire_time)
- printf("New expire time: %s\n", expire_time);
}
-
AXIS2_SLEEP(1);
printf("\n***************************************\n");
@@ -129,11 +125,11 @@
address = savan_client_get_sub_url(savan_client);
endpoint_ref = axis2_options_get_to(options, env);
axis2_endpoint_ref_set_address(endpoint_ref, env, address);
- expire_time = savan_client_get_status(savan_client, env, svc_client);
- if (expire_time)
+ axis2_svc_client_remove_all_headers(svc_client, env);
+ subs_status = savan_client_get_status(savan_client, env, svc_client);
+ if (subs_status)
{
printf("GetStatus successful\n");
- printf("New expire time: %s\n", expire_time);
}
AXIS2_SLEEP(5);
@@ -144,6 +140,7 @@
address = savan_client_get_sub_url(savan_client);
endpoint_ref = axis2_options_get_to(options, env);
axis2_endpoint_ref_set_address(endpoint_ref, env, address);
+ axis2_svc_client_remove_all_headers(svc_client, env);
status = savan_client_unsubscribe(savan_client, env, svc_client);
if (status == AXIS2_SUCCESS)
{
Modified: webservices/savan/trunk/c/src/subs_mgr/subs_mgr.c
URL: http://svn.apache.org/viewvc/webservices/savan/trunk/c/src/subs_mgr/subs_mgr.c?rev=573220&r1=573219&r2=573220&view=diff
==============================================================================
--- webservices/savan/trunk/c/src/subs_mgr/subs_mgr.c (original)
+++ webservices/savan/trunk/c/src/subs_mgr/subs_mgr.c Thu Sep 6 04:09:58 2007
@@ -35,8 +35,7 @@
axis2_endpoint_ref_t *endto_epr = NULL;
axis2_endpoint_ref_t *notify_epr = NULL;
axutil_param_t *param = NULL;
- axutil_hash_t *topic_store = NULL;
- axutil_hash_t *store = NULL;
+ axutil_hash_t *subs_store = NULL;
axis2_char_t *topic_url = NULL;
axis2_char_t *topic = NULL;
@@ -69,26 +68,27 @@
axis2_char_t *filter = NULL;
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
- "[ML] Start:savan_subs_mgr_add_subscriber");
+ "[SAVAN] Start:savan_subs_mgr_add_subscriber");
subs_svc = axis2_msg_ctx_get_svc(msg_ctx, env);
- param = axis2_svc_get_param(subs_svc, env, SAVAN_TOPIC_LIST);
+ param = axis2_svc_get_param(subs_svc, env, SAVAN_SUBSCRIBER_LIST);
if (!param)
{
/* Store not found. Create and set it as a param */
- savan_util_set_store(subs_svc, env, SAVAN_TOPIC_LIST);
- param = axis2_svc_get_param(subs_svc, env, SAVAN_TOPIC_LIST);
+ savan_util_set_store(subs_svc, env, SAVAN_SUBSCRIBER_LIST);
+ param = axis2_svc_get_param(subs_svc, env, SAVAN_SUBSCRIBER_LIST);
}
- topic_store = (axutil_hash_t*)axutil_param_get_value(param, env);
- if(!topic_store)
+ subs_store = (axutil_hash_t*)axutil_param_get_value(param, env);
+ if(!subs_store)
{
- AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[ML] Failed to extract the "
- "subscriber store");
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+ "[SAVAN] Failed to extract the subscriber store");
return NULL;
}
add_sub_elem = (axiom_element_t*)axiom_node_get_data_element(add_sub_node, env);
- AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[ML] node:%s", axiom_node_to_string(add_sub_node, env));
+ AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
+ "[SAVAN] node:%s", axiom_node_to_string(add_sub_node, env));
/*Get topic element from node */
qname = axutil_qname_create(env, ELEM_NAME_TOPIC, SAVAN_NAMESPACE, NULL);
topic_elem = axiom_element_get_first_child_with_qname(add_sub_elem, env, qname,
@@ -96,21 +96,13 @@
axutil_qname_free(qname, env);
topic_url = axiom_element_get_text(topic_elem, env, topic_node);
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
- "[ML] Subscriber will be added to the topic:%s ", topic_url);
+ "[SAVAN] Subscriber will be added to the topic:%s ", topic_url);
topic = savan_util_get_topic_name_from_topic_url(env, topic_url);
- store = axutil_hash_get(topic_store, topic, AXIS2_HASH_KEY_STRING);
- if(!store)
- {
- store = axutil_hash_make(env);
- axutil_hash_set(topic_store, topic, AXIS2_HASH_KEY_STRING, store);
- AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
- "[ML] Topic:%s is added to the store", topic);
- }
subscriber = savan_subscriber_create(env);
if (!subscriber)
{
- AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[ML] Failed to create a"
- "subscriber instance");
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+ "[SAVAN] Failed to create a subscriber instance");
return NULL;
}
/* Set topic element */
@@ -181,14 +173,14 @@
filter = axiom_element_get_text(filter_elem, env, filter_node);
savan_subscriber_set_filter(subscriber, env, filter);
- if(store)
+ if(subs_store)
{
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
- "[ML] Subscriber %s added to the topic:%s", id, topic_url);
- axutil_hash_set(store, id, AXIS2_HASH_KEY_STRING, subscriber);
+ "[SAVAN] Subscriber %s added to the topic:%s", id, topic_url);
+ axutil_hash_set(subs_store, id, AXIS2_HASH_KEY_STRING, subscriber);
}
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
- "[ML] End:savan_subs_mgr_add_subscriber");
+ "[SAVAN] End:savan_subs_mgr_add_subscriber");
return NULL;
}
@@ -200,8 +192,7 @@
{
axis2_svc_t *subs_svc = NULL;
axutil_param_t *param = NULL;
- axutil_hash_t *topic_store = NULL;
- axutil_hash_t *store = NULL;
+ axutil_hash_t *subs_store = NULL;
axis2_char_t *topic = NULL;
axis2_char_t *topic_url = NULL;
savan_subscriber_t *subscriber = NULL;
@@ -218,27 +209,27 @@
axis2_char_t *id = NULL;
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
- "[ML] Start:savan_subs_mgr_remove_subscriber");
+ "[SAVAN] Start:savan_subs_mgr_remove_subscriber");
subs_svc = axis2_msg_ctx_get_svc(msg_ctx, env);
- param = axis2_svc_get_param(subs_svc, env, SAVAN_TOPIC_LIST);
+ param = axis2_svc_get_param(subs_svc, env, SAVAN_SUBSCRIBER_LIST);
if (!param)
{
- AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[ML] Failed to extract the "
- "subscriber store");
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+ "[SAVAN] Failed to extract the subscriber store");
return NULL;
}
- topic_store = (axutil_hash_t*)axutil_param_get_value(param, env);
- if(!topic_store)
+ subs_store = (axutil_hash_t*)axutil_param_get_value(param, env);
+ if(!subs_store)
{
- AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[ML] Failed to extract the "
- "subscriber store");
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+ "[SAVAN] Failed to extract the subscriber store");
return NULL;
}
remove_sub_elem = (axiom_element_t*)axiom_node_get_data_element(
remove_sub_node, env);
- AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[ML] node:%s",
+ AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[SAVAN] node:%s",
axiom_node_to_string(remove_sub_node, env));
/*Get topic element from node */
qname = axutil_qname_create(env, ELEM_NAME_TOPIC, SAVAN_NAMESPACE, NULL);
@@ -248,14 +239,7 @@
topic_url = axiom_element_get_text(topic_elem, env, topic_node);
topic = savan_util_get_topic_name_from_topic_url(env, topic_url);
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
- "[ML] Subscriber will be removed from the topic:%s ", topic);
- store = axutil_hash_get(topic_store, topic, AXIS2_HASH_KEY_STRING);
- if(!store)
- {
- AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
- "[ML] There are no subscribers for the ", topic_url);
- return NULL;
- }
+ "[SAVAN] Subscriber will be removed from the topic:%s ", topic);
/* Get Id element from RemoveSubscriber*/
qname = axutil_qname_create(env, ELEM_NAME_ID, SAVAN_NAMESPACE, NULL);
@@ -266,16 +250,16 @@
id = axiom_element_get_text(id_elem, env, id_node);
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
- "[ML] Removing subscriber with id %s from topic %s", id, topic_url);
+ "[SAVAN] Removing subscriber with id %s from topic %s", id, topic_url);
- axutil_hash_set(store, id, AXIS2_HASH_KEY_STRING, NULL);
- subscriber = axutil_hash_get(store, id, AXIS2_HASH_KEY_STRING);
+ axutil_hash_set(subs_store, id, AXIS2_HASH_KEY_STRING, NULL);
+ subscriber = axutil_hash_get(subs_store, id, AXIS2_HASH_KEY_STRING);
if(subscriber)
savan_subscriber_free(subscriber, env);
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
- "[ML] Subscriber %s removed from the topic:%s", id, topic_url);
+ "[SAVAN] Subscriber %s removed from the topic:%s", id, topic_url);
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
- "[ML] End:savan_subs_mgr_remove_subscriber");
+ "[SAVAN] End:savan_subs_mgr_remove_subscriber");
return NULL;
}
@@ -288,40 +272,35 @@
axis2_svc_t *subs_svc = NULL;
axutil_param_t *param = NULL;
- axis2_char_t *topic_url = NULL;
- axis2_char_t *topic = NULL;
- axutil_hash_t *topic_store = NULL;
- axutil_hash_t *store = NULL;
+ axutil_hash_t *subs_store = NULL;
axutil_hash_index_t *hi = NULL;
axiom_namespace_t *ns = NULL;
axiom_namespace_t *ns1 = NULL;
axiom_node_t *subs_list_node = NULL;
- axiom_node_t *topic_parent_node = NULL;
- axiom_node_t *topic_node = NULL;
axiom_element_t* subs_list_elem = NULL;
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
"Start:savan_subs_mgr_get_subscriber_list");
subs_svc = axis2_msg_ctx_get_svc(msg_ctx, env);
- param = axis2_svc_get_param(subs_svc, env, SAVAN_TOPIC_LIST);
+ param = axis2_svc_get_param(subs_svc, env, SAVAN_SUBSCRIBER_LIST);
if (!param)
{
- savan_util_set_store(subs_svc, env, SAVAN_TOPIC_LIST);
- param = axis2_svc_get_param(subs_svc, env, SAVAN_TOPIC_LIST);
- AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[savan] Savan Topic List is empty");
+ savan_util_set_store(subs_svc, env, SAVAN_SUBSCRIBER_LIST);
+ param = axis2_svc_get_param(subs_svc, env, SAVAN_SUBSCRIBER_LIST);
+ AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
+ "[SAVAN] Savan Topic List is empty");
}
- topic_store = (axutil_hash_t*)axutil_param_get_value(param, env);
- if(!topic_store)
+ subs_store = (axutil_hash_t*)axutil_param_get_value(param, env);
+ if(!subs_store)
{
- AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[ML] Failed to extract the "
- "subscriber store");
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+ "[SAVAN] Failed to extract the subscriber store");
return NULL;
}
/* Expected request format is :-
* <ns1:get_subscriber_list xmlns:ns1="http://ws.apache.org/savan">
- * <Topic>topic_url</Topic>
* <ns:Susbscriber xmlns:ns="http://schemas.xmlsoap.org/ws/2004/08/eventing">
* ...
* </ns:Subscriber>
@@ -339,62 +318,16 @@
return NULL;
}
- topic_parent_node = axiom_node_get_first_element(node, env);
- if (!topic_parent_node)
- {
- AXIS2_ERROR_SET(env->error,
- AXIS2_ERROR_SVC_SKEL_INVALID_XML_FORMAT_IN_REQUEST, AXIS2_FAILURE);
- AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
- "Echo client ERROR 1: invalid XML in request");
- return NULL;
- }
-
- topic_node = axiom_node_get_first_child(topic_parent_node, env);
- if (!topic_node) /* actual topic text */
- {
- AXIS2_ERROR_SET(env->error,
- AXIS2_ERROR_SVC_SKEL_INVALID_XML_FORMAT_IN_REQUEST, AXIS2_FAILURE);
- AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "invalid XML in request");
- return NULL;
- }
-
- if (axiom_node_get_node_type(topic_node, env) == AXIOM_TEXT)
- {
- axiom_text_t *topic_text = (axiom_text_t *)axiom_node_get_data_element(
- topic_node, env);
- if (topic_text && axiom_text_get_value(topic_text , env))
- {
- topic_url = (axis2_char_t *)axiom_text_get_value(topic_text, env);
- topic = savan_util_get_topic_name_from_topic_url(env, topic_url);
- AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "Requested Topic:%s", topic);
- }
- }
- else
- {
- AXIS2_ERROR_SET(env->error,
- AXIS2_ERROR_SVC_SKEL_INVALID_XML_FORMAT_IN_REQUEST, AXIS2_FAILURE);
- AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Invalid XML in request");
- return NULL;
- }
-
- /* Retrive subscribers for the topic */
- store = axutil_hash_get(topic_store, topic, AXIS2_HASH_KEY_STRING);
/* create the body of the subscribers element */
ns = axiom_namespace_create (env, EVENTING_NAMESPACE, EVENTING_NS_PREFIX);
ns1 = axiom_namespace_create (env, SAVAN_NAMESPACE, SAVAN_NS_PREFIX);
subs_list_elem = axiom_element_create(env, NULL, ELEM_NAME_SUBSCRIBERS, ns1,
&subs_list_node);
- if(!store)
- {
- AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "No subscribers regirsterd for"
- " the topic:%s", topic_url);
- return subs_list_node;
- }
- for (hi = axutil_hash_first(store, env); hi; hi =
+ for (hi = axutil_hash_first(subs_store, env); hi; hi =
axutil_hash_next(env, hi))
{
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
- "subscribers not empty for topic :%s", topic_url);
+ "subscribers not empty");
void *val = NULL;
savan_subscriber_t * subscriber = NULL;
axutil_hash_this(hi, NULL, NULL, &val);
@@ -502,13 +435,13 @@
{
savan_util_set_store(subs_svc, env, SAVAN_TOPIC_LIST);
param = axis2_svc_get_param(subs_svc, env, SAVAN_TOPIC_LIST);
- AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[savan] Savan Topic List is empty");
+ AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[SAVAN] Savan Topic List is empty");
}
topic_store = (axutil_hash_t*)axutil_param_get_value(param, env);
if(!topic_store)
{
- AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[ML] Failed to extract the "
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[SAVAN] Failed to extract the "
"topic store");
return NULL;
}
Modified: webservices/savan/trunk/c/src/util/savan_util.c
URL: http://svn.apache.org/viewvc/webservices/savan/trunk/c/src/util/savan_util.c?rev=573220&r1=573219&r2=573220&view=diff
==============================================================================
--- webservices/savan/trunk/c/src/util/savan_util.c (original)
+++ webservices/savan/trunk/c/src/util/savan_util.c Thu Sep 6 04:09:58 2007
@@ -221,7 +221,7 @@
if (!info_header)
{
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
- "[savan] Cannot extract message info headers");
+ "[SAVAN] Cannot extract message info headers");
return SAVAN_MSG_TYPE_UNKNOWN;
}
@@ -229,7 +229,7 @@
if( ! action)
{
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
- "[savan] Cannot extract soap action");
+ "[SAVAN] Cannot extract soap action");
AXIS2_ERROR_SET(env->error, SAVAN_ERROR_SOAP_ACTION_NULL, AXIS2_FAILURE);
return SAVAN_MSG_TYPE_UNKNOWN;
}
@@ -273,7 +273,7 @@
AXIS2_ENV_CHECK(env, NULL);
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
- "[savan] Start:savan_util_get_subscription_id_from_msg");
+ "[SAVAN] Start:savan_util_get_subscription_id_from_msg");
/* Get soap envelop and extract the subscription id */
@@ -281,7 +281,7 @@
if (!envelope)
{
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
- "[savan] Failed to extract the soap envelop");
+ "[SAVAN] Failed to extract the soap envelop");
return NULL;
}
@@ -289,7 +289,7 @@
if (!header)
{
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
- "[savan] Failed to extract the soap header");
+ "[SAVAN] Failed to extract the soap header");
return NULL;
}
@@ -307,7 +307,7 @@
sub_id = axiom_element_get_text(id_elem, env, id_node);
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
- "[savan] End:savan_util_get_subscription_id_from_msg");
+ "[SAVAN] End:savan_util_get_subscription_id_from_msg");
return sub_id;
}
@@ -325,7 +325,7 @@
AXIS2_ENV_CHECK(env, NULL);
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
- "[savan] Start:savan_util_get_subscriber_from_msg");
+ "[SAVAN] Start:savan_util_get_subscriber_from_msg");
/* Extract subscription id from msg if not already given */
if (!sub_id)
@@ -337,12 +337,12 @@
if (!store)
{
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
- "[savan] Subscriber store is null");
+ "[SAVAN] Subscriber store is null");
return NULL;
}
subscriber = axutil_hash_get(store, sub_id, AXIS2_HASH_KEY_STRING);
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
- "[savan] End:savan_util_get_subscriber_from_msg");
+ "[SAVAN] End:savan_util_get_subscriber_from_msg");
return subscriber;
}
@@ -356,7 +356,7 @@
{
axis2_svc_t *pubs_svc = NULL;
axutil_param_t *param = NULL;
- axutil_hash_t *store = NULL;
+ axutil_hash_t *subs_store = NULL;
axis2_char_t *subs_svc_name = NULL;
axis2_char_t *topic = NULL;
axis2_endpoint_ref_t *topic_epr = NULL;
@@ -365,27 +365,26 @@
AXIS2_ENV_CHECK(env, NULL);
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
- "[savan] Start:savan_util_get_subscriber_store");
+ "[SAVAN] Start:savan_util_get_subscriber_store");
topic_epr = axis2_msg_ctx_get_to(msg_ctx, env);
topic_url = (axis2_char_t *) axis2_endpoint_ref_get_address(topic_epr,
env);
+ topic = savan_util_get_topic_name_from_topic_url(env, topic_url);
pubs_svc = axis2_msg_ctx_get_svc(msg_ctx, env);
if (!pubs_svc)
{
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
- "[savan] Failed to extract the %s publisher service", topic);
+ "[SAVAN] Failed to extract the %s publisher service", topic);
return NULL;
}
- topic = savan_util_get_topic_name_from_topic_url(env, topic_url);
param = axis2_svc_get_param(pubs_svc, env, "SubscriptionMgrName");
if(param)
{
axis2_svc_t *subs_svc = NULL;
axis2_conf_ctx_t *conf_ctx = NULL;
axis2_conf_t *conf = NULL;
- axutil_param_t *topic_store_param = NULL;
- axutil_hash_t *topic_store = NULL;
+ axutil_param_t *subs_store_param = NULL;
subs_svc_name = axutil_param_get_value(param, env);
conf_ctx = axis2_msg_ctx_get_conf_ctx(msg_ctx, env);
@@ -394,16 +393,14 @@
subs_svc = axis2_conf_get_svc(conf, env, subs_svc_name);
if(subs_svc)
{
- topic_store_param = axis2_svc_get_param(subs_svc, env,
- SAVAN_TOPIC_LIST);
- if(!topic_store_param)
+ subs_store_param = axis2_svc_get_param(subs_svc, env,
+ SAVAN_SUBSCRIBER_LIST);
+ if(!subs_store_param)
{
- AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[savan] No topic found");
+ AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[SAVAN] No Topic found");
return NULL;
}
- topic_store = axutil_param_get_value(topic_store_param, env);
- if(topic_store)
- store = axutil_hash_get(topic_store, topic, AXIS2_HASH_KEY_STRING);
+ subs_store = axutil_param_get_value(subs_store_param, env);
}
else
{
@@ -428,7 +425,7 @@
svc_client_param = axutil_param_create(env, "svc_client", svc_client);
axis2_svc_add_param(pubs_svc, env, svc_client_param);
}
- store = savan_util_get_subscriber_list_from_remote_subs_mgr(env,
+ subs_store = savan_util_get_subscriber_list_from_remote_subs_mgr(env,
topic_url, subs_mgr_url, svc_client);
}
}
@@ -438,18 +435,18 @@
param = axis2_svc_get_param(pubs_svc, env, SAVAN_SUBSCRIBER_LIST);
if (param)
{
- store = (axutil_hash_t*)axutil_param_get_value(param, env);
+ subs_store = (axutil_hash_t*)axutil_param_get_value(param, env);
}
}
- if(!store)
+ if(!subs_store)
{
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
- "[savan] No subscribers for topic %s found", topic);
+ "[SAVAN] No subscribers for topic %s found", topic);
return NULL;
}
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
- "[savan] End:savan_util_get_subscriber_store");
- return store;
+ "[SAVAN] End:savan_util_get_subscriber_store");
+ return subs_store;
}
axis2_status_t AXIS2_CALL
@@ -460,14 +457,14 @@
{
axis2_svc_t *pubs_svc = NULL;
axutil_param_t *param = NULL;
- axutil_hash_t *store = NULL;
axis2_char_t *subs_svc_name = NULL;
axis2_endpoint_ref_t *topic_epr = NULL;
axis2_char_t *topic_url = NULL;
axis2_char_t *topic = NULL;
+ axutil_hash_t *subs_store = NULL;
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
- "[savan] Start:savan_util_add_subscriber");
+ "[SAVAN] Start:savan_util_add_subscriber");
topic_epr = axis2_msg_ctx_get_to(msg_ctx, env);
topic_url = (axis2_char_t *) axis2_endpoint_ref_get_address(topic_epr,
env);
@@ -476,15 +473,14 @@
if (!pubs_svc)
{
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
- "[savan] Failed to extract the %s publisher service", topic);
+ "[SAVAN] Failed to extract the %s publisher service", topic);
return AXIS2_FAILURE;
}
param = axis2_svc_get_param(pubs_svc, env, "SubscriptionMgrName");
if(param)
{
axis2_svc_t *subs_svc = NULL;
- axutil_param_t *topic_store_param = NULL;
- axutil_hash_t *topic_store = NULL;
+ axutil_param_t *subs_store_param = NULL;
axis2_conf_ctx_t *conf_ctx = NULL;
axis2_conf_t *conf = NULL;
@@ -495,25 +491,22 @@
subs_svc = axis2_conf_get_svc(conf, env, subs_svc_name);
if(subs_svc)
{
- topic_store_param = axis2_svc_get_param(subs_svc, env,
- SAVAN_TOPIC_LIST);
- if(!topic_store_param)
+ axis2_char_t *subs_id = NULL;
+ subs_id = savan_subscriber_get_id(subscriber, env);
+ subs_store_param = axis2_svc_get_param(subs_svc, env,
+ SAVAN_SUBSCRIBER_LIST);
+ if(!subs_store_param)
{
- savan_util_set_store(subs_svc, env, SAVAN_TOPIC_LIST);
- topic_store_param = axis2_svc_get_param(subs_svc, env,
- SAVAN_TOPIC_LIST);
+ savan_util_set_store(subs_svc, env, SAVAN_SUBSCRIBER_LIST);
+ subs_store_param = axis2_svc_get_param(subs_svc, env,
+ SAVAN_SUBSCRIBER_LIST);
}
- topic_store = axutil_param_get_value(topic_store_param, env);
- if(topic_store)
- store = axutil_hash_get(topic_store, topic, AXIS2_HASH_KEY_STRING);
- if(!store)
+ subs_store = axutil_param_get_value(subs_store_param, env);
+ if(subs_store)
{
- store = axutil_hash_make(env);
- axutil_hash_set(topic_store, topic, AXIS2_HASH_KEY_STRING, store);
+ axutil_hash_set(subs_store, subs_id,
+ AXIS2_HASH_KEY_STRING, subscriber);
}
- /* Store the created subscriber in the svc */
- axutil_hash_set(store, savan_subscriber_get_id(subscriber, env),
- AXIS2_HASH_KEY_STRING, subscriber);
}
else
{
@@ -532,13 +525,12 @@
savan_util_set_store(pubs_svc, env, SAVAN_SUBSCRIBER_LIST);
param = axis2_svc_get_param(pubs_svc, env, SAVAN_SUBSCRIBER_LIST);
}
- store = (axutil_hash_t*)axutil_param_get_value(param, env);
- /* Store the created subscriber in the svc */
- axutil_hash_set(store, savan_subscriber_get_id(subscriber, env),
+ subs_store = (axutil_hash_t*)axutil_param_get_value(param, env);
+ axutil_hash_set(subs_store, savan_subscriber_get_id(subscriber, env),
AXIS2_HASH_KEY_STRING, subscriber);
}
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
- "[savan] End:savan_util_add_subscriber");
+ "[SAVAN] End:savan_util_add_subscriber");
return AXIS2_SUCCESS;
}
@@ -550,7 +542,7 @@
{
axis2_svc_t *pubs_svc = NULL;
axutil_param_t *param = NULL;
- axutil_hash_t *store = NULL;
+ axutil_hash_t *subs_store = NULL;
axis2_char_t *subs_svc_name = NULL;
axis2_char_t *topic_url = NULL;
axis2_char_t *topic = NULL;
@@ -559,7 +551,7 @@
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
- "[savan] Start:savan_util_remove_subscriber");
+ "[SAVAN] Start:savan_util_remove_subscriber");
topic_epr = axis2_msg_ctx_get_to(msg_ctx, env);
topic_url = (axis2_char_t *) axis2_endpoint_ref_get_address(topic_epr,
@@ -569,7 +561,7 @@
if (!pubs_svc)
{
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
- "[savan] Failed to extract the %s publisher service", topic);
+ "[SAVAN] Failed to extract the %s publisher service", topic);
return AXIS2_FAILURE;
}
param = axis2_svc_get_param(pubs_svc, env, "SubscriptionMgrName");
@@ -578,8 +570,7 @@
axis2_svc_t *subs_svc = NULL;
axis2_conf_ctx_t *conf_ctx = NULL;
axis2_conf_t *conf = NULL;
- axutil_param_t *topic_store_param = NULL;
- axutil_hash_t *topic_store = NULL;
+ axutil_param_t *subs_store_param = NULL;
subs_svc_name = axutil_param_get_value(param, env);
conf_ctx = axis2_msg_ctx_get_conf_ctx(msg_ctx, env);
@@ -588,29 +579,22 @@
subs_svc = axis2_conf_get_svc(conf, env, subs_svc_name);
if(subs_svc)
{
- axis2_char_t *id = NULL;
+ axis2_char_t *subs_id = NULL;
+ subs_id = savan_subscriber_get_id(subscriber, env);
- topic_store_param = axis2_svc_get_param(subs_svc, env,
- SAVAN_TOPIC_LIST);
- if (!topic_store_param)
+ subs_store_param = axis2_svc_get_param(subs_svc, env,
+ SAVAN_SUBSCRIBER_LIST);
+ if (!subs_store_param)
{
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
- "No subscribers for the topic %s", topic_url);
+ "No Subscriber list found");
return AXIS2_SUCCESS;
}
- topic_store = axutil_param_get_value(topic_store_param, env);
- /* Retrive subscribers for the topic */
- if(topic_store)
- store = axutil_hash_get(topic_store, topic, AXIS2_HASH_KEY_STRING);
- if (!store)
- {
- AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
- "[savan] Subscriber store is NULL");
- return AXIS2_SUCCESS;
- }
- id = savan_subscriber_get_id(subscriber, env);
+ subs_store = axutil_param_get_value(subs_store_param, env);
/* Setting NULL as value will remove the entry */
- axutil_hash_set(store, id, AXIS2_HASH_KEY_STRING, NULL);
+ if(subs_store)
+ axutil_hash_set(subs_store, subs_id, AXIS2_HASH_KEY_STRING,
+ NULL);
}
else
{
@@ -622,26 +606,26 @@
}
else
{
- axis2_char_t *id = NULL;
+ axis2_char_t *subs_id = NULL;
- id = savan_subscriber_get_id(subscriber, env);
+ subs_id = savan_subscriber_get_id(subscriber, env);
/* Extract the store from the svc and remove the given subscriber */
param = axis2_svc_get_param(pubs_svc, env, SAVAN_SUBSCRIBER_LIST);
if (param)
{
- store = (axutil_hash_t*)axutil_param_get_value(param, env);
+ subs_store = (axutil_hash_t*)axutil_param_get_value(param, env);
}
- if (!store)
+ if (!subs_store)
{
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
- "[savan] Subscriber store is NULL");
+ "[SAVAN] Subscriber store is NULL");
return AXIS2_SUCCESS;
}
/* Setting NULL as value will remove the entry */
- axutil_hash_set(store, id, AXIS2_HASH_KEY_STRING, NULL);
+ axutil_hash_set(subs_store, subs_id, AXIS2_HASH_KEY_STRING, NULL);
}
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
- "[savan] End:savan_util_remove_subscriber");
+ "[SAVAN] End:savan_util_remove_subscriber");
return AXIS2_SUCCESS;
}
@@ -656,7 +640,7 @@
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[savan][sub processor] "
+ AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[SAVAN][sub processor] "
"Start:set_sub_store");
/* Create a hash map */
@@ -664,7 +648,7 @@
if (!store)
{
/* TODO : error reporting */
- AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[savan][sub processor] "
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[SAVAN][sub processor] "
"Could not create subscriber store");
return AXIS2_FAILURE;
}
@@ -674,13 +658,13 @@
if (!param)
{
/* TODO : error reporting */
- AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[savan][sub processor] "
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[SAVAN][sub processor] "
"Could not create subscriber store param");
return AXIS2_FAILURE;
}
axis2_svc_add_param(svc, env, param);
- AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[savan] End:set_sub_store");
+ AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[SAVAN] End:set_sub_store");
return AXIS2_SUCCESS;
}
@@ -758,7 +742,7 @@
axutil_hash_t *subscriber_list = NULL;
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
- "[savan] Start:savan_util_get_subscriber_list_from_remote_subs_mgr");
+ "[SAVAN] Start:savan_util_get_subscriber_list_from_remote_subs_mgr");
svc_client = (axis2_svc_client_t *) s_client;
options = (axis2_options_t *)axis2_svc_client_get_options(svc_client,
env);
@@ -774,12 +758,12 @@
else
{
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
- "[savan] Stub invoke FAILED: Error code:"
+ "[SAVAN] Stub invoke FAILED: Error code:"
" %d :: %s", env->error->error_number,
AXIS2_ERROR_GET_MESSAGE(env->error));
}
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
- "[savan] End:savan_util_get_subscriber_list_from_remote_subs_mgr");
+ "[SAVAN] End:savan_util_get_subscriber_list_from_remote_subs_mgr");
return subscriber_list;
}
@@ -790,17 +774,11 @@
{
axiom_node_t *om_node = NULL;
axiom_element_t* om_ele = NULL;
- axiom_node_t* topic_om_node = NULL;
- axiom_element_t * topic_om_ele = NULL;
axiom_namespace_t *ns1 = NULL;
axis2_char_t *om_str = NULL;
ns1 = axiom_namespace_create (env, SAVAN_NAMESPACE, SAVAN_NS_PREFIX);
om_ele = axiom_element_create(env, NULL, ELEM_NAME_GET_SUBSCRIBER_LIST, ns1, &om_node);
- topic_om_ele = axiom_element_create(env, om_node, ELEM_NAME_TOPIC, ns1,
- &topic_om_node);
- axiom_element_set_text(topic_om_ele, env, topic, topic_om_node);
-
om_str = axiom_node_to_string(om_node, env);
if (om_str)
{
@@ -825,7 +803,7 @@
axutil_hash_t *subscriber_list = NULL;
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
- "[savan] Start:process_subscriber_list_node");
+ "[SAVAN] Start:process_subscriber_list_node");
subs_list_element = axiom_node_get_data_element(subs_list_node, env);
/* Topic */
@@ -844,7 +822,7 @@
if(!subs_iter)
{
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
- "[savan] Subscribers list is empty");
+ "[SAVAN] Subscribers list is empty");
return NULL;
}
if(axiom_children_qname_iterator_has_next(subs_iter, env))
@@ -886,7 +864,7 @@
subscriber = savan_subscriber_create(env);
if (!subscriber)
{
- AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[savan] Failed to create a"
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[SAVAN] Failed to create a"
"subscriber instance");
return NULL;
}
@@ -955,7 +933,7 @@
}
}
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
- "[savan] End:process_subscriber_list_node");
+ "[SAVAN] End:process_subscriber_list_node");
return subscriber_list;
}
@@ -1127,7 +1105,7 @@
axutil_array_list_t *topic_list = NULL;
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
- "[savan] Start:savan_util_get_topic_list_from_remote_subs_mgr");
+ "[SAVAN] Start:savan_util_get_topic_list_from_remote_subs_mgr");
if(!s_client)
{
svc_client = (axis2_svc_client_t *) savan_util_get_svc_client(env);
@@ -1149,7 +1127,7 @@
else
{
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
- "[savan] Stub invoke FAILED: Error code:"
+ "[SAVAN] Stub invoke FAILED: Error code:"
" %d :: %s", env->error->error_number,
AXIS2_ERROR_GET_MESSAGE(env->error));
}
@@ -1158,7 +1136,7 @@
/*axis2_svc_client_free(svc_client, env);*/
}
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
- "[savan] End:savan_util_get_topic_list_from_remote_subs_mgr");
+ "[SAVAN] End:savan_util_get_topic_list_from_remote_subs_mgr");
return topic_list;
}
@@ -1195,7 +1173,7 @@
axutil_array_list_t *topic_list = NULL;
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
- "[savan] Start:process_topic_list_node");
+ "[SAVAN] Start:process_topic_list_node");
topic_list_element = axiom_node_get_data_element(topic_list_node, env);
/* Get topic elements from topic list */
@@ -1207,7 +1185,7 @@
if(!topic_iter)
{
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
- "[savan] Topic list is empty");
+ "[SAVAN] Topic list is empty");
return NULL;
}
if(axiom_children_qname_iterator_has_next(topic_iter, env))
@@ -1233,7 +1211,7 @@
}
}
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
- "[savan] End:process_topic_list_node");
+ "[SAVAN] End:process_topic_list_node");
return topic_list;
}
@@ -1254,7 +1232,7 @@
if (!svc_client)
{
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
- "[savan] Stub invoke FAILED: Error code:"
+ "[SAVAN] Stub invoke FAILED: Error code:"
" %d :: %s", env->error->error_number,
AXIS2_ERROR_GET_MESSAGE(env->error));
return NULL;