Author: damitha
Date: Fri Jun 22 05:48:33 2007
New Revision: 549806

URL: http://svn.apache.org/viewvc?view=rev&rev=549806
Log:
Now savan publisher and listener basic samples are working

Modified:
    webservices/savan/trunk/c/include/savan_util.h
    webservices/savan/trunk/c/src/client/savan_publishing_client.c
    webservices/savan/trunk/c/src/data/module.xml
    webservices/savan/trunk/c/src/handlers/savan_out_handler.c
    webservices/savan/trunk/c/src/msgreceivers/savan_msg_recv.c
    webservices/savan/trunk/c/src/subscribers/savan_subscriber.c
    webservices/savan/trunk/c/src/util/savan_util.c

Modified: webservices/savan/trunk/c/include/savan_util.h
URL: 
http://svn.apache.org/viewvc/webservices/savan/trunk/c/include/savan_util.h?view=diff&rev=549806&r1=549805&r2=549806
==============================================================================
--- webservices/savan/trunk/c/include/savan_util.h (original)
+++ webservices/savan/trunk/c/include/savan_util.h Fri Jun 22 05:48:33 2007
@@ -126,6 +126,19 @@
         axis2_svc_t *svc,
         const axutil_env_t *env);
 
+    /**
+    * Get the subscribers registered for a topic
+    * @param env pointer to environment struct
+    * @param topic topic for which the subscribers are registered
+    * @param subs_mgr_url url of the subscription manager
+    * @return subscribers in a hash table
+    */
+    AXIS2_EXTERN axutil_hash_t *AXIS2_CALL
+    savan_util_get_subscriber_list_from_remote_subs_mgr(
+        const axutil_env_t *env,
+        axis2_char_t *topic,
+        axis2_char_t *subs_mgr_url);
+
 /** @} */
 #ifdef __cplusplus
 }

Modified: webservices/savan/trunk/c/src/client/savan_publishing_client.c
URL: 
http://svn.apache.org/viewvc/webservices/savan/trunk/c/src/client/savan_publishing_client.c?view=diff&rev=549806&r1=549805&r2=549806
==============================================================================
--- webservices/savan/trunk/c/src/client/savan_publishing_client.c (original)
+++ webservices/savan/trunk/c/src/client/savan_publishing_client.c Fri Jun 22 
05:48:33 2007
@@ -86,8 +86,8 @@
 
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
 
-    AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[savan][pub client] "
-        "publish...");
+    AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[savan] "
+        "Start:savan_publishing_client_publish");
     
     repo_path = AXIS2_GETENV("AXIS2C_HOME");
     
@@ -123,6 +123,8 @@
     /* Send publishing message */
     axis2_svc_client_send_robust_with_op_qname(svc_client, env, op_qname, 
         payload); 
+    AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[savan] "
+        "End:savan_publishing_client_publish");
     
     return AXIS2_SUCCESS;
 }

Modified: webservices/savan/trunk/c/src/data/module.xml
URL: 
http://svn.apache.org/viewvc/webservices/savan/trunk/c/src/data/module.xml?view=diff&rev=549806&r1=549805&r2=549806
==============================================================================
--- webservices/savan/trunk/c/src/data/module.xml (original)
+++ webservices/savan/trunk/c/src/data/module.xml Fri Jun 22 05:48:33 2007
@@ -9,13 +9,13 @@
 
     <outflow>
         <handler name="SavanOutHandler" class="mod_savan">
-            <order phase="MessageOut"/>
+            <order phase="SavanPhase"/>
         </handler>
     </outflow>
 
     <Outfaultflow>
         <handler name="SavanOutHandler" class="mod_savan">
-            <order phase="MessageOut"/>
+            <order phase="SavanPhase"/>
         </handler>
     </Outfaultflow>
 

Modified: webservices/savan/trunk/c/src/handlers/savan_out_handler.c
URL: 
http://svn.apache.org/viewvc/webservices/savan/trunk/c/src/handlers/savan_out_handler.c?view=diff&rev=549806&r1=549805&r2=549806
==============================================================================
--- webservices/savan/trunk/c/src/handlers/savan_out_handler.c (original)
+++ webservices/savan/trunk/c/src/handlers/savan_out_handler.c Fri Jun 22 
05:48:33 2007
@@ -97,6 +97,15 @@
         /* Treat unknown msgs as msgs for publishing */
 
         svc =  axis2_msg_ctx_get_svc(msg_ctx, env);
+        const axis2_char_t *svc_name = axis2_svc_get_name(svc, env);
+        {
+            /* Temporarily code block */
+            if(0 == axutil_strcmp(svc_name, "subscription"))
+            {
+                return AXIS2_SUCCESS;
+            }
+        }
+        AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, 
"************************:svc_name:%s\n", svc_name);
         if (!svc)
         {
             AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[savan][out handler] "
@@ -135,7 +144,7 @@
             {
                 axis2_char_t *id = savan_subscriber_get_id(sub, env);
                 AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[savan][out handler] "
-                    "Publishing to %s...", id);
+                    "Publishing to %s", id);
                 savan_subscriber_publish(sub, env, msg_ctx);
             }
 

Modified: webservices/savan/trunk/c/src/msgreceivers/savan_msg_recv.c
URL: 
http://svn.apache.org/viewvc/webservices/savan/trunk/c/src/msgreceivers/savan_msg_recv.c?view=diff&rev=549806&r1=549805&r2=549806
==============================================================================
--- webservices/savan/trunk/c/src/msgreceivers/savan_msg_recv.c (original)
+++ webservices/savan/trunk/c/src/msgreceivers/savan_msg_recv.c Fri Jun 22 
05:48:33 2007
@@ -249,7 +249,14 @@
     
     /* Expires element. Get expiry time from subscriber and set */
     subscriber = savan_util_get_subscriber_from_msg(env, msg_ctx, id);
-    expires = savan_subscriber_get_expires(subscriber, env);
+    if(subscriber)
+        expires = savan_subscriber_get_expires(subscriber, env);
+    else
+    {
+        printf("subscriber not found \n");
+        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Subscriber not found");
+        return AXIS2_FAILURE;
+    }
     
     expires_elem = axiom_element_create(env, response_node, ELEM_NAME_EXPIRES, 
ns,
         &expires_node);

Modified: webservices/savan/trunk/c/src/subscribers/savan_subscriber.c
URL: 
http://svn.apache.org/viewvc/webservices/savan/trunk/c/src/subscribers/savan_subscriber.c?view=diff&rev=549806&r1=549805&r2=549806
==============================================================================
--- webservices/savan/trunk/c/src/subscribers/savan_subscriber.c (original)
+++ webservices/savan/trunk/c/src/subscribers/savan_subscriber.c Fri Jun 22 
05:48:33 2007
@@ -283,7 +283,8 @@
 
     axis2_op_client_add_msg_ctx(op_client, env, msg_ctx);
     status = axis2_op_client_execute(op_client, env, AXIS2_TRUE);
-    AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[savan][subscribe] publish...");
+    AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, 
+        "[savan] End:savan_subscriber_publish");
     return status;
 }
 

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?view=diff&rev=549806&r1=549805&r2=549806
==============================================================================
--- webservices/savan/trunk/c/src/util/savan_util.c (original)
+++ webservices/savan/trunk/c/src/util/savan_util.c Fri Jun 22 05:48:33 2007
@@ -32,12 +32,6 @@
     savan_subscriber_t *subscriber,
     axis2_char_t *subs_mgr_url);
 
-static axutil_hash_t *
-get_subscriber_list_from_remote_subs_mgr(
-    const axutil_env_t *env,
-    axis2_char_t *topic,
-    axis2_char_t *subs_mgr_url);
-
 static axiom_node_t *
 build_add_subscriber_om_payload(
     const axutil_env_t *env,
@@ -224,7 +218,7 @@
         subs_mgr_url = axutil_param_get_value(param, env);
         topic_epr = axis2_msg_ctx_get_to(msg_ctx, env);
         topic = (axis2_char_t *) axis2_endpoint_ref_get_address(topic_epr, 
env);
-        store = get_subscriber_list_from_remote_subs_mgr(env, topic, 
subs_mgr_url);
+        store = savan_util_get_subscriber_list_from_remote_subs_mgr(env, 
topic, subs_mgr_url);
     }
     else
     {
@@ -343,9 +337,6 @@
     axis2_svc_client_t* svc_client = NULL;
     axiom_node_t *payload = NULL;
 
-    /* Set up the environment */
-    env = axutil_env_create_all("savan.log", AXIS2_LOG_LEVEL_TRACE);
-
     /* Set end point reference of echo service */
     address = subs_mgr_url;
     printf("[savan] Using endpoint : %s\n", address);
@@ -393,8 +384,8 @@
     return AXIS2_SUCCESS;
 }
 
-static axutil_hash_t *
-get_subscriber_list_from_remote_subs_mgr(
+axutil_hash_t *AXIS2_CALL
+savan_util_get_subscriber_list_from_remote_subs_mgr(
     const axutil_env_t *env,
     axis2_char_t *topic,
     axis2_char_t *subs_mgr_url)
@@ -408,7 +399,7 @@
     axutil_hash_t *subscriber_list = NULL;
 
     AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, 
-        "[savan] Start:get_subscriber_list_from_remote_subs_mgr");
+        "[savan] Start:savan_util_get_subscriber_list_from_remote_subs_mgr");
     options = axis2_options_create(env);
     axis2_options_set_action(options, env,
         "http://ws.apache.org/axis2/c/subscription/get_subscriber_list";);
@@ -420,16 +411,14 @@
     svc_client = axis2_svc_client_create(env, client_home);
     if (!svc_client)
     {
-        printf("Error creating service client\n");
         AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
-            "[ML] 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;
     }
     endpoint_ref = axis2_endpoint_ref_create(env, subs_mgr_url);
     axis2_options_set_to(options, env, endpoint_ref);
-    printf("[savan] Using endpoint : %s\n", subs_mgr_url);
     axis2_options_set_soap_version(options, env, AXIOM_SOAP11);
     axis2_svc_client_set_options(svc_client, env, options);    
     
@@ -442,13 +431,13 @@
     }
     else
     {
-        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[ML] Stub invoke FAILED: 
Error code:"
+        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
+            "[savan] Stub invoke FAILED: Error code:"
             " %d :: %s", env->error->error_number,
             AXIS2_ERROR_GET_MESSAGE(env->error));
-        printf("Retrieving subscriber list FAILED!\n");
     }
     AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, 
-        "[savan] End:get_subscriber_list_from_remote_subs_mgr");
+        "[savan] End:savan_util_get_subscriber_list_from_remote_subs_mgr");
     return subscriber_list;
 }
 
@@ -491,21 +480,27 @@
     axutil_hash_t *subscriber_list = axutil_hash_make(env);
     axutil_qname_t *qname = NULL;
 
+    AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, 
+        "[savan] Start:process_subscriber_list_node");
     subs_list_element = axiom_node_get_data_element(subs_list_node, env); 
     
     /* Get Subscriber elements from subscriber list */
-    qname = axutil_qname_create(env, ELEM_NAME_SUBSCRIBE, EVENTING_NAMESPACE, 
NULL);
+    qname = axutil_qname_create(env, ELEM_NAME_SUBSCRIBE, EVENTING_NAMESPACE, 
+        NULL);
     subs_iter = axiom_element_get_children_with_qname(subs_list_element, env,
         qname, subs_list_node);
+    axutil_qname_free(qname, env);
     if(!subs_iter)
     {
-        AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[ML] Subscribers list is 
empty");
+        AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, 
+            "[savan] Subscribers list is empty");
         return NULL;
     }
     while(axiom_children_qname_iterator_has_next(subs_iter, env))
     {
         savan_subscriber_t *subscriber = NULL;
         axiom_node_t *sub_node = NULL;
+        axiom_node_t *id_node = NULL;
         axiom_node_t *endto_node = NULL;
         axiom_node_t *delivery_node = NULL;
         axiom_node_t *notify_node = NULL;
@@ -513,12 +508,14 @@
         axiom_node_t *expires_node = NULL;
 
         axiom_element_t *sub_elem = NULL;
+        axiom_element_t *id_elem = NULL;
         axiom_element_t *endto_elem = NULL;
         axiom_element_t *delivery_elem = NULL;
         axiom_element_t *notify_elem = NULL;
         axiom_element_t *expires_elem = NULL;
         axiom_element_t *filter_elem = NULL;
 
+        axis2_char_t *id = NULL;
         axis2_char_t *endto = NULL;
         axis2_char_t *notify = NULL;
         axis2_char_t *expires = NULL;
@@ -533,11 +530,18 @@
             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;
             }
             /* Now read each sub element of Subscribe element */
+            /* Id */
+            qname = axutil_qname_create(env, ELEM_NAME_ID, SAVAN_NAMESPACE, 
NULL);
+            id_elem = axiom_element_get_first_child_with_qname(sub_elem, env, 
qname,
+                sub_node, &id_node);
+            axutil_qname_free(qname, env);
+            id = axiom_element_get_text(id_elem, env, id_node);
+            savan_subscriber_set_id(subscriber, env, id);
 
             /* EndTo */
             qname = axutil_qname_create(env, ELEM_NAME_ENDTO, 
EVENTING_NAMESPACE, NULL);
@@ -590,7 +594,8 @@
                 env), AXIS2_HASH_KEY_STRING, subscriber);
         }
     }
-    axutil_qname_free(qname, env);
+    AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, 
+        "[savan] End:process_subscriber_list_node");
     return subscriber_list;
 }
 


Reply via email to