axis2_op_t *AXIS2_CALL axis2_req_uri_disp_find_op( axis2_msg_ctx_t * msg_ctx, const axutil_env_t * env, axis2_svc_t * svc) { axis2_endpoint_ref_t *endpoint_ref = NULL; axis2_op_t *op = NULL; AXIS2_PARAM_CHECK(env->error, svc, NULL); if(axis2_msg_ctx_get_doing_rest(msg_ctx, env)) return NULL; endpoint_ref = axis2_msg_ctx_get_to(msg_ctx, env); if(endpoint_ref) { const axis2_char_t *address = NULL; address = axis2_endpoint_ref_get_address(endpoint_ref, env); if(address) { axis2_char_t **url_tokens = NULL; url_tokens = axutil_parse_request_url_for_svc_and_op(env, address); if(url_tokens) { if(url_tokens[1]) { axutil_qname_t *op_qname = NULL; AXIS2_LOG_DEBUG( env->log, AXIS2_LOG_SI, "Checking for operation using \ target endpoint uri fragment : %s", url_tokens[1]); op_qname = axutil_qname_create(env, url_tokens[1], NULL, NULL); op = axis2_svc_get_op_with_name(svc, env, axutil_qname_get_localpart(op_qname, env)); axutil_qname_free(op_qname, env); if(op) AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "Operation found using target endpoint uri fragment"); } if(url_tokens[0]) AXIS2_FREE(env->allocator, url_tokens[0]); if(url_tokens[1]) AXIS2_FREE(env->allocator, url_tokens[1]); AXIS2_FREE(env->allocator, url_tokens); } } } return op; }
void axis2_stub_populate_services_for_CallbackServiceUserStubService(axis2_stub_t *stub, const axutil_env_t *env) { axis2_svc_client_t *svc_client = NULL; axutil_qname_t *svc_qname = NULL; axutil_qname_t *op_qname = NULL; axis2_svc_t *svc = NULL; axis2_op_t *op = NULL; axis2_op_t *annon_op = NULL; axis2_msg_t *msg_out = NULL; axis2_msg_t *msg_in = NULL; axis2_msg_t *msg_out_fault = NULL; axis2_msg_t *msg_in_fault = NULL; /* Modifying the Service */ svc_client = axis2_stub_get_svc_client (stub, env ); svc = (axis2_svc_t*)axis2_svc_client_get_svc( svc_client, env ); annon_op = axis2_svc_get_op_with_name(svc, env, AXIS2_ANON_OUT_IN_OP); msg_out = axis2_op_get_msg(annon_op, env, AXIS2_MSG_OUT); msg_in = axis2_op_get_msg(annon_op, env, AXIS2_MSG_IN); msg_out_fault = axis2_op_get_msg(annon_op, env, AXIS2_MSG_OUT_FAULT); msg_in_fault = axis2_op_get_msg(annon_op, env, AXIS2_MSG_IN_FAULT); svc_qname = axutil_qname_create(env,"CallbackServiceUserStubService" ,NULL, NULL); axis2_svc_set_qname (svc, env, svc_qname); /* creating the operations*/ op_qname = axutil_qname_create(env, "getEvents" , "http://esb.callbackservice.services.hdviper.psnc.pl/", NULL); op = axis2_op_create_with_qname(env, op_qname); axis2_op_set_msg_exchange_pattern(op, env, AXIS2_MEP_URI_OUT_IN); axis2_msg_increment_ref(msg_out, env); axis2_msg_increment_ref(msg_in, env); axis2_msg_increment_ref(msg_out_fault, env); axis2_msg_increment_ref(msg_in_fault, env); axis2_op_add_msg(op, env, AXIS2_MSG_OUT, msg_out); axis2_op_add_msg(op, env, AXIS2_MSG_IN, msg_in); axis2_op_add_msg(op, env, AXIS2_MSG_OUT_FAULT, msg_out_fault); axis2_op_add_msg(op, env, AXIS2_MSG_IN_FAULT, msg_in_fault); axis2_svc_add_op(svc, env, op); }
axis2_status_t wsf_wsdl_util_insert_policy_to_svc( const axutil_env_t* env, neethi_policy_t* merged_input_neethi_policy, axis2_svc_t* svc, axis2_char_t* op_name) { axis2_desc_t *desc = NULL; axis2_policy_include_t *policy_include = NULL; axis2_op_t *op = NULL; op = axis2_svc_get_op_with_name (svc, env, op_name); if (!op) { AXIS2_LOG_DEBUG_MSG(env->log, "Service is NULL"); return AXIS2_FAILURE; } desc = axis2_op_get_base (op, env); if (!desc) { AXIS2_LOG_DEBUG_MSG(env->log, "Description is NULL"); return AXIS2_FAILURE; } policy_include = axis2_desc_get_policy_include (desc, env); if (!policy_include) { AXIS2_LOG_DEBUG_MSG(env->log, "Policy Include is NULL"); return AXIS2_FAILURE; } return axis2_policy_include_add_policy_element (policy_include, env, AXIS2_SERVICE_POLICY, merged_input_neethi_policy); }
void AXIS2_CALL axis2_stub_populate_services_for_IIp2Location(axis2_stub_t *stub, const axutil_env_t *env) { axis2_svc_client_t *svc_client = NULL; axutil_qname_t *svc_qname = NULL; axutil_qname_t *op_qname = NULL; axis2_svc_t *svc = NULL; axis2_op_t *op = NULL; axis2_op_t *annon_op = NULL; axis2_msg_t *msg_out = NULL; axis2_msg_t *msg_in = NULL; axis2_msg_t *msg_out_fault = NULL; axis2_msg_t *msg_in_fault = NULL; axis2_policy_include_t *policy_include = NULL; axis2_desc_t *desc = NULL; axiom_node_t *policy_node = NULL; axiom_element_t *policy_root_ele = NULL; neethi_policy_t *neethi_policy = NULL; axis2_status_t status; /* Modifying the Service */ svc_client = axis2_stub_get_svc_client (stub, env ); svc = (axis2_svc_t*)axis2_svc_client_get_svc( svc_client, env ); annon_op = axis2_svc_get_op_with_name(svc, env, AXIS2_ANON_OUT_IN_OP); msg_out = axis2_op_get_msg(annon_op, env, AXIS2_MSG_OUT); msg_in = axis2_op_get_msg(annon_op, env, AXIS2_MSG_IN); msg_out_fault = axis2_op_get_msg(annon_op, env, AXIS2_MSG_OUT_FAULT); msg_in_fault = axis2_op_get_msg(annon_op, env, AXIS2_MSG_IN_FAULT); svc_qname = axutil_qname_create(env,"IIp2Location" ,NULL, NULL); axis2_svc_set_qname (svc, env, svc_qname); axutil_qname_free(svc_qname,env); /* creating the operations*/ op_qname = axutil_qname_create(env, "get" , "http://ws.apache.org/axis2", NULL); op = axis2_op_create_with_qname(env, op_qname); axutil_qname_free(op_qname,env); axis2_op_set_msg_exchange_pattern(op, env, AXIS2_MEP_URI_OUT_IN); axis2_msg_increment_ref(msg_out, env); axis2_msg_increment_ref(msg_in, env); axis2_msg_increment_ref(msg_out_fault, env); axis2_msg_increment_ref(msg_in_fault, env); axis2_op_add_msg(op, env, AXIS2_MSG_OUT, msg_out); axis2_op_add_msg(op, env, AXIS2_MSG_IN, msg_in); axis2_op_add_msg(op, env, AXIS2_MSG_OUT_FAULT, msg_out_fault); axis2_op_add_msg(op, env, AXIS2_MSG_IN_FAULT, msg_in_fault); axis2_svc_add_op(svc, env, op); op_qname = axutil_qname_create(env, "add" , "http://ws.apache.org/axis2", NULL); op = axis2_op_create_with_qname(env, op_qname); axutil_qname_free(op_qname,env); axis2_op_set_msg_exchange_pattern(op, env, AXIS2_MEP_URI_OUT_ONLY); axis2_msg_increment_ref(msg_out, env); axis2_msg_increment_ref(msg_in, env); axis2_msg_increment_ref(msg_out_fault, env); axis2_msg_increment_ref(msg_in_fault, env); axis2_op_add_msg(op, env, AXIS2_MSG_OUT, msg_out); axis2_op_add_msg(op, env, AXIS2_MSG_IN, msg_in); axis2_op_add_msg(op, env, AXIS2_MSG_OUT_FAULT, msg_out_fault); axis2_op_add_msg(op, env, AXIS2_MSG_IN_FAULT, msg_in_fault); axis2_svc_add_op(svc, env, op); }
/* CHANGED */ void wsf_util_create_op_and_add_to_svc ( wsf_svc_info_t * svc_info, char *action, axutil_env_t * env, char *op_name, VALUE ht_mep) { axis2_svc_t *svc = NULL; axis2_op_t *op = NULL; axutil_qname_t *op_qname = NULL; op_qname = axutil_qname_create (env, op_name, NULL, NULL); svc = svc_info->svc; if (NULL != svc && NULL != op_name) { op = axis2_svc_get_op_with_name (svc_info->svc, env, op_name); if (!op) { axis2_conf_t *conf = NULL; axis2_conf_ctx_t *conf_ctx = NULL; axis2_phases_info_t *info = NULL; op_qname = axutil_qname_create (env, op_name, NULL, NULL); op = axis2_op_create_with_qname (env, op_qname); axis2_op_set_msg_recv (op, env, svc_info->msg_recv); conf_ctx = wsf_worker_get_conf_ctx (svc_info->ruby_worker, env); conf = axis2_conf_ctx_get_conf (conf_ctx, env); info = axis2_conf_get_phases_info (conf, env); axis2_phases_info_set_op_phases (info, env, op); axis2_svc_add_op (svc_info->svc, env, op); if (ht_mep) { char operation[300]; VALUE mep_value; char *mep; AXIS2_LOG_DEBUG (env->log, AXIS2_LOG_SI, "[wsf_service] ht mep not null, %s", op_name); snprintf (operation, sizeof(operation), "%s", op_name); if(TYPE(ht_mep) == T_HASH) { mep_value = rb_hash_aref(ht_mep, ID2SYM(rb_intern(operation))); } if(mep_value != Qnil) { mep = RSTRING(mep_value)->ptr; if (mep) { AXIS2_LOG_DEBUG (env->log, AXIS2_LOG_SI, "[wsf_service] op mep %s", mep); if (strcmp (mep, "IN_ONLY") == 0) { axis2_op_set_msg_exchange_pattern (op, env, AXIS2_MEP_URI_IN_ONLY); AXIS2_LOG_DEBUG (env->log, AXIS2_LOG_SI, "[wsf_service] AXIS2_MEP_URI_IN_ONLY"); } else if (strcmp (mep, "IN_OUT") == 0) { axis2_op_set_msg_exchange_pattern (op, env, AXIS2_MEP_URI_IN_OUT); AXIS2_LOG_DEBUG (env->log, AXIS2_LOG_SI, "[wsf_service] AXIS2_MEP_URI_IN_OUT"); } } } else { AXIS2_LOG_DEBUG (env->log, AXIS2_LOG_SI, "[wsf service] message exchange pattern for %s not found", op_name); } } if (action) { axis2_svc_add_mapping (svc_info->svc, env, action, op); } } } if(op_qname) { axutil_qname_free(op_qname, env); } return; }