Author: damitha
Date: Mon Jun 2 02:47:11 2008
New Revision: 662376
URL: http://svn.apache.org/viewvc?rev=662376&view=rev
Log:
Fixing database related issues
Modified:
webservices/savan/trunk/c/INSTALL
webservices/savan/trunk/c/build.sh
webservices/savan/trunk/c/configure.ac
webservices/savan/trunk/c/include/savan_constants.h
webservices/savan/trunk/c/include/savan_db_mgr.h
webservices/savan/trunk/c/include/savan_util.h
webservices/savan/trunk/c/samples/build.sh
webservices/savan/trunk/c/samples/configure.ac
webservices/savan/trunk/c/src/client/savan_publishing_client.c
webservices/savan/trunk/c/src/core/mod_savan.c
webservices/savan/trunk/c/src/core/savan_sub_processor.c
webservices/savan/trunk/c/src/data/module.xml
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/INSTALL
URL:
http://svn.apache.org/viewvc/webservices/savan/trunk/c/INSTALL?rev=662376&r1=662375&r2=662376&view=diff
==============================================================================
--- webservices/savan/trunk/c/INSTALL (original)
+++ webservices/savan/trunk/c/INSTALL Mon Jun 2 02:47:11 2008
@@ -35,7 +35,7 @@
This will install the Savan/C as a module in Axis2/C in <AXIS2C_HOME>/modules
folder. The module
folder contains the Savan/C libraries and the module.xml file. In the
module.xml file give a valid path
for database storage. The database name should be savan_db.
-<parameter name="savan_db" locked="false">/axis2c/deploy/savan_db</parameter>
+<parameter name="savan_db" locked="false">/tmp/savan_db</parameter>
It will also install libsavan_client.so savan client
library in <AXIS2C_HOME>/lib folder. This client library is needed for savan
clients to be linked with.
To test the installation you can run the subscriber sample by running
@@ -62,7 +62,7 @@
To deploy Savan/C in Axis2/C running environment do the following
1. Copy the modules/savan into <AXIS2C_HOME>/modules folder.
2 In the module.xml file give a valid path for database storage. savan_db
should be the database name.
- <parameter name="savan_db"
locked="false">/axis2c/deploy/savan_db</parameter>
+ <parameter name="savan_db" locked="false">/tmp/savan_db</parameter>
3. Copy the libsavan_client.so into <AXIS2C_HOME>/lib folder. This client
library is needed for savan clients
to be linked with.
4. Copy the samples/server/axis2.xml into <AXIS2C_HOME> or do neccessary
changes as described in README
@@ -105,7 +105,7 @@
1 Copy Savan directory ( containing savan dll and module.xml ) to
<AXIS2C_HOME>\modules directory.
2 In the module.xml file give a valid path for database storage. savan_db
should be the database name.
- <parameter name="savan_db"
locked="false">/axis2c/deploy/savan_db</parameter>
+ <parameter name="savan_db" locked="false">/tmp/savan_db</parameter>
3. Copy the savan_client.dll into <AXIS2C_HOME>/lib folder. This client
library is needed for savan clients
to be linked with.
4. Copy the samples/server/axis2.xml into <AXIS2C_HOME> or do neccessary
changes as described in README
Modified: webservices/savan/trunk/c/build.sh
URL:
http://svn.apache.org/viewvc/webservices/savan/trunk/c/build.sh?rev=662376&r1=662375&r2=662376&view=diff
==============================================================================
--- webservices/savan/trunk/c/build.sh (original)
+++ webservices/savan/trunk/c/build.sh Mon Jun 2 02:47:11 2008
@@ -4,9 +4,9 @@
make -j30
make install
-cd samples
-sh autogen.sh
-./configure --prefix=${AXIS2C_HOME}
--with-axis2=${AXIS2C_HOME}/include/axis2-1.4.0
--with-savan=${AXIS2C_HOME}/include/savan-0.90
-make -j10
-make install
-cd ..
+#cd samples
+#sh autogen.sh
+#./configure --prefix=${AXIS2C_HOME}
--with-axis2=${AXIS2C_HOME}/include/axis2-1.4.0
--with-savan=${AXIS2C_HOME}/include/savan-0.90
+#make -j10
+#make install
+#cd ..
Modified: webservices/savan/trunk/c/configure.ac
URL:
http://svn.apache.org/viewvc/webservices/savan/trunk/c/configure.ac?rev=662376&r1=662375&r2=662376&view=diff
==============================================================================
--- webservices/savan/trunk/c/configure.ac (original)
+++ webservices/savan/trunk/c/configure.ac Mon Jun 2 02:47:11 2008
@@ -26,7 +26,7 @@
CFLAGS="$CFLAGS -D_LARGEFILE64_SOURCE"
if test "$GCC" = "yes"; then
- CFLAGS="$CFLAGS -ansi -Wall -Wno-implicit-function-declaration"
+ CFLAGS="$CFLAGS -ansi -Wall -Wno-implicit-function-declaration -Werror"
#CFLAGS="$CFLAGS -ansi -Wall -Wno-implicit-function-declaration"
fi
LDFLAGS="-lpthread"
Modified: webservices/savan/trunk/c/include/savan_constants.h
URL:
http://svn.apache.org/viewvc/webservices/savan/trunk/c/include/savan_constants.h?rev=662376&r1=662375&r2=662376&view=diff
==============================================================================
--- webservices/savan/trunk/c/include/savan_constants.h (original)
+++ webservices/savan/trunk/c/include/savan_constants.h Mon Jun 2 02:47:11 2008
@@ -123,6 +123,7 @@
#define SAVAN_SUBSCRIBER "savan_subscriber"
#define SAVAN_TOPIC_LIST "savan_topic_list"
#define SAVAN_DB "savan_db"
+#define SAVAN_MODULE "savan"
/** @} */
#ifdef __cplusplus
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=662376&r1=662375&r2=662376&view=diff
==============================================================================
--- webservices/savan/trunk/c/include/savan_db_mgr.h (original)
+++ webservices/savan/trunk/c/include/savan_db_mgr.h Mon Jun 2 02:47:11 2008
@@ -29,7 +29,6 @@
#include <axutil_string.h>
#include <axutil_utils.h>
#include <axutil_array_list.h>
-#include <axis2_conf_ctx.h>
#include <savan_subscriber.h>
#include <sqlite3.h>
@@ -50,13 +49,13 @@
*/
typedef struct savan_db_mgr
{
- axis2_conf_ctx_t *conf_ctx;
+ axis2_char_t *dbname;
}savan_db_mgr_t;
AXIS2_EXTERN savan_db_mgr_t * AXIS2_CALL
savan_db_mgr_create(
const axutil_env_t *env,
- axis2_conf_ctx_t *conf_ctx);
+ axis2_char_t *dbname);
AXIS2_EXTERN void AXIS2_CALL
savan_db_mgr_free(
@@ -134,17 +133,10 @@
savan_db_mgr_t *db_mgr,
const axutil_env_t *env);
-AXIS2_EXTERN axis2_char_t *AXIS2_CALL
-savan_db_mgr_create_insert_sql(
- const axutil_env_t *env,
- savan_subscriber_t *subscriber,
- axis2_conf_ctx_t *conf_ctx);
-
axis2_char_t *AXIS2_CALL
savan_db_mgr_create_update_sql(
const axutil_env_t *env,
- savan_subscriber_t *subscriber,
- axis2_conf_ctx_t *conf_ctx);
+ savan_subscriber_t *subscriber);
/**
* This function will create the savan_db database if it is not aleardy exists
Modified: webservices/savan/trunk/c/include/savan_util.h
URL:
http://svn.apache.org/viewvc/webservices/savan/trunk/c/include/savan_util.h?rev=662376&r1=662375&r2=662376&view=diff
==============================================================================
--- webservices/savan/trunk/c/include/savan_util.h (original)
+++ webservices/savan/trunk/c/include/savan_util.h Mon Jun 2 02:47:11 2008
@@ -296,6 +296,11 @@
savan_util_get_svc_client(
const axutil_env_t *env);
+ axis2_char_t *AXIS2_CALL
+ savan_util_get_dbname(
+ const axutil_env_t *env,
+ axis2_conf_ctx_t *conf_ctx);
+
/** @} */
#ifdef __cplusplus
}
Modified: webservices/savan/trunk/c/samples/build.sh
URL:
http://svn.apache.org/viewvc/webservices/savan/trunk/c/samples/build.sh?rev=662376&r1=662375&r2=662376&view=diff
==============================================================================
--- webservices/savan/trunk/c/samples/build.sh (original)
+++ webservices/savan/trunk/c/samples/build.sh Mon Jun 2 02:47:11 2008
@@ -2,6 +2,6 @@
./autogen.sh
-./configure --prefix=${AXIS2C_HOME}
--with-axis2=${AXIS2C_HOME}/include/axis2-1.3.0
--with-savan=${AXIS2C_HOME}/include/savan-0.90
-make -j30
-
+./configure --prefix=${AXIS2C_HOME}
--with-axis2=${AXIS2C_HOME}/include/axis2-1.4.0
--with-savan=${AXIS2C_HOME}/include/savan-0.90
+make -j10
+make install
Modified: webservices/savan/trunk/c/samples/configure.ac
URL:
http://svn.apache.org/viewvc/webservices/savan/trunk/c/samples/configure.ac?rev=662376&r1=662375&r2=662376&view=diff
==============================================================================
--- webservices/savan/trunk/c/samples/configure.ac (original)
+++ webservices/savan/trunk/c/samples/configure.ac Mon Jun 2 02:47:11 2008
@@ -47,7 +47,7 @@
dnl Checks for libraries.
AC_CHECK_LIB(dl, dlopen)
-CFLAGS="$CFLAGS -ansi -Wall -D_LARGEFILE64_SOURCE "
+CFLAGS="$CFLAGS -ansi -Wall -D_LARGEFILE64_SOURCE -Werror"
LDFLAGS="$LDFLAGS -lpthread"
dnl Checks for header files.
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=662376&r1=662375&r2=662376&view=diff
==============================================================================
--- webservices/savan/trunk/c/src/client/savan_publishing_client.c (original)
+++ webservices/savan/trunk/c/src/client/savan_publishing_client.c Mon Jun 2
02:47:11 2008
@@ -156,7 +156,7 @@
"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, conf_ctx);
+ 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,
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=662376&r1=662375&r2=662376&view=diff
==============================================================================
--- webservices/savan/trunk/c/src/core/mod_savan.c (original)
+++ webservices/savan/trunk/c/src/core/mod_savan.c Mon Jun 2 02:47:11 2008
@@ -17,9 +17,11 @@
#include <axis2_conf_ctx.h>
#include <mod_savan.h>
-#include <sqlite3.h>
#include <savan_db_mgr.h>
#include <savan_constants.h>
+#include <savan_util.h>
+
+#include <sqlite3.h>
/**************************** Function Prototypes
*****************************/
@@ -44,8 +46,6 @@
mod_savan_fill_handler_create_func_map
};
-/*************************** End of Function Prototypes
***********************/
-
axis2_module_t *
mod_savan_create(const axutil_env_t *env)
{
@@ -65,8 +65,6 @@
return module;
}
-/******************************************************************************/
-
axis2_status_t AXIS2_CALL
mod_savan_init(
axis2_module_t *module,
@@ -78,18 +76,17 @@
savan_db_mgr_t *db_mgr = NULL;
axis2_status_t status = AXIS2_FAILURE;
- AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[SAVAN] Start:mod_savan_init");
- db_mgr = savan_db_mgr_create(env, conf_ctx);
+ 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");
+ 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 "\
+ 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");
}
@@ -103,12 +100,11 @@
savan_db_mgr_free(db_mgr, env);
}
- AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[SAVAN] End:mod_savan_init");
+ AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI, "[savan] Exit:mod_savan_init");
+
return status;
}
-/******************************************************************************/
-
axis2_status_t AXIS2_CALL
mod_savan_shutdown(axis2_module_t *module,
const axutil_env_t *env)
@@ -127,8 +123,6 @@
return AXIS2_SUCCESS;
}
-/******************************************************************************/
-
axis2_status_t AXIS2_CALL
mod_savan_fill_handler_create_func_map(axis2_module_t *module,
const axutil_env_t *env)
@@ -153,8 +147,6 @@
return AXIS2_SUCCESS;
}
-/******************************************************************************/
-
/**
* Following block distinguish the exposed part of the dll.
*/
@@ -172,8 +164,6 @@
return AXIS2_SUCCESS;
}
-/******************************************************************************/
-
AXIS2_EXPORT int
axis2_remove_instance(axis2_module_t *inst,
const axutil_env_t *env)
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=662376&r1=662375&r2=662376&view=diff
==============================================================================
--- webservices/savan/trunk/c/src/core/savan_sub_processor.c (original)
+++ webservices/savan/trunk/c/src/core/savan_sub_processor.c Mon Jun 2
02:47:11 2008
@@ -249,7 +249,7 @@
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, conf_ctx);
+ 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);
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
Modified: webservices/savan/trunk/c/src/data/module.xml
URL:
http://svn.apache.org/viewvc/webservices/savan/trunk/c/src/data/module.xml?rev=662376&r1=662375&r2=662376&view=diff
==============================================================================
--- webservices/savan/trunk/c/src/data/module.xml (original)
+++ webservices/savan/trunk/c/src/data/module.xml Mon Jun 2 02:47:11 2008
@@ -1,7 +1,7 @@
<module name="savan" class="mod_savan">
<!--parameter name="SubscriptionMgrURL"
locked="xsd:false">http://localhost:9092/axis2/services/subscription</parameter-->
<!-- Database connection parameters -->
- <!--parameter name="savan_db"
locked="false">/axis2c/deploy/savan_db</parameter-->
+ <!--parameter name="savan_db" locked="false">/tmp/savan_db</parameter-->
<inflow>
<handler name="SavanInHandler" class="mod_savan">
<order phase="SavanPhase"/>
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=662376&r1=662375&r2=662376&view=diff
==============================================================================
--- webservices/savan/trunk/c/src/subs_mgr/subs_mgr.c (original)
+++ webservices/savan/trunk/c/src/subs_mgr/subs_mgr.c Mon Jun 2 02:47:11 2008
@@ -179,7 +179,7 @@
{
savan_db_mgr_t *db_mgr = NULL;
- db_mgr = savan_db_mgr_create(env, conf_ctx);
+ 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);
@@ -247,7 +247,7 @@
sprintf(sql_remove, "delete from subscriber where id='%s'",
id);
- db_mgr = savan_db_mgr_create(env, conf_ctx);
+ 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);
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
@@ -339,7 +339,7 @@
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, conf_ctx);
+ 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);
@@ -498,7 +498,7 @@
"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, conf_ctx);
+ 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,
@@ -653,7 +653,7 @@
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, conf_ctx);
+ 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,
savan_db_mgr_topic_find_callback, sql_retrieve);
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=662376&r1=662375&r2=662376&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 Mon Jun 2 02:47:11
2008
@@ -33,6 +33,7 @@
#include "savan_subs_mgr.h"
#include <savan_constants.h>
#include <savan_db_mgr.h>
+#include <savan_util.h>
int AXIS2_CALL
savan_subs_mgr_free(
@@ -145,7 +146,7 @@
if(0 == axutil_strcmp(topic_name, "wsamapping"))
continue;
- db_mgr = savan_db_mgr_create(env, conf_ctx);
+ 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);
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=662376&r1=662375&r2=662376&view=diff
==============================================================================
--- webservices/savan/trunk/c/src/util/db_mgr.c (original)
+++ webservices/savan/trunk/c/src/util/db_mgr.c Mon Jun 2 02:47:11 2008
@@ -19,7 +19,6 @@
#include <axutil_hash.h>
#include <axutil_thread.h>
#include <axutil_property.h>
-#include <axis2_conf_ctx.h>
#include <axutil_types.h>
#include <platforms/axutil_platform_auto_sense.h>
#include <savan_constants.h>
@@ -57,13 +56,13 @@
AXIS2_EXTERN savan_db_mgr_t * AXIS2_CALL
savan_db_mgr_create(
const axutil_env_t *env,
- axis2_conf_ctx_t *conf_ctx)
+ axis2_char_t *dbname)
{
savan_db_mgr_t *db_mgr = NULL;
- AXIS2_ENV_CHECK(env, NULL);
db_mgr = AXIS2_MALLOC(env->allocator, sizeof(savan_db_mgr_t));
- db_mgr->conf_ctx = conf_ctx;
+
+ db_mgr->dbname = axutil_strdup(env, dbname);
return db_mgr;
}
@@ -75,6 +74,13 @@
{
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
"[SAVAN] Start:savan_db_mgr_free");
+
+ if(db_mgr->dbname)
+ {
+ AXIS2_FREE(env->allocator, db_mgr->dbname);
+ db_mgr->dbname = NULL;
+ }
+
if(db_mgr)
{
AXIS2_FREE(env->allocator, db_mgr);
@@ -895,6 +901,27 @@
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);
+
+ #if !defined(WIN32)
+ {
+ axis2_char_t permission_str[256];
+ sprintf(permission_str, "chmod 777 %s", dbname);
+ system(permission_str);
+ }
+ #endif
sql_stmt1 = "create table if not exists topic(topic_name varchar(100) "\
"primary key, topic_url varchar(200))";
@@ -903,25 +930,25 @@
"delivery_mode varchar(100), expires varchar(100), "\
"filter varchar(200), topic_name varchar(100), "\
"renewed boolean)";
- if(db_mgr)
- dbconn = savan_db_mgr_get_dbconn(db_mgr, env);
+
if(dbconn)
{
rc = sqlite3_exec(dbconn, sql_stmt1, NULL, 0, &error_msg);
if( rc != SQLITE_OK )
{
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
- "Error creating database table topic; SQL Error: %s",
error_msg);
+ "[savan] Error creating database table topic; SQL Error: %s",
error_msg);
sqlite3_free(error_msg);
sqlite3_close(dbconn);
return AXIS2_FAILURE;
}
+
rc = sqlite3_exec(dbconn, sql_stmt2, NULL, 0, &error_msg);
if( rc != SQLITE_OK )
{
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
- "Error creating database table subscriber; SQL Error: %s",
- error_msg);
+ "[savan] Error creating database table subscriber; SQL
Error: %s", error_msg);
+
sqlite3_free(error_msg);
sqlite3_close(dbconn);
return AXIS2_FAILURE;
@@ -929,6 +956,14 @@
sqlite3_close(dbconn);
status = AXIS2_SUCCESS;
}
+ else
+ {
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[savan] Database %s creation
failed", dbname);
+ return AXIS2_FAILURE;
+ }
+
+ AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI, "[savan]
Exit:savan_db_mgr_create_db");
+
return status;
}
@@ -961,49 +996,28 @@
savan_db_mgr_t *db_mgr,
const axutil_env_t *env)
{
- axis2_conf_ctx_t *conf_ctx = db_mgr->conf_ctx;
- axis2_conf_t *conf = NULL;
- axis2_char_t *path = "./savan_db";
int rc = -1;
sqlite3 *dbconn = NULL;
- conf = axis2_conf_ctx_get_conf(conf_ctx, env);
- {
- axis2_module_desc_t *module_desc = NULL;
- axutil_qname_t *qname = NULL;
- qname = axutil_qname_create(env, "savan", NULL, NULL);
- module_desc = axis2_conf_get_module(conf, env, qname);
- if(module_desc)
- {
- axutil_param_t *db_param = NULL;
- db_param = axis2_module_desc_get_param(module_desc, env, SAVAN_DB);
- if(db_param)
- {
- path = (axis2_char_t *) axutil_param_get_value(db_param, env);
- }
- }
- axutil_qname_free(qname, env);
- }
- rc = sqlite3_open(path, &dbconn);
+ rc = sqlite3_open(db_mgr->dbname, &dbconn);
if(rc != SQLITE_OK)
{
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Can't open database: %s"
- " sqlite error: %s\n", path, sqlite3_errmsg(dbconn));
+ " sqlite error: %s\n", db_mgr->dbname, sqlite3_errmsg(dbconn));
sqlite3_close(dbconn);
dbconn = NULL;
return NULL;
}
+
return dbconn;
}
axis2_char_t *AXIS2_CALL
savan_db_mgr_create_update_sql(
const axutil_env_t *env,
- savan_subscriber_t *subscriber,
- axis2_conf_ctx_t *conf_ctx)
+ savan_subscriber_t *subscriber)
{
axis2_char_t *sql_update = NULL;
- savan_db_mgr_t *db_mgr = NULL;
axis2_char_t *id = NULL;
axis2_char_t *endto = NULL;
axis2_char_t *notifyto = NULL;
@@ -1033,11 +1047,12 @@
topic = savan_util_get_topic_name_from_topic_url(env, topic_url);
}
renewed = savan_subscriber_get_renew_status(subscriber, env);
- db_mgr = savan_db_mgr_create(env, conf_ctx);
+
sprintf(sql_update, "update subscriber set end_to='%s', notify_to='%s',"\
"delivery_mode='%s', expires='%s', filter='%s', topic_name='%s',
renewed=%d"\
" where id='%s'", endto, notifyto, delivery_mode, expires, filter,
topic,
renewed, id);
+
return sql_update;
}
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=662376&r1=662375&r2=662376&view=diff
==============================================================================
--- webservices/savan/trunk/c/src/util/savan_util.c (original)
+++ webservices/savan/trunk/c/src/util/savan_util.c Mon Jun 2 02:47:11 2008
@@ -450,7 +450,7 @@
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, conf_ctx);
+ 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);
@@ -509,7 +509,7 @@
{
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, conf_ctx);
+ 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);
}
@@ -539,7 +539,7 @@
{
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, conf_ctx);
+ 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);
}
@@ -568,7 +568,7 @@
/* 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, conf_ctx);
+ 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);
}
@@ -1386,3 +1386,31 @@
return svc_client;
}
+axis2_char_t *AXIS2_CALL
+savan_util_get_dbname(
+ const axutil_env_t *env,
+ axis2_conf_ctx_t *conf_ctx)
+{
+ 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)
+ {
+ axutil_param_t *db_param = NULL;
+ db_param = axis2_module_desc_get_param(module_desc, env, SAVAN_DB);
+ if(db_param)
+ {
+ path = (axis2_char_t *) axutil_param_get_value(db_param, env);
+ }
+ }
+ axutil_qname_free(qname, env);
+
+ return path;
+}
+
+