You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by da...@apache.org on 2008/06/26 21:36:42 UTC
svn commit: r672007 - in /webservices/axis2/trunk/c/src/core:
description/svc_grp.c engine/conf.c
Author: damitha
Date: Thu Jun 26 12:36:42 2008
New Revision: 672007
URL: http://svn.apache.org/viewvc?rev=672007&view=rev
Log:
Fixing AXIS2C-1205
Modified:
webservices/axis2/trunk/c/src/core/description/svc_grp.c
webservices/axis2/trunk/c/src/core/engine/conf.c
Modified: webservices/axis2/trunk/c/src/core/description/svc_grp.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/src/core/description/svc_grp.c?rev=672007&r1=672006&r2=672007&view=diff
==============================================================================
--- webservices/axis2/trunk/c/src/core/description/svc_grp.c (original)
+++ webservices/axis2/trunk/c/src/core/description/svc_grp.c Thu Jun 26 12:36:42 2008
@@ -213,7 +213,6 @@
const axutil_env_t * env,
axis2_svc_t * svc)
{
- axis2_phase_resolver_t *handler_resolver = NULL;
axis2_status_t status = AXIS2_FAILURE;
const axutil_qname_t *svc_qname = NULL;
axis2_char_t *svc_name = NULL;
@@ -234,36 +233,12 @@
svc_name = axutil_qname_to_string((axutil_qname_t *) svc_qname, env);
axutil_hash_set(svc_grp->svcs, svc_name, AXIS2_HASH_KEY_STRING, svc);
- handler_resolver = axis2_phase_resolver_create_with_config_and_svc(env, svc_grp->parent, svc);
-
- if (!handler_resolver)
- {
- /* remove the previously added service */
- axutil_hash_set(svc_grp->svcs, svc_name, AXIS2_HASH_KEY_STRING, NULL);
- AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Creating phase resolver failed for service %s",
- svc_name);
-
- return AXIS2_FAILURE;
- }
-
- status = axis2_phase_resolver_build_execution_chains_for_svc(handler_resolver, env);
- if (AXIS2_SUCCESS != status)
- {
- /* remove the previously added service */
- axutil_hash_set(svc_grp->svcs, svc_name, AXIS2_HASH_KEY_STRING, NULL);
- axis2_phase_resolver_free(handler_resolver, env);
- AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
- "Building chains failed within phase resolver for service %s", svc_name);
- return status;
- }
-
status = axis2_svc_set_last_update(svc, env);
if (AXIS2_SUCCESS != status)
{
/* remove the previously added service */
axutil_hash_set(svc_grp->svcs, svc_name, AXIS2_HASH_KEY_STRING, NULL);
- axis2_phase_resolver_free(handler_resolver, env);
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Setting last update failed for service %s",
svc_name);
@@ -275,14 +250,11 @@
{
/* remove the previously added service */
axutil_hash_set(svc_grp->svcs, svc_name, AXIS2_HASH_KEY_STRING, NULL);
- axis2_phase_resolver_free(handler_resolver, env);
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Setting parent failed for service %s", svc_name);
return status;
}
- axis2_phase_resolver_free(handler_resolver, env);
-
return status;
}
Modified: webservices/axis2/trunk/c/src/core/engine/conf.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/src/core/engine/conf.c?rev=672007&r1=672006&r2=672007&view=diff
==============================================================================
--- webservices/axis2/trunk/c/src/core/engine/conf.c (original)
+++ webservices/axis2/trunk/c/src/core/engine/conf.c Thu Jun 26 12:36:42 2008
@@ -689,9 +689,11 @@
const axutil_env_t * env,
axis2_svc_t * svc)
{
+ axis2_phase_resolver_t *phase_resolver = NULL;
axis2_svc_grp_t *svc_grp = NULL;
const axis2_char_t *svc_grp_name = NULL;
axis2_status_t status = AXIS2_FAILURE;
+
AXIS2_PARAM_CHECK(env->error, svc, AXIS2_FAILURE);
/* We need to first create a service group with the same name as the
@@ -699,41 +701,68 @@
svc_grp_name = axis2_svc_get_name(svc, env);
if (!svc_grp_name)
{
- AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
- "Service has no name set");
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Service has no name set");
+
return AXIS2_FAILURE;
}
+
svc_grp = axis2_svc_grp_create(env);
if (!svc_grp)
{
AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
- "Creating service group as parent of service %s failed",
- svc_grp_name);
+ "Creating service group as parent of service %s failed", svc_grp_name);
+
return AXIS2_FAILURE;
}
+
status = axis2_svc_grp_set_name(svc_grp, env, svc_grp_name);
- if (AXIS2_FAILURE == status)
+ if (AXIS2_SUCCESS != status)
{
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
"Setting name to service group failed");
return status;
}
+
status = axis2_svc_grp_set_parent(svc_grp, env, conf);
- if (AXIS2_FAILURE == status)
+ if (AXIS2_SUCCESS != status)
{
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
"Setting parent to service group %s failed", svc_grp_name);
+
return status;
}
+
+ phase_resolver = axis2_phase_resolver_create_with_config_and_svc(env, conf, svc);
+
+ if (!phase_resolver)
+ {
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Creating phase resolver failed for service %s",
+ axis2_svc_get_name(svc, env));
+
+ return AXIS2_FAILURE;
+ }
+
+ status = axis2_phase_resolver_build_execution_chains_for_svc(phase_resolver, env);
+ axis2_phase_resolver_free(phase_resolver, env);
+ if (AXIS2_SUCCESS != status)
+ {
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+ "Building chains failed within phase resolver for service %s", axis2_svc_get_name(svc, env));
+
+ return status;
+ }
+
status = axis2_svc_grp_add_svc(svc_grp, env, svc);
- if (AXIS2_FAILURE == status)
+
+ if (AXIS2_SUCCESS != status)
{
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
- "Adding service %s to service group %s failed", svc_grp_name,
- svc_grp_name);
+ "Adding service %s to service group %s failed", svc_grp_name, svc_grp_name);
+
return status;
}
+
status = axis2_conf_add_svc_grp(conf, env, svc_grp);
return status;