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 2008/06/22 17:54:25 UTC
svn commit: r670374 - in /webservices/savan/trunk/c/src: core/mod_savan.c
handlers/savan_in_handler.c handlers/savan_out_handler.c
Author: damitha
Date: Sun Jun 22 08:54:25 2008
New Revision: 670374
URL: http://svn.apache.org/viewvc?rev=670374&view=rev
Log:
Fixed database creation problem when savan/C module init by moving that code into handlers.
Modified:
webservices/savan/trunk/c/src/core/mod_savan.c
webservices/savan/trunk/c/src/handlers/savan_in_handler.c
webservices/savan/trunk/c/src/handlers/savan_out_handler.c
Modified: webservices/savan/trunk/c/src/core/mod_savan.c
URL: http://svn.apache.org/viewvc/webservices/savan/trunk/c/src/core/mod_savan.c?rev=670374&r1=670373&r2=670374&view=diff
==============================================================================
--- webservices/savan/trunk/c/src/core/mod_savan.c (original)
+++ webservices/savan/trunk/c/src/core/mod_savan.c Sun Jun 22 08:54:25 2008
@@ -17,14 +17,11 @@
#include <axis2_conf_ctx.h>
#include <mod_savan.h>
-#include <savan_db_mgr.h>
#include <savan_constants.h>
#include <savan_util.h>
#include <sqlite3.h>
-/**************************** Function Prototypes *****************************/
-
axis2_status_t AXIS2_CALL
mod_savan_shutdown(axis2_module_t *module,
const axutil_env_t *env);
@@ -73,32 +70,9 @@
axis2_module_desc_t *module_desc)
{
/* Any initialization stuff of mod_savan goes here */
- savan_db_mgr_t *db_mgr = NULL;
- axis2_status_t status = AXIS2_FAILURE;
+ axis2_status_t status = AXIS2_SUCCESS;
AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI, "[SAVAN] Entry:mod_savan_init");
- 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 status;
- }
-
- if(!savan_db_mgr_create_db(db_mgr, env))
- {
- 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");
- }
- else
- {
- status = AXIS2_SUCCESS;
- }
-
- if(db_mgr)
- {
- savan_db_mgr_free(db_mgr, env);
- }
AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI, "[savan] Exit:mod_savan_init");
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=670374&r1=670373&r2=670374&view=diff
==============================================================================
--- webservices/savan/trunk/c/src/handlers/savan_in_handler.c (original)
+++ webservices/savan/trunk/c/src/handlers/savan_in_handler.c Sun Jun 22 08:54:25 2008
@@ -33,8 +33,7 @@
#include <savan_sub_processor.h>
#include <savan_util.h>
#include <savan_msg_recv.h>
-
-/* Function Prototypes ********************************************************/
+#include <savan_db_mgr.h>
axis2_status_t AXIS2_CALL
savan_in_handler_invoke(struct axis2_handler *handler,
@@ -42,8 +41,6 @@
struct axis2_msg_ctx *msg_ctx);
-/* End of Function Prototypes *************************************************/
-
AXIS2_EXTERN axis2_handler_t* AXIS2_CALL
savan_in_handler_create(const axutil_env_t *env,
axutil_qname_t *qname)
@@ -66,8 +63,6 @@
return handler;
}
-/******************************************************************************/
-
axis2_status_t AXIS2_CALL
savan_in_handler_invoke(struct axis2_handler *handler,
const axutil_env_t *env,
@@ -79,11 +74,40 @@
const axis2_svc_t *svc = NULL;
const axis2_char_t *svc_name = NULL;
- AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI,
- "[savan] Start:savan_in_handler_invoke");
+ AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI, "[savan] Start:savan_in_handler_invoke");
AXIS2_PARAM_CHECK(env->error, msg_ctx, AXIS2_FAILURE);
+ savan_db_mgr_t *db_mgr = NULL;
+ axis2_conf_ctx_t *conf_ctx = NULL;
+
+ 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)
+ {
+ 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))
+ {
+ 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);
@@ -154,8 +178,9 @@
axis2_msg_recv_t* msg_recv = savan_msg_recv_create(env);
axis2_op_set_msg_recv(op, env, msg_recv);
}
- AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI,
- "[savan] End:savan_in_handler_invoke");
+
+ AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI, "[savan] End:savan_in_handler_invoke");
return AXIS2_SUCCESS;
}
+
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=670374&r1=670373&r2=670374&view=diff
==============================================================================
--- webservices/savan/trunk/c/src/handlers/savan_out_handler.c (original)
+++ webservices/savan/trunk/c/src/handlers/savan_out_handler.c Sun Jun 22 08:54:25 2008
@@ -37,8 +37,7 @@
#include <savan_util.h>
#include <savan_msg_recv.h>
#include <savan_subscriber.h>
-
-/* Function Prototypes ********************************************************/
+#include <savan_db_mgr.h>
axis2_status_t AXIS2_CALL
savan_out_handler_invoke(
@@ -46,8 +45,6 @@
const axutil_env_t *env,
struct axis2_msg_ctx *msg_ctx);
-/* End of Function Prototypes *************************************************/
-
AXIS2_EXTERN axis2_handler_t* AXIS2_CALL
savan_out_handler_create(
const axutil_env_t *env,
@@ -71,14 +68,43 @@
return handler;
}
-/******************************************************************************/
-
axis2_status_t AXIS2_CALL
savan_out_handler_invoke(
struct axis2_handler *handler,
const axutil_env_t *env,
struct axis2_msg_ctx *msg_ctx)
{
- return AXIS2_SUCCESS;
+ savan_db_mgr_t *db_mgr = NULL;
+ axis2_conf_ctx_t *conf_ctx = NULL;
+ axis2_status_t status = AXIS2_SUCCESS;
+
+ 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)
+ {
+ 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))
+ {
+ 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;
}