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 2005/11/10 02:52:46 UTC

svn commit: r332195 - in /webservices/axis2/trunk/c: include/ modules/core/description/src/ modules/core/description/test/ modules/wsdl/src/

Author: damitha
Date: Wed Nov  9 17:52:32 2005
New Revision: 332195

URL: http://svn.apache.org/viewcvs?rev=332195&view=rev
Log:
more work on svc and operation

Modified:
    webservices/axis2/trunk/c/include/axis2_operation.h
    webservices/axis2/trunk/c/include/axis2_svc.h
    webservices/axis2/trunk/c/include/axis2_wsdl_operation.h
    webservices/axis2/trunk/c/include/axis2_wsdl_svc.h
    webservices/axis2/trunk/c/modules/core/description/src/operation.c
    webservices/axis2/trunk/c/modules/core/description/src/svc.c
    webservices/axis2/trunk/c/modules/core/description/test/Makefile.am
    webservices/axis2/trunk/c/modules/core/description/test/Makefile.in
    webservices/axis2/trunk/c/modules/wsdl/src/wsdl_operation.c
    webservices/axis2/trunk/c/modules/wsdl/src/wsdl_svc.c

Modified: webservices/axis2/trunk/c/include/axis2_operation.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_operation.h?rev=332195&r1=332194&r2=332195&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_operation.h (original)
+++ webservices/axis2/trunk/c/include/axis2_operation.h Wed Nov  9 17:52:32 2005
@@ -24,6 +24,7 @@
 
 #include <axis2_core.h>
 #include <axis2_param_container.h>
+#include <axis2_wsdl_operation.h>
 #include <axis2_svc.h>
 #include <axis2_msg_recv.h>
 
@@ -90,13 +91,17 @@
 	struct axis2_svc_s *(AXIS2_CALL *get_parent) (axis2_operation_t *operation, 
                                             axis2_env_t **env);
 
+    axis2_status_t (AXIS2_CALL *set_name) (axis2_operation_t *operation, 
+                                            axis2_env_t **env,
+                                            axis2_qname_t *qname);
+    
 	axis2_qname_t *(AXIS2_CALL *get_name) (axis2_operation_t *operation, 
                                             axis2_env_t **env);
 
 	axis2_status_t (AXIS2_CALL *set_msg_exchange_pattern) 
                                                 (axis2_operation_t *operation, 
                                                 axis2_env_t **env,
-                                                axis2_char_t *pattern);
+                                                const axis2_char_t *pattern);
 
 	axis2_char_t *(AXIS2_CALL *get_msg_exchange_pattern)
                                                 (axis2_operation_t *operation, 
@@ -108,6 +113,13 @@
 
 	struct axis2_msg_recv_s *(AXIS2_CALL *get_msg_recv) (axis2_operation_t *operation, 
                                                     axis2_env_t **env);
+    
+    axis2_char_t *(AXIS2_CALL *get_style) (axis2_operation_t *operation,
+                                            axis2_env_t **env);
+
+    axis2_status_t  (AXIS2_CALL *set_style) (axis2_operation_t *operation,
+                                                axis2_env_t **env,
+                                                axis2_char_t *style);
 };
 
 /** 
@@ -159,6 +171,15 @@
 #define AXIS2_OPERATION_GET_PARENT(operation, env) \
 		((operation->ops)->get_parent (operation, env));
 
+#define AXIS2_OPERATION_SET_MSG_RECEIVER(operation, env, msg_recv) \
+        ((operation->ops)->set_msg_recv (operation, env, msg_recv));
+
+#define AXIS2_OPERATION_GET_MSG_RECEIVER(operation, env) \
+		((operation->ops)->get_msg_recv (operation, env));
+
+#define AXIS2_OPERATION_SET_NAME(operation, env, qname) \
+		((operation->ops)->set_name (operation, env, qname));
+        
 #define AXIS2_OPERATION_GET_NAME(operation, env) \
 		((operation->ops)->get_name (operation, env));
 
@@ -168,13 +189,13 @@
         msg_exchange_pattern));
 
 #define AXIS2_OPERATION_GET_MSG_EXCHANGE_PATTERN(operation, env) \
-		((operation->ops)->get_msg_exchange_pattern (operation, env));
-
-#define AXIS2_OPERATION_SET_MSG_RECEIVER(operation, env, msg_recv) \
-        ((operation->ops)->set_msg_recv (operation, env, msg_recv));
+		((operation->ops)->get_msg_exchange_pattern (operation, env));        
 
-#define AXIS2_OPERATION_GET_MSG_RECEIVER(operation, env) \
-		((operation->ops)->get_msg_recv (operation, env));
+#define AXIS2_OPERATION_GET_STYLE(operation, env) \
+		((operation->ops)->get_style (operation, env));
+        
+#define AXIS2_OPERATION_SET_STYLE(operation, env, style) \
+		((operation->ops)->set_style (operation, env, style));        
 
 /************************** End of function macros ****************************/
 

Modified: webservices/axis2/trunk/c/include/axis2_svc.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_svc.h?rev=332195&r1=332194&r2=332195&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_svc.h (original)
+++ webservices/axis2/trunk/c/include/axis2_svc.h Wed Nov  9 17:52:32 2005
@@ -98,6 +98,26 @@
 	axis2_bool_t (AXIS2_CALL *is_param_locked) (axis2_svc_t *svc, 
                                                 axis2_env_t **env,
 		                                        const axis2_char_t *param_name);
+
+    axis2_hash_t * (AXIS2_CALL *get_component_properties) (
+                                                    axis2_svc_t *svc,
+                                                    axis2_env_t **env);
+
+    axis2_status_t (AXIS2_CALL *set_component_properties) (
+                                                    axis2_svc_t *svc,
+                                                    axis2_env_t **env,
+                                                    axis2_hash_t *properties);
+
+    axis2_wsdl_component_t * (AXIS2_CALL *get_component_property) (
+                                                    axis2_svc_t *svc,
+                                                    axis2_env_t **env,
+                                                    const axis2_char_t *key);
+
+    axis2_status_t (AXIS2_CALL *set_component_property) (
+                                                    axis2_svc_t *svc,
+                                                    axis2_env_t **env,
+                                                    const void *key,
+                                                    void *value);
 };
 
 /** 
@@ -160,7 +180,18 @@
 #define AXIS2_SVC_IS_PARAM_LOCKED(svc, env, param_name) \
         (svc->ops->is_parameter_locked(svc, env, param_name));
 				
+#define AXIS2_SVC_GET_COMPONENT_PROPERTIES(svc, env) \
+        ((svc->ops)->get_component_properties(svc, env))
+
+#define AXIS2_SVC_SET_COMPONENT_PROPERTIES(svc, env, properties) \
+        ((svc->ops)->set_component_properties(svc, env, properties))
+
+#define AXIS2_SVC_GET_COMPONENT_PROPERTY(svc, env, key) \
+        ((svc->ops)->get_component_property(svc, env, key))
 
+#define AXIS2_SVC_SET_COMPONENT_PROPERTY(svc, env, key, value) \
+        ((svc->ops)->set_component_property(svc, env, key, value))
+        
 /**************************** End of function macros **************************/
 
 /** @} */

Modified: webservices/axis2/trunk/c/include/axis2_wsdl_operation.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_wsdl_operation.h?rev=332195&r1=332194&r2=332195&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_wsdl_operation.h (original)
+++ webservices/axis2/trunk/c/include/axis2_wsdl_operation.h Wed Nov  9 17:52:32 2005
@@ -99,7 +99,7 @@
     axis2_status_t (AXIS2_CALL *set_style) (
                                         axis2_wsdl_operation_t *wsdl_operation,
                                         axis2_env_t **env,
-                                        const axis2_char_t *style);
+                                        axis2_char_t *style);
     
     /**
      * Get style
@@ -165,29 +165,29 @@
 #define AXIS2_WSDL_OPERATION_FREE(wsdl_operation, env) \
 		((wsdl_operation->ops)->free (wsdl_operation, env))
 	
-#define AXIS2_WSDL_OPERATION_GET_MSG_EXCHANGE_PATTERN(wsdl_operation, env, pattern) \
-		((wsdl_operation->ops)->get_msg_exchange_pattern(wsdl_operation, env, pattern))
+#define AXIS2_WSDL_OPERATION_GET_MSG_EXCHANGE_PATTERN(wsdl_operation, env) \
+		((wsdl_operation->ops)->get_msg_exchange_pattern(wsdl_operation, env))
 		
 #define AXIS2_WSDL_OPERATION_SET_MSG_EXCHANGE_PATTERN(wsdl_operation, env, pattern) \
 		((wsdl_operation->ops)->set_msg_exchange_pattern(wsdl_operation, env, pattern))
 		
-#define AXIS2_WSDL_OPERATION_GET_NAME(wsdl_operation, env, name) \
-		((wsdl_operation->ops)->get_name(wsdl_operation, env, name))
+#define AXIS2_WSDL_OPERATION_GET_NAME(wsdl_operation, env) \
+		((wsdl_operation->ops)->get_name(wsdl_operation, env))
 		
 #define AXIS2_WSDL_OPERATION_SET_NAME(wsdl_operation, env, name) \
 		((wsdl_operation->ops)->set_name(wsdl_operation, env, name))
 		
 #define AXIS2_WSDL_OPERATION_SET_STYLE(wsdl_operation, env, style) \
-		((wsdl_operation->ops)->get_style(wsdl_operation, env, style))
-		
-#define AXIS2_WSDL_OPERATION_GET_STYLE(wsdl_operation, env, style) \
 		((wsdl_operation->ops)->set_style(wsdl_operation, env, style))
 		
+#define AXIS2_WSDL_OPERATION_GET_STYLE(wsdl_operation, env) \
+		((wsdl_operation->ops)->get_style(wsdl_operation, env))
+		
 #define AXIS2_WSDL_OPERATION_SET_COMPONENT_PROPERTIES(wsdl_operation, env, properties) \
 		((wsdl_operation->ops)->set_component_properties(wsdl_operation, env, properties))
 		
-#define AXIS2_WSDL_OPERATION_GET_COMPONENT_PROPERTIES(wsdl_operation, env, properties) \
-		((wsdl_operation->ops)->get_component_properties(wsdl_operation, env, properties))
+#define AXIS2_WSDL_OPERATION_GET_COMPONENT_PROPERTIES(wsdl_operation, env) \
+		((wsdl_operation->ops)->get_component_properties(wsdl_operation, env))
 
 #define AXIS2_WSDL_OPERATION_SET_COMPONENT_PROPERTY(wsdl_operation, env, key, value) \
 		((wsdl_operation->ops)->set_component_property(wsdl_operation, env, key, value))

Modified: webservices/axis2/trunk/c/include/axis2_wsdl_svc.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_wsdl_svc.h?rev=332195&r1=332194&r2=332195&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_wsdl_svc.h (original)
+++ webservices/axis2/trunk/c/include/axis2_wsdl_svc.h Wed Nov  9 17:52:32 2005
@@ -73,21 +73,21 @@
                                             axis2_env_t **env,
                                             axis2_qname_t *qname);
     
-    axis2_hash_t * (AXIS2_CALL *axis2_wsdl_svc_get_component_properties) (
+    axis2_hash_t * (AXIS2_CALL *get_component_properties) (
                                                     axis2_wsdl_svc_t *wsdl_svc,
                                                     axis2_env_t **env);
 
-    axis2_status_t (AXIS2_CALL *axis2_wsdl_svc_set_component_properties) (
+    axis2_status_t (AXIS2_CALL *set_component_properties) (
                                                     axis2_wsdl_svc_t *wsdl_svc,
                                                     axis2_env_t **env,
                                                     axis2_hash_t *properties);
 
-    axis2_wsdl_component_t * (AXIS2_CALL *axis2_wsdl_svc_get_component_property) (
+    axis2_wsdl_component_t * (AXIS2_CALL *get_component_property) (
                                                     axis2_wsdl_svc_t *wsdl_svc,
                                                     axis2_env_t **env,
                                                     const axis2_char_t *key);
 
-    axis2_status_t (AXIS2_CALL *axis2_wsdl_svc_set_component_property) (
+    axis2_status_t (AXIS2_CALL *set_component_property) (
                                                     axis2_wsdl_svc_t *wsdl_svc,
                                                     axis2_env_t **env,
                                                     const void *key,
@@ -113,16 +113,28 @@
 
 /**************************** Start of function macros ************************/
 
-#define AXIS2_WSDL_SERVICE_FREE(wsdl_svc, env) ((wsdl_svc->ops)->free (wsdl_svc, \
+#define AXIS2_WSDL_SVC_FREE(wsdl_svc, env) ((wsdl_svc->ops)->free (wsdl_svc, \
 		env))
 
-#define AXIS2_WSDL_SERVICE_GET_NAME(wsdl_svc, env) \
+#define AXIS2_WSDL_SVC_GET_NAME(wsdl_svc, env) \
         ((wsdl_svc->ops)->get_name (wsdl_svc, env))
 
-#define AXIS2_WSDL_SERVICE_SET_NAME(wsdl_svc, env, qname) \
+#define AXIS2_WSDL_SVC_SET_NAME(wsdl_svc, env, qname) \
         ((wsdl_svc->ops)->set_name (wsdl_svc, env, qname))
-	
-		
+
+#define AXIS2_WSDL_SVC_GET_COMPONENT_PROPERTIES(wsdl_svc, env) \
+        ((wsdl_svc->ops)->get_component_properties(wsdl_svc, env))
+
+#define AXIS2_WSDL_SVC_SET_COMPONENT_PROPERTIES(wsdl_svc, env, properties) \
+        ((wsdl_svc->ops)->set_component_properties(wsdl_svc, env, properties))
+
+#define AXIS2_WSDL_SVC_GET_COMPONENT_PROPERTY(wsdl_svc, env, key) \
+        ((wsdl_svc->ops)->get_component_property(wsdl_svc, env, key))
+
+#define AXIS2_WSDL_SVC_SET_COMPONENT_PROPERTY(wsdl_svc, env, key, value) \
+        ((wsdl_svc->ops)->set_component_property(wsdl_svc, env, key, value))
+
+
 /**************************** End of function macros **************************/
 /** @} */
 #ifdef __cplusplus

Modified: webservices/axis2/trunk/c/modules/core/description/src/operation.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/description/src/operation.c?rev=332195&r1=332194&r2=332195&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/description/src/operation.c (original)
+++ webservices/axis2/trunk/c/modules/core/description/src/operation.c Wed Nov  9 17:52:32 2005
@@ -24,10 +24,9 @@
 {
 	axis2_operation_t operation;
 	axis2_param_container_t *param_container;
+    axis2_wsdl_operation_t *wsdl_operation;
 	struct axis2_svc_s *parent;
-	axis2_qname_t *qname;
 	axis2_msg_recv_t *msg_recv;
-	axis2_char_t* msg_exchange_pattern;
 } axis2_operation_impl_t;
 
 #define AXIS2_INTF_TO_IMPL(operation) ((axis2_operation_impl_t *)operation)
@@ -66,6 +65,20 @@
 axis2_operation_get_parent (axis2_operation_t *operation, 
                                 axis2_env_t **env);
 		
+axis2_status_t AXIS2_CALL
+axis2_operation_set_msg_recv (axis2_operation_t *operation, 
+                                axis2_env_t **env,
+                                axis2_msg_recv_t *msg_recv);
+
+axis2_msg_recv_t * AXIS2_CALL
+axis2_operation_get_msg_recv (axis2_operation_t *operation, 
+                                axis2_env_t **env);
+
+axis2_status_t AXIS2_CALL
+axis2_operation_set_name (axis2_operation_t *operation, 
+                            axis2_env_t **env,
+                            axis2_qname_t *qname);
+                            
 axis2_qname_t * AXIS2_CALL
 axis2_operation_get_name (axis2_operation_t *operation, 
                             axis2_env_t **env);
@@ -73,21 +86,21 @@
 axis2_status_t AXIS2_CALL
 axis2_operation_set_msg_exchange_pattern (axis2_operation_t *operation, 
                                             axis2_env_t **env,
-                                            axis2_char_t *pattern);
+                                            const axis2_char_t *pattern);
 		
 axis2_char_t * AXIS2_CALL
 axis2_operation_get_msg_exchange_pattern (axis2_operation_t *operation, 
                                             axis2_env_t **env);
-		
-axis2_status_t AXIS2_CALL
-axis2_operation_set_msg_recv (axis2_operation_t *operation, 
-                                axis2_env_t **env,
-                                axis2_msg_recv_t *msg_recv);
 
-axis2_msg_recv_t * AXIS2_CALL
-axis2_operation_get_msg_recv (axis2_operation_t *operation, 
-                                axis2_env_t **env);
-		
+axis2_char_t * AXIS2_CALL
+axis2_operation_get_style (axis2_operation_t *operation,
+                            axis2_env_t **env);
+
+axis2_status_t  AXIS2_CALL
+axis2_operation_set_style (axis2_operation_t *operation,
+                            axis2_env_t **env,
+                            axis2_char_t *style);
+
 /************************* End of function headers ****************************/	
 
 axis2_operation_t * AXIS2_CALL
@@ -103,10 +116,32 @@
 		AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, NULL);
 	}
     
+    operation_impl->param_container = (axis2_param_container_t *)
+		axis2_param_container_create(env);		
+	if(NULL == operation_impl->param_container)
+	{
+        AXIS2_FREE((*env)->allocator, operation_impl);
+        AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, NULL);		
+	}
+
+	operation_impl->wsdl_operation = (axis2_wsdl_operation_t *)
+		axis2_wsdl_operation_create(env);		
+	if(NULL == operation_impl->wsdl_operation)
+	{
+        AXIS2_PARAM_CONTAINER_FREE(operation_impl->param_container, env);
+        AXIS2_FREE((*env)->allocator, operation_impl);
+        AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, NULL);		
+	}
+
+    AXIS2_WSDL_OPERATION_SET_MSG_EXCHANGE_PATTERN(operation_impl->wsdl_operation,
+        env, MEP_URI_IN_OUT);    
+    
     operation_impl->operation.ops = AXIS2_MALLOC((*env)->allocator, 
         sizeof(axis2_operation_ops_t));
 	if(NULL == operation_impl->operation.ops)
 	{
+        AXIS2_PARAM_CONTAINER_FREE(operation_impl->param_container, env);
+        AXIS2_WSDL_OPERATION_FREE(operation_impl->wsdl_operation, env);
         AXIS2_FREE((*env)->allocator, operation_impl);
 		AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, NULL);
 	}
@@ -117,31 +152,22 @@
 	operation_impl->operation.ops->get_params = axis2_operation_get_params;
 	operation_impl->operation.ops->set_parent = axis2_operation_set_parent;
 	operation_impl->operation.ops->get_parent = axis2_operation_get_parent;
+  
+	operation_impl->operation.ops->set_msg_recv = axis2_operation_set_msg_recv;
+	operation_impl->operation.ops->get_msg_recv = axis2_operation_get_msg_recv;
+    
+    operation_impl->operation.ops->set_name = axis2_operation_set_name;
 	operation_impl->operation.ops->get_name = axis2_operation_get_name;
 	operation_impl->operation.ops->set_msg_exchange_pattern 
 		= axis2_operation_set_msg_exchange_pattern;
 	operation_impl->operation.ops->get_msg_exchange_pattern
 		= axis2_operation_get_msg_exchange_pattern;
-	operation_impl->operation.ops->set_msg_recv = axis2_operation_set_msg_recv;
-	operation_impl->operation.ops->get_msg_recv = axis2_operation_get_msg_recv;
-	
-	axis2_param_container_t *param_container = (axis2_param_container_t *)
-		axis2_param_container_create(env);		
-	if(NULL == param_container)
-	{
-        AXIS2_FREE((*env)->allocator, operation_impl);
-        AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, NULL);		
-	}
-
-	operation_impl->param_container = param_container;
+    operation_impl->operation.ops->set_style = axis2_operation_set_style;
+	operation_impl->operation.ops->get_style = axis2_operation_get_style; 
 	
 	operation_impl->parent = NULL;
 	
-	operation_impl->qname = NULL;
-	
 	operation_impl->msg_recv = NULL;
-	
-	operation_impl->msg_exchange_pattern = MEP_URI_IN_OUT;
 						
 	return &(operation_impl->operation);
 }
@@ -156,9 +182,10 @@
 	{
 		AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, NULL);
 	}
+    
     AXIS2_PARAM_CHECK((*env)->error, qname, AXIS2_FAILURE);	
-	
-    operation_impl->qname = qname;    
+	AXIS2_WSDL_OPERATION_SET_NAME(operation_impl->wsdl_operation, env, qname);
+       
 	return &(operation_impl->operation);	
 }
 
@@ -176,18 +203,15 @@
 	    AXIS2_PARAM_CONTAINER_FREE(AXIS2_INTF_TO_IMPL(operation)->param_container
         , env);
     
+    if(NULL != AXIS2_INTF_TO_IMPL(operation)->wsdl_operation)
+	    AXIS2_WSDL_OPERATION_FREE(AXIS2_INTF_TO_IMPL(operation)->wsdl_operation
+        , env);
+    
     if(NULL != AXIS2_INTF_TO_IMPL(operation)->parent)
 	    AXIS2_SVC_FREE(AXIS2_INTF_TO_IMPL(operation)->parent, env);
     
-    if(NULL != AXIS2_INTF_TO_IMPL(operation)->qname)
-	    AXIS2_QNAME_FREE(AXIS2_INTF_TO_IMPL(operation)->qname, env);
-    
     if(NULL != AXIS2_INTF_TO_IMPL(operation)->msg_recv)
 	    AXIS2_MSG_RECV_FREE(AXIS2_INTF_TO_IMPL(operation)->msg_recv, env);
-    
-    if(NULL != AXIS2_INTF_TO_IMPL(operation)->msg_exchange_pattern)
-	    AXIS2_FREE((*env)->allocator, 
-        AXIS2_INTF_TO_IMPL(operation)->msg_exchange_pattern);
         
     AXIS2_FREE((*env)->allocator, AXIS2_INTF_TO_IMPL(operation));
     
@@ -279,26 +303,56 @@
 	return AXIS2_INTF_TO_IMPL(operation)->parent;
 }
 
+axis2_status_t AXIS2_CALL 
+axis2_operation_set_msg_recv (axis2_operation_t *operation, 
+                                axis2_env_t **env,
+		                        axis2_msg_recv_t *msg_recv)
+{
+    AXIS2_FUNC_PARAM_CHECK(operation, env, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK((*env)->error, msg_recv, AXIS2_FAILURE);
+	AXIS2_INTF_TO_IMPL(operation)->msg_recv = msg_recv;
+	
+	return AXIS2_SUCCESS;
+}
+
+axis2_msg_recv_t * AXIS2_CALL
+axis2_operation_get_msg_recv (axis2_operation_t *operation, 
+                                axis2_env_t **env)
+{
+    AXIS2_FUNC_PARAM_CHECK(operation, env, NULL);
+    return AXIS2_INTF_TO_IMPL(operation)->msg_recv;
+}
+ 
+axis2_status_t AXIS2_CALL
+axis2_operation_set_name (axis2_operation_t *operation, 
+                            axis2_env_t **env,
+                            axis2_qname_t *qname)
+{
+    AXIS2_FUNC_PARAM_CHECK(operation, env, AXIS2_FAILURE);
+	
+    return AXIS2_WSDL_OPERATION_SET_NAME(AXIS2_INTF_TO_IMPL(operation)->
+        wsdl_operation, env, qname);
+}
+    
 axis2_qname_t * AXIS2_CALL
 axis2_operation_get_name (axis2_operation_t *operation, 
                             axis2_env_t **env)
 {
     AXIS2_FUNC_PARAM_CHECK(operation, env, NULL);
 	
-    return AXIS2_INTF_TO_IMPL(operation)->qname;
+    return AXIS2_WSDL_OPERATION_GET_NAME(AXIS2_INTF_TO_IMPL(operation)->wsdl_operation,
+        env);
 }
 
 axis2_status_t AXIS2_CALL 
 axis2_operation_set_msg_exchange_pattern (axis2_operation_t *operation, 
                                             axis2_env_t **env,
-		                                    axis2_char_t *pattern)
+		                                    const axis2_char_t *pattern)
 {
     AXIS2_FUNC_PARAM_CHECK(operation, env, AXIS2_FAILURE);
-	AXIS2_INTF_TO_IMPL(operation)->msg_exchange_pattern = AXIS2_STRDUP(pattern, env);
-	if(NULL == AXIS2_INTF_TO_IMPL(operation)->msg_exchange_pattern)
-        AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
-		
-	return AXIS2_SUCCESS;
+    
+    return AXIS2_WSDL_OPERATION_SET_MSG_EXCHANGE_PATTERN(AXIS2_INTF_TO_IMPL(operation)->
+        wsdl_operation, env, pattern);
 }
 
 axis2_char_t * AXIS2_CALL
@@ -306,25 +360,75 @@
                                             axis2_env_t **env)
 {
     AXIS2_FUNC_PARAM_CHECK(operation, env, NULL);
-	return AXIS2_INTF_TO_IMPL(operation)->msg_exchange_pattern;
+    
+    return AXIS2_WSDL_OPERATION_GET_MSG_EXCHANGE_PATTERN
+        (AXIS2_INTF_TO_IMPL(operation)->wsdl_operation, env);
 }
 
-axis2_status_t AXIS2_CALL 
-axis2_operation_set_msg_recv (axis2_operation_t *operation, 
-                                axis2_env_t **env,
-		                        axis2_msg_recv_t *msg_recv)
+axis2_hash_t * AXIS2_CALL
+axis2_operation_get_component_properties(axis2_operation_t *operation,
+                                        axis2_env_t **env)
+{
+    AXIS2_FUNC_PARAM_CHECK(operation, env, NULL);
+    
+    return AXIS2_WSDL_OPERATION_GET_COMPONENT_PROPERTIES(AXIS2_INTF_TO_IMPL(operation)->
+        wsdl_operation, env);
+}
+
+axis2_status_t AXIS2_CALL
+axis2_operation_set_component_properties(axis2_operation_t *operation,
+                                        axis2_env_t **env,
+                                        axis2_hash_t *properties)
 {
     AXIS2_FUNC_PARAM_CHECK(operation, env, AXIS2_FAILURE);
-    AXIS2_PARAM_CHECK((*env)->error, msg_recv, AXIS2_FAILURE);
-	AXIS2_INTF_TO_IMPL(operation)->msg_recv = msg_recv;
-	
-	return AXIS2_SUCCESS;
+    
+    return AXIS2_WSDL_OPERATION_SET_COMPONENT_PROPERTIES(AXIS2_INTF_TO_IMPL(operation)->
+        wsdl_operation, env, properties);
 }
 
-axis2_msg_recv_t * AXIS2_CALL
-axis2_operation_get_msg_recv (axis2_operation_t *operation, 
-                                axis2_env_t **env)
+axis2_wsdl_component_t * AXIS2_CALL
+axis2_operation_get_component_property(axis2_operation_t *operation,
+                                        axis2_env_t **env,
+                                        const axis2_char_t *key)
 {
     AXIS2_FUNC_PARAM_CHECK(operation, env, NULL);
-    return AXIS2_INTF_TO_IMPL(operation)->msg_recv;
+    AXIS2_PARAM_CHECK((*env)->error, key, NULL);
+    
+    return AXIS2_WSDL_OPERATION_GET_COMPONENT_PROPERTY(AXIS2_INTF_TO_IMPL(operation)->
+        wsdl_operation, env, key); 
+}
+
+axis2_status_t AXIS2_CALL
+axis2_operation_set_component_property (axis2_operation_t *operation,
+                                        axis2_env_t **env,
+                                        const void *key,
+                                        void *value)
+{
+    AXIS2_FUNC_PARAM_CHECK(operation, env, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK((*env)->error, key, AXIS2_FAILURE);
+    
+    return AXIS2_WSDL_OPERATION_SET_COMPONENT_PROPERTY(AXIS2_INTF_TO_IMPL(operation)->
+        wsdl_operation, env, (axis2_char_t *) key, value);
+}
+
+axis2_char_t * AXIS2_CALL
+axis2_operation_get_style (axis2_operation_t *operation,
+                            axis2_env_t **env)
+{
+    AXIS2_FUNC_PARAM_CHECK(operation, env, NULL);
+    
+    return AXIS2_WSDL_OPERATION_GET_STYLE(AXIS2_INTF_TO_IMPL(operation)->
+        wsdl_operation, env);
+}
+
+axis2_status_t  AXIS2_CALL
+axis2_operation_set_style (axis2_operation_t *operation,
+                            axis2_env_t **env,
+                            axis2_char_t *style)
+{
+    AXIS2_FUNC_PARAM_CHECK(operation, env, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK((*env)->error, style, AXIS2_FAILURE);
+    
+    return AXIS2_WSDL_OPERATION_SET_STYLE(AXIS2_INTF_TO_IMPL(operation)->
+        wsdl_operation, env, style);
 }

Modified: webservices/axis2/trunk/c/modules/core/description/src/svc.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/description/src/svc.c?rev=332195&r1=332194&r2=332195&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/description/src/svc.c (original)
+++ webservices/axis2/trunk/c/modules/core/description/src/svc.c Wed Nov  9 17:52:32 2005
@@ -67,7 +67,27 @@
 axis2_bool_t AXIS2_CALL
 axis2_svc_is_param_locked (axis2_svc_t *svc, axis2_env_t **env,
 		                    const axis2_char_t *param_name);
-		
+
+axis2_hash_t * AXIS2_CALL
+axis2_svc_get_component_properties(axis2_svc_t *svc,
+                                        axis2_env_t **env);
+
+axis2_status_t AXIS2_CALL
+axis2_svc_set_component_properties(axis2_svc_t *svc,
+                                        axis2_env_t **env,
+                                        axis2_hash_t *properties);
+
+axis2_wsdl_component_t * AXIS2_CALL
+axis2_svc_get_component_property(axis2_svc_t *svc,
+                                        axis2_env_t **env,
+                                        const axis2_char_t *key);
+
+axis2_status_t AXIS2_CALL
+axis2_svc_set_component_property (axis2_svc_t *svc,
+                                        axis2_env_t **env,
+                                        const void *key,
+                                        void *value);
+
 /************************* End of function headers ***************************/
 
 axis2_svc_t * AXIS2_CALL
@@ -102,7 +122,11 @@
 	svc_impl->svc.ops->add_param = axis2_svc_add_param;
 	svc_impl->svc.ops->get_param = axis2_svc_get_param;
 	svc_impl->svc.ops->get_params = axis2_svc_get_params;
-	
+    svc_impl->svc.ops->get_component_properties = axis2_svc_get_component_properties;
+    svc_impl->svc.ops->set_component_properties = axis2_svc_set_component_properties;
+	svc_impl->svc.ops->get_component_property = axis2_svc_get_component_property;
+    svc_impl->svc.ops->set_component_property = axis2_svc_set_component_property;
+    
 	axis2_param_container_t *param_container = (axis2_param_container_t *)
 		axis2_param_container_create(env);		
 	if(NULL == param_container)
@@ -293,9 +317,8 @@
                     axis2_qname_t *qname)
 {
 	AXIS2_FUNC_PARAM_CHECK(svc, env, AXIS2_FAILURE);
-    AXIS2_WSDL_SERVICE_SET_NAME(AXIS2_INTF_TO_IMPL(svc)->wsdl_svc, env, qname);
     
-    return AXIS2_SUCCESS;
+    return AXIS2_WSDL_SVC_SET_NAME(AXIS2_INTF_TO_IMPL(svc)->wsdl_svc, env, qname);
 }
 
 axis2_qname_t * AXIS2_CALL
@@ -303,7 +326,7 @@
                     axis2_env_t **env)
 {
 	AXIS2_FUNC_PARAM_CHECK(svc, env, NULL);
-    return AXIS2_WSDL_SERVICE_GET_NAME(AXIS2_INTF_TO_IMPL(svc)->wsdl_svc, env);
+    return AXIS2_WSDL_SVC_GET_NAME(AXIS2_INTF_TO_IMPL(svc)->wsdl_svc, env);
 }
 
 axis2_status_t AXIS2_CALL
@@ -379,4 +402,50 @@
 	return AXIS2_PARAM_CONTAINER_IS_PARAM_LOCKED
 		(AXIS2_INTF_TO_IMPL(svc)->param_container, env, param_name); 
 	
+}
+
+axis2_hash_t * AXIS2_CALL
+axis2_svc_get_component_properties(axis2_svc_t *svc,
+                                        axis2_env_t **env)
+{
+    AXIS2_FUNC_PARAM_CHECK(svc, env, NULL);
+    
+    return AXIS2_WSDL_SVC_GET_COMPONENT_PROPERTIES(AXIS2_INTF_TO_IMPL(svc)->
+        wsdl_svc, env);
+}
+
+axis2_status_t AXIS2_CALL
+axis2_svc_set_component_properties(axis2_svc_t *svc,
+                                        axis2_env_t **env,
+                                        axis2_hash_t *properties)
+{
+    AXIS2_FUNC_PARAM_CHECK(svc, env, AXIS2_FAILURE);
+    
+    return AXIS2_WSDL_SVC_SET_COMPONENT_PROPERTIES(AXIS2_INTF_TO_IMPL(svc)->
+        wsdl_svc, env, properties);
+}
+
+axis2_wsdl_component_t * AXIS2_CALL
+axis2_svc_get_component_property(axis2_svc_t *svc,
+                                        axis2_env_t **env,
+                                        const axis2_char_t *key)
+{
+    AXIS2_FUNC_PARAM_CHECK(svc, env, NULL);
+    AXIS2_PARAM_CHECK((*env)->error, key, NULL);
+    
+    return AXIS2_WSDL_SVC_GET_COMPONENT_PROPERTY(AXIS2_INTF_TO_IMPL(svc)->
+        wsdl_svc, env, key); 
+}
+
+axis2_status_t AXIS2_CALL
+axis2_svc_set_component_property (axis2_svc_t *svc,
+                                        axis2_env_t **env,
+                                        const void *key,
+                                        void *value)
+{
+    AXIS2_FUNC_PARAM_CHECK(svc, env, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK((*env)->error, key, AXIS2_FAILURE);
+    
+    return AXIS2_WSDL_SVC_SET_COMPONENT_PROPERTY(AXIS2_INTF_TO_IMPL(svc)->
+        wsdl_svc, env, (axis2_char_t *) key, value);
 }

Modified: webservices/axis2/trunk/c/modules/core/description/test/Makefile.am
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/description/test/Makefile.am?rev=332195&r1=332194&r2=332195&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/description/test/Makefile.am (original)
+++ webservices/axis2/trunk/c/modules/core/description/test/Makefile.am Wed Nov  9 17:52:32 2005
@@ -15,5 +15,6 @@
 description_test_SOURCES = main.c
 description_test_LDADD   =  $(LDFLAGS) libtest_description.la  \
                     -L$(top_builddir)/modules/core/description/src/.libs -laxis2_description \
-                    -L$(top_builddir)/modules/util/src/.libs -laxis2_util
+                    -L$(top_builddir)/modules/util/src/.libs -laxis2_util \
+                    -L$(top_builddir)/modules/wsdl/src/.libs -laxis2_wsdl
 

Modified: webservices/axis2/trunk/c/modules/core/description/test/Makefile.in
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/description/test/Makefile.in?rev=332195&r1=332194&r2=332195&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/description/test/Makefile.in (original)
+++ webservices/axis2/trunk/c/modules/core/description/test/Makefile.in Wed Nov  9 17:52:32 2005
@@ -220,7 +220,8 @@
 description_test_SOURCES = main.c
 description_test_LDADD = $(LDFLAGS) libtest_description.la  \
                     -L$(top_builddir)/modules/core/description/src/.libs -laxis2_description \
-                    -L$(top_builddir)/modules/util/src/.libs -laxis2_util
+                    -L$(top_builddir)/modules/util/src/.libs -laxis2_util \
+                    -L$(top_builddir)/modules/wsdl/src/.libs -laxis2_wsdl
 
 all: all-am
 

Modified: webservices/axis2/trunk/c/modules/wsdl/src/wsdl_operation.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/src/wsdl_operation.c?rev=332195&r1=332194&r2=332195&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/src/wsdl_operation.c (original)
+++ webservices/axis2/trunk/c/modules/wsdl/src/wsdl_operation.c Wed Nov  9 17:52:32 2005
@@ -64,7 +64,7 @@
 axis2_status_t AXIS2_CALL 
 axis2_wsdl_operation_set_style (axis2_wsdl_operation_t *wsdl_operation,
                                     axis2_env_t **env,
-		                            const axis2_char_t *style);
+		                            axis2_char_t *style);
 
 axis2_char_t * AXIS2_CALL 
 axis2_wsdl_operation_get_style (axis2_wsdl_operation_t *wsdl_operation,
@@ -244,16 +244,12 @@
 axis2_status_t AXIS2_CALL 
 axis2_wsdl_operation_set_style (axis2_wsdl_operation_t *wsdl_operation,
                                     axis2_env_t **env,
-		                            const axis2_char_t *style)
+		                            axis2_char_t *style)
 {
     AXIS2_FUNC_PARAM_CHECK(wsdl_operation, env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK((*env)->error, style, AXIS2_FAILURE);
     
-    axis2_char_t *tempstyle = AXIS2_STRDUP(style, env);
-    if(NULL == tempstyle)
-        AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
-    
-	AXIS2_INTF_TO_IMPL(wsdl_operation)->style = tempstyle;
+	AXIS2_INTF_TO_IMPL(wsdl_operation)->style = style;
 	
 	return AXIS2_SUCCESS;		
 }

Modified: webservices/axis2/trunk/c/modules/wsdl/src/wsdl_svc.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/src/wsdl_svc.c?rev=332195&r1=332194&r2=332195&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/src/wsdl_svc.c (original)
+++ webservices/axis2/trunk/c/modules/wsdl/src/wsdl_svc.c Wed Nov  9 17:52:32 2005
@@ -25,7 +25,7 @@
 struct axis2_wsdl_svc_impl_s
 {
 	axis2_wsdl_svc_t wsdl_svc;
-    axis2_hash_t * component_properties;
+    axis2_wsdl_component_t * wsdl_component;
     axis2_qname_t *qname;
 	
 };
@@ -81,8 +81,8 @@
 		AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, NULL);
 	}
     
-    wsdl_svc_impl->component_properties = axis2_hash_make(env);
-    if(NULL == wsdl_svc_impl->component_properties)
+    wsdl_svc_impl->wsdl_component = axis2_wsdl_component_create(env);
+    if(NULL == wsdl_svc_impl->wsdl_component)
 	{
         AXIS2_FREE((*env)->allocator, wsdl_svc_impl);
         AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, NULL);
@@ -93,7 +93,7 @@
     
 	if(NULL == wsdl_svc_impl->wsdl_svc.ops)
 	{
-        axis2_hash_free(wsdl_svc_impl->component_properties, env);
+        AXIS2_WSDL_COMPONENT_FREE(wsdl_svc_impl->wsdl_component, env);
 		AXIS2_FREE((*env)->allocator, wsdl_svc_impl);
 		AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, NULL);	
 	}
@@ -113,8 +113,9 @@
 {
 	AXIS2_FUNC_PARAM_CHECK(wsdl_svc, env, AXIS2_FAILURE);
     
-    if(NULL != AXIS2_INTF_TO_IMPL(wsdl_svc)->component_properties)
-        axis2_hash_free(AXIS2_INTF_TO_IMPL(wsdl_svc)->component_properties, env);
+    if(NULL != AXIS2_INTF_TO_IMPL(wsdl_svc)->wsdl_component)
+        AXIS2_WSDL_COMPONENT_FREE(AXIS2_INTF_TO_IMPL(wsdl_svc)->wsdl_component, 
+            env);
     
     if(NULL != wsdl_svc->ops)
         AXIS2_FREE((*env)->allocator, wsdl_svc->ops);
@@ -149,7 +150,9 @@
                                         axis2_env_t **env)
 {
     AXIS2_FUNC_PARAM_CHECK(wsdl_svc, env, NULL);
-    return AXIS2_INTF_TO_IMPL(wsdl_svc)->component_properties;
+    
+    return AXIS2_WSDL_COMPONENT_GET_COMPONENT_PROPERTIES (
+		AXIS2_INTF_TO_IMPL(wsdl_svc)->wsdl_component, env);
 }
 
 axis2_status_t AXIS2_CALL
@@ -158,8 +161,9 @@
                                         axis2_hash_t *properties)
 {
     AXIS2_FUNC_PARAM_CHECK(wsdl_svc, env, AXIS2_FAILURE);
-    AXIS2_INTF_TO_IMPL(wsdl_svc)->component_properties = properties;
-    return AXIS2_SUCCESS;
+    
+    return AXIS2_WSDL_COMPONENT_SET_COMPONENT_PROPERTIES(
+		AXIS2_INTF_TO_IMPL(wsdl_svc)->wsdl_component, env, properties);
 }
 
 axis2_wsdl_component_t * AXIS2_CALL
@@ -169,8 +173,9 @@
 {
     AXIS2_FUNC_PARAM_CHECK(wsdl_svc, env, NULL);
     AXIS2_PARAM_CHECK((*env)->error, key, NULL);
-    return axis2_hash_get(AXIS2_INTF_TO_IMPL(wsdl_svc)->component_properties,
-        (axis2_char_t *) key, AXIS2_HASH_KEY_STRING); 
+    
+    return AXIS2_WSDL_COMPONENT_GET_COMPONENT_PROPERTY (
+		AXIS2_INTF_TO_IMPL(wsdl_svc)->wsdl_component, env, key);
 }
 
 axis2_status_t AXIS2_CALL
@@ -181,8 +186,7 @@
 {
     AXIS2_FUNC_PARAM_CHECK(wsdl_svc, env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK((*env)->error, key, AXIS2_FAILURE);
-    axis2_hash_set (AXIS2_INTF_TO_IMPL(wsdl_svc)->component_properties,
-        (axis2_char_t *) key, AXIS2_HASH_KEY_STRING, value);
     
-    return AXIS2_SUCCESS;
+    return AXIS2_WSDL_COMPONENT_SET_COMPONENT_PROPERTY (
+        AXIS2_INTF_TO_IMPL(wsdl_svc)->wsdl_component, env, key, value);
 }