You are viewing a plain text version of this content. The canonical link for it is here.
Posted to general@axis.apache.org by na...@apache.org on 2010/02/21 17:22:00 UTC

svn commit: r912367 - in /axis/axis2/c/core/trunk: build/win32/configure.in include/axis2_conf.h src/core/engine/conf.c

Author: nandika
Date: Sun Feb 21 16:22:00 2010
New Revision: 912367

URL: http://svn.apache.org/viewvc?rev=912367&view=rev
Log:
axis2_conf_disengage_module function added

Modified:
    axis/axis2/c/core/trunk/build/win32/configure.in
    axis/axis2/c/core/trunk/include/axis2_conf.h
    axis/axis2/c/core/trunk/src/core/engine/conf.c

Modified: axis/axis2/c/core/trunk/build/win32/configure.in
URL: http://svn.apache.org/viewvc/axis/axis2/c/core/trunk/build/win32/configure.in?rev=912367&r1=912366&r2=912367&view=diff
==============================================================================
--- axis/axis2/c/core/trunk/build/win32/configure.in (original)
+++ axis/axis2/c/core/trunk/build/win32/configure.in Sun Feb 21 16:22:00 2010
@@ -39,7 +39,7 @@
 #
 # openssl  binary location
 # required if ENABLE_SSL = 1
-OPENSSL_BIN_DIR = E:\OpenSSL
+OPENSSL_BIN_DIR = F:\OpenSSL
 #
 # libcurl binary location, only required if libcurl transport is enabled
 LIBCURL_BIN_DIR = E:\libcurl-7.15.1-msvc-win32-ssl-0.9.8a-zlib-1.2.3
@@ -50,7 +50,7 @@
 #############################################################################
 #
 # apache binary location
-APACHE_BIN_DIR = "E:\Apache22"
+APACHE_BIN_DIR = "F:\Apache2.2"
 #
 # apache 2 server family
 # To use apache 2.2 family, use  APACHE_VERSION_IS_2_0_X = 0

Modified: axis/axis2/c/core/trunk/include/axis2_conf.h
URL: http://svn.apache.org/viewvc/axis/axis2/c/core/trunk/include/axis2_conf.h?rev=912367&r1=912366&r2=912367&view=diff
==============================================================================
--- axis/axis2/c/core/trunk/include/axis2_conf.h (original)
+++ axis/axis2/c/core/trunk/include/axis2_conf.h Sun Feb 21 16:22:00 2010
@@ -816,6 +816,18 @@
 	AXIS2_EXTERN axutil_array_list_t * AXIS2_CALL
 	axis2_conf_get_handlers(const axis2_conf_t * conf,
 		const axutil_env_t * env);
+
+	/**
+	 * Disengage a module 
+	 * @param 
+	 *
+	 */
+	AXIS2_EXTERN axis2_status_t AXIS2_CALL
+	axis2_conf_disengage_module(
+		const axis2_conf_t *conf,
+		const axutil_env_t *env,
+		const axutil_qname_t *module_ref
+		);
 #ifdef __cplusplus
 }
 #endif

Modified: axis/axis2/c/core/trunk/src/core/engine/conf.c
URL: http://svn.apache.org/viewvc/axis/axis2/c/core/trunk/src/core/engine/conf.c?rev=912367&r1=912366&r2=912367&view=diff
==============================================================================
--- axis/axis2/c/core/trunk/src/core/engine/conf.c (original)
+++ axis/axis2/c/core/trunk/src/core/engine/conf.c Sun Feb 21 16:22:00 2010
@@ -1833,3 +1833,63 @@
     return conf->handlers;
 }
 
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+axis2_conf_disengage_module(
+	const axis2_conf_t *conf,
+	const axutil_env_t *env,
+	const axutil_qname_t *module_ref)
+{
+	axis2_module_desc_t *module_desc = NULL;
+	axutil_hash_index_t *index = NULL;
+	axis2_char_t *mod_name  =  NULL;
+	int size = 0, i = 0;
+	if(!module_ref)
+		return AXIS2_FAILURE;
+
+	mod_name = axutil_qname_get_localpart(module_ref, env);
+    module_desc = axis2_conf_get_module(conf, env, module_ref);
+    if(!module_desc)
+    {
+		AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "The requested module %s does not exist",
+			mod_name);
+		return AXIS2_FAILURE;
+    }
+	if(!axis2_conf_is_engaged((axis2_conf_t*)conf, env, module_ref))
+	{
+		AXIS2_LOG_INFO(env->log, AXIS2_LOG_SI, "%s Module is not engaged globally", mod_name);
+		return AXIS2_FAILURE;
+	}
+	if(!conf->all_svcs)
+	{
+		AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "configuration does not have any services");
+		return AXIS2_FAILURE;
+	
+	}
+	for(index = axutil_hash_first(conf->all_svcs, env); index; index = axutil_hash_next(env, index))
+	{
+		axis2_svc_t *svc = NULL;
+		void *v = NULL;
+		const axis2_char_t *svc_name = NULL;
+		axutil_hash_this(index, NULL, NULL, &v);
+		svc = (axis2_svc_t *)v;
+		if(svc)
+		{
+			svc_name = axis2_svc_get_name(svc, env);
+			axis2_svc_disengage_module(svc, env, module_desc,(axis2_conf_t*) conf);				
+		}
+	}
+	
+	size = axutil_array_list_size(conf->engaged_module_list, env);
+    for(i = 0; i < size; i++)
+    {
+        axutil_qname_t *qname = NULL;
+        qname = (axutil_qname_t *)axutil_array_list_get(conf->engaged_module_list, env, i);
+		if(axutil_qname_equals(module_ref, env, qname))
+        {
+			axutil_array_list_remove(conf->engaged_module_list, env, i);
+			return AXIS2_SUCCESS;
+		}
+    }
+
+	return AXIS2_FAILURE;
+}
\ No newline at end of file