Author: damitha
Date: Thu Aug 9 23:50:50 2007
New Revision: 564487
URL: http://svn.apache.org/viewvc?view=rev&rev=564487
Log:
When subscription manager initializes it loads the topics from the services.xml
Modified:
webservices/savan/trunk/c/src/subs_mgr/services.xml
webservices/savan/trunk/c/src/subs_mgr/subs_mgr.c
webservices/savan/trunk/c/src/subs_mgr/subs_mgr_skel.c
Modified: webservices/savan/trunk/c/src/subs_mgr/services.xml
URL:
http://svn.apache.org/viewvc/webservices/savan/trunk/c/src/subs_mgr/services.xml?view=diff&rev=564487&r1=564486&r2=564487
==============================================================================
--- webservices/savan/trunk/c/src/subs_mgr/services.xml (original)
+++ webservices/savan/trunk/c/src/subs_mgr/services.xml Thu Aug 9 23:50:50 2007
@@ -26,6 +26,11 @@
<operation name="get_topic_list">
<!--messageReceiver class="axis2_receivers" /-->
<parameter name="wsamapping"
>http://ws.apache.org/axis2/c/subscription/get_topic_list</parameter>
+ <parameter name="heartbeat"
locked="xsd:false">http://localhost:9090/axis2/services/ganglia_heartbeat</parameter>
+ <parameter name="discovery"
locked="xsd:false">http://localhost:9090/axis2/services/ganglia_discovery</parameter>
+ <parameter name="power"
locked="xsd:false">http://localhost:9090/axis2/services/ganglia_power</parameter>
+ <parameter name="load"
locked="xsd:false">http://localhost:9090/axis2/services/ganglia_load</parameter>
+ <parameter name="syslog"
locked="xsd:false">http://localhost:9090/axis2/services/syslog</parameter>
</operation>
</service>
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?view=diff&rev=564487&r1=564486&r2=564487
==============================================================================
--- webservices/savan/trunk/c/src/subs_mgr/subs_mgr.c (original)
+++ webservices/savan/trunk/c/src/subs_mgr/subs_mgr.c Thu Aug 9 23:50:50 2007
@@ -69,7 +69,7 @@
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);
if (!param)
@@ -82,13 +82,13 @@
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
"
"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,7 +96,7 @@
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)
@@ -104,12 +104,12 @@
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);
+ "[savan] 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"
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[savan] Failed to create a"
"subscriber instance");
return NULL;
}
@@ -184,11 +184,11 @@
if(store)
{
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
- "[ML] Subscriber %s added to the topic:%s", id, topic_url);
+ "[savan] Subscriber %s added to the topic:%s", id, topic_url);
axutil_hash_set(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;
}
@@ -218,12 +218,12 @@
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);
if (!param)
{
- 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
"
"subscriber store");
return NULL;
}
@@ -231,14 +231,14 @@
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
"
"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,12 +248,12 @@
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);
+ "[savan] 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);
+ "[savan] There are no subscribers for the ", topic_url);
return NULL;
}
@@ -266,16 +266,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);
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;
}
@@ -314,7 +314,7 @@
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
"
"subscriber store");
return NULL;
}
@@ -508,7 +508,7 @@
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/subs_mgr/subs_mgr_skel.c
URL:
http://svn.apache.org/viewvc/webservices/savan/trunk/c/src/subs_mgr/subs_mgr_skel.c?view=diff&rev=564487&r1=564486&r2=564487
==============================================================================
--- webservices/savan/trunk/c/src/subs_mgr/subs_mgr_skel.c (original)
+++ webservices/savan/trunk/c/src/subs_mgr/subs_mgr_skel.c Thu Aug 9 23:50:50
2007
@@ -29,6 +29,7 @@
#include <axis2_util.h>
#include <axis2_svc_client.h>
#include <axis2_options.h>
+#include <savan_constants.h>
#include "savan_subs_mgr.h"
@@ -115,6 +116,7 @@
axutil_array_list_add(svc_skeleton->func_array, env,
"get_subscriber_list");
axutil_array_list_add(svc_skeleton->func_array, env, "add_topic");
axutil_array_list_add(svc_skeleton->func_array, env, "get_topic_list");
+
return AXIS2_SUCCESS;
}
@@ -124,7 +126,54 @@
const axutil_env_t *env,
axis2_conf_t *conf)
{
+ axutil_array_list_t *topic_param_list = NULL;
+ axutil_hash_t *topic_list = NULL;
+ axis2_svc_t *subs_svc = NULL;
+ axis2_op_t *op = NULL;
+ axutil_param_t *param = NULL;
+ int i = 0, size = 0;
+
savan_subs_mgr_init(svc_skeleton, env);
+ subs_svc = axis2_conf_get_svc(conf, env, "subscription");
+ param = axis2_svc_get_param(subs_svc, env, SAVAN_TOPIC_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);
+ }
+ topic_list = (axutil_hash_t*)axutil_param_get_value(param, env);
+ if(!topic_list)
+ {
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+ "[savan] Failed to extract the topic list");
+ return AXIS2_FAILURE;
+ }
+ op = axis2_svc_get_op_with_name(subs_svc, env, "get_topic_list");
+ topic_param_list = axis2_op_get_all_params(op, env);
+ if(topic_param_list)
+ size = axutil_array_list_size(topic_param_list, env);
+ for(i = 0; i < size; i++)
+ {
+ axutil_param_t *topic_param = NULL;
+ axis2_char_t *topic_url_str = NULL;
+ axis2_char_t *topic_name = NULL;
+ axutil_hash_t *subs_list = NULL;
+ topic_param = axutil_array_list_get(topic_param_list, env, i);
+ topic_url_str = axutil_param_get_value(topic_param, env);
+ topic_name = axutil_param_get_name(topic_param, env);
+ subs_list = axutil_hash_get(topic_list, topic_name,
+ AXIS2_HASH_KEY_STRING);
+ if(!subs_list)
+ {
+ subs_list = axutil_hash_make(env);
+ axutil_hash_set(topic_list, topic_name, AXIS2_HASH_KEY_STRING,
+ subs_list);
+ AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
+ "[savan] Topic:%s is added to the topic list", topic_name);
+ }
+
+ }
return AXIS2_SUCCESS;
}