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;
 }
 


Reply via email to