You are viewing a plain text version of this content. The canonical link for it is here.
Posted to sandesha-dev@ws.apache.org by da...@apache.org on 2008/08/29 16:27:10 UTC
svn commit: r690271 - /webservices/sandesha/trunk/c/src/client/client.c
Author: damitha
Date: Fri Aug 29 07:27:10 2008
New Revision: 690271
URL: http://svn.apache.org/viewvc?rev=690271&view=rev
Log:
Working on close sequence
Modified:
webservices/sandesha/trunk/c/src/client/client.c
Modified: webservices/sandesha/trunk/c/src/client/client.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/client/client.c?rev=690271&r1=690270&r2=690271&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/src/client/client.c (original)
+++ webservices/sandesha/trunk/c/src/client/client.c Fri Aug 29 07:27:10 2008
@@ -817,55 +817,59 @@
svc_ctx = (axis2_svc_ctx_t *) axis2_svc_client_get_svc_ctx(svc_client, env);
if(!svc_ctx)
{
- AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_SVC_CTX_NULL,
- AXIS2_FAILURE);
+ AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_SVC_CTX_NULL, AXIS2_FAILURE);
return AXIS2_FAILURE;
}
options = (axis2_options_t *) axis2_svc_client_get_options(svc_client, env);
if(!options)
{
- AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_OPTIONS_OBJECT_NOT_SET,
- AXIS2_FAILURE);
+ AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_OPTIONS_OBJECT_NOT_SET, AXIS2_FAILURE);
return AXIS2_FAILURE;
}
+
property = (axutil_property_t *) axis2_options_get_property(options, env,
- SANDESHA2_CLIENT_RM_SPEC_VERSION);
+ SANDESHA2_CLIENT_RM_SPEC_VERSION);
+
if(property)
+ {
rm_spec_version = axutil_property_get_value(property, env);
+ }
+
if(!rm_spec_version)
{
- rm_spec_version =
- sandesha2_spec_specific_consts_get_default_spec_version(env);
+ rm_spec_version = sandesha2_spec_specific_consts_get_default_spec_version(env);
}
- rm_namespc_value = sandesha2_spec_specific_consts_get_rm_ns_val(env,
- rm_spec_version);
+
+ rm_namespc_value = sandesha2_spec_specific_consts_get_rm_ns_val(env, rm_spec_version);
conf_ctx = axis2_svc_ctx_get_conf_ctx(svc_ctx, env);
- close_envelope = sandesha2_client_configure_close_seq(env, options,
- conf_ctx);
+ close_envelope = sandesha2_client_configure_close_seq(env, options, conf_ctx);
body = axiom_soap_envelope_get_body(close_envelope, env);
node = axiom_soap_body_get_base_node(body, env);
element = axiom_node_get_data_element(node, env);
- qname = axutil_qname_create(env, SANDESHA2_WSRM_COMMON_CLOSE_SEQ,
- rm_namespc_value, NULL);
- close_body_element = axiom_element_get_first_child_with_qname(element, env,
- qname, node, &close_body_node);
+ qname = axutil_qname_create(env, SANDESHA2_WSRM_COMMON_CLOSE_SEQ, rm_namespc_value, NULL);
+ close_body_element = axiom_element_get_first_child_with_qname(element, env, qname, node,
+ &close_body_node);
+
if(qname)
+ {
axutil_qname_free(qname, env);
+ }
+
old_action = (axis2_char_t*)axis2_options_get_action(options, env);
- action = sandesha2_spec_specific_consts_get_close_seq_action(env,
- rm_spec_version);
+ action = sandesha2_spec_specific_consts_get_close_seq_action(env, rm_spec_version);
axis2_options_set_action(options, env, action);
axis2_svc_client_fire_and_forget(svc_client, env, close_body_node);
if(AXIS2_SUCCESS != AXIS2_ERROR_GET_STATUS_CODE(env->error))
{
- AXIS2_ERROR_SET(env->error,
- SANDESHA2_ERROR_COULD_NOT_SEND_THE_CLOSE_SEQ_MESSAGE,
+ AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_COULD_NOT_SEND_THE_CLOSE_SEQ_MESSAGE,
AXIS2_FAILURE);
+
axis2_options_set_action(options, env, old_action);
return AXIS2_FAILURE;
}
+
axis2_options_set_action(options, env, old_action);
return AXIS2_SUCCESS;
}
@@ -884,25 +888,29 @@
options = (axis2_options_t *) axis2_svc_client_get_options(svc_client, env);
if(!options)
{
- AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_OPTIONS_OBJECT_NOT_SET,
- AXIS2_FAILURE);
+ AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_OPTIONS_OBJECT_NOT_SET, AXIS2_FAILURE);
return AXIS2_FAILURE;
}
+
spec_version = (axis2_char_t *) axis2_options_get_property(options, env,
SANDESHA2_CLIENT_RM_SPEC_VERSION);
- if(0 != axutil_strcmp(SANDESHA2_SPEC_VERSION_1_1, spec_version))
+
+ if(axutil_strcmp(SANDESHA2_SPEC_VERSION_1_1, spec_version))
{
- AXIS2_ERROR_SET(env->error,
- SANDESHA2_ERROR_CLOSE_SEQ_FEATURE_ONLY_AVAILABLE_FOR_WSRM1_1,
- AXIS2_FAILURE);
+ AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_CLOSE_SEQ_FEATURE_ONLY_AVAILABLE_FOR_WSRM1_1,
+ AXIS2_FAILURE);
+
return AXIS2_FAILURE;
}
+
old_property = (axutil_property_t *) axis2_options_get_property(options, env,
SANDESHA2_CLIENT_SEQ_KEY);
+
property = axutil_property_create_with_args(env, 0, 0, 0, seq_key);
axis2_options_set_property(options, env, SANDESHA2_CLIENT_SEQ_KEY, property);
sandesha2_client_close_seq_with_svc_client(env, svc_client);
axis2_options_set_property(options, env, SANDESHA2_CLIENT_SEQ_KEY, old_property);
+
return AXIS2_SUCCESS;
}
@@ -1306,97 +1314,122 @@
if(!options)
{
- AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_OPTIONS_OBJECT_NOT_SET,
- AXIS2_FAILURE);
+ AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_OPTIONS_OBJECT_NOT_SET, AXIS2_FAILURE);
return AXIS2_FAILURE;
}
+
to_epr = axis2_options_get_to(options, env);
if(!to_epr)
{
- AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_TO_EPR_NOT_SET,
- AXIS2_FAILURE);
+ AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_TO_EPR_NOT_SET, AXIS2_FAILURE);
return AXIS2_FAILURE;
}
+
to = (axis2_char_t*)axis2_endpoint_ref_get_address(to_epr, env);
property = (axutil_property_t *) axis2_options_get_property(options, env,
SANDESHA2_CLIENT_SEQ_KEY);
+
seq_key = axutil_property_get_value(property, env);
internal_seq_id = sandesha2_utils_get_client_internal_sequence_id(env, to, seq_key);
- seq_report = sandesha2_client_get_outgoing_seq_report_with_internal_seq_id(
- env, internal_seq_id, conf_ctx);
+ seq_report = sandesha2_client_get_outgoing_seq_report_with_internal_seq_id(env, internal_seq_id,
+ conf_ctx);
+
if(!seq_report)
{
- AXIS2_ERROR_SET(env->error,
- SANDESHA2_ERROR_CANNOT_FIND_SEQ_REPORT_FOR_GIVEN_SEQ_ID,
- AXIS2_FAILURE);
+ AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_CANNOT_FIND_SEQ_REPORT_FOR_GIVEN_SEQ_ID,
+ AXIS2_FAILURE);
return NULL;
}
+
status = sandesha2_seq_report_get_seq_status(seq_report, env);
if(status != SANDESHA2_SEQ_STATUS_ESTABLISHED)
{
AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_SEQ_NOT_IN_ACTIVE_STATE, AXIS2_FAILURE);
return NULL;
}
+
conf = axis2_conf_ctx_get_conf(conf_ctx, env);
dbname = sandesha2_util_get_dbname(env, conf_ctx);
storage_mgr = sandesha2_utils_get_storage_mgr(env, dbname);
seq_prop_mgr = sandesha2_permanent_seq_property_mgr_create(env, dbname);
- seq_id_bean = sandesha2_seq_property_mgr_retrieve(seq_prop_mgr, env,
- internal_seq_id, SANDESHA2_SEQUENCE_PROPERTY_RMS_SEQ_ID);
+ seq_id_bean = sandesha2_seq_property_mgr_retrieve(seq_prop_mgr, env, internal_seq_id,
+ SANDESHA2_SEQUENCE_PROPERTY_RMS_SEQ_ID);
+
if(!seq_id_bean)
{
- AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_SEQ_ID_BEAN_NOT_SET,
- AXIS2_FAILURE);
+ AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_SEQ_ID_BEAN_NOT_SET, AXIS2_FAILURE);
if(seq_prop_mgr)
+ {
sandesha2_seq_property_mgr_free(seq_prop_mgr, env);
+ }
+
if(storage_mgr)
+ {
sandesha2_storage_mgr_free(storage_mgr, env);
+ }
+
return NULL;
}
+
seq_id = sandesha2_seq_property_bean_get_value(seq_id_bean, env);
if(!seq_id)
{
- AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_CANNOT_FIND_SEQ_ID,
- AXIS2_FAILURE);
+ AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_CANNOT_FIND_SEQ_ID, AXIS2_FAILURE);
if(seq_prop_mgr)
+ {
sandesha2_seq_property_mgr_free(seq_prop_mgr, env);
+ }
+
if(storage_mgr)
+ {
sandesha2_storage_mgr_free(storage_mgr, env);
+ }
+
return NULL;
}
+
property = (axutil_property_t *) axis2_options_get_property(options, env,
SANDESHA2_CLIENT_RM_SPEC_VERSION);
+
if(property)
+ {
rm_spec_version = axutil_property_get_value(property, env);
+ }
+
if(!rm_spec_version)
{
- rm_spec_version =
- sandesha2_spec_specific_consts_get_default_spec_version(env);
+ rm_spec_version = sandesha2_spec_specific_consts_get_default_spec_version(env);
}
- if(AXIS2_TRUE != sandesha2_spec_specific_consts_is_seq_closing_allowed(env,
- rm_spec_version))
+
+ if(!sandesha2_spec_specific_consts_is_seq_closing_allowed(env, rm_spec_version))
{
- AXIS2_ERROR_SET(env->error,
- SANDESHA2_ERROR_RM_VERSION_DOES_NOT_ALLOW_SEQ_CLOSING,
+ AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_RM_VERSION_DOES_NOT_ALLOW_SEQ_CLOSING,
AXIS2_FAILURE);
+
if(seq_prop_mgr)
+ {
sandesha2_seq_property_mgr_free(seq_prop_mgr, env);
+ }
+
if(storage_mgr)
+ {
sandesha2_storage_mgr_free(storage_mgr, env);
+ }
+
return NULL;
}
+
soap_ns_uri = (axis2_char_t *) axis2_options_get_soap_version_uri(options, env);
- if(0 == axutil_strcmp(AXIOM_SOAP12_SOAP_ENVELOPE_NAMESPACE_URI, soap_ns_uri))
+ if(!axutil_strcmp(AXIOM_SOAP12_SOAP_ENVELOPE_NAMESPACE_URI, soap_ns_uri))
{
- dummy_envelope = axiom_soap_envelope_create_default_soap_envelope(env,
- AXIOM_SOAP12);
+ dummy_envelope = axiom_soap_envelope_create_default_soap_envelope(env, AXIOM_SOAP12);
}
else
{
- dummy_envelope = axiom_soap_envelope_create_default_soap_envelope(env,
- AXIOM_SOAP11);
+ dummy_envelope = axiom_soap_envelope_create_default_soap_envelope(env, AXIOM_SOAP11);
}
+
rm_ns_value = sandesha2_spec_specific_consts_get_rm_ns_val(env, rm_spec_version);
close_seq = sandesha2_close_seq_create(env, rm_ns_value);
identifier = sandesha2_identifier_create(env, rm_ns_value);
@@ -1405,9 +1438,15 @@
sandesha2_close_seq_to_soap_envelope(close_seq, env, dummy_envelope);
if(seq_prop_mgr)
+ {
sandesha2_seq_property_mgr_free(seq_prop_mgr, env);
+ }
+
if(storage_mgr)
+ {
sandesha2_storage_mgr_free(storage_mgr, env);
+ }
+
return dummy_envelope;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org