Author: damitha
Date: Wed Jun 25 01:27:12 2008
New Revision: 671460
URL: http://svn.apache.org/viewvc?rev=671460&view=rev
Log:
Fixed the segfault caused by my previous commit
Modified:
webservices/savan/trunk/c/include/savan_db_mgr.h
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/handlers/savan_in_handler.c
webservices/savan/trunk/c/src/handlers/savan_out_handler.c
webservices/savan/trunk/c/src/subs_mgr/subs_mgr.c
webservices/savan/trunk/c/src/subs_mgr/subs_mgr_skel.c
webservices/savan/trunk/c/src/util/db_mgr.c
webservices/savan/trunk/c/src/util/savan_util.c
Modified: webservices/savan/trunk/c/include/savan_db_mgr.h
URL:
http://svn.apache.org/viewvc/webservices/savan/trunk/c/include/savan_db_mgr.h?rev=671460&r1=671459&r2=671460&view=diff
==============================================================================
--- webservices/savan/trunk/c/include/savan_db_mgr.h (original)
+++ webservices/savan/trunk/c/include/savan_db_mgr.h Wed Jun 25 01:27:12 2008
@@ -85,53 +85,53 @@
AXIS2_EXTERN axis2_status_t AXIS2_CALL
savan_db_mgr_insert_subscriber(
- savan_db_mgr_t *db_mgr,
const axutil_env_t *env,
+ const axis2_char_t *dbname,
savan_subscriber_t *subscriber);
AXIS2_EXTERN axis2_status_t AXIS2_CALL
savan_db_mgr_update_subscriber(
- savan_db_mgr_t *db_mgr,
const axutil_env_t *env,
+ const axis2_char_t *dbname,
savan_subscriber_t *subscriber);
AXIS2_EXTERN axis2_status_t AXIS2_CALL
savan_db_mgr_insert_topic(
- savan_db_mgr_t *db_mgr,
const axutil_env_t *env,
+ const axis2_char_t *dbname,
axis2_char_t *topic_name,
axis2_char_t *topic_url);
AXIS2_EXTERN axis2_status_t AXIS2_CALL
savan_db_mgr_remove(
- savan_db_mgr_t *db_mgr,
const axutil_env_t *env,
+ const axis2_char_t *dbname,
axis2_char_t *sql_stmt_remove);
AXIS2_EXTERN savan_subscriber_t *AXIS2_CALL
savan_db_mgr_retrieve(
- savan_db_mgr_t *db_mgr,
const axutil_env_t *env,
+ const axis2_char_t *dbname,
int (*retrieve_func)(void *, int, char **, char **),
axis2_char_t *sql_stmt_retrieve);
AXIS2_EXTERN axis2_status_t AXIS2_CALL
savan_db_mgr_update(
- savan_db_mgr_t *db_mgr,
const axutil_env_t *env,
+ const axis2_char_t *dbname,
axis2_char_t *sql_stmt_update);
AXIS2_EXTERN axutil_array_list_t * AXIS2_CALL
savan_db_mgr_retrieve_all(
- savan_db_mgr_t *db_mgr,
const axutil_env_t *env,
+ const axis2_char_t *dbname,
int (*find_func)(void *, int, char **, char **),
axis2_char_t *sql_stmt_find);
AXIS2_EXTERN void * AXIS2_CALL
savan_db_mgr_get_dbconn(
- savan_db_mgr_t *db_mgr,
- const axutil_env_t *env);
+ const axutil_env_t *env,
+ const axis2_char_t *dbname);
axis2_char_t *AXIS2_CALL
savan_db_mgr_create_update_sql(
@@ -146,8 +146,8 @@
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
savan_db_mgr_create_db(
- savan_db_mgr_t *db_mgr,
- const axutil_env_t *env);
+ const axutil_env_t *env,
+ const axis2_char_t *dbname);
/** @} */
#ifdef __cplusplus
Modified: webservices/savan/trunk/c/include/savan_util.h
URL:
http://svn.apache.org/viewvc/webservices/savan/trunk/c/include/savan_util.h?rev=671460&r1=671459&r2=671460&view=diff
==============================================================================
--- webservices/savan/trunk/c/include/savan_util.h (original)
+++ webservices/savan/trunk/c/include/savan_util.h Wed Jun 25 01:27:12 2008
@@ -276,7 +276,7 @@
AXIS2_EXTERN axis2_char_t *AXIS2_CALL
savan_util_get_dbname(
const axutil_env_t *env,
- axis2_conf_ctx_t *conf_ctx);
+ axis2_conf_t *conf);
/**
* Get the topics registered in a subscription manager
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=671460&r1=671459&r2=671460&view=diff
==============================================================================
--- webservices/savan/trunk/c/src/client/savan_publishing_client.c (original)
+++ webservices/savan/trunk/c/src/client/savan_publishing_client.c Wed Jun 25
01:27:12 2008
@@ -148,7 +148,6 @@
else
{
axis2_char_t sql_retrieve[256];
- savan_db_mgr_t *db_mgr = NULL;
axis2_char_t *topic_name = NULL;
topic_name = savan_util_get_topic_name_from_topic_url(env, topic_url);
@@ -156,14 +155,8 @@
"expires, filter, renewed, topic_url from subscriber, topic"\
" where topic.topic_name=subscriber.topic_name and"\
" topic.topic_name='%s';", topic_name);
- db_mgr = savan_db_mgr_create(env, savan_util_get_dbname(env,
conf_ctx));
- if(!db_mgr)
- {
- AXIS2_LOG_ERROR (env->log, AXIS2_LOG_SI,
- "[savan]database manager creation failed");
- }
- subs_store = savan_db_mgr_retrieve_all(db_mgr, env,
+ subs_store = savan_db_mgr_retrieve_all(env, savan_util_get_dbname(env,
conf),
savan_db_mgr_subs_find_callback,
sql_retrieve);
}
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=671460&r1=671459&r2=671460&view=diff
==============================================================================
--- webservices/savan/trunk/c/src/core/savan_sub_processor.c (original)
+++ webservices/savan/trunk/c/src/core/savan_sub_processor.c Wed Jun 25
01:27:12 2008
@@ -204,8 +204,8 @@
axis2_bool_t renewable = AXIS2_TRUE;
axis2_char_t *expires = NULL;
axis2_char_t *renewed_expires = NULL;
- savan_db_mgr_t *db_mgr = NULL;
axis2_conf_ctx_t *conf_ctx = NULL;
+ axis2_conf_t *conf = NULL;
axis2_status_t status = AXIS2_FAILURE;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
@@ -249,9 +249,9 @@
savan_subscriber_set_expires(subscriber, env, renewed_expires);
savan_subscriber_set_renew_status(subscriber, env, AXIS2_TRUE);
conf_ctx = axis2_msg_ctx_get_conf_ctx(msg_ctx, env);
- db_mgr = savan_db_mgr_create(env, savan_util_get_dbname(env, conf_ctx));
- if(db_mgr)
- status = savan_db_mgr_update_subscriber(db_mgr, env, subscriber);
+ conf = axis2_conf_ctx_get_conf(conf_ctx, env);
+ status = savan_db_mgr_update_subscriber(env, savan_util_get_dbname(env,
conf), subscriber);
+
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
"[SAVAN] End:savan_sub_processor_renew_subscription");
Modified: webservices/savan/trunk/c/src/handlers/savan_in_handler.c
URL:
http://svn.apache.org/viewvc/webservices/savan/trunk/c/src/handlers/savan_in_handler.c?rev=671460&r1=671459&r2=671460&view=diff
==============================================================================
--- webservices/savan/trunk/c/src/handlers/savan_in_handler.c (original)
+++ webservices/savan/trunk/c/src/handlers/savan_in_handler.c Wed Jun 25
01:27:12 2008
@@ -78,36 +78,20 @@
AXIS2_PARAM_CHECK(env->error, msg_ctx, AXIS2_FAILURE);
- savan_db_mgr_t *db_mgr = NULL;
axis2_conf_ctx_t *conf_ctx = NULL;
+ axis2_conf_t *conf = NULL;
conf_ctx = axis2_msg_ctx_get_conf_ctx(msg_ctx, env);
+ conf = axis2_conf_ctx_get_conf(conf_ctx, env);
- db_mgr = savan_db_mgr_create(env, savan_util_get_dbname(env, conf_ctx));
- if(!db_mgr)
- {
- AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[savan] Error creating db_mgr
struct");
- return AXIS2_FAILURE;
- }
-
- if(!savan_db_mgr_create_db(db_mgr, env))
+ if(!savan_db_mgr_create_db(env, savan_util_get_dbname(env, conf)))
{
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[savan] Could not create the
database. Check \
whether database path is correct and accessible. Exit loading
the Savan module");
- if(db_mgr)
- {
- savan_db_mgr_free(db_mgr, env);
- }
-
return AXIS2_FAILURE;
}
- if(db_mgr)
- {
- savan_db_mgr_free(db_mgr, env);
- }
-
svc = axis2_msg_ctx_get_svc(msg_ctx, env);
if (svc)
svc_name = axis2_svc_get_name(svc, env);
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?rev=671460&r1=671459&r2=671460&view=diff
==============================================================================
--- webservices/savan/trunk/c/src/handlers/savan_out_handler.c (original)
+++ webservices/savan/trunk/c/src/handlers/savan_out_handler.c Wed Jun 25
01:27:12 2008
@@ -74,37 +74,21 @@
const axutil_env_t *env,
struct axis2_msg_ctx *msg_ctx)
{
- savan_db_mgr_t *db_mgr = NULL;
axis2_conf_ctx_t *conf_ctx = NULL;
+ axis2_conf_t *conf = NULL;
axis2_status_t status = AXIS2_SUCCESS;
conf_ctx = axis2_msg_ctx_get_conf_ctx(msg_ctx, env);
+ conf = axis2_conf_ctx_get_conf(conf_ctx, env);
- db_mgr = savan_db_mgr_create(env, savan_util_get_dbname(env, conf_ctx));
- if(!db_mgr)
- {
- AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[savan] Error creating db_mgr
struct");
- return AXIS2_FAILURE;
- }
-
- if(!savan_db_mgr_create_db(db_mgr, env))
+ if(!savan_db_mgr_create_db(env, savan_util_get_dbname(env, conf)))
{
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[savan] Could not create the
database. Check \
whether database path is correct and accessible. Exit loading
the Savan module");
- if(db_mgr)
- {
- savan_db_mgr_free(db_mgr, env);
- }
-
return AXIS2_FAILURE;
}
- if(db_mgr)
- {
- savan_db_mgr_free(db_mgr, env);
- }
-
return status;
}
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?rev=671460&r1=671459&r2=671460&view=diff
==============================================================================
--- webservices/savan/trunk/c/src/subs_mgr/subs_mgr.c (original)
+++ webservices/savan/trunk/c/src/subs_mgr/subs_mgr.c Wed Jun 25 01:27:12 2008
@@ -34,6 +34,7 @@
axis2_msg_ctx_t *msg_ctx)
{
axis2_conf_ctx_t *conf_ctx = NULL;
+ axis2_conf_t *conf = NULL;
savan_subscriber_t *subscriber = NULL;
axis2_char_t *topic_url = NULL;
axis2_char_t *topic = NULL;
@@ -68,6 +69,7 @@
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
"[savan] Start:savan_subs_mgr_add_subscriber");
conf_ctx = axis2_msg_ctx_get_conf_ctx(msg_ctx, env);
+ conf = axis2_conf_ctx_get_conf(conf_ctx, env);
subscriber = savan_subscriber_create(env);
if(add_sub_node)
add_sub_elem = (axiom_element_t*)axiom_node_get_data_element(
@@ -153,44 +155,48 @@
}
/* Expires */
- qname = axutil_qname_create(env, ELEM_NAME_EXPIRES,
EVENTING_NAMESPACE,
- NULL);
- expires_elem = axiom_element_get_first_child_with_qname(sub_elem, env,
- qname, sub_node, &expires_node);
+ qname = axutil_qname_create(env, ELEM_NAME_EXPIRES,
EVENTING_NAMESPACE, NULL);
+ expires_elem = axiom_element_get_first_child_with_qname(sub_elem, env,
qname, sub_node,
+ &expires_node);
+
axutil_qname_free(qname, env);
if(expires_elem)
{
expires = axiom_element_get_text(expires_elem, env, expires_node);
if(expires)
+ {
savan_subscriber_set_expires(subscriber, env, expires);
+ }
}
/* Filter */
qname = axutil_qname_create(env, ELEM_NAME_FILTER, EVENTING_NAMESPACE,
NULL);
- filter_elem = axiom_element_get_first_child_with_qname(sub_elem, env,
qname,
- sub_node, &filter_node);
+ filter_elem = axiom_element_get_first_child_with_qname(sub_elem, env,
qname, sub_node,
+ &filter_node);
+
axutil_qname_free(qname, env);
if(filter_elem)
{
filter = axiom_element_get_text(filter_elem, env, filter_node);
if(filter)
+ {
savan_subscriber_set_filter(subscriber, env, filter);
+ }
}
- }
- {
- savan_db_mgr_t *db_mgr = NULL;
+ }
- db_mgr = savan_db_mgr_create(env, savan_util_get_dbname(env,
conf_ctx));
- if(savan_db_mgr_insert_subscriber(db_mgr, env, subscriber))
- AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
- "[savan] Subscriber %s added to the topic:%s", id, topic_url);
- else
- AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
- "[savan] Subscriber %s could not be added to the topic:%s",
id,
- topic_url);
+ if(savan_db_mgr_insert_subscriber(env, savan_util_get_dbname(env, conf),
subscriber))
+ {
+ AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
+ "[savan] Subscriber %s added to the topic:%s", id, topic_url);
}
- AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
- "[savan] End:savan_subs_mgr_add_subscriber");
+ else
+ {
+ AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
+ "[savan] Subscriber %s could not be added to the topic:%s",
id, topic_url);
+ }
+
+ AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[savan]
End:savan_subs_mgr_add_subscriber");
return NULL;
}
@@ -215,11 +221,12 @@
axis2_char_t *id = NULL;
axis2_char_t sql_remove[256];
axis2_conf_ctx_t *conf_ctx = NULL;
- savan_db_mgr_t *db_mgr = NULL;
+ axis2_conf_t *conf = NULL;
+
+ AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[savan]
Start:savan_subs_mgr_remove_subscriber");
- AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
- "[savan] Start:savan_subs_mgr_remove_subscriber");
conf_ctx = axis2_msg_ctx_get_conf_ctx(msg_ctx, env);
+ conf = axis2_conf_ctx_get_conf(conf_ctx, env);
remove_sub_elem = (axiom_element_t*)axiom_node_get_data_element(
remove_sub_node, env);
@@ -246,15 +253,16 @@
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
"[savan] Removing subscriber with id %s from topic %s", id, topic_url);
- sprintf(sql_remove, "delete from subscriber where id='%s'",
- id);
- db_mgr = savan_db_mgr_create(env, savan_util_get_dbname(env, conf_ctx));
- if(db_mgr)
- savan_db_mgr_remove(db_mgr, env, sql_remove);
+ sprintf(sql_remove, "delete from subscriber where id='%s'", id);
+
+ savan_db_mgr_remove(env, savan_util_get_dbname(env, conf), sql_remove);
+
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
"[savan] Subscriber %s removed from the topic:%s", id, topic_url);
+
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
"[savan] End:savan_subs_mgr_remove_subscriber");
+
return NULL;
}
@@ -273,7 +281,7 @@
axiom_node_t *subs_node = NULL;
axiom_element_t *subs_elem = NULL;
axis2_conf_ctx_t *conf_ctx = NULL;
- savan_db_mgr_t *db_mgr = NULL;
+ axis2_conf_t *conf = NULL;
axis2_char_t sql_retrieve[256];
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
@@ -285,6 +293,7 @@
* </ns1:get_subscriber>
*/
conf_ctx = axis2_msg_ctx_get_conf_ctx(msg_ctx, env);
+ conf = axis2_conf_ctx_get_conf(conf_ctx, env);
if (!node) /* 'get_subscriber' node */
{
AXIS2_ERROR_SET(env->error, AXIS2_ERROR_SVC_SKEL_INPUT_OM_NODE_NULL,
@@ -340,10 +349,10 @@
sprintf(sql_retrieve, "select id, end_to, notify_to, delivery_mode, "\
"expires, filter, renewed, topic_url from subscriber, topic"\
" where id='%s' and topic.topic_name=subscriber.topic_name;", subs_id);
- db_mgr = savan_db_mgr_create(env, savan_util_get_dbname(env, conf_ctx));
- if(db_mgr)
- subscriber = savan_db_mgr_retrieve(db_mgr, env,
- savan_db_mgr_subs_retrieve_callback, sql_retrieve);
+
+ subscriber = savan_db_mgr_retrieve(env, savan_util_get_dbname(env, conf),
+ savan_db_mgr_subs_retrieve_callback, sql_retrieve);
+
if (subscriber)
{
axiom_node_t *sub_node = NULL;
@@ -430,7 +439,7 @@
axiom_node_t *topic_node = NULL;
axiom_element_t* subs_list_elem = NULL;
axis2_conf_ctx_t *conf_ctx = NULL;
- savan_db_mgr_t *db_mgr = NULL;
+ axis2_conf_t *conf = NULL;
axis2_char_t sql_retrieve[256];
int i = 0, size = 0;
@@ -448,6 +457,7 @@
* </ns1:Subscribers>
*/
conf_ctx = axis2_msg_ctx_get_conf_ctx(msg_ctx, env);
+ conf = axis2_conf_ctx_get_conf(conf_ctx, env);
if (!node) /* 'get_subscriber_list' node */
{
AXIS2_ERROR_SET(env->error, AXIS2_ERROR_SVC_SKEL_INPUT_OM_NODE_NULL,
@@ -499,12 +509,9 @@
"expires, filter, topic_url, renewed from subscriber, topic where "\
"subscriber.topic_name=topic.topic_name and topic.topic_name='%s';",
topic);
- db_mgr = savan_db_mgr_create(env, savan_util_get_dbname(env, conf_ctx));
- if(db_mgr)
- {
- subs_store = savan_db_mgr_retrieve_all(db_mgr, env,
+
+ subs_store = savan_db_mgr_retrieve_all(env, savan_util_get_dbname(env,
conf),
savan_db_mgr_subs_find_callback, sql_retrieve);
- }
if(subs_store)
{
@@ -629,7 +636,7 @@
axiom_node_t *topic_list_node = NULL;
axiom_element_t* topic_list_elem = NULL;
axis2_conf_ctx_t *conf_ctx = NULL;
- savan_db_mgr_t *db_mgr = NULL;
+ axis2_conf_t *conf = NULL;
axis2_char_t sql_retrieve[256];
int i = 0, size = 0;
@@ -641,6 +648,7 @@
* </ns1:get_topic_list>
*/
conf_ctx = axis2_msg_ctx_get_conf_ctx(msg_ctx, env);
+ conf = axis2_conf_ctx_get_conf(conf_ctx, env);
if (!node) /* 'get_topic_list' node */
{
AXIS2_ERROR_SET(env->error, AXIS2_ERROR_SVC_SKEL_INPUT_OM_NODE_NULL,
@@ -654,10 +662,10 @@
topic_list_elem = axiom_element_create(env, NULL, ELEM_NAME_TOPICS, ns1,
&topic_list_node);
sprintf(sql_retrieve, "select topic_url from topic;");
- db_mgr = savan_db_mgr_create(env, savan_util_get_dbname(env, conf_ctx));
- if(db_mgr)
- topic_store = savan_db_mgr_retrieve_all(db_mgr, env,
+
+ topic_store = savan_db_mgr_retrieve_all(env, savan_util_get_dbname(env,
conf),
savan_db_mgr_topic_find_callback, sql_retrieve);
+
size = axutil_array_list_size(topic_store, env);
for(i = 0; i < size; i++)
{
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?rev=671460&r1=671459&r2=671460&view=diff
==============================================================================
--- webservices/savan/trunk/c/src/subs_mgr/subs_mgr_skel.c (original)
+++ webservices/savan/trunk/c/src/subs_mgr/subs_mgr_skel.c Wed Jun 25 01:27:12
2008
@@ -123,39 +123,56 @@
axis2_op_t *op = NULL;
int i = 0, size = 0;
axis2_conf_ctx_t *conf_ctx = NULL;
+ const axis2_char_t *dbname = NULL;
+
+ AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[savan]
Start:savan_subs_mgr_init_with_conf");
+
+ dbname = savan_util_get_dbname(env, conf);
+
+ if(!savan_db_mgr_create_db(env, dbname))
+ {
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+ "[savan] Could not create the database for name %s. Check
whether database path "\
+ "is correct and accessible. Exit loading the Savan module",
dbname);
+
+ return AXIS2_FAILURE;
+ }
- AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
- "[savan] Start:savan_subs_mgr_init_with_conf");
savan_subs_mgr_init(svc_skeleton, env);
conf_ctx = axis2_conf_ctx_create(env, conf);
subs_svc = axis2_conf_get_svc(conf, env, "subscription");
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);
- AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "dam_size:%d", size);
+ }
+
for(i = 0; i < size; i++)
{
- savan_db_mgr_t *db_mgr = NULL;
axutil_param_t *topic_param = NULL;
axis2_char_t *topic_url_str = NULL;
axis2_char_t *topic_name = 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);
- if(0 == axutil_strcmp(topic_name, "wsamapping"))
+ if(!axutil_strcmp(topic_name, "wsamapping"))
+ {
continue;
+ }
- db_mgr = savan_db_mgr_create(env, savan_util_get_dbname(env,
conf_ctx));
- if(savan_db_mgr_insert_topic(db_mgr, env, topic_name, topic_url_str))
- AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
- "[SAVAN] Topic %s added", topic_url_str);
+ if(savan_db_mgr_insert_topic(env, dbname, topic_name, topic_url_str))
+ {
+ AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[savan] Topic %s added",
topic_url_str);
+ }
else
- AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
- "[SAVAN] Topic %s could not be added", topic_url_str);
+ {
+ AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[savan] Topic %s could
not be added", topic_url_str);
+ }
}
- AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
- "[savan] End:savan_subs_mgr_init_with_conf");
+
+ AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[savan]
End:savan_subs_mgr_init_with_conf");
+
return AXIS2_SUCCESS;
}
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=671460&r1=671459&r2=671460&view=diff
==============================================================================
--- webservices/savan/trunk/c/src/util/db_mgr.c (original)
+++ webservices/savan/trunk/c/src/util/db_mgr.c Wed Jun 25 01:27:12 2008
@@ -268,8 +268,8 @@
AXIS2_EXTERN axis2_status_t AXIS2_CALL
savan_db_mgr_insert_subscriber(
- savan_db_mgr_t *db_mgr,
const axutil_env_t *env,
+ const axis2_char_t *dbname,
savan_subscriber_t *subscriber)
{
axis2_char_t *sql_insert = NULL;
@@ -354,8 +354,7 @@
sprintf(sql_insert, "%s%s", sql_insert, ");");
}
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "sql_insert:%s", sql_insert);
- dbconn = (sqlite3 *) savan_db_mgr_get_dbconn(
- db_mgr, env);
+ dbconn = (sqlite3 *) savan_db_mgr_get_dbconn(env, dbname);
if(!dbconn)
return AXIS2_FAILURE;
@@ -444,8 +443,8 @@
AXIS2_EXTERN axis2_status_t AXIS2_CALL
savan_db_mgr_update_subscriber(
- savan_db_mgr_t *db_mgr,
const axutil_env_t *env,
+ const axis2_char_t *dbname,
savan_subscriber_t *subscriber)
{
axis2_char_t *sql_update = NULL;
@@ -523,8 +522,7 @@
sprintf(sql_update, "%s%s", sql_update, "renewed=? where id=?;");
}
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "sql_update:%s", sql_update);
- dbconn = (sqlite3 *) savan_db_mgr_get_dbconn(
- db_mgr, env);
+ dbconn = (sqlite3 *) savan_db_mgr_get_dbconn(env, dbname);
if(!dbconn)
return AXIS2_FAILURE;
@@ -614,8 +612,8 @@
AXIS2_EXTERN axis2_status_t AXIS2_CALL
savan_db_mgr_insert_topic(
- savan_db_mgr_t *db_mgr,
const axutil_env_t *env,
+ const axis2_char_t *dbname,
axis2_char_t *topic_name,
axis2_char_t *topic_url)
{
@@ -624,43 +622,51 @@
struct sqlite3_stmt* insertqry;
sql_insert = "insert into topic(topic_name, topic_url) values(?, ?);";
- dbconn = (sqlite3 *) savan_db_mgr_get_dbconn(
- db_mgr, env);
+ dbconn = (sqlite3 *) savan_db_mgr_get_dbconn(env, dbname);
if(!dbconn)
+ {
return AXIS2_FAILURE;
+ }
if (sqlite3_prepare(dbconn, sql_insert, strlen(sql_insert), &insertqry,
NULL))
{
- AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
- "[SAVAN] Sql Insert Error: %s", sqlite3_errmsg(dbconn));
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[savan] Sql Insert Error:
%s",
+ sqlite3_errmsg(dbconn));
}
+
if (sqlite3_bind_text(insertqry, 1, topic_name, strlen(topic_name),
SQLITE_STATIC))
- AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
- "[SAVAN] Sql Insert Error: %s", sqlite3_errmsg(dbconn));
+ {
+ 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))
- AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
- "[SAVAN] Sql Insert Error: %s", sqlite3_errmsg(dbconn));
+ {
+ 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);
+ }
sqlite3_finalize(insertqry);
sqlite3_close(dbconn);
+
return AXIS2_SUCCESS;
}
AXIS2_EXTERN axis2_status_t AXIS2_CALL
savan_db_mgr_remove(
- savan_db_mgr_t *db_mgr,
const axutil_env_t *env,
+ const axis2_char_t *dbname,
axis2_char_t *sql_stmt_remove)
{
axis2_char_t *error_msg = NULL;
sqlite3 *dbconn = NULL;
int rc = -1;
AXIS2_ENV_CHECK(env, AXIS2_FALSE);
- dbconn = (sqlite3 *) savan_db_mgr_get_dbconn(
- db_mgr, env);
+ dbconn = (sqlite3 *) savan_db_mgr_get_dbconn(env, dbname);
if(!dbconn)
return AXIS2_FAILURE;
rc = sqlite3_exec(dbconn, "BEGIN;", 0, 0, &error_msg);
@@ -700,8 +706,8 @@
AXIS2_EXTERN axis2_status_t AXIS2_CALL
savan_db_mgr_update(
- savan_db_mgr_t *db_mgr,
const axutil_env_t *env,
+ const axis2_char_t *dbname,
axis2_char_t *sql_stmt_update)
{
sqlite3 *dbconn = NULL;
@@ -710,8 +716,7 @@
AXIS2_ENV_CHECK(env, AXIS2_FALSE);
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
"[SAVAN] Start:savan_db_mgr_update");
- dbconn = (sqlite3 *) savan_db_mgr_get_dbconn(
- db_mgr, env);
+ dbconn = (sqlite3 *) savan_db_mgr_get_dbconn(env, dbname);
if(!dbconn)
return AXIS2_FAILURE;
rc = sqlite3_exec(dbconn, "BEGIN;", 0, 0, &error_msg);
@@ -753,8 +758,8 @@
AXIS2_EXTERN savan_subscriber_t *AXIS2_CALL
savan_db_mgr_retrieve(
- savan_db_mgr_t *db_mgr,
const axutil_env_t *env,
+ const axis2_char_t *dbname,
int (*retrieve_func)(void *, int, char **, char **),
axis2_char_t *sql_stmt_retrieve)
{
@@ -766,8 +771,7 @@
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
"[SAVAN] Start:savan_db_mgr_retrieve");
AXIS2_ENV_CHECK(env, AXIS2_FALSE);
- dbconn = (sqlite3 *) savan_db_mgr_get_dbconn(
- db_mgr, env);
+ dbconn = (sqlite3 *) savan_db_mgr_get_dbconn(env, dbname);
if(!dbconn)
return NULL;
rc = sqlite3_exec(dbconn, "BEGIN READ_ONLY;", 0, 0, &error_msg);
@@ -817,8 +821,8 @@
AXIS2_EXTERN axutil_array_list_t * AXIS2_CALL
savan_db_mgr_retrieve_all(
- savan_db_mgr_t *db_mgr,
const axutil_env_t *env,
+ const axis2_char_t *dbname,
int (*find_func)(void *, int, char **, char **),
axis2_char_t *sql_stmt_find)
{
@@ -837,8 +841,7 @@
args = AXIS2_MALLOC(env->allocator, sizeof(savan_db_mgr_args_t));
args->env = (axutil_env_t*)env;
args->data = NULL;
- dbconn = (sqlite3 *) savan_db_mgr_get_dbconn(
- db_mgr, env);
+ dbconn = (sqlite3 *) savan_db_mgr_get_dbconn(env, dbname);
if(!dbconn)
{
return NULL;
@@ -893,8 +896,8 @@
AXIS2_EXTERN axis2_status_t AXIS2_CALL
savan_db_mgr_create_db(
- savan_db_mgr_t *db_mgr,
- const axutil_env_t *env)
+ const axutil_env_t *env,
+ const axis2_char_t *dbname)
{
int rc = -1;
axis2_char_t *error_msg = NULL;
@@ -902,19 +905,16 @@
axis2_char_t *sql_stmt1 = NULL;
axis2_char_t *sql_stmt2 = NULL;
axis2_status_t status = AXIS2_FAILURE;
- const axis2_char_t *dbname = NULL;
AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI, "[savan]
Entry:savan_db_mgr_create_db");
- dbname = db_mgr->dbname;
-
if(AXIS2_SUCCESS == axutil_file_handler_access(dbname, AXIS2_F_OK))
{
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[savan] Database %s already
created.", dbname);
return AXIS2_SUCCESS;
}
- dbconn = savan_db_mgr_get_dbconn(db_mgr, env);
+ dbconn = savan_db_mgr_get_dbconn(env, dbname);
#if !defined(WIN32)
{
@@ -994,17 +994,18 @@
void * AXIS2_CALL
savan_db_mgr_get_dbconn(
- savan_db_mgr_t *db_mgr,
- const axutil_env_t *env)
+ const axutil_env_t *env,
+ const axis2_char_t *dbname)
{
int rc = -1;
sqlite3 *dbconn = NULL;
- rc = sqlite3_open(db_mgr->dbname, &dbconn);
+ rc = sqlite3_open(dbname, &dbconn);
if(rc != SQLITE_OK)
{
- AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Can't open database: %s"
- " sqlite error: %s\n", db_mgr->dbname, sqlite3_errmsg(dbconn));
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Can't open database: %s
sqlite error: %s\n",
+ dbname, sqlite3_errmsg(dbconn));
+
sqlite3_close(dbconn);
dbconn = NULL;
return NULL;
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=671460&r1=671459&r2=671460&view=diff
==============================================================================
--- webservices/savan/trunk/c/src/util/savan_util.c (original)
+++ webservices/savan/trunk/c/src/util/savan_util.c Wed Jun 25 01:27:12 2008
@@ -444,17 +444,17 @@
}
{
axis2_char_t sql_retrieve[256];
- savan_db_mgr_t *db_mgr = NULL;
axis2_conf_ctx_t *conf_ctx = axis2_msg_ctx_get_conf_ctx(msg_ctx, env);
+ axis2_conf_t *conf = axis2_conf_ctx_get_conf(conf_ctx, env);
sprintf(sql_retrieve, "select id, end_to, notify_to, delivery_mode, "\
"expires, filter, renewed, topic_url from subscriber, topic"\
" where id='%s' and topic.topic_name=subscriber.topic_name;",
sub_id);
- db_mgr = savan_db_mgr_create(env, savan_util_get_dbname(env,
conf_ctx));
- if(db_mgr)
- subscriber = savan_db_mgr_retrieve(db_mgr, env,
- savan_db_mgr_subs_retrieve_callback, sql_retrieve);
+
+ subscriber = savan_db_mgr_retrieve(env, savan_util_get_dbname(env,
conf),
+ savan_db_mgr_subs_retrieve_callback, sql_retrieve);
}
+
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
"[savan] End:savan_util_get_subscriber_from_msg");
@@ -507,11 +507,10 @@
}
else
{
- savan_db_mgr_t *db_mgr = NULL;
axis2_conf_ctx_t *conf_ctx = axis2_msg_ctx_get_conf_ctx(msg_ctx, env);
- db_mgr = savan_db_mgr_create(env, savan_util_get_dbname(env,
conf_ctx));
- if(db_mgr)
- status = savan_db_mgr_insert_subscriber(db_mgr, env, subscriber);
+ axis2_conf_t *conf = axis2_conf_ctx_get_conf(conf_ctx, env);
+
+ status = savan_db_mgr_insert_subscriber(env,
savan_util_get_dbname(env, conf), subscriber);
}
if(status)
{
@@ -520,6 +519,7 @@
savan_subscriber_free_void_arg, subscriber);
axis2_msg_ctx_set_property(msg_ctx, env, SAVAN_SUBSCRIBER, subs_prop);
}
+
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
"[savan] End:savan_util_add_subscriber");
return status;
@@ -533,18 +533,17 @@
{
axis2_conf_ctx_t *conf_ctx = NULL;
- AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
- "[savan] Start:savan_util_update_subscriber");
+ AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[savan]
Start:savan_util_update_subscriber");
+
conf_ctx = axis2_msg_ctx_get_conf_ctx(msg_ctx, env);
{
- savan_db_mgr_t *db_mgr = NULL;
axis2_conf_ctx_t *conf_ctx = axis2_msg_ctx_get_conf_ctx(msg_ctx, env);
- db_mgr = savan_db_mgr_create(env, savan_util_get_dbname(env,
conf_ctx));
- if(db_mgr)
- savan_db_mgr_update_subscriber(db_mgr, env, subscriber);
- }
- AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
- "[savan] End:savan_util_update_subscriber");
+ axis2_conf_t *conf = axis2_conf_ctx_get_conf(conf_ctx, env);
+
+ savan_db_mgr_update_subscriber(env, savan_util_get_dbname(env, conf),
subscriber);
+ }
+
+ AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[savan]
End:savan_util_update_subscriber");
return AXIS2_SUCCESS;
}
@@ -555,25 +554,24 @@
savan_subscriber_t *subscriber)
{
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
- "[savan] Start:savan_util_remove_subscriber");
+ AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[savan]
Start:savan_util_remove_subscriber");
{
axis2_char_t *subs_id = NULL;
axis2_char_t sql_remove[256];
- savan_db_mgr_t *db_mgr = NULL;
axis2_conf_ctx_t *conf_ctx = axis2_msg_ctx_get_conf_ctx(msg_ctx, env);
+ axis2_conf_t *conf = axis2_conf_ctx_get_conf(conf_ctx, env);
subs_id = savan_subscriber_get_id(subscriber, env);
+
/* Extract the store from the svc and remove the given subscriber */
- sprintf(sql_remove, "delete from subscriber where id='%s'",
- subs_id);
- db_mgr = savan_db_mgr_create(env, savan_util_get_dbname(env,
conf_ctx));
- if(db_mgr)
- savan_db_mgr_remove(db_mgr, env, sql_remove);
+
+ sprintf(sql_remove, "delete from subscriber where id='%s'", subs_id);
+
+ savan_db_mgr_remove(env, savan_util_get_dbname(env, conf), sql_remove);
}
- AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
- "[savan] End:savan_util_remove_subscriber");
+
+ AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[savan]
End:savan_util_remove_subscriber");
return AXIS2_SUCCESS;
}
@@ -1389,14 +1387,12 @@
AXIS2_EXTERN axis2_char_t *AXIS2_CALL
savan_util_get_dbname(
const axutil_env_t *env,
- axis2_conf_ctx_t *conf_ctx)
+ axis2_conf_t *conf)
{
- axis2_conf_t *conf = NULL;
axis2_char_t *path = "./savan_db";
axis2_module_desc_t *module_desc = NULL;
axutil_qname_t *qname = NULL;
- conf = axis2_conf_ctx_get_conf(conf_ctx, env);
qname = axutil_qname_create(env, SAVAN_MODULE, NULL, NULL);
module_desc = axis2_conf_get_module(conf, env, qname);
if(module_desc)