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">