Author: damitha
Date: Thu Nov  6 00:44:30 2008
New Revision: 711797

URL: http://svn.apache.org/viewvc?rev=711797&view=rev
Log:
Code refactoring

Modified:
    webservices/savan/trunk/c/build.sh
    webservices/savan/trunk/c/include/savan_util.h
    webservices/savan/trunk/c/src/client/savan_publishing_client.c
    webservices/savan/trunk/c/src/core/savan_sub_processor.c
    webservices/savan/trunk/c/src/subscribers/savan_subscriber.c
    webservices/savan/trunk/c/src/util/db_mgr.c
    webservices/savan/trunk/c/src/util/savan_util.c

Modified: webservices/savan/trunk/c/build.sh
URL: 
http://svn.apache.org/viewvc/webservices/savan/trunk/c/build.sh?rev=711797&r1=711796&r2=711797&view=diff
==============================================================================
--- webservices/savan/trunk/c/build.sh (original)
+++ webservices/savan/trunk/c/build.sh Thu Nov  6 00:44:30 2008
@@ -1,6 +1,6 @@
 #!/bin/bash
 ./autogen.sh
-./configure --prefix=$AXIS2C_HOME --enable-static=no 
--with-axis2=${AXIS2C_HOME}/include/axis2-1.5.0 --enable-filtering=yes
+./configure --prefix=$AXIS2C_HOME --enable-static=no 
--with-axis2=${AXIS2C_HOME}/include/axis2-1.5.0 --enable-filtering=no
 make -j30
 make install
 

Modified: webservices/savan/trunk/c/include/savan_util.h
URL: 
http://svn.apache.org/viewvc/webservices/savan/trunk/c/include/savan_util.h?rev=711797&r1=711796&r2=711797&view=diff
==============================================================================
--- webservices/savan/trunk/c/include/savan_util.h (original)
+++ webservices/savan/trunk/c/include/savan_util.h Thu Nov  6 00:44:30 2008
@@ -323,6 +323,11 @@
         axiom_element_t *sub_elem,
         savan_subscriber_t *subscriber);
 
+    AXIS2_EXTERN savan_subscriber_t * AXIS2_CALL
+    savan_util_process_savan_specific_subscriber_node(
+        const axutil_env_t *env,
+        axiom_node_t *sub_node);
+
     AXIS2_EXTERN axiom_node_t * AXIS2_CALL
     savan_util_create_subscriber_node(
         const axutil_env_t *env,

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?rev=711797&r1=711796&r2=711797&view=diff
==============================================================================
--- webservices/savan/trunk/c/src/client/savan_publishing_client.c (original)
+++ webservices/savan/trunk/c/src/client/savan_publishing_client.c Thu Nov  6 
00:44:30 2008
@@ -158,7 +158,7 @@
         {
             axis2_char_t *filter_template_path = NULL;
             axis2_char_t *id = savan_subscriber_get_id(sub, env);
-            AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[savan] Publishing to 
%s", id);
+            AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[savan] Publishing 
to:%s", id);
 
             filter_template_path = savan_util_get_module_param(env, conf, 
                     SAVAN_FILTER_TEMPLATE_PATH);

Modified: webservices/savan/trunk/c/src/core/savan_sub_processor.c
URL: 
http://svn.apache.org/viewvc/webservices/savan/trunk/c/src/core/savan_sub_processor.c?rev=711797&r1=711796&r2=711797&view=diff
==============================================================================
--- webservices/savan/trunk/c/src/core/savan_sub_processor.c (original)
+++ webservices/savan/trunk/c/src/core/savan_sub_processor.c Thu Nov  6 
00:44:30 2008
@@ -245,7 +245,7 @@
 {
     axis2_char_t *id = NULL;
 
-    AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI, "[savan] 
Exit:savan_sub_processor_get_status");
+    AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI, "[savan] 
Entry:savan_sub_processor_get_status");
 
     /* Extract the sub id and store it in msg ctx to be used by the msg 
receiver */
     id = savan_util_get_subscription_id_from_msg(env, msg_ctx);

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?rev=711797&r1=711796&r2=711797&view=diff
==============================================================================
--- webservices/savan/trunk/c/src/subscribers/savan_subscriber.c (original)
+++ webservices/savan/trunk/c/src/subscribers/savan_subscriber.c Thu Nov  6 
00:44:30 2008
@@ -379,10 +379,7 @@
     axis2_status_t status = AXIS2_SUCCESS;
     axis2_endpoint_ref_t *to = NULL;
     const axis2_char_t *address = NULL;
-    #ifdef SAVAN_FILTERING
     axiom_node_t *filtered_payload = NULL;
-    #endif
-    axis2_bool_t is_filtered = AXIS2_TRUE;
 
     AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[savan] 
Start:savan_subscriber_publish");
        
@@ -404,6 +401,7 @@
         address = axis2_endpoint_ref_get_address(subscriber->notify_to, env);
         if(address)
         {
+            AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[savan] Publishing 
to:%s", address);
             to = axis2_endpoint_ref_create(env, address);
             axis2_options_set_to(options, env, to);
         }
@@ -414,21 +412,26 @@
 
     #ifdef SAVAN_FILTERING
        filtered_payload = savan_util_apply_filter(subscriber, env, payload);
-    if(filtered_payload)
-    {
-        is_filtered = AXIS2_TRUE;
-    }
-    else
+    if(!filtered_payload)
     {
         status = axutil_error_get_status_code(env->error);
-        return status;
+        if(AXIS2_SUCCESS != status)
+        {
+            return status;
+        }
     }
-
     #endif
        
     /* Set service client options */
     axis2_svc_client_set_options(svc_client, env, options);
-    axis2_svc_client_fire_and_forget(svc_client, env, filtered_payload);
+    if(filtered_payload)
+    {
+        axis2_svc_client_fire_and_forget(svc_client, env, filtered_payload);
+    }
+    else
+    {
+        axis2_svc_client_fire_and_forget(svc_client, env, payload);
+    }
 
     axiom_node_detach(payload, env); /*insert this to prevent payload 
corruption in subsequent 
                                        "publish" calls with some payload.*/

Modified: webservices/savan/trunk/c/src/util/db_mgr.c
URL: 
http://svn.apache.org/viewvc/webservices/savan/trunk/c/src/util/db_mgr.c?rev=711797&r1=711796&r2=711797&view=diff
==============================================================================
--- webservices/savan/trunk/c/src/util/db_mgr.c (original)
+++ webservices/savan/trunk/c/src/util/db_mgr.c Thu Nov  6 00:44:30 2008
@@ -302,7 +302,6 @@
     axis2_char_t *expires = NULL;
     axis2_char_t *filter = NULL;
     axis2_char_t *topic = NULL;
-    axis2_char_t *topic_url = NULL;
     int renewed = 0;
     axis2_endpoint_ref_t *endto_epr = NULL;
     axis2_endpoint_ref_t *notifyto_epr = NULL;
@@ -360,10 +359,10 @@
             sprintf(sql_insert, "%s%s", sql_insert, ",filter");   
             counter++;
         }
-        topic_url = savan_subscriber_get_topic(subscriber, env);
-        if(topic_url)
+        topic = savan_subscriber_get_topic(subscriber, env);
+        if(topic)
         {
-            topic = savan_util_get_topic_name_from_topic_url(env, topic_url);
+            /*topic = savan_util_get_topic_name_from_topic_url(env, 
topic_url);*/
             sprintf(sql_insert, "%s%s", sql_insert, ",topic_name");   
             counter++;
         }
@@ -712,11 +711,16 @@
         AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[savan] Sql Insert Error: 
%s", 
                 sqlite3_errmsg(dbconn));
     }
-    if (sqlite3_bind_text(insertqry, 2, topic_url, strlen(topic_url), 
SQLITE_STATIC))
+
+    if(topic_url)
     {
-        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[savan] Sql Insert Error: 
%s", 
+        if (sqlite3_bind_text(insertqry, 2, topic_url, strlen(topic_url), 
SQLITE_STATIC))
+        {
+            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[savan] Sql Insert Error: 
%s", 
                 sqlite3_errmsg(dbconn));
+        }
     }
+
     if (sqlite3_step(insertqry) == SQLITE_DONE)
     {
         sqlite3_reset(insertqry);

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?rev=711797&r1=711796&r2=711797&view=diff
==============================================================================
--- webservices/savan/trunk/c/src/util/savan_util.c (original)
+++ webservices/savan/trunk/c/src/util/savan_util.c Thu Nov  6 00:44:30 2008
@@ -67,11 +67,6 @@
 build_topics_request_om_payload(
     const axutil_env_t *env);
 
-static savan_subscriber_t *
-savan_util_process_savan_specific_subscriber_node(
-    const axutil_env_t *env,
-    axiom_node_t *sub_node);
-
 static axutil_array_list_t *
 process_subscriber_list_node(
     const axutil_env_t *env,
@@ -183,21 +178,21 @@
     axiom_stax_builder_t *om_builder = NULL;
     axiom_document_t *document = NULL;
     axiom_node_t *node = NULL;
+    axis2_char_t *filter = NULL;
 
-       if(!savan_subscriber_get_filter(subscriber, env))
+       filter = savan_subscriber_get_filter(subscriber, env);
+       if(!filter)
        {
                return payload;
        }
 
     payload_string = axiom_node_to_string(payload, env);
     AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, 
-        "[savan] payload_string before applying filter:%s", payload_string);
+        "[savan] payload_string before applying filter %s:%s", filter, 
payload_string);
 
     payload_doc = (xmlDocPtr)xmlParseDoc((xmlChar*)payload_string);
 
-    #ifdef SAVAN_FILTERING
-        savan_util_set_filter_template_for_subscriber(subscriber, env);
-       #endif
+    savan_util_set_filter_template_for_subscriber(subscriber, env);
 
     xslt_template_filter = 
(xsltStylesheetPtr)savan_subscriber_get_filter_template(subscriber,
         env);
@@ -718,7 +713,7 @@
     return om_node;
 }
 
-static savan_subscriber_t *
+savan_subscriber_t *AXIS2_CALL
 savan_util_process_savan_specific_subscriber_node(
     const axutil_env_t *env,
     axiom_node_t *subs_node)
@@ -730,6 +725,9 @@
     axiom_node_t *id_node = NULL;
     axiom_element_t *id_elem = NULL;
     axis2_char_t *id = NULL;
+    axiom_node_t *topic_node = NULL;
+    axiom_element_t *topic_elem = NULL;
+    axis2_char_t *topic = NULL;
     savan_subscriber_t *subscriber = NULL;
     axis2_status_t status = AXIS2_SUCCESS;
 
@@ -742,6 +740,7 @@
     if (!subscriber)
     {
         AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[savan] Failed to create a 
subscriber instance");
+        axutil_error_set_status_code(env->error, AXIS2_FAILURE);
         return NULL;
     }
 
@@ -755,6 +754,14 @@
     savan_subscriber_set_id(subscriber, env, id);
     AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[savan] Received subscriber 
id:%s", id);
     
+    /* Topic */
+    qname = axutil_qname_create(env, ELEM_NAME_TOPIC, SAVAN_NAMESPACE, NULL);
+    topic_elem = axiom_element_get_first_child_with_qname(subs_elem, env, 
qname, subs_node, &topic_node);
+    axutil_qname_free(qname, env);
+    topic = axiom_element_get_text(topic_elem, env, topic_node);
+    savan_subscriber_set_topic(subscriber, env, topic);
+    AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[savan] Received subscriber 
topic:%s", topic);
+    
     qname = axutil_qname_create(env, ELEM_NAME_SUBSCRIBE, EVENTING_NAMESPACE, 
NULL);
     sub_elem = axiom_element_get_first_child_with_qname(subs_elem, env, qname, 
subs_node, &sub_node);
     axutil_qname_free(qname, env);
@@ -1306,7 +1313,6 @@
     axis2_char_t *filter_dialect = NULL;
     
     axis2_endpoint_ref_t *endto_epr = NULL;
-    axis2_endpoint_ref_t *topic_epr = NULL;
     axis2_endpoint_ref_t *notify_epr = NULL;
 
     axis2_status_t status = AXIS2_SUCCESS;
@@ -1393,21 +1399,6 @@
                 savan_subscriber_set_filter(subscriber, env, filter);
             }
         }
-
-        if(endto)
-        {
-            topic_epr = axis2_endpoint_ref_create(env, endto);
-        }
-
-        if(topic_epr)
-        {
-            axis2_char_t *endto = NULL;
-            endto = (axis2_char_t *) axis2_endpoint_ref_get_address(topic_epr, 
env);
-            if(endto)
-            {
-                printf("endto:%s\n",  endto);
-            }
-        }
     }
 
     AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI, "[savan] 
Exit:savan_util_process_subscriber_node");
@@ -1503,11 +1494,15 @@
     axis2_status_t status = AXIS2_FAILURE;
     axiom_namespace_t *ns1 = NULL;
     axiom_namespace_t *ns2 = NULL;
+    axiom_namespace_t *ns3 = NULL;
     axiom_node_t *sub_node = NULL;
     axiom_node_t *id_node = NULL;
+    axiom_node_t *topic_node = NULL;
     axiom_element_t *subs_elem = NULL;
     axiom_element_t* id_elem = NULL;
+    axiom_element_t* topic_elem = NULL;
     axis2_char_t *id = NULL;
+    axis2_char_t *topic = NULL;
 
     AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI, 
             "[savan] Entry:savan_util_create_savan_specific_subscriber_node");
@@ -1537,6 +1532,12 @@
     ns2 = axiom_namespace_create (env, SAVAN_NAMESPACE, SAVAN_NS_PREFIX);
     id_elem = axiom_element_create(env, subs_node, ELEM_NAME_ID, ns2, 
&id_node);
     axiom_element_set_text(id_elem, env, id, id_node);
+    
+    /* Topic element */
+    topic = savan_subscriber_get_topic(subscriber, env);
+    ns3 = axiom_namespace_create (env, SAVAN_NAMESPACE, SAVAN_NS_PREFIX);
+    topic_elem = axiom_element_create(env, subs_node, ELEM_NAME_TOPIC, ns3, 
&topic_node);
+    axiom_element_set_text(topic_elem, env, topic, topic_node);
 
     sub_node = savan_util_create_subscriber_node(env, subscriber, subs_node);
     if(!sub_node)


Reply via email to