Esempio n. 1
0
AXIS2_EXTERN axiom_node_t* AXIS2_CALL
service_admin_util_serialize_param(axutil_env_t *env,
								   axutil_param_t *param)
{
	axis2_char_t *name = NULL;
	axis2_char_t *value = NULL;
	void *param_value = NULL;
	axiom_node_t *param_node = NULL;
	axiom_element_t *param_ele = NULL;
	axiom_attribute_t *attri = NULL;

	name = axutil_param_get_name(param, env);
	param_value = axutil_param_get_value(param, env);
	if(name && axutil_strcmp(name, "ServiceClass") ==0)
	{
		return NULL;
	}else
	{
		value = (axis2_char_t*)param_value;
	}

	param_ele = axiom_element_create(env, NULL, "parameter", NULL, &param_node);
	
	attri = axiom_attribute_create(env, "name", name, NULL);
	axiom_element_add_attribute(param_ele, env, attri, param_node);
	if(value)
		axiom_element_set_text(param_ele, env, value, param_node);
	return param_node;
}
Esempio n. 2
0
void AXIS2_CALL
axutil_param_free(
    axutil_param_t *param,
    const axutil_env_t *env)
{
    void *param_value = NULL;
    axis2_char_t *param_name = NULL;

    param_value = axutil_param_get_value(param, env);
    if(param_value)
    {
        if(param && param->value_free)
        {
            param->value_free(param_value, env);
        }
        else /* we assume that param value is axis2_char_t* */
        {
            AXIS2_FREE(env->allocator, param_value);
        }
    }

    if(param->attrs)
    {
        axutil_hash_index_t *i = NULL;
        void *v = NULL;

        for(i = axutil_hash_first(param->attrs, env); i; i = axutil_hash_next(env, i))
        {
            axutil_hash_this(i, NULL, NULL, &v);
            axutil_generic_obj_free(v, env);
        }
        axutil_hash_free(param->attrs, env);
    }

    if(param->value_list)
    {
        int i = 0, size = 0;

        size = axutil_array_list_size(param->value_list, env);
        for(i = 0; i < size; i++)
        {
            axutil_param_t *param_l = NULL;

            param_l = (axutil_param_t *)axutil_array_list_get(param->value_list, env, i);
            if(param_l)
            {
                axutil_param_free(param_l, env);
            }
        }
        axutil_array_list_free(param->value_list, env);
    }
    param_name = axutil_param_get_name(param, env);
    AXIS2_FREE(env->allocator, param_name);
    AXIS2_FREE(env->allocator, param);
    return;
}
Esempio n. 3
0
AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_add_param(
    axis2_svc_t * svc,
    const axutil_env_t * env,
    axutil_param_t * param)
{
    axis2_char_t *paramname = NULL;
    const axis2_char_t *svcname = axis2_svc_get_name(svc, env);
    AXIS2_PARAM_CHECK(env->error, param, AXIS2_FAILURE);
    paramname = axutil_param_get_name(param, env);

    if(axis2_svc_is_param_locked(svc, env, axutil_param_get_name(param, env)))
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_PARAMETER_LOCKED_CANNOT_OVERRIDE, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Parameter %s is locked for service %s", paramname,
                        svcname);
        return AXIS2_FAILURE;
    }
    return axutil_param_container_add_param(svc->param_container, env, param);
}
Esempio n. 4
0
AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_handler_desc_add_param(
    axis2_handler_desc_t * handler_desc,
    const axutil_env_t * env,
    axutil_param_t * param)
{
    const axutil_string_t *str_name = axis2_handler_desc_get_name(handler_desc, env);
    const axis2_char_t *name = axutil_string_get_buffer(str_name, env);
    axis2_char_t *param_name = axutil_param_get_name(param, env);
    if(axutil_param_container_is_param_locked(handler_desc->parent, env, param_name))
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_PARAMETER_LOCKED_CANNOT_OVERRIDE, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Parameter %s is locked for handler %s",
            param_name, name);
        return AXIS2_FAILURE;
    }

    return axutil_param_container_add_param(handler_desc->param_container, env, param);
}