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 2009/03/17 12:11:26 UTC

svn commit: r755191 - in /webservices/savan/trunk/c: include/savan_client.h samples/client/subscriber/subscriber.c src/client/savan_client.c src/data/module.xml

Author: damitha
Date: Tue Mar 17 11:11:25 2009
New Revision: 755191

URL: http://svn.apache.org/viewvc?rev=755191&view=rev
Log:
At the savan_client when renew successful or get status successful then print the expiry date

Modified:
    webservices/savan/trunk/c/include/savan_client.h
    webservices/savan/trunk/c/samples/client/subscriber/subscriber.c
    webservices/savan/trunk/c/src/client/savan_client.c
    webservices/savan/trunk/c/src/data/module.xml

Modified: webservices/savan/trunk/c/include/savan_client.h
URL: http://svn.apache.org/viewvc/webservices/savan/trunk/c/include/savan_client.h?rev=755191&r1=755190&r2=755191&view=diff
==============================================================================
--- webservices/savan/trunk/c/include/savan_client.h (original)
+++ webservices/savan/trunk/c/include/savan_client.h Tue Mar 17 11:11:25 2009
@@ -63,9 +63,9 @@
      * @param env pointer to environment struct
      * @param svc_client client for the publisher service
      * @param options map containing options for the Renew request
-     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE 
+     * @return new expiry date. 
      */
-    AXIS2_EXTERN axis2_status_t AXIS2_CALL
+    AXIS2_EXTERN axis2_char_t *AXIS2_CALL
     savan_client_renew(
         savan_client_t *client,
         const axutil_env_t *env,

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=755191&r1=755190&r2=755191&view=diff
==============================================================================
--- webservices/savan/trunk/c/samples/client/subscriber/subscriber.c (original)
+++ webservices/savan/trunk/c/samples/client/subscriber/subscriber.c Tue Mar 17 11:11:25 2009
@@ -100,16 +100,16 @@
      * Following commented lines show how to use filtering when savan server side is
      * built and running with filtering enabled.
      */
-    axutil_hash_set(savan_options, SAVAN_OP_KEY_FILTER, AXIS2_HASH_KEY_STRING,
+    /*axutil_hash_set(savan_options, SAVAN_OP_KEY_FILTER, AXIS2_HASH_KEY_STRING,
         "//weather_report");
 
     axutil_hash_set(savan_options, SAVAN_OP_KEY_FILTER_DIALECT, AXIS2_HASH_KEY_STRING,
-        XPATH_FILTER_DIALECT);
+        XPATH_FILTER_DIALECT);*/
     
-    /*axutil_hash_set(savan_options, SAVAN_OP_KEY_FILTER, AXIS2_HASH_KEY_STRING, "weather/4");
+    axutil_hash_set(savan_options, SAVAN_OP_KEY_FILTER, AXIS2_HASH_KEY_STRING, "weather/4");
 
     axutil_hash_set(savan_options, SAVAN_OP_KEY_FILTER_DIALECT, AXIS2_HASH_KEY_STRING,
-        SYNAPSE_FILTER_DIALECT);*/
+        SYNAPSE_FILTER_DIALECT);
 
     /* Create a savan client */
     savan_client = savan_client_create(env);
@@ -144,6 +144,8 @@
         }
         else if(2 == action)
         {
+            axis2_char_t *renew_status = NULL;
+
             printf("Renewing subscription...\n");
             address = savan_client_get_sub_url(savan_client);
             printf("address:%s\n", address); 
@@ -152,10 +154,11 @@
             /*axutil_hash_set(savan_options, SAVAN_OP_KEY_EXPIRES, AXIS2_HASH_KEY_STRING, "2010-02-12T06:54Z");*/
             axutil_hash_set(savan_options, SAVAN_OP_KEY_EXPIRES, AXIS2_HASH_KEY_STRING, "2009-04-26T21:07:00.000-08:00");
             /*axutil_hash_set(savan_options, SAVAN_OP_KEY_EXPIRES, AXIS2_HASH_KEY_STRING, "P3Y6M4DT12H30M5S");*/
-            status = savan_client_renew(savan_client, env, svc_client, savan_options);
-            if (status == AXIS2_SUCCESS)
+            renew_status = savan_client_renew(savan_client, env, svc_client, savan_options);
+            if (renew_status)
             {
                 printf("Renew successful\n");
+                printf("Renewed Subscription expires on:%s\n", renew_status);
             }
         }
         else if(3 == action)
@@ -168,6 +171,7 @@
             subs_status = savan_client_get_status(savan_client, env, svc_client);
             if (subs_status)
             {
+                printf("GetStatus successful\n");
                 printf("Subscription expires on:%s\n", subs_status);
             }
         }

Modified: webservices/savan/trunk/c/src/client/savan_client.c
URL: http://svn.apache.org/viewvc/webservices/savan/trunk/c/src/client/savan_client.c?rev=755191&r1=755190&r2=755191&view=diff
==============================================================================
--- webservices/savan/trunk/c/src/client/savan_client.c (original)
+++ webservices/savan/trunk/c/src/client/savan_client.c Tue Mar 17 11:11:25 2009
@@ -178,7 +178,7 @@
     return AXIS2_SUCCESS;
 }
 
-AXIS2_EXTERN axis2_status_t AXIS2_CALL
+AXIS2_EXTERN axis2_char_t *AXIS2_CALL
 savan_client_renew(
     savan_client_t *client,
     const axutil_env_t *env,
@@ -194,7 +194,8 @@
     axiom_element_t *renew_elem = NULL;
     axiom_element_t *expires_elem = NULL;
     axis2_char_t *expires = NULL;
-    axis2_status_t status = AXIS2_FAILURE;
+    axis2_char_t *renew_elem_localname = NULL;
+    axutil_qname_t *qname = NULL;
 
     AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI, "[savan] Entry:savan_client_renew");
     
@@ -230,15 +231,38 @@
         AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
                 "[savan] Failed to send renew request. Error: %d Reason: %s", 
                 env->error->error_number, AXIS2_ERROR_GET_MESSAGE(env->error));
-        status = AXIS2_FAILURE;
+        return NULL;
     }
-    else
+   
+    renew_elem = (axiom_element_t*)axiom_node_get_data_element(reply, env);
+    /* Check whether we have received a RenewResponse */
+    renew_elem_localname = axiom_element_get_localname(renew_elem, env);
+
+    if (axutil_strcmp(ELEM_NAME_RENEW_RESPONSE, renew_elem_localname))
     {
-        status = AXIS2_SUCCESS;
+        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[savan] Failed to retrieve RenewResponse"\
+            "element. Error: %d Reason: %s", env->error->error_number,
+            AXIS2_ERROR_GET_MESSAGE(env->error));
+        return NULL;
+    }
+
+    /* Get Expires element from RenewResponse element */
+    qname = axutil_qname_create(env, ELEM_NAME_EXPIRES, EVENTING_NAMESPACE, NULL);
+    expires_elem = axiom_element_get_first_child_with_qname(renew_elem, env, qname, reply, 
+            &expires_node);
+    axutil_qname_free(qname, env);
+    if(!expires_node)
+    {
+        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[savan] Failed to retrieve Expires"\
+            "element. Error: %d Reason: %s", env->error->error_number,
+            AXIS2_ERROR_GET_MESSAGE(env->error));
+        return NULL;
     }
+   
+    expires = axiom_element_get_text(expires_elem, env, expires_node);
     
     AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI, "[savan] Exit:savan_client_renew");
-    return status;
+    return expires;
 }
 
 AXIS2_EXTERN axis2_status_t AXIS2_CALL
@@ -255,8 +279,7 @@
     axiom_element_t *unsub_elem = NULL;
     axis2_status_t status = AXIS2_FAILURE;
     
-    AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, 
-        "[savan] Start:savan_client_unsubscribe");
+    AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[savan] Entry:savan_client_unsubscribe");
     
     /* set wsa action as Unsub. remember the old action */
     wsa_options = (axis2_options_t*)axis2_svc_client_get_options(svc_client, env);
@@ -284,8 +307,7 @@
     }
     else
         status = AXIS2_SUCCESS;
-    AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, 
-        "[savan] End:savan_client_unsubscribe");
+    AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[savan] Exit:savan_client_unsubscribe");
     return status;
 }
 
@@ -301,17 +323,14 @@
     axiom_namespace_t *ns = NULL;
     axiom_node_t *reply = NULL;
     axiom_node_t *status_node = NULL;
-    axiom_node_t *body_node = NULL;
-    axiom_node_t *response_node = NULL;
     axiom_node_t *expires_node = NULL;
     axiom_element_t *status_elem = NULL;
-    axiom_element_t *body_elem = NULL;
-    axiom_element_t *response_elem = NULL;
+    axiom_element_t *renew_elem = NULL;
     axiom_element_t *expires_elem = NULL;
     axis2_char_t *expires = NULL;
+    axis2_char_t *status_elem_localname = NULL;
 
-    AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[savan][client] "
-        "get status...");
+    AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[savan] Entry:savan_client_get_status");
     
     /* Set wsa action as GetStatus. remember the old action */
     wsa_options = (axis2_options_t*)axis2_svc_client_get_options(svc_client, env);
@@ -338,27 +357,37 @@
         return NULL;
     }
     
-    /* Extract the expire string and return */
-    
-    /* Get Body element from body node */
-    body_elem = (axiom_element_t*)axiom_node_get_data_element(reply, env);
+    status_elem = (axiom_element_t*)axiom_node_get_data_element(reply, env);
     
-    /* Get Subscribe element from Body */
-    qname = axutil_qname_create(env, ELEM_NAME_GETSTATUS_RESPONSE, EVENTING_NAMESPACE, NULL);
-    response_elem = axiom_element_get_first_child_with_qname(body_elem, env, qname,
-        body_node, &response_node);
-    axutil_qname_free(qname, env);
+    /* Check whether we have received a GetStatusResponse */
+    status_elem_localname = axiom_element_get_localname(status_elem, env);
+
+    if (axutil_strcmp(ELEM_NAME_GETSTATUS_RESPONSE, status_elem_localname))
+    {
+        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[savan] Failed to retrieve GetStatusResponse"\
+            "element. Error: %d Reason: %s", env->error->error_number,
+            AXIS2_ERROR_GET_MESSAGE(env->error));
+        return NULL;
+    }
     
     /* Now read Expires sub element */
-        
-    /* Expires */
     qname = axutil_qname_create(env, ELEM_NAME_EXPIRES, EVENTING_NAMESPACE, NULL);
-    expires_elem = axiom_element_get_first_child_with_qname(response_elem, env, qname,
-        response_node, &expires_node);
+    expires_elem = axiom_element_get_first_child_with_qname(renew_elem, env, qname, reply, 
+            &expires_node);
     axutil_qname_free(qname, env);
-    
+    if(!expires_node)
+    {
+        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[savan] Failed to retrieve Expires"\
+            "element. Error: %d Reason: %s", env->error->error_number,
+            AXIS2_ERROR_GET_MESSAGE(env->error));
+        return NULL;
+    }
+   
+    expires_elem = (axiom_element_t *) axiom_node_get_data_element(expires_node, env);
+
     expires = axiom_element_get_text(expires_elem, env, expires_node);
     
+    AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[savan] Exit:savan_client_get_status");
     return expires;
 }
 

Modified: webservices/savan/trunk/c/src/data/module.xml
URL: http://svn.apache.org/viewvc/webservices/savan/trunk/c/src/data/module.xml?rev=755191&r1=755190&r2=755191&view=diff
==============================================================================
--- webservices/savan/trunk/c/src/data/module.xml (original)
+++ webservices/savan/trunk/c/src/data/module.xml Tue Mar 17 11:11:25 2009
@@ -1,10 +1,10 @@
 <module name="savan" class="mod_savan">
    <!-- Resource parameters -->
    <!-- savan_storage could be one of inmemory, sqlite and service-->
-   <parameter name="savan_resource" locked="false">/tmp/savan_db</parameter>
-   <!--parameter name="savan_resource" locked="false">http://localhost:9763/registry</parameter>
+   <!--parameter name="savan_resource" locked="false">/tmp/savan_db</parameter-->
+   <parameter name="savan_resource" locked="false">http://localhost:9766/registry</parameter>
    <parameter name="username" locked="false">admin</parameter>
-   <parameter name="password" locked="false">admin</parameter-->
+   <parameter name="password" locked="false">admin</parameter>
    <parameter name="savan_filter_template_path" locked="false">/axis2c/deploy/modules/savan/template.xsl</parameter>
     <inflow>
         <handler name="SavanInHandler" class="mod_savan">