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/26 17:55:30 UTC
svn commit: r689119 - in
/webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008:
include/ src/util/ src/wsrm/
Author: damitha
Date: Tue Aug 26 08:55:29 2008
New Revision: 689119
URL: http://svn.apache.org/viewvc?rev=689119&view=rev
Log:
Adding endpoint construct into sequence offer in RM 1.1
Modified:
webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/include/sandesha2_constants.h
webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/include/sandesha2_seq_offer.h
webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/util/msg_creator.c
webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/wsrm/Makefile.am
webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/wsrm/create_seq.c
webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/wsrm/endpoint.c
webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/wsrm/seq_offer.c
Modified: webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/include/sandesha2_constants.h
URL: http://svn.apache.org/viewvc/webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/include/sandesha2_constants.h?rev=689119&r1=689118&r2=689119&view=diff
==============================================================================
--- webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/include/sandesha2_constants.h (original)
+++ webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/include/sandesha2_constants.h Tue Aug 26 08:55:29 2008
@@ -153,6 +153,7 @@
#define SANDESHA2_WSRM_COMMON_MESSAGE_PENDING "MessagePending"
#define SANDESHA2_WSRM_COMMON_PENDING "pending"
#define SANDESHA2_WSRM_COMMON_MAKE_CONNECTION "MakeConnection"
+ #define SANDESHA2_WSRM_COMMON_ENDPOINT "Endpoint"
/* Message Context Properties */
#define SANDESHA2_MSG_CTX_PROP_INTERNAL_SEQUENCE_ID "Sandesha2InternalSequenceId"
Modified: webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/include/sandesha2_seq_offer.h
URL: http://svn.apache.org/viewvc/webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/include/sandesha2_seq_offer.h?rev=689119&r1=689118&r2=689119&view=diff
==============================================================================
--- webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/include/sandesha2_seq_offer.h (original)
+++ webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/include/sandesha2_seq_offer.h Tue Aug 26 08:55:29 2008
@@ -24,6 +24,7 @@
#include <sandesha2_error.h>
#include <sandesha2_identifier.h>
+#include <sandesha2_endpoint.h>
#include <sandesha2_expires.h>
#ifdef __cplusplus
@@ -46,7 +47,8 @@
AXIS2_EXTERN sandesha2_seq_offer_t* AXIS2_CALL
sandesha2_seq_offer_create(
const axutil_env_t *env,
- axis2_char_t *ns_value);
+ axis2_char_t *ns_value,
+ axis2_char_t *addr_ns_val);
axis2_status_t AXIS2_CALL
sandesha2_seq_offer_free(
@@ -64,6 +66,17 @@
const axutil_env_t *env,
sandesha2_identifier_t *identifier);
+sandesha2_endpoint_t * AXIS2_CALL
+sandesha2_seq_offer_get_endpoint(
+ sandesha2_seq_offer_t *seq_offer,
+ const axutil_env_t *env);
+
+axis2_status_t AXIS2_CALL
+sandesha2_seq_offer_set_endpoint(
+ sandesha2_seq_offer_t *seq_offer,
+ const axutil_env_t *env,
+ sandesha2_endpoint_t *endpoint);
+
sandesha2_expires_t * AXIS2_CALL
sandesha2_seq_offer_get_expires(
sandesha2_seq_offer_t *seq_offer,
Modified: webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/util/msg_creator.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/util/msg_creator.c?rev=689119&r1=689118&r2=689119&view=diff
==============================================================================
--- webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/util/msg_creator.c (original)
+++ webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/util/msg_creator.c Tue Aug 26 08:55:29 2008
@@ -106,6 +106,7 @@
sandesha2_address_t *temp_address = NULL;
sandesha2_acks_to_t *temp_acks_to = NULL;
axutil_property_t *property = NULL;
+ const axis2_char_t *reply_to_address = NULL;
application_msg_ctx = sandesha2_msg_ctx_get_msg_ctx(application_rm_msg, env);
if(!application_msg_ctx)
@@ -160,7 +161,8 @@
{
axis2_endpoint_ref_t *reply_to_epr = NULL;
- reply_to_epr = axis2_endpoint_ref_create(env, axis2_endpoint_ref_get_address(temp_reply_to, env));
+ reply_to_address = axis2_endpoint_ref_get_address(temp_reply_to, env);
+ reply_to_epr = axis2_endpoint_ref_create(env, reply_to_address);
if(reply_to_epr)
{
axis2_msg_ctx_set_reply_to(create_seq_msg_ctx, env, reply_to_epr);
@@ -205,11 +207,26 @@
{
sandesha2_seq_offer_t *offer_part = NULL;
sandesha2_identifier_t *identifier = NULL;
+ sandesha2_endpoint_t *endpoint = NULL;
- offer_part = sandesha2_seq_offer_create(env, rm_ns_value);
+ offer_part = sandesha2_seq_offer_create(env, rm_ns_value, addressing_ns_value);
identifier = sandesha2_identifier_create(env, rm_ns_value);
sandesha2_identifier_set_identifier(identifier, env, offered_seq);
sandesha2_seq_offer_set_identifier(offer_part, env, identifier);
+
+ if(!axutil_strcmp(SANDESHA2_SPEC_VERSION_1_1, rm_version))
+ {
+ axis2_endpoint_ref_t *reply_to_epr = NULL;
+ sandesha2_address_t *address = NULL;
+
+ reply_to_epr = axis2_endpoint_ref_create(env, reply_to_address);
+ address = sandesha2_address_create(env, rm_ns_value, reply_to_epr);
+ endpoint = sandesha2_endpoint_create(env, address, rm_ns_value,
+ addressing_ns_value);
+
+ sandesha2_seq_offer_set_endpoint(offer_part, env, endpoint);
+ }
+
sandesha2_create_seq_set_seq_offer(create_seq_part, env, offer_part);
}
}
Modified: webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/wsrm/Makefile.am
URL: http://svn.apache.org/viewvc/webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/wsrm/Makefile.am?rev=689119&r1=689118&r2=689119&view=diff
==============================================================================
--- webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/wsrm/Makefile.am (original)
+++ webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/wsrm/Makefile.am Tue Aug 26 08:55:29 2008
@@ -3,6 +3,7 @@
libsandesha2_wsrm_la_SOURCES = ack_final.c\
identifier.c\
+ endpoint.c\
address.c\
acks_to.c\
nack.c\
Modified: webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/wsrm/create_seq.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/wsrm/create_seq.c?rev=689119&r1=689118&r2=689119&view=diff
==============================================================================
--- webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/wsrm/create_seq.c (original)
+++ webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/wsrm/create_seq.c Tue Aug 26 08:55:29 2008
@@ -173,7 +173,7 @@
if(offer_part)
{
create_seq->seq_offer = sandesha2_seq_offer_create(env,
- create_seq->rm_ns_val);
+ create_seq->rm_ns_val, create_seq->addr_ns_val);
if(!create_seq->seq_offer)
{
return NULL;
Modified: webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/wsrm/endpoint.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/wsrm/endpoint.c?rev=689119&r1=689118&r2=689119&view=diff
==============================================================================
--- webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/wsrm/endpoint.c (original)
+++ webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/wsrm/endpoint.c Tue Aug 26 08:55:29 2008
@@ -116,26 +116,31 @@
AXIS2_PARAM_CHECK(env->error, om_node, NULL);
om_element = axiom_node_get_data_element(om_node, env);
- if(NULL == om_element)
+ if(!om_element)
{
- AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_NULL_OM_ELEMENT,
- AXIS2_FAILURE);
+ AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_NULL_OM_ELEMENT, AXIS2_FAILURE);
return NULL;
}
endpoint_qname = axutil_qname_create(env, SANDESHA2_WSRM_COMMON_ENDPOINT,
endpoint->rm_ns_val, NULL);
- if(NULL == endpoint_qname)
+
+ if(!endpoint_qname)
{
return NULL;
}
+
endpoint_part = axiom_element_get_first_child_with_qname(om_element, env,
endpoint_qname, om_node, &endpoint_node);
+
if(endpoint_qname)
+ {
axutil_qname_free(endpoint_qname, env);
- if(NULL == endpoint_part)
+ }
+
+ if(!endpoint_part)
{
- AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_NULL_OM_ELEMENT,
- AXIS2_FAILURE);
+ AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
+ "Endpoint is not set. It means this is not RM 1.1 Create Sequence Message");
return NULL;
}
Modified: webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/wsrm/seq_offer.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/wsrm/seq_offer.c?rev=689119&r1=689118&r2=689119&view=diff
==============================================================================
--- webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/wsrm/seq_offer.c (original)
+++ webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/wsrm/seq_offer.c Tue Aug 26 08:55:29 2008
@@ -24,8 +24,10 @@
struct sandesha2_seq_offer_t
{
sandesha2_identifier_t *identifier;
+ sandesha2_endpoint_t *endpoint;
sandesha2_expires_t *expires;
axis2_char_t *ns_val;
+ axis2_char_t *addr_ns_val;
};
static axis2_bool_t AXIS2_CALL
@@ -36,10 +38,12 @@
AXIS2_EXTERN sandesha2_seq_offer_t* AXIS2_CALL
sandesha2_seq_offer_create(
const axutil_env_t *env,
- axis2_char_t *ns_val)
+ axis2_char_t *ns_val,
+ axis2_char_t *addr_ns_val)
{
sandesha2_seq_offer_t *seq_offer = NULL;
AXIS2_PARAM_CHECK(env->error, ns_val, NULL);
+ AXIS2_PARAM_CHECK(env->error, addr_ns_val, NULL);
if(AXIS2_FALSE == sandesha2_seq_offer_is_namespace_supported(env, ns_val))
{
@@ -55,8 +59,11 @@
AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
return NULL;
}
+
seq_offer->ns_val = (axis2_char_t *)axutil_strdup(env, ns_val);
+ seq_offer->addr_ns_val = (axis2_char_t *)axutil_strdup(env, addr_ns_val);
seq_offer->identifier = NULL;
+ seq_offer->endpoint = NULL;
seq_offer->expires = NULL;
return seq_offer;
@@ -74,11 +81,23 @@
seq_offer->ns_val = NULL;
}
+ if(seq_offer->addr_ns_val)
+ {
+ AXIS2_FREE(env->allocator, seq_offer->addr_ns_val);
+ seq_offer->addr_ns_val = NULL;
+ }
+
if(seq_offer->identifier)
{
sandesha2_identifier_free(seq_offer->identifier, env);
seq_offer->identifier = NULL;
}
+
+ if(seq_offer->endpoint)
+ {
+ sandesha2_endpoint_free(seq_offer->endpoint, env);
+ seq_offer->endpoint = NULL;
+ }
seq_offer->expires = NULL;
AXIS2_FREE(env->allocator, seq_offer);
@@ -132,13 +151,25 @@
AXIS2_FAILURE);
return NULL;
}
- seq_offer->identifier = sandesha2_identifier_create(env,
- seq_offer->ns_val);
- if(NULL == seq_offer->identifier)
+
+ seq_offer->identifier = sandesha2_identifier_create(env, seq_offer->ns_val);
+ if(!seq_offer->identifier)
{
return NULL;
}
+
sandesha2_identifier_from_om_node(seq_offer->identifier, env, so_node);
+
+ seq_offer->endpoint = sandesha2_endpoint_create(env, NULL, seq_offer->ns_val,
+ seq_offer->addr_ns_val);
+
+ if(!seq_offer->endpoint)
+ {
+ return NULL;
+ }
+
+ sandesha2_endpoint_from_om_node(seq_offer->endpoint, env, so_node);
+
exp_qname = axutil_qname_create(env, SANDESHA2_WSRM_COMMON_EXPIRES,
seq_offer->ns_val, NULL);
if(NULL == exp_qname)
@@ -174,31 +205,38 @@
AXIS2_PARAM_CHECK(env->error, om_node, NULL);
- if(NULL == seq_offer->identifier)
+ if(!seq_offer->identifier)
{
- AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_TO_OM_NULL_ELEMENT,
- AXIS2_FAILURE);
+ AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_TO_OM_NULL_ELEMENT, AXIS2_FAILURE);
return NULL;
}
- rm_ns = axiom_namespace_create(env, seq_offer->ns_val,
- SANDESHA2_WSRM_COMMON_NS_PREFIX_RM);
- if(NULL == rm_ns)
+
+ rm_ns = axiom_namespace_create(env, seq_offer->ns_val, SANDESHA2_WSRM_COMMON_NS_PREFIX_RM);
+ if(!rm_ns)
{
return NULL;
}
- so_element = axiom_element_create(env, NULL,
- SANDESHA2_WSRM_COMMON_SEQ_OFFER, rm_ns, &so_node);
- if(NULL == so_element)
+
+ so_element = axiom_element_create(env, NULL, SANDESHA2_WSRM_COMMON_SEQ_OFFER, rm_ns, &so_node);
+ if(!so_element)
{
return NULL;
}
+
sandesha2_identifier_to_om_node(seq_offer->identifier, env, so_node);
- if(NULL != seq_offer->expires)
+
+ if(seq_offer->endpoint)
{
- sandesha2_seq_offer_to_om_node((sandesha2_seq_offer_t *)
- seq_offer->expires, env, so_node);
+ sandesha2_endpoint_to_om_node(seq_offer->endpoint, env, so_node);
}
+
+ if(seq_offer->expires)
+ {
+ sandesha2_seq_offer_to_om_node((sandesha2_seq_offer_t *) seq_offer->expires, env, so_node);
+ }
+
axiom_node_add_child((axiom_node_t*)om_node, env, so_node);
+
return (axiom_node_t*)om_node;
}
@@ -226,6 +264,30 @@
return AXIS2_SUCCESS;
}
+sandesha2_endpoint_t * AXIS2_CALL
+sandesha2_seq_offer_get_endpoint(
+ sandesha2_seq_offer_t *seq_offer,
+ const axutil_env_t *env)
+{
+ return seq_offer->endpoint;
+}
+
+axis2_status_t AXIS2_CALL
+sandesha2_seq_offer_set_endpoint(
+ sandesha2_seq_offer_t *seq_offer,
+ const axutil_env_t *env,
+ sandesha2_endpoint_t *endpoint)
+{
+ if(seq_offer->endpoint)
+ {
+ sandesha2_endpoint_free(seq_offer->endpoint, env);
+ seq_offer->endpoint = NULL;
+ }
+
+ seq_offer->endpoint = endpoint;
+ return AXIS2_SUCCESS;
+}
+
sandesha2_expires_t * AXIS2_CALL
sandesha2_seq_offer_get_expires(
sandesha2_seq_offer_t *seq_offer,
---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org